From d09ab089457ae3c20cc98f9afa03379c6ebf9598 Mon Sep 17 00:00:00 2001 From: Mike Hommey Date: Thu, 25 Mar 2004 06:59:32 +0000 Subject: [svn-inject] Installing original source version --- testRegexp.c | 158 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 testRegexp.c (limited to 'testRegexp.c') diff --git a/testRegexp.c b/testRegexp.c new file mode 100644 index 0000000..7f34414 --- /dev/null +++ b/testRegexp.c @@ -0,0 +1,158 @@ +/* + * testRegexp.c: simple module for testing regular expressions + * + * See Copyright for the status of this software. + * + * Daniel Veillard + */ + +#include +#include "libxml.h" +#ifdef LIBXML_REGEXP_ENABLED +#include +#include + +int repeat = 0; +int debug = 0; + +static void testRegexp(xmlRegexpPtr comp, const char *value) { + int ret; + + ret = xmlRegexpExec(comp, (const xmlChar *) value); + if (ret == 1) + printf("%s: Ok\n", value); + else if (ret == 0) + printf("%s: Fail\n", value); + else + printf("%s: Error: %d\n", value, ret); + if (repeat) { + int j; + for (j = 0;j < 999999;j++) + xmlRegexpExec(comp, (const xmlChar *) value); + } +} + +static void +testRegexpFile(const char *filename) { + xmlRegexpPtr comp = NULL; + FILE *input; + char expression[5000]; + int len; + + input = fopen(filename, "r"); + if (input == NULL) { + xmlGenericError(xmlGenericErrorContext, + "Cannot open %s for reading\n", filename); + return; + } + while (fgets(expression, 4500, input) != NULL) { + len = strlen(expression); + len--; + while ((len >= 0) && + ((expression[len] == '\n') || (expression[len] == '\t') || + (expression[len] == '\r') || (expression[len] == ' '))) len--; + expression[len + 1] = 0; + if (len >= 0) { + if (expression[0] == '#') + continue; + if ((expression[0] == '=') && (expression[1] == '>')) { + char *pattern = &expression[2]; + + if (comp != NULL) { + xmlRegFreeRegexp(comp); + comp = NULL; + } + printf("Regexp: %s\n", pattern) ; + comp = xmlRegexpCompile((const xmlChar *) pattern); + if (comp == NULL) { + printf(" failed to compile\n"); + break; + } + } else if (comp == NULL) { + printf("Regexp: %s\n", expression) ; + comp = xmlRegexpCompile((const xmlChar *) expression); + if (comp == NULL) { + printf(" failed to compile\n"); + break; + } + } else if (comp != NULL) { + testRegexp(comp, expression); + } + } + } + fclose(input); + if (comp != NULL) + xmlRegFreeRegexp(comp); +} + + +static void usage(const char *name) { + fprintf(stderr, "Usage: %s\n", name); +} + +int main(int argc, char **argv) { + xmlRegexpPtr comp = NULL; + const char *pattern = NULL; + char *filename = NULL; + int i; + + xmlInitMemory(); + + if (argc <= 1) { + usage(argv[0]); + return(1); + } + for (i = 1; i < argc ; i++) { + if (!strcmp(argv[i], "-")) + break; + + if (argv[i][0] != '-') + continue; + if ((!strcmp(argv[i], "-debug")) || (!strcmp(argv[i], "--debug"))) { + debug++; + } else if ((!strcmp(argv[i], "-repeat")) || + (!strcmp(argv[i], "--repeat"))) { + repeat++; + } else if ((!strcmp(argv[i], "-i")) || (!strcmp(argv[i], "--input"))) + filename = argv[++i]; + else { + fprintf(stderr, "Unknown option %s\n", argv[i]); + usage(argv[0]); + } + } + if (filename != NULL) { + testRegexpFile(filename); + } else { + for (i = 1; i < argc ; i++) { + if ((argv[i][0] != '-') || (strcmp(argv[i], "-") == 0)) { + if (pattern == NULL) { + pattern = argv[i]; + printf("Testing %s:\n", pattern); + comp = xmlRegexpCompile((const xmlChar *) pattern); + if (comp == NULL) { + printf(" failed to compile\n"); + break; + } + if (debug) + xmlRegexpPrint(stdout, comp); + } else { + testRegexp(comp, argv[i]); + } + } + } + xmlMemoryDump(); + if (comp != NULL) + xmlRegFreeRegexp(comp); + } + xmlCleanupParser(); + /* xmlMemoryDump(); */ + return(0); +} + +#else +#include +int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) { + printf("%s : Regexp support not compiled in\n", argv[0]); + return(0); +} +#endif /* LIBXML_REGEXP_ENABLED */ -- cgit v1.2.3 From a464d9993e2acd5b8e1089b218ba74c6fcf215c5 Mon Sep 17 00:00:00 2001 From: Mike Hommey Date: Mon, 5 Sep 2005 17:10:35 +0000 Subject: Load /usr/tmp/tmp.CMoFff/libxml2-2.6.21 into packages/libxml2/branches/upstream/current. --- ChangeLog | 613 +++++++++ HTMLparser.c | 102 +- HTMLtree.c | 4 + Makefile.am | 56 +- Makefile.in | 66 +- NEWS | 39 + SAX2.c | 69 +- configure | 246 +++- configure.in | 98 +- debugXML.c | 24 +- doc/APIchunk0.html | 5 +- doc/APIchunk1.html | 1 + doc/APIchunk10.html | 21 +- doc/APIchunk11.html | 4 + doc/APIchunk12.html | 36 +- doc/APIchunk13.html | 39 +- doc/APIchunk14.html | 53 +- doc/APIchunk15.html | 46 +- doc/APIchunk16.html | 2 +- doc/APIchunk17.html | 9 + doc/APIchunk18.html | 30 +- doc/APIchunk19.html | 19 +- doc/APIchunk2.html | 9 +- doc/APIchunk20.html | 5 +- doc/APIchunk21.html | 13 +- doc/APIchunk22.html | 9 + doc/APIchunk23.html | 16 + doc/APIchunk24.html | 34 +- doc/APIchunk25.html | 19 +- doc/APIchunk26.html | 20 +- doc/APIchunk27.html | 4 + doc/APIchunk28.html | 9 + doc/APIchunk29.html | 2 +- doc/APIchunk3.html | 7 +- doc/APIchunk4.html | 5 + doc/APIchunk5.html | 1 + doc/APIchunk6.html | 2 + doc/APIchunk7.html | 39 +- doc/APIchunk8.html | 3 +- doc/APIchunk9.html | 4 +- doc/APIconstructors.html | 15 + doc/APIfiles.html | 114 +- doc/APIfunctions.html | 60 +- doc/APIsymbols.html | 110 ++ doc/Makefile.in | 2 + doc/XSLT.html | 3 +- doc/apibuild.py | 1 + doc/downloads.html | 1 + doc/elfgcchack.xsl | 1 + doc/examples/Makefile.in | 2 + doc/html/book1.html | 2 +- doc/html/index.html | 2 +- doc/html/libxml-HTMLparser.html | 2 + doc/html/libxml-lib.html | 2 +- doc/html/libxml-parser.html | 46 +- doc/html/libxml-pattern.html | 11 +- doc/html/libxml-relaxng.html | 5 +- doc/html/libxml-schemasInternals.html | 2 +- doc/html/libxml-schematron.html | 77 ++ doc/html/libxml-threads.html | 2 +- doc/html/libxml-tree.html | 2 +- doc/html/libxml-uri.html | 5 +- doc/html/libxml-xmlautomata.html | 5 +- doc/html/libxml-xmlerror.html | 11 +- doc/html/libxml-xmlexports.html | 3 +- doc/html/libxml-xmlregexp.html | 84 +- doc/html/libxml-xmlsave.html | 1 + doc/html/libxml-xmlschemas.html | 5 +- doc/html/libxml-xmlversion.html | 6 +- doc/html/libxml-xpath.html | 5 +- doc/index.html | 3 +- doc/libxml2-api.xml | 545 +++++++- doc/libxml2.xsa | 60 +- doc/news.html | 38 +- doc/xml.html | 47 +- doc/xmllint.1 | 4 - doc/xmllint.xml | 9 - elfgcchack.h | 473 ++++++- encoding.c | 101 +- error.c | 32 +- example/Makefile.in | 2 + globals.c | 10 +- include/Makefile.in | 2 + include/libxml/HTMLparser.h | 4 +- include/libxml/Makefile.am | 3 +- include/libxml/Makefile.in | 5 +- include/libxml/SAX2.h | 2 +- include/libxml/parser.h | 55 +- include/libxml/pattern.h | 4 +- include/libxml/relaxng.h | 7 +- include/libxml/schematron.h | 124 ++ include/libxml/threads.h | 1 - include/libxml/tree.h | 54 +- include/libxml/uri.h | 9 +- include/libxml/valid.h | 4 +- include/libxml/xmlIO.h | 16 +- include/libxml/xmlautomata.h | 8 + include/libxml/xmlerror.h | 23 +- include/libxml/xmlexports.h | 21 +- include/libxml/xmlregexp.h | 108 ++ include/libxml/xmlsave.h | 3 +- include/libxml/xmlschemas.h | 7 +- include/libxml/xmlversion.h | 33 +- include/libxml/xmlversion.h.in | 23 + include/libxml/xpath.h | 19 + libxml.spec.in | 53 +- libxml2.spec | 59 +- nanoftp.c | 8 +- nanohttp.c | 33 +- parser.c | 287 ++++- parserInternals.c | 4 +- pattern.c | 129 +- python/Makefile.in | 2 + python/generator.py | 2 +- python/libxml.c | 7 +- python/libxml2-py.c | 369 +++--- python/setup.py | 2 +- python/tests/Makefile.in | 2 + python/tests/tstLastError.py | 12 +- relaxng.c | 70 +- result/HTML/Down.html | 2 - result/HTML/Down.html.sax | 6 +- result/HTML/attrents.html | 4 +- result/HTML/attrents.html.sax | 4 +- result/HTML/cf_128.html | 7 +- result/HTML/cf_128.html.sax | 4 +- result/HTML/doc2.htm | 4 +- result/HTML/doc2.htm.sax | 4 +- result/HTML/doc3.htm | 4 +- result/HTML/doc3.htm.sax | 6 +- result/HTML/fp40.htm | 3 +- result/HTML/fp40.htm.sax | 8 +- result/HTML/liclose.html | 6 +- result/HTML/liclose.html.sax | 4 +- result/HTML/pre.html | 4 +- result/HTML/pre.html.sax | 4 +- result/HTML/python.html | 3 +- result/HTML/python.html.sax | 2 +- result/HTML/reg1.html.sax | 4 +- result/HTML/reg2.html.sax | 4 +- result/HTML/reg3.html.sax | 6 +- result/HTML/reg4.html.sax | 8 +- result/HTML/script.html.sax | 6 +- result/HTML/script2.html | 16 + result/HTML/script2.html.err | 0 result/HTML/script2.html.sax | 50 + result/HTML/test2.html | 1 + result/HTML/test2.html.sax | 4 +- result/HTML/test3.html | 2 +- result/HTML/test3.html.sax | 22 +- result/HTML/wired.html | 4 +- result/HTML/wired.html.sax | 26 +- result/ent2.sax | 1 + result/ent2.sax2 | 1 + result/ent7.sax | 1 + result/ent7.sax2 | 1 + result/expr/base | 85 ++ result/regexp/* | 1 + result/relaxng/307377_0 | 0 result/relaxng/307377_0.err | 2 + result/relaxng/307377_1 | 0 result/relaxng/307377_1.err | 3 + result/relaxng/307377_2 | 0 result/relaxng/307377_2.err | 1 + result/relaxng/307377_err | 1 + result/relaxng/307377_valid | 0 result/schemas/allsg_0_0 | 1 + result/schemas/allsg_0_0.err | 0 result/schemas/allsg_0_1 | 1 + result/schemas/allsg_0_1.err | 0 result/schemas/allsg_0_2 | 1 + result/schemas/allsg_0_2.err | 0 result/schemas/allsg_0_3 | 1 + result/schemas/allsg_0_3.err | 1 + result/schemas/allsg_0_4 | 1 + result/schemas/allsg_0_4.err | 1 + result/schemas/allsg_0_5 | 1 + result/schemas/allsg_0_5.err | 1 + result/schemas/any3_0_0.err | 2 +- result/schemas/any5_0_0 | 1 + result/schemas/any5_0_0.err | 1 + result/schemas/any5_0_1 | 1 + result/schemas/any5_0_1.err | 1 + result/schemas/any5_0_2 | 1 + result/schemas/any5_0_2.err | 1 + result/schemas/any5_0_3 | 1 + result/schemas/any5_0_3.err | 0 result/schemas/any5_0_4 | 1 + result/schemas/any5_0_4.err | 1 + result/schemas/any5_0_5 | 1 + result/schemas/any5_0_5.err | 1 + result/schemas/any5_0_6 | 1 + result/schemas/any5_0_6.err | 1 + result/schemas/any5_1_0 | 1 + result/schemas/any5_1_0.err | 1 + result/schemas/any5_1_1 | 1 + result/schemas/any5_1_1.err | 1 + result/schemas/any5_1_2 | 1 + result/schemas/any5_1_2.err | 0 result/schemas/any5_1_3 | 1 + result/schemas/any5_1_3.err | 1 + result/schemas/any5_1_4 | 1 + result/schemas/any5_1_4.err | 1 + result/schemas/any5_1_5 | 1 + result/schemas/any5_1_5.err | 0 result/schemas/any5_1_6 | 1 + result/schemas/any5_1_6.err | 1 + result/schemas/any6_1_0 | 1 + result/schemas/any6_1_0.err | 0 result/schemas/any6_2_0 | 1 + result/schemas/any6_2_0.err | 0 result/schemas/any7_1_0 | 1 + result/schemas/any7_1_0.err | 1 + result/schemas/any7_1_1 | 1 + result/schemas/any7_1_1.err | 1 + result/schemas/any7_1_2 | 1 + result/schemas/any7_1_2.err | 0 result/schemas/any7_2_0 | 1 + result/schemas/any7_2_0.err | 1 + result/schemas/any7_2_1 | 1 + result/schemas/any7_2_1.err | 1 + result/schemas/any7_2_2 | 1 + result/schemas/any7_2_2.err | 0 result/schemas/any8_1_0 | 1 + result/schemas/any8_1_0.err | 0 result/schemas/bug303566_1_1.err | 2 +- result/schemas/bug310264_0_0 | 1 + result/schemas/bug310264_0_0.err | 0 result/schemas/bug312957_1_0 | 1 + result/schemas/bug312957_1_0.err | 1 + result/schemas/bug313982_0_0 | 1 + result/schemas/bug313982_0_0.err | 0 result/schemas/extension2_1_0 | 1 + result/schemas/extension2_1_0.err | 0 result/schematron/zvon10_0 | 4 + result/schematron/zvon10_0.err | 5 + result/schematron/zvon10_1 | 5 + result/schematron/zvon10_1.err | 6 + result/schematron/zvon11_0 | 4 + result/schematron/zvon11_0.err | 2 + result/schematron/zvon11_1 | 4 + result/schematron/zvon11_1.err | 3 + result/schematron/zvon11_2 | 4 + result/schematron/zvon11_2.err | 3 + result/schematron/zvon11_3 | 4 + result/schematron/zvon11_3.err | 2 + result/schematron/zvon12_0 | 4 + result/schematron/zvon12_0.err | 3 + result/schematron/zvon12_1 | 4 + result/schematron/zvon12_1.err | 2 + result/schematron/zvon12_2 | 4 + result/schematron/zvon12_2.err | 3 + result/schematron/zvon13_0 | 7 + result/schematron/zvon13_0.err | 3 + result/schematron/zvon13_1 | 6 + result/schematron/zvon13_1.err | 3 + result/schematron/zvon13_2 | 6 + result/schematron/zvon13_2.err | 2 + result/schematron/zvon14_0 | 13 + result/schematron/zvon14_0.err | 4 + result/schematron/zvon15_0 | 5 + result/schematron/zvon15_0.err | 4 + result/schematron/zvon16_0 | 18 + result/schematron/zvon16_0.err | 3 + result/schematron/zvon1_0 | 4 + result/schematron/zvon1_0.err | 8 + result/schematron/zvon1_1 | 4 + result/schematron/zvon1_1.err | 8 + result/schematron/zvon2_0 | 5 + result/schematron/zvon2_0.err | 2 + result/schematron/zvon2_1 | 5 + result/schematron/zvon2_1.err | 5 + result/schematron/zvon2_2 | 6 + result/schematron/zvon2_2.err | 3 + result/schematron/zvon3_0 | 9 + result/schematron/zvon3_0.err | 6 + result/schematron/zvon4_0 | 7 + result/schematron/zvon4_0.err | 3 + result/schematron/zvon4_1 | 7 + result/schematron/zvon4_1.err | 3 + result/schematron/zvon5_0 | 6 + result/schematron/zvon5_0.err | 7 + result/schematron/zvon5_1 | 6 + result/schematron/zvon5_1.err | 5 + result/schematron/zvon5_2 | 8 + result/schematron/zvon5_2.err | 5 + result/schematron/zvon6_0 | 4 + result/schematron/zvon6_0.err | 3 + result/schematron/zvon6_1 | 4 + result/schematron/zvon6_1.err | 3 + result/schematron/zvon6_2 | 4 + result/schematron/zvon6_2.err | 3 + result/schematron/zvon7_0 | 4 + result/schematron/zvon7_0.err | 3 + result/schematron/zvon7_1 | 4 + result/schematron/zvon7_1.err | 3 + result/schematron/zvon7_2 | 4 + result/schematron/zvon7_2.err | 3 + result/schematron/zvon7_3 | 4 + result/schematron/zvon7_3.err | 3 + result/schematron/zvon7_4 | 4 + result/schematron/zvon7_4.err | 3 + result/schematron/zvon8_0 | 9 + result/schematron/zvon8_0.err | 3 + result/schematron/zvon8_1 | 8 + result/schematron/zvon8_1.err | 3 + result/schematron/zvon8_2 | 8 + result/schematron/zvon8_2.err | 3 + result/schematron/zvon9_0 | 8 + result/schematron/zvon9_0.err | 2 + result/schematron/zvon9_1 | 8 + result/schematron/zvon9_1.err | 3 + result/schematron/zvon9_2 | 8 + result/schematron/zvon9_2.err | 3 + result/valid/objednavka.xml | 39 + result/valid/objednavka.xml.err | 0 result/xml2.sax | 1 + result/xml2.sax2 | 1 + runsuite.c | 12 +- runtest.c | 295 ++++- schematron.c | 1729 +++++++++++++++++++++++++ test/HTML/script2.html | 19 + test/expr/base | 86 ++ test/relaxng/307377.rng | 14 + test/relaxng/307377_0.xml | 1 + test/relaxng/307377_1.xml | 1 + test/relaxng/307377_2.xml | 1 + test/relaxng/docbook_0.xml | 3 +- test/schemas/.memdump | 4 +- test/schemas/allsg_0.xml | 7 + test/schemas/allsg_0.xsd | 26 + test/schemas/allsg_1.xml | 8 + test/schemas/allsg_2.xml | 8 + test/schemas/allsg_3.xml | 7 + test/schemas/allsg_4.xml | 7 + test/schemas/allsg_5.xml | 8 + test/schemas/any5_0.xml | 7 + test/schemas/any5_0.xsd | 13 + test/schemas/any5_1.xml | 12 + test/schemas/any5_1.xsd | 14 + test/schemas/any5_2.xml | 8 + test/schemas/any5_3.xml | 11 + test/schemas/any5_4.xml | 12 + test/schemas/any5_5.xml | 12 + test/schemas/any5_6.xml | 13 + test/schemas/any6_0.xml | 8 + test/schemas/any6_1.xsd | 36 + test/schemas/any6_2.xsd | 19 + test/schemas/any7_0.xml | 19 + test/schemas/any7_1.xml | 18 + test/schemas/any7_1.xsd | 13 + test/schemas/any7_2.xml | 20 + test/schemas/any7_2.xsd | 13 + test/schemas/any8_0.xml | 9 + test/schemas/any8_1.xsd | 20 + test/schemas/bug310264_0.xml | 41 + test/schemas/bug310264_0.xsd | 18 + test/schemas/bug312957_0.xml | 14 + test/schemas/bug312957_1.xsd | 39 + test/schemas/bug313982_0.xml | 4 + test/schemas/bug313982_0.xsd | 11 + test/schemas/extension2_0.xml | 4 + test/schemas/extension2_1.xsd | 17 + test/schematron/.memdump | 4 + test/schematron/zvon1.sct | 23 + test/schematron/zvon10.sct | 15 + test/schematron/zvon10_0.xml | 3 + test/schematron/zvon10_1.xml | 4 + test/schematron/zvon11.sct | 8 + test/schematron/zvon11_0.xml | 3 + test/schematron/zvon11_1.xml | 3 + test/schematron/zvon11_2.xml | 3 + test/schematron/zvon11_3.xml | 3 + test/schematron/zvon12.sct | 8 + test/schematron/zvon12_0.xml | 3 + test/schematron/zvon12_1.xml | 3 + test/schematron/zvon12_2.xml | 3 + test/schematron/zvon13.sct | 7 + test/schematron/zvon13_0.xml | 6 + test/schematron/zvon13_1.xml | 5 + test/schematron/zvon13_2.xml | 5 + test/schematron/zvon14.sct | 10 + test/schematron/zvon14_0.xml | 12 + test/schematron/zvon15.sct | 11 + test/schematron/zvon15_0.xml | 4 + test/schematron/zvon16.sct | 30 + test/schematron/zvon16_0.xml | 19 + test/schematron/zvon1_0.xml | 3 + test/schematron/zvon1_1.xml | 3 + test/schematron/zvon2.sct | 9 + test/schematron/zvon2_0.xml | 4 + test/schematron/zvon2_1.xml | 4 + test/schematron/zvon2_2.xml | 5 + test/schematron/zvon3.sct | 8 + test/schematron/zvon3_0.xml | 8 + test/schematron/zvon4.sct | 10 + test/schematron/zvon4_0.xml | 6 + test/schematron/zvon4_1.xml | 6 + test/schematron/zvon5.sct | 12 + test/schematron/zvon5_0.xml | 5 + test/schematron/zvon5_1.xml | 5 + test/schematron/zvon5_2.xml | 7 + test/schematron/zvon6.sct | 8 + test/schematron/zvon6_0.xml | 3 + test/schematron/zvon6_1.xml | 3 + test/schematron/zvon6_2.xml | 3 + test/schematron/zvon7.sct | 9 + test/schematron/zvon7_0.xml | 3 + test/schematron/zvon7_1.xml | 3 + test/schematron/zvon7_2.xml | 3 + test/schematron/zvon7_3.xml | 3 + test/schematron/zvon7_4.xml | 3 + test/schematron/zvon8.sct | 10 + test/schematron/zvon8_0.xml | 8 + test/schematron/zvon8_1.xml | 7 + test/schematron/zvon8_2.xml | 7 + test/schematron/zvon9.sct | 9 + test/schematron/zvon9_0.xml | 7 + test/schematron/zvon9_1.xml | 7 + test/schematron/zvon9_2.xml | 7 + test/valid/dtds/objednavka.dtd | 23 + test/valid/objednavka.xml | 39 + testC14N.c | 4 +- testHTML.c | 12 +- testReader.c | 12 +- testRegexp.c | 276 +++- testSAX.c | 22 +- testThreads.c | 6 +- testXPath.c | 4 +- testapi.c | 766 ++++++++++- threads.c | 2 +- tree.c | 210 ++- uri.c | 175 ++- valid.c | 109 +- win32/Makefile.msvc | 2 + win32/configure.js | 10 + win32/libxml2.def.src | 95 ++ xinclude.c | 14 +- xml2-config.in | 1 - xmlIO.c | 3 +- xmllint.c | 218 +++- xmlmodule.c | 4 +- xmlreader.c | 284 ++++- xmlregexp.c | 2243 ++++++++++++++++++++++++++++++++- xmlsave.c | 116 +- xmlschemas.c | 1917 ++++++++++++++++++---------- xmlschemastypes.c | 138 +- xmlstring.c | 2 +- xmlunicode.c | 4 +- xmlwriter.c | 38 +- xpath.c | 94 +- xpointer.c | 2 +- xstc/Makefile.in | 2 + 453 files changed, 13807 insertions(+), 2172 deletions(-) create mode 100644 doc/html/libxml-schematron.html create mode 100644 include/libxml/schematron.h create mode 100644 result/HTML/script2.html create mode 100644 result/HTML/script2.html.err create mode 100644 result/HTML/script2.html.sax create mode 100644 result/expr/base create mode 100644 result/regexp/* create mode 100644 result/relaxng/307377_0 create mode 100644 result/relaxng/307377_0.err create mode 100644 result/relaxng/307377_1 create mode 100644 result/relaxng/307377_1.err create mode 100644 result/relaxng/307377_2 create mode 100644 result/relaxng/307377_2.err create mode 100644 result/relaxng/307377_err create mode 100644 result/relaxng/307377_valid create mode 100644 result/schemas/allsg_0_0 create mode 100644 result/schemas/allsg_0_0.err create mode 100644 result/schemas/allsg_0_1 create mode 100644 result/schemas/allsg_0_1.err create mode 100644 result/schemas/allsg_0_2 create mode 100644 result/schemas/allsg_0_2.err create mode 100644 result/schemas/allsg_0_3 create mode 100644 result/schemas/allsg_0_3.err create mode 100644 result/schemas/allsg_0_4 create mode 100644 result/schemas/allsg_0_4.err create mode 100644 result/schemas/allsg_0_5 create mode 100644 result/schemas/allsg_0_5.err create mode 100644 result/schemas/any5_0_0 create mode 100644 result/schemas/any5_0_0.err create mode 100644 result/schemas/any5_0_1 create mode 100644 result/schemas/any5_0_1.err create mode 100644 result/schemas/any5_0_2 create mode 100644 result/schemas/any5_0_2.err create mode 100644 result/schemas/any5_0_3 create mode 100644 result/schemas/any5_0_3.err create mode 100644 result/schemas/any5_0_4 create mode 100644 result/schemas/any5_0_4.err create mode 100644 result/schemas/any5_0_5 create mode 100644 result/schemas/any5_0_5.err create mode 100644 result/schemas/any5_0_6 create mode 100644 result/schemas/any5_0_6.err create mode 100644 result/schemas/any5_1_0 create mode 100644 result/schemas/any5_1_0.err create mode 100644 result/schemas/any5_1_1 create mode 100644 result/schemas/any5_1_1.err create mode 100644 result/schemas/any5_1_2 create mode 100644 result/schemas/any5_1_2.err create mode 100644 result/schemas/any5_1_3 create mode 100644 result/schemas/any5_1_3.err create mode 100644 result/schemas/any5_1_4 create mode 100644 result/schemas/any5_1_4.err create mode 100644 result/schemas/any5_1_5 create mode 100644 result/schemas/any5_1_5.err create mode 100644 result/schemas/any5_1_6 create mode 100644 result/schemas/any5_1_6.err create mode 100644 result/schemas/any6_1_0 create mode 100644 result/schemas/any6_1_0.err create mode 100644 result/schemas/any6_2_0 create mode 100644 result/schemas/any6_2_0.err create mode 100644 result/schemas/any7_1_0 create mode 100644 result/schemas/any7_1_0.err create mode 100644 result/schemas/any7_1_1 create mode 100644 result/schemas/any7_1_1.err create mode 100644 result/schemas/any7_1_2 create mode 100644 result/schemas/any7_1_2.err create mode 100644 result/schemas/any7_2_0 create mode 100644 result/schemas/any7_2_0.err create mode 100644 result/schemas/any7_2_1 create mode 100644 result/schemas/any7_2_1.err create mode 100644 result/schemas/any7_2_2 create mode 100644 result/schemas/any7_2_2.err create mode 100644 result/schemas/any8_1_0 create mode 100644 result/schemas/any8_1_0.err create mode 100644 result/schemas/bug310264_0_0 create mode 100644 result/schemas/bug310264_0_0.err create mode 100644 result/schemas/bug312957_1_0 create mode 100644 result/schemas/bug312957_1_0.err create mode 100644 result/schemas/bug313982_0_0 create mode 100644 result/schemas/bug313982_0_0.err create mode 100644 result/schemas/extension2_1_0 create mode 100644 result/schemas/extension2_1_0.err create mode 100644 result/schematron/zvon10_0 create mode 100644 result/schematron/zvon10_0.err create mode 100644 result/schematron/zvon10_1 create mode 100644 result/schematron/zvon10_1.err create mode 100644 result/schematron/zvon11_0 create mode 100644 result/schematron/zvon11_0.err create mode 100644 result/schematron/zvon11_1 create mode 100644 result/schematron/zvon11_1.err create mode 100644 result/schematron/zvon11_2 create mode 100644 result/schematron/zvon11_2.err create mode 100644 result/schematron/zvon11_3 create mode 100644 result/schematron/zvon11_3.err create mode 100644 result/schematron/zvon12_0 create mode 100644 result/schematron/zvon12_0.err create mode 100644 result/schematron/zvon12_1 create mode 100644 result/schematron/zvon12_1.err create mode 100644 result/schematron/zvon12_2 create mode 100644 result/schematron/zvon12_2.err create mode 100644 result/schematron/zvon13_0 create mode 100644 result/schematron/zvon13_0.err create mode 100644 result/schematron/zvon13_1 create mode 100644 result/schematron/zvon13_1.err create mode 100644 result/schematron/zvon13_2 create mode 100644 result/schematron/zvon13_2.err create mode 100644 result/schematron/zvon14_0 create mode 100644 result/schematron/zvon14_0.err create mode 100644 result/schematron/zvon15_0 create mode 100644 result/schematron/zvon15_0.err create mode 100644 result/schematron/zvon16_0 create mode 100644 result/schematron/zvon16_0.err create mode 100644 result/schematron/zvon1_0 create mode 100644 result/schematron/zvon1_0.err create mode 100644 result/schematron/zvon1_1 create mode 100644 result/schematron/zvon1_1.err create mode 100644 result/schematron/zvon2_0 create mode 100644 result/schematron/zvon2_0.err create mode 100644 result/schematron/zvon2_1 create mode 100644 result/schematron/zvon2_1.err create mode 100644 result/schematron/zvon2_2 create mode 100644 result/schematron/zvon2_2.err create mode 100644 result/schematron/zvon3_0 create mode 100644 result/schematron/zvon3_0.err create mode 100644 result/schematron/zvon4_0 create mode 100644 result/schematron/zvon4_0.err create mode 100644 result/schematron/zvon4_1 create mode 100644 result/schematron/zvon4_1.err create mode 100644 result/schematron/zvon5_0 create mode 100644 result/schematron/zvon5_0.err create mode 100644 result/schematron/zvon5_1 create mode 100644 result/schematron/zvon5_1.err create mode 100644 result/schematron/zvon5_2 create mode 100644 result/schematron/zvon5_2.err create mode 100644 result/schematron/zvon6_0 create mode 100644 result/schematron/zvon6_0.err create mode 100644 result/schematron/zvon6_1 create mode 100644 result/schematron/zvon6_1.err create mode 100644 result/schematron/zvon6_2 create mode 100644 result/schematron/zvon6_2.err create mode 100644 result/schematron/zvon7_0 create mode 100644 result/schematron/zvon7_0.err create mode 100644 result/schematron/zvon7_1 create mode 100644 result/schematron/zvon7_1.err create mode 100644 result/schematron/zvon7_2 create mode 100644 result/schematron/zvon7_2.err create mode 100644 result/schematron/zvon7_3 create mode 100644 result/schematron/zvon7_3.err create mode 100644 result/schematron/zvon7_4 create mode 100644 result/schematron/zvon7_4.err create mode 100644 result/schematron/zvon8_0 create mode 100644 result/schematron/zvon8_0.err create mode 100644 result/schematron/zvon8_1 create mode 100644 result/schematron/zvon8_1.err create mode 100644 result/schematron/zvon8_2 create mode 100644 result/schematron/zvon8_2.err create mode 100644 result/schematron/zvon9_0 create mode 100644 result/schematron/zvon9_0.err create mode 100644 result/schematron/zvon9_1 create mode 100644 result/schematron/zvon9_1.err create mode 100644 result/schematron/zvon9_2 create mode 100644 result/schematron/zvon9_2.err create mode 100644 result/valid/objednavka.xml create mode 100644 result/valid/objednavka.xml.err create mode 100644 schematron.c create mode 100644 test/HTML/script2.html create mode 100644 test/expr/base create mode 100644 test/relaxng/307377.rng create mode 100644 test/relaxng/307377_0.xml create mode 100644 test/relaxng/307377_1.xml create mode 100644 test/relaxng/307377_2.xml create mode 100644 test/schemas/allsg_0.xml create mode 100644 test/schemas/allsg_0.xsd create mode 100644 test/schemas/allsg_1.xml create mode 100644 test/schemas/allsg_2.xml create mode 100644 test/schemas/allsg_3.xml create mode 100644 test/schemas/allsg_4.xml create mode 100644 test/schemas/allsg_5.xml create mode 100644 test/schemas/any5_0.xml create mode 100644 test/schemas/any5_0.xsd create mode 100644 test/schemas/any5_1.xml create mode 100644 test/schemas/any5_1.xsd create mode 100644 test/schemas/any5_2.xml create mode 100644 test/schemas/any5_3.xml create mode 100644 test/schemas/any5_4.xml create mode 100644 test/schemas/any5_5.xml create mode 100644 test/schemas/any5_6.xml create mode 100755 test/schemas/any6_0.xml create mode 100644 test/schemas/any6_1.xsd create mode 100644 test/schemas/any6_2.xsd create mode 100755 test/schemas/any7_0.xml create mode 100755 test/schemas/any7_1.xml create mode 100755 test/schemas/any7_1.xsd create mode 100644 test/schemas/any7_2.xml create mode 100755 test/schemas/any7_2.xsd create mode 100644 test/schemas/any8_0.xml create mode 100644 test/schemas/any8_1.xsd create mode 100644 test/schemas/bug310264_0.xml create mode 100644 test/schemas/bug310264_0.xsd create mode 100644 test/schemas/bug312957_0.xml create mode 100644 test/schemas/bug312957_1.xsd create mode 100644 test/schemas/bug313982_0.xml create mode 100644 test/schemas/bug313982_0.xsd create mode 100644 test/schemas/extension2_0.xml create mode 100644 test/schemas/extension2_1.xsd create mode 100644 test/schematron/.memdump create mode 100644 test/schematron/zvon1.sct create mode 100644 test/schematron/zvon10.sct create mode 100644 test/schematron/zvon10_0.xml create mode 100644 test/schematron/zvon10_1.xml create mode 100644 test/schematron/zvon11.sct create mode 100644 test/schematron/zvon11_0.xml create mode 100644 test/schematron/zvon11_1.xml create mode 100644 test/schematron/zvon11_2.xml create mode 100644 test/schematron/zvon11_3.xml create mode 100644 test/schematron/zvon12.sct create mode 100644 test/schematron/zvon12_0.xml create mode 100644 test/schematron/zvon12_1.xml create mode 100644 test/schematron/zvon12_2.xml create mode 100644 test/schematron/zvon13.sct create mode 100644 test/schematron/zvon13_0.xml create mode 100644 test/schematron/zvon13_1.xml create mode 100644 test/schematron/zvon13_2.xml create mode 100644 test/schematron/zvon14.sct create mode 100644 test/schematron/zvon14_0.xml create mode 100644 test/schematron/zvon15.sct create mode 100644 test/schematron/zvon15_0.xml create mode 100644 test/schematron/zvon16.sct create mode 100644 test/schematron/zvon16_0.xml create mode 100644 test/schematron/zvon1_0.xml create mode 100644 test/schematron/zvon1_1.xml create mode 100644 test/schematron/zvon2.sct create mode 100644 test/schematron/zvon2_0.xml create mode 100644 test/schematron/zvon2_1.xml create mode 100644 test/schematron/zvon2_2.xml create mode 100644 test/schematron/zvon3.sct create mode 100644 test/schematron/zvon3_0.xml create mode 100644 test/schematron/zvon4.sct create mode 100644 test/schematron/zvon4_0.xml create mode 100644 test/schematron/zvon4_1.xml create mode 100644 test/schematron/zvon5.sct create mode 100644 test/schematron/zvon5_0.xml create mode 100644 test/schematron/zvon5_1.xml create mode 100644 test/schematron/zvon5_2.xml create mode 100644 test/schematron/zvon6.sct create mode 100644 test/schematron/zvon6_0.xml create mode 100644 test/schematron/zvon6_1.xml create mode 100644 test/schematron/zvon6_2.xml create mode 100644 test/schematron/zvon7.sct create mode 100644 test/schematron/zvon7_0.xml create mode 100644 test/schematron/zvon7_1.xml create mode 100644 test/schematron/zvon7_2.xml create mode 100644 test/schematron/zvon7_3.xml create mode 100644 test/schematron/zvon7_4.xml create mode 100644 test/schematron/zvon8.sct create mode 100644 test/schematron/zvon8_0.xml create mode 100644 test/schematron/zvon8_1.xml create mode 100644 test/schematron/zvon8_2.xml create mode 100644 test/schematron/zvon9.sct create mode 100644 test/schematron/zvon9_0.xml create mode 100644 test/schematron/zvon9_1.xml create mode 100644 test/schematron/zvon9_2.xml create mode 100644 test/valid/dtds/objednavka.dtd create mode 100644 test/valid/objednavka.xml (limited to 'testRegexp.c') diff --git a/ChangeLog b/ChangeLog index 3ff031e..6b29e3c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,616 @@ +Sun Sep 4 23:36:45 CEST 2005 Daniel Veillard + + * NEWS elfgcchack.h testapi.c doc/*: updated the docs and rebuild + releasing 2.6.21 + * include/libxml/threads.h threads.c: removed xmlIsThreadsEnabled() + * threads.c include/libxml/threads.h xmllint.c: added the more + generic xmlHasFeature() as suggested by Bjorn Reese, xmllint uses it. + +Sun Sep 4 22:45:49 CEST 2005 Daniel Veillard + + * configure.in doc/* configure.in: prepare for release + * xpath.c: work for #303289, fix a formatting bug for MIN_INT + +Sun Sep 4 15:48:57 CEST 2005 Daniel Veillard + + * relaxng.c: real fix for #314881 and #314759 is was a bit more complex + than initially expected as ctxt->error == NULL had behaviour side + effects at the compilation level itself. + +Sun Sep 4 14:01:00 CEST 2005 Daniel Veillard + + * pattern.c xpath.c include/libxml/pattern.h: fixing yet another + pattern induced XPath bug #314282 + * relaxng.c: reverted back last change it was seriously broken + +Sat Sep 3 16:51:55 CEST 2005 Rob Richards + + * xmlsave.c: check for NULL to prevent crash with meta elements + +Sat Sep 3 16:26:55 CEST 2005 Daniel Veillard + + * relaxng.c: structured error reporting problem with Relax-NG + should fix #314881 and #314759 + +Sat Sep 3 15:42:29 CEST 2005 Daniel Veillard + + * pattern.c: fixes a portability problem raised by C370 on Z/OS + +Sat Sep 3 15:26:31 CEST 2005 Daniel Veillard + + * SAX2.c tree.c valid.c: fixing a number of issues raised by xml:id + but more generally related to attributes and ID handling, fixes + #314358 among other things + +Fri Sep 2 14:26:43 CEST 2005 Daniel Veillard + + * encoding.c parserInternals.c: avoid passing a char[] as snprintf + first argument. + * threads.c include/libxml/threads.h: implemented xmlIsThreadsEnabled() + based on Andrew W. Nosenko idea. + * doc/* elfgcchack.h: regenerated the API + +Thu Sep 1 14:44:42 CEST 2005 Daniel Veillard + + * configure.in: the use of AM_PATH_PYTHON is not portable enough + reverting back to AM_PATH_PROG + +Thu Sep 1 11:42:39 CEST 2005 Daniel Veillard + + * HTMLparser.c: Applied the last patch from Gary Coady for #304637 + changing the behaviour when text nodes are found in body + * result/HTML/*: this changes the output of some tests + +Thu Sep 1 11:22:37 CEST 2005 Daniel Veillard + + * doc/downloads.html doc/xml.html: adding reference to Bull AIX rpms + c.f. #160598 + +Wed Aug 31 11:39:02 CEST 2005 Daniel Veillard + + * xml2-config.in: removed the obsolete --libtool-libs option, c.f. + bug #314853 + +Fri Aug 26 17:33:26 CEST 2005 Rob Richards + + * xmlsave.c: move handling of meta element for http-equiv in XHTML docs + to serialization and no longer modify internal tree. + +Fri Aug 26 00:51:58 CEST 2005 Daniel Veillard + + * libxml.spec.in: the profiling usually don't work, disabled + * doc/*: rebuilt + +Thu Aug 25 23:47:55 CEST 2005 Daniel Veillard + + * configure.in: trying to fix the first part of #310033 by + detecting gcc <= 3.2 + +Thu Aug 25 22:13:37 CEST 2005 Daniel Veillard + + * error.c: fixed bug #310033, the URI extraction code given a + node is a bit twisted and broke in the last months. + +Thu Aug 25 16:18:15 CEST 2005 Daniel Veillard + + * debugXML.c result/XPath/xptr/strrange2: uninitialized field and + fix on test. + +Thu Aug 25 16:03:05 CEST 2005 Daniel Veillard + + * debugXML.c: change verbosity depending on API + * result/XPath/tests/* result/XPath/xptr/* result/xmlid/*: get back + to previous outputs + +Thu Aug 25 15:14:56 CEST 2005 Daniel Veillard + + * HTMLparser.c parser.c SAX2.c debugXML.c tree.c valid.c xmlreader.c + xmllint.c include/libxml/HTMLparser.h include/libxml/parser.h: + added a parser XML_PARSE_COMPACT option to allocate small + text nodes (less than 8 bytes on 32bits, less than 16bytes on 64bits) + directly within the node, various changes to cope with this. + * result/XPath/tests/* result/XPath/xptr/* result/xmlid/*: this + slightly change the output + +Thu Aug 25 12:16:26 CEST 2005 Daniel Veillard + + * configure.in: patch from Andrew W. Nosenko, use se $GCC = 'yes' + instead of $CC = 'gcc' because GCC may have a different name + +Thu Aug 25 00:18:20 CEST 2005 Daniel Veillard + + * configure.in: changes the way the python binary is found, should + also fix bug #308004 + +Wed Aug 24 16:44:41 CEST 2005 Daniel Veillard + + * parser.c: found another bug while looking at #309616 on missing + entities. + * result/ent2.sax* result/ent7.sax* result/xml2.sax*: this changed the + SAX stream in missing conditions for a few tests + +Wed Aug 24 16:19:00 CEST 2005 Daniel Veillard + + * encoding.c: applied the patch suggested #309565 which can avoid + looping in error conditions. + +Wed Aug 24 16:04:17 CEST 2005 Daniel Veillard + + * SAX2.c tree.c: line numbers are now carried by most nodes, fixing + xmlGetLineNo() c.f. bug #309205 + +Wed Aug 24 14:43:34 CEST 2005 Daniel Veillard + + * encoding.c error.c include/libxml/xmlerror.h: finally converted + the encoding module to the common error reporting mechanism + * doc/* doc/html/libxml-xmlerror.html: rebuilt + +Wed Aug 24 11:35:26 CEST 2005 Daniel Veillard + + * xpath.c: removed a potentially uninitialized variable error + * python/generator.py: fixed a deprecation warning + * python/tests/tstLastError.py: silent the damn test when Okay ! + +Wed Aug 24 00:11:16 CEST 2005 Daniel Veillard + + * SAX2.c globals.c runtest.c testC14N.c testapi.c tree.c + include/libxml/SAX2.h include/libxml/xmlregexp.h: fixed compilation + when configured --without-sax1 and other cleanups fixes bug #172683 + * doc/* elfgcchack.h: regenerated + +Tue Aug 23 20:05:05 CEST 2005 Daniel Veillard + + * parser.c: fixed bug #170489 reported by Jirka Kosek + * test/valid/objednavka.xml test/valid/dtds/objednavka.dtd + result/valid/objednavka*: added the test to the regression suite. + +Tue Aug 23 18:04:08 CEST 2005 Daniel Veillard + + * HTMLparser.c include/libxml/HTMLparser.h: added a recovery mode + for the HTML parser based on the suggestions of bug #169834 by + Paul Loberg + +Tue Aug 23 15:38:46 CEST 2005 Daniel Veillard + + * elfgcchack.h testapi.c doc/*: regenerated + * schematron.c: fixed a compilation problem + * xmlregexp.c include/libxml/xmlregexp.h: some cleanups and one bug fix + * result/expr/base: slightly changes the number of Cons. + +Mon Aug 22 23:19:50 CEST 2005 Daniel Veillard + + * elfgcchack.h testapi.c doc/*: rescanned code and rebuilt + * xmlregexp.c: small cleanup + * include/libxml/schematron.h include/libxml/xmlexports.h + include/libxml/xmlversion.h.in: cleanup problems from code scanner + +Mon Aug 22 18:00:18 CEST 2005 Daniel Veillard + + * xmlschemastypes.c: applied patch from Kuba Nowakowski fixing bug + #313982 + * result/schemas/bug313982* test/schemas/bug313982*: also added + the test case to the regression suite. + +Mon Aug 22 17:50:20 CEST 2005 Daniel Veillard + + * testRegexp.c: printed the wrong string + +Mon Aug 22 16:42:07 CEST 2005 Daniel Veillard + + * testRegexp.c xmlregexp.c include/libxml/xmlregexp.h: exported + xmlExpExpDerive(), added it to the testRegexp command line + tool when providing multiple expressions. + +Mon Aug 22 14:57:13 CEST 2005 Daniel Veillard + + * Makefile.am result/expr/base test/expr/base: added the first + regression test suite set for the new expression support + +Mon Aug 22 13:49:18 CEST 2005 Daniel Veillard + + * valid.c: fixed an uninitialized variable + * xmlregexp.c include/libxml/xmlregexp.h: extended the API to + add the parser, serializer and some debugging + * include/libxml/xmlversion.h.in: made the new support compiled + by default if Schemas is included + * testRegexp.c: cleanup and integration of the first part of the + new code with a special switch + * xmllint.c: show up Expr in --version if compiled in + * include/libxml/tree.h: moved the xmlBuffer definition up + +Mon Aug 22 12:11:10 CEST 2005 Kasimier Buchcik + + * xmlschemas.c: Some preparation for the creation of a graph + of imported/included/redefined schemas; this is needed for + at least the redefinitions. + Centralized the creation of the parser context in one function. + +Mon Aug 22 02:19:33 CEST 2005 Daniel Veillard + + * xmlregexp.c include/libxml/xmlregexp.h: pushing the formal expression + handling code to have it in CVs from now. Not plugged, and misses + APIs it's not compiled in yet. + +Sat Aug 20 23:13:27 CEST 2005 Daniel Veillard + + * xmlreader.c: applied another patch from Rob Richards to fix + xmlTextReaderGetAttributeNs and xmlTextReaderMoveToAttributeNs + +Wed Aug 17 09:06:33 CEST 2005 Daniel Veillard + + * xmlreader.c: applied patch from Rob Richards to fix + xmlTextReaderGetAttribute behaviour with namespace declarations + +Fri Aug 12 14:12:56 CEST 2005 Kasimier Buchcik + + * xmlschemas.c include/libxml/xmlerror.h: + Changed output for keyref-match errors; the target-node will + be now reported rather than the scope-node of the keyref + definition - allowing easier chasing of instance errors. + This was reported by Guy Fabrice to the mailing list. + Some initial parsing code for schema redefinitions. + * result/schemas/bug303566_1_1.err + result/schemas/bug312957_1_0.err: Adapted test results due + to the keyref changes. + +Fri Aug 12 12:17:52 CEST 2005 Daniel Veillard + + * valid.c: applied patch from Derek Poon fixing bug #310692 + +Wed Aug 10 23:39:02 CEST 2005 Daniel Veillard + + * xmlschemas.c: fix for bug #312945 as pointed by Dean Hill, the + context type was not always properly initialized. + +Wed Aug 10 18:21:41 CEST 2005 Daniel Veillard + + * relaxng.c: fixed bug #307377 about validation of choices in + list values. + * test/relaxng/307377* result/relaxng/307377* Makefile.am runtest.c: + added examples to the regression tests, problem is that streaming + version gives slightly more informations. + +Wed Aug 10 15:25:53 CEST 2005 Daniel Veillard + + * xinclude.c: fixed bug #302302, nasty but the fix is rather simple. + +Wed Aug 10 11:59:46 CEST 2005 Kasimier Buchcik + + * result/schemas/any6_1_0*: Added missing test results. + +Tue Aug 9 23:37:22 CEST 2005 Daniel Veillard + + * xmlregexp.c: fixed a determinism detection problem exposed by + ##other tests commited by Kasimier, also added a small speedup + of determinism detection. + * test/results/any6_2_0* any8_1_0* any7_1_2* any7_2_2*: added + the results to the regression tests now + +Tue Aug 9 15:54:09 CEST 2005 Kasimier Buchcik + + * test/schemas/any7_2.xml test/schemas/any6_2.xsd + test/schemas/any8_1.xsd test/schemas/any8_0.xml: + Added some more tests for element wildcards. + +Tue Aug 9 14:22:47 CEST 2005 Kasimier Buchcik + + * xmlschemas.c: Fixed #312957 reported by Carol Hunter: + streaming XPath states were not popped in every case, + thus failed to resolve correctly for subsequent input. + * test/schemas/bug312957* result/schemas/bug312957*: + Added the test submitted by Carol Hunter. + +Tue Aug 9 13:07:27 CEST 2005 Daniel Veillard + + * xmlregexp.c xmlschemas.c: trying to nail down the remaining + ##other issues + * result/schemas/any7* test/schemas/any7: completed the tests + and added the results + * result/schemas/any3_0_0.err result/schemas/any5_0_0.err + result/schemas/any5_1_0.err: this slightly chnages the output + from 3 existing tests + +Mon Aug 8 22:33:08 CEST 2005 Daniel Veillard + + * nanoftp.c nanohttp.c xmlschemastypes.c: applied patch from + Marcus Boerger to remove warnings on Windows. + +Mon Aug 8 16:43:04 CEST 2005 Daniel Veillard + + * xmlsave.c include/libxml/xmlsave.h: fixed #145092 by adding + an xmlSaveOption to omit XML declaration + +Mon Aug 8 15:44:54 CEST 2005 Daniel Veillard + + * HTMLtree.c: fixed bug #310333 with a patch close to the provided + patch for HTML UTF-8 serialization + * result/HTML/script2.html: this changed the output of that test + +Mon Aug 8 15:01:51 CEST 2005 Daniel Veillard + + * xmlregexp.c: fixed bug #310264, basically it's about reentrancy + of count based transition, when going though the counter must + be reset to 0 + * test/schemas/bug310264* result/schemas/bug310264*: added the + regression test. + +Mon Aug 8 14:40:52 CEST 2005 Kasimier Buchcik + + * xmlschemas.c: Fixed a memory leak: xmlSchemaFreeAnnot() was + only freeing the first annotation in the list. + +Mon Aug 8 09:44:34 CEST 2005 Daniel Veillard + + * xmlreader.c: applied patch from Rob Richards fixing + xmlTextReaderGetAttribute + +Mon Aug 8 01:41:53 CEST 2005 Daniel Veillard + + * HTMLparser.c: fixed an uninitialized memory access spotted by + valgrind + +Sun Aug 7 12:39:35 CEST 2005 Daniel Veillard + + * test/relaxng/docbook_0.xml: get rid of the dependancy on a locally + installed DTD + * uri.c include/libxml/uri.h xmlIO.c nanoftp.c nanohttp.c: try to + cleanup the Path/URI conversion mess, needed fixing in various + layers and a new API to the uri module which also fixes #306861 + * runtest.c: integrated a regression test specific to check the + URI conversions done before calling the I/O handlers. + +Sat Aug 6 11:06:24 CEST 2005 Daniel Veillard + + * doc/XSLT.html doc/xml.html: small doc fix for #312647 + +Tue Aug 2 13:26:42 CEST 2005 Daniel Veillard + + * win32/configure.js: applied patch from Rob Richards to allow + disabling modules in win32, fixes #304071 + +Mon Aug 1 07:18:53 CEST 2005 Daniel Veillard + + * python/libxml.c: applied fix from Jakub Piotr Clapa for + xmlAttr.parent(), closing #312181 + +Sun Jul 31 18:48:55 CEST 2005 Daniel Veillard + + * schematron.c: report improvement + * test/schematron/zvon* result/schematron/zvon*: more tests + +Sun Jul 31 16:02:59 CEST 2005 Daniel Veillard + + * win32/Makefile.msvc win32/configure.js: applied patch from Rob + Richards to add schematron to the build on Windows + * test/schematron/zvon3* result/schematron/zvon3*: second test + * test/schematron/zvon10* result/schematron/zvon10*: this is the + real second test 10 and 2 are swapped. + +Sun Jul 31 15:42:31 CEST 2005 Daniel Veillard + + * schematron.c: more bug fixes, improve the error reporting. + * test/schematron/zvon2* result/schematron/zvon2*: second test + +Sun Jul 31 14:15:31 CEST 2005 Daniel Veillard + + * schematron.c xmllint.c: fixing the loop bug, fixing schematron + text error rendering + * Makefile.am result/schematron/* test/schematron/zvon1*.sct: + started integrating within "make tests" + +Sat Jul 30 17:26:58 EDT 2005 Daniel Veillard + + * test/schematron/*: a few first tests from Zvon unfortunately + with the old syntax + +Sat Jul 30 17:08:07 EDT 2005 Daniel Veillard + + * schematron.c xmllint.c include/libxml/schematron.h: commiting + work done on the plane last week-end + +Sat Jul 30 15:16:29 CEST 2005 Daniel Veillard + + * runtest.c: allows an extra argument to subset the tests + * xmlregexp.c: big speedup for validation, basically avoided + transition creation explosion when removing epsilon transition + +Sat Jul 30 00:00:46 CEST 2005 Daniel Veillard + + * Makefile.am globals.c parserInternals.c xmlreader.c xmlunicode.c + xmlwriter.c: more cleanups based on sparse reports, added + "make sparse" + +Fri Jul 29 12:11:25 CEST 2005 Daniel Veillard + + * python/libxml.c: don't output any message on failed resolver lookups, + better done by the python user provided resolver layer. + +Fri Jul 29 01:48:02 CEST 2005 Daniel Veillard + + * HTMLparser.c SAX2.c encoding.c globals.c parser.c relaxng.c + runsuite.c runtest.c schematron.c testHTML.c testReader.c + testRegexp.c testSAX.c testThreads.c valid.c xinclude.c xmlIO.c + xmllint.c xmlmodule.c xmlschemas.c xpath.c xpointer.c: a lot of + small cleanups based on Linus' sparse check output. + +Thu Jul 28 21:28:33 CEST 2005 Daniel Veillard + + * include/libxml/Makefile.am: added schematron.h, oops ... + +Thu Jul 28 02:38:21 CEST 2005 Kasimier Buchcik + + * xmlschemastypes.c: Added creation of the content type of + xs:anyType. This is needed when trying to extend xs:anyType + (although it makes no sense to extend it; IMHO the schema + people should have ruled this out). This was reported + by Yong Chen to the mailing list. + * xmlschemas.c: Fixed handling of xs:anyType in + xmlSchemaCheckCOSCTExtends() (reported by Young Chen). Tiny + adjustment to an error report output. + * test/schemas/extension2* result/schemas/extension2*: + Added a test case provided by Young Chen. + +Mon Jul 25 11:41:18 PDT 2005 William Brack + + * uri.c: enhanced xmlBuildRelativeURI to allow the URI and the + base to be in "relative" form + +Sun Jul 24 10:25:41 EDT 2005 Daniel Veillard + + * schematron.c xmllint.c: started adding schematron to the xmllint + tool, the report infrastructure is gonna be fun. + +Sat Jul 23 23:23:51 CEST 2005 Kasimier Buchcik + + * test/schemas/any6* test/schemas/any7*: Added regression tests + (they fail currently), but did not added results yet. + +Sat Jul 23 23:07:05 CEST 2005 Kasimier Buchcik + + * xmlschemas.c: Removed the workaround code in + xmlSchemaValidateElemWildcard() for the wildcard + with namespace == ##other. Support for such wildcards was + implemented by Daniel at the automaton level recently, and + the workaround code iterfered with it. + +Sat Jul 23 10:55:50 EDT 2005 Daniel Veillard + + * pattern.c include/libxml/pattern.h: changed xmlPatterncompile + signature to pass an int and not an enum since it can generate + ABI compat troubles. + * include/libxml/schematron.h schematron.c: adding the new + schematron code, work in progress lots to be left and needing + testing + * include/libxml/xmlversion.h.in include/libxml/xmlwin32version.h.in + Makefile.am configure.in: integration of schematron into the + build + * xpath.c include/libxml/xpath.h: adding flags to control compilation + options right now just XML_XPATH_CHECKNS. + +Sat Jul 23 16:39:35 CEST 2005 Kasimier Buchcik + + * xmlschemas.c: Removed an "internal error" message from + xmlSchemaBuildAContentModel() when an empty model group + definition is hit. + +Sat Jul 23 00:34:07 CEST 2005 Kasimier Buchcik + + * pattern.c: Changed xmlCompileStepPattern() and + xmlCompileAttributeTest() to handle the "xml" prefix without + caring if the XML namespace was supplied by the user. + +Fri Jul 22 00:08:43 CEST 2005 Kasimier Buchcik + + * xmlschemas.c: Fixed xmlSchemaPSimpleTypeErr(), which did not + output the given string arguments correctly. + +Thu Jul 21 09:21:00 EDT 2005 Daniel Veillard + + * error.c globals.c parser.c runtest.c testHTML.c testSAX.c + threads.c valid.c xmllint.c xmlreader.c xmlschemas.c xmlstring.c + xmlwriter.c include/libxml/parser.h include/libxml/relaxng.h + include/libxml/valid.h include/libxml/xmlIO.h + include/libxml/xmlerror.h include/libxml/xmlexports.h + include/libxml/xmlschemas.h: applied a patch from Marcus Boerger + to fix problems with calling conventions on Windows this should + fix #309757 + +Wed Jul 20 14:45:39 CEST 2005 Daniel Veillard + + * parser.c: an optimization of the char data inner loop, + can gain up to 10% in pure SAX2 parsing speed + * xmlschemas.c: applied patch from Kupriyanov Anatolij fixing + a bug in XML Schemas facet comparison #310893 + +Tue Jul 19 17:27:26 CEST 2005 Daniel Veillard + + * xmlregexp.c xmlschemas.c: fixed the error reporting for + not transitions + * result/schemas/any5_0_0* result/schemas/any5_0_2* + result/schemas/any5_1_0*: fixed output + +Tue Jul 19 15:34:12 CEST 2005 Daniel Veillard + + * xmlregexp.c xmlschemas.c include/libxml/xmlautomata.h: fixing + bug #172215 about foreign namespaces by adding support for + negated string transitions. Error messages still need to be + improved. + * test/schemas/any5* result/schemas/any5*: adding regression + tests for this. + +Tue Jul 19 12:33:31 CEST 2005 Daniel Veillard + + * tree.c: applied patch from Alexander Pohoyda fixing xmlGetNodePath + on namespaced attributes #310417. + +Mon Jul 18 23:01:15 CEST 2005 Daniel Veillard + + * doc/xmllint.1 doc/xmllint.html doc/xmllint.xml: --nonet was + ducplicated + +Mon Jul 18 20:49:28 CEST 2005 Daniel Veillard + + * xmlschemas.c: fixed xsd:all when used in conjunction with + substitution groups + * test/schemas/allsg_* result/schemas/allsg_*: adding specific + regression tests, strangely missing from NIST/Sun/Microsoft + testsuites + +Sun Jul 17 07:11:27 CEST 2005 Daniel Veillard + + * xmlschemas.c: fixed bug #307508, a bad automata was built but + this showed as an indeterminist result + +Thu Jul 14 17:53:02 CEST 2005 Daniel Veillard + + * xmlschemastypes.c: found the last bug raised by NIST tests in + comparing base64 strings, result from runsuite: + ## NIST test suite for Schemas version NIST2004-01-14 + Ran 23170 tests (3953 schemata), no errors + +Thu Jul 14 14:57:36 CEST 2005 Daniel Veillard + + * testRegexp.c: fixed where xmlMemoryDump() should be called. + * xmlregexp.c: fixed handling of {0}, \n, \r and \t, two bugs + affecting NIST regression tests + +Thu Jul 14 11:30:24 CEST 2005 Daniel Veillard + + * configure.in: applied a patch from Gerrit P. Haase to add + module support on cygwin + +Thu Jul 14 10:56:42 CEST 2005 Daniel Veillard + + * HTMLparser.c: fixed a potential buffer overrun error introduced + on last commit to htmlParseScript() c.f. #310229 + +Thu Jul 14 23:48:17 PDT 2005 William Brack + + * xpath.c: Changed the behaviour of xmlXPathEqualNodeSetFloat to + return TRUE if a nodeset with a numeric value of NaN is compared + for inequality with any numeric value (bug 309914). + +Thu Jul 14 01:03:03 CEST 2005 Daniel Veillard + + * error.c relaxng.c xmlreader.c xmlschemas.c include/libxml/relaxng.h + include/libxml/xmlschemas.h: applied patch from Marcus Boerger + to route relaxng and schemas error messages when using the reader + through the structured interface if activated. + * elfgcchack.h doc/* testapi.c: rebuilt since this add new APIs + to test. + +Wed Jul 13 18:35:47 CEST 2005 Daniel Veillard + + * HTMLparser.c: applied UTF-8 script parsing bug #310229 fix from + Jiri Netolicky + * result/HTML/script2.html* test/HTML/script2.html: added the test + case from the regression suite + +Tue Jul 12 17:08:11 CEST 2005 Daniel Veillard + + * nanohttp.c: fixed bug #310105 with http_proxy environments with + patch provided by Peter Breitenlohner + Mon Jul 11 00:28:10 CEST 2005 Daniel Veillard * Makefile.am NEWS configure.in doc/*: preparing release 2.6.20 diff --git a/HTMLparser.c b/HTMLparser.c index c6115d0..d11ae08 100644 --- a/HTMLparser.c +++ b/HTMLparser.c @@ -192,16 +192,16 @@ htmlnamePop(htmlParserCtxtPtr ctxt) const xmlChar *ret; if (ctxt->nameNr <= 0) - return (0); + return (NULL); ctxt->nameNr--; if (ctxt->nameNr < 0) - return (0); + return (NULL); if (ctxt->nameNr > 0) ctxt->name = ctxt->nameTab[ctxt->nameNr - 1]; else ctxt->name = NULL; ret = ctxt->nameTab[ctxt->nameNr]; - ctxt->nameTab[ctxt->nameNr] = 0; + ctxt->nameTab[ctxt->nameNr] = NULL; return (ret); } @@ -964,7 +964,6 @@ NULL static const char *htmlNoContentElements[] = { "html", "head", - "body", NULL }; @@ -2042,6 +2041,7 @@ static int areBlanks(htmlParserCtxtPtr ctxt, const xmlChar *str, int len) { unsigned int i; int j; xmlNodePtr lastChild; + xmlDtdPtr dtd; for (j = 0;j < len;j++) if (!(IS_BLANK_CH(str[j]))) return(0); @@ -2054,8 +2054,17 @@ static int areBlanks(htmlParserCtxtPtr ctxt, const xmlChar *str, int len) { return(1); if (xmlStrEqual(ctxt->name, BAD_CAST"head")) return(1); - if (xmlStrEqual(ctxt->name, BAD_CAST"body")) - return(1); + + /* Only strip CDATA children of the body tag for strict HTML DTDs */ + if (xmlStrEqual(ctxt->name, BAD_CAST "body") && ctxt->myDoc != NULL) { + dtd = xmlGetIntSubset(ctxt->myDoc); + if (dtd != NULL && dtd->ExternalID != NULL) { + if (!xmlStrcasecmp(dtd->ExternalID, BAD_CAST "-//W3C//DTD HTML 4.01//EN") || + !xmlStrcasecmp(dtd->ExternalID, BAD_CAST "-//W3C//DTD HTML 4//EN")) + return(1); + } + } + if (ctxt->node == NULL) return(0); lastChild = xmlGetLastChild(ctxt->node); while ((lastChild) && (lastChild->type == XML_COMMENT_NODE)) @@ -2627,12 +2636,12 @@ htmlParsePubidLiteral(htmlParserCtxtPtr ctxt) { */ static void htmlParseScript(htmlParserCtxtPtr ctxt) { - xmlChar buf[HTML_PARSER_BIG_BUFFER_SIZE + 1]; + xmlChar buf[HTML_PARSER_BIG_BUFFER_SIZE + 5]; int nbchar = 0; - xmlChar cur; + int cur,l; SHRINK; - cur = CUR; + cur = CUR_CHAR(l); while (IS_CHAR_CH(cur)) { if ((cur == '<') && (NXT(1) == '!') && (NXT(2) == '-') && (NXT(3) == '-')) { @@ -2648,20 +2657,39 @@ htmlParseScript(htmlParserCtxtPtr ctxt) { } nbchar = 0; htmlParseComment(ctxt); - cur = CUR; + cur = CUR_CHAR(l); continue; } else if ((cur == '<') && (NXT(1) == '/')) { - /* - * One should break here, the specification is clear: - * Authors should therefore escape "= 'A') && (NXT(2) <= 'Z')) || - ((NXT(2) >= 'a') && (NXT(2) <= 'z'))) - break; /* while */ + /* + * One should break here, the specification is clear: + * Authors should therefore escape "recovery) { + if (xmlStrncasecmp(ctxt->name, ctxt->input->cur+2, + xmlStrlen(ctxt->name)) == 0) + { + break; /* while */ + } else { + htmlParseErr(ctxt, XML_ERR_TAG_NAME_MISMATCH, + "Element %s embbeds close tag\n", + ctxt->name, NULL); + } + } else { + if (((NXT(2) >= 'A') && (NXT(2) <= 'Z')) || + ((NXT(2) >= 'a') && (NXT(2) <= 'z'))) + { + break; /* while */ + } + } } - buf[nbchar++] = cur; + COPY_BUF(l,buf,nbchar,cur); if (nbchar >= HTML_PARSER_BIG_BUFFER_SIZE) { if (ctxt->sax->cdataBlock!= NULL) { /* @@ -2673,9 +2701,10 @@ htmlParseScript(htmlParserCtxtPtr ctxt) { } nbchar = 0; } - NEXT; - cur = CUR; + NEXTL(l); + cur = CUR_CHAR(l); } + if (!(IS_CHAR_CH(cur))) { htmlParseErrInt(ctxt, XML_ERR_INVALID_CHAR, "Invalid char in CDATA 0x%X\n", cur); @@ -2743,6 +2772,8 @@ htmlParseCharData(htmlParserCtxtPtr ctxt) { } } if (nbchar != 0) { + buf[nbchar] = 0; + /* * Ok the segment is to be consumed as chars. */ @@ -3578,6 +3609,15 @@ htmlParseEndTag(htmlParserCtxtPtr ctxt) if ((!IS_CHAR_CH(CUR)) || (CUR != '>')) { htmlParseErr(ctxt, XML_ERR_GT_REQUIRED, "End tag : expected '>'\n", NULL, NULL); + if (ctxt->recovery) { + /* + * We're not at the ending > !! + * Error, unless in recover mode where we search forwards + * until we find a > + */ + while (CUR != '\0' && CUR != '>') NEXT; + NEXT; + } } else NEXT; @@ -5176,10 +5216,18 @@ htmlParseChunk(htmlParserCtxtPtr ctxt, const char *chunk, int size, (ctxt->input->buf != NULL) && (ctxt->instate != XML_PARSER_EOF)) { int base = ctxt->input->base - ctxt->input->buf->buffer->content; int cur = ctxt->input->cur - ctxt->input->base; + int res; - xmlParserInputBufferPush(ctxt->input->buf, size, chunk); + res = xmlParserInputBufferPush(ctxt->input->buf, size, chunk); + if (res < 0) { + ctxt->errNo = XML_PARSER_EOF; + ctxt->disableSAX = 1; + return (XML_PARSER_EOF); + } ctxt->input->base = ctxt->input->buf->buffer->content + base; ctxt->input->cur = ctxt->input->base + cur; + ctxt->input->end = + &ctxt->input->buf->buffer->content[ctxt->input->buf->buffer->use]; #ifdef DEBUG_PUSH xmlGenericError(xmlGenericErrorContext, "HPP: pushed %d\n", size); #endif @@ -5777,6 +5825,14 @@ htmlCtxtUseOptions(htmlParserCtxtPtr ctxt, int options) ctxt->options |= XML_PARSE_NOBLANKS; } else ctxt->keepBlanks = 1; + if (options & HTML_PARSE_RECOVER) { + ctxt->recovery = 1; + } else + ctxt->recovery = 0; + if (options & HTML_PARSE_COMPACT) { + ctxt->options |= HTML_PARSE_COMPACT; + options -= HTML_PARSE_COMPACT; + } ctxt->dictNames = 0; return (options); } diff --git a/HTMLtree.c b/HTMLtree.c index de086db..e77ee65 100644 --- a/HTMLtree.c +++ b/HTMLtree.c @@ -552,6 +552,8 @@ htmlDocDumpMemory(xmlDocPtr cur, xmlChar**mem, int *size) { *size = 0; return; } + } else { + handler = xmlFindCharEncodingHandler(encoding); } } @@ -1026,6 +1028,8 @@ htmlDocDump(FILE *f, xmlDocPtr cur) { handler = xmlFindCharEncodingHandler(encoding); if (handler == NULL) return(-1); + } else { + handler = xmlFindCharEncodingHandler(encoding); } } diff --git a/Makefile.am b/Makefile.am index 69dba11..ee09a7b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -27,7 +27,8 @@ libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c \ catalog.c globals.c threads.c c14n.c xmlstring.c \ xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \ triostr.c trio.c xmlreader.c relaxng.c dict.c SAX2.c \ - xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c xmlmodule.c + xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c \ + xmlmodule.c schematron.c else libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c \ parser.c tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c \ @@ -37,7 +38,7 @@ libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c \ xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \ xmlreader.c relaxng.c dict.c SAX2.c \ xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c \ - xmlmodule.c + xmlmodule.c schematron.c endif DEPS = $(top_builddir)/libxml2.la @@ -158,7 +159,7 @@ check-local: all tests testall : tests SVGtests SAXtests -tests: XMLtests XMLenttests NStests IDtests Errtests APItests @READER_TEST@ @TEST_SAX@ @TEST_PUSH@ @TEST_HTML@ @TEST_PHTML@ @TEST_VALID@ URItests @TEST_PATTERN@ @TEST_XPATH@ @TEST_XPTR@ @TEST_XINCLUDE@ @TEST_C14N@ @TEST_DEBUG@ @TEST_CATALOG@ @TEST_REGEXPS@ @TEST_SCHEMAS@ @TEST_THREADS@ Timingtests @TEST_VTIME@ @PYTHON_TESTS@ @TEST_MODULES@ +tests: XMLtests XMLenttests NStests IDtests Errtests APItests @READER_TEST@ @TEST_SAX@ @TEST_PUSH@ @TEST_HTML@ @TEST_PHTML@ @TEST_VALID@ URItests @TEST_PATTERN@ @TEST_XPATH@ @TEST_XPTR@ @TEST_XINCLUDE@ @TEST_C14N@ @TEST_DEBUG@ @TEST_CATALOG@ @TEST_REGEXPS@ @TEST_SCHEMAS@ @TEST_SCHEMATRON@ @TEST_THREADS@ Timingtests @TEST_VTIME@ @PYTHON_TESTS@ @TEST_MODULES@ @(if [ "@PYTHON_SUBDIR@" != "" ] ; then cd python ; \ $(MAKE) MAKEFLAGS+=--silent tests ; fi) @(cd doc/examples ; $(MAKE) MAKEFLAGS+=--silent tests) @@ -821,6 +822,21 @@ Regexptests: testRegexp$(EXEEXT) if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \ rm result.$$name ; \ fi ; fi ; done) + @echo "## Formal expresssions regression tests" + -@(for i in $(srcdir)/test/expr/* ; do \ + name=`basename $$i`; \ + if [ ! -d $$i ] ; then \ + if [ ! -f $(srcdir)/result/expr/$$name ] ; then \ + echo New test file $$name ; \ + $(CHECKER) $(top_builddir)/testRegexp --expr -i $$i > $(srcdir)/result/expr/$$name; \ + grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\ + else \ + log=`$(CHECKER) $(top_builddir)/testRegexp --expr -i $$i 2>&1 > result.$$name ; \ + grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\ + diff $(srcdir)/result/expr/$$name result.$$name` ; \ + if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \ + rm result.$$name ; \ + fi ; fi ; done) Automatatests: testAutomata$(EXEEXT) @(echo > .memdump) @@ -997,7 +1013,7 @@ Relaxtests: xmllint$(EXEEXT) > res.$$name 2> err.$$name;\ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\ diff $(srcdir)/result/relaxng/"$$name"_"$$xno" res.$$name;\ - if [ "$$name" != "tutor10_1" -a "$$name" != "tutor10_2" -a "$$name" != "tutor3_2" ] ; then \ + if [ "$$name" != "tutor10_1" -a "$$name" != "tutor10_2" -a "$$name" != "tutor3_2" -a "$$name" != "307377" ] ; then \ diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \ err.$$name | grep -v "error detected at";\ fi ; grep Unimplemented err.$$name`; \ @@ -1006,6 +1022,35 @@ Relaxtests: xmllint$(EXEEXT) fi ; fi ; \ done; done) +Schematrontests: xmllint$(EXEEXT) + @(echo > .memdump) + @echo "## Schematron regression tests" + -@(for i in $(srcdir)/test/schematron/*.sct ; do \ + name=`basename $$i | sed 's+\.sct++'`; \ + for j in $(srcdir)/test/schematron/"$$name"_*.xml ; do \ + if [ -f $$j ] ; then \ + xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \ + if [ ! -f $(srcdir)/result/schematron/"$$name"_"$$xno" ]; \ + then \ + echo New test file "$$name"_"$$xno" ; \ + $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --schematron $$i $$j \ + > $(srcdir)/result/schematron/"$$name"_"$$xno" \ + 2> $(srcdir)/result/schematron/"$$name"_"$$xno".err; \ + grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\ + else \ + log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --schematron $$i $$j \ + > res.$$name 2> err.$$name;\ + grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\ + diff $(srcdir)/result/schematron/"$$name"_"$$xno" \ + res.$$name;\ + diff $(srcdir)/result/schematron/"$$name"_"$$xno".err \ + err.$$name | grep -v "error detected at";\ + grep Unimplemented err.$$name`; \ + if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo $$log ; fi ; \ + rm res.$$name err.$$name ; \ + fi ; fi ; \ + done; done) + RelaxNGPythonTests: @(if [ -x $(PYTHON) ] ; then \ PYTHONPATH=$(top_builddir)/python:$(top_builddir)/python/.libs:$$PYTHONPATH ; \ @@ -1134,3 +1179,6 @@ install-data-local: tst: tst.c $(CC) $(CFLAGS) -Iinclude -o tst tst.c .libs/libxml2.a -lpthread -lm -lz + +sparse: clean + $(MAKE) CC=cgcc diff --git a/Makefile.in b/Makefile.in index 5c831ad..3e66d17 100644 --- a/Makefile.in +++ b/Makefile.in @@ -88,7 +88,8 @@ am__libxml2_la_SOURCES_DIST = SAX.c entities.c encoding.c error.c \ DOCBparser.c catalog.c globals.c threads.c c14n.c xmlstring.c \ xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \ xmlreader.c relaxng.c dict.c SAX2.c xmlwriter.c legacy.c \ - chvalid.c pattern.c xmlsave.c xmlmodule.c triostr.c trio.c + chvalid.c pattern.c xmlsave.c xmlmodule.c schematron.c \ + triostr.c trio.c @WITH_TRIO_SOURCES_FALSE@am_libxml2_la_OBJECTS = SAX.lo entities.lo \ @WITH_TRIO_SOURCES_FALSE@ encoding.lo error.lo \ @WITH_TRIO_SOURCES_FALSE@ parserInternals.lo parser.lo tree.lo \ @@ -103,7 +104,7 @@ am__libxml2_la_SOURCES_DIST = SAX.c entities.c encoding.c error.c \ @WITH_TRIO_SOURCES_FALSE@ xmlunicode.lo xmlreader.lo relaxng.lo \ @WITH_TRIO_SOURCES_FALSE@ dict.lo SAX2.lo xmlwriter.lo \ @WITH_TRIO_SOURCES_FALSE@ legacy.lo chvalid.lo pattern.lo \ -@WITH_TRIO_SOURCES_FALSE@ xmlsave.lo xmlmodule.lo +@WITH_TRIO_SOURCES_FALSE@ xmlsave.lo xmlmodule.lo schematron.lo @WITH_TRIO_SOURCES_TRUE@am_libxml2_la_OBJECTS = SAX.lo entities.lo \ @WITH_TRIO_SOURCES_TRUE@ encoding.lo error.lo \ @WITH_TRIO_SOURCES_TRUE@ parserInternals.lo parser.lo tree.lo \ @@ -119,7 +120,7 @@ am__libxml2_la_SOURCES_DIST = SAX.c entities.c encoding.c error.c \ @WITH_TRIO_SOURCES_TRUE@ xmlreader.lo relaxng.lo dict.lo \ @WITH_TRIO_SOURCES_TRUE@ SAX2.lo xmlwriter.lo legacy.lo \ @WITH_TRIO_SOURCES_TRUE@ chvalid.lo pattern.lo xmlsave.lo \ -@WITH_TRIO_SOURCES_TRUE@ xmlmodule.lo +@WITH_TRIO_SOURCES_TRUE@ xmlmodule.lo schematron.lo libxml2_la_OBJECTS = $(am_libxml2_la_OBJECTS) testdso_la_LIBADD = am_testdso_la_OBJECTS = testdso.lo @@ -319,6 +320,7 @@ TEST_PUSH = @TEST_PUSH@ TEST_REGEXPS = @TEST_REGEXPS@ TEST_SAX = @TEST_SAX@ TEST_SCHEMAS = @TEST_SCHEMAS@ +TEST_SCHEMATRON = @TEST_SCHEMATRON@ TEST_THREADS = @TEST_THREADS@ TEST_VALID = @TEST_VALID@ TEST_VTIME = @TEST_VTIME@ @@ -354,6 +356,7 @@ WITH_REGEXPS = @WITH_REGEXPS@ WITH_RUN_DEBUG = @WITH_RUN_DEBUG@ WITH_SAX1 = @WITH_SAX1@ WITH_SCHEMAS = @WITH_SCHEMAS@ +WITH_SCHEMATRON = @WITH_SCHEMATRON@ WITH_THREADS = @WITH_THREADS@ WITH_TREE = @WITH_TREE@ WITH_TRIO = @WITH_TRIO@ @@ -438,7 +441,7 @@ libxml2_la_LDFLAGS = @CYGWIN_EXTRA_LDFLAGS@ @WIN32_EXTRA_LDFLAGS@ -version-info @WITH_TRIO_SOURCES_FALSE@ xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \ @WITH_TRIO_SOURCES_FALSE@ xmlreader.c relaxng.c dict.c SAX2.c \ @WITH_TRIO_SOURCES_FALSE@ xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c \ -@WITH_TRIO_SOURCES_FALSE@ xmlmodule.c +@WITH_TRIO_SOURCES_FALSE@ xmlmodule.c schematron.c @WITH_TRIO_SOURCES_TRUE@libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c \ @WITH_TRIO_SOURCES_TRUE@ parser.c tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c \ @@ -447,7 +450,8 @@ libxml2_la_LDFLAGS = @CYGWIN_EXTRA_LDFLAGS@ @WIN32_EXTRA_LDFLAGS@ -version-info @WITH_TRIO_SOURCES_TRUE@ catalog.c globals.c threads.c c14n.c xmlstring.c \ @WITH_TRIO_SOURCES_TRUE@ xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \ @WITH_TRIO_SOURCES_TRUE@ triostr.c trio.c xmlreader.c relaxng.c dict.c SAX2.c \ -@WITH_TRIO_SOURCES_TRUE@ xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c xmlmodule.c +@WITH_TRIO_SOURCES_TRUE@ xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c \ +@WITH_TRIO_SOURCES_TRUE@ xmlmodule.c schematron.c DEPS = $(top_builddir)/libxml2.la LDADDS = @STATIC_BINARIES@ $(top_builddir)/libxml2.la @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) @M_LIBS@ @WIN32_EXTRA_LIBADD@ @@ -791,6 +795,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/relaxng.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/runsuite.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/runtest.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/schematron.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testAutomata.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testC14N.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testHTML.Po@am__quote@ @@ -1412,7 +1417,7 @@ check-local: all tests testall : tests SVGtests SAXtests -tests: XMLtests XMLenttests NStests IDtests Errtests APItests @READER_TEST@ @TEST_SAX@ @TEST_PUSH@ @TEST_HTML@ @TEST_PHTML@ @TEST_VALID@ URItests @TEST_PATTERN@ @TEST_XPATH@ @TEST_XPTR@ @TEST_XINCLUDE@ @TEST_C14N@ @TEST_DEBUG@ @TEST_CATALOG@ @TEST_REGEXPS@ @TEST_SCHEMAS@ @TEST_THREADS@ Timingtests @TEST_VTIME@ @PYTHON_TESTS@ @TEST_MODULES@ +tests: XMLtests XMLenttests NStests IDtests Errtests APItests @READER_TEST@ @TEST_SAX@ @TEST_PUSH@ @TEST_HTML@ @TEST_PHTML@ @TEST_VALID@ URItests @TEST_PATTERN@ @TEST_XPATH@ @TEST_XPTR@ @TEST_XINCLUDE@ @TEST_C14N@ @TEST_DEBUG@ @TEST_CATALOG@ @TEST_REGEXPS@ @TEST_SCHEMAS@ @TEST_SCHEMATRON@ @TEST_THREADS@ Timingtests @TEST_VTIME@ @PYTHON_TESTS@ @TEST_MODULES@ @(if [ "@PYTHON_SUBDIR@" != "" ] ; then cd python ; \ $(MAKE) MAKEFLAGS+=--silent tests ; fi) @(cd doc/examples ; $(MAKE) MAKEFLAGS+=--silent tests) @@ -2075,6 +2080,21 @@ Regexptests: testRegexp$(EXEEXT) if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \ rm result.$$name ; \ fi ; fi ; done) + @echo "## Formal expresssions regression tests" + -@(for i in $(srcdir)/test/expr/* ; do \ + name=`basename $$i`; \ + if [ ! -d $$i ] ; then \ + if [ ! -f $(srcdir)/result/expr/$$name ] ; then \ + echo New test file $$name ; \ + $(CHECKER) $(top_builddir)/testRegexp --expr -i $$i > $(srcdir)/result/expr/$$name; \ + grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\ + else \ + log=`$(CHECKER) $(top_builddir)/testRegexp --expr -i $$i 2>&1 > result.$$name ; \ + grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\ + diff $(srcdir)/result/expr/$$name result.$$name` ; \ + if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \ + rm result.$$name ; \ + fi ; fi ; done) Automatatests: testAutomata$(EXEEXT) @(echo > .memdump) @@ -2251,7 +2271,7 @@ Relaxtests: xmllint$(EXEEXT) > res.$$name 2> err.$$name;\ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\ diff $(srcdir)/result/relaxng/"$$name"_"$$xno" res.$$name;\ - if [ "$$name" != "tutor10_1" -a "$$name" != "tutor10_2" -a "$$name" != "tutor3_2" ] ; then \ + if [ "$$name" != "tutor10_1" -a "$$name" != "tutor10_2" -a "$$name" != "tutor3_2" -a "$$name" != "307377" ] ; then \ diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \ err.$$name | grep -v "error detected at";\ fi ; grep Unimplemented err.$$name`; \ @@ -2260,6 +2280,35 @@ Relaxtests: xmllint$(EXEEXT) fi ; fi ; \ done; done) +Schematrontests: xmllint$(EXEEXT) + @(echo > .memdump) + @echo "## Schematron regression tests" + -@(for i in $(srcdir)/test/schematron/*.sct ; do \ + name=`basename $$i | sed 's+\.sct++'`; \ + for j in $(srcdir)/test/schematron/"$$name"_*.xml ; do \ + if [ -f $$j ] ; then \ + xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \ + if [ ! -f $(srcdir)/result/schematron/"$$name"_"$$xno" ]; \ + then \ + echo New test file "$$name"_"$$xno" ; \ + $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --schematron $$i $$j \ + > $(srcdir)/result/schematron/"$$name"_"$$xno" \ + 2> $(srcdir)/result/schematron/"$$name"_"$$xno".err; \ + grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\ + else \ + log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --schematron $$i $$j \ + > res.$$name 2> err.$$name;\ + grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\ + diff $(srcdir)/result/schematron/"$$name"_"$$xno" \ + res.$$name;\ + diff $(srcdir)/result/schematron/"$$name"_"$$xno".err \ + err.$$name | grep -v "error detected at";\ + grep Unimplemented err.$$name`; \ + if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo $$log ; fi ; \ + rm res.$$name err.$$name ; \ + fi ; fi ; \ + done; done) + RelaxNGPythonTests: @(if [ -x $(PYTHON) ] ; then \ PYTHONPATH=$(top_builddir)/python:$(top_builddir)/python/.libs:$$PYTHONPATH ; \ @@ -2353,6 +2402,9 @@ install-data-local: tst: tst.c $(CC) $(CFLAGS) -Iinclude -o tst tst.c .libs/libxml2.a -lpthread -lm -lz + +sparse: clean + $(MAKE) CC=cgcc # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/NEWS b/NEWS index a8f28ea..5187931 100644 --- a/NEWS +++ b/NEWS @@ -15,6 +15,45 @@ ChangeLog.html to the CVS at http://cvs.gnome.org/viewcvs/libxml2/ code base.There is the list of public releases: +2.6.21: Sep 4 2005: + - build fixes: Cygwin portability fixes (Gerrit P. Haase), calling + convention problems on Windows (Marcus Boerger), cleanups based on + Linus' sparse tool, update of win32/configure.js (Rob Richards), + remove warnings on Windows(Marcus Boerger), compilation without SAX1, + detection of the Python binary, use $GCC inestad of $CC = 'gcc' (Andrew + W. Nosenko), compilation/link with threads and old gcc, compile + problem by C370 on Z/OS, + - bug fixes: http_proxy environments (Peter Breitenlohner), HTML UTF-8 + bug (Jiri Netolicky), XPath NaN compare bug (William Brack), + htmlParseScript potential bug, Schemas regexp handling of spaces, + Base64 Schemas comparisons NIST passes, automata build error xsd:all, + xmlGetNodePath for namespaced attributes (Alexander Pohoyda), + xmlSchemas foreign namespaces handling, XML Schemas facet comparison + (Kupriyanov Anatolij), xmlSchemaPSimpleTypeErr error report (Kasimier + Buchcik), xml: namespace ahndling in Schemas (Kasimier), empty model + group in Schemas (Kasimier), wilcard in Schemas (Kasimier), URI + composition (William), xs:anyType in Schemas (Kasimier), Python resolver + emmitting error messages directly, Python xmlAttr.parent (Jakub Piotr + Clapa), trying to fix the file path/URI conversion, + xmlTextReaderGetAttribute fix (Rob Richards), xmlSchemaFreeAnnot memleak + (Kasimier), HTML UTF-8 serialization, streaming XPath, Schemas determinism + detection problem, XInclude bug, Schemas context type (Dean Hill), + validation fix (Derek Poon), xmlTextReaderGetAttribute[Ns] namespaces + (Rob Richards), Schemas type fix (Kuba Nowakowski), UTF-8 parser bug, + error in encoding handling, xmlGetLineNo fixes, bug on entities handling, + entity name extraction in error handling with XInclude, text nodes + in HTML body tags (Gary Coady), xml:id and IDness at the treee level + fixes, XPath streaming patterns bugs. + - improvements: structured interfaces for schemas and RNG error reports + (Marcus Boerger), optimization of the char data inner loop parsing + (thanks to Behdad Esfahbod for the idea), schematron validation + though not finished yet, xmlSaveOption to omit XML declaration, + keyref match error reports (Kasimier), formal expression handling + code not plugged yet, more lax mode for the HTML parser, + parser XML_PARSE_COMPACT option for text nodes allocation. + - documentation: xmllint man page had --nonet duplicated + + 2.6.20: Jul 10 2005: - build fixes: Windows build (Rob Richards), Mingw compilation (Igor Zlatkovic), Windows Makefile (Igor), gcc warnings (Kasimier and diff --git a/SAX2.c b/SAX2.c index 16e361f..9f7edf6 100644 --- a/SAX2.c +++ b/SAX2.c @@ -227,7 +227,7 @@ const xmlChar * xmlSAX2GetSystemId(void *ctx) { xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; - if ((ctx == NULL) || (ctxt->input == NULL)) return(0); + if ((ctx == NULL) || (ctxt->input == NULL)) return(NULL); return((const xmlChar *) ctxt->input->filename); } @@ -1022,7 +1022,7 @@ xmlSAX2EndDocument(void *ctx) } } -#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) +#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) /** * xmlSAX2AttributeInternal: * @ctx: the user data (XML parser context) @@ -1316,11 +1316,7 @@ xmlSAX2AttributeInternal(void *ctx, const xmlChar *fullname, * when validating, the ID registration is done at the attribute * validation level. Otherwise we have to do specific handling here. */ - if (xmlIsID(ctxt->myDoc, ctxt->node, ret)) - xmlAddID(&ctxt->vctxt, ctxt->myDoc, value, ret); - else if (xmlIsRef(ctxt->myDoc, ctxt->node, ret)) - xmlAddRef(&ctxt->vctxt, ctxt->myDoc, value, ret); - else if (xmlStrEqual(fullname, BAD_CAST "xml:id")) { + if (xmlStrEqual(fullname, BAD_CAST "xml:id")) { /* * Add the xml:id value * @@ -1332,7 +1328,10 @@ xmlSAX2AttributeInternal(void *ctx, const xmlChar *fullname, (const char *) value, NULL); } xmlAddID(&ctxt->vctxt, ctxt->myDoc, value, ret); - } + } else if (xmlIsID(ctxt->myDoc, ctxt->node, ret)) + xmlAddID(&ctxt->vctxt, ctxt->myDoc, value, ret); + else if (xmlIsRef(ctxt->myDoc, ctxt->node, ret)) + xmlAddRef(&ctxt->vctxt, ctxt->myDoc, value, ret); } error: @@ -1777,6 +1776,7 @@ xmlSAX2TextNode(xmlParserCtxtPtr ctxt, const xmlChar *str, int len) { xmlErrMemory(ctxt, "xmlSAX2Characters"); return(NULL); } + memset(ret, 0, sizeof(xmlNode)); /* * intern the formatting blanks found between tags, or the * very short strings @@ -1784,7 +1784,14 @@ xmlSAX2TextNode(xmlParserCtxtPtr ctxt, const xmlChar *str, int len) { if (ctxt->dictNames) { xmlChar cur = str[len]; - if ((len <= 3) && ((cur == '"') || (cur == '\'') || + if ((len < (int) (2 * sizeof(void *))) && + (ctxt->options & XML_PARSE_COMPACT)) { + /* store the string in the node overrithing properties and nsDef */ + xmlChar *tmp = (xmlChar *) &(ret->properties); + memcpy(tmp, str, len); + tmp[len] = 0; + intern = tmp; + } else if ((len <= 3) && ((cur == '"') || (cur == '\'') || ((cur == '<') && (str[len + 1] != '!')))) { intern = xmlDictLookup(ctxt->dict, str, len); } else if (IS_BLANK_CH(*str) && (len < 60) && (cur == '<') && @@ -1798,7 +1805,6 @@ xmlSAX2TextNode(xmlParserCtxtPtr ctxt, const xmlChar *str, int len) { } } skip: - memset(ret, 0, sizeof(xmlNode)); ret->type = XML_TEXT_NODE; ret->name = xmlStringText; @@ -2040,16 +2046,7 @@ xmlSAX2AttributeNs(xmlParserCtxtPtr ctxt, * when validating, the ID registration is done at the attribute * validation level. Otherwise we have to do specific handling here. */ - if (xmlIsID(ctxt->myDoc, ctxt->node, ret)) { - /* might be worth duplicate entry points and not copy */ - if (dup == NULL) - dup = xmlStrndup(value, valueend - value); - xmlAddID(&ctxt->vctxt, ctxt->myDoc, dup, ret); - } else if (xmlIsRef(ctxt->myDoc, ctxt->node, ret)) { - if (dup == NULL) - dup = xmlStrndup(value, valueend - value); - xmlAddRef(&ctxt->vctxt, ctxt->myDoc, dup, ret); - } else if ((prefix == ctxt->str_xml) && + if ((prefix == ctxt->str_xml) && (localname[0] == 'i') && (localname[1] == 'd') && (localname[2] == 0)) { /* @@ -2067,6 +2064,15 @@ xmlSAX2AttributeNs(xmlParserCtxtPtr ctxt, } #endif xmlAddID(&ctxt->vctxt, ctxt->myDoc, dup, ret); + } else if (xmlIsID(ctxt->myDoc, ctxt->node, ret)) { + /* might be worth duplicate entry points and not copy */ + if (dup == NULL) + dup = xmlStrndup(value, valueend - value); + xmlAddID(&ctxt->vctxt, ctxt->myDoc, dup, ret); + } else if (xmlIsRef(ctxt->myDoc, ctxt->node, ret)) { + if (dup == NULL) + dup = xmlStrndup(value, valueend - value); + xmlAddRef(&ctxt->vctxt, ctxt->myDoc, dup, ret); } } if (dup != NULL) @@ -2407,8 +2413,11 @@ xmlSAX2Characters(void *ctx, const xmlChar *ch, int len) * We try to minimaze realloc() uses and avoid copying * and recomputing length over and over. */ - if ((ctxt->nodemem == ctxt->nodelen + 1) && - (xmlDictOwns(ctxt->dict, lastChild->content))) { + if (lastChild->content == (xmlChar *)&(lastChild->properties)) { + lastChild->content = xmlStrdup(lastChild->content); + lastChild->properties = NULL; + } else if ((ctxt->nodemem == ctxt->nodelen + 1) && + (xmlDictOwns(ctxt->dict, lastChild->content))) { lastChild->content = xmlStrdup(lastChild->content); } if (ctxt->nodelen + len >= ctxt->nodemem) { @@ -2496,6 +2505,14 @@ xmlSAX2ProcessingInstruction(void *ctx, const xmlChar *target, if (ret == NULL) return; parent = ctxt->node; + if (ctxt->linenumbers) { + if (ctxt->input != NULL) { + if (ctxt->input->line < 65535) + ret->line = (short) ctxt->input->line; + else + ret->line = 65535; + } + } if (ctxt->inSubset == 1) { xmlAddChild((xmlNodePtr) ctxt->myDoc->intSubset, ret); return; @@ -2548,6 +2565,14 @@ xmlSAX2Comment(void *ctx, const xmlChar *value) #endif ret = xmlNewDocComment(ctxt->myDoc, value); if (ret == NULL) return; + if (ctxt->linenumbers) { + if (ctxt->input != NULL) { + if (ctxt->input->line < 65535) + ret->line = (short) ctxt->input->line; + else + ret->line = 65535; + } + } if (ctxt->inSubset == 1) { xmlAddChild((xmlNodePtr) ctxt->myDoc->intSubset, ret); diff --git a/configure b/configure index b5ac4f1..fc6f2f8 100755 --- a/configure +++ b/configure @@ -463,7 +463,7 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os LIBXML_MAJOR_VERSION LIBXML_MINOR_VERSION LIBXML_MICRO_VERSION LIBXML_VERSION LIBXML_VERSION_INFO LIBXML_VERSION_NUMBER LIBXML_VERSION_EXTRA INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP RM MV TAR PERL XMLLINT XSLTPROC EGREP U ANSI2KNR LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB DLLTOOL ac_ct_DLLTOOL AS ac_ct_AS OBJDUMP ac_ct_OBJDUMP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL HTML_DIR Z_CFLAGS Z_LIBS PYTHON WITH_PYTHON_TRUE WITH_PYTHON_FALSE pythondir PYTHON_SUBDIR WITH_MODULES MODULE_PLATFORM_LIBS MODULE_EXTENSION TEST_MODULES STATIC_BINARIES WITH_TRIO_SOURCES_TRUE WITH_TRIO_SOURCES_FALSE WITH_TRIO THREAD_LIBS BASE_THREAD_LIBS WITH_THREADS THREAD_CFLAGS TEST_THREADS THREADS_W32 WITH_TREE WITH_FTP FTP_OBJ WITH_HTTP HTTP_OBJ WITH_LEGACY WITH_READER READER_TEST WITH_WRITER WITH_PATTERN TEST_PATTERN WITH_SAX1 TEST_SAX WITH_PUSH TEST_PUSH WITH_HTML HTML_OBJ TEST_HTML TEST_PHTML WITH_VALID TEST_VALID TEST_VTIME WITH_CATALOG CATALOG_OBJ TEST_CATALOG WITH_DOCB DOCB_OBJ WITH_XPTR XPTR_OBJ TEST_XPTR WITH_C14N C14N_OBJ TEST_C14N WITH_XINCLUDE XINCLUDE_OBJ TEST_XINCLUDE WITH_XPATH XPATH_OBJ TEST_XPATH WITH_OUTPUT WITH_ICONV WITH_ISO8859X WITH_SCHEMAS TEST_SCHEMAS WITH_REGEXPS TEST_REGEXPS WITH_DEBUG DEBUG_OBJ TEST_DEBUG WITH_MEM_DEBUG WITH_RUN_DEBUG WIN32_EXTRA_LIBADD WIN32_EXTRA_LDFLAGS CYGWIN_EXTRA_LDFLAGS CYGWIN_EXTRA_PYTHON_LIBADD XML_CFLAGS XML_LIBDIR XML_LIBS XML_LIBTOOLLIBS ICONV_LIBS XML_INCLUDEDIR HAVE_ISNAN HAVE_ISINF PYTHON_VERSION PYTHON_INCLUDES PYTHON_SITE_PACKAGES M_LIBS RDL_LIBS RELDATE PYTHON_TESTS LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os LIBXML_MAJOR_VERSION LIBXML_MINOR_VERSION LIBXML_MICRO_VERSION LIBXML_VERSION LIBXML_VERSION_INFO LIBXML_VERSION_NUMBER LIBXML_VERSION_EXTRA INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP RM MV TAR PERL XMLLINT XSLTPROC EGREP U ANSI2KNR LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB DLLTOOL ac_ct_DLLTOOL AS ac_ct_AS OBJDUMP ac_ct_OBJDUMP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL HTML_DIR Z_CFLAGS Z_LIBS PYTHON WITH_PYTHON_TRUE WITH_PYTHON_FALSE pythondir PYTHON_SUBDIR WITH_MODULES MODULE_PLATFORM_LIBS MODULE_EXTENSION TEST_MODULES STATIC_BINARIES WITH_TRIO_SOURCES_TRUE WITH_TRIO_SOURCES_FALSE WITH_TRIO THREAD_LIBS BASE_THREAD_LIBS WITH_THREADS THREAD_CFLAGS TEST_THREADS THREADS_W32 WITH_TREE WITH_FTP FTP_OBJ WITH_HTTP HTTP_OBJ WITH_LEGACY WITH_READER READER_TEST WITH_WRITER WITH_PATTERN TEST_PATTERN WITH_SAX1 TEST_SAX WITH_PUSH TEST_PUSH WITH_HTML HTML_OBJ TEST_HTML TEST_PHTML WITH_VALID TEST_VALID TEST_VTIME WITH_CATALOG CATALOG_OBJ TEST_CATALOG WITH_DOCB DOCB_OBJ WITH_XPTR XPTR_OBJ TEST_XPTR WITH_C14N C14N_OBJ TEST_C14N WITH_XINCLUDE XINCLUDE_OBJ TEST_XINCLUDE WITH_XPATH XPATH_OBJ TEST_XPATH WITH_OUTPUT WITH_ICONV WITH_ISO8859X WITH_SCHEMATRON TEST_SCHEMATRON WITH_SCHEMAS TEST_SCHEMAS WITH_REGEXPS TEST_REGEXPS WITH_DEBUG DEBUG_OBJ TEST_DEBUG WITH_MEM_DEBUG WITH_RUN_DEBUG WIN32_EXTRA_LIBADD WIN32_EXTRA_LDFLAGS CYGWIN_EXTRA_LDFLAGS CYGWIN_EXTRA_PYTHON_LIBADD XML_CFLAGS XML_LIBDIR XML_LIBS XML_LIBTOOLLIBS ICONV_LIBS XML_INCLUDEDIR HAVE_ISNAN HAVE_ISINF PYTHON_VERSION PYTHON_INCLUDES PYTHON_SITE_PACKAGES M_LIBS RDL_LIBS RELDATE PYTHON_TESTS LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -1070,6 +1070,7 @@ Optional Packages: --with-run-debug add the runtime debugging module (off) --with-sax1 add the older SAX1 interface (on) --with-schemas add Relax-NG and Schemas support (on) + --with-schematron add Schematron support (on) --with-threads add multithread support(on) --with-thread-alloc add per-thread memory(off) --with-tree add the DOM like tree manipulation APIs (on) @@ -1617,7 +1618,7 @@ host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` LIBXML_MAJOR_VERSION=2 LIBXML_MINOR_VERSION=6 -LIBXML_MICRO_VERSION=20 +LIBXML_MICRO_VERSION=21 LIBXML_MICRO_VERSION_SUFFIX= LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION$LIBXML_MICRO_VERSION_SUFFIX LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION @@ -4691,7 +4692,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 4694 "configure"' > conftest.$ac_ext + echo '#line 4695 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -6032,7 +6033,7 @@ fi # Provide some information about the compiler. -echo "$as_me:6035:" \ +echo "$as_me:6036:" \ "checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 @@ -7066,11 +7067,11 @@ else -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7069: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7070: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7073: \$? = $ac_status" >&5 + echo "$as_me:7074: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -7299,11 +7300,11 @@ else -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7302: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7303: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7306: \$? = $ac_status" >&5 + echo "$as_me:7307: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -7359,11 +7360,11 @@ else -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7362: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7363: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:7366: \$? = $ac_status" >&5 + echo "$as_me:7367: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -8693,7 +8694,7 @@ linux*) libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) - echo '#line 8696 "configure"' > conftest.$ac_ext + echo '#line 8697 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -9564,7 +9565,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < conftest.$ac_ext <&5) + (eval echo "\"\$as_me:11845: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:11848: \$? = $ac_status" >&5 + echo "$as_me:11849: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -11901,11 +11902,11 @@ else -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:11904: $lt_compile\"" >&5) + (eval echo "\"\$as_me:11905: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:11908: \$? = $ac_status" >&5 + echo "$as_me:11909: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -12412,7 +12413,7 @@ linux*) libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) - echo '#line 12415 "configure"' > conftest.$ac_ext + echo '#line 12416 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -13283,7 +13284,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < conftest.$ac_ext <&5) + (eval echo "\"\$as_me:14212: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:14215: \$? = $ac_status" >&5 + echo "$as_me:14216: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -14268,11 +14269,11 @@ else -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14271: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14272: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:14275: \$? = $ac_status" >&5 + echo "$as_me:14276: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -15582,7 +15583,7 @@ linux*) libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) - echo '#line 15585 "configure"' > conftest.$ac_ext + echo '#line 15586 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -16323,11 +16324,11 @@ else -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16326: $lt_compile\"" >&5) + (eval echo "\"\$as_me:16327: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:16330: \$? = $ac_status" >&5 + echo "$as_me:16331: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -16556,11 +16557,11 @@ else -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16559: $lt_compile\"" >&5) + (eval echo "\"\$as_me:16560: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:16563: \$? = $ac_status" >&5 + echo "$as_me:16564: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -16616,11 +16617,11 @@ else -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16619: $lt_compile\"" >&5) + (eval echo "\"\$as_me:16620: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:16623: \$? = $ac_status" >&5 + echo "$as_me:16624: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -17950,7 +17951,7 @@ linux*) libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) - echo '#line 17953 "configure"' > conftest.$ac_ext + echo '#line 17954 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -18821,7 +18822,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < conftest.$ac_ext <&5 echo $ECHO_N "checking for type of socket length (socklen_t)... $ECHO_C" >&6 cat > conftest.$ac_ext < @@ -26703,7 +26719,7 @@ int main(void) { (void)getsockopt (1, 1, 1, NULL, (socklen_t *)NULL) ; return 0; } EOF -if { (eval echo configure:26706: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then +if { (eval echo configure:26722: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then rm -rf conftest* echo "$as_me:$LINENO: result: socklen_t *" >&5 @@ -26715,7 +26731,7 @@ else rm -rf conftest* cat > conftest.$ac_ext < @@ -26726,7 +26742,7 @@ int main(void) { (void)getsockopt (1, 1, 1, NULL, (size_t *)NULL) ; return 0; } EOF -if { (eval echo configure:26729: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then +if { (eval echo configure:26745: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then rm -rf conftest* echo "$as_me:$LINENO: result: size_t *" >&5 @@ -26738,7 +26754,7 @@ else rm -rf conftest* cat > conftest.$ac_ext < @@ -26749,7 +26765,7 @@ int main(void) { (void)getsockopt (1, 1, 1, NULL, (int *)NULL) ; return 0; } EOF -if { (eval echo configure:26752: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then +if { (eval echo configure:26768: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then rm -rf conftest* echo "$as_me:$LINENO: result: int *" >&5 @@ -27554,7 +27570,6 @@ esac -PYTHON= PYTHON_VERSION= PYTHON_INCLUDES= PYTHON_SITE_PACKAGES= @@ -27571,8 +27586,12 @@ if test "$with_python" != "no" ; then echo Found python in $with_python PYTHON="$with_python" else - # Extract the first word of "python python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5", so it can be a program name with args. -set dummy python python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5; ac_word=$2 + if test -x "$PYTHON" + then + echo Found python in environment PYTHON=$PYTHON + else + # Extract the first word of "python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5", so it can be a program name with args. +set dummy python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_PYTHON+set}" = set; then @@ -27610,6 +27629,7 @@ else echo "${ECHO_T}no" >&6 fi + fi fi fi if test "$PYTHON" != "" @@ -27650,6 +27670,8 @@ fi else pythondir='$(libdir)/python${PYTHON_VERSION}/site-packages' fi +else + PYTHON= fi @@ -27671,11 +27693,92 @@ fi WITH_MODULES=0 -MODULE_EXTENSION=".so" TEST_MODULES= if test "$with_modules" != "no" ; then -echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 + case "$host" in + *-*-cygwin*) + MODULE_EXTENSION=".dll" + echo "$as_me:$LINENO: checking for dlopen in -lcygwin" >&5 +echo $ECHO_N "checking for dlopen in -lcygwin... $ECHO_C" >&6 +if test "${ac_cv_lib_cygwin_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcygwin $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char dlopen (); +int +main () +{ +dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_cygwin_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_cygwin_dlopen=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_cygwin_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_cygwin_dlopen" >&6 +if test $ac_cv_lib_cygwin_dlopen = yes; then + + WITH_MODULES=1 + MODULE_PLATFORM_LIBS= + +cat >>confdefs.h <<\_ACEOF +#define HAVE_DLOPEN +_ACEOF + + +fi + + ;; + *) + MODULE_EXTENSION=".so" + echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -27741,8 +27844,8 @@ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 if test $ac_cv_lib_dld_shl_load = yes; then - WITH_MODULES=1 - MODULE_PLATFORM_LIBS="-ldld" + WITH_MODULES=1 + MODULE_PLATFORM_LIBS="-ldld" cat >>confdefs.h <<\_ACEOF #define HAVE_SHLLOAD @@ -27752,7 +27855,7 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 + echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -27818,8 +27921,8 @@ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then - WITH_MODULES=1 - MODULE_PLATFORM_LIBS="-ldl" + WITH_MODULES=1 + MODULE_PLATFORM_LIBS="-ldl" cat >>confdefs.h <<\_ACEOF #define HAVE_DLOPEN @@ -27828,6 +27931,8 @@ _ACEOF fi + ;; + esac fi if test "${WITH_MODULES}" = "1"; then @@ -27848,6 +27953,7 @@ if [ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XML" ] || \ if test "$with_minimum" != "yes" then if test "${with_mem_debug}" = "" ; then + echo Activating memory debugging with_mem_debug="yes" with_run_debug="yes" fi @@ -27855,7 +27961,7 @@ if [ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XML" ] || \ with_docbook="yes" fi fi - if test "${CC}" = "gcc" ; then + if test "${GCC}" = "yes" ; then CFLAGS="-g -O -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall" fi STATIC_BINARIES="-static" @@ -28129,9 +28235,25 @@ fi THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_BEOS_THREADS" ;; *linux*) - if test "${CC}" = "gcc" -a "${THREAD_LIBS}" = "-lpthread" ; then - THREAD_LIBS="" - BASE_THREAD_LIBS="-lpthread" + if test "${GCC}" = "yes" ; then + GCC_VERSION=`${CC} --version | head -1 | awk '{print $3}'` + GCC_MAJOR=`echo ${GCC_VERSION} | sed 's+\..*++'` + GCC_MEDIUM=`echo ${GCC_VERSION} | sed 's+[0-9]*\.++' | sed 's+\..*++'` + if test "${THREAD_LIBS}" = "-lpthread" ; then + if expr ${GCC_MEDIUM} \> 2 \& ${GCC_MAJOR} = 3 > /dev/null + then + THREAD_LIBS="" + BASE_THREAD_LIBS="-lpthread" + else + if expr ${GCC_MAJOR} \> 3 > /dev/null + then + THREAD_LIBS="" + BASE_THREAD_LIBS="-lpthread" + else + echo old GCC disabling weak symbols for pthread + fi + fi + fi fi ;; esac @@ -29202,6 +29324,20 @@ fi fi +if test "$with_schematron" = "no" ; then + echo "Disabling Schematron support" + WITH_SCHEMATRON=0 + TEST_SCHEMATRON= +else + echo "Enabled Schematron support" + WITH_SCHEMATRON=1 + TEST_SCHEMATRON="Schematrontests" + with_xpath=yes + with_pattern=yes +fi + + + if test "$with_schemas" = "no" ; then echo "Disabling Schemas/Relax-NG support" WITH_SCHEMAS=0 @@ -30153,6 +30289,8 @@ s,@TEST_XPATH@,$TEST_XPATH,;t t s,@WITH_OUTPUT@,$WITH_OUTPUT,;t t s,@WITH_ICONV@,$WITH_ICONV,;t t s,@WITH_ISO8859X@,$WITH_ISO8859X,;t t +s,@WITH_SCHEMATRON@,$WITH_SCHEMATRON,;t t +s,@TEST_SCHEMATRON@,$TEST_SCHEMATRON,;t t s,@WITH_SCHEMAS@,$WITH_SCHEMAS,;t t s,@TEST_SCHEMAS@,$TEST_SCHEMAS,;t t s,@WITH_REGEXPS@,$WITH_REGEXPS,;t t diff --git a/configure.in b/configure.in index 6777c94..ad902eb 100644 --- a/configure.in +++ b/configure.in @@ -5,7 +5,7 @@ AC_CANONICAL_HOST LIBXML_MAJOR_VERSION=2 LIBXML_MINOR_VERSION=6 -LIBXML_MICRO_VERSION=20 +LIBXML_MICRO_VERSION=21 LIBXML_MICRO_VERSION_SUFFIX= LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION$LIBXML_MICRO_VERSION_SUFFIX LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION @@ -128,6 +128,8 @@ AC_ARG_WITH(sax1, [ --with-sax1 add the older SAX1 interface (on)]) AC_ARG_WITH(schemas, [ --with-schemas add Relax-NG and Schemas support (on)]) +AC_ARG_WITH(schematron, +[ --with-schematron add Schematron support (on)]) AC_ARG_WITH(threads, [ --with-threads add multithread support(on)]) AC_ARG_WITH(thread-alloc, @@ -163,6 +165,11 @@ then with_pattern=yes with_regexp=yes fi +if test "$with_schematron" = "yes" +then + with_pattern=yes + with_xpath=yes +fi if test "$with_reader" = "yes" then with_push=yes @@ -270,6 +277,10 @@ then then with_schemas=no fi + if test "$with_schematron" = "" + then + with_schematron=no + fi if test "$with_threads" = "" then with_threads=no @@ -602,7 +613,6 @@ dnl dnl check for python dnl -PYTHON= PYTHON_VERSION= PYTHON_INCLUDES= PYTHON_SITE_PACKAGES= @@ -619,7 +629,12 @@ if test "$with_python" != "no" ; then echo Found python in $with_python PYTHON="$with_python" else - AC_PATH_PROG(PYTHON, python python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5) + if test -x "$PYTHON" + then + echo Found python in environment PYTHON=$PYTHON + else + AC_PATH_PROG(PYTHON, python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5) + fi fi fi if test "$PYTHON" != "" @@ -660,6 +675,8 @@ if test "$with_python" != "no" ; then else pythondir='$(libdir)/python${PYTHON_VERSION}/site-packages' fi +else + PYTHON= fi AM_CONDITIONAL(WITH_PYTHON, test "$PYTHON_INCLUDES" != "") if test "$PYTHON_INCLUDES" != "" @@ -673,21 +690,33 @@ AC_SUBST(PYTHON_SUBDIR) dnl check for dso support WITH_MODULES=0 -MODULE_EXTENSION=".so" TEST_MODULES= if test "$with_modules" != "no" ; then -AC_CHECK_LIB(dld, shl_load, [ - WITH_MODULES=1 - MODULE_PLATFORM_LIBS="-ldld" - AC_DEFINE([HAVE_SHLLOAD], [], [Have shl_load based dso]) -]) - -AC_CHECK_LIB(dl, dlopen, [ - WITH_MODULES=1 - MODULE_PLATFORM_LIBS="-ldl" - AC_DEFINE([HAVE_DLOPEN], [], [Have dlopen based dso]) -]) + case "$host" in + *-*-cygwin*) + MODULE_EXTENSION=".dll" + AC_CHECK_LIB(cygwin, dlopen, [ + WITH_MODULES=1 + MODULE_PLATFORM_LIBS= + AC_DEFINE([HAVE_DLOPEN], [], [Have dlopen based dso]) + ]) + ;; + *) + MODULE_EXTENSION=".so" + AC_CHECK_LIB(dld, shl_load, [ + WITH_MODULES=1 + MODULE_PLATFORM_LIBS="-ldld" + AC_DEFINE([HAVE_SHLLOAD], [], [Have shl_load based dso]) + ]) + + AC_CHECK_LIB(dl, dlopen, [ + WITH_MODULES=1 + MODULE_PLATFORM_LIBS="-ldl" + AC_DEFINE([HAVE_DLOPEN], [], [Have dlopen based dso]) + ]) + ;; + esac fi if test "${WITH_MODULES}" = "1"; then @@ -715,6 +744,7 @@ if [[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XML" ]] || \ if test "$with_minimum" != "yes" then if test "${with_mem_debug}" = "" ; then + echo Activating memory debugging with_mem_debug="yes" with_run_debug="yes" fi @@ -722,7 +752,7 @@ if [[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XML" ]] || \ with_docbook="yes" fi fi - if test "${CC}" = "gcc" ; then + if test "${GCC}" = "yes" ; then CFLAGS="-g -O -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall" fi STATIC_BINARIES="-static" @@ -782,9 +812,25 @@ else THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_BEOS_THREADS" ;; *linux*) - if test "${CC}" = "gcc" -a "${THREAD_LIBS}" = "-lpthread" ; then - THREAD_LIBS="" - BASE_THREAD_LIBS="-lpthread" + if test "${GCC}" = "yes" ; then + GCC_VERSION=`${CC} --version | head -1 | awk '{print $3}'` + GCC_MAJOR=`echo ${GCC_VERSION} | sed 's+\..*++'` + GCC_MEDIUM=`echo ${GCC_VERSION} | sed 's+[[0-9]]*\.++' | sed 's+\..*++'` + if test "${THREAD_LIBS}" = "-lpthread" ; then + if expr ${GCC_MEDIUM} \> 2 \& ${GCC_MAJOR} = 3 > /dev/null + then + THREAD_LIBS="" + BASE_THREAD_LIBS="-lpthread" + else + if expr ${GCC_MAJOR} \> 3 > /dev/null + then + THREAD_LIBS="" + BASE_THREAD_LIBS="-lpthread" + else + echo old GCC disabling weak symbols for pthread + fi + fi + fi fi ;; esac @@ -1140,6 +1186,20 @@ fi fi AC_SUBST(WITH_ISO8859X) +if test "$with_schematron" = "no" ; then + echo "Disabling Schematron support" + WITH_SCHEMATRON=0 + TEST_SCHEMATRON= +else + echo "Enabled Schematron support" + WITH_SCHEMATRON=1 + TEST_SCHEMATRON="Schematrontests" + with_xpath=yes + with_pattern=yes +fi +AC_SUBST(WITH_SCHEMATRON) +AC_SUBST(TEST_SCHEMATRON) + if test "$with_schemas" = "no" ; then echo "Disabling Schemas/Relax-NG support" WITH_SCHEMAS=0 diff --git a/debugXML.c b/debugXML.c index 3cb2848..59529d6 100644 --- a/debugXML.c +++ b/debugXML.c @@ -34,6 +34,8 @@ #include #endif +#define DUMP_TEXT_TYPE 1 + typedef struct _xmlDebugCtxt xmlDebugCtxt; typedef xmlDebugCtxt *xmlDebugCtxtPtr; struct _xmlDebugCtxt { @@ -46,6 +48,7 @@ struct _xmlDebugCtxt { int check; /* do just checkings */ int errors; /* number of errors found */ int nodict; /* if the document has no dictionnary */ + int options; /* options */ }; static void xmlCtxtDumpNodeList(xmlDebugCtxtPtr ctxt, xmlNodePtr node); @@ -63,6 +66,7 @@ xmlCtxtDumpInitCtxt(xmlDebugCtxtPtr ctxt) ctxt->node = NULL; ctxt->dict = NULL; ctxt->nodict = 0; + ctxt->options = 0; for (i = 0; i < 100; i++) ctxt->shift[i] = ' '; ctxt->shift[100] = 0; @@ -902,9 +906,18 @@ xmlCtxtDumpOneNode(xmlDebugCtxtPtr ctxt, xmlNodePtr node) if (!ctxt->check) { xmlCtxtDumpSpaces(ctxt); if (node->name == (const xmlChar *) xmlStringTextNoenc) - fprintf(ctxt->output, "TEXT no enc\n"); + fprintf(ctxt->output, "TEXT no enc"); else - fprintf(ctxt->output, "TEXT\n"); + fprintf(ctxt->output, "TEXT"); + if (ctxt->options & DUMP_TEXT_TYPE) { + if (node->content == (xmlChar *) &(node->properties)) + fprintf(ctxt->output, " compact\n"); + else if (xmlDictOwns(ctxt->dict, node->content) == 1) + fprintf(ctxt->output, " interned\n"); + else + fprintf(ctxt->output, "\n"); + } else + fprintf(ctxt->output, "\n"); } break; case XML_CDATA_SECTION_NODE: @@ -1005,9 +1018,9 @@ xmlCtxtDumpOneNode(xmlDebugCtxtPtr ctxt, xmlNodePtr node) fprintf(ctxt->output, "PBM: doc == NULL !!!\n"); } ctxt->depth++; - if (node->nsDef != NULL) + if ((node->type == XML_ELEMENT_NODE) && (node->nsDef != NULL)) xmlCtxtDumpNamespaceList(ctxt, node->nsDef); - if (node->properties != NULL) + if ((node->type == XML_ELEMENT_NODE) && (node->properties != NULL)) xmlCtxtDumpAttrList(ctxt, node->properties); if (node->type != XML_ENTITY_REF_NODE) { if ((node->type != XML_ELEMENT_NODE) && (node->content != NULL)) { @@ -1489,6 +1502,7 @@ xmlDebugDumpDocumentHead(FILE * output, xmlDocPtr doc) if (output == NULL) output = stdout; xmlCtxtDumpInitCtxt(&ctxt); + ctxt.options |= DUMP_TEXT_TYPE; ctxt.output = output; xmlCtxtDumpDocumentHead(&ctxt, doc); xmlCtxtDumpCleanCtxt(&ctxt); @@ -1509,6 +1523,7 @@ xmlDebugDumpDocument(FILE * output, xmlDocPtr doc) if (output == NULL) output = stdout; xmlCtxtDumpInitCtxt(&ctxt); + ctxt.options |= DUMP_TEXT_TYPE; ctxt.output = output; xmlCtxtDumpDocument(&ctxt, doc); xmlCtxtDumpCleanCtxt(&ctxt); @@ -1529,6 +1544,7 @@ xmlDebugDumpDTD(FILE * output, xmlDtdPtr dtd) if (output == NULL) output = stdout; xmlCtxtDumpInitCtxt(&ctxt); + ctxt.options |= DUMP_TEXT_TYPE; ctxt.output = output; xmlCtxtDumpDTD(&ctxt, dtd); xmlCtxtDumpCleanCtxt(&ctxt); diff --git a/doc/APIchunk0.html b/doc/APIchunk0.html index 31a028e..36b401b 100644 --- a/doc/APIchunk0.html +++ b/doc/APIchunk0.html @@ -207,7 +207,8 @@ A:link, A:visited, A:active { text-decoration: underline }
BaseChar
IS_BASECHAR
IS_LETTER
xmlIsLetter
-
Based
xmlXPathIsInf
+
Based
xmlExpExpDerive
+xmlXPathIsInf
xmlXPathIsNaN
BasicLatin
xmlUCSIsBasicLatin
Basically
xmlValidateDtd
@@ -231,6 +232,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlStreamPushAttr
BoxDrawing
xmlUCSIsBoxDrawing
BraillePatterns
xmlUCSIsBraillePatterns
+
Brzozowski
xmlExpExpDerive
+xmlExpStringDerive
Buffer
xmlIOParseDTD
Bugs:
_htmlElemDesc
Buhid
xmlUCSIsBuhid
diff --git a/doc/APIchunk1.html b/doc/APIchunk1.html index 51c034a..668482d 100644 --- a/doc/APIchunk1.html +++ b/doc/APIchunk1.html @@ -305,6 +305,7 @@ A:link, A:visited, A:active { text-decoration: underline }
Creates
htmlNewDoc
htmlNewDocNoDtD
xmlCreateDocParserCtxt
+xmlExpNewCtxt
xmlNewDoc
xmlXIncludeNewContext
Creation
xmlNewCDataBlock
diff --git a/doc/APIchunk10.html b/doc/APIchunk10.html index 249723b..161b4ef 100644 --- a/doc/APIchunk10.html +++ b/doc/APIchunk10.html @@ -61,10 +61,12 @@ A:link, A:visited, A:active { text-decoration: underline } XML_SCHEMAS_ELEM_FINAL_ABSENT
XML_SCHEMAS_TYPE_VARIETY_ABSENT
absoluteURI
xmlParseURI
+xmlParseURIRaw
xmlParseURIReference
abstract
XML_SCHEMAS_ELEM_ABSTRACT
XML_SCHEMAS_TYPE_ABSTRACT
-
accept
xmlGetNoNsProp
+
accept
xmlExpMaxToken
+xmlGetNoNsProp
xmlIsMixedElement
acceptable
xmlRegExecErrInfo
xmlRegExecNextValues
@@ -72,10 +74,13 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCatalogGetDefaults
xmlCatalogSetDefaultPrefer
xmlCatalogSetDefaults
+xmlExpGetStart
xmlRegExecErrInfo
xmlRegExecNextValues
xmlTextReaderNormalization
accepting
xmlTextReaderNormalization
+
accepts
xmlExpIsNillable
+xmlExpSubsume
access
xmlGcMemGet
xmlGcMemSetup
xmlMemGet
@@ -86,6 +91,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlTextReaderCurrentNode
accesses
xmlCreateURLParserCtxt
xmlNoNetExternalEntityLoader
+
accexpted
xmlExpSubsume
accommodate
xmlBufferResize
according
xmlBuildURI
xmlDetectCharEncoding
@@ -105,6 +111,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAutomataNewAllTrans
xmlAutomataNewCountTrans
xmlAutomataNewCountTrans2
+xmlAutomataNewNegTrans
xmlAutomataNewOnceTrans
xmlAutomataNewOnceTrans2
xmlAutomataNewTransition
@@ -197,6 +204,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAutomataNewCountedTrans
xmlAutomataNewCounterTrans
xmlAutomataNewEpsilon
+xmlAutomataNewNegTrans
xmlAutomataNewOnceTrans
xmlAutomataNewOnceTrans2
xmlAutomataNewTransition
@@ -240,10 +248,12 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaValidateLengthFacet
xmlSchemaValidateLengthFacetWhtsp
xmlSchemaValidateListSimpleTypeFacet
+xmlSchematronValidateDoc
xmlShellValidate
xmlValidateDtd
aggregate
xmlNodeBufGetContent
xmlNodeGetContent
+
algebraic
xmlExpExpDerive
alias
xmlAddEncodingAlias
xmlDelEncodingAlias
xmlGetEncodingAlias
@@ -323,6 +333,7 @@ A:link, A:visited, A:active { text-decoration: underline } htmlIsAutoClosed
xmlCatalogAdd
xmlNewChild
+xmlParseURIRaw
xmlTextReaderConstString
already
XML_SCHEMAS_ATTRGROUP_GLOBAL
XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED
@@ -378,6 +389,7 @@ A:link, A:visited, A:active { text-decoration: underline }
analysis
_xmlParserCtxt
_xmlValidCtxt
analyze
xmlParseURI
+xmlParseURIRaw
xmlParseURIReference
analyzed
_xmlParserInput
ancestor
xmlNodeGetLang
@@ -423,7 +435,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParserHandlePEReference
appearing
xmlValidatePopElement
xmlValidatePushElement
-
appears
xmlParseCharData
+
appears
xmlExpGetStart
+xmlParseCharData
xmlParseElementChildrenContentDecl
xmlParseEntityRef
xmlParseSDDecl
@@ -504,6 +517,10 @@ A:link, A:visited, A:active { text-decoration: underline }
assuming
xmlSaveFileTo
xmlSaveFormatFileTo
assure
xmlGetUTF8Char
+
atom
xmlExpNewAtom
+xmlExpNewOr
+xmlExpNewRange
+xmlExpNewSeq
atomic
xmlGcMemGet
xmlGcMemSetup
attached
xmlTextReaderGetRemainder
diff --git a/doc/APIchunk11.html b/doc/APIchunk11.html index 754df2d..763623f 100644 --- a/doc/APIchunk11.html +++ b/doc/APIchunk11.html @@ -62,6 +62,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaSAXPlug
xmlSchemaSAXUnplug
xmlSchemaValidateStream
+xmlSchematronNewValidCtxt
xmlSetCompressMode
xmlSetDocCompressMode
xmlStrcat
@@ -186,6 +187,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlStrEqual
xmlXPathCompareValues
xmlXPathIntersection
+
bound
xmlExpNewRange
boundaries
_xmlParserCtxt
xmlSearchNs
boundary
xmlParseElementChildrenContentDecl
@@ -251,6 +253,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParseEnumerationType
xmlParseNotationType
xmlParseURI
+xmlParseURIRaw
xmlRecoverDoc
xmlRecoverFile
xmlRecoverMemory
@@ -259,6 +262,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaGetCanonValue
xmlSchemaGetCanonValueWhtsp
xmlSchemaParse
+xmlSchematronParse
xmlTextReaderNextSibling
built-in
xmlSchemaGetBuiltInListSimpleTypeItemType
xmlSchemaGetBuiltInType
diff --git a/doc/APIchunk12.html b/doc/APIchunk12.html index b548fe2..9d1944e 100644 --- a/doc/APIchunk12.html +++ b/doc/APIchunk12.html @@ -77,6 +77,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlC14NExecute
capable
xmlCheckUTF8
caracters
xmlOutputBufferWriteEscape
+
cardinality
xmlExpParse
carried
xmlNewDocProp
xmlNewNsProp
xmlNewNsPropEatName
@@ -198,9 +199,11 @@ A:link, A:visited, A:active { text-decoration: underline }
checking
xlinkIsLink
xmlBufferWriteQuotedString
xmlBuildURI
+xmlExpParse
xmlMemFree
xmlUTF8Strlen
-
checkings
xmlValidateOneElement
+
checkings
xmlExpParse
+xmlValidateOneElement
checks
XML_SCHEMAS_ATTRGROUP_MARKED
XML_SCHEMAS_TYPE_MARKED
htmlAutoCloseTag
@@ -234,7 +237,9 @@ A:link, A:visited, A:active { text-decoration: underline }
childs
_xmlNode
xmlIsMixedElement
xmlValidGetValidElements
-
choice
xmlParseElementChildrenContentDecl
+
choice
xmlExpNewOr
+xmlExpParse
+xmlParseElementChildrenContentDecl
choices
xmlParseElementMixedContentDecl
choices:
xmlParseNotationDecl
chunk
docbParseChunk
@@ -380,6 +385,8 @@ A:link, A:visited, A:active { text-decoration: underline }
compatible
LIBXML_TEST_VERSION
xmlShellPwd
compilation
LIBXML_VERSION_EXTRA
+XML_XPATH_CHECKNS
+_xmlXPathContext
xmlPatterncompile
xmlXPathCompile
xmlXPathCtxtCompile
@@ -400,15 +407,20 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSAXParseFile
xmlSAXParseFileWithData
compiled
LIBXML_AUTOMATA_ENABLED
+LIBXML_EXPR_ENABLED
LIBXML_LEGACY_ENABLED
LIBXML_MODULES_ENABLED
LIBXML_REGEXP_ENABLED
LIBXML_SCHEMAS_ENABLED
+LIBXML_SCHEMATRON_ENABLED
LIBXML_TEST_VERSION
LIBXML_UNICODE_ENABLED
xmlAutomataCompile
xmlCheckVersion
+xmlExpDump
+xmlExpMaxToken
xmlGetLastError
+xmlHasFeature
xmlPatterncompile
xmlRegexpCompile
xmlRegexpExec
@@ -578,7 +590,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlValidGetValidElements
construct
xmlParseElementChildrenContentDecl
construction
xmlCanonicPath
-
constructs
xmlParseNamespace
+
constructs
xmlExpParse
+xmlParseNamespace
consumed
UTF8ToHtml
UTF8Toisolat1
_xmlParserInput
@@ -588,12 +601,16 @@ A:link, A:visited, A:active { text-decoration: underline } isolat1ToUTF8
xmlCharEncodingInputFunc
xmlCharEncodingOutputFunc
+xmlExpNewOr
+xmlExpNewRange
+xmlExpNewSeq
xmlGetUTF8Char
xmlParserInputBufferRead
xmlSchemaNewNOTATIONValue
xmlSchemaNewQNameValue
xmlSchemaNewStringValue
-
consuming
xmlScanName
+
consuming
xmlExpExpDerive
+xmlScanName
contain
xmlNewTextChild
xmlParseAttribute
xmlParseEntityRef
@@ -607,6 +624,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlRelaxNGNewParserCtxt
xmlSchemaNewMemParserCtxt
xmlSchemaNewParserCtxt
+xmlSchematronNewMemParserCtxt
+xmlSchematronNewParserCtxt
xmlXPathLeading
xmlXPathLeadingSorted
xmlXPathNodeLeading
@@ -676,7 +695,8 @@ A:link, A:visited, A:active { text-decoration: underline }
continuing
xmlXPathSubstringFunction
contrary
xmlNodeListGetRawString
xmlXPathFreeNodeSetList
-
control
resolveEntity
+
control
_xmlXPathContext
+resolveEntity
resolveEntitySAXFunc
xmlNanoFTPClose
xmlNanoFTPConnect
@@ -765,9 +785,11 @@ A:link, A:visited, A:active { text-decoration: underline } xmlTextReaderSetSchema
xmlValidateDtd
count
ftpListCallback
+xmlExpRef
xmlLsCountNode
xmlSaveDoc
xmlSaveTree
+xmlSchematronValidateDoc
xmlTextReaderAttributeCount
xmlXPathCountFunction
counter
xmlAutomataNewCountedTrans
@@ -793,6 +815,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAutomataNewCountedTrans
xmlAutomataNewCounterTrans
xmlAutomataNewEpsilon
+xmlAutomataNewNegTrans
xmlAutomataNewOnceTrans
xmlAutomataNewOnceTrans2
xmlAutomataNewTransition
@@ -810,6 +833,9 @@ A:link, A:visited, A:active { text-decoration: underline }
cshema
XML_SCHEMAS_FINAL_DEFAULT_LIST
ctrio
xmlXPathIsInf
xmlXPathIsNaN
+
ctxt
xmlExpNewOr
+xmlExpNewRange
+xmlExpNewSeq
ctxt-
docbFreeParserCtxt
htmlFreeParserCtxt
xmlFreeParserCtxt
diff --git a/doc/APIchunk13.html b/doc/APIchunk13.html index cfab9a4..a44fa80 100644 --- a/doc/APIchunk13.html +++ b/doc/APIchunk13.html @@ -239,10 +239,13 @@ A:link, A:visited, A:active { text-decoration: underline }
depth
_xmlParserCtxt
_xmlValidCtxt
xmlPatternMaxDepth
+xmlPatternMinDepth
xmlTextReaderDepth
deregistration
xmlDeregisterNodeDefault
derivation
XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION
XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION
+xmlExpExpDerive
+xmlExpStringDerive
des
xmlTextReaderRelaxNGSetSchema
xmlTextReaderRelaxNGValidate
xmlTextReaderSchemaValidate
@@ -303,7 +306,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSaveToFd
xmlSaveToIO
designed
xmlCharEncodingOutputFunc
-xmlLoadExternalEntity
desired
xmlBufferResize
xmlIOHTTPOpenW
xmlUTF8Strloc
@@ -387,6 +389,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlDictQLookup
xmlDictReference
xmlDictSize
+xmlExpNewCtxt
did
XML_SCHEMAS_TYPE_BLOCK_DEFAULT
xmlTextReaderGetRemainder
xmlTextReaderStandalone
@@ -405,6 +408,7 @@ A:link, A:visited, A:active { text-decoration: underline }
direct
htmlElementAllowedHere
htmlElementAllowedHereDesc
htmlElementStatusHere
+xmlExpExpDerive
xmlParseAttribute
xmlURIUnescapeString
direction
xmlXPathNextAncestor
@@ -445,6 +449,7 @@ A:link, A:visited, A:active { text-decoration: underline }
disable
xmlCatalogSetDebug
disabled
XML_CAST_FPTR
_xmlParserCtxt
+xmlParseURIRaw
disabling
xmlNoNetExternalEntityLoader
disallowed
XML_SCHEMAS_ELEM_BLOCK_EXTENSION
XML_SCHEMAS_ELEM_BLOCK_RESTRICTION
@@ -491,36 +496,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSAXParseMemory
xmlSAXParseMemoryWithData
xmlXPathOrderDocElems
-
does
_xmlEntity
-xmlCheckUTF8
-xmlCtxtResetLastError
-xmlGetNoNsProp
-xmlGetNsProp
-xmlGetProp
-xmlHasNsProp
-xmlModuleFree
-xmlNodeGetBase
-xmlParseMarkupDecl
-xmlResetLastError
-xmlSaveDoc
-xmlSaveTree
-xmlSchemaGetCanonValue
-xmlSchemaValPredefTypeNodeNoNorm
-xmlURIEscape
-xmlURIUnescapeString
-xmlValidateAttributeDecl
-xmlValidateDocument
-xmlValidateDocumentFinal
-xmlValidateDtd
-xmlValidateDtdFinal
-xmlValidateElementDecl
-xmlValidateNotationDecl
-xmlValidateOneAttribute
-xmlValidateOneElement
-xmlValidateOneNamespace
-xmlValidateRoot
-xmlXPathSubstringAfterFunction
-xmlXPathSubstringBeforeFunction
doesn
_htmlElemDesc
htmlElementAllowedHere
xmlCleanupParser
@@ -614,6 +589,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaIsValid
xmlSchemaNewDocParserCtxt
xmlSchemaSetValidOptions
+xmlSchematronNewDocParserCtxt
+
dynamic
LIBXML_MODULE_EXTENSION

A-B C-C D-E diff --git a/doc/APIchunk14.html b/doc/APIchunk14.html index 9855554..d568108 100644 --- a/doc/APIchunk14.html +++ b/doc/APIchunk14.html @@ -167,7 +167,9 @@ A:link, A:visited, A:active { text-decoration: underline }
engine
xmlXPathAxisFunc
xmlXPathFuncLookupFunc
xmlXPathVariableLookupFunc
-
englobing
xmlSnprintfElementContent
+
englobing
xmlExpExpDerive
+xmlExpSubsume
+xmlSnprintfElementContent
xmlSprintfElementContent
enhancements
htmlNodeStatus
enough
xmlBuildQName
@@ -254,34 +256,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathConvertBoolean
xmlXPathConvertNumber
xmlXPathConvertString
-
errors
INPUT_CHUNK
-_xmlSAXHandler
-_xmlSAXHandlerV1
-_xmlValidCtxt
-_xmlXPathContext
-fatalErrorSAXFunc
-initGenericErrorDefaultFunc
-xmlCharEncOutFunc
-xmlCheckHTTPInput
-xmlDOMWrapAdoptNode
-xmlDOMWrapReconcileNamespaces
-xmlDOMWrapRemoveNode
-xmlDebugCheckDocument
-xmlHashAddEntry
-xmlHashAddEntry2
-xmlHashAddEntry3
-xmlRelaxNGGetParserErrors
-xmlRelaxNGSetParserErrors
-xmlSchemaGetCanonValue
-xmlSchemaGetCanonValueWhtsp
-xmlSchemaGetParserErrors
-xmlSchemaIsValid
-xmlSchemaSAXPlug
-xmlSchemaSetParserErrors
-xmlSchemaValueAppend
-xmlSchemaValueGetAsString
-xmlSchemaValueGetNext
-xmlShellCmd
errror
xmlDOMWrapNewCtxt
escape
docbEncodeEntities
htmlEncodeEntities
@@ -301,6 +275,7 @@ A:link, A:visited, A:active { text-decoration: underline }
escaping
xmlOutputBufferWriteEscape
xmlSaveSetAttrEscape
xmlSaveSetEscape
+
especially
xmlExpParse
established
xmlNanoFTPUpdateURL
etc
xmlDocGetRootElement
xmlDocSetRootElement
@@ -327,6 +302,9 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPtrEval
evaulation
xmlRegFreeExecCtxt
even
_xmlParserInput
+xmlExpNewOr
+xmlExpNewRange
+xmlExpNewSeq
xmlNodeGetBase
xmlParseBalancedChunkMemoryRecover
xmlTextWriterFullEndElement
@@ -336,10 +314,12 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaValidateStream
events
htmlSAXParseDoc
xmlSchemaValidateStream
+
ever
xmlExpCtxtNbCons
everywhere
xmlSAXParseFileWithData
xmlSAXParseMemoryWithData
exact
xmlGetBufferAllocationScheme
xmlSetBufferAllocationScheme
+
examined
xmlHasFeature
example
xmlParserInputBufferCreateStatic
xmlReconciliateNs
xmlTextReaderConstString
@@ -348,7 +328,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathSubstringFunction
xmlXPathTranslateFunction
examples
xmlBuildRelativeURI
-
except
xmlGetNoNsProp
+
except
xmlAutomataNewNegTrans
+xmlGetNoNsProp
xmlParseAttValue
xmlParseCatalogFile
xmlParseEntityRef
@@ -369,7 +350,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlRegExecNextValues
xmlRegExecPushString
xmlRegExecPushString2
-
exist
xmlXPtrLocationSetAdd
+
exist
xmlHasFeature
+xmlXPtrLocationSetAdd
existent
xmlDOMWrapAdoptNode
xmlDOMWrapReconcileNamespaces
exists
xmlDictExists
@@ -389,6 +371,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaNewMemParserCtxt
xmlSchemaNewParserCtxt
xmlSchemaValidateListSimpleTypeFacet
+xmlSchematronNewMemParserCtxt
+xmlSchematronNewParserCtxt
xmlStreamPush
xmlStreamPushAttr
experimental
xmlDOMWrapAdoptNode
@@ -397,7 +381,12 @@ A:link, A:visited, A:active { text-decoration: underline }
explicitly
xmlSAXDefaultVersion
explored
xmlXPathAxisFunc
exposing
xmlTextReaderRead
-
expressions
LIBXML_REGEXP_ENABLED
+
expressions
LIBXML_EXPR_ENABLED
+LIBXML_REGEXP_ENABLED
+xmlExpExpDerive
+xmlExpNewCtxt
+xmlExpParse
+xmlExpSubsume
exslSetsDistinctSorted
xmlXPathDistinct
exslSetsLeadingSorted
xmlXPathLeading
exslSetsNodeLeadingSorted
xmlXPathNodeLeading
diff --git a/doc/APIchunk15.html b/doc/APIchunk15.html index 02fc03a..a164599 100644 --- a/doc/APIchunk15.html +++ b/doc/APIchunk15.html @@ -56,6 +56,8 @@ A:link, A:visited, A:active { text-decoration: underline } XML_SCHEMAS_TYPE_HAS_FACETS
XML_SCHEMAS_TYPE_NORMVALUENEEDED
xmlSchemaCheckFacet
+
facility
xmlExpCtxtNbCons
+xmlExpCtxtNbNodes
fail
xmlC14NDocDumpMemory
xmlC14NDocSave
xmlC14NDocSaveTo
@@ -86,36 +88,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCharEncOutFunc
xmlCheckFilename
xmlFileOpen
-
failure
CHECK_TYPE0
-htmlDocDump
-htmlNodeDumpFileFormat
-htmlSaveFile
-htmlSaveFileEnc
-htmlSaveFileFormat
-xmlBufferShrink
-xmlDocDump
-xmlDocFormatDump
-xmlFileOpen
-xmlFileRead
-xmlListAppend
-xmlListInsert
-xmlNanoHTTPFetch
-xmlNanoHTTPMethod
-xmlNanoHTTPMethodRedir
-xmlNanoHTTPOpen
-xmlNanoHTTPOpenRedir
-xmlNanoHTTPSave
-xmlNewAutomata
-xmlPatternGetStreamCtxt
-xmlPatternMatch
-xmlRelaxNGGetParserErrors
-xmlSaveFile
-xmlSaveFileEnc
-xmlSaveFileTo
-xmlSaveFormatFile
-xmlSaveFormatFileTo
-xmlSchemaGetParserErrors
-xmlSchemaSAXUnplug
fallback
XINCLUDE_FALLBACK
docbSAXParseDoc
docbSAXParseFile
@@ -140,6 +112,7 @@ A:link, A:visited, A:active { text-decoration: underline }
favor
xmlNewElementContent
feature
xmlGetFeature
xmlGetFeaturesList
+xmlHasFeature
xmlSetFeature
features
xmlGetFeaturesList
fed
xmlCreatePushParserCtxt
@@ -207,6 +180,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlTextReaderPreserve
xmlTextReaderPreservePattern
finishing
xmlByteConsumed
+
finite
xmlExpParse
firs
xmlCharEncOutFunc
fist
xmlEntityReferenceFunc
fit
xmlCharEncFirstLine
@@ -227,7 +201,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlTextReaderIsValid
flagged
_htmlElemDesc
htmlGetMetaEncoding
-
flags
xmlDOMWrapAdoptNode
+
flags
_xmlXPathContext
+xmlDOMWrapAdoptNode
xmlDOMWrapReconcileNamespaces
xmlPatterncompile
xmlReaderForDoc
@@ -251,7 +226,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaValidateStream
flushes
xmlOutputBufferClose
xmlOutputBufferFlush
-
follow
xmlXPathNodeTrailing
+
follow
xmlAutomataNewNegTrans
+xmlXPathNodeTrailing
xmlXPathNodeTrailingSorted
xmlXPathSubstringFunction
xmlXPathTrailing
@@ -265,6 +241,7 @@ A:link, A:visited, A:active { text-decoration: underline }
fonctionnalities
xmlInputMatchCallback
xmlOutputMatchCallback
for:
xmlSchemaGetCanonValue
+
forbid
XML_XPATH_NOVAR
force
xmlKeepBlanksDefault
xmlSetGenericErrorFunc
forced
xmlValidGetValidElements
@@ -281,6 +258,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNodeListGetString
xmlPatterncompile
xmlXPathStringFunction
+
formal
LIBXML_EXPR_ENABLED
formatted
xmlTextWriterWriteFormatAttribute
xmlTextWriterWriteFormatAttributeNS
xmlTextWriterWriteFormatCDATA
@@ -333,8 +311,10 @@ A:link, A:visited, A:active { text-decoration: underline }
fragment
_xmlURI
xmlNewDocFragment
xmlParseURI
+xmlParseURIRaw
xmlParseURIReference
xmlPushInput
+
fragments
xmlParseURIRaw
freeing
xmlCanonicPath
xmlParserInputDeallocate
frees
xmlBufferFree
@@ -399,9 +379,11 @@ A:link, A:visited, A:active { text-decoration: underline } xmlRelaxNGGetValidErrors
xmlRelaxNGSetParserErrors
xmlRelaxNGSetValidErrors
+xmlRelaxNGSetValidStructuredErrors
xmlSchemaGetValidErrors
xmlSchemaSetParserErrors
xmlSchemaSetValidErrors
+xmlSchemaSetValidStructuredErrors
xmlShellCmd
xmlSwitchEncoding
xmlSwitchInputEncoding
diff --git a/doc/APIchunk16.html b/doc/APIchunk16.html index fcc3552..bb433a9 100644 --- a/doc/APIchunk16.html +++ b/doc/APIchunk16.html @@ -101,10 +101,10 @@ A:link, A:visited, A:active { text-decoration: underline }
generates
xmlRegexpExec
generating
xmlDocDumpFormatMemoryEnc
xmlDocDumpMemoryEnc
+xmlExpExpDerive
xmlKeepBlanksDefault
xmlRegExecErrInfo
generic
initGenericErrorDefaultFunc
-xmlLoadExternalEntity
xmlShellCmd
xmlShellReadlineFunc
get
_xmlSAXHandler
diff --git a/doc/APIchunk17.html b/doc/APIchunk17.html index 06eda37..b797ffd 100644 --- a/doc/APIchunk17.html +++ b/doc/APIchunk17.html @@ -246,6 +246,9 @@ A:link, A:visited, A:active { text-decoration: underline }
indirectly
xmlParseAttribute
xmlParsePEReference
xmlParserHandlePEReference
+
infinite
xmlExpExpDerive
+xmlExpNewRange
+xmlExpParse
infinity
xmlXPathCeilingFunction
xmlXPathFloorFunction
xmlXPathStringFunction
@@ -384,12 +387,14 @@ A:link, A:visited, A:active { text-decoration: underline }
insertion
htmlHandleOmittedElem
xmlValidGetValidElements
inspect
xmlXPathDebugDumpObject
+
instace
xmlSchematronValidateDoc
installed
xmlDictSize
xmlHashSize
instances
_xmlParserInput
xmlParseDefaultDecl
xmlRelaxNGParse
xmlSchemaParse
+xmlSchematronParse
instead
XML_SCHEMAS_ELEM_TOPLEVEL
xmlAddChild
xmlAddNextSibling
@@ -417,6 +422,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNewPI
xmlSAX2ProcessingInstruction
insufficient
xmlCanonicPath
+
intact
xmlParseURIRaw
integer
xmlStrcasecmp
xmlStrcmp
xmlStrncasecmp
@@ -441,16 +447,19 @@ A:link, A:visited, A:active { text-decoration: underline } xmlTextReaderCurrentDoc
xmlTextReaderCurrentNode
interfaces
LIBXML_AUTOMATA_ENABLED
+LIBXML_EXPR_ENABLED
LIBXML_MODULES_ENABLED
LIBXML_PUSH_ENABLED
LIBXML_REGEXP_ENABLED
LIBXML_SCHEMAS_ENABLED
+LIBXML_SCHEMATRON_ENABLED
LIBXML_UNICODE_ENABLED
xmlNamespaceParseNCName
xmlNamespaceParseNSDef
xmlNamespaceParseQName
intern
xmlTextReaderConstString
internally
xmlBufferWriteQuotedString
+xmlExpNewCtxt
xmlRelaxNGNewDocParserCtxt
xmlRemoveID
xmlRemoveRef
diff --git a/doc/APIchunk18.html b/doc/APIchunk18.html index 43fd538..8bc0157 100644 --- a/doc/APIchunk18.html +++ b/doc/APIchunk18.html @@ -54,7 +54,11 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathNewParserContext
xmlXPathNextSelf
xmlXPtrNewContext
-

Letter k:

keep
xmlParserInputGrow
+

Letter k:

keep
xmlExpNewOr
+xmlExpNewRange
+xmlExpNewSeq
+xmlParseURIRaw
+xmlParserInputGrow
xmlSubstituteEntitiesDefault
xmlTextReaderPreserve
xmlTextReaderPreservePattern
@@ -106,6 +110,9 @@ A:link, A:visited, A:active { text-decoration: underline }
language
xmlNodeGetLang
xmlNodeSetLang
xmlXPathLangFunction
+
languages
xmlExpExpDerive
+xmlExpGetStart
+xmlExpSubsume
large
_xmlParserCtxt
_xmlParserInput
largest
xmlXPathFloorFunction
@@ -143,12 +150,15 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathStringFunction
least
xmlDetectCharEncoding
xmlXPathStringFunction
-
left
xmlTextReaderGetRemainder
+
left
xmlExpNewOr
+xmlExpNewSeq
+xmlTextReaderGetRemainder
legacy
htmlNodeStatus
len
xmlBufferAdd
xmlBufferAddHead
xmlCharStrndup
xmlDecodeEntities
+xmlExpStringDerive
xmlGetFeaturesList
xmlGetUTF8Char
xmlNewDocTextLen
@@ -159,11 +169,15 @@ A:link, A:visited, A:active { text-decoration: underline } xmlStrndup
xmlUTF8Strndup
xmlUTF8Strsize
-
lenght
xmlRelaxNGValidatePushCData
+
lenght
xmlExpGetLanguage
+xmlExpGetStart
+xmlExpNewAtom
+xmlRelaxNGValidatePushCData
xmlSplitQName3
xmlValidatePushCData
length-1
xmlXPathNodeSetItem
-
less
xmlSaveToFilename
+
less
xmlExpExpDerive
+xmlSaveToFilename
xmlXPathCeilingFunction
xmlXPathCompareValues
xmlXPathSubstringFunction
@@ -200,12 +214,14 @@ A:link, A:visited, A:active { text-decoration: underline } xmlValidateQName
lib
xmlCheckVersion
libc
DEBUG_MEMORY
-
libraries
xmlRelaxNGInitTypes
+
libraries
LIBXML_MODULE_EXTENSION
+xmlRelaxNGInitTypes
library
_xmlError
_xmlSchema
xmlCleanupMemory
xmlCleanupParser
xmlCleanupThreads
+xmlHasFeature
xmlInitThreads
xmlInitializeGlobalState
xmlLockLibrary
@@ -245,6 +261,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlRMutexUnlock
xmlUnlockLibrary
lifetime
xmlBufferCreateStatic
+xmlExpCtxtNbCons
like
IS_CHAR_CH
IS_DIGIT_CH
IS_EXTENDER_CH
@@ -266,6 +283,7 @@ A:link, A:visited, A:active { text-decoration: underline }
limited
_htmlElemDesc
linear
htmlEntityLookup
htmlEntityValueLookup
+xmlExpExpDerive
linked
_xmlSchemaAttributeLink
_xmlSchemaFacetLink
_xmlSchemaTypeLink
@@ -318,6 +336,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNanoHTTPOpenRedir
xmlRelaxNGNewParserCtxt
xmlSchemaNewParserCtxt
+xmlSchematronNewParserCtxt
xmlSetFeature
xmlUTF8Strloc
xmlXPtrLocationSetAdd
@@ -372,6 +391,7 @@ A:link, A:visited, A:active { text-decoration: underline }
lossless
xmlOutputBufferWrite
xmlOutputBufferWriteEscape
xmlOutputBufferWriteString
+
lower
xmlExpNewRange
lowercase
htmlTagLookup
xmlIsRef

A-B diff --git a/doc/APIchunk19.html b/doc/APIchunk19.html index db7fbf2..cecaf32 100644 --- a/doc/APIchunk19.html +++ b/doc/APIchunk19.html @@ -43,6 +43,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlTextWriterWriteProcessingInstruction
made
LIBXML_ISO8859X_ENABLED
xmlCharEncOutFunc
+xmlExpParse
xmlNodeListGetRawString
xmlNodeListGetString
xmlSetEntityReferenceFunc
@@ -74,7 +75,8 @@ A:link, A:visited, A:active { text-decoration: underline }
manages
xmlBufferWriteCHAR
mandatory
xmlParseTextDecl
manipulated
xmlNewRMutex
-
manipulating
xmlLoadSGMLSuperCatalog
+
manipulating
xmlExpNewCtxt
+xmlLoadSGMLSuperCatalog
manipulation
LIBXML_TREE_ENABLED
many
_xmlParserInput
xmlXPathStringFunction
@@ -128,6 +130,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathIdFunction
max
_xmlXPathContext
_xmlXPathParserContext
+xmlExpParse
xmlGetCompressMode
xmlGetDocCompressMode
xmlOutputBufferCreateFilename
@@ -143,8 +146,12 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAutomataNewOnceTrans
xmlAutomataNewOnceTrans2
xmlCheckUTF8
+xmlExpMaxToken
+xmlExpNewCtxt
xmlPatternMaxDepth
-
means
xmlSetGenericErrorFunc
+
mean
xmlPatternMinDepth
+
means
xmlExpNewRange
+xmlSetGenericErrorFunc
xmlSetStructuredErrorFunc
xmlStreamPush
xmlStreamPushAttr
@@ -214,9 +221,11 @@ A:link, A:visited, A:active { text-decoration: underline } xmlTextReaderGetRemainder
might
xmlNewTextChild
migrate
xmlEncodeEntities
+
min
xmlExpParse
minLength
xmlSchemaValidateLengthFacet
xmlSchemaValidateLengthFacetWhtsp
minimal
xmlAutomataNewCounter
+xmlExpParse
minimum
xmlAutomataNewCountTrans
xmlAutomataNewCountTrans2
xmlAutomataNewOnceTrans
@@ -224,6 +233,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlBufferGrow
xmlBufferResize
xmlGetUTF8Char
+xmlPatternMinDepth
minus
xmlXPathStringFunction
minute
ftpListCallback
misleading
xmlParsePEReference
@@ -256,6 +266,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNodeSetContent
xmlNodeSetContentLen
xmlSchemaNewDocParserCtxt
+xmlSchematronNewDocParserCtxt
modifies
xmlRelaxNGNewDocParserCtxt
modify
xmlShell
module
LIBXML_DEBUG_ENABLED
@@ -267,11 +278,13 @@ A:link, A:visited, A:active { text-decoration: underline } xmlModuleSymbol
xmlOutputMatchCallback
xmlStructuredErrorFunc
+
modules
LIBXML_MODULE_EXTENSION
moment
xmlDOMWrapReconcileNamespaces
xmlDOMWrapRemoveNode
month
ftpListCallback
more
XML_MAX_NAMELEN
-xmlLoadExternalEntity
+xmlExpGetLanguage
+xmlExpGetStart
xmlParseAttributeType
xmlParseElementDecl
xmlParseElementMixedContentDecl
diff --git a/doc/APIchunk2.html b/doc/APIchunk2.html index 3127bc7..b0f3780 100644 --- a/doc/APIchunk2.html +++ b/doc/APIchunk2.html @@ -108,8 +108,11 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaFree
xmlSchemaFreeFacet
xmlSchemaFreeType
+xmlSchematronFree
Deallocates
xmlSchemaFreeWildcard
Debugging
LIBXML_DEBUG_ENABLED
+xmlExpCtxtNbCons
+xmlExpCtxtNbNodes
Declaration
xmlParseElementDecl
xmlParseMarkupDecl
xmlParseSDDecl
@@ -140,6 +143,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSprintfElementContent
Depth
_xmlParserCtxt
_xmlValidCtxt
+
Dereference
xmlExpFree
DeregisterNodeFunc
xmlDeregisterNodeDefault
Deseret
xmlUCSIsDeseret
Determine
htmlIsBooleanAttr
@@ -358,11 +362,13 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathEvaluatePredicateResult
xmlXPtrEval
xmlXPtrEvalRangePredicate
-
Evaluates
xmlSchemaIsBuiltInTypeFacet
+
Evaluates
xmlExpExpDerive
+xmlSchemaIsBuiltInTypeFacet
Everything
_xmlParserCtxt
setDocumentLocator
setDocumentLocatorSAXFunc
xmlSAX2SetDocumentLocator
+
Examines
xmlHasFeature
Exclusive
xmlC14NDocDumpMemory
xmlC14NDocSave
xmlC14NDocSaveTo
@@ -394,7 +400,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCatalogLocalResolve
xmlCatalogResolve
xmlExternalEntityLoader
-xmlLoadExternalEntity
xmlParseAttribute
xmlParseDTD
xmlParseExternalID
diff --git a/doc/APIchunk20.html b/doc/APIchunk20.html index 198ff0d..01db33a 100644 --- a/doc/APIchunk20.html +++ b/doc/APIchunk20.html @@ -54,7 +54,8 @@ A:link, A:visited, A:active { text-decoration: underline } XINCLUDE_OLD_NS
xmlParseAttribute
xmlParseStartTag
-
namespaces
_xmlParserCtxt
+
namespaces
XML_XPATH_CHECKNS
+_xmlParserCtxt
_xmlSchemaWildcard
_xmlXPathContext
xmlC14NDocDumpMemory
@@ -172,6 +173,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlReaderNewFile
nice
xmlBuildRelativeURI
nillable
XML_SCHEMAS_ELEM_NILLABLE
+xmlExpIsNillable
nod
xmlEntityReferenceFunc
node-
xmlDOMWrapRemoveNode
xmlValidGetValidElements
@@ -209,6 +211,7 @@ A:link, A:visited, A:active { text-decoration: underline }
non-validating
xmlParseAttValue
xmlParseEntityRef
non-zero
initxmlDefaultSAXHandler
+xmlHasFeature
xmlIsLetter
xmlSAX2InitDefaultSAXHandler
xmlXPathBooleanFunction
diff --git a/doc/APIchunk21.html b/doc/APIchunk21.html index 8a44503..6789f9d 100644 --- a/doc/APIchunk21.html +++ b/doc/APIchunk21.html @@ -190,6 +190,9 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParserInputBufferPush
operation
xmlBuildRelativeURI
xmlCatalogSetDebug
+xmlExpNewOr
+xmlExpNewRange
+xmlExpNewSeq
xmlTextReaderConstValue
xmlXPathAddValues
xmlXPathCompareValues
@@ -206,8 +209,10 @@ A:link, A:visited, A:active { text-decoration: underline }
operations
xmlModuleClose
xmlModuleFree
xmlReconciliateNs
-
operator
xmlXPathCompareValues
-
operators
xmlXPathAddValues
+
operator
xmlExpParse
+xmlXPathCompareValues
+
operators
xmlExpParse
+xmlXPathAddValues
xmlXPathDivValues
xmlXPathModValues
xmlXPathMultValues
@@ -224,6 +229,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCreatePushParserCtxt
xmlCtxtResetPush
xmlDOMWrapAdoptNode
+xmlExpNewCtxt
xmlListCreate
xmlNanoFTPList
xmlNewChild
@@ -277,6 +283,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlGetEncodingAlias
xmlListMerge
xmlParseEntityValue
+xmlParseURIRaw
xmlSchemaSAXPlug
xmlSchemaSAXUnplug
xmlShellSave
@@ -288,6 +295,7 @@ A:link, A:visited, A:active { text-decoration: underline } htmlAutoCloseTag
htmlIsAutoClosed
htmlNodeStatus
+xmlAutomataNewNegTrans
xmlCatalogAdd
xmlGcMemSetup
xmlLoadACatalog
@@ -328,6 +336,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNewTextWriterPushParser
xmlNewTextWriterTree
outside
xmlReconciliateNs
+
over
xmlExpCtxtNbCons
overflow
_xmlParserInput
override
resolveEntity
resolveEntitySAXFunc
diff --git a/doc/APIchunk22.html b/doc/APIchunk22.html index b1a6e91..42008e7 100644 --- a/doc/APIchunk22.html +++ b/doc/APIchunk22.html @@ -89,6 +89,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlTextReaderSetErrorHandler
xmlTextReaderSetStructuredErrorHandler
passed
CHECK_ARITY
+xmlAutomataNewNegTrans
xmlAutomataNewTransition
xmlAutomataNewTransition2
xmlHashScan
@@ -132,6 +133,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlPatternGetStreamCtxt
xmlPatternMatch
xmlPatternMaxDepth
+xmlPatternMinDepth
xmlPatternStreamable
xmlPatterncompile
xmlSchemaValidateFacetWhtsp
@@ -157,6 +159,7 @@ A:link, A:visited, A:active { text-decoration: underline }
piece
xmlNewChild
xmlNewDocNode
xmlNewDocNodeEatName
+
pieces
xmlParseURIRaw
place
xmlCatalogAdd
xmlCopyError
xmlGcMemGet
@@ -242,10 +245,12 @@ A:link, A:visited, A:active { text-decoration: underline } xmlPatternGetStreamCtxt
xmlPatternMatch
xmlPatternMaxDepth
+xmlPatternMinDepth
xmlPatternStreamable
xmlRegNewExecCtxt
xmlRelaxNGNewValidCtxt
xmlSchemaNewValidCtxt
+xmlSchematronNewValidCtxt
xmlTextReaderRelaxNGSetSchema
xmlTextReaderSetSchema
xmlXPathDebugDumpCompExpr
@@ -287,6 +292,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlReaderWalker
xmlRelaxNGNewDocParserCtxt
xmlSchemaNewDocParserCtxt
+xmlSchematronNewDocParserCtxt
prepend
xmlValidGetValidElements
present
xmlBufferCreateStatic
xmlDictLookup
@@ -379,6 +385,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParseEntityRef
xmlRelaxNGNewDocParserCtxt
xmlSchemaNewDocParserCtxt
+xmlSchematronNewDocParserCtxt
xmlSkipBlankChars
xmlStringDecodeEntities
xmlStringLenDecodeEntities
@@ -483,6 +490,8 @@ A:link, A:visited, A:active { text-decoration: underline }
provides
endElementNsSAX2Func
startElementNsSAX2Func
xmlByteConsumed
+xmlExpCtxtNbCons
+xmlExpCtxtNbNodes
xmlSAX2EndElementNs
xmlSAX2StartElementNs
xmlTextReaderByteConsumed
diff --git a/doc/APIchunk23.html b/doc/APIchunk23.html index 5bd99db..a9194f7 100644 --- a/doc/APIchunk23.html +++ b/doc/APIchunk23.html @@ -73,6 +73,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlBufferAdd
xmlBufferAddHead
xmlCharInRange
+xmlExpNewRange
xmlTextReaderNormalization
xmlXPathNodeSetItem
xmlXPtrLocationSetAdd
@@ -109,6 +110,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNewRMutex
xmlUnlockLibrary
reachable
xmlPatternMaxDepth
+xmlPatternMinDepth
reached
xmlRegExecPushString
xmlRegExecPushString2
read-only
xmlDictCreateSub
@@ -138,6 +140,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlBuildRelativeURI
xmlCreateEntitiesTable
reasonable
xmlBuildRelativeURI
+
receive
xmlExpDump
received
ftpDataCallback
xmlNanoHTTPReturnCode
receives
xmlParseExternalID
@@ -273,6 +276,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlRegFreeRegexp
xmlRegNewExecCtxt
xmlRegexpPrint
+
regexps
xmlExpParse
register
xmlXPathRegisterVariableLookup
registered
xmlCtxtGetLastError
xmlCtxtResetLastError
@@ -321,10 +325,14 @@ A:link, A:visited, A:active { text-decoration: underline } xmlUTF8Strloc
xmlUTF8Strsub
relativeURI
xmlParseURI
+xmlParseURIRaw
xmlParseURIReference
release
xmlClearNodeInfoSeq
xmlClearParserCtxt
xmlDecodeEntities
+xmlExpNewOr
+xmlExpNewRange
+xmlExpNewSeq
xmlUnlockLibrary
releases
xmlTextReaderClose
reliable
xmlSaveToFilename
@@ -376,6 +384,8 @@ A:link, A:visited, A:active { text-decoration: underline }
removing
xmlLoadSGMLSuperCatalog
rename
_xmlError
repeat
xmlXPathAxisFunc
+
repeated
xmlExpNewRange
+
repetition
xmlExpNewRange
replace
XML_SCHEMAS_FACET_REPLACE
XML_SCHEMAS_TYPE_WHITESPACE_REPLACE
_xmlParserCtxt
@@ -430,6 +440,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNanoHTTPOpenRedir
xmlNanoHTTPReturnCode
requested
xmlExternalEntityLoader
+xmlHasFeature
xmlIsID
xmlMallocFunc
xmlReallocFunc
@@ -495,8 +506,11 @@ A:link, A:visited, A:active { text-decoration: underline } xmlRelaxNGFreeValidCtxt
xmlSchemaFreeParserCtxt
xmlSchemaFreeValidCtxt
+xmlSchematronFreeParserCtxt
+xmlSchematronFreeValidCtxt
xmlTextReaderClose
xmlXIncludeSetFlags
+
respect
xmlExpStringDerive
respecting
xmlValidGetValidElements
response
xmlNanoFTPCheckResponse
xmlNanoFTPGetResponse
@@ -558,6 +572,8 @@ A:link, A:visited, A:active { text-decoration: underline }
rewrite
xmlTextReaderGetRemainder
right
xmlAutomataNewCounterTrans
xmlCheckFilename
+xmlExpNewOr
+xmlExpNewSeq
xmlParseCharData
xmlSetListDoc
xmlSetTreeDoc
diff --git a/doc/APIchunk24.html b/doc/APIchunk24.html index 2d52d0d..986d998 100644 --- a/doc/APIchunk24.html +++ b/doc/APIchunk24.html @@ -129,7 +129,9 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaValidateFacetWhtsp
xmlSchemaValidateFile
xmlSchemaValidateStream
+xmlSchematronNewMemParserCtxt
xmlTextReaderSchemaValidate
+
schematron
xmlSchematronValidateDoc
scheme
_xmlURI
xmlBufferSetAllocationScheme
xmlGetBufferAllocationScheme
@@ -173,7 +175,8 @@ A:link, A:visited, A:active { text-decoration: underline }
selection
LIBXML_PATTERN_ENABLED
selects
xmlXPathIdFunction
self
xmlXPathNextSelf
-
semantic
xmlXPathNodeSetFreeNs
+
semantic
xmlAutomataNewNegTrans
+xmlXPathNodeSetFreeNs
sense
xmlCreateEntitiesTable
separated
xmlLoadCatalogs
separately
xmlSetGenericErrorFunc
@@ -189,6 +192,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCharEncOutFunc
xmlClearNodeInfoSeq
xmlCurrentChar
+xmlExpNewSeq
+xmlExpParse
xmlGetUTF8Char
xmlInitNodeInfoSeq
xmlParseAttValue
@@ -202,10 +207,12 @@ A:link, A:visited, A:active { text-decoration: underline } xmlUTF8Strsub
xmlXPathIdFunction
sequences
xmlCheckUTF8
+xmlExpParse
xmlParseAttValue
xmlValidCtxtNormalizeAttributeValue
xmlValidNormalizeAttributeValue
xmlXPathNormalizeFunction
+
sequqnce
xmlExpIsNillable
serialization
LIBXML_OUTPUT_ENABLED
xmlSaveToFd
xmlSaveToFilename
@@ -256,7 +263,8 @@ A:link, A:visited, A:active { text-decoration: underline }
shadowed
xmlDOMWrapAdoptNode
xmlDOMWrapReconcileNamespaces
shall
_xmlParserCtxt
-
shared
xmlCatalogAdd
+
shared
LIBXML_MODULE_EXTENSION
+xmlCatalogAdd
xmlModuleFree
xmlModuleOpen
shares
xmlXPathHasSameNodes
@@ -398,6 +406,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXIncludeProcessNode
xmlXIncludeProcessTree
xmlXIncludeProcessTreeFlags
+
sometimes
xmlExpExpDerive
somewhat
xmlCheckLanguageID
sorted
xmlParserAddNodeInfo
xmlParserFindNodeInfoIndex
@@ -517,10 +526,12 @@ A:link, A:visited, A:active { text-decoration: underline } startElementNsSAX2Func
xmlByteConsumed
xmlDOMWrapAdoptNode
+xmlExpGetStart
xmlParseStartTag
xmlRelaxNGValidatePushElement
xmlSAX2StartDocument
xmlSAX2StartElementNs
+xmlSplitQName3
xmlTextReaderByteConsumed
xmlValidatePushElement
xmlXPtrNewLocationSetNodes
@@ -534,6 +545,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAutomataNewCountedTrans
xmlAutomataNewCounterTrans
xmlAutomataNewEpsilon
+xmlAutomataNewNegTrans
xmlAutomataNewOnceTrans
xmlAutomataNewOnceTrans2
xmlAutomataNewTransition
@@ -574,7 +586,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSaveFile
xmlSaveFormatFile
xmlShell
-
step
xmlValidCtxtNormalizeAttributeValue
+
step
xmlExpStringDerive
+xmlValidCtxtNormalizeAttributeValue
xmlValidNormalizeAttributeValue
xmlValidateDocumentFinal
xmlValidateDtdFinal
@@ -598,6 +611,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlC14NExecute
xmlCharEncodingInputFunc
xmlCharEncodingOutputFunc
+xmlExpGetLanguage
+xmlExpGetStart
xmlGetFeature
xmlInputReadCallback
xmlOutputBufferWrite
@@ -645,6 +660,9 @@ A:link, A:visited, A:active { text-decoration: underline }
stringi
xmlXPathSubstringAfterFunction
strings
_xmlParserCtxt
xmlDictCreateSub
+xmlExpGetLanguage
+xmlExpGetStart
+xmlExpParse
xmlGetFeaturesList
xmlPatterncompile
xmlRegExecErrInfo
@@ -670,7 +688,9 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaNewNOTATIONValue
xmlSchemaNewQNameValue
xmlSchemaNewStringValue
-
structured
xmlSetStructuredErrorFunc
+
structured
xmlRelaxNGSetValidStructuredErrors
+xmlSchemaSetValidStructuredErrors
+xmlSetStructuredErrorFunc
structures
xmlFreeDoc
xmlFreeNs
xmlFreeNsList
@@ -679,15 +699,20 @@ A:link, A:visited, A:active { text-decoration: underline } xmlRegFreeExecCtxt
struture
xmlRelaxNGParse
xmlSchemaParse
+xmlSchematronParse
stuff
_xmlXPathContext
xmlParseNamespace
style
xmlSAXDefaultVersion
+
sub
xmlExpExpDerive
sub-elements
_htmlElemDesc
subelement
_htmlElemDesc
htmlDefaultSubelement
xmlNewDocElementContent
xmlNewElementContent
subelements
_htmlElemDesc
+
subexpression
xmlExpExpDerive
+xmlExpSubsume
+
subexpressions
xmlExpParse
subject
xmlParseSDDecl
xmlRelaxNGParse
xmlSchemaParse
@@ -799,6 +824,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathLangFunction
xmlXPathNodeSetFreeNs
xmlXPathRoundFunction
+
suffix
LIBXML_MODULE_EXTENSION
suggested
_htmlElemDesc
suitable
xmlNewIOInputStream
xmlRegexpCompile
diff --git a/doc/APIchunk25.html b/doc/APIchunk25.html index e958d91..98b46a8 100644 --- a/doc/APIchunk25.html +++ b/doc/APIchunk25.html @@ -61,6 +61,7 @@ A:link, A:visited, A:active { text-decoration: underline } htmlSetMetaEncoding
take
xmlLockLibrary
takes
xmlSchemaValidateFacetWhtsp
+
tatkes
xmlExpExpDerive
tell
XML_COMPLETE_ATTRS
XML_DETECT_IDS
XML_SKIP_IDS
@@ -72,6 +73,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlIOHTTPOpenW
terminal
xmlRegExecErrInfo
xmlRegExecNextValues
+
terminals
xmlExpParse
terminated
htmlCtxtReadDoc
htmlReadDoc
startElement
@@ -80,6 +82,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlBufferCat
xmlCtxtReadDoc
xmlDocDumpMemory
+xmlExpParse
xmlGetNsList
xmlOutputBufferWriteEscape
xmlOutputBufferWriteString
@@ -101,6 +104,9 @@ A:link, A:visited, A:active { text-decoration: underline }
text-node
xmlIsBlankNode
textDecl?
xmlParseExternalSubset
than
xmlCheckUTF8
+xmlExpExpDerive
+xmlExpGetLanguage
+xmlExpGetStart
xmlNewNs
xmlParseAttribute
xmlParseAttributeType
@@ -131,7 +137,11 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathMultValues
xmlXPathSubValues
xmlXPathValueFlipSign
-
them
xmlNanoFTPRead
+
them
xmlExpGetLanguage
+xmlExpGetStart
+xmlExpNewOr
+xmlExpNewSeq
+xmlNanoFTPRead
xmlNanoHTTPRead
xmlParseAttValue
xmlParseAttributeType
@@ -185,7 +195,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathNextAncestor
xmlXPathNextAncestorOrSelf
xmlXPathNextDescendantOrSelf
-
time
xmlXPathAxisFunc
+
time
xmlExpExpDerive
+xmlXPathAxisFunc
title
xlinkSimpleLinkFunk
titles
xlinkExtendedLinkFunk
xlinkExtendedLinkSetFunk
@@ -203,7 +214,9 @@ A:link, A:visited, A:active { text-decoration: underline }
token_r
xmlNewRMutex
xmlRMutexLock
xmlRMutexUnlock
-
tokens
xmlParseEnumerationType
+
tokens
xmlExpGetLanguage
+xmlExpGetStart
+xmlParseEnumerationType
xmlXPathIdFunction
too
DEBUG_MEMORY
htmlNodeDump
diff --git a/doc/APIchunk26.html b/doc/APIchunk26.html index 814dec7..8a0befa 100644 --- a/doc/APIchunk26.html +++ b/doc/APIchunk26.html @@ -47,7 +47,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlGetDocCompressMode
xmlSetCompressMode
xmlSetDocCompressMode
-
undefined
xmlPatterncompile
under
xmlBuildRelativeURI
xmlSearchNs
xmlSetTreeDoc
@@ -56,9 +55,11 @@ A:link, A:visited, A:active { text-decoration: underline } xmlValidateElement
underlying
xmlTextReaderClose
xmlTextReaderCurrentNode
+
understand
xmlExpParse
unescape
xmlURIUnescapeString
unescaped
xmlFileOpen
xmlURIUnescapeString
+
unescaping
xmlParseURIRaw
unicode
htmlEntityValueLookup
xmlIsLetter
unimplemented
htmlCtxtUseOptions
@@ -70,6 +71,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathIdFunction
unique
_xmlParserInput
_xmlSchema
+xmlExpGetLanguage
+xmlExpGetStart
xmlXPathIdFunction
uniquely
xmlParseAttributeType
xmlXPathStringFunction
@@ -82,10 +85,14 @@ A:link, A:visited, A:active { text-decoration: underline } XML_SCHEMAS_FACET_UNKNOWN
htmlCtxtUseOptions
xmlCtxtUseOptions
+xmlHasFeature
xmlUCSIsBlock
xmlUCSIsCat
unless
htmlSAXParseDoc
htmlSAXParseFile
+xmlExpNewOr
+xmlExpNewRange
+xmlExpNewSeq
xmlGetNoNsProp
xmlGetNsProp
xmlGetProp
@@ -169,7 +176,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSplitQName2
upon
checkNamespace
xlinkNodeDetectFunc
-
upper
xmlIsRef
+
upper
xmlExpNewRange
+xmlIsRef
uri
xmlNormalizeWindowsPath
usage
xmlGetBufferAllocationScheme
xmlSetBufferAllocationScheme
@@ -185,7 +193,10 @@ A:link, A:visited, A:active { text-decoration: underline } xmlValidityWarningFunc
users
_xmlSchema
uses
htmlNodeStatus
-
usually
c
+
usual
xmlExpParse
+
usually
LIBXML_MODULE_EXTENSION
+c
+xmlExpExpDerive
xmlInitCharEncodingHandlers
xmlSchemaGetPredefinedType
xmlTextReaderGetParserProp
@@ -237,7 +248,8 @@ A:link, A:visited, A:active { text-decoration: underline }
varags
xmlGenericErrorFunc
vararg
xmlValidityErrorFunc
xmlValidityWarningFunc
-
variables
_xmlXPathContext
+
variables
XML_XPATH_NOVAR
+_xmlXPathContext
xmlNanoFTPProxy
xmlXPathRegisteredNsCleanup
xmlXPathRegisteredVariablesCleanup
diff --git a/doc/APIchunk27.html b/doc/APIchunk27.html index 646d079..2db1f05 100644 --- a/doc/APIchunk27.html +++ b/doc/APIchunk27.html @@ -132,6 +132,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCopyPropList
xmlDOMWrapAdoptNode
xmlDOMWrapReconcileNamespaces
+xmlExpGetLanguage
+xmlExpGetStart
xmlFileRead
xmlIOFTPRead
xmlIOHTTPRead
@@ -228,9 +230,11 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParserHandlePEReference
xmlSAX2EntityDecl
xmlScanName
+xmlSplitQName3
xmlValidateOneAttribute
xmlValidateOneNamespace
won
_xmlParserCtxt
+xmlAutomataNewNegTrans
xmlBufferCreateStatic
xmlLoadSGMLSuperCatalog
xmlParseAttValue
diff --git a/doc/APIchunk28.html b/doc/APIchunk28.html index e2520bc..c3146cf 100644 --- a/doc/APIchunk28.html +++ b/doc/APIchunk28.html @@ -172,6 +172,12 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSAX2GetParameterEntity
xmlEnumerationPtr
xmlCopyEnumeration
xmlCreateEnumeration
+
xmlExpFree
xmlExpNewOr
+xmlExpNewRange
+xmlExpNewSeq
+
xmlExpRef
xmlExpNewOr
+xmlExpNewRange
+xmlExpNewSeq
xmlExternalEntityLoader
xmlGetExternalEntityLoader
xmlFileOpen_real
xmlFileOpen
xmlFree
xmlC14NDocDumpMemory
@@ -329,6 +335,7 @@ A:link, A:visited, A:active { text-decoration: underline }
xmlParserProperties
xmlTextReaderGetParserProp
xmlTextReaderSetParserProp
xmlPattern
LIBXML_PATTERN_ENABLED
+
xmlPatternFlags
xmlPatterncompile
xmlPatternGetStreamCtxt
xmlPatternStreamable
xmlPatterncompile
xmlStreamPush
xmlStreamPushAttr
@@ -386,6 +393,7 @@ A:link, A:visited, A:active { text-decoration: underline }
xmlSchemaSAXPlug
xmlSchemaSAXUnplug
xmlSchemaValType
xmlSchemaGetValType
xmlSchemaValidOption
xmlSchemaSetValidOptions
+
xmlSchematronValidOptions
xmlSchematronNewValidCtxt
xmlSetExternalEntityLoader
resolveEntity
resolveEntitySAXFunc
xmlSAX2ResolveEntity
@@ -421,6 +429,7 @@ A:link, A:visited, A:active { text-decoration: underline }
xmlURIEscapeStr
xmlURIEscape
xmlURIFromPath
xmlNormalizeWindowsPath
xmlURIPtr
xmlParseURI
+xmlParseURIRaw
xmlUnlinkNode
xmlFreeNode
xmlUnlockLibrary
xmlUnlockLibrary
xmlValidCtxtPtr
xmlValidityErrorFunc
diff --git a/doc/APIchunk29.html b/doc/APIchunk29.html index 969581e..e9edd2c 100644 --- a/doc/APIchunk29.html +++ b/doc/APIchunk29.html @@ -50,7 +50,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlRegexpIsDeterminist
xmlTextWriterStartDocument
yet
xmlModuleOpen
-xmlPatterncompile
xmlSaveDoc
xmlSaveTree
xmlSchemaGetCanonValue
@@ -72,6 +71,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCopyDoc
xmlCtxtReadDoc
xmlDocDumpMemory
+xmlHasFeature
xmlOutputBufferWriteEscape
xmlOutputBufferWriteString
xmlParseBalancedChunkMemory
diff --git a/doc/APIchunk3.html b/doc/APIchunk3.html index 2b95558..32c47e7 100644 --- a/doc/APIchunk3.html +++ b/doc/APIchunk3.html @@ -58,7 +58,9 @@ A:link, A:visited, A:active { text-decoration: underline }
Fetch
xmlNanoFTPGet
File
xmlTextReaderGetRemainder
Fills
xmlNodeBufGetContent
-
Find
xmlGetRefs
+
Find
xmlExpGetLanguage
+xmlExpGetStart
+xmlGetRefs
xmlHashLookup
xmlHashLookup2
xmlHashLookup3
@@ -70,6 +72,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlHashRemoveEntry3
xmlParserFindNodeInfo
xmlParserFindNodeInfoIndex
+
Finds
xmlExpIsNillable
First
_xmlEntity
Fixed
xmlParseDefaultDecl
xmlValidateOneAttribute
@@ -255,7 +258,9 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathTrailing
xmlXPathTrailingSorted
Included
xmlParserHandlePEReference
+
Increase
xmlExpRef
Increment
xmlDictReference
+
Indicate
xmlExpMaxToken
Indicates
_xmlSchemaWildcard
Infinity
xmlXPathStringFunction
Initial
xmlAutomataGetInitState
diff --git a/doc/APIchunk4.html b/doc/APIchunk4.html index 52d4750..b6dce45 100644 --- a/doc/APIchunk4.html +++ b/doc/APIchunk4.html @@ -142,6 +142,7 @@ A:link, A:visited, A:active { text-decoration: underline } htmlSetMetaEncoding
Method
xmlTextReaderGetRemainder
Mime-Type
xmlNanoHTTPMimeType
+
Minimal
xmlExpParse
Misc
_xmlSchema
xmlParseDocument
xmlParseMisc
@@ -289,6 +290,7 @@ A:link, A:visited, A:active { text-decoration: underline }
Note
ftpListCallback
htmlElementAllowedHere
xmlAddAttributeDecl
+xmlAutomataNewNegTrans
xmlCheckUTF8
xmlDOMWrapAdoptNode
xmlDOMWrapReconcileNamespaces
@@ -296,6 +298,9 @@ A:link, A:visited, A:active { text-decoration: underline } xmlDocDumpFormatMemoryEnc
xmlDocDumpMemoryEnc
xmlDocFormatDump
+xmlExpNewOr
+xmlExpNewRange
+xmlExpNewSeq
xmlHasNsProp
xmlNanoHTTPContentLength
xmlNodeDump
diff --git a/doc/APIchunk5.html b/doc/APIchunk5.html index 05ab344..31e1e79 100644 --- a/doc/APIchunk5.html +++ b/doc/APIchunk5.html @@ -126,6 +126,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParseInNodeContext
xmlParseQuotedString
xmlParseURI
+xmlParseURIRaw
xmlParseURIReference
xmlStringGetNodeList
xmlStringLenGetNodeList
diff --git a/doc/APIchunk6.html b/doc/APIchunk6.html index b2179c0..1357cda 100644 --- a/doc/APIchunk6.html +++ b/doc/APIchunk6.html @@ -165,6 +165,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlRelaxNGParse
xmlRelaxNGSetParserErrors
xmlRelaxNGSetValidErrors
+xmlRelaxNGSetValidStructuredErrors
xmlRelaxNGValidateDoc
RelaxNG
xmlRelaxNGCleanupTypes
xmlRelaxNGDump
@@ -224,6 +225,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlGetDocEntity
xmlGetDtdEntity
xmlGetParameterEntity
+xmlHasFeature
xmlLinkGetData
xmlXPathCheckError
xmlXPathGetContextNode
diff --git a/doc/APIchunk7.html b/doc/APIchunk7.html index 825348d..5c9847c 100644 --- a/doc/APIchunk7.html +++ b/doc/APIchunk7.html @@ -119,6 +119,13 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaNewMemParserCtxt
xmlSchemaNewParserCtxt
xmlSchemaNewValidCtxt
+
Schematron
LIBXML_SCHEMATRON_ENABLED
+xmlSchematronFree
+xmlSchematronParse
+
Schematrons
xmlSchematronNewDocParserCtxt
+xmlSchematronNewMemParserCtxt
+xmlSchematronNewParserCtxt
+xmlSchematronNewValidCtxt
Script
htmlIsScriptAttribute
Search
xmlFindCharEncodingHandler
xmlGetCharEncodingHandler
@@ -158,36 +165,7 @@ A:link, A:visited, A:active { text-decoration: underline }
Semi
xmlRelaxParserSetFlag
Send
xmlNanoFTPQuit
Serialize
xmlAttrSerializeTxtContent
-
Set
htmlHandleOmittedElem
-initGenericErrorDefaultFunc
-setNamespace
-xlinkSetDefaultDetect
-xlinkSetDefaultHandler
-xmlDocSetRootElement
-xmlInitializePredefinedEntities
-xmlKeepBlanksDefault
-xmlLineNumbersDefault
-xmlNodeSetBase
-xmlNodeSetLang
-xmlNodeSetName
-xmlNodeSetSpacePreserve
-xmlPedanticParserDefault
-xmlRelaxNGSetParserErrors
-xmlRelaxNGSetValidErrors
-xmlSAXDefaultVersion
-xmlSaveSetAttrEscape
-xmlSaveSetEscape
-xmlSchemaSetParserErrors
-xmlSchemaSetValidErrors
-xmlSetBufferAllocationScheme
-xmlSetEntityReferenceFunc
-xmlSetNsProp
-xmlSetProp
-xmlSubstituteEntitiesDefault
-xmlTextWriterSetIndent
-xmlTextWriterSetIndentString
-xmlXIncludeSetFlags
-xmlXPtrEvalRangePredicate
+xmlExpDump
Sets
htmlSetMetaEncoding
xmlBufferSetAllocationScheme
xmlSchemaSetValidOptions
@@ -215,6 +193,7 @@ A:link, A:visited, A:active { text-decoration: underline }
Shell
xmlShellReadlineFunc
Shema
xmlRelaxNGParse
xmlSchemaParse
+xmlSchematronParse
Should
_xmlParserCtxt
xmlGcMemSetup
xmlMemSetup
diff --git a/doc/APIchunk8.html b/doc/APIchunk8.html index 22ea3f8..0407e65 100644 --- a/doc/APIchunk8.html +++ b/doc/APIchunk8.html @@ -56,7 +56,6 @@ A:link, A:visited, A:active { text-decoration: underline } htmlNodeDumpFileFormat
xmlDecodeEntities
xmlEncodeEntities
-xmlLoadExternalEntity
xmlModuleOpen
xmlNamespaceParseNCName
xmlNamespaceParseNSDef
@@ -112,6 +111,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParseElementChildrenContentDecl
xmlParseMarkupDecl
Then
xmlValidateOneElement
+
There
xmlExpParse
Those
_xmlParserCtxt
Thus:
xmlXPathSubstringFunction
Tibetan
xmlUCSIsTibetan
@@ -183,6 +183,7 @@ A:link, A:visited, A:active { text-decoration: underline } ignorableWhitespaceSAXFunc
xmlSAX2IgnorableWhitespace
URI-reference
xmlParseURI
+xmlParseURIRaw
xmlParseURIReference
URN
globalNamespace
namespaceDecl
diff --git a/doc/APIchunk9.html b/doc/APIchunk9.html index 98df8eb..91895db 100644 --- a/doc/APIchunk9.html +++ b/doc/APIchunk9.html @@ -44,6 +44,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaValidateDoc
xmlSchemaValidateOneElement
xmlSchemaValidateStream
+xmlSchematronValidateDoc
xmlShellValidate
xmlValidateAttributeValue
xmlValidateNameValue
@@ -206,7 +207,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPtrEvalRangePredicate
xmlXPtrNewContext
xmlXPtrRangeToFunction
-
XSD
xmlTextReaderSchemaValidate
+
XSD
xmlAutomataNewNegTrans
+xmlTextReaderSchemaValidate
xmlTextReaderSetSchema
XSLT
_xmlNode
_xmlXPathContext
diff --git a/doc/APIconstructors.html b/doc/APIconstructors.html index 7625556..9598e49 100644 --- a/doc/APIconstructors.html +++ b/doc/APIconstructors.html @@ -148,6 +148,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAutomataNewCountedTrans
xmlAutomataNewCounterTrans
xmlAutomataNewEpsilon
+xmlAutomataNewNegTrans
xmlAutomataNewOnceTrans
xmlAutomataNewOnceTrans2
xmlAutomataNewState
@@ -324,6 +325,14 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParseNotationType

Type xmlErrorPtr:

xmlCtxtGetLastError
xmlGetLastError
+

Type xmlExpCtxtPtr:

xmlExpNewCtxt
+

Type xmlExpNodePtr:

xmlExpExpDerive
+xmlExpNewAtom
+xmlExpNewOr
+xmlExpNewRange
+xmlExpNewSeq
+xmlExpParse
+xmlExpStringDerive

Type xmlExternalEntityLoader:

xmlGetExternalEntityLoader

Type xmlGlobalStatePtr:

xmlGetGlobalState

Type xmlHashTablePtr:

xmlHashCopy
@@ -491,6 +500,11 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaValueGetNext

Type xmlSchemaValType:

xmlSchemaGetValType

Type xmlSchemaValidCtxtPtr:

xmlSchemaNewValidCtxt
+

Type xmlSchematronParserCtxtPtr:

xmlSchematronNewDocParserCtxt
+xmlSchematronNewMemParserCtxt
+xmlSchematronNewParserCtxt
+

Type xmlSchematronPtr:

xmlSchematronParse
+

Type xmlSchematronValidCtxtPtr:

xmlSchematronNewValidCtxt

Type xmlStreamCtxtPtr:

xmlPatternGetStreamCtxt

Type xmlTextReaderPtr:

xmlNewTextReader
xmlNewTextReaderFilename
@@ -508,6 +522,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNewTextWriterTree

Type xmlURIPtr:

xmlCreateURI
xmlParseURI
+xmlParseURIRaw

Type xmlValidCtxtPtr:

xmlNewValidCtxt

Type xmlXIncludeCtxtPtr:

xmlXIncludeNewContext

Type xmlXPathCompExprPtr:

xmlXPathCompile
diff --git a/doc/APIfiles.html b/doc/APIfiles.html index 94d55f0..b275cf7 100644 --- a/doc/APIfiles.html +++ b/doc/APIfiles.html @@ -27,11 +27,13 @@ A:link, A:visited, A:active { text-decoration: underline }

Module HTMLparser:

HTML_DEPRECATED
HTML_INVALID
HTML_NA
+HTML_PARSE_COMPACT
HTML_PARSE_NOBLANKS
HTML_PARSE_NOERROR
HTML_PARSE_NONET
HTML_PARSE_NOWARNING
HTML_PARSE_PEDANTIC
+HTML_PARSE_RECOVER
HTML_REQUIRED
HTML_VALID
UTF8ToHtml
@@ -574,6 +576,37 @@ A:link, A:visited, A:active { text-decoration: underline }

Module parser:

XML_COMPLETE_ATTRS
XML_DEFAULT_VERSION
XML_DETECT_IDS
+XML_FEATURE_AUTOMATA
+XML_FEATURE_C14N
+XML_FEATURE_CATALOG
+XML_FEATURE_DEBUG
+XML_FEATURE_DEBUG_MEM
+XML_FEATURE_DEBUG_RUN
+XML_FEATURE_EXPR
+XML_FEATURE_FTP
+XML_FEATURE_HTML
+XML_FEATURE_HTTP
+XML_FEATURE_ICONV
+XML_FEATURE_ISO8859X
+XML_FEATURE_LEGACY
+XML_FEATURE_MODULES
+XML_FEATURE_NONE
+XML_FEATURE_OUTPUT
+XML_FEATURE_PATTERN
+XML_FEATURE_PUSH
+XML_FEATURE_READER
+XML_FEATURE_REGEXP
+XML_FEATURE_SAX1
+XML_FEATURE_SCHEMAS
+XML_FEATURE_SCHEMATRON
+XML_FEATURE_THREAD
+XML_FEATURE_TREE
+XML_FEATURE_UNICODE
+XML_FEATURE_VALID
+XML_FEATURE_WRITER
+XML_FEATURE_XINCLUDE
+XML_FEATURE_XPATH
+XML_FEATURE_XPTR
XML_PARSER_ATTRIBUTE_VALUE
XML_PARSER_CDATA_SECTION
XML_PARSER_COMMENT
@@ -592,6 +625,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_PARSER_START
XML_PARSER_START_TAG
XML_PARSER_SYSTEM_LITERAL
+XML_PARSE_COMPACT
XML_PARSE_DOM
XML_PARSE_DTDATTR
XML_PARSE_DTDLOAD
@@ -669,10 +703,12 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCtxtResetPush
xmlCtxtUseOptions
xmlExternalEntityLoader
+xmlFeature
xmlFreeParserCtxt
xmlGetExternalEntityLoader
xmlGetFeature
xmlGetFeaturesList
+xmlHasFeature
xmlIOParseDTD
xmlInitNodeInfoSeq
xmlInitParser
@@ -869,6 +905,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlPatternGetStreamCtxt
xmlPatternMatch
xmlPatternMaxDepth
+xmlPatternMinDepth
xmlPatternPtr
xmlPatternStreamable
xmlPatterncompile
@@ -941,6 +978,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlRelaxNGPtr
xmlRelaxNGSetParserErrors
xmlRelaxNGSetValidErrors
+xmlRelaxNGSetValidStructuredErrors
xmlRelaxNGValidCtxt
xmlRelaxNGValidCtxtPtr
xmlRelaxNGValidErr
@@ -1167,6 +1205,30 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaWildcardNs
xmlSchemaWildcardNsPtr
xmlSchemaWildcardPtr
+

Module schematron:

XML_SCHEMATRON_OUT_BUFFER
+XML_SCHEMATRON_OUT_FILE
+XML_SCHEMATRON_OUT_IO
+XML_SCHEMATRON_OUT_QUIET
+XML_SCHEMATRON_OUT_TEXT
+XML_SCHEMATRON_OUT_XML
+xmlSchematron
+xmlSchematronFree
+xmlSchematronFreeParserCtxt
+xmlSchematronFreeValidCtxt
+xmlSchematronNewDocParserCtxt
+xmlSchematronNewMemParserCtxt
+xmlSchematronNewParserCtxt
+xmlSchematronNewValidCtxt
+xmlSchematronParse
+xmlSchematronParserCtxt
+xmlSchematronParserCtxtPtr
+xmlSchematronPtr
+xmlSchematronValidCtxt
+xmlSchematronValidCtxtPtr
+xmlSchematronValidOptions
+xmlSchematronValidateDoc
+xmlSchematronValidityErrorFunc
+xmlSchematronValidityWarningFunc

Module threads:

xmlCleanupThreads
xmlFreeMutex
xmlFreeRMutex
@@ -1468,6 +1530,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlFreeURI
xmlNormalizeURIPath
xmlParseURI
+xmlParseURIRaw
xmlParseURIReference
xmlPrintURI
xmlSaveUri
@@ -1682,6 +1745,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAutomataNewCounter
xmlAutomataNewCounterTrans
xmlAutomataNewEpsilon
+xmlAutomataNewNegTrans
xmlAutomataNewOnceTrans
xmlAutomataNewOnceTrans2
xmlAutomataNewState
@@ -1896,6 +1960,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_FROM_FTP
XML_FROM_HTML
XML_FROM_HTTP
+XML_FROM_I18N
XML_FROM_IO
XML_FROM_MEMORY
XML_FROM_MODULE
@@ -1924,6 +1989,11 @@ A:link, A:visited, A:active { text-decoration: underline } XML_HTTP_UNKNOWN_HOST
XML_HTTP_URL_SYNTAX
XML_HTTP_USE_IP
+XML_I18N_CONV_FAILED
+XML_I18N_EXCESS_HANDLER
+XML_I18N_NO_HANDLER
+XML_I18N_NO_NAME
+XML_I18N_NO_OUTPUT
XML_IO_BUFFER_FULL
XML_IO_EACCES
XML_IO_EADDRINUSE
@@ -2255,6 +2325,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_SCHEMAP_SRC_IMPORT_3_2
XML_SCHEMAP_SRC_INCLUDE
XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE
+XML_SCHEMAP_SRC_REDEFINE
XML_SCHEMAP_SRC_RESOLVE
XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE
XML_SCHEMAP_SRC_SIMPLE_TYPE_1
@@ -2458,6 +2529,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlStructuredErrorFunc

Module xmlexports:

LIBXML_DLL_IMPORT
XMLCALL
+XMLCDECL
XMLPUBFUN
XMLPUBVAR
_REENTRANT
@@ -2621,7 +2693,39 @@ A:link, A:visited, A:active { text-decoration: underline } xmlTextReaderStandalone
xmlTextReaderValue
xmlTextReaderXmlLang
-

Module xmlregexp:

xmlRegExecCallbacks
+

Module xmlregexp:

XML_EXP_ATOM
+XML_EXP_COUNT
+XML_EXP_EMPTY
+XML_EXP_FORBID
+XML_EXP_OR
+XML_EXP_SEQ
+emptyExp
+forbiddenExp
+xmlExpCtxt
+xmlExpCtxtNbCons
+xmlExpCtxtNbNodes
+xmlExpCtxtPtr
+xmlExpDump
+xmlExpExpDerive
+xmlExpFree
+xmlExpFreeCtxt
+xmlExpGetLanguage
+xmlExpGetStart
+xmlExpIsNillable
+xmlExpMaxToken
+xmlExpNewAtom
+xmlExpNewCtxt
+xmlExpNewOr
+xmlExpNewRange
+xmlExpNewSeq
+xmlExpNode
+xmlExpNodePtr
+xmlExpNodeType
+xmlExpParse
+xmlExpRef
+xmlExpStringDerive
+xmlExpSubsume
+xmlRegExecCallbacks
xmlRegExecCtxt
xmlRegExecCtxtPtr
xmlRegExecErrInfo
@@ -2638,6 +2742,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlRegexpPrint
xmlRegexpPtr

Module xmlsave:

XML_SAVE_FORMAT
+XML_SAVE_NO_DECL
xmlSaveClose
xmlSaveCtxt
xmlSaveCtxtPtr
@@ -2700,6 +2805,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaSetParserErrors
xmlSchemaSetValidErrors
xmlSchemaSetValidOptions
+xmlSchemaSetValidStructuredErrors
xmlSchemaValidCtxt
xmlSchemaValidCtxtGetOptions
xmlSchemaValidCtxtPtr
@@ -2957,6 +3063,7 @@ A:link, A:visited, A:active { text-decoration: underline } LIBXML_DEBUG_RUNTIME
LIBXML_DOCB_ENABLED
LIBXML_DOTTED_VERSION
+LIBXML_EXPR_ENABLED
LIBXML_FTP_ENABLED
LIBXML_HTML_ENABLED
LIBXML_HTTP_ENABLED
@@ -2972,6 +3079,7 @@ A:link, A:visited, A:active { text-decoration: underline } LIBXML_REGEXP_ENABLED
LIBXML_SAX1_ENABLED
LIBXML_SCHEMAS_ENABLED
+LIBXML_SCHEMATRON_ENABLED
LIBXML_TEST_VERSION
LIBXML_THREAD_ENABLED
LIBXML_TREE_ENABLED
@@ -3070,7 +3178,9 @@ A:link, A:visited, A:active { text-decoration: underline } xmlTextWriterWriteVFormatPI
xmlTextWriterWriteVFormatRaw
xmlTextWriterWriteVFormatString
-

Module xpath:

XPATH_BOOLEAN
+

Module xpath:

XML_XPATH_CHECKNS
+XML_XPATH_NOVAR
+XPATH_BOOLEAN
XPATH_ENCODING_ERROR
XPATH_EXPRESSION_OK
XPATH_EXPR_ERROR
diff --git a/doc/APIfunctions.html b/doc/APIfunctions.html index ce0d0c5..3d660c4 100644 --- a/doc/APIfunctions.html +++ b/doc/APIfunctions.html @@ -19,6 +19,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlRelaxNGValidityWarningFunc
xmlSchemaValidityErrorFunc
xmlSchemaValidityWarningFunc
+xmlSchematronValidityErrorFunc
+xmlSchematronValidityWarningFunc
xmlStrPrintf
xmlTextWriterWriteFormatAttribute
xmlTextWriterWriteFormatAttributeNS
@@ -180,6 +182,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAttrSerializeTxtContent
xmlAutomataNewCountTrans
xmlAutomataNewCountTrans2
+xmlAutomataNewNegTrans
xmlAutomataNewOnceTrans
xmlAutomataNewOnceTrans2
xmlAutomataNewTransition
@@ -218,6 +221,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlEncodeEntities
xmlEncodeEntitiesReentrant
xmlEncodeSpecialChars
+xmlExpNewAtom
+xmlExpStringDerive
xmlGetDocEntity
xmlGetDtdAttrDesc
xmlGetDtdElementDesc
@@ -491,6 +496,8 @@ A:link, A:visited, A:active { text-decoration: underline } startElementSAXFunc
xlinkExtendedLinkFunk
xlinkExtendedLinkSetFunk
+xmlExpGetLanguage
+xmlExpGetStart
xmlPatterncompile
xmlRegExecErrInfo
xmlSAX2StartElement
@@ -694,6 +701,7 @@ A:link, A:visited, A:active { text-decoration: underline } xlinkSimpleLinkFunk
xmlAutomataNewCountTrans
xmlAutomataNewCountTrans2
+xmlAutomataNewNegTrans
xmlAutomataNewOnceTrans
xmlAutomataNewOnceTrans2
xmlAutomataNewTransition
@@ -792,6 +800,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlRegNewExecCtxt
xmlRelaxNGSetParserErrors
xmlRelaxNGSetValidErrors
+xmlRelaxNGSetValidStructuredErrors
xmlRelaxNGValidityErrorFunc
xmlRelaxNGValidityWarningFunc
xmlSAX2AttributeDecl
@@ -831,9 +840,12 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSaveToIO
xmlSchemaSetParserErrors
xmlSchemaSetValidErrors
+xmlSchemaSetValidStructuredErrors
xmlSchemaValidateStream
xmlSchemaValidityErrorFunc
xmlSchemaValidityWarningFunc
+xmlSchematronValidityErrorFunc
+xmlSchematronValidityWarningFunc
xmlSetFeature
xmlSetGenericErrorFunc
xmlSetStructuredErrorFunc
@@ -894,6 +906,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAutomataNewCounter
xmlAutomataNewCounterTrans
xmlAutomataNewEpsilon
+xmlAutomataNewNegTrans
xmlAutomataNewOnceTrans
xmlAutomataNewOnceTrans2
xmlAutomataNewState
@@ -907,6 +920,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAutomataNewCountedTrans
xmlAutomataNewCounterTrans
xmlAutomataNewEpsilon
+xmlAutomataNewNegTrans
xmlAutomataNewOnceTrans
xmlAutomataNewOnceTrans2
xmlAutomataNewTransition
@@ -942,6 +956,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlDumpEntityDecl
xmlDumpNotationDecl
xmlDumpNotationTable
+xmlExpDump
xmlNewTextWriterMemory
xmlNodeBufGetContent
xmlNodeDump
@@ -1055,6 +1070,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlDictQLookup
xmlDictReference
xmlDictSize
+xmlExpNewCtxt
xmlHashCreateDict

Type xmlDocPtr:

htmlDocContentDumpFormatOutput
htmlDocContentDumpOutput
@@ -1157,6 +1173,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSaveFormatFileTo
xmlSchemaNewDocParserCtxt
xmlSchemaValidateDoc
+xmlSchematronNewDocParserCtxt
+xmlSchematronValidateDoc
xmlSearchNs
xmlSearchNsByHref
xmlSetDocCompressMode
@@ -1241,7 +1259,35 @@ A:link, A:visited, A:active { text-decoration: underline }

Type xmlErrorPtr:

xmlCopyError
xmlResetError
xmlStructuredErrorFunc
+

Type xmlExpCtxtPtr:

xmlExpCtxtNbCons
+xmlExpCtxtNbNodes
+xmlExpExpDerive
+xmlExpFree
+xmlExpFreeCtxt
+xmlExpGetLanguage
+xmlExpGetStart
+xmlExpNewAtom
+xmlExpNewOr
+xmlExpNewRange
+xmlExpNewSeq
+xmlExpParse
+xmlExpStringDerive
+xmlExpSubsume
+

Type xmlExpNodePtr:

xmlExpDump
+xmlExpExpDerive
+xmlExpFree
+xmlExpGetLanguage
+xmlExpGetStart
+xmlExpIsNillable
+xmlExpMaxToken
+xmlExpNewOr
+xmlExpNewRange
+xmlExpNewSeq
+xmlExpRef
+xmlExpStringDerive
+xmlExpSubsume

Type xmlExternalEntityLoader:

xmlSetExternalEntityLoader
+

Type xmlFeature:

xmlHasFeature

Type xmlFreeFunc:

xmlGcMemSetup
xmlMemSetup

Type xmlFreeFunc *:

xmlGcMemGet
@@ -1716,13 +1762,13 @@ A:link, A:visited, A:active { text-decoration: underline }

Type xmlParserNodeInfoSeqPtr:

xmlClearNodeInfoSeq
xmlInitNodeInfoSeq

Type xmlParserSeverities:

xmlTextReaderErrorFunc
-

Type xmlPatternFlags:

xmlPatterncompile

Type xmlPatternPtr:

xmlFreePattern
xmlFreePatternList
xmlPatternFromRoot
xmlPatternGetStreamCtxt
xmlPatternMatch
xmlPatternMaxDepth
+xmlPatternMinDepth
xmlPatternStreamable

Type xmlRMutexPtr:

xmlFreeRMutex
xmlRMutexLock
@@ -1759,6 +1805,7 @@ A:link, A:visited, A:active { text-decoration: underline }

Type xmlRelaxNGValidCtxtPtr:

xmlRelaxNGFreeValidCtxt
xmlRelaxNGGetValidErrors
xmlRelaxNGSetValidErrors
+xmlRelaxNGSetValidStructuredErrors
xmlRelaxNGValidateDoc
xmlRelaxNGValidateFullElement
xmlRelaxNGValidatePopElement
@@ -1860,6 +1907,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaSAXPlug
xmlSchemaSetValidErrors
xmlSchemaSetValidOptions
+xmlSchemaSetValidStructuredErrors
xmlSchemaValidCtxtGetOptions
xmlSchemaValidateDoc
xmlSchemaValidateFile
@@ -1878,6 +1926,12 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaValidateFacetWhtsp
xmlSchemaValidateLengthFacetWhtsp

Type xmlSchemaWildcardPtr:

xmlSchemaFreeWildcard
+

Type xmlSchematronParserCtxtPtr:

xmlSchematronFreeParserCtxt
+xmlSchematronParse
+

Type xmlSchematronPtr:

xmlSchematronFree
+xmlSchematronNewValidCtxt
+

Type xmlSchematronValidCtxtPtr:

xmlSchematronFreeValidCtxt
+xmlSchematronValidateDoc

Type xmlShellCtxtPtr:

xmlShellBase
xmlShellCat
xmlShellCmd
@@ -1898,7 +1952,9 @@ A:link, A:visited, A:active { text-decoration: underline } xmlStreamPop
xmlStreamPush
xmlStreamPushAttr
-

Type xmlStructuredErrorFunc:

xmlSetStructuredErrorFunc
+

Type xmlStructuredErrorFunc:

xmlRelaxNGSetValidStructuredErrors
+xmlSchemaSetValidStructuredErrors
+xmlSetStructuredErrorFunc
xmlTextReaderSetStructuredErrorHandler
xmlThrDefSetStructuredErrorFunc

Type xmlTextReaderErrorFunc:

xmlTextReaderSetErrorHandler
diff --git a/doc/APIsymbols.html b/doc/APIsymbols.html index 756863f..d0fe11d 100644 --- a/doc/APIsymbols.html +++ b/doc/APIsymbols.html @@ -25,11 +25,13 @@ A:link, A:visited, A:active { text-decoration: underline } HTML_ENTITY_REF_NODE
HTML_INVALID
HTML_NA
+HTML_PARSE_COMPACT
HTML_PARSE_NOBLANKS
HTML_PARSE_NOERROR
HTML_PARSE_NONET
HTML_PARSE_NOWARNING
HTML_PARSE_PEDANTIC
+HTML_PARSE_RECOVER
HTML_PI_NODE
HTML_PRESERVE_NODE
HTML_REQUIRED
@@ -63,6 +65,7 @@ A:link, A:visited, A:active { text-decoration: underline } LIBXML_DLL_IMPORT
LIBXML_DOCB_ENABLED
LIBXML_DOTTED_VERSION
+LIBXML_EXPR_ENABLED
LIBXML_FTP_ENABLED
LIBXML_HTML_ENABLED
LIBXML_HTTP_ENABLED
@@ -78,6 +81,7 @@ A:link, A:visited, A:active { text-decoration: underline } LIBXML_REGEXP_ENABLED
LIBXML_SAX1_ENABLED
LIBXML_SCHEMAS_ENABLED
+LIBXML_SCHEMATRON_ENABLED
LIBXML_TEST_VERSION
LIBXML_THREAD_ENABLED
LIBXML_TREE_ENABLED
@@ -119,6 +123,7 @@ A:link, A:visited, A:active { text-decoration: underline } XLINK_TYPE_NONE
XLINK_TYPE_SIMPLE
XMLCALL
+XMLCDECL
XMLPUBFUN
XMLPUBVAR
XML_ATTRIBUTE_CDATA
@@ -399,9 +404,46 @@ A:link, A:visited, A:active { text-decoration: underline } XML_ERR_WARNING
XML_ERR_XMLDECL_NOT_FINISHED
XML_ERR_XMLDECL_NOT_STARTED
+XML_EXP_ATOM
+XML_EXP_COUNT
+XML_EXP_EMPTY
+XML_EXP_FORBID
+XML_EXP_OR
+XML_EXP_SEQ
XML_EXTERNAL_GENERAL_PARSED_ENTITY
XML_EXTERNAL_GENERAL_UNPARSED_ENTITY
XML_EXTERNAL_PARAMETER_ENTITY
+XML_FEATURE_AUTOMATA
+XML_FEATURE_C14N
+XML_FEATURE_CATALOG
+XML_FEATURE_DEBUG
+XML_FEATURE_DEBUG_MEM
+XML_FEATURE_DEBUG_RUN
+XML_FEATURE_EXPR
+XML_FEATURE_FTP
+XML_FEATURE_HTML
+XML_FEATURE_HTTP
+XML_FEATURE_ICONV
+XML_FEATURE_ISO8859X
+XML_FEATURE_LEGACY
+XML_FEATURE_MODULES
+XML_FEATURE_NONE
+XML_FEATURE_OUTPUT
+XML_FEATURE_PATTERN
+XML_FEATURE_PUSH
+XML_FEATURE_READER
+XML_FEATURE_REGEXP
+XML_FEATURE_SAX1
+XML_FEATURE_SCHEMAS
+XML_FEATURE_SCHEMATRON
+XML_FEATURE_THREAD
+XML_FEATURE_TREE
+XML_FEATURE_UNICODE
+XML_FEATURE_VALID
+XML_FEATURE_WRITER
+XML_FEATURE_XINCLUDE
+XML_FEATURE_XPATH
+XML_FEATURE_XPTR
XML_FROM_C14N
XML_FROM_CATALOG
XML_FROM_CHECK
@@ -410,6 +452,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_FROM_FTP
XML_FROM_HTML
XML_FROM_HTTP
+XML_FROM_I18N
XML_FROM_IO
XML_FROM_MEMORY
XML_FROM_MODULE
@@ -441,6 +484,11 @@ A:link, A:visited, A:active { text-decoration: underline } XML_HTTP_UNKNOWN_HOST
XML_HTTP_URL_SYNTAX
XML_HTTP_USE_IP
+XML_I18N_CONV_FAILED
+XML_I18N_EXCESS_HANDLER
+XML_I18N_NO_HANDLER
+XML_I18N_NO_NAME
+XML_I18N_NO_OUTPUT
XML_INTERNAL_GENERAL_ENTITY
XML_INTERNAL_PARAMETER_ENTITY
XML_INTERNAL_PREDEFINED_ENTITY
@@ -540,6 +588,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_PARSER_SUBST_ENTITIES
XML_PARSER_SYSTEM_LITERAL
XML_PARSER_VALIDATE
+XML_PARSE_COMPACT
XML_PARSE_DOM
XML_PARSE_DTDATTR
XML_PARSE_DTDLOAD
@@ -755,6 +804,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_SAVE_CHAR_INVALID
XML_SAVE_FORMAT
XML_SAVE_NOT_UTF8
+XML_SAVE_NO_DECL
XML_SAVE_NO_DOCTYPE
XML_SAVE_UNKNOWN_ENCODING
XML_SAX2_MAGIC
@@ -897,6 +947,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_SCHEMAP_SRC_IMPORT_3_2
XML_SCHEMAP_SRC_INCLUDE
XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE
+XML_SCHEMAP_SRC_REDEFINE
XML_SCHEMAP_SRC_RESOLVE
XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE
XML_SCHEMAP_SRC_SIMPLE_TYPE_1
@@ -1091,6 +1142,12 @@ A:link, A:visited, A:active { text-decoration: underline } XML_SCHEMAS_UNKNOWN
XML_SCHEMAS_USHORT
XML_SCHEMAS_WILDCARD_COMPLETE
+XML_SCHEMATRON_OUT_BUFFER
+XML_SCHEMATRON_OUT_FILE
+XML_SCHEMATRON_OUT_IO
+XML_SCHEMATRON_OUT_QUIET
+XML_SCHEMATRON_OUT_TEXT
+XML_SCHEMATRON_OUT_XML
XML_SCHEMAV_ATTRINVALID
XML_SCHEMAV_ATTRUNKNOWN
XML_SCHEMAV_CONSTRUCT
@@ -1267,6 +1324,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_XINCLUDE_XPTR_RESULT
XML_XML_ID
XML_XML_NAMESPACE
+XML_XPATH_CHECKNS
XML_XPATH_ENCODING_ERROR
XML_XPATH_EXPRESSION_OK
XML_XPATH_EXPR_ERROR
@@ -1278,6 +1336,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_XPATH_INVALID_PREDICATE_ERROR
XML_XPATH_INVALID_TYPE
XML_XPATH_MEMORY_ERROR
+XML_XPATH_NOVAR
XML_XPATH_NUMBER_ERROR
XML_XPATH_START_LITERAL_ERROR
XML_XPATH_UNCLOSED_ERROR
@@ -1419,6 +1478,7 @@ A:link, A:visited, A:active { text-decoration: underline } docbSAXParseFile

Letter e:

elementDecl
elementDeclSAXFunc
+emptyExp
endDocument
endDocumentSAXFunc
endElement
@@ -1430,6 +1490,7 @@ A:link, A:visited, A:active { text-decoration: underline } externalSubset
externalSubsetSAXFunc

Letter f:

fatalErrorSAXFunc
+forbiddenExp
ftpDataCallback
ftpListCallback

Letter g:

getColumnNumber
@@ -1620,6 +1681,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAutomataNewCounter
xmlAutomataNewCounterTrans
xmlAutomataNewEpsilon
+xmlAutomataNewNegTrans
xmlAutomataNewOnceTrans
xmlAutomataNewOnceTrans2
xmlAutomataNewState
@@ -1854,7 +1916,32 @@ A:link, A:visited, A:active { text-decoration: underline } xmlErrorDomain
xmlErrorLevel
xmlErrorPtr
+xmlExpCtxt
+xmlExpCtxtNbCons
+xmlExpCtxtNbNodes
+xmlExpCtxtPtr
+xmlExpDump
+xmlExpExpDerive
+xmlExpFree
+xmlExpFreeCtxt
+xmlExpGetLanguage
+xmlExpGetStart
+xmlExpIsNillable
+xmlExpMaxToken
+xmlExpNewAtom
+xmlExpNewCtxt
+xmlExpNewOr
+xmlExpNewRange
+xmlExpNewSeq
+xmlExpNode
+xmlExpNodePtr
+xmlExpNodeType
+xmlExpParse
+xmlExpRef
+xmlExpStringDerive
+xmlExpSubsume
xmlExternalEntityLoader
+xmlFeature
xmlFileClose
xmlFileMatch
xmlFileOpen
@@ -1934,6 +2021,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlGlobalState
xmlGlobalStatePtr
xmlHandleEntity
+xmlHasFeature
xmlHasNsProp
xmlHasProp
xmlHashAddEntry
@@ -2310,6 +2398,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParseSystemLiteral
xmlParseTextDecl
xmlParseURI
+xmlParseURIRaw
xmlParseURIReference
xmlParseVersionInfo
xmlParseVersionNum
@@ -2367,6 +2456,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlPatternGetStreamCtxt
xmlPatternMatch
xmlPatternMaxDepth
+xmlPatternMinDepth
xmlPatternPtr
xmlPatternStreamable
xmlPatterncompile
@@ -2455,6 +2545,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlRelaxNGPtr
xmlRelaxNGSetParserErrors
xmlRelaxNGSetValidErrors
+xmlRelaxNGSetValidStructuredErrors
xmlRelaxNGValidCtxt
xmlRelaxNGValidCtxtPtr
xmlRelaxNGValidErr
@@ -2607,6 +2698,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaSetParserErrors
xmlSchemaSetValidErrors
xmlSchemaSetValidOptions
+xmlSchemaSetValidStructuredErrors
xmlSchemaType
xmlSchemaTypeLink
xmlSchemaTypeLinkPtr
@@ -2644,6 +2736,24 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaWildcardNs
xmlSchemaWildcardNsPtr
xmlSchemaWildcardPtr
+xmlSchematron
+xmlSchematronFree
+xmlSchematronFreeParserCtxt
+xmlSchematronFreeValidCtxt
+xmlSchematronNewDocParserCtxt
+xmlSchematronNewMemParserCtxt
+xmlSchematronNewParserCtxt
+xmlSchematronNewValidCtxt
+xmlSchematronParse
+xmlSchematronParserCtxt
+xmlSchematronParserCtxtPtr
+xmlSchematronPtr
+xmlSchematronValidCtxt
+xmlSchematronValidCtxtPtr
+xmlSchematronValidOptions
+xmlSchematronValidateDoc
+xmlSchematronValidityErrorFunc
+xmlSchematronValidityWarningFunc
xmlSearchNs
xmlSearchNsByHref
xmlSetBufferAllocationScheme
diff --git a/doc/Makefile.in b/doc/Makefile.in index 03b74ae..c504fce 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -165,6 +165,7 @@ TEST_PUSH = @TEST_PUSH@ TEST_REGEXPS = @TEST_REGEXPS@ TEST_SAX = @TEST_SAX@ TEST_SCHEMAS = @TEST_SCHEMAS@ +TEST_SCHEMATRON = @TEST_SCHEMATRON@ TEST_THREADS = @TEST_THREADS@ TEST_VALID = @TEST_VALID@ TEST_VTIME = @TEST_VTIME@ @@ -200,6 +201,7 @@ WITH_REGEXPS = @WITH_REGEXPS@ WITH_RUN_DEBUG = @WITH_RUN_DEBUG@ WITH_SAX1 = @WITH_SAX1@ WITH_SCHEMAS = @WITH_SCHEMAS@ +WITH_SCHEMATRON = @WITH_SCHEMATRON@ WITH_THREADS = @WITH_THREADS@ WITH_TREE = @WITH_TREE@ WITH_TRIO = @WITH_TRIO@ diff --git a/doc/XSLT.html b/doc/XSLT.html index 893dadb..7212cb6 100644 --- a/doc/XSLT.html +++ b/doc/XSLT.html @@ -10,5 +10,4 @@ A:link, A:visited, A:active { text-decoration: underline } XSLT
Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
Made with Libxml2 Logo

The XML C parser and toolkit of Gnome

XSLT

Main Menu
Related links

Check the separate libxslt page

XSL Transformations, is a language for transforming XML documents into other XML documents (or HTML/textual output).

A separate library called libxslt is available implementing XSLT-1.0 for -libxml2. This module "libxslt" too can be found in the Gnome CVS base.

You can check the features -supported and the progresses on the Changelog.

Daniel Veillard

+libxml2. This module "libxslt" too can be found in the Gnome CVS base.

You can check the progresses on the libxslt Changelog.

Daniel Veillard

diff --git a/doc/apibuild.py b/doc/apibuild.py index a5275f1..8a11db0 100755 --- a/doc/apibuild.py +++ b/doc/apibuild.py @@ -63,6 +63,7 @@ ignored_words = { "EXSLTPUBFUN": (0, "Special macro for extern funcs for win32"), "XMLCALL": (0, "Special macro for win32 calls"), "XSLTCALL": (0, "Special macro for win32 calls"), + "XMLCDECL": (0, "Special macro for win32 calls"), "EXSLTCALL": (0, "Special macro for win32 calls"), "__declspec": (3, "Windows keyword"), "__stdcall": (0, "Windows keyword"), diff --git a/doc/downloads.html b/doc/downloads.html index 24ca61e..b0347d7 100644 --- a/doc/downloads.html +++ b/doc/downloads.html @@ -22,6 +22,7 @@ Windows binaries made by Igor Zlatovic are available in the Steve Ball provides Mac Os X binaries.
  • The HP-UX porting center provides HP-UX binaries
  • +
  • Bull provides precompiled RPMs for AIX as patr of their GNOME packages
  • If you know other supported binary ports, please contact me.

    Snapshot:

    Contributions:

    I do accept external contributions, especially if compiling on another diff --git a/doc/elfgcchack.xsl b/doc/elfgcchack.xsl index 8f24aed..11169f9 100644 --- a/doc/elfgcchack.xsl +++ b/doc/elfgcchack.xsl @@ -43,6 +43,7 @@ #include "libxml/SAX2.h" #include "libxml/SAX.h" #include "libxml/schemasInternals.h" +#include "libxml/schematron.h" #include "libxml/threads.h" #include "libxml/tree.h" #include "libxml/uri.h" diff --git a/doc/examples/Makefile.in b/doc/examples/Makefile.in index c64fa26..de15f68 100644 --- a/doc/examples/Makefile.in +++ b/doc/examples/Makefile.in @@ -214,6 +214,7 @@ TEST_PUSH = @TEST_PUSH@ TEST_REGEXPS = @TEST_REGEXPS@ TEST_SAX = @TEST_SAX@ TEST_SCHEMAS = @TEST_SCHEMAS@ +TEST_SCHEMATRON = @TEST_SCHEMATRON@ TEST_THREADS = @TEST_THREADS@ TEST_VALID = @TEST_VALID@ TEST_VTIME = @TEST_VTIME@ @@ -249,6 +250,7 @@ WITH_REGEXPS = @WITH_REGEXPS@ WITH_RUN_DEBUG = @WITH_RUN_DEBUG@ WITH_SAX1 = @WITH_SAX1@ WITH_SCHEMAS = @WITH_SCHEMAS@ +WITH_SCHEMATRON = @WITH_SCHEMATRON@ WITH_THREADS = @WITH_THREADS@ WITH_TREE = @WITH_TREE@ WITH_TRIO = @WITH_TRIO@ diff --git a/doc/html/book1.html b/doc/html/book1.html index fde1c94..2ec7448 100644 --- a/doc/html/book1.html +++ b/doc/html/book1.html @@ -10,4 +10,4 @@ A:link, A:visited, A:active { text-decoration: underline } Reference Manual for libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Reference Manual for libxml2

    API Menu
    API Indexes
    Related links

    Table of Contents

    • DOCBparser: old DocBook SGML parser
    • HTMLparser: interface for an HTML 4.0 non-verifying parser
    • HTMLtree: specific APIs to process HTML tree, especially serialization
    • SAX: Old SAX version 1 handler, deprecated
    • SAX2: SAX2 parser interface used to build the DOM tree
    • c14n: Provide Canonical XML and Exclusive XML Canonicalization
    • catalog: interfaces to the Catalog handling system
    • chvalid: Unicode character range checking
    • debugXML: Tree debugging APIs
    • dict: string dictionnary
    • encoding: interface for the encoding conversion functions
    • entities: interface for the XML entities handling
    • globals: interface for all global variables of the library
    • hash: Chained hash tables
    • list: lists interfaces
    • nanoftp: minimal FTP implementation
    • nanohttp: minimal HTTP implementation
    • parser: the core parser module
    • parserInternals: internals routines exported by the parser.
    • pattern: pattern expression handling
    • relaxng: implementation of the Relax-NG validation
    • schemasInternals: internal interfaces for XML Schemas
    • threads: interfaces for thread handling
    • tree: interfaces for tree manipulation
    • uri: library of generic URI related routines
    • valid: The DTD validation
    • xinclude: implementation of XInclude
    • xlink: unfinished XLink detection module
    • xmlIO: interface for the I/O interfaces used by the parser
    • xmlautomata: API to build regexp automata
    • xmlerror: error handling
    • xmlexports: macros for marking symbols as exportable/importable.
    • xmlmemory: interface for the memory allocator
    • xmlmodule: dynamic module loading
    • xmlreader: the XMLReader implementation
    • xmlregexp: regular expressions handling
    • xmlsave: the XML document serializer
    • xmlschemas: incomplete XML Schemas structure implementation
    • xmlschemastypes: implementation of XML Schema Datatypes
    • xmlstring: set of routines to process strings
    • xmlunicode: Unicode character APIs
    • xmlversion: compile-time version informations
    • xmlwriter: text writing API for XML
    • xpath: XML Path Language implementation
    • xpathInternals: internal interfaces for XML Path Language implementation
    • xpointer: API to handle XML Pointers

    Daniel Veillard

    + Reference Manual for libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Reference Manual for libxml2

    API Menu
    API Indexes
    Related links

    Table of Contents

    • DOCBparser: old DocBook SGML parser
    • HTMLparser: interface for an HTML 4.0 non-verifying parser
    • HTMLtree: specific APIs to process HTML tree, especially serialization
    • SAX: Old SAX version 1 handler, deprecated
    • SAX2: SAX2 parser interface used to build the DOM tree
    • c14n: Provide Canonical XML and Exclusive XML Canonicalization
    • catalog: interfaces to the Catalog handling system
    • chvalid: Unicode character range checking
    • debugXML: Tree debugging APIs
    • dict: string dictionnary
    • encoding: interface for the encoding conversion functions
    • entities: interface for the XML entities handling
    • globals: interface for all global variables of the library
    • hash: Chained hash tables
    • list: lists interfaces
    • nanoftp: minimal FTP implementation
    • nanohttp: minimal HTTP implementation
    • parser: the core parser module
    • parserInternals: internals routines exported by the parser.
    • pattern: pattern expression handling
    • relaxng: implementation of the Relax-NG validation
    • schemasInternals: internal interfaces for XML Schemas
    • schematron: XML Schemastron implementation
    • threads: interfaces for thread handling
    • tree: interfaces for tree manipulation
    • uri: library of generic URI related routines
    • valid: The DTD validation
    • xinclude: implementation of XInclude
    • xlink: unfinished XLink detection module
    • xmlIO: interface for the I/O interfaces used by the parser
    • xmlautomata: API to build regexp automata
    • xmlerror: error handling
    • xmlexports: macros for marking symbols as exportable/importable.
    • xmlmemory: interface for the memory allocator
    • xmlmodule: dynamic module loading
    • xmlreader: the XMLReader implementation
    • xmlregexp: regular expressions handling
    • xmlsave: the XML document serializer
    • xmlschemas: incomplete XML Schemas structure implementation
    • xmlschemastypes: implementation of XML Schema Datatypes
    • xmlstring: set of routines to process strings
    • xmlunicode: Unicode character APIs
    • xmlversion: compile-time version informations
    • xmlwriter: text writing API for XML
    • xpath: XML Path Language implementation
    • xpathInternals: internal interfaces for XML Path Language implementation
    • xpointer: API to handle XML Pointers

    Daniel Veillard

    diff --git a/doc/html/index.html b/doc/html/index.html index fde1c94..2ec7448 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -10,4 +10,4 @@ A:link, A:visited, A:active { text-decoration: underline } Reference Manual for libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Reference Manual for libxml2

    API Menu
    API Indexes
    Related links

    Table of Contents

    • DOCBparser: old DocBook SGML parser
    • HTMLparser: interface for an HTML 4.0 non-verifying parser
    • HTMLtree: specific APIs to process HTML tree, especially serialization
    • SAX: Old SAX version 1 handler, deprecated
    • SAX2: SAX2 parser interface used to build the DOM tree
    • c14n: Provide Canonical XML and Exclusive XML Canonicalization
    • catalog: interfaces to the Catalog handling system
    • chvalid: Unicode character range checking
    • debugXML: Tree debugging APIs
    • dict: string dictionnary
    • encoding: interface for the encoding conversion functions
    • entities: interface for the XML entities handling
    • globals: interface for all global variables of the library
    • hash: Chained hash tables
    • list: lists interfaces
    • nanoftp: minimal FTP implementation
    • nanohttp: minimal HTTP implementation
    • parser: the core parser module
    • parserInternals: internals routines exported by the parser.
    • pattern: pattern expression handling
    • relaxng: implementation of the Relax-NG validation
    • schemasInternals: internal interfaces for XML Schemas
    • threads: interfaces for thread handling
    • tree: interfaces for tree manipulation
    • uri: library of generic URI related routines
    • valid: The DTD validation
    • xinclude: implementation of XInclude
    • xlink: unfinished XLink detection module
    • xmlIO: interface for the I/O interfaces used by the parser
    • xmlautomata: API to build regexp automata
    • xmlerror: error handling
    • xmlexports: macros for marking symbols as exportable/importable.
    • xmlmemory: interface for the memory allocator
    • xmlmodule: dynamic module loading
    • xmlreader: the XMLReader implementation
    • xmlregexp: regular expressions handling
    • xmlsave: the XML document serializer
    • xmlschemas: incomplete XML Schemas structure implementation
    • xmlschemastypes: implementation of XML Schema Datatypes
    • xmlstring: set of routines to process strings
    • xmlunicode: Unicode character APIs
    • xmlversion: compile-time version informations
    • xmlwriter: text writing API for XML
    • xpath: XML Path Language implementation
    • xpathInternals: internal interfaces for XML Path Language implementation
    • xpointer: API to handle XML Pointers

    Daniel Veillard

    + Reference Manual for libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Reference Manual for libxml2

    API Menu
    API Indexes
    Related links

    Table of Contents

    • DOCBparser: old DocBook SGML parser
    • HTMLparser: interface for an HTML 4.0 non-verifying parser
    • HTMLtree: specific APIs to process HTML tree, especially serialization
    • SAX: Old SAX version 1 handler, deprecated
    • SAX2: SAX2 parser interface used to build the DOM tree
    • c14n: Provide Canonical XML and Exclusive XML Canonicalization
    • catalog: interfaces to the Catalog handling system
    • chvalid: Unicode character range checking
    • debugXML: Tree debugging APIs
    • dict: string dictionnary
    • encoding: interface for the encoding conversion functions
    • entities: interface for the XML entities handling
    • globals: interface for all global variables of the library
    • hash: Chained hash tables
    • list: lists interfaces
    • nanoftp: minimal FTP implementation
    • nanohttp: minimal HTTP implementation
    • parser: the core parser module
    • parserInternals: internals routines exported by the parser.
    • pattern: pattern expression handling
    • relaxng: implementation of the Relax-NG validation
    • schemasInternals: internal interfaces for XML Schemas
    • schematron: XML Schemastron implementation
    • threads: interfaces for thread handling
    • tree: interfaces for tree manipulation
    • uri: library of generic URI related routines
    • valid: The DTD validation
    • xinclude: implementation of XInclude
    • xlink: unfinished XLink detection module
    • xmlIO: interface for the I/O interfaces used by the parser
    • xmlautomata: API to build regexp automata
    • xmlerror: error handling
    • xmlexports: macros for marking symbols as exportable/importable.
    • xmlmemory: interface for the memory allocator
    • xmlmodule: dynamic module loading
    • xmlreader: the XMLReader implementation
    • xmlregexp: regular expressions handling
    • xmlsave: the XML document serializer
    • xmlschemas: incomplete XML Schemas structure implementation
    • xmlschemastypes: implementation of XML Schema Datatypes
    • xmlstring: set of routines to process strings
    • xmlunicode: Unicode character APIs
    • xmlversion: compile-time version informations
    • xmlwriter: text writing API for XML
    • xpath: XML Path Language implementation
    • xpathInternals: internal interfaces for XML Path Language implementation
    • xpointer: API to handle XML Pointers

    Daniel Veillard

    diff --git a/doc/html/libxml-HTMLparser.html b/doc/html/libxml-HTMLparser.html index bc3ea48..8043542 100644 --- a/doc/html/libxml-HTMLparser.html +++ b/doc/html/libxml-HTMLparser.html @@ -86,11 +86,13 @@ A:link, A:visited, A:active { text-decoration: underline } const char * name : The entity name const char * desc : the description }

    Enum htmlParserOption

    Enum htmlParserOption {
    +    HTML_PARSE_RECOVER = 1 : Relaxed parsing
         HTML_PARSE_NOERROR = 32 : suppress error reports
         HTML_PARSE_NOWARNING = 64 : suppress warning reports
         HTML_PARSE_PEDANTIC = 128 : pedantic error reporting
         HTML_PARSE_NOBLANKS = 256 : remove blank nodes
         HTML_PARSE_NONET = 2048 : Forbid network access
    +    HTML_PARSE_COMPACT = 65536 : compact small text nodes
     }
     

    Enum htmlStatus

    Enum htmlStatus {
         HTML_NA = 0 : something we don't check at all
    diff --git a/doc/html/libxml-lib.html b/doc/html/libxml-lib.html
    index fde1c94..2ec7448 100644
    --- a/doc/html/libxml-lib.html
    +++ b/doc/html/libxml-lib.html
    @@ -10,4 +10,4 @@ A:link, A:visited, A:active { text-decoration: underline }
     Reference Manual for libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Reference Manual for libxml2

    API Menu
    API Indexes
    Related links

    Table of Contents

    • DOCBparser: old DocBook SGML parser
    • HTMLparser: interface for an HTML 4.0 non-verifying parser
    • HTMLtree: specific APIs to process HTML tree, especially serialization
    • SAX: Old SAX version 1 handler, deprecated
    • SAX2: SAX2 parser interface used to build the DOM tree
    • c14n: Provide Canonical XML and Exclusive XML Canonicalization
    • catalog: interfaces to the Catalog handling system
    • chvalid: Unicode character range checking
    • debugXML: Tree debugging APIs
    • dict: string dictionnary
    • encoding: interface for the encoding conversion functions
    • entities: interface for the XML entities handling
    • globals: interface for all global variables of the library
    • hash: Chained hash tables
    • list: lists interfaces
    • nanoftp: minimal FTP implementation
    • nanohttp: minimal HTTP implementation
    • parser: the core parser module
    • parserInternals: internals routines exported by the parser.
    • pattern: pattern expression handling
    • relaxng: implementation of the Relax-NG validation
    • schemasInternals: internal interfaces for XML Schemas
    • threads: interfaces for thread handling
    • tree: interfaces for tree manipulation
    • uri: library of generic URI related routines
    • valid: The DTD validation
    • xinclude: implementation of XInclude
    • xlink: unfinished XLink detection module
    • xmlIO: interface for the I/O interfaces used by the parser
    • xmlautomata: API to build regexp automata
    • xmlerror: error handling
    • xmlexports: macros for marking symbols as exportable/importable.
    • xmlmemory: interface for the memory allocator
    • xmlmodule: dynamic module loading
    • xmlreader: the XMLReader implementation
    • xmlregexp: regular expressions handling
    • xmlsave: the XML document serializer
    • xmlschemas: incomplete XML Schemas structure implementation
    • xmlschemastypes: implementation of XML Schema Datatypes
    • xmlstring: set of routines to process strings
    • xmlunicode: Unicode character APIs
    • xmlversion: compile-time version informations
    • xmlwriter: text writing API for XML
    • xpath: XML Path Language implementation
    • xpathInternals: internal interfaces for XML Path Language implementation
    • xpointer: API to handle XML Pointers

    Daniel Veillard

    + Reference Manual for libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Reference Manual for libxml2

    API Menu
    API Indexes
    Related links

    Table of Contents

    • DOCBparser: old DocBook SGML parser
    • HTMLparser: interface for an HTML 4.0 non-verifying parser
    • HTMLtree: specific APIs to process HTML tree, especially serialization
    • SAX: Old SAX version 1 handler, deprecated
    • SAX2: SAX2 parser interface used to build the DOM tree
    • c14n: Provide Canonical XML and Exclusive XML Canonicalization
    • catalog: interfaces to the Catalog handling system
    • chvalid: Unicode character range checking
    • debugXML: Tree debugging APIs
    • dict: string dictionnary
    • encoding: interface for the encoding conversion functions
    • entities: interface for the XML entities handling
    • globals: interface for all global variables of the library
    • hash: Chained hash tables
    • list: lists interfaces
    • nanoftp: minimal FTP implementation
    • nanohttp: minimal HTTP implementation
    • parser: the core parser module
    • parserInternals: internals routines exported by the parser.
    • pattern: pattern expression handling
    • relaxng: implementation of the Relax-NG validation
    • schemasInternals: internal interfaces for XML Schemas
    • schematron: XML Schemastron implementation
    • threads: interfaces for thread handling
    • tree: interfaces for tree manipulation
    • uri: library of generic URI related routines
    • valid: The DTD validation
    • xinclude: implementation of XInclude
    • xlink: unfinished XLink detection module
    • xmlIO: interface for the I/O interfaces used by the parser
    • xmlautomata: API to build regexp automata
    • xmlerror: error handling
    • xmlexports: macros for marking symbols as exportable/importable.
    • xmlmemory: interface for the memory allocator
    • xmlmodule: dynamic module loading
    • xmlreader: the XMLReader implementation
    • xmlregexp: regular expressions handling
    • xmlsave: the XML document serializer
    • xmlschemas: incomplete XML Schemas structure implementation
    • xmlschemastypes: implementation of XML Schema Datatypes
    • xmlstring: set of routines to process strings
    • xmlunicode: Unicode character APIs
    • xmlversion: compile-time version informations
    • xmlwriter: text writing API for XML
    • xpath: XML Path Language implementation
    • xpathInternals: internal interfaces for XML Path Language implementation
    • xpointer: API to handle XML Pointers

    Daniel Veillard

    diff --git a/doc/html/libxml-parser.html b/doc/html/libxml-parser.html index 719b8f1..c1448aa 100644 --- a/doc/html/libxml-parser.html +++ b/doc/html/libxml-parser.html @@ -10,7 +10,8 @@ A:link, A:visited, A:active { text-decoration: underline } Module parser from libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Module parser from libxml2

    API Menu
    API Indexes
    Related links

    Interfaces, constants and types related to the XML parser

    Table of Contents

    #define XML_COMPLETE_ATTRS
    #define XML_DEFAULT_VERSION
    #define XML_DETECT_IDS
    #define XML_SAX2_MAGIC
    #define XML_SKIP_IDS
    Enum xmlParserInputState
    +    Module parser from libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Module parser from libxml2

    API Menu
    API Indexes
    Related links

    Interfaces, constants and types related to the XML parser

    Table of Contents

    #define XML_COMPLETE_ATTRS
    #define XML_DEFAULT_VERSION
    #define XML_DETECT_IDS
    #define XML_SAX2_MAGIC
    #define XML_SKIP_IDS
    Enum xmlFeature
    +
    Enum xmlParserInputState
     
    Enum xmlParserMode
     
    Structure xmlParserNodeInfo
    struct _xmlParserNodeInfo
    Typedef xmlParserNodeInfo * xmlParserNodeInfoPtr
    @@ -131,6 +132,7 @@ void	warningSAXFunc			(void * ctx, 
    con
    xmlExternalEntityLoader	xmlGetExternalEntityLoader	(void)
    int	xmlGetFeature			(xmlParserCtxtPtr ctxt, 
    const char * name,
    void * result)
    int	xmlGetFeaturesList		(int * len, 
    const char ** result)
    +
    int	xmlHasFeature			(xmlFeature feature)
    xmlDtdPtr	xmlIOParseDTD		(xmlSAXHandlerPtr sax, 
    xmlParserInputBufferPtr input,
    xmlCharEncoding enc)
    void	xmlInitNodeInfoSeq		(xmlParserNodeInfoSeqPtr seq)
    void	xmlInitParser			(void)
    @@ -190,7 +192,40 @@ void xmlParserInputDeallocate (Macro: XML_DETECT_IDS
    #define XML_DETECT_IDS

    Bit in the loadsubset context field to tell to do ID/REFs lookups. Use it to initialize xmlLoadExtDtdDefaultValue.

    Macro: XML_SAX2_MAGIC

    #define XML_SAX2_MAGIC

    Special constant found in SAX2 blocks initialized fields

    Macro: XML_SKIP_IDS

    #define XML_SKIP_IDS

    Bit in the loadsubset context field to tell to not do ID/REFs registration. Used to initialize xmlLoadExtDtdDefaultValue in some special cases.

    -

    Enum xmlParserInputState

    Enum xmlParserInputState {
    +

    Enum xmlFeature

    Enum xmlFeature {
    +    XML_FEATURE_THREAD = 1
    +    XML_FEATURE_TREE = 2
    +    XML_FEATURE_OUTPUT = 3
    +    XML_FEATURE_PUSH = 4
    +    XML_FEATURE_READER = 5
    +    XML_FEATURE_PATTERN = 6
    +    XML_FEATURE_WRITER = 7
    +    XML_FEATURE_SAX1 = 8
    +    XML_FEATURE_FTP = 9
    +    XML_FEATURE_HTTP = 10
    +    XML_FEATURE_VALID = 11
    +    XML_FEATURE_HTML = 12
    +    XML_FEATURE_LEGACY = 13
    +    XML_FEATURE_C14N = 14
    +    XML_FEATURE_CATALOG = 15
    +    XML_FEATURE_XPATH = 16
    +    XML_FEATURE_XPTR = 17
    +    XML_FEATURE_XINCLUDE = 18
    +    XML_FEATURE_ICONV = 19
    +    XML_FEATURE_ISO8859X = 20
    +    XML_FEATURE_UNICODE = 21
    +    XML_FEATURE_REGEXP = 22
    +    XML_FEATURE_AUTOMATA = 23
    +    XML_FEATURE_EXPR = 24
    +    XML_FEATURE_SCHEMAS = 25
    +    XML_FEATURE_SCHEMATRON = 26
    +    XML_FEATURE_MODULES = 27
    +    XML_FEATURE_DEBUG = 28
    +    XML_FEATURE_DEBUG_MEM = 29
    +    XML_FEATURE_DEBUG_RUN = 30
    +    XML_FEATURE_NONE = 99999 : just to be sure of allocation size
    +}
    +

    Enum xmlParserInputState

    Enum xmlParserInputState {
         XML_PARSER_EOF = -1 : nothing is to be parsed
         XML_PARSER_START = 0 : nothing has been parsed
         XML_PARSER_MISC = 1 : Misc* before int subset
    @@ -245,6 +280,7 @@ void	xmlParserInputDeallocate	(XML_PARSE_NSCLEAN = 8192 : remove redundant namespaces declarations
         XML_PARSE_NOCDATA = 16384 : merge CDATA as text nodes
         XML_PARSE_NOXINCNODE = 32768 : do not generate XINCLUDE START/END nodes
    +    XML_PARSE_COMPACT = 65536 : compact small text nodes
     }
     

    Structure xmlSAXHandlerV1

    Structure xmlSAXHandlerV1
    struct _xmlSAXHandlerV1 { internalSubsetSAXFunc internalSubset @@ -406,7 +442,9 @@ void warningSAXFunc (void * ctx,
    const char * msg,
    ...

    Read the current value of one feature of this parser instance

    ctxt:an XML/HTML parser context
    name:the feature name
    result:location to store the result
    Returns:-1 in case or error, 0 otherwise

    Function: xmlGetFeaturesList

    int	xmlGetFeaturesList		(int * len, 
    const char ** result)

    Copy at most *@len feature names into the @result array

    -
    len:the length of the features name array (input/output)
    result:an array of string to be filled with the features name.
    Returns:-1 in case or error, or the total number of features, len is updated with the number of strings copied, strings must not be deallocated

    Function: xmlIOParseDTD

    xmlDtdPtr	xmlIOParseDTD		(xmlSAXHandlerPtr sax, 
    xmlParserInputBufferPtr input,
    xmlCharEncoding enc)
    +
    len:the length of the features name array (input/output)
    result:an array of string to be filled with the features name.
    Returns:-1 in case or error, or the total number of features, len is updated with the number of strings copied, strings must not be deallocated

    Function: xmlHasFeature

    int	xmlHasFeature			(xmlFeature feature)
    +

    Examines if the library has been compiled with a given feature.

    +
    feature:the feature to be examined
    Returns:a non-zero value if the feature exist, otherwise zero. Returns zero (0) if the feature does not exist or an unknown unknown feature is requested, non-zero otherwise.

    Function: xmlIOParseDTD

    xmlDtdPtr	xmlIOParseDTD		(xmlSAXHandlerPtr sax, 
    xmlParserInputBufferPtr input,
    xmlCharEncoding enc)

    Load and parse a DTD

    sax:the SAX handler block or NULL
    input:an Input Buffer
    enc:the charset encoding if known
    Returns:the resulting xmlDtdPtr or NULL in case of error. @input will be freed at parsing end.

    Function: xmlInitNodeInfoSeq

    void	xmlInitNodeInfoSeq		(xmlParserNodeInfoSeqPtr seq)

    -- Initialize (set to initial state) node info sequence

    @@ -419,7 +457,7 @@ void warningSAXFunc (void * ctx,
    const char * msg,
    ...
    val:int 0 or 1
    Returns:the last value for 0 for no substitution, 1 for substitution.

    Function: xmlLineNumbersDefault

    int	xmlLineNumbersDefault		(int val)

    Set and return the previous value for enabling line numbers in elements contents. This may break on old application and is turned off by default.

    val:int 0 or 1
    Returns:the last value for 0 for no substitution, 1 for substitution.

    Function: xmlLoadExternalEntity

    xmlParserInputPtr	xmlLoadExternalEntity	(const char * URL, 
    const char * ID,
    xmlParserCtxtPtr ctxt)
    -

    Load an external entity, note that the use of this function for unparsed entities may generate problems TODO: a more generic External entity API must be designed

    +

    Load an external entity, note that the use of this function for unparsed entities may generate problems

    URL:the URL for the entity to load
    ID:the Public ID for the entity to load
    ctxt:the context in which the entity is called or NULL
    Returns:the xmlParserInputPtr or NULL

    Function: xmlNewIOInputStream

    xmlParserInputPtr	xmlNewIOInputStream	(xmlParserCtxtPtr ctxt, 
    xmlParserInputBufferPtr input,
    xmlCharEncoding enc)

    Create a new input stream structure encapsulating the @input into a stream suitable for the parser.

    ctxt:an XML parser context
    input:an I/O Input
    enc:the charset encoding if known
    Returns:the new input stream or NULL

    Function: xmlNewParserCtxt

    xmlParserCtxtPtr	xmlNewParserCtxt	(void)
    diff --git a/doc/html/libxml-pattern.html b/doc/html/libxml-pattern.html index 0659588..2415881 100644 --- a/doc/html/libxml-pattern.html +++ b/doc/html/libxml-pattern.html @@ -24,8 +24,9 @@ The content of this structure is not made public by the API.
    xmlStreamCtxtPtr	xmlPatternGetStreamCtxt	(xmlPatternPtr comp)
    int	xmlPatternMatch			(xmlPatternPtr comp, 
    xmlNodePtr node)
    int	xmlPatternMaxDepth		(xmlPatternPtr comp)
    +
    int	xmlPatternMinDepth		(xmlPatternPtr comp)
    int	xmlPatternStreamable		(xmlPatternPtr comp)
    -
    xmlPatternPtr	xmlPatterncompile	(const xmlChar * pattern, 
    xmlDict * dict,
    xmlPatternFlags flags,
    const xmlChar ** namespaces)
    +
    xmlPatternPtr	xmlPatterncompile	(const xmlChar * pattern, 
    xmlDict * dict,
    int flags,
    const xmlChar ** namespaces)
    int	xmlStreamPop			(xmlStreamCtxtPtr stream)
    int	xmlStreamPush			(xmlStreamCtxtPtr stream, 
    const xmlChar * name,
    const xmlChar * ns)
    int	xmlStreamPushAttr		(xmlStreamCtxtPtr stream, 
    const xmlChar * name,
    const xmlChar * ns)
    @@ -54,11 +55,13 @@ The content of this structure is not made public by the API.

    Test whether the node matches the pattern

    comp:the precompiled pattern
    node:a node
    Returns:1 if it matches, 0 if it doesn't and -1 in case of failure

    Function: xmlPatternMaxDepth

    int	xmlPatternMaxDepth		(xmlPatternPtr comp)

    Check the maximum depth reachable by a pattern

    -
    comp:the precompiled pattern
    Returns:-2 if no limit (using //), otherwise the depth, and -1 in case of error

    Function: xmlPatternStreamable

    int	xmlPatternStreamable		(xmlPatternPtr comp)
    +
    comp:the precompiled pattern
    Returns:-2 if no limit (using //), otherwise the depth, and -1 in case of error

    Function: xmlPatternMinDepth

    int	xmlPatternMinDepth		(xmlPatternPtr comp)
    +

    Check the minimum depth reachable by a pattern, 0 mean the / or . are part of the set.

    +
    comp:the precompiled pattern
    Returns:-1 in case of error otherwise the depth,

    Function: xmlPatternStreamable

    int	xmlPatternStreamable		(xmlPatternPtr comp)

    Check if the pattern is streamable i.e. xmlPatternGetStreamCtxt() should work.

    -
    comp:the precompiled pattern
    Returns:1 if streamable, 0 if not and -1 in case of error.

    Function: xmlPatterncompile

    xmlPatternPtr	xmlPatterncompile	(const xmlChar * pattern, 
    xmlDict * dict,
    xmlPatternFlags flags,
    const xmlChar ** namespaces)
    +
    comp:the precompiled pattern
    Returns:1 if streamable, 0 if not and -1 in case of error.

    Function: xmlPatterncompile

    xmlPatternPtr	xmlPatterncompile	(const xmlChar * pattern, 
    xmlDict * dict,
    int flags,
    const xmlChar ** namespaces)

    Compile a pattern.

    -
    pattern:the pattern to compile
    dict:an optional dictionary for interned strings
    flags:compilation flags, undefined yet
    namespaces:the prefix definitions, array of [URI, prefix] or NULL
    Returns:the compiled form of the pattern or NULL in case of error

    Function: xmlStreamPop

    int	xmlStreamPop			(xmlStreamCtxtPtr stream)
    +
    pattern:the pattern to compile
    dict:an optional dictionary for interned strings
    flags:compilation flags, see xmlPatternFlags
    namespaces:the prefix definitions, array of [URI, prefix] or NULL
    Returns:the compiled form of the pattern or NULL in case of error

    Function: xmlStreamPop

    int	xmlStreamPop			(xmlStreamCtxtPtr stream)

    push one level from the stream.

    stream:the stream context
    Returns:-1 in case of error, 0 otherwise.

    Function: xmlStreamPush

    int	xmlStreamPush			(xmlStreamCtxtPtr stream, 
    const xmlChar * name,
    const xmlChar * ns)

    Push new data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset.

    diff --git a/doc/html/libxml-relaxng.html b/doc/html/libxml-relaxng.html index 942aac3..637f27f 100644 --- a/doc/html/libxml-relaxng.html +++ b/doc/html/libxml-relaxng.html @@ -37,6 +37,7 @@ The content of this structure is not made public by the API.
    xmlRelaxNGPtr	xmlRelaxNGParse		(xmlRelaxNGParserCtxtPtr ctxt)
    void	xmlRelaxNGSetParserErrors	(xmlRelaxNGParserCtxtPtr ctxt, 
    xmlRelaxNGValidityErrorFunc err,
    xmlRelaxNGValidityWarningFunc warn,
    void * ctx)
    void	xmlRelaxNGSetValidErrors	(xmlRelaxNGValidCtxtPtr ctxt, 
    xmlRelaxNGValidityErrorFunc err,
    xmlRelaxNGValidityWarningFunc warn,
    void * ctx)
    +
    void	xmlRelaxNGSetValidStructuredErrors	(xmlRelaxNGValidCtxtPtr ctxt, 
    xmlStructuredErrorFunc serror,
    void * ctx)
    int	xmlRelaxNGValidateDoc		(xmlRelaxNGValidCtxtPtr ctxt, 
    xmlDocPtr doc)
    int	xmlRelaxNGValidateFullElement	(xmlRelaxNGValidCtxtPtr ctxt, 
    xmlDocPtr doc,
    xmlNodePtr elem)
    int	xmlRelaxNGValidatePopElement	(xmlRelaxNGValidCtxtPtr ctxt, 
    xmlDocPtr doc,
    xmlNodePtr elem)
    @@ -135,7 +136,9 @@ The content of this structure is not made public by the API.

    Set the callback functions used to handle errors for a validation context

    ctxt:a Relax-NG validation context
    err:the error callback
    warn:the warning callback
    ctx:contextual data for the callbacks

    Function: xmlRelaxNGSetValidErrors

    void	xmlRelaxNGSetValidErrors	(xmlRelaxNGValidCtxtPtr ctxt, 
    xmlRelaxNGValidityErrorFunc err,
    xmlRelaxNGValidityWarningFunc warn,
    void * ctx)

    Set the error and warning callback informations

    -
    ctxt:a Relax-NG validation context
    err:the error function
    warn:the warning function
    ctx:the functions context

    Function: xmlRelaxNGValidateDoc

    int	xmlRelaxNGValidateDoc		(xmlRelaxNGValidCtxtPtr ctxt, 
    xmlDocPtr doc)
    +
    ctxt:a Relax-NG validation context
    err:the error function
    warn:the warning function
    ctx:the functions context

    Function: xmlRelaxNGSetValidStructuredErrors

    void	xmlRelaxNGSetValidStructuredErrors	(xmlRelaxNGValidCtxtPtr ctxt, 
    xmlStructuredErrorFunc serror,
    void * ctx)
    +

    Set the structured error callback

    +
    ctxt:a Relax-NG validation context
    serror:the structured error function
    ctx:the functions context

    Function: xmlRelaxNGValidateDoc

    int	xmlRelaxNGValidateDoc		(xmlRelaxNGValidCtxtPtr ctxt, 
    xmlDocPtr doc)

    Validate a document tree in memory.

    ctxt:a Relax-NG validation context
    doc:a parsed document tree
    Returns:0 if the document is valid, a positive error code number otherwise and -1 in case of internal or API error.

    Function: xmlRelaxNGValidateFullElement

    int	xmlRelaxNGValidateFullElement	(xmlRelaxNGValidCtxtPtr ctxt, 
    xmlDocPtr doc,
    xmlNodePtr elem)

    Validate a full subtree when xmlRelaxNGValidatePushElement() returned 0 and the content of the node has been expanded.

    diff --git a/doc/html/libxml-schemasInternals.html b/doc/html/libxml-schemasInternals.html index bb0987d..e840774 100644 --- a/doc/html/libxml-schemasInternals.html +++ b/doc/html/libxml-schemasInternals.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module schemasInternals from libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Module schemasInternals from libxml2

    API Menu
    API Indexes
    Related links

    internal interfaces for the XML Schemas handling and schema validity checking

    Table of Contents

    #define XML_SCHEMAS_ANYATTR_LAX
    #define XML_SCHEMAS_ANYATTR_SKIP
    #define XML_SCHEMAS_ANYATTR_STRICT
    #define XML_SCHEMAS_ANY_LAX
    #define XML_SCHEMAS_ANY_SKIP
    #define XML_SCHEMAS_ANY_STRICT
    #define XML_SCHEMAS_ATTRGROUP_GLOBAL
    #define XML_SCHEMAS_ATTRGROUP_MARKED
    #define XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED
    #define XML_SCHEMAS_ATTR_FIXED
    #define XML_SCHEMAS_ATTR_GLOBAL
    #define XML_SCHEMAS_ATTR_INTERNAL_RESOLVED
    #define XML_SCHEMAS_ATTR_NSDEFAULT
    #define XML_SCHEMAS_ATTR_USE_OPTIONAL
    #define XML_SCHEMAS_ATTR_USE_PROHIBITED
    #define XML_SCHEMAS_ATTR_USE_REQUIRED
    #define XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION
    #define XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION
    #define XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION
    #define XML_SCHEMAS_ELEM_ABSTRACT
    #define XML_SCHEMAS_ELEM_BLOCK_ABSENT
    #define XML_SCHEMAS_ELEM_BLOCK_EXTENSION
    #define XML_SCHEMAS_ELEM_BLOCK_RESTRICTION
    #define XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION
    #define XML_SCHEMAS_ELEM_CIRCULAR
    #define XML_SCHEMAS_ELEM_DEFAULT
    #define XML_SCHEMAS_ELEM_FINAL_ABSENT
    #define XML_SCHEMAS_ELEM_FINAL_EXTENSION
    #define XML_SCHEMAS_ELEM_FINAL_RESTRICTION
    #define XML_SCHEMAS_ELEM_FIXED
    #define XML_SCHEMAS_ELEM_GLOBAL
    #define XML_SCHEMAS_ELEM_INTERNAL_CHECKED
    #define XML_SCHEMAS_ELEM_INTERNAL_RESOLVED
    #define XML_SCHEMAS_ELEM_NILLABLE
    #define XML_SCHEMAS_ELEM_NSDEFAULT
    #define XML_SCHEMAS_ELEM_REF
    #define XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD
    #define XML_SCHEMAS_ELEM_TOPLEVEL
    #define XML_SCHEMAS_FACET_COLLAPSE
    #define XML_SCHEMAS_FACET_PRESERVE
    #define XML_SCHEMAS_FACET_REPLACE
    #define XML_SCHEMAS_FACET_UNKNOWN
    #define XML_SCHEMAS_FINAL_DEFAULT_EXTENSION
    #define XML_SCHEMAS_FINAL_DEFAULT_LIST
    #define XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION
    #define XML_SCHEMAS_FINAL_DEFAULT_UNION
    #define XML_SCHEMAS_INCLUDING_CONVERT_NS
    #define XML_SCHEMAS_QUALIF_ATTR
    #define XML_SCHEMAS_QUALIF_ELEM
    #define XML_SCHEMAS_TYPE_ABSTRACT
    #define XML_SCHEMAS_TYPE_BLOCK_DEFAULT
    #define XML_SCHEMAS_TYPE_BLOCK_EXTENSION
    #define XML_SCHEMAS_TYPE_BLOCK_RESTRICTION
    #define XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE
    #define XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION
    #define XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION
    #define XML_SCHEMAS_TYPE_FACETSNEEDVALUE
    #define XML_SCHEMAS_TYPE_FINAL_DEFAULT
    #define XML_SCHEMAS_TYPE_FINAL_EXTENSION
    #define XML_SCHEMAS_TYPE_FINAL_LIST
    #define XML_SCHEMAS_TYPE_FINAL_RESTRICTION
    #define XML_SCHEMAS_TYPE_FINAL_UNION
    #define XML_SCHEMAS_TYPE_GLOBAL
    #define XML_SCHEMAS_TYPE_HAS_FACETS
    #define XML_SCHEMAS_TYPE_INTERNAL_INVALID
    #define XML_SCHEMAS_TYPE_INTERNAL_RESOLVED
    #define XML_SCHEMAS_TYPE_MARKED
    #define XML_SCHEMAS_TYPE_MIXED
    #define XML_SCHEMAS_TYPE_NORMVALUENEEDED
    #define XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD
    #define XML_SCHEMAS_TYPE_VARIETY_ABSENT
    #define XML_SCHEMAS_TYPE_VARIETY_ATOMIC
    #define XML_SCHEMAS_TYPE_VARIETY_LIST
    #define XML_SCHEMAS_TYPE_VARIETY_UNION
    #define XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE
    #define XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE
    #define XML_SCHEMAS_TYPE_WHITESPACE_REPLACE
    #define XML_SCHEMAS_WILDCARD_COMPLETE
    Structure xmlSchemaAnnot
    struct _xmlSchemaAnnot + Module schemasInternals from libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Module schemasInternals from libxml2

    API Menu
    API Indexes
    Related links

    internal interfaces for the XML Schemas handling and schema validity checking

    Table of Contents

    #define XML_SCHEMAS_ANYATTR_LAX
    #define XML_SCHEMAS_ANYATTR_SKIP
    #define XML_SCHEMAS_ANYATTR_STRICT
    #define XML_SCHEMAS_ANY_LAX
    #define XML_SCHEMAS_ANY_SKIP
    #define XML_SCHEMAS_ANY_STRICT
    #define XML_SCHEMAS_ATTRGROUP_GLOBAL
    #define XML_SCHEMAS_ATTRGROUP_MARKED
    #define XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED
    #define XML_SCHEMAS_ATTR_FIXED
    #define XML_SCHEMAS_ATTR_GLOBAL
    #define XML_SCHEMAS_ATTR_INTERNAL_RESOLVED
    #define XML_SCHEMAS_ATTR_NSDEFAULT
    #define XML_SCHEMAS_ATTR_USE_OPTIONAL
    #define XML_SCHEMAS_ATTR_USE_PROHIBITED
    #define XML_SCHEMAS_ATTR_USE_REQUIRED
    #define XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION
    #define XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION
    #define XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION
    #define XML_SCHEMAS_ELEM_ABSTRACT
    #define XML_SCHEMAS_ELEM_BLOCK_ABSENT
    #define XML_SCHEMAS_ELEM_BLOCK_EXTENSION
    #define XML_SCHEMAS_ELEM_BLOCK_RESTRICTION
    #define XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION
    #define XML_SCHEMAS_ELEM_CIRCULAR
    #define XML_SCHEMAS_ELEM_DEFAULT
    #define XML_SCHEMAS_ELEM_FINAL_ABSENT
    #define XML_SCHEMAS_ELEM_FINAL_EXTENSION
    #define XML_SCHEMAS_ELEM_FINAL_RESTRICTION
    #define XML_SCHEMAS_ELEM_FIXED
    #define XML_SCHEMAS_ELEM_GLOBAL
    #define XML_SCHEMAS_ELEM_INTERNAL_CHECKED
    #define XML_SCHEMAS_ELEM_INTERNAL_RESOLVED
    #define XML_SCHEMAS_ELEM_NILLABLE
    #define XML_SCHEMAS_ELEM_NSDEFAULT
    #define XML_SCHEMAS_ELEM_REF
    #define XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD
    #define XML_SCHEMAS_ELEM_TOPLEVEL
    #define XML_SCHEMAS_FACET_COLLAPSE
    #define XML_SCHEMAS_FACET_PRESERVE
    #define XML_SCHEMAS_FACET_REPLACE
    #define XML_SCHEMAS_FACET_UNKNOWN
    #define XML_SCHEMAS_FINAL_DEFAULT_EXTENSION
    #define XML_SCHEMAS_FINAL_DEFAULT_LIST
    #define XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION
    #define XML_SCHEMAS_FINAL_DEFAULT_UNION
    #define XML_SCHEMAS_INCLUDING_CONVERT_NS
    #define XML_SCHEMAS_QUALIF_ATTR
    #define XML_SCHEMAS_QUALIF_ELEM
    #define XML_SCHEMAS_TYPE_ABSTRACT
    #define XML_SCHEMAS_TYPE_BLOCK_DEFAULT
    #define XML_SCHEMAS_TYPE_BLOCK_EXTENSION
    #define XML_SCHEMAS_TYPE_BLOCK_RESTRICTION
    #define XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE
    #define XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION
    #define XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION
    #define XML_SCHEMAS_TYPE_FACETSNEEDVALUE
    #define XML_SCHEMAS_TYPE_FINAL_DEFAULT
    #define XML_SCHEMAS_TYPE_FINAL_EXTENSION
    #define XML_SCHEMAS_TYPE_FINAL_LIST
    #define XML_SCHEMAS_TYPE_FINAL_RESTRICTION
    #define XML_SCHEMAS_TYPE_FINAL_UNION
    #define XML_SCHEMAS_TYPE_GLOBAL
    #define XML_SCHEMAS_TYPE_HAS_FACETS
    #define XML_SCHEMAS_TYPE_INTERNAL_INVALID
    #define XML_SCHEMAS_TYPE_INTERNAL_RESOLVED
    #define XML_SCHEMAS_TYPE_MARKED
    #define XML_SCHEMAS_TYPE_MIXED
    #define XML_SCHEMAS_TYPE_NORMVALUENEEDED
    #define XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD
    #define XML_SCHEMAS_TYPE_VARIETY_ABSENT
    #define XML_SCHEMAS_TYPE_VARIETY_ATOMIC
    #define XML_SCHEMAS_TYPE_VARIETY_LIST
    #define XML_SCHEMAS_TYPE_VARIETY_UNION
    #define XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE
    #define XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE
    #define XML_SCHEMAS_TYPE_WHITESPACE_REPLACE
    #define XML_SCHEMAS_WILDCARD_COMPLETE
    Structure xmlSchemaAnnot
    struct _xmlSchemaAnnot
    Typedef xmlSchemaAnnot * xmlSchemaAnnotPtr
     
    Structure xmlSchemaAttribute
    struct _xmlSchemaAttribute
    Structure xmlSchemaAttributeGroup
    struct _xmlSchemaAttributeGroup diff --git a/doc/html/libxml-schematron.html b/doc/html/libxml-schematron.html new file mode 100644 index 0000000..e81dd66 --- /dev/null +++ b/doc/html/libxml-schematron.html @@ -0,0 +1,77 @@ + + +Module schematron from libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Module schematron from libxml2

    API Menu
    API Indexes
    Related links

    interface to the XML Schematron validity checking.

    Table of Contents

    Structure xmlSchematron
    struct _xmlSchematron +The content of this structure is not made public by the API. +
    Structure xmlSchematronParserCtxt
    struct _xmlSchematronParserCtxt +The content of this structure is not made public by the API. +
    Typedef xmlSchematronParserCtxt * xmlSchematronParserCtxtPtr
    +
    Typedef xmlSchematron * xmlSchematronPtr
    +
    Structure xmlSchematronValidCtxt
    struct _xmlSchematronValidCtxt +The content of this structure is not made public by the API. +
    Typedef xmlSchematronValidCtxt * xmlSchematronValidCtxtPtr
    +
    Enum xmlSchematronValidOptions
    +
    void	xmlSchematronFree		(xmlSchematronPtr schema)
    +
    void	xmlSchematronFreeParserCtxt	(xmlSchematronParserCtxtPtr ctxt)
    +
    void	xmlSchematronFreeValidCtxt	(xmlSchematronValidCtxtPtr ctxt)
    +
    xmlSchematronParserCtxtPtr	xmlSchematronNewDocParserCtxt	(xmlDocPtr doc)
    +
    xmlSchematronParserCtxtPtr	xmlSchematronNewMemParserCtxt	(const char * buffer, 
    int size)
    +
    xmlSchematronParserCtxtPtr	xmlSchematronNewParserCtxt	(const char * URL)
    +
    xmlSchematronValidCtxtPtr	xmlSchematronNewValidCtxt	(xmlSchematronPtr schema, 
    int options)
    +
    xmlSchematronPtr	xmlSchematronParse	(xmlSchematronParserCtxtPtr ctxt)
    +
    int	xmlSchematronValidateDoc	(xmlSchematronValidCtxtPtr ctxt, 
    xmlDocPtr instance)
    +
    Function type: xmlSchematronValidityErrorFunc
    +void	xmlSchematronValidityErrorFunc	(void * ctx, 
    const char * msg,
    ... ...) +
    +
    Function type: xmlSchematronValidityWarningFunc
    +void	xmlSchematronValidityWarningFunc	(void * ctx, 
    const char * msg,
    ... ...) +
    +

    Description

    +

    Structure xmlSchematron

    Structure xmlSchematron
    struct _xmlSchematron { +The content of this structure is not made public by the API. +}

    Structure xmlSchematronParserCtxt

    Structure xmlSchematronParserCtxt
    struct _xmlSchematronParserCtxt { +The content of this structure is not made public by the API. +}

    Structure xmlSchematronValidCtxt

    Structure xmlSchematronValidCtxt
    struct _xmlSchematronValidCtxt { +The content of this structure is not made public by the API. +}

    Enum xmlSchematronValidOptions

    Enum xmlSchematronValidOptions {
    +    XML_SCHEMATRON_OUT_QUIET = 1 : quiet no report
    +    XML_SCHEMATRON_OUT_TEXT = 2 : build a textual report
    +    XML_SCHEMATRON_OUT_XML = 4 : output SVRL
    +    XML_SCHEMATRON_OUT_FILE = 256 : output to a file descriptor
    +    XML_SCHEMATRON_OUT_BUFFER = 512 : output to a buffer
    +    XML_SCHEMATRON_OUT_IO = 1024 : output to I/O mechanism
    +}
    +

    Function: xmlSchematronFree

    void	xmlSchematronFree		(xmlSchematronPtr schema)
    +

    Deallocate a Schematron structure.

    +
    schema:a schema structure

    Function: xmlSchematronFreeParserCtxt

    void	xmlSchematronFreeParserCtxt	(xmlSchematronParserCtxtPtr ctxt)
    +

    Free the resources associated to the schema parser context

    +
    ctxt:the schema parser context

    Function: xmlSchematronFreeValidCtxt

    void	xmlSchematronFreeValidCtxt	(xmlSchematronValidCtxtPtr ctxt)
    +

    Free the resources associated to the schema validation context

    +
    ctxt:the schema validation context

    Function: xmlSchematronNewDocParserCtxt

    xmlSchematronParserCtxtPtr	xmlSchematronNewDocParserCtxt	(xmlDocPtr doc)
    +

    Create an XML Schematrons parse context for that document. NB. The document may be modified during the parsing process.

    +
    doc:a preparsed document tree
    Returns:the parser context or NULL in case of error

    Function: xmlSchematronNewMemParserCtxt

    xmlSchematronParserCtxtPtr	xmlSchematronNewMemParserCtxt	(const char * buffer, 
    int size)
    +

    Create an XML Schematrons parse context for that memory buffer expected to contain an XML Schematrons file.

    +
    buffer:a pointer to a char array containing the schemas
    size:the size of the array
    Returns:the parser context or NULL in case of error

    Function: xmlSchematronNewParserCtxt

    xmlSchematronParserCtxtPtr	xmlSchematronNewParserCtxt	(const char * URL)
    +

    Create an XML Schematrons parse context for that file/resource expected to contain an XML Schematrons file.

    +
    URL:the location of the schema
    Returns:the parser context or NULL in case of error

    Function: xmlSchematronNewValidCtxt

    xmlSchematronValidCtxtPtr	xmlSchematronNewValidCtxt	(xmlSchematronPtr schema, 
    int options)
    +

    Create an XML Schematrons validation context based on the given schema.

    +
    schema:a precompiled XML Schematrons
    options:a set of xmlSchematronValidOptions
    Returns:the validation context or NULL in case of error

    Function: xmlSchematronParse

    xmlSchematronPtr	xmlSchematronParse	(xmlSchematronParserCtxtPtr ctxt)
    +

    parse a schema definition resource and build an internal XML Shema struture which can be used to validate instances.

    +
    ctxt:a schema validation context
    Returns:the internal XML Schematron structure built from the resource or NULL in case of error

    Function: xmlSchematronValidateDoc

    int	xmlSchematronValidateDoc	(xmlSchematronValidCtxtPtr ctxt, 
    xmlDocPtr instance)
    +

    Validate a tree instance against the schematron

    +
    ctxt:the schema validation context
    instance:the document instace tree
    Returns:0 in case of success, -1 in case of internal error and an error count otherwise.

    Function type: xmlSchematronValidityErrorFunc

    Function type: xmlSchematronValidityErrorFunc
    +void	xmlSchematronValidityErrorFunc	(void * ctx, 
    const char * msg,
    ... ...) +

    ctx:
    msg:
    ...:

    +

    Function type: xmlSchematronValidityWarningFunc

    Function type: xmlSchematronValidityWarningFunc
    +void	xmlSchematronValidityWarningFunc	(void * ctx, 
    const char * msg,
    ... ...) +

    ctx:
    msg:
    ...:

    +

    Daniel Veillard

    diff --git a/doc/html/libxml-threads.html b/doc/html/libxml-threads.html index bc66bb3..7df283b 100644 --- a/doc/html/libxml-threads.html +++ b/doc/html/libxml-threads.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module threads from libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Module threads from libxml2

    API Menu
    API Indexes
    Related links

    set of generic threading related routines should work with pthreads, Windows native or TLS threads

    Table of Contents

    Structure xmlMutex
    struct _xmlMutex + Module threads from libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Module threads from libxml2

    API Menu
    API Indexes
    Related links

    set of generic threading related routines should work with pthreads, Windows native or TLS threads

    Table of Contents

    Structure xmlMutex
    struct _xmlMutex The content of this structure is not made public by the API.
    Typedef xmlMutex * xmlMutexPtr
     
    Structure xmlRMutex
    struct _xmlRMutex diff --git a/doc/html/libxml-tree.html b/doc/html/libxml-tree.html index b7f9055..5a33b38 100644 --- a/doc/html/libxml-tree.html +++ b/doc/html/libxml-tree.html @@ -883,7 +883,7 @@ A:link, A:visited, A:active { text-decoration: underline }

    parse an XML qualified name string [NS 5] QName ::= (Prefix ':')? LocalPart [NS 6] Prefix ::= NCName [NS 7] LocalPart ::= NCName

    name:the full QName
    prefix:a xmlChar **
    Returns:NULL if not a QName, otherwise the local part, and prefix is updated to get the Prefix if any.

    Function: xmlSplitQName3

    const xmlChar *	xmlSplitQName3		(const xmlChar * name, 
    int * len)

    parse an XML qualified name string,i

    -
    name:the full QName
    len:an int *
    Returns:NULL if it is not a Qualified Name, otherwise, update len with the lenght in byte of the prefix and return a pointer

    Function: xmlStringGetNodeList

    xmlNodePtr	xmlStringGetNodeList	(xmlDocPtr doc, 
    const xmlChar * value)
    +
    name:the full QName
    len:an int *
    Returns:NULL if it is not a Qualified Name, otherwise, update len with the lenght in byte of the prefix and return a pointer to the start of the name without the prefix

    Function: xmlStringGetNodeList

    xmlNodePtr	xmlStringGetNodeList	(xmlDocPtr doc, 
    const xmlChar * value)

    Parse the value string and build the node list associated. Should produce a flat tree with only TEXTs and ENTITY_REFs.

    doc:the document
    value:the value of the attribute
    Returns:a pointer to the first child

    Function: xmlStringLenGetNodeList

    xmlNodePtr	xmlStringLenGetNodeList	(xmlDocPtr doc, 
    const xmlChar * value,
    int len)

    Parse the value string and build the node list associated. Should produce a flat tree with only TEXTs and ENTITY_REFs.

    diff --git a/doc/html/libxml-uri.html b/doc/html/libxml-uri.html index e46ed7f..702a88c 100644 --- a/doc/html/libxml-uri.html +++ b/doc/html/libxml-uri.html @@ -19,6 +19,7 @@ A:link, A:visited, A:active { text-decoration: underline }
    void	xmlFreeURI			(xmlURIPtr uri)
    int	xmlNormalizeURIPath		(char * path)
    xmlURIPtr	xmlParseURI		(const char * str)
    +
    xmlURIPtr	xmlParseURIRaw		(const char * str, 
    int raw)
    int	xmlParseURIReference		(xmlURIPtr uri, 
    const char * str)
    void	xmlPrintURI			(FILE * stream, 
    xmlURIPtr uri)
    xmlChar *	xmlSaveUri		(xmlURIPtr uri)
    @@ -51,7 +52,9 @@ A:link, A:visited, A:active { text-decoration: underline }

    Applies the 5 normalization steps to a path string--that is, RFC 2396 Section 5.2, steps 6.c through 6.g. Normalization occurs directly on the string, no new allocation is done

    path:pointer to the path string
    Returns:0 or an error code

    Function: xmlParseURI

    xmlURIPtr	xmlParseURI		(const char * str)

    Parse an URI URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]

    -
    str:the URI string to analyze
    Returns:a newly built xmlURIPtr or NULL in case of error

    Function: xmlParseURIReference

    int	xmlParseURIReference		(xmlURIPtr uri, 
    const char * str)
    +
    str:the URI string to analyze
    Returns:a newly built xmlURIPtr or NULL in case of error

    Function: xmlParseURIRaw

    xmlURIPtr	xmlParseURIRaw		(const char * str, 
    int raw)
    +

    Parse an URI but allows to keep intact the original fragments. URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]

    +
    str:the URI string to analyze
    raw:if 1 unescaping of URI pieces are disabled
    Returns:a newly built xmlURIPtr or NULL in case of error

    Function: xmlParseURIReference

    int	xmlParseURIReference		(xmlURIPtr uri, 
    const char * str)

    Parse an URI reference string and fills in the appropriate fields of the @uri structure URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]

    uri:pointer to an URI structure
    str:the string to analyze
    Returns:0 or the error code

    Function: xmlPrintURI

    void	xmlPrintURI			(FILE * stream, 
    xmlURIPtr uri)

    Prints the URI in the stream @stream.

    diff --git a/doc/html/libxml-xmlautomata.html b/doc/html/libxml-xmlautomata.html index 8a4471e..25ffb00 100644 --- a/doc/html/libxml-xmlautomata.html +++ b/doc/html/libxml-xmlautomata.html @@ -26,6 +26,7 @@ The content of this structure is not made public by the API.
    int	xmlAutomataNewCounter		(xmlAutomataPtr am, 
    int min,
    int max)
    xmlAutomataStatePtr	xmlAutomataNewCounterTrans	(xmlAutomataPtr am, 
    xmlAutomataStatePtr from,
    xmlAutomataStatePtr to,
    int counter)
    xmlAutomataStatePtr	xmlAutomataNewEpsilon	(xmlAutomataPtr am, 
    xmlAutomataStatePtr from,
    xmlAutomataStatePtr to)
    +
    xmlAutomataStatePtr	xmlAutomataNewNegTrans	(xmlAutomataPtr am, 
    xmlAutomataStatePtr from,
    xmlAutomataStatePtr to,
    const xmlChar * token,
    const xmlChar * token2,
    void * data)
    xmlAutomataStatePtr	xmlAutomataNewOnceTrans	(xmlAutomataPtr am, 
    xmlAutomataStatePtr from,
    xmlAutomataStatePtr to,
    const xmlChar * token,
    int min,
    int max,
    void * data)
    xmlAutomataStatePtr	xmlAutomataNewOnceTrans2	(xmlAutomataPtr am, 
    xmlAutomataStatePtr from,
    xmlAutomataStatePtr to,
    const xmlChar * token,
    const xmlChar * token2,
    int min,
    int max,
    void * data)
    xmlAutomataStatePtr	xmlAutomataNewState	(xmlAutomataPtr am)
    @@ -59,7 +60,9 @@ The content of this structure is not made public by the API.

    If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state which will be allowed only if the counter is within the right range.

    am:an automata
    from:the starting point of the transition
    to:the target point of the transition or NULL
    counter:the counter associated to that transition
    Returns:the target state or NULL in case of error

    Function: xmlAutomataNewEpsilon

    xmlAutomataStatePtr	xmlAutomataNewEpsilon	(xmlAutomataPtr am, 
    xmlAutomataStatePtr from,
    xmlAutomataStatePtr to)

    If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state

    -
    am:an automata
    from:the starting point of the transition
    to:the target point of the transition or NULL
    Returns:the target state or NULL in case of error

    Function: xmlAutomataNewOnceTrans

    xmlAutomataStatePtr	xmlAutomataNewOnceTrans	(xmlAutomataPtr am, 
    xmlAutomataStatePtr from,
    xmlAutomataStatePtr to,
    const xmlChar * token,
    int min,
    int max,
    void * data)
    +
    am:an automata
    from:the starting point of the transition
    to:the target point of the transition or NULL
    Returns:the target state or NULL in case of error

    Function: xmlAutomataNewNegTrans

    xmlAutomataStatePtr	xmlAutomataNewNegTrans	(xmlAutomataPtr am, 
    xmlAutomataStatePtr from,
    xmlAutomataStatePtr to,
    const xmlChar * token,
    const xmlChar * token2,
    void * data)
    +

    If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by any value except (@token,@token2) Note that if @token2 is not NULL, then (X, NULL) won't match to follow # the semantic of XSD ##other

    +
    am:an automata
    from:the starting point of the transition
    to:the target point of the transition or NULL
    token:the first input string associated to that transition
    token2:the second input string associated to that transition
    data:data passed to the callback function if the transition is activated
    Returns:the target state or NULL in case of error

    Function: xmlAutomataNewOnceTrans

    xmlAutomataStatePtr	xmlAutomataNewOnceTrans	(xmlAutomataPtr am, 
    xmlAutomataStatePtr from,
    xmlAutomataStatePtr to,
    const xmlChar * token,
    int min,
    int max,
    void * data)

    If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and whose number is between @min and @max, moreover that transition can only be crossed once.

    am:an automata
    from:the starting point of the transition
    to:the target point of the transition or NULL
    token:the input string associated to that transition
    min:the minimum successive occurences of token
    max:the maximum successive occurences of token
    data:data associated to the transition
    Returns:the target state or NULL in case of error

    Function: xmlAutomataNewOnceTrans2

    xmlAutomataStatePtr	xmlAutomataNewOnceTrans2	(xmlAutomataPtr am, 
    xmlAutomataStatePtr from,
    xmlAutomataStatePtr to,
    const xmlChar * token,
    const xmlChar * token2,
    int min,
    int max,
    void * data)

    If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and @token2 and whose number is between @min and @max, moreover that transition can only be crossed once.

    diff --git a/doc/html/libxml-xmlerror.html b/doc/html/libxml-xmlerror.html index de1188e..fe92d03 100644 --- a/doc/html/libxml-xmlerror.html +++ b/doc/html/libxml-xmlerror.html @@ -79,6 +79,7 @@ void xmlStructuredErrorFunc (void * userD XML_FROM_CHECK = 24 : The error checking module XML_FROM_WRITER = 25 : The xmlwriter module XML_FROM_MODULE = 26 : The dynamically loaded module modul + XML_FROM_I18N = 27 : The module handling character conversion }

    Enum xmlErrorLevel

    Enum xmlErrorLevel {
         XML_ERR_NONE = 0
    @@ -754,6 +755,7 @@ void	xmlStructuredErrorFunc		(void * userD
         XML_SCHEMAP_AU_PROPS_CORRECT_2 = 3078 : 3078
         XML_SCHEMAP_A_PROPS_CORRECT_2 = 3079 : 3079
         XML_SCHEMAP_C_PROPS_CORRECT = 3080 : 3080
    +    XML_SCHEMAP_SRC_REDEFINE = 3081 : 3081
         XML_MODULE_OPEN = 4900 : 4900
         XML_MODULE_CLOSE = 4901 : 4901
         XML_CHECK_FOUND_ELEMENT = 5000
    @@ -794,8 +796,13 @@ void	xmlStructuredErrorFunc		(void * userD
         XML_CHECK_OUTSIDE_DICT = 5035 : 5035
         XML_CHECK_WRONG_NAME = 5036 : 5036
         XML_CHECK_NAME_NOT_NULL = 5037 : 5037
    -    XML_CHECK_ = 5038 : 5033
    -    XML_CHECK_X = 5039 : 503
    +    XML_I18N_NO_NAME = 6000
    +    XML_I18N_NO_HANDLER = 6001 : 6001
    +    XML_I18N_EXCESS_HANDLER = 6002 : 6002
    +    XML_I18N_CONV_FAILED = 6003 : 6003
    +    XML_I18N_NO_OUTPUT = 6004 : 6004
    +    XML_CHECK_ = 6005 : 5033
    +    XML_CHECK_X = 6006 : 503
     }
     

    Function: initGenericErrorDefaultFunc

    void	initGenericErrorDefaultFunc	(xmlGenericErrorFunc * handler)

    Set or reset (if NULL) the default handler for generic errors to the builtin error function.

    diff --git a/doc/html/libxml-xmlexports.html b/doc/html/libxml-xmlexports.html index dfce7b2..5b4e8b8 100644 --- a/doc/html/libxml-xmlexports.html +++ b/doc/html/libxml-xmlexports.html @@ -10,9 +10,10 @@ A:link, A:visited, A:active { text-decoration: underline } Module xmlexports from libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Module xmlexports from libxml2

    API Menu
    API Indexes
    Related links

    macros for marking symbols as exportable/importable.

    Table of Contents

    #define LIBXML_DLL_IMPORT
    #define XMLCALL
    #define XMLPUBFUN
    #define XMLPUBVAR
    #define _REENTRANT

    Description

    + Module xmlexports from libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Module xmlexports from libxml2

    API Menu
    API Indexes
    Related links

    macros for marking symbols as exportable/importable.

    Table of Contents

    #define LIBXML_DLL_IMPORT
    #define XMLCALL
    #define XMLCDECL
    #define XMLPUBFUN
    #define XMLPUBVAR
    #define _REENTRANT

    Description

    Macro: LIBXML_DLL_IMPORT

    #define LIBXML_DLL_IMPORT

    Macro: XMLCALL

    #define XMLCALL

    +

    Macro: XMLCDECL

    #define XMLCDECL

    Macro: XMLPUBFUN

    #define XMLPUBFUN

    Macro: XMLPUBVAR

    #define XMLPUBVAR

    Macro: _REENTRANT

    #define _REENTRANT

    diff --git a/doc/html/libxml-xmlregexp.html b/doc/html/libxml-xmlregexp.html index 4b6d888..761e105 100644 --- a/doc/html/libxml-xmlregexp.html +++ b/doc/html/libxml-xmlregexp.html @@ -10,13 +10,39 @@ A:link, A:visited, A:active { text-decoration: underline } Module xmlregexp from libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Module xmlregexp from libxml2

    API Menu
    API Indexes
    Related links

    basic API for libxml regular expressions handling used for XML Schemas and validation.

    Table of Contents

    Structure xmlRegExecCtxt
    struct _xmlRegExecCtxt + Module xmlregexp from libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Module xmlregexp from libxml2

    API Menu
    API Indexes
    Related links

    basic API for libxml regular expressions handling used for XML Schemas and validation.

    Table of Contents

    Structure xmlExpCtxt
    struct _xmlExpCtxt +The content of this structure is not made public by the API. +
    Typedef xmlExpCtxt * xmlExpCtxtPtr
    +
    Structure xmlExpNode
    struct _xmlExpNode +The content of this structure is not made public by the API. +
    Typedef xmlExpNode * xmlExpNodePtr
    +
    Enum xmlExpNodeType
    +
    Structure xmlRegExecCtxt
    struct _xmlRegExecCtxt The content of this structure is not made public by the API.
    Typedef xmlRegExecCtxt * xmlRegExecCtxtPtr
     
    Structure xmlRegexp
    struct _xmlRegexp The content of this structure is not made public by the API.
    Typedef xmlRegexp * xmlRegexpPtr
    -
    Function type: xmlRegExecCallbacks
    +
    int	xmlExpCtxtNbCons		(xmlExpCtxtPtr ctxt)
    +
    int	xmlExpCtxtNbNodes		(xmlExpCtxtPtr ctxt)
    +
    void	xmlExpDump			(xmlBufferPtr buf, 
    xmlExpNodePtr expr)
    +
    xmlExpNodePtr	xmlExpExpDerive		(xmlExpCtxtPtr ctxt, 
    xmlExpNodePtr exp,
    xmlExpNodePtr sub)
    +
    void	xmlExpFree			(xmlExpCtxtPtr ctxt, 
    xmlExpNodePtr exp)
    +
    void	xmlExpFreeCtxt			(xmlExpCtxtPtr ctxt)
    +
    int	xmlExpGetLanguage		(xmlExpCtxtPtr ctxt, 
    xmlExpNodePtr exp,
    const xmlChar ** list,
    int len)
    +
    int	xmlExpGetStart			(xmlExpCtxtPtr ctxt, 
    xmlExpNodePtr exp,
    const xmlChar ** list,
    int len)
    +
    int	xmlExpIsNillable		(xmlExpNodePtr exp)
    +
    int	xmlExpMaxToken			(xmlExpNodePtr expr)
    +
    xmlExpNodePtr	xmlExpNewAtom		(xmlExpCtxtPtr ctxt, 
    const xmlChar * name,
    int len)
    +
    xmlExpCtxtPtr	xmlExpNewCtxt		(int maxNodes, 
    xmlDictPtr dict)
    +
    xmlExpNodePtr	xmlExpNewOr		(xmlExpCtxtPtr ctxt, 
    xmlExpNodePtr left,
    xmlExpNodePtr right)
    +
    xmlExpNodePtr	xmlExpNewRange		(xmlExpCtxtPtr ctxt, 
    xmlExpNodePtr subset,
    int min,
    int max)
    +
    xmlExpNodePtr	xmlExpNewSeq		(xmlExpCtxtPtr ctxt, 
    xmlExpNodePtr left,
    xmlExpNodePtr right)
    +
    xmlExpNodePtr	xmlExpParse		(xmlExpCtxtPtr ctxt, 
    const char * expr)
    +
    void	xmlExpRef			(xmlExpNodePtr exp)
    +
    xmlExpNodePtr	xmlExpStringDerive	(xmlExpCtxtPtr ctxt, 
    xmlExpNodePtr exp,
    const xmlChar * str,
    int len)
    +
    int	xmlExpSubsume			(xmlExpCtxtPtr ctxt, 
    xmlExpNodePtr exp,
    xmlExpNodePtr sub)
    +
    Function type: xmlRegExecCallbacks
     void	xmlRegExecCallbacks		(xmlRegExecCtxtPtr exec, 
    const xmlChar * token,
    void * transdata,
    void * inputdata)
    int	xmlRegExecErrInfo		(xmlRegExecCtxtPtr exec, 
    const xmlChar ** string,
    int * nbval,
    int * nbneg,
    xmlChar ** values,
    int * terminal)
    @@ -31,11 +57,61 @@ void xmlRegExecCallbacks (int xmlRegexpIsDeterminist (xmlRegexpPtr comp)
    void	xmlRegexpPrint			(FILE * output, 
    xmlRegexpPtr regexp)

    Description

    -

    Structure xmlRegExecCtxt

    Structure xmlRegExecCtxt
    struct _xmlRegExecCtxt { +

    Structure xmlExpCtxt

    Structure xmlExpCtxt
    struct _xmlExpCtxt { +The content of this structure is not made public by the API. +}

    Structure xmlExpNode

    Structure xmlExpNode
    struct _xmlExpNode { +The content of this structure is not made public by the API. +}

    Enum xmlExpNodeType

    Enum xmlExpNodeType {
    +    XML_EXP_EMPTY = 0
    +    XML_EXP_FORBID = 1
    +    XML_EXP_ATOM = 2
    +    XML_EXP_SEQ = 3
    +    XML_EXP_OR = 4
    +    XML_EXP_COUNT = 5
    +}
    +

    Structure xmlRegExecCtxt

    Structure xmlRegExecCtxt
    struct _xmlRegExecCtxt { The content of this structure is not made public by the API. }

    Structure xmlRegexp

    Structure xmlRegexp
    struct _xmlRegexp { The content of this structure is not made public by the API. -}

    Function type: xmlRegExecCallbacks

    Function type: xmlRegExecCallbacks
    +}

    Function: xmlExpCtxtNbCons

    int	xmlExpCtxtNbCons		(xmlExpCtxtPtr ctxt)
    +

    Debugging facility provides the number of allocated nodes over lifetime

    +
    ctxt:an expression context
    Returns:the number of nodes ever allocated or -1 in case of error

    Function: xmlExpCtxtNbNodes

    int	xmlExpCtxtNbNodes		(xmlExpCtxtPtr ctxt)
    +

    Debugging facility provides the number of allocated nodes at a that point

    +
    ctxt:an expression context
    Returns:the number of nodes in use or -1 in case of error

    Function: xmlExpDump

    void	xmlExpDump			(xmlBufferPtr buf, 
    xmlExpNodePtr expr)
    +

    Serialize the expression as compiled to the buffer

    +
    buf:a buffer to receive the output
    expr:the compiled expression

    Function: xmlExpExpDerive

    xmlExpNodePtr	xmlExpExpDerive		(xmlExpCtxtPtr ctxt, 
    xmlExpNodePtr exp,
    xmlExpNodePtr sub)
    +

    Evaluates the expression resulting from @exp consuming a sub expression @sub Based on algebraic derivation and sometimes direct Brzozowski derivation it usually tatkes less than linear time and can handle expressions generating infinite languages.

    +
    ctxt:the expressions context
    exp:the englobing expression
    sub:the subexpression
    Returns:the resulting expression or NULL in case of internal error, the result must be freed

    Function: xmlExpFree

    void	xmlExpFree			(xmlExpCtxtPtr ctxt, 
    xmlExpNodePtr exp)
    +

    Dereference the expression

    +
    ctxt:the expression context
    exp:the expression

    Function: xmlExpFreeCtxt

    void	xmlExpFreeCtxt			(xmlExpCtxtPtr ctxt)
    +

    Free an expression context

    +
    ctxt:an expression context

    Function: xmlExpGetLanguage

    int	xmlExpGetLanguage		(xmlExpCtxtPtr ctxt, 
    xmlExpNodePtr exp,
    const xmlChar ** list,
    int len)
    +

    Find all the strings used in @exp and store them in @list

    +
    ctxt:the expression context
    exp:the expression
    list:where to store the tokens
    len:the allocated lenght of @list
    Returns:the number of unique strings found, -1 in case of errors and -2 if there is more than @len strings

    Function: xmlExpGetStart

    int	xmlExpGetStart			(xmlExpCtxtPtr ctxt, 
    xmlExpNodePtr exp,
    const xmlChar ** list,
    int len)
    +

    Find all the strings that appears at the start of the languages accepted by @exp and store them in @list. E.g. for (a, b) | c it will return the list [a, c]

    +
    ctxt:the expression context
    exp:the expression
    list:where to store the tokens
    len:the allocated lenght of @list
    Returns:the number of unique strings found, -1 in case of errors and -2 if there is more than @len strings

    Function: xmlExpIsNillable

    int	xmlExpIsNillable		(xmlExpNodePtr exp)
    +

    Finds if the expression is nillable, i.e. if it accepts the empty sequqnce

    +
    exp:the expression
    Returns:1 if nillable, 0 if not and -1 in case of error

    Function: xmlExpMaxToken

    int	xmlExpMaxToken			(xmlExpNodePtr expr)
    +

    Indicate the maximum number of input a expression can accept

    +
    expr:a compiled expression
    Returns:the maximum length or -1 in case of error

    Function: xmlExpNewAtom

    xmlExpNodePtr	xmlExpNewAtom		(xmlExpCtxtPtr ctxt, 
    const xmlChar * name,
    int len)
    +

    Get the atom associated to this name from that context

    +
    ctxt:the expression context
    name:the atom name
    len:the atom name lenght in byte (or -1);
    Returns:the node or NULL in case of error

    Function: xmlExpNewCtxt

    xmlExpCtxtPtr	xmlExpNewCtxt		(int maxNodes, 
    xmlDictPtr dict)
    +

    Creates a new context for manipulating expressions

    +
    maxNodes:the maximum number of nodes
    dict:optional dictionnary to use internally
    Returns:the context or NULL in case of error

    Function: xmlExpNewOr

    xmlExpNodePtr	xmlExpNewOr		(xmlExpCtxtPtr ctxt, 
    xmlExpNodePtr left,
    xmlExpNodePtr right)
    +

    Get the atom associated to the choice @left | @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).

    +
    ctxt:the expression context
    left:left expression
    right:right expression
    Returns:the node or NULL in case of error

    Function: xmlExpNewRange

    xmlExpNodePtr	xmlExpNewRange		(xmlExpCtxtPtr ctxt, 
    xmlExpNodePtr subset,
    int min,
    int max)
    +

    Get the atom associated to the range (@subset){@min, @max} Note that @subset is consumed in the operation, to keep an handle on it use xmlExpRef() and use xmlExpFree() to release it, this is true even in case of failure (unless ctxt == NULL).

    +
    ctxt:the expression context
    subset:the expression to be repeated
    min:the lower bound for the repetition
    max:the upper bound for the repetition, -1 means infinite
    Returns:the node or NULL in case of error

    Function: xmlExpNewSeq

    xmlExpNodePtr	xmlExpNewSeq		(xmlExpCtxtPtr ctxt, 
    xmlExpNodePtr left,
    xmlExpNodePtr right)
    +

    Get the atom associated to the sequence @left , @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).

    +
    ctxt:the expression context
    left:left expression
    right:right expression
    Returns:the node or NULL in case of error

    Function: xmlExpParse

    xmlExpNodePtr	xmlExpParse		(xmlExpCtxtPtr ctxt, 
    const char * expr)
    +

    Minimal parser for regexps, it understand the following constructs - string terminals - choice operator | - sequence operator , - subexpressions (...) - usual cardinality operators + * and ? - finite sequences { min, max } - infinite sequences { min, * } There is minimal checkings made especially no checking on strings values

    +
    ctxt:the expressions context
    expr:the 0 terminated string
    Returns:a new expression or NULL in case of failure

    Function: xmlExpRef

    void	xmlExpRef			(xmlExpNodePtr exp)
    +

    Increase the reference count of the expression

    +
    exp:the expression

    Function: xmlExpStringDerive

    xmlExpNodePtr	xmlExpStringDerive	(xmlExpCtxtPtr ctxt, 
    xmlExpNodePtr exp,
    const xmlChar * str,
    int len)
    +

    Do one step of Brzozowski derivation of the expression @exp with respect to the input string

    +
    ctxt:the expression context
    exp:the expression
    str:the string
    len:the string len in bytes if available
    Returns:the resulting expression or NULL in case of internal error

    Function: xmlExpSubsume

    int	xmlExpSubsume			(xmlExpCtxtPtr ctxt, 
    xmlExpNodePtr exp,
    xmlExpNodePtr sub)
    +

    Check whether @exp accepts all the languages accexpted by @sub the input being a subexpression.

    +
    ctxt:the expressions context
    exp:the englobing expression
    sub:the subexpression
    Returns:1 if true 0 if false and -1 in case of failure.

    Function type: xmlRegExecCallbacks

    Function type: xmlRegExecCallbacks
     void	xmlRegExecCallbacks		(xmlRegExecCtxtPtr exec, 
    const xmlChar * token,
    void * transdata,
    void * inputdata)

    exec:
    token:
    transdata:
    inputdata:

    Function: xmlRegExecErrInfo

    int	xmlRegExecErrInfo		(xmlRegExecCtxtPtr exec, 
    const xmlChar ** string,
    int * nbval,
    int * nbneg,
    xmlChar ** values,
    int * terminal)
    diff --git a/doc/html/libxml-xmlsave.html b/doc/html/libxml-xmlsave.html index b1db142..ef54e58 100644 --- a/doc/html/libxml-xmlsave.html +++ b/doc/html/libxml-xmlsave.html @@ -28,6 +28,7 @@ The content of this structure is not made public by the API. The content of this structure is not made public by the API. }

    Enum xmlSaveOption

    Enum xmlSaveOption {
         XML_SAVE_FORMAT = 1 : format save output
    +    XML_SAVE_NO_DECL = 2 : drop the xml declaration
     }
     

    Function: xmlSaveClose

    int	xmlSaveClose			(xmlSaveCtxtPtr ctxt)

    Close a document saving context, i.e. make sure that all bytes have been output and free the associated data.

    diff --git a/doc/html/libxml-xmlschemas.html b/doc/html/libxml-xmlschemas.html index 201b09b..1277171 100644 --- a/doc/html/libxml-xmlschemas.html +++ b/doc/html/libxml-xmlschemas.html @@ -40,6 +40,7 @@ The content of this structure is not made public by the API.
    void	xmlSchemaSetParserErrors	(xmlSchemaParserCtxtPtr ctxt, 
    xmlSchemaValidityErrorFunc err,
    xmlSchemaValidityWarningFunc warn,
    void * ctx)
    void	xmlSchemaSetValidErrors		(xmlSchemaValidCtxtPtr ctxt, 
    xmlSchemaValidityErrorFunc err,
    xmlSchemaValidityWarningFunc warn,
    void * ctx)
    int	xmlSchemaSetValidOptions	(xmlSchemaValidCtxtPtr ctxt, 
    int options)
    +
    void	xmlSchemaSetValidStructuredErrors	(xmlSchemaValidCtxtPtr ctxt, 
    xmlStructuredErrorFunc serror,
    void * ctx)
    int	xmlSchemaValidCtxtGetOptions	(xmlSchemaValidCtxtPtr ctxt)
    int	xmlSchemaValidateDoc		(xmlSchemaValidCtxtPtr ctxt, 
    xmlDocPtr doc)
    int	xmlSchemaValidateFile		(xmlSchemaValidCtxtPtr ctxt, 
    const char * filename,
    int options)
    @@ -145,7 +146,9 @@ The content of this structure is not made public by the API.

    Set the error and warning callback informations

    ctxt:a schema validation context
    err:the error function
    warn:the warning function
    ctx:the functions context

    Function: xmlSchemaSetValidOptions

    int	xmlSchemaSetValidOptions	(xmlSchemaValidCtxtPtr ctxt, 
    int options)

    Sets the options to be used during the validation.

    -
    ctxt:a schema validation context
    options:a combination of xmlSchemaValidOption
    Returns:0 in case of success, -1 in case of an API error.

    Function: xmlSchemaValidCtxtGetOptions

    int	xmlSchemaValidCtxtGetOptions	(xmlSchemaValidCtxtPtr ctxt)
    +
    ctxt:a schema validation context
    options:a combination of xmlSchemaValidOption
    Returns:0 in case of success, -1 in case of an API error.

    Function: xmlSchemaSetValidStructuredErrors

    void	xmlSchemaSetValidStructuredErrors	(xmlSchemaValidCtxtPtr ctxt, 
    xmlStructuredErrorFunc serror,
    void * ctx)
    +

    Set the structured error callback

    +
    ctxt:a schema validation context
    serror:the structured error function
    ctx:the functions context

    Function: xmlSchemaValidCtxtGetOptions

    int	xmlSchemaValidCtxtGetOptions	(xmlSchemaValidCtxtPtr ctxt)

    Get the validation context options.

    ctxt:a schema validation context
    Returns:the option combination or -1 on error.

    Function: xmlSchemaValidateDoc

    int	xmlSchemaValidateDoc		(xmlSchemaValidCtxtPtr ctxt, 
    xmlDocPtr doc)

    Validate a document tree in memory.

    diff --git a/doc/html/libxml-xmlversion.html b/doc/html/libxml-xmlversion.html index bdf760c..32609a0 100644 --- a/doc/html/libxml-xmlversion.html +++ b/doc/html/libxml-xmlversion.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module xmlversion from libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Module xmlversion from libxml2

    API Menu
    API Indexes
    Related links

    compile-time version informations for the XML library

    Table of Contents

    #define ATTRIBUTE_UNUSED
    #define DEBUG_MEMORY_LOCATION
    #define LIBXML_AUTOMATA_ENABLED
    #define LIBXML_C14N_ENABLED
    #define LIBXML_CATALOG_ENABLED
    #define LIBXML_DEBUG_ENABLED
    #define LIBXML_DEBUG_RUNTIME
    #define LIBXML_DOCB_ENABLED
    #define LIBXML_DOTTED_VERSION
    #define LIBXML_FTP_ENABLED
    #define LIBXML_HTML_ENABLED
    #define LIBXML_HTTP_ENABLED
    #define LIBXML_ICONV_ENABLED
    #define LIBXML_ISO8859X_ENABLED
    #define LIBXML_LEGACY_ENABLED
    #define LIBXML_MODULES_ENABLED
    #define LIBXML_MODULE_EXTENSION
    #define LIBXML_OUTPUT_ENABLED
    #define LIBXML_PATTERN_ENABLED
    #define LIBXML_PUSH_ENABLED
    #define LIBXML_READER_ENABLED
    #define LIBXML_REGEXP_ENABLED
    #define LIBXML_SAX1_ENABLED
    #define LIBXML_SCHEMAS_ENABLED
    #define LIBXML_TEST_VERSION
    #define LIBXML_THREAD_ENABLED
    #define LIBXML_TREE_ENABLED
    #define LIBXML_UNICODE_ENABLED
    #define LIBXML_VALID_ENABLED
    #define LIBXML_VERSION
    #define LIBXML_VERSION_EXTRA
    #define LIBXML_VERSION_STRING
    #define LIBXML_WRITER_ENABLED
    #define LIBXML_XINCLUDE_ENABLED
    #define LIBXML_XPATH_ENABLED
    #define LIBXML_XPTR_ENABLED
    #define WITHOUT_TRIO
    #define WITH_TRIO
    void	xmlCheckVersion			(int version)
    + Module xmlversion from libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Module xmlversion from libxml2

    API Menu
    API Indexes
    Related links

    compile-time version informations for the XML library

    Table of Contents

    #define ATTRIBUTE_UNUSED
    #define DEBUG_MEMORY_LOCATION
    #define LIBXML_AUTOMATA_ENABLED
    #define LIBXML_C14N_ENABLED
    #define LIBXML_CATALOG_ENABLED
    #define LIBXML_DEBUG_ENABLED
    #define LIBXML_DEBUG_RUNTIME
    #define LIBXML_DOCB_ENABLED
    #define LIBXML_DOTTED_VERSION
    #define LIBXML_EXPR_ENABLED
    #define LIBXML_FTP_ENABLED
    #define LIBXML_HTML_ENABLED
    #define LIBXML_HTTP_ENABLED
    #define LIBXML_ICONV_ENABLED
    #define LIBXML_ISO8859X_ENABLED
    #define LIBXML_LEGACY_ENABLED
    #define LIBXML_MODULES_ENABLED
    #define LIBXML_MODULE_EXTENSION
    #define LIBXML_OUTPUT_ENABLED
    #define LIBXML_PATTERN_ENABLED
    #define LIBXML_PUSH_ENABLED
    #define LIBXML_READER_ENABLED
    #define LIBXML_REGEXP_ENABLED
    #define LIBXML_SAX1_ENABLED
    #define LIBXML_SCHEMAS_ENABLED
    #define LIBXML_SCHEMATRON_ENABLED
    #define LIBXML_TEST_VERSION
    #define LIBXML_THREAD_ENABLED
    #define LIBXML_TREE_ENABLED
    #define LIBXML_UNICODE_ENABLED
    #define LIBXML_VALID_ENABLED
    #define LIBXML_VERSION
    #define LIBXML_VERSION_EXTRA
    #define LIBXML_VERSION_STRING
    #define LIBXML_WRITER_ENABLED
    #define LIBXML_XINCLUDE_ENABLED
    #define LIBXML_XPATH_ENABLED
    #define LIBXML_XPTR_ENABLED
    #define WITHOUT_TRIO
    #define WITH_TRIO
    void	xmlCheckVersion			(int version)

    Description

    Macro: ATTRIBUTE_UNUSED

    #define ATTRIBUTE_UNUSED

    Macro used to signal to GCC unused function parameters

    Macro: DEBUG_MEMORY_LOCATION

    #define DEBUG_MEMORY_LOCATION

    Whether the memory debugging is configured in

    @@ -21,6 +21,7 @@ A:link, A:visited, A:active { text-decoration: underline }

    Macro: LIBXML_DEBUG_RUNTIME

    #define LIBXML_DEBUG_RUNTIME

    Whether the runtime debugging is configured in

    Macro: LIBXML_DOCB_ENABLED

    #define LIBXML_DOCB_ENABLED

    Whether the SGML Docbook support is configured in

    Macro: LIBXML_DOTTED_VERSION

    #define LIBXML_DOTTED_VERSION

    the version string like "1.2.3"

    +

    Macro: LIBXML_EXPR_ENABLED

    #define LIBXML_EXPR_ENABLED

    Whether the formal expressions interfaces are compiled in

    Macro: LIBXML_FTP_ENABLED

    #define LIBXML_FTP_ENABLED

    Whether the FTP support is configured in

    Macro: LIBXML_HTML_ENABLED

    #define LIBXML_HTML_ENABLED

    Whether the HTML support is configured in

    Macro: LIBXML_HTTP_ENABLED

    #define LIBXML_HTTP_ENABLED

    Whether the HTTP support is configured in

    @@ -28,7 +29,7 @@ A:link, A:visited, A:active { text-decoration: underline }

    Macro: LIBXML_ISO8859X_ENABLED

    #define LIBXML_ISO8859X_ENABLED

    Whether ISO-8859-* support is made available in case iconv is not

    Macro: LIBXML_LEGACY_ENABLED

    #define LIBXML_LEGACY_ENABLED

    Whether the deprecated APIs are compiled in for compatibility

    Macro: LIBXML_MODULES_ENABLED

    #define LIBXML_MODULES_ENABLED

    Whether the module interfaces are compiled in

    -

    Macro: LIBXML_MODULE_EXTENSION

    #define LIBXML_MODULE_EXTENSION

    +

    Macro: LIBXML_MODULE_EXTENSION

    #define LIBXML_MODULE_EXTENSION

    the string suffix used by dynamic modules (usually shared libraries)

    Macro: LIBXML_OUTPUT_ENABLED

    #define LIBXML_OUTPUT_ENABLED

    Whether the serialization/saving support is configured in

    Macro: LIBXML_PATTERN_ENABLED

    #define LIBXML_PATTERN_ENABLED

    Whether the xmlPattern node selection interface is configured in

    Macro: LIBXML_PUSH_ENABLED

    #define LIBXML_PUSH_ENABLED

    Whether the push parsing interfaces are configured in

    @@ -36,6 +37,7 @@ A:link, A:visited, A:active { text-decoration: underline }

    Macro: LIBXML_REGEXP_ENABLED

    #define LIBXML_REGEXP_ENABLED

    Whether the regular expressions interfaces are compiled in

    Macro: LIBXML_SAX1_ENABLED

    #define LIBXML_SAX1_ENABLED

    Whether the older SAX1 interface is configured in

    Macro: LIBXML_SCHEMAS_ENABLED

    #define LIBXML_SCHEMAS_ENABLED

    Whether the Schemas validation interfaces are compiled in

    +

    Macro: LIBXML_SCHEMATRON_ENABLED

    #define LIBXML_SCHEMATRON_ENABLED

    Whether the Schematron validation interfaces are compiled in

    Macro: LIBXML_TEST_VERSION

    #define LIBXML_TEST_VERSION

    Macro to check that the libxml version in use is compatible with the version the software has been compiled against

    Macro: LIBXML_THREAD_ENABLED

    #define LIBXML_THREAD_ENABLED

    Whether the thread support is configured in

    Macro: LIBXML_TREE_ENABLED

    #define LIBXML_TREE_ENABLED

    Whether the DOM like tree manipulation API support is configured in

    diff --git a/doc/html/libxml-xpath.html b/doc/html/libxml-xpath.html index 30fdc22..ba4265f 100644 --- a/doc/html/libxml-xpath.html +++ b/doc/html/libxml-xpath.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module xpath from libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Module xpath from libxml2

    API Menu
    API Indexes
    Related links

    API for the XML Path Language implementation XML Path Language implementation XPath is a language for addressing parts of an XML document, designed to be used by both XSLT and XPointer

    Table of Contents

    #define xmlXPathNodeSetGetLength
    #define xmlXPathNodeSetIsEmpty
    #define xmlXPathNodeSetItem
    Structure xmlNodeSet
    struct _xmlNodeSet + Module xpath from libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Module xpath from libxml2

    API Menu
    API Indexes
    Related links

    API for the XML Path Language implementation XML Path Language implementation XPath is a language for addressing parts of an XML document, designed to be used by both XSLT and XPointer

    Table of Contents

    #define XML_XPATH_CHECKNS
    #define XML_XPATH_NOVAR
    #define xmlXPathNodeSetGetLength
    #define xmlXPathNodeSetIsEmpty
    #define xmlXPathNodeSetItem
    Structure xmlNodeSet
    struct _xmlNodeSet
    Typedef xmlNodeSet * xmlNodeSetPtr
     
    Structure xmlXPathAxis
    struct _xmlXPathAxis
    Typedef xmlXPathAxis * xmlXPathAxisPtr
    @@ -86,6 +86,8 @@ void	xmlXPathFunction		(xmlXPathObjectPtr	xmlXPathVariableLookupFunc	(void * ctxt, 
    const xmlChar * name,
    const xmlChar * ns_uri)

    Description

    +

    Macro: XML_XPATH_CHECKNS

    #define XML_XPATH_CHECKNS

    check namespaces at compilation

    +

    Macro: XML_XPATH_NOVAR

    #define XML_XPATH_NOVAR

    forbid variables in expression

    Macro: xmlXPathNodeSetGetLength

    #define xmlXPathNodeSetGetLength

    Implement a functionality similar to the DOM NodeList.length. Returns the number of nodes in the node-set.

    Macro: xmlXPathNodeSetIsEmpty

    #define xmlXPathNodeSetIsEmpty

    Checks whether @ns is empty or not. Returns %TRUE if @ns is an empty node-set.

    Macro: xmlXPathNodeSetItem

    #define xmlXPathNodeSetItem

    Implements a functionality similar to the DOM NodeList.item(). Returns the xmlNodePtr at the given @index in @ns or NULL if @index is out of range (0 to length-1)

    @@ -136,6 +138,7 @@ The content of this structure is not made public by the API. xmlError lastError : the last error xmlNodePtr debugNode : the source node XSLT dictionnary xmlDictPtr dict : dictionnary if any + int flags : flags to control compilation }

    Enum xmlXPathError

    Enum xmlXPathError {
         XPATH_EXPRESSION_OK = 0
         XPATH_NUMBER_ERROR = 1
    diff --git a/doc/index.html b/doc/index.html
    index 69e54ad..e5cdd04 100644
    --- a/doc/index.html
    +++ b/doc/index.html
    @@ -1,8 +1,7 @@
     
     
     
    -  
    -    
    +  
         
         XSLT
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    The XML C parser and toolkit of Gnome

    XSLT

    Main Menu
    Related links

    Check the separate libxslt page

    XSL Transformations, is a language for transforming XML documents into other XML documents (or HTML/textual output).

    A separate library called libxslt is available implementing XSLT-1.0 for -libxml2. This module "libxslt" too can be found in the Gnome CVS base.

    You can check the progresses on the libxslt Changelog.

    Daniel Veillard

    +libxml2. This module "libxslt" too can be found in the Gnome SVN base.

    You can check the progresses on the libxslt Changelog.

    Daniel Veillard

    diff --git a/doc/bugs.html b/doc/bugs.html index 6415c85..d37423b 100644 --- a/doc/bugs.html +++ b/doc/bugs.html @@ -14,7 +14,7 @@ bug tracking database (make sure to use the "libxml2" module name). I look at reports there regularly and it's good to have a reminder when a bug is still open. Be sure to specify that the bug is for the package libxml2.

    For small problems you can try to get help on IRC, the #xml channel on irc.gnome.org (port 6667) usually have a few person subscribed which may help -(but there is no garantee and if a real issue is raised it should go on the +(but there is no guarantee and if a real issue is raised it should go on the mailing-list for archival).

    There is also a mailing-list xml@gnome.org for libxml, with an on-line archive (old). To subscribe to this list, please visit the associated Web page and follow the instructions. Do not send code, I won't debug it @@ -24,13 +24,13 @@ bounces* (in the order of a thousand a day !) I cannot approve them manually anymore. If your mail to the list bounced waiting for administrator approval, it is LOST ! Repost it and fix the problem triggering the error. Also please note that emails with -a legal warning asking to not copy or redistribute freely the informations +a legal warning asking to not copy or redistribute freely the information they contain are NOT acceptable for the mailing-list, such mail will as much as possible be discarded automatically, and are less likely to be answered if they made it to the list, DO NOT post to the list from an email address where such legal requirements are automatically added, get private paying support if you can't share -informations.

    Check the following before +information.

    Check the following before posting:

    Append the extra substring to the node content. NOTE: In contrast to xmlNodeSetContentLen(), @content is supposed to be raw text, so unescaped XML special chars are allowed, entity references are not supported.

    cur:the node being modified
    content:extra content
    len:the size of @content


    xmlNodeSetContent ()

    void	xmlNodeSetContent		(xmlNodePtr cur, 
    const xmlChar * content)
    -

    Replace the content of a node.

    +

    Replace the content of a node. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars().

    cur:the node being modified
    content:the new value of the content

    xmlNodeSetContentLen ()

    void	xmlNodeSetContentLen		(xmlNodePtr cur, 
    const xmlChar * content,
    int len)
    -

    Replace the content of a node.

    +

    Replace the content of a node. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars().

    cur:the node being modified
    content:the new value of the content
    len:the size of @content

    xmlNodeSetLang ()

    void	xmlNodeSetLang			(xmlNodePtr cur, 
    const xmlChar * lang)
    diff --git a/doc/devhelp/libxml2-xmlreader.html b/doc/devhelp/libxml2-xmlreader.html index a3bbbb5..e422f1d 100644 --- a/doc/devhelp/libxml2-xmlreader.html +++ b/doc/devhelp/libxml2-xmlreader.html @@ -50,91 +50,92 @@ typedef enum xmlTextReaderMode; typedef struct _xmlTextReader xmlTextReader; typedef void * xmlTextReaderLocatorPtr; typedef enum xmlReaderTypes; -const xmlChar * xmlTextReaderConstXmlVersion (xmlTextReaderPtr reader); -xmlChar * xmlTextReaderBaseUri (xmlTextReaderPtr reader); -xmlChar * xmlTextReaderValue (xmlTextReaderPtr reader); xmlTextReaderPtr xmlNewTextReaderFilename (const char * URI); -int xmlTextReaderRead (xmlTextReaderPtr reader); -xmlChar * xmlTextReaderReadString (xmlTextReaderPtr reader); -int xmlTextReaderMoveToAttributeNo (xmlTextReaderPtr reader,
    int no); -int xmlTextReaderDepth (xmlTextReaderPtr reader); -typedef void xmlTextReaderErrorFunc (void * arg,
    const char * msg,
    xmlParserSeverities severity,
    xmlTextReaderLocatorPtr locator); int xmlTextReaderHasAttributes (xmlTextReaderPtr reader); -int xmlTextReaderIsNamespaceDecl (xmlTextReaderPtr reader); -int xmlTextReaderLocatorLineNumber (xmlTextReaderLocatorPtr locator); -xmlChar * xmlTextReaderLookupNamespace (xmlTextReaderPtr reader,
    const xmlChar * prefix); -int xmlTextReaderMoveToAttributeNs (xmlTextReaderPtr reader,
    const xmlChar * localName,
    const xmlChar * namespaceURI); -int xmlTextReaderNext (xmlTextReaderPtr reader); -int xmlTextReaderReadAttributeValue (xmlTextReaderPtr reader); -xmlChar * xmlTextReaderNamespaceUri (xmlTextReaderPtr reader); -int xmlTextReaderIsDefault (xmlTextReaderPtr reader); +int xmlTextReaderReadState (xmlTextReaderPtr reader); xmlTextReaderPtr xmlReaderForFile (const char * filename,
    const char * encoding,
    int options); const xmlChar * xmlTextReaderConstNamespaceUri (xmlTextReaderPtr reader); -int xmlTextReaderMoveToNextAttribute (xmlTextReaderPtr reader); -int xmlTextReaderQuoteChar (xmlTextReaderPtr reader); -xmlChar * xmlTextReaderReadOuterXml (xmlTextReaderPtr reader); +xmlDocPtr xmlTextReaderCurrentDoc (xmlTextReaderPtr reader); int xmlTextReaderGetParserLineNumber (xmlTextReaderPtr reader); -xmlChar * xmlTextReaderGetAttributeNs (xmlTextReaderPtr reader,
    const xmlChar * localName,
    const xmlChar * namespaceURI); -int xmlReaderNewWalker (xmlTextReaderPtr reader,
    xmlDocPtr doc); -int xmlReaderNewDoc (xmlTextReaderPtr reader,
    const xmlChar * cur,
    const char * URL,
    const char * encoding,
    int options); +xmlNodePtr xmlTextReaderExpand (xmlTextReaderPtr reader); xmlChar * xmlTextReaderXmlLang (xmlTextReaderPtr reader); -int xmlTextReaderStandalone (xmlTextReaderPtr reader); xmlTextReaderPtr xmlReaderForDoc (const xmlChar * cur,
    const char * URL,
    const char * encoding,
    int options); -int xmlTextReaderSchemaValidate (xmlTextReaderPtr reader,
    const char * xsd); int xmlReaderNewIO (xmlTextReaderPtr reader,
    xmlInputReadCallback ioread,
    xmlInputCloseCallback ioclose,
    void * ioctx,
    const char * URL,
    const char * encoding,
    int options); -int xmlTextReaderMoveToElement (xmlTextReaderPtr reader); -void xmlTextReaderSetStructuredErrorHandler (xmlTextReaderPtr reader,
    xmlStructuredErrorFunc f,
    void * arg); int xmlTextReaderClose (xmlTextReaderPtr reader); xmlChar * xmlTextReaderReadInnerXml (xmlTextReaderPtr reader); -xmlTextReaderPtr xmlReaderWalker (xmlDocPtr doc); -xmlTextReaderPtr xmlReaderForIO (xmlInputReadCallback ioread,
    xmlInputCloseCallback ioclose,
    void * ioctx,
    const char * URL,
    const char * encoding,
    int options); -int xmlTextReaderIsValid (xmlTextReaderPtr reader); -void xmlTextReaderSetErrorHandler (xmlTextReaderPtr reader,
    xmlTextReaderErrorFunc f,
    void * arg); -const xmlChar * xmlTextReaderConstXmlLang (xmlTextReaderPtr reader); -const xmlChar * xmlTextReaderConstLocalName (xmlTextReaderPtr reader); const xmlChar * xmlTextReaderConstEncoding (xmlTextReaderPtr reader); -int xmlTextReaderNodeType (xmlTextReaderPtr reader); int xmlTextReaderNormalization (xmlTextReaderPtr reader); -void xmlTextReaderGetErrorHandler (xmlTextReaderPtr reader,
    xmlTextReaderErrorFunc * f,
    void ** arg); -const xmlChar * xmlTextReaderConstPrefix (xmlTextReaderPtr reader); int xmlTextReaderGetParserProp (xmlTextReaderPtr reader,
    int prop); -int xmlTextReaderGetParserColumnNumber (xmlTextReaderPtr reader); -xmlParserInputBufferPtr xmlTextReaderGetRemainder (xmlTextReaderPtr reader); -int xmlReaderNewFile (xmlTextReaderPtr reader,
    const char * filename,
    const char * encoding,
    int options); -void xmlFreeTextReader (xmlTextReaderPtr reader); int xmlTextReaderMoveToAttribute (xmlTextReaderPtr reader,
    const xmlChar * name); -int xmlTextReaderRelaxNGSetSchema (xmlTextReaderPtr reader,
    xmlRelaxNGPtr schema); -xmlChar * xmlTextReaderName (xmlTextReaderPtr reader); -int xmlReaderNewFd (xmlTextReaderPtr reader,
    int fd,
    const char * URL,
    const char * encoding,
    int options); -int xmlTextReaderNextSibling (xmlTextReaderPtr reader); -int xmlTextReaderRelaxNGValidate (xmlTextReaderPtr reader,
    const char * rng); -int xmlTextReaderIsEmptyElement (xmlTextReaderPtr reader); +int xmlTextReaderQuoteChar (xmlTextReaderPtr reader); int xmlTextReaderSetSchema (xmlTextReaderPtr reader,
    xmlSchemaPtr schema); -xmlDocPtr xmlTextReaderCurrentDoc (xmlTextReaderPtr reader); -xmlTextReaderPtr xmlReaderForMemory (const char * buffer,
    int size,
    const char * URL,
    const char * encoding,
    int options); -xmlNodePtr xmlTextReaderCurrentNode (xmlTextReaderPtr reader); -xmlTextReaderPtr xmlReaderForFd (int fd,
    const char * URL,
    const char * encoding,
    int options); +xmlChar * xmlTextReaderValue (xmlTextReaderPtr reader); +int xmlTextReaderIsValid (xmlTextReaderPtr reader); int xmlTextReaderMoveToFirstAttribute (xmlTextReaderPtr reader); -xmlChar * xmlTextReaderPrefix (xmlTextReaderPtr reader); -long xmlTextReaderByteConsumed (xmlTextReaderPtr reader); -int xmlTextReaderPreservePattern (xmlTextReaderPtr reader,
    const xmlChar * pattern,
    const xmlChar ** namespaces); -xmlChar * xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator); -xmlChar * xmlTextReaderGetAttribute (xmlTextReaderPtr reader,
    const xmlChar * name); -int xmlReaderNewMemory (xmlTextReaderPtr reader,
    const char * buffer,
    int size,
    const char * URL,
    const char * encoding,
    int options); +int xmlTextReaderGetParserColumnNumber (xmlTextReaderPtr reader); const xmlChar * xmlTextReaderConstValue (xmlTextReaderPtr reader); xmlTextReaderPtr xmlNewTextReader (xmlParserInputBufferPtr input,
    const char * URI); xmlChar * xmlTextReaderGetAttributeNo (xmlTextReaderPtr reader,
    int no); -int xmlTextReaderSchemaValidateCtxt (xmlTextReaderPtr reader,
    xmlSchemaValidCtxtPtr ctxt,
    int options); -xmlChar * xmlTextReaderLocalName (xmlTextReaderPtr reader); -xmlNodePtr xmlTextReaderExpand (xmlTextReaderPtr reader); +xmlChar * xmlTextReaderGetAttributeNs (xmlTextReaderPtr reader,
    const xmlChar * localName,
    const xmlChar * namespaceURI); const xmlChar * xmlTextReaderConstName (xmlTextReaderPtr reader); +const xmlChar * xmlTextReaderConstString (xmlTextReaderPtr reader,
    const xmlChar * str); +const xmlChar * xmlTextReaderConstXmlVersion (xmlTextReaderPtr reader); +int xmlTextReaderDepth (xmlTextReaderPtr reader); +xmlChar * xmlTextReaderReadString (xmlTextReaderPtr reader); +int xmlTextReaderIsDefault (xmlTextReaderPtr reader); +int xmlTextReaderMoveToNextAttribute (xmlTextReaderPtr reader); +int xmlReaderNewWalker (xmlTextReaderPtr reader,
    xmlDocPtr doc); +const xmlChar * xmlTextReaderConstPrefix (xmlTextReaderPtr reader); +xmlTextReaderPtr xmlReaderWalker (xmlDocPtr doc); +const xmlChar * xmlTextReaderConstLocalName (xmlTextReaderPtr reader); +int xmlTextReaderNodeType (xmlTextReaderPtr reader); +void xmlFreeTextReader (xmlTextReaderPtr reader); +xmlChar * xmlTextReaderName (xmlTextReaderPtr reader); +int xmlTextReaderRead (xmlTextReaderPtr reader); +int xmlTextReaderIsEmptyElement (xmlTextReaderPtr reader); +int xmlReaderNewMemory (xmlTextReaderPtr reader,
    const char * buffer,
    int size,
    const char * URL,
    const char * encoding,
    int options); +int xmlTextReaderSchemaValidateCtxt (xmlTextReaderPtr reader,
    xmlSchemaValidCtxtPtr ctxt,
    int options); int xmlTextReaderHasValue (xmlTextReaderPtr reader); -xmlNodePtr xmlTextReaderPreserve (xmlTextReaderPtr reader); -int xmlTextReaderAttributeCount (xmlTextReaderPtr reader); -int xmlTextReaderReadState (xmlTextReaderPtr reader); const xmlChar * xmlTextReaderConstBaseUri (xmlTextReaderPtr reader); -const xmlChar * xmlTextReaderConstString (xmlTextReaderPtr reader,
    const xmlChar * str); +xmlChar * xmlTextReaderBaseUri (xmlTextReaderPtr reader); +int xmlTextReaderMoveToAttributeNo (xmlTextReaderPtr reader,
    int no); +int xmlTextReaderLocatorLineNumber (xmlTextReaderLocatorPtr locator); +int xmlTextReaderMoveToAttributeNs (xmlTextReaderPtr reader,
    const xmlChar * localName,
    const xmlChar * namespaceURI); +int xmlTextReaderNext (xmlTextReaderPtr reader); +int xmlTextReaderAttributeCount (xmlTextReaderPtr reader); +xmlChar * xmlTextReaderLookupNamespace (xmlTextReaderPtr reader,
    const xmlChar * prefix); +int xmlTextReaderMoveToElement (xmlTextReaderPtr reader); +xmlTextReaderPtr xmlReaderForIO (xmlInputReadCallback ioread,
    xmlInputCloseCallback ioclose,
    void * ioctx,
    const char * URL,
    const char * encoding,
    int options); +xmlChar * xmlTextReaderReadOuterXml (xmlTextReaderPtr reader); +xmlChar * xmlTextReaderPrefix (xmlTextReaderPtr reader); +int xmlTextReaderReadAttributeValue (xmlTextReaderPtr reader); +int xmlTextReaderNextSibling (xmlTextReaderPtr reader); +typedef void xmlTextReaderErrorFunc (void * arg,
    const char * msg,
    xmlParserSeverities severity,
    xmlTextReaderLocatorPtr locator); +xmlTextReaderPtr xmlReaderForFd (int fd,
    const char * URL,
    const char * encoding,
    int options); +xmlChar * xmlTextReaderGetAttribute (xmlTextReaderPtr reader,
    const xmlChar * name); +xmlChar * xmlTextReaderLocalName (xmlTextReaderPtr reader); +xmlNodePtr xmlTextReaderPreserve (xmlTextReaderPtr reader); +xmlNodePtr xmlTextReaderCurrentNode (xmlTextReaderPtr reader); int xmlTextReaderSetParserProp (xmlTextReaderPtr reader,
    int prop,
    int value); +xmlParserInputBufferPtr xmlTextReaderGetRemainder (xmlTextReaderPtr reader); +void xmlTextReaderSetErrorHandler (xmlTextReaderPtr reader,
    xmlTextReaderErrorFunc f,
    void * arg); +int xmlTextReaderIsNamespaceDecl (xmlTextReaderPtr reader); +int xmlReaderNewDoc (xmlTextReaderPtr reader,
    const xmlChar * cur,
    const char * URL,
    const char * encoding,
    int options); +int xmlTextReaderPreservePattern (xmlTextReaderPtr reader,
    const xmlChar * pattern,
    const xmlChar ** namespaces); +const xmlChar * xmlTextReaderConstXmlLang (xmlTextReaderPtr reader); +void xmlTextReaderGetErrorHandler (xmlTextReaderPtr reader,
    xmlTextReaderErrorFunc * f,
    void ** arg); +void xmlTextReaderSetStructuredErrorHandler (xmlTextReaderPtr reader,
    xmlStructuredErrorFunc f,
    void * arg); +int xmlReaderNewFile (xmlTextReaderPtr reader,
    const char * filename,
    const char * encoding,
    int options); +int xmlTextReaderRelaxNGSetSchema (xmlTextReaderPtr reader,
    xmlRelaxNGPtr schema); +int xmlReaderNewFd (xmlTextReaderPtr reader,
    int fd,
    const char * URL,
    const char * encoding,
    int options); +int xmlTextReaderRelaxNGValidate (xmlTextReaderPtr reader,
    const char * rng); +xmlTextReaderPtr xmlReaderForMemory (const char * buffer,
    int size,
    const char * URL,
    const char * encoding,
    int options); +int xmlTextReaderSetup (xmlTextReaderPtr reader,
    xmlParserInputBufferPtr input,
    const char * URL,
    const char * encoding,
    int options); +long xmlTextReaderByteConsumed (xmlTextReaderPtr reader); +xmlChar * xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator); +xmlChar * xmlTextReaderNamespaceUri (xmlTextReaderPtr reader); +int xmlTextReaderSchemaValidate (xmlTextReaderPtr reader,
    const char * xsd); +int xmlTextReaderStandalone (xmlTextReaderPtr reader);
    @@ -510,8 +511,8 @@ The content of this structure is not made public by the API.
    reader:the xmlTextReaderPtr used
    schema:a precompiled RelaxNG schema
    Returns:0 in case the RelaxNG validation could be (des)activated and -1 in case of error.

    xmlTextReaderRelaxNGValidate ()

    int	xmlTextReaderRelaxNGValidate	(xmlTextReaderPtr reader, 
    const char * rng)
    -

    Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @rng is NULL, then RelaxNG validation is desactivated.

    -
    reader:the xmlTextReaderPtr used
    rng:the path to a RelaxNG schema or NULL
    Returns:0 in case the RelaxNG validation could be (des)activated and -1 in case of error.
    +

    Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @rng is NULL, then RelaxNG validation is deactivated.

    +
    reader:the xmlTextReaderPtr used
    rng:the path to a RelaxNG schema or NULL
    Returns:0 in case the RelaxNG validation could be (de)activated and -1 in case of error.

    xmlTextReaderSchemaValidate ()

    int	xmlTextReaderSchemaValidate	(xmlTextReaderPtr reader, 
    const char * xsd)

    Use W3C XSD schema to validate the document as it is processed. Activation is only possible before the first Read(). If @xsd is NULL, then XML Schema validation is deactivated.

    @@ -536,6 +537,10 @@ The content of this structure is not made public by the API.

    xmlTextReaderSetStructuredErrorHandler ()

    void	xmlTextReaderSetStructuredErrorHandler	(xmlTextReaderPtr reader, 
    xmlStructuredErrorFunc f,
    void * arg)

    Register a callback function that will be called on error and warnings. If @f is NULL, the default error and warning handlers are restored.

    reader:the xmlTextReaderPtr used
    f:the callback function to call on error and warnings
    arg:a user argument to pass to the callback function
    +
    +

    xmlTextReaderSetup ()

    int	xmlTextReaderSetup		(xmlTextReaderPtr reader, 
    xmlParserInputBufferPtr input,
    const char * URL,
    const char * encoding,
    int options)
    +

    Setup an XML reader with new options

    +
    reader:an XML reader
    input:xmlParserInputBufferPtr used to feed the reader, will be destroyed with it.
    URL:the base URL to use for the document
    encoding:the document encoding, or NULL
    options:a combination of xmlParserOption
    Returns:0 in case of success and -1 in case of error.

    xmlTextReaderStandalone ()

    int	xmlTextReaderStandalone		(xmlTextReaderPtr reader)

    Determine the standalone status of the document being read.

    diff --git a/doc/devhelp/libxml2-xpath.html b/doc/devhelp/libxml2-xpath.html index 86b0cc2..8fdd51c 100644 --- a/doc/devhelp/libxml2-xpath.html +++ b/doc/devhelp/libxml2-xpath.html @@ -193,7 +193,7 @@ The content of this structure is not made public by the API. void * user : function to free extra variables int contextSize : the context size int proximityPosition : the proximity position extra stuff for XPointer - int xptr : it this an XPointer context + int xptr : is this an XPointer context? xmlNodePtr here : for here() xmlNodePtr origin : for origin() the set of namespace declarations in scope for the expre xmlHashTablePtr nsHash : The namespaces hash table @@ -205,12 +205,12 @@ The content of this structure is not made public by the API. xmlXPathFuncLookupFunc funcLookupFunc : function lookup func void * funcLookupData : function lookup data temporary namespace lists kept for walking the n xmlNsPtr * tmpNsList : Array of namespaces - int tmpNsNr : number of namespace in scope error reporting mechanism + int tmpNsNr : number of namespaces in scope error reporting mechanism void * userData : user specific data block xmlStructuredErrorFunc error : the callback in case of errors xmlError lastError : the last error - xmlNodePtr debugNode : the source node XSLT dictionnary - xmlDictPtr dict : dictionnary if any + xmlNodePtr debugNode : the source node XSLT dictionary + xmlDictPtr dict : dictionary if any int flags : flags to control compilation Cache for reusal of XPath objects void * cache } xmlXPathContext; diff --git a/doc/devhelp/libxml2.devhelp b/doc/devhelp/libxml2.devhelp index d789934..6a3841c 100644 --- a/doc/devhelp/libxml2.devhelp +++ b/doc/devhelp/libxml2.devhelp @@ -2990,6 +2990,7 @@ + diff --git a/doc/docs.html b/doc/docs.html index 4c5fe55..4bd0663 100644 --- a/doc/docs.html +++ b/doc/docs.html @@ -24,7 +24,7 @@ A:link, A:visited, A:active { text-decoration: underline } documentation explaining how to use the libxml SAX interface.
  • George Lebl wrote an article for IBM developerWorks about using libxml.
  • -
  • Check the TODO +
  • Check the TODO file.
  • Read the 1.x to 2.x upgrade path description. If you are starting a new project using libxml you should diff --git a/doc/downloads.html b/doc/downloads.html index e49f483..efa8c07 100644 --- a/doc/downloads.html +++ b/doc/downloads.html @@ -7,7 +7,7 @@ H1 {font-family: Verdana,Arial,Helvetica} H2 {font-family: Verdana,Arial,Helvetica} H3 {font-family: Verdana,Arial,Helvetica} A:link, A:visited, A:active { text-decoration: underline } -Downloads
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    The XML C parser and toolkit of Gnome

    Downloads

    Main Menu
    Related links

    The latest versions of libxml2 can be found on the xmlsoft.org server ( HTTP, FTP and rsync are available), there is also +Downloads
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    The XML C parser and toolkit of Gnome

    Downloads

    Main Menu
    Related links

    The latest versions of libxml2 can be found on the xmlsoft.org server ( FTP and rsync are available), there are also mirrors (Australia( Web), France) or on the Gnome FTP server as source archive , Antonin Sprinzl also provide a mirror in Austria. (NOTE that you need both the libxml(2) and libxml(2)-devel @@ -24,13 +24,13 @@ Windows binaries made by Igor Zlatovic are available in the HP-UX binaries

  • Bull provides precompiled RPMs for AIX as patr of their GNOME packages
  • -

    If you know other supported binary ports, please contact me.

    Snapshot:

    If you know other supported binary ports, please contact me.

    Snapshot:

    Contributions:

    I do accept external contributions, especially if compiling on another platform, get in touch with the list to upload the package, wrappers for -various languages have been provided, and can be found in the bindings section

    Libxml2 is also available from CVS:

    diff --git a/doc/encoding.html b/doc/encoding.html index 1f4558d..0d37cd3 100644 --- a/doc/encoding.html +++ b/doc/encoding.html @@ -34,7 +34,7 @@ they are clearly labeled as such. For example the following is a wellformed XML document encoded in ISO-8859-1 and using accentuated letters that we French like for both markup and content:

    <?xml version="1.0" encoding="ISO-8859-1"?>
     <très>là</très>

    Having internationalization support in libxml2 means the following:

    • the document is properly parsed
    • -
    • informations about it's encoding are saved
    • +
    • information about it's encoding is saved
    • it can be modified
    • it can be saved in its original encoding
    • it can also be saved in another encoding supported by libxml2 (for diff --git a/doc/example.html b/doc/example.html index 894f03a..295e141 100644 --- a/doc/example.html +++ b/doc/example.html @@ -183,4 +183,4 @@ data structure definitions, a set of XML examples or an XML DTD and produce the code needed to import and export the content between C data and XML storage. This is left as an exercise to the reader :-)

      Feel free to use the code for the full C parsing example as a template, it is also available with Makefile in the -Gnome CVS base under gnome-xml/example

      Daniel Veillard

    +Gnome SVN base under libxml2/example

    Daniel Veillard

  • diff --git a/doc/guidelines.html b/doc/guidelines.html index 9cb6636..06f9692 100644 --- a/doc/guidelines.html +++ b/doc/guidelines.html @@ -367,7 +367,7 @@ ensure a smooth evolution of the resource and instances.

    Daniel Veillard

    -

    $Id: guidelines.html,v 1.6 2004/12/26 21:01:48 veillard Exp $

    +

    $Id: guidelines.html 2912 2004-12-26 21:01:48Z veillard $

    diff --git a/doc/html/index.html b/doc/html/index.html new file mode 100644 index 0000000..4a4962a --- /dev/null +++ b/doc/html/index.html @@ -0,0 +1,13 @@ + + +Reference Manual for libxml2
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Reference Manual for libxml2

    API Menu
    API Indexes
    Related links

    Table of Contents

    • DOCBparser: old DocBook SGML parser
    • HTMLparser: interface for an HTML 4.0 non-verifying parser
    • HTMLtree: specific APIs to process HTML tree, especially serialization
    • SAX: Old SAX version 1 handler, deprecated
    • SAX2: SAX2 parser interface used to build the DOM tree
    • c14n: Provide Canonical XML and Exclusive XML Canonicalization
    • catalog: interfaces to the Catalog handling system
    • chvalid: Unicode character range checking
    • debugXML: Tree debugging APIs
    • dict: string dictionnary
    • encoding: interface for the encoding conversion functions
    • entities: interface for the XML entities handling
    • globals: interface for all global variables of the library
    • hash: Chained hash tables
    • list: lists interfaces
    • nanoftp: minimal FTP implementation
    • nanohttp: minimal HTTP implementation
    • parser: the core parser module
    • parserInternals: internals routines exported by the parser.
    • pattern: pattern expression handling
    • relaxng: implementation of the Relax-NG validation
    • schemasInternals: internal interfaces for XML Schemas
    • schematron: XML Schemastron implementation
    • threads: interfaces for thread handling
    • tree: interfaces for tree manipulation
    • uri: library of generic URI related routines
    • valid: The DTD validation
    • xinclude: implementation of XInclude
    • xlink: unfinished XLink detection module
    • xmlIO: interface for the I/O interfaces used by the parser
    • xmlautomata: API to build regexp automata
    • xmlerror: error handling
    • xmlexports: macros for marking symbols as exportable/importable.
    • xmlmemory: interface for the memory allocator
    • xmlmodule: dynamic module loading
    • xmlreader: the XMLReader implementation
    • xmlregexp: regular expressions handling
    • xmlsave: the XML document serializer
    • xmlschemas: incomplete XML Schemas structure implementation
    • xmlschemastypes: implementation of XML Schema Datatypes
    • xmlstring: set of routines to process strings
    • xmlunicode: Unicode character APIs
    • xmlversion: compile-time version informations
    • xmlwriter: text writing API for XML
    • xpath: XML Path Language implementation
    • xpathInternals: internal interfaces for XML Path Language implementation
    • xpointer: API to handle XML Pointers

    Daniel Veillard

    diff --git a/doc/html/libxml-parserInternals.html b/doc/html/libxml-parserInternals.html index f725f29..97de5a5 100644 --- a/doc/html/libxml-parserInternals.html +++ b/doc/html/libxml-parserInternals.html @@ -273,7 +273,7 @@ void xmlEntityReferenceFunc (xmlEntityP

    parse and handle entity references in content, depending on the SAX interface, this may end-up in a call to character() if this is a CharRef, a predefined entity, if there is no reference() callback. or if the parser was asked to switch to that mode. [67] Reference ::= EntityRef | CharRef

    ctxt:an XML parser context

    Function: xmlParseSDDecl

    int	xmlParseSDDecl			(xmlParserCtxtPtr ctxt)

    parse the XML standalone declaration [32] SDDecl ::= S 'standalone' Eq (("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no')'"')) [ VC: Standalone Document Declaration ] TODO The standalone document declaration must have the value "no" if any external markup declarations contain declarations of: - attributes with default values, if elements to which these attributes apply appear in the document without specifications of values for these attributes, or - entities (other than amp, lt, gt, apos, quot), if references to those entities appear in the document, or - attributes with values subject to normalization, where the attribute appears in the document with a value which will change as a result of normalization, or - element types with element content, if white space occurs directly within any instance of those types.

    -
    ctxt:an XML parser context
    Returns:1 if standalone, 0 otherwise

    Function: xmlParseStartTag

    const xmlChar *	xmlParseStartTag	(xmlParserCtxtPtr ctxt)
    +
    ctxt:an XML parser context
    Returns:1 if standalone="yes" 0 if standalone="no" -2 if standalone attribute is missing or invalid (A standalone value of -2 means that the XML declaration was found, but no value was specified for the standalone attribute).

    Function: xmlParseStartTag

    const xmlChar *	xmlParseStartTag	(xmlParserCtxtPtr ctxt)

    parse a start of tag either for rule element or EmptyElement. In both case we don't parse the tag closing chars. [40] STag ::= '<' Name (S Attribute)* S? '>' [ WFC: Unique Att Spec ] No attribute name may appear more than once in the same start-tag or empty-element tag. [44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>' [ WFC: Unique Att Spec ] No attribute name may appear more than once in the same start-tag or empty-element tag. With namespace: [NS 8] STag ::= '<' QName (S Attribute)* S? '>' [NS 10] EmptyElement ::= '<' QName (S Attribute)* S? '/>'

    ctxt:an XML parser context
    Returns:the element name parsed

    Function: xmlParseSystemLiteral

    xmlChar *	xmlParseSystemLiteral	(xmlParserCtxtPtr ctxt)

    parse an XML Literal [11] SystemLiteral ::= ('"' [^"]* '"') | ("'" [^']* "'")

    diff --git a/doc/html/libxml-tree.html b/doc/html/libxml-tree.html index 26ec73b..7a5c31b 100644 --- a/doc/html/libxml-tree.html +++ b/doc/html/libxml-tree.html @@ -820,9 +820,9 @@ A:link, A:visited, A:active { text-decoration: underline }
    parent:the parent node
    ns:a namespace if any
    name:the name of the child
    content:the text content of the child if any.
    Returns:a pointer to the new node object.

    Function: xmlNewTextLen

    xmlNodePtr	xmlNewTextLen		(const xmlChar * content, 
    int len)

    Creation of a new text node with an extra parameter for the content's length

    content:the text content
    len:the text len.
    Returns:a pointer to the new node object.

    Function: xmlNodeAddContent

    void	xmlNodeAddContent		(xmlNodePtr cur, 
    const xmlChar * content)
    -

    Append the extra substring to the node content.

    +

    Append the extra substring to the node content. NOTE: In contrast to xmlNodeSetContent(), @content is supposed to be raw text, so unescaped XML special chars are allowed, entity references are not supported.

    cur:the node being modified
    content:extra content

    Function: xmlNodeAddContentLen

    void	xmlNodeAddContentLen		(xmlNodePtr cur, 
    const xmlChar * content,
    int len)
    -

    Append the extra substring to the node content.

    +

    Append the extra substring to the node content. NOTE: In contrast to xmlNodeSetContentLen(), @content is supposed to be raw text, so unescaped XML special chars are allowed, entity references are not supported.

    cur:the node being modified
    content:extra content
    len:the size of @content

    Function: xmlNodeBufGetContent

    int	xmlNodeBufGetContent		(xmlBufferPtr buffer, 
    xmlNodePtr cur)

    Read the value of a node @cur, this can be either the text carried directly by this node if it's a TEXT node or the aggregate string of the values carried by this node child's (TEXT and ENTITY_REF). Entity references are substituted. Fills up the buffer @buffer with this value

    buffer:a buffer
    cur:the node being read
    Returns:0 in case of success and -1 in case of error.

    Function: xmlNodeDump

    int	xmlNodeDump			(xmlBufferPtr buf, 
    xmlDocPtr doc,
    xmlNodePtr cur,
    int level,
    int format)
    @@ -846,9 +846,9 @@ A:link, A:visited, A:active { text-decoration: underline }
    doc:the document
    list:a Node list
    inLine:should we replace entity contents or show their external form
    Returns:a pointer to the string copy, the caller must free it with xmlFree().

    Function: xmlNodeSetBase

    void	xmlNodeSetBase			(xmlNodePtr cur, 
    const xmlChar * uri)

    Set (or reset) the base URI of a node, i.e. the value of the xml:base attribute.

    cur:the node being changed
    uri:the new base URI

    Function: xmlNodeSetContent

    void	xmlNodeSetContent		(xmlNodePtr cur, 
    const xmlChar * content)
    -

    Replace the content of a node.

    +

    Replace the content of a node. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars().

    cur:the node being modified
    content:the new value of the content

    Function: xmlNodeSetContentLen

    void	xmlNodeSetContentLen		(xmlNodePtr cur, 
    const xmlChar * content,
    int len)
    -

    Replace the content of a node.

    +

    Replace the content of a node. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars().

    cur:the node being modified
    content:the new value of the content
    len:the size of @content

    Function: xmlNodeSetLang

    void	xmlNodeSetLang			(xmlNodePtr cur, 
    const xmlChar * lang)

    Set the language of a node, i.e. the values of the xml:lang attribute.

    cur:the node being changed
    lang:the language description

    Function: xmlNodeSetName

    void	xmlNodeSetName			(xmlNodePtr cur, 
    const xmlChar * name)
    diff --git a/doc/html/libxml-xmlreader.html b/doc/html/libxml-xmlreader.html index fd525de..b69d759 100644 --- a/doc/html/libxml-xmlreader.html +++ b/doc/html/libxml-xmlreader.html @@ -102,6 +102,7 @@ void xmlTextReaderErrorFunc (void * arg,
    int	xmlTextReaderSetParserProp	(xmlTextReaderPtr reader, 
    int prop,
    int value)
    int	xmlTextReaderSetSchema		(xmlTextReaderPtr reader, 
    xmlSchemaPtr schema)
    void	xmlTextReaderSetStructuredErrorHandler	(xmlTextReaderPtr reader, 
    xmlStructuredErrorFunc f,
    void * arg)
    +
    int	xmlTextReaderSetup		(xmlTextReaderPtr reader, 
    xmlParserInputBufferPtr input,
    const char * URL,
    const char * encoding,
    int options)
    int	xmlTextReaderStandalone		(xmlTextReaderPtr reader)
    xmlChar *	xmlTextReaderValue	(xmlTextReaderPtr reader)
    xmlChar *	xmlTextReaderXmlLang	(xmlTextReaderPtr reader)
    @@ -302,8 +303,8 @@ void xmlTextReaderErrorFunc (void * arg,
    const char * msg,
    reader:the xmlTextReaderPtr used
    Returns:a string containing the contents of the Element or Text node, or NULL if the reader is positioned on any other type of node. The string must be deallocated by the caller.

    Function: xmlTextReaderRelaxNGSetSchema

    int	xmlTextReaderRelaxNGSetSchema	(xmlTextReaderPtr reader, 
    xmlRelaxNGPtr schema)

    Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @schema is NULL, then RelaxNG validation is desactivated. @ The @schema should not be freed until the reader is deallocated or its use has been deactivated.

    reader:the xmlTextReaderPtr used
    schema:a precompiled RelaxNG schema
    Returns:0 in case the RelaxNG validation could be (des)activated and -1 in case of error.

    Function: xmlTextReaderRelaxNGValidate

    int	xmlTextReaderRelaxNGValidate	(xmlTextReaderPtr reader, 
    const char * rng)
    -

    Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @rng is NULL, then RelaxNG validation is desactivated.

    -
    reader:the xmlTextReaderPtr used
    rng:the path to a RelaxNG schema or NULL
    Returns:0 in case the RelaxNG validation could be (des)activated and -1 in case of error.

    Function: xmlTextReaderSchemaValidate

    int	xmlTextReaderSchemaValidate	(xmlTextReaderPtr reader, 
    const char * xsd)
    +

    Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @rng is NULL, then RelaxNG validation is deactivated.

    +
    reader:the xmlTextReaderPtr used
    rng:the path to a RelaxNG schema or NULL
    Returns:0 in case the RelaxNG validation could be (de)activated and -1 in case of error.

    Function: xmlTextReaderSchemaValidate

    int	xmlTextReaderSchemaValidate	(xmlTextReaderPtr reader, 
    const char * xsd)

    Use W3C XSD schema to validate the document as it is processed. Activation is only possible before the first Read(). If @xsd is NULL, then XML Schema validation is deactivated.

    reader:the xmlTextReaderPtr used
    xsd:the path to a W3C XSD schema or NULL
    Returns:0 in case the schemas validation could be (de)activated and -1 in case of error.

    Function: xmlTextReaderSchemaValidateCtxt

    int	xmlTextReaderSchemaValidateCtxt	(xmlTextReaderPtr reader, 
    xmlSchemaValidCtxtPtr ctxt,
    int options)

    Use W3C XSD schema context to validate the document as it is processed. Activation is only possible before the first Read(). If @ctxt is NULL, then XML Schema validation is deactivated.

    @@ -315,7 +316,9 @@ void xmlTextReaderErrorFunc (void * arg,
    const char * msg,

    Use XSD Schema to validate the document as it is processed. Activation is only possible before the first Read(). if @schema is NULL, then Schema validation is desactivated. @ The @schema should not be freed until the reader is deallocated or its use has been deactivated.

    reader:the xmlTextReaderPtr used
    schema:a precompiled Schema schema
    Returns:0 in case the Schema validation could be (des)activated and -1 in case of error.

    Function: xmlTextReaderSetStructuredErrorHandler

    void	xmlTextReaderSetStructuredErrorHandler	(xmlTextReaderPtr reader, 
    xmlStructuredErrorFunc f,
    void * arg)

    Register a callback function that will be called on error and warnings. If @f is NULL, the default error and warning handlers are restored.

    -
    reader:the xmlTextReaderPtr used
    f:the callback function to call on error and warnings
    arg:a user argument to pass to the callback function

    Function: xmlTextReaderStandalone

    int	xmlTextReaderStandalone		(xmlTextReaderPtr reader)
    +
    reader:the xmlTextReaderPtr used
    f:the callback function to call on error and warnings
    arg:a user argument to pass to the callback function

    Function: xmlTextReaderSetup

    int	xmlTextReaderSetup		(xmlTextReaderPtr reader, 
    xmlParserInputBufferPtr input,
    const char * URL,
    const char * encoding,
    int options)
    +

    Setup an XML reader with new options

    +
    reader:an XML reader
    input:xmlParserInputBufferPtr used to feed the reader, will be destroyed with it.
    URL:the base URL to use for the document
    encoding:the document encoding, or NULL
    options:a combination of xmlParserOption
    Returns:0 in case of success and -1 in case of error.

    Function: xmlTextReaderStandalone

    int	xmlTextReaderStandalone		(xmlTextReaderPtr reader)

    Determine the standalone status of the document being read.

    reader:the xmlTextReaderPtr used
    Returns:1 if the document was declared to be standalone, 0 if it was declared to be not standalone, or -1 if the document did not specify its standalone status or in case of error.

    Function: xmlTextReaderValue

    xmlChar *	xmlTextReaderValue	(xmlTextReaderPtr reader)

    Provides the text value of the node if present

    diff --git a/doc/html/libxml-xpath.html b/doc/html/libxml-xpath.html index 6aca3c3..19225da 100644 --- a/doc/html/libxml-xpath.html +++ b/doc/html/libxml-xpath.html @@ -122,7 +122,7 @@ The content of this structure is not made public by the API. void * user : function to free extra variables int contextSize : the context size int proximityPosition : the proximity position extra stuff for - int xptr : it this an XPointer context + int xptr : is this an XPointer context? xmlNodePtr here : for here() xmlNodePtr origin : for origin() the set of namespace decla xmlHashTablePtr nsHash : The namespaces hash table @@ -134,12 +134,12 @@ The content of this structure is not made public by the API. xmlXPathFuncLookupFunc funcLookupFunc : function lookup func void * funcLookupData : function lookup data temporary namespac xmlNsPtr * tmpNsList : Array of namespaces - int tmpNsNr : number of namespace in scope error repo + int tmpNsNr : number of namespaces in scope error rep void * userData : user specific data block xmlStructuredErrorFunc error : the callback in case of errors xmlError lastError : the last error - xmlNodePtr debugNode : the source node XSLT dictionnary - xmlDictPtr dict : dictionnary if any + xmlNodePtr debugNode : the source node XSLT dictionary + xmlDictPtr dict : dictionary if any int flags : flags to control compilation Cache for void * cache }

    Enum xmlXPathError

    Enum xmlXPathError {
    diff --git a/doc/index.html b/doc/index.html
    index 21d61eb..7664c2a 100644
    --- a/doc/index.html
    +++ b/doc/index.html
    @@ -277,7 +277,7 @@ conformance statement about it at the moment.

    --> -
  • How to validate a document a posteriori ? +
  • How to validate a document a posteriori ?

    It is possible to validate documents which had not been validated at initial parsing time or documents which have been built from scratch using the API. Use the

  • -
  • So what is this funky "xmlChar" used all the time? +
  • So what is this funky "xmlChar" used all the time?

    It is a null terminated sequence of utf-8 characters. And only utf-8! You need to convert strings encoded in different ways to utf-8 before passing them to the API. This can be accomplished with the iconv library @@ -525,7 +531,7 @@ xmlDtdPtr dtd = xmlParseDTD(NULL, filename_of_dtd); /* parse the DTD */

  • George Lebl wrote an article for IBM developerWorks about using libxml.
  • -
  • Check the TODO +
  • Check the TODO file.
  • Read the 1.x to 2.x upgrade path description. If you are starting a new project using libxml you should @@ -545,7 +551,7 @@ is still open. Be sure to specify that the bug is for the package libxml2.

    For small problems you can try to get help on IRC, the #xml channel on irc.gnome.org (port 6667) usually have a few person subscribed which may help -(but there is no garantee and if a real issue is raised it should go on the +(but there is no guarantee and if a real issue is raised it should go on the mailing-list for archival).

    There is also a mailing-list emails with -a legal warning asking to not copy or redistribute freely the informations +a legal warning asking to not copy or redistribute freely the information they contain are NOT acceptable for the mailing-list, such mail will as much as possible be discarded automatically, and are less likely to be answered if they made it to the list, DO NOT post to the list from an email address where such legal requirements are automatically added, get private paying support if you can't share -informations.

    +information.

    Check the following before posting:

    @@ -604,7 +610,7 @@ answer a given question, ask on the list.

    others" and is not welcome. I will automatically Carbon-Copy the xml@gnome.org mailing list for any technical reply made about libxml2 or libxslt.
  • -
  • There is no garantee of support, if +
  • There is no guarantee of support. If your question remains unanswered after a week, repost it, making sure you gave all the detail needed and the information requested.
  • Failing to provide information as requested or double checking first @@ -651,8 +657,7 @@ database:

    The latest versions of libxml2 can be found on the xmlsoft.org server ( HTTP, FTP and rsync are available), there is also +href="ftp://xmlsoft.org/libxml2/">FTP and rsync are available), there are also mirrors (Australia( Web), France) or on the contact me.

    Snapshot:

    The change log describes the recents commits -to the CVS code base.

    - -

    There is the list of public releases:

    - +to the SVN code base.

    + +

    Here is the list of public releases:

    + +

    2.6.28: Apr 17 2007

    +
      +
    • Documentation: comment fixes (Markus Keim), xpath comments fixes too + (James Dennett)
    • +
    • Bug fixes: XPath bug (William Brack), HTML parser autoclose stack usage + (Usamah Malik), various regexp bug fixes (DV and William), path conversion + on Windows (Igor Zlatkovic), htmlCtxtReset fix (Michael Day), XPath + principal node of axis bug, HTML serialization of some codepoint + (Steven Rainwater), user data propagation in XInclude (Michael Day), + standalone and XML decl detection (Michael Day), Python id ouptut + for some id, fix the big python string memory leak, URI parsing fixes + (Stéphane Bidoul and William), long comments parsing bug (William), + concurrent threads initialization (Ted Phelps), invalid char + in text XInclude (William), XPath memory leak (William), tab in + python problems (Andreas Hanke), XPath node comparison error + (Oleg Paraschenko), cleanup patch for reader (Julien Reichel), + XML Schemas attribute group (William), HTML parsing problem (William), + fix char 0x2d in regexps (William), regexp quantifier range with + min occurs of 0 (William), HTML script/style parsing (Mike Day)
    • +
    • Improvement: make xmlTextReaderSetup() public
    • +
    • Compilation and postability: fix a missing include problem (William), + __ss_familly on AIX again (Björn Wiberg), compilation without zlib + (Michael Day), catalog patch for Win32 (Christian Ehrlicher), + Windows CE fixes (Andreas Stricke)
    • +
    • Various CVS to SVN infrastructure changes
    • +

    2.6.27: Oct 25 2006

    • Portability fixes: file names on windows (Roland Schwingel, @@ -1430,7 +1461,7 @@ to the CVS code base.

    • New xmlWriter API provided by Alfred Mickautsch
    • Schemas: base64 support by Anthony Carrico
    • Parser<->HTTP integration fix, proper processing of the Mime-Type - and charset informations if available.
    • + and charset information if available.
    • Relax-NG: bug fixes including the one reported by Martijn Faassen and zeroOrMore, better error reporting.
    • Python bindings (Stéphane Bidoul), never use stdout for errors @@ -1667,7 +1698,7 @@ to the CVS code base.

    • Fix for HTTP URL escaping problem
    • added an TextXmlReader (C#) like API (work in progress)
    • Rewrote the API in XML generation script, includes a C parser and saves - more informations needed for C# bindings
    • + more information needed for C# bindings

    2.4.28: Nov 22 2002

    @@ -2560,7 +2591,7 @@ language for transforming XML documents into other XML documents (or HTML/textual output).

    A separate library called libxslt is available implementing XSLT-1.0 for -libxml2. This module "libxslt" too can be found in the Gnome CVS base.

    +libxml2. This module "libxslt" too can be found in the Gnome SVN base.

    You can check the progresses on the libxslt Changelog.

    @@ -2613,7 +2644,7 @@ or libxslt wrappers or bindings:

  • Steve Ball and contributors maintains libxml2 and libxslt bindings for Tcl.
  • -
  • libxml2 and libxslt is the default XML library for PHP5.
  • +
  • libxml2 and libxslt are the default XML libraries for PHP5.
  • LibxmlJ is an effort to create a 100% JAXP-compatible Java wrapper for libxml2 and libxslt as part of GNU ClasspathX project.
  • @@ -2739,8 +2770,8 @@ the error messages when trying to validate the invalid document.

    The main interest of that test is the creation of a parser context with createFileParserCtxt() and how the behaviour can be changed before calling -parseDocument() . Similarly the informations resulting from the parsing phase -are also available using context methods.

    +parseDocument() . Similarly the information resulting from the parsing phase +is also available using context methods.

    Contexts like nodes are defined as class and the libxml2 wrappers maps the C function interfaces in terms of objects method as much as possible. The @@ -3340,7 +3371,7 @@ or call a specific routine when a given block number is allocated:

    href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMemStrdupLoc() are the memory debugging replacement allocation routines
  • xmlMemoryDump - () dumps all the informations about the allocated memory block lefts + () dumps all the information about the allocated memory block lefts in the .memdump file
  • @@ -3352,7 +3383,7 @@ allocations use (some libc implementations are known to be far too permissive resulting in major portability problems!).

    If the .memdump reports a leak, it displays the allocation function and -also tries to give some informations about the content and structure of the +also tries to give some information about the content and structure of the allocated blocks left. This is sufficient in most cases to find the culprit, but not always. Assuming the allocation problem is reproducible, it is possible to find more easily:

    @@ -3455,7 +3486,7 @@ French like for both markup and content:

    Having internationalization support in libxml2 means the following:

    • the document is properly parsed
    • -
    • informations about it's encoding are saved
    • +
    • information about it's encoding is saved
    • it can be modified
    • it can be saved in its original encoding
    • it can also be saved in another encoding supported by libxml2 (for @@ -3707,7 +3738,7 @@ the interfaces to the libxml2 I/O system. This consists of 4 main parts:

      xmlSetExternalEntityLoader(). Check the example.
    • Input I/O buffers which are a commodity structure used by the parser(s) - input layer to handle fetching the informations to feed the parser. This + input layer to handle fetching the information to feed the parser. This provides buffering and is also a placeholder where the encoding converters to UTF8 are piggy-backed.
    • Output I/O buffers are similar to the Input ones and fulfill similar @@ -4008,7 +4039,7 @@ default catalog

      How to debug catalog processing:

      Setting up the XML_DEBUG_CATALOG environment variable will -make libxml2 output debugging informations for each catalog operations, for +make libxml2 output debugging information for each catalog operations, for example:

      orchis:~/XML -> xmllint --memory --noout test/ent2
       warning: failed to load external entity "title.xml"
      @@ -4210,7 +4241,7 @@ literature to point at:

      • You can find a good rant from Norm Walsh about the - need for catalogs, it provides a lot of context informations even if + need for catalogs, it provides a lot of context information even if I don't agree with everything presented. Norm also wrote a more recent article XML @@ -4763,10 +4794,10 @@ manipulate XML files within Gnome since it won't expose the internal structure.

        The current DOM implementation on top of libxml2 is the gdome2 Gnome module, this +href="http:///svn.gnome.org/viewcvs/gdome2/trunk/">gdome2 Gnome module, this is a full DOM interface, thanks to Paolo Casarini, check the Gdome2 homepage for more -informations.

        +href="http://gdome2.cs.unibo.it/">Gdome2 homepage for more +information.

        A real example

        @@ -4963,7 +4994,7 @@ storage. This is left as an exercise to the reader :-)

        Feel free to use the code for the full C parsing example as a template, it is also available with Makefile in the -Gnome CVS base under gnome-xml/example

        +Gnome SVN base under libxml2/example

        Contributions

          diff --git a/doc/xmlcatalog_man.xml b/doc/xmlcatalog_man.xml index 8b45d44..08d3a41 100644 --- a/doc/xmlcatalog_man.xml +++ b/doc/xmlcatalog_man.xml @@ -26,7 +26,7 @@ - $Date: 2006/08/21 08:34:11 $ + $Date: 2006-08-21 10:34:11 +0200 (Mon, 21 Aug 2006) $ diff --git a/doc/xmlio.html b/doc/xmlio.html index 60188df..1e6f6fc 100644 --- a/doc/xmlio.html +++ b/doc/xmlio.html @@ -22,7 +22,7 @@ the interfaces to the libxml2 I/O system. This consists of 4 main parts:

            xmlSetExternalEntityLoader(). Check the example.
          • Input I/O buffers which are a commodity structure used by the parser(s) - input layer to handle fetching the informations to feed the parser. This + input layer to handle fetching the information to feed the parser. This provides buffering and is also a placeholder where the encoding converters to UTF8 are piggy-backed.
          • Output I/O buffers are similar to the Input ones and fulfill similar diff --git a/doc/xmllint.xml b/doc/xmllint.xml index 9757675..f9f4692 100644 --- a/doc/xmllint.xml +++ b/doc/xmllint.xml @@ -46,7 +46,7 @@ - $Date: 2006/08/21 08:34:11 $ + $Date: 2006-08-21 10:34:11 +0200 (Mon, 21 Aug 2006) $ diff --git a/doc/xmlmem.html b/doc/xmlmem.html index 58c2987..425ce23 100644 --- a/doc/xmlmem.html +++ b/doc/xmlmem.html @@ -49,7 +49,7 @@ or call a specific routine when a given block number is allocated:

            • xmlMemStrdupLoc() are the memory debugging replacement allocation routines
            • xmlMemoryDump - () dumps all the informations about the allocated memory block lefts + () dumps all the information about the allocated memory block lefts in the .memdump file

            When developing libxml2 memory debug is enabled, the tests programs call xmlMemoryDump () and the "make test" regression tests will check for any @@ -57,7 +57,7 @@ memory leak during the full regression test sequence, this helps a lot ensuring that libxml2 does not leak memory and bullet proof memory allocations use (some libc implementations are known to be far too permissive resulting in major portability problems!).

            If the .memdump reports a leak, it displays the allocation function and -also tries to give some informations about the content and structure of the +also tries to give some information about the content and structure of the allocated blocks left. This is sufficient in most cases to find the culprit, but not always. Assuming the allocation problem is reproducible, it is possible to find more easily:

            1. write down the block number xxxx not allocated
            2. diff --git a/doc/xmlreader.html b/doc/xmlreader.html index b8382a8..416f047 100644 --- a/doc/xmlreader.html +++ b/doc/xmlreader.html @@ -468,7 +468,7 @@ process to the successor or return 0 if the document end is reached.

              Daniel Veillard

              -

              $Id: xmlreader.html,v 1.9 2005/10/18 19:11:54 veillard Exp $

              +

              $Id: xmlreader.html 3320 2005-10-18 19:11:55Z veillard $

              diff --git a/elfgcchack.h b/elfgcchack.h index 741f806..cd9605c 100644 --- a/elfgcchack.h +++ b/elfgcchack.h @@ -481,6 +481,18 @@ extern __typeof (htmlNewDocNoDtD) htmlNewDocNoDtD__internal_alias __attribute((v #endif #endif +#if defined(LIBXML_HTML_ENABLED) +#ifdef bottom_HTMLparser +#undef htmlNewParserCtxt +extern __typeof (htmlNewParserCtxt) htmlNewParserCtxt __attribute((alias("htmlNewParserCtxt__internal_alias"))); +#else +#ifndef htmlNewParserCtxt +extern __typeof (htmlNewParserCtxt) htmlNewParserCtxt__internal_alias __attribute((visibility("hidden"))); +#define htmlNewParserCtxt htmlNewParserCtxt__internal_alias +#endif +#endif +#endif + #if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) #ifdef bottom_HTMLtree #undef htmlNodeDump @@ -3999,7 +4011,7 @@ extern __typeof (xmlGetNodePath) xmlGetNodePath__internal_alias __attribute((vis #endif #endif -#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) #ifdef bottom_tree #undef xmlGetNsList extern __typeof (xmlGetNsList) xmlGetNsList __attribute((alias("xmlGetNsList__internal_alias"))); @@ -7633,6 +7645,16 @@ extern __typeof (xmlParserWarning) xmlParserWarning__internal_alias __attribute( #endif #endif +#ifdef bottom_uri +#undef xmlPathToURI +extern __typeof (xmlPathToURI) xmlPathToURI __attribute((alias("xmlPathToURI__internal_alias"))); +#else +#ifndef xmlPathToURI +extern __typeof (xmlPathToURI) xmlPathToURI__internal_alias __attribute((visibility("hidden"))); +#define xmlPathToURI xmlPathToURI__internal_alias +#endif +#endif + #if defined(LIBXML_PATTERN_ENABLED) #ifdef bottom_pattern #undef xmlPatternFromRoot @@ -8545,7 +8567,6 @@ extern __typeof (xmlRemoveID) xmlRemoveID__internal_alias __attribute((visibilit #endif #endif -#if defined(LIBXML_TREE_ENABLED) #ifdef bottom_tree #undef xmlRemoveProp extern __typeof (xmlRemoveProp) xmlRemoveProp __attribute((alias("xmlRemoveProp__internal_alias"))); @@ -8555,7 +8576,6 @@ extern __typeof (xmlRemoveProp) xmlRemoveProp__internal_alias __attribute((visib #define xmlRemoveProp xmlRemoveProp__internal_alias #endif #endif -#endif #ifdef bottom_valid #undef xmlRemoveRef @@ -11661,6 +11681,18 @@ extern __typeof (xmlTextReaderSetStructuredErrorHandler) xmlTextReaderSetStructu #endif #endif +#if defined(LIBXML_READER_ENABLED) +#ifdef bottom_xmlreader +#undef xmlTextReaderSetup +extern __typeof (xmlTextReaderSetup) xmlTextReaderSetup __attribute((alias("xmlTextReaderSetup__internal_alias"))); +#else +#ifndef xmlTextReaderSetup +extern __typeof (xmlTextReaderSetup) xmlTextReaderSetup__internal_alias __attribute((visibility("hidden"))); +#define xmlTextReaderSetup xmlTextReaderSetup__internal_alias +#endif +#endif +#endif + #if defined(LIBXML_READER_ENABLED) #ifdef bottom_xmlreader #undef xmlTextReaderStandalone @@ -15053,7 +15085,7 @@ extern __typeof (xmlValidateElementDecl) xmlValidateElementDecl__internal_alias #endif #endif -#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED) +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) #ifdef bottom_tree #undef xmlValidateNCName extern __typeof (xmlValidateNCName) xmlValidateNCName __attribute((alias("xmlValidateNCName__internal_alias"))); @@ -15305,6 +15337,18 @@ extern __typeof (xmlXIncludeProcessFlags) xmlXIncludeProcessFlags__internal_alia #endif #endif +#if defined(LIBXML_XINCLUDE_ENABLED) +#ifdef bottom_xinclude +#undef xmlXIncludeProcessFlagsData +extern __typeof (xmlXIncludeProcessFlagsData) xmlXIncludeProcessFlagsData __attribute((alias("xmlXIncludeProcessFlagsData__internal_alias"))); +#else +#ifndef xmlXIncludeProcessFlagsData +extern __typeof (xmlXIncludeProcessFlagsData) xmlXIncludeProcessFlagsData__internal_alias __attribute((visibility("hidden"))); +#define xmlXIncludeProcessFlagsData xmlXIncludeProcessFlagsData__internal_alias +#endif +#endif +#endif + #if defined(LIBXML_XINCLUDE_ENABLED) #ifdef bottom_xinclude #undef xmlXIncludeProcessNode @@ -15605,6 +15649,18 @@ extern __typeof (xmlXPathCompiledEval) xmlXPathCompiledEval__internal_alias __at #endif #endif +#if defined(LIBXML_XPATH_ENABLED) +#ifdef bottom_xpath +#undef xmlXPathCompiledEvalToBoolean +extern __typeof (xmlXPathCompiledEvalToBoolean) xmlXPathCompiledEvalToBoolean __attribute((alias("xmlXPathCompiledEvalToBoolean__internal_alias"))); +#else +#ifndef xmlXPathCompiledEvalToBoolean +extern __typeof (xmlXPathCompiledEvalToBoolean) xmlXPathCompiledEvalToBoolean__internal_alias __attribute((visibility("hidden"))); +#define xmlXPathCompiledEvalToBoolean xmlXPathCompiledEvalToBoolean__internal_alias +#endif +#endif +#endif + #if defined(LIBXML_XPATH_ENABLED) #ifdef bottom_xpath #undef xmlXPathConcatFunction @@ -15629,6 +15685,18 @@ extern __typeof (xmlXPathContainsFunction) xmlXPathContainsFunction__internal_al #endif #endif +#if defined(LIBXML_XPATH_ENABLED) +#ifdef bottom_xpath +#undef xmlXPathContextSetCache +extern __typeof (xmlXPathContextSetCache) xmlXPathContextSetCache __attribute((alias("xmlXPathContextSetCache__internal_alias"))); +#else +#ifndef xmlXPathContextSetCache +extern __typeof (xmlXPathContextSetCache) xmlXPathContextSetCache__internal_alias __attribute((visibility("hidden"))); +#define xmlXPathContextSetCache xmlXPathContextSetCache__internal_alias +#endif +#endif +#endif + #if defined(LIBXML_XPATH_ENABLED) #ifdef bottom_xpath #undef xmlXPathConvertBoolean diff --git a/gentest.py b/gentest.py index 8c143af..4538eb8 100755 --- a/gentest.py +++ b/gentest.py @@ -819,11 +819,14 @@ test_%s(void) { i = 0; for arg in t_args: (nam, type, rtype, crtype, info) = arg; - # - test.write(" des_%s(n_%s, " % (type, nam)) - if rtype != crtype: - test.write("(%s)" % rtype) - test.write("%s, %d);\n" % (nam, i)) + # This is a hack to prevent generating a destructor for the + # 'input' argument in xmlTextReaderSetup. There should be + # a better, more generic way to do this! + if string.find(info, 'destroy') == -1: + test.write(" des_%s(n_%s, " % (type, nam)) + if rtype != crtype: + test.write("(%s)" % rtype) + test.write("%s, %d);\n" % (nam, i)) i = i + 1; test.write(" xmlResetLastError();\n"); diff --git a/include/libxml/tree.h b/include/libxml/tree.h index 321280e..0e1d47c 100644 --- a/include/libxml/tree.h +++ b/include/libxml/tree.h @@ -503,7 +503,12 @@ struct _xmlDoc { /* End of common part */ int compression;/* level of zlib compression */ - int standalone; /* standalone document (no external refs) */ + int standalone; /* standalone document (no external refs) + 1 if standalone="yes" + 0 if standalone="no" + -1 if there is no XML declaration + -2 if there is an XML declaration, but no + standalone attribute was specified */ struct _xmlDtd *intSubset; /* the document internal subset */ struct _xmlDtd *extSubset; /* the document external subset */ struct _xmlNs *oldNs; /* Global namespace, the old way */ diff --git a/include/libxml/xmlreader.h b/include/libxml/xmlreader.h index 1d12988..dfe51a3 100644 --- a/include/libxml/xmlreader.h +++ b/include/libxml/xmlreader.h @@ -113,9 +113,15 @@ XMLPUBFUN xmlTextReaderPtr XMLCALL const char *URI); XMLPUBFUN xmlTextReaderPtr XMLCALL xmlNewTextReaderFilename(const char *URI); + XMLPUBFUN void XMLCALL xmlFreeTextReader (xmlTextReaderPtr reader); +XMLPUBFUN int XMLCALL + xmlTextReaderSetup(xmlTextReaderPtr reader, + xmlParserInputBufferPtr input, const char *URL, + const char *encoding, int options); + /* * Iterators */ diff --git a/include/libxml/xmlversion.h b/include/libxml/xmlversion.h index bacbe1d..6eee895 100644 --- a/include/libxml/xmlversion.h +++ b/include/libxml/xmlversion.h @@ -29,28 +29,28 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(int version); * * the version string like "1.2.3" */ -#define LIBXML_DOTTED_VERSION "2.6.27" +#define LIBXML_DOTTED_VERSION "2.6.28" /** * LIBXML_VERSION: * * the version number: 1.2.3 value is 10203 */ -#define LIBXML_VERSION 20627 +#define LIBXML_VERSION 20628 /** * LIBXML_VERSION_STRING: * * the version number string, 1.2.3 value is "10203" */ -#define LIBXML_VERSION_STRING "20627" +#define LIBXML_VERSION_STRING "20628" /** * LIBXML_VERSION_EXTRA: * * extra version information, used to show a CVS compilation */ -#define LIBXML_VERSION_EXTRA "-CVS2872" +#define LIBXML_VERSION_EXTRA "-CVS2831" /** * LIBXML_TEST_VERSION: @@ -58,7 +58,7 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(int version); * Macro to check that the libxml version in use is compatible with * the version the software has been compiled against */ -#define LIBXML_TEST_VERSION xmlCheckVersion(20627); +#define LIBXML_TEST_VERSION xmlCheckVersion(20628); #ifndef VMS #if 0 diff --git a/include/libxml/xpath.h b/include/libxml/xpath.h index 89008fc..725cebe 100644 --- a/include/libxml/xpath.h +++ b/include/libxml/xpath.h @@ -310,7 +310,7 @@ struct _xmlXPathContext { int proximityPosition; /* the proximity position */ /* extra stuff for XPointer */ - int xptr; /* it this an XPointer context */ + int xptr; /* is this an XPointer context? */ xmlNodePtr here; /* for here() */ xmlNodePtr origin; /* for origin() */ @@ -332,7 +332,7 @@ struct _xmlXPathContext { /* temporary namespace lists kept for walking the namespace axis */ xmlNsPtr *tmpNsList; /* Array of namespaces */ - int tmpNsNr; /* number of namespace in scope */ + int tmpNsNr; /* number of namespaces in scope */ /* error reporting mechanism */ void *userData; /* user specific data block */ @@ -340,8 +340,8 @@ struct _xmlXPathContext { xmlError lastError; /* the last error */ xmlNodePtr debugNode; /* the source node XSLT */ - /* dictionnary */ - xmlDictPtr dict; /* dictionnary if any */ + /* dictionary */ + xmlDictPtr dict; /* dictionary if any */ int flags; /* flags to control compilation */ diff --git a/libxml.h b/libxml.h index 696be62..478d3e3 100644 --- a/libxml.h +++ b/libxml.h @@ -32,6 +32,15 @@ int snprintf(char *, size_t, const char *, ...); int vfprintf(FILE *, const char *, va_list); #endif +/* + * Windows CE compatibility definitions and functions + * This is needed to compile libxml2 for Windows CE. + * At least I tested it with WinCE 4.2 for Emulator and SH4 target + */ +#if defined(_WIN32_WCE) +#include +#endif + #ifndef WITH_TRIO #include #else @@ -64,6 +73,11 @@ void __xmlLoaderErr(void *ctx, const char *msg, const char *filename); void __htmlParseContent(void *ctx); #endif +/* + * internal global initialization critical section routines. + */ +void __xmlGlobalInitMutexLock(void); +void __xmlGlobalInitMutexUnlock(void); #ifdef IN_LIBXML #ifdef __GNUC__ diff --git a/libxml2.spec b/libxml2.spec index 9cf0f73..675eda1 100644 --- a/libxml2.spec +++ b/libxml2.spec @@ -1,6 +1,6 @@ Summary: Library providing XML and HTML support Name: libxml2 -Version: 2.6.27 +Version: 2.6.28 Release: 1 License: MIT Group: Development/Libraries @@ -128,6 +128,6 @@ rm -fr %{buildroot} %doc doc/python.html %changelog -* Wed Oct 25 2006 Daniel Veillard -- upstream release 2.6.27 see http://xmlsoft.org/news.html +* Tue Apr 17 2007 Daniel Veillard +- upstream release 2.6.28 see http://xmlsoft.org/news.html diff --git a/nanoftp.c b/nanoftp.c index c78503b..8c4ea88 100644 --- a/nanoftp.c +++ b/nanoftp.c @@ -77,7 +77,7 @@ #endif -#ifdef __MINGW32__ +#if defined(__MINGW32__) || defined(_WIN32_WCE) #define _WINSOCKAPI_ #include #include @@ -102,8 +102,10 @@ #endif #ifdef _AIX +#ifdef HAVE_BROKEN_SS_FAMILY #define ss_family __ss_family #endif +#endif #ifndef XML_SOCKLEN_T #define XML_SOCKLEN_T unsigned int diff --git a/nanohttp.c b/nanohttp.c index ae7923f..26b5d7e 100644 --- a/nanohttp.c +++ b/nanohttp.c @@ -74,8 +74,7 @@ #define SOCKET int #endif - -#ifdef __MINGW32__ +#if defined(__MINGW32__) || defined(_WIN32_WCE) #define _WINSOCKAPI_ #include #include diff --git a/parser.c b/parser.c index bd44585..b405164 100644 --- a/parser.c +++ b/parser.c @@ -3808,6 +3808,7 @@ xmlParseCommentComplex(xmlParserCtxtPtr ctxt, xmlChar *buf, int len, int size) { return; } } + GROW; /* Assure there's enough input data */ q = CUR_CHAR(ql); if (q == 0) goto not_terminated; @@ -8925,12 +8926,17 @@ xmlParseEncodingDecl(xmlParserCtxtPtr ctxt) { * - element types with element content, if white space occurs directly * within any instance of those types. * - * Returns 1 if standalone, 0 otherwise + * Returns: + * 1 if standalone="yes" + * 0 if standalone="no" + * -2 if standalone attribute is missing or invalid + * (A standalone value of -2 means that the XML declaration was found, + * but no value was specified for the standalone attribute). */ int xmlParseSDDecl(xmlParserCtxtPtr ctxt) { - int standalone = -1; + int standalone = -2; SKIP_BLANKS; if (CMP10(CUR_PTR, 's', 't', 'a', 'n', 'd', 'a', 'l', 'o', 'n', 'e')) { @@ -12839,26 +12845,34 @@ xmlInitParser(void) { if (xmlParserInitialized != 0) return; - if ((xmlGenericError == xmlGenericErrorDefaultFunc) || - (xmlGenericError == NULL)) - initGenericErrorDefaultFunc(NULL); - xmlInitGlobals(); - xmlInitThreads(); - xmlInitMemory(); - xmlInitCharEncodingHandlers(); - xmlDefaultSAXHandlerInit(); - xmlRegisterDefaultInputCallbacks(); +#ifdef LIBXML_THREAD_ENABLED + __xmlGlobalInitMutexLock(); + if (xmlParserInitialized == 0) { +#endif + if ((xmlGenericError == xmlGenericErrorDefaultFunc) || + (xmlGenericError == NULL)) + initGenericErrorDefaultFunc(NULL); + xmlInitGlobals(); + xmlInitThreads(); + xmlInitMemory(); + xmlInitCharEncodingHandlers(); + xmlDefaultSAXHandlerInit(); + xmlRegisterDefaultInputCallbacks(); #ifdef LIBXML_OUTPUT_ENABLED - xmlRegisterDefaultOutputCallbacks(); + xmlRegisterDefaultOutputCallbacks(); #endif /* LIBXML_OUTPUT_ENABLED */ #ifdef LIBXML_HTML_ENABLED - htmlInitAutoClose(); - htmlDefaultSAXHandlerInit(); + htmlInitAutoClose(); + htmlDefaultSAXHandlerInit(); #endif #ifdef LIBXML_XPATH_ENABLED - xmlXPathInit(); + xmlXPathInit(); +#endif + xmlParserInitialized = 1; +#ifdef LIBXML_THREAD_ENABLED + } + __xmlGlobalInitMutexUnlock(); #endif - xmlParserInitialized = 1; } /** diff --git a/python/generator.py b/python/generator.py index f116f8a..a38a23c 100755 --- a/python/generator.py +++ b/python/generator.py @@ -1055,7 +1055,7 @@ def buildWrappers(): classes_ancestor[classname] == "xmlNode": classes.write(" def __repr__(self):\n") format = "<%s (%%s) object at 0x%%x>" % (classname) - classes.write(" return \"%s\" %% (self.name, long(id (self)))\n\n" % ( + classes.write(" return \"%s\" %% (self.name, long(pos_id (self)))\n\n" % ( format)) else: txt.write("Class %s()\n" % (classname)) diff --git a/python/libxml.c b/python/libxml.c index 6e9a78e..747e44c 100644 --- a/python/libxml.c +++ b/python/libxml.c @@ -773,6 +773,8 @@ pythonStartElement(void *user_data, const xmlChar * name, attrvalue = Py_None; } PyDict_SetItem(dict, attrname, attrvalue); + Py_DECREF(attrname); + Py_DECREF(attrvalue); } } @@ -1170,6 +1172,7 @@ pythonAttributeDecl(void *user_data, for (node = tree; node != NULL; node = node->next) { newName = PyString_FromString((char *) node->name); PyList_SetItem(nameList, count, newName); + Py_DECREF(newName); count++; } result = PyObject_CallMethod(handler, (char *) "attributeDecl", diff --git a/python/libxml.py b/python/libxml.py index 4c9fe92..18cfad2 100644 --- a/python/libxml.py +++ b/python/libxml.py @@ -1,9 +1,19 @@ import libxml2mod import types +import sys # The root of all libxml2 errors. class libxmlError(Exception): pass +# +# id() is sometimes negative ... +# +def pos_id(o): + i = id(o) + if (i < 0): + return (sys.maxint - i) + return i + # # Errors raised by the wrappers when some tree handling failed. # @@ -235,19 +245,19 @@ class xmlCore: def __eq__(self, other): if other == None: - return False + return False ret = libxml2mod.compareNodesEqual(self._o, other._o) - if ret == None: - return False - return ret == True + if ret == None: + return False + return ret == True def __ne__(self, other): if other == None: - return True + return True ret = libxml2mod.compareNodesEqual(self._o, other._o) - return not ret + return not ret def __hash__(self): - ret = libxml2mod.nodeHash(self._o) - return ret + ret = libxml2mod.nodeHash(self._o) + return ret def __str__(self): return self.serialize() diff --git a/python/libxml2-py.c b/python/libxml2-py.c index 853a894..c979a3a 100644 --- a/python/libxml2-py.c +++ b/python/libxml2-py.c @@ -9249,6 +9249,30 @@ libxml_xmlFreeDtd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { return(Py_None); } +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderSetup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + xmlParserInputBufferPtr input; + PyObject *pyobj_input; + char * URL; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"OOzzi:xmlTextReaderSetup", &pyobj_reader, &pyobj_input, &URL, &encoding, &options)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + input = (xmlParserInputBufferPtr) PyinputBuffer_Get(pyobj_input); + + c_retval = xmlTextReaderSetup(reader, input, URL, encoding, options); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ PyObject * libxml_xmlSetListDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { xmlNodePtr list; diff --git a/python/setup.py b/python/setup.py index 9e3300b..5eab8dc 100755 --- a/python/setup.py +++ b/python/setup.py @@ -226,7 +226,7 @@ else: setup (name = "libxml2-python", # On *nix, the version number is created from setup.py.in # On windows, it is set by configure.js - version = "2.6.27", + version = "2.6.28", description = descr, author = "Daniel Veillard", author_email = "veillard@redhat.com", diff --git a/testAutomata.c b/testAutomata.c index a3969b1..2f575ce 100644 --- a/testAutomata.c +++ b/testAutomata.c @@ -6,9 +6,9 @@ * Daniel Veillard */ -#include #include "libxml.h" #ifdef LIBXML_AUTOMATA_ENABLED +#include #include #include diff --git a/testRegexp.c b/testRegexp.c index ff9c0fc..d5228b3 100644 --- a/testRegexp.c +++ b/testRegexp.c @@ -6,9 +6,10 @@ * Daniel Veillard */ -#include #include "libxml.h" #ifdef LIBXML_REGEXP_ENABLED +#include + #include #include diff --git a/testThreads.c b/testThreads.c index 6405a77..b43cbd0 100644 --- a/testThreads.c +++ b/testThreads.c @@ -1,6 +1,7 @@ +#include "libxml.h" + #include #include -#include "libxml.h" #if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_SAX1_ENABLED) #include diff --git a/testThreadsWin32.c b/testThreadsWin32.c index 24f0006..6ed702e 100644 --- a/testThreadsWin32.c +++ b/testThreadsWin32.c @@ -1,6 +1,6 @@ +#include "libxml.h" #include #include -#include "libxml.h" #if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED) #include diff --git a/testapi.c b/testapi.c index 01a4184..969fdd3 100644 --- a/testapi.c +++ b/testapi.c @@ -32235,6 +32235,67 @@ test_xmlTextReaderSetStructuredErrorHandler(void) { } +static int +test_xmlTextReaderSetup(void) { + int test_ret = 0; + +#if defined(LIBXML_READER_ENABLED) + int mem_base; + int ret_val; + xmlTextReaderPtr reader; /* an XML reader */ + int n_reader; + xmlParserInputBufferPtr input; /* xmlParserInputBufferPtr used to feed the reader, will be destroyed with it. */ + int n_input; + const char * URL; /* the base URL to use for the document */ + int n_URL; + char * encoding; /* the document encoding, or NULL */ + int n_encoding; + int options; /* a combination of xmlParserOption */ + int n_options; + + for (n_reader = 0;n_reader < gen_nb_xmlTextReaderPtr;n_reader++) { + for (n_input = 0;n_input < gen_nb_xmlParserInputBufferPtr;n_input++) { + for (n_URL = 0;n_URL < gen_nb_filepath;n_URL++) { + for (n_encoding = 0;n_encoding < gen_nb_const_char_ptr;n_encoding++) { + for (n_options = 0;n_options < gen_nb_parseroptions;n_options++) { + mem_base = xmlMemBlocks(); + reader = gen_xmlTextReaderPtr(n_reader, 0); + input = gen_xmlParserInputBufferPtr(n_input, 1); + URL = gen_filepath(n_URL, 2); + encoding = gen_const_char_ptr(n_encoding, 3); + options = gen_parseroptions(n_options, 4); + + ret_val = xmlTextReaderSetup(reader, input, URL, (const char *)encoding, options); + desret_int(ret_val); + call_tests++; + des_xmlTextReaderPtr(n_reader, reader, 0); + des_filepath(n_URL, URL, 2); + des_const_char_ptr(n_encoding, (const char *)encoding, 3); + des_parseroptions(n_options, options, 4); + xmlResetLastError(); + if (mem_base != xmlMemBlocks()) { + printf("Leak of %d blocks found in xmlTextReaderSetup", + xmlMemBlocks() - mem_base); + test_ret++; + printf(" %d", n_reader); + printf(" %d", n_input); + printf(" %d", n_URL); + printf(" %d", n_encoding); + printf(" %d", n_options); + printf("\n"); + } + } + } + } + } + } + function_tests++; +#endif + + return(test_ret); +} + + static int test_xmlTextReaderStandalone(void) { int test_ret = 0; @@ -32340,7 +32401,7 @@ static int test_xmlreader(void) { int test_ret = 0; - if (quiet == 0) printf("Testing xmlreader : 74 of 84 functions ...\n"); + if (quiet == 0) printf("Testing xmlreader : 75 of 85 functions ...\n"); test_ret += test_xmlNewTextReader(); test_ret += test_xmlNewTextReaderFilename(); test_ret += test_xmlReaderForDoc(); @@ -32414,6 +32475,7 @@ test_xmlreader(void) { test_ret += test_xmlTextReaderSetParserProp(); test_ret += test_xmlTextReaderSetSchema(); test_ret += test_xmlTextReaderSetStructuredErrorHandler(); + test_ret += test_xmlTextReaderSetup(); test_ret += test_xmlTextReaderStandalone(); test_ret += test_xmlTextReaderValue(); test_ret += test_xmlTextReaderXmlLang(); diff --git a/threads.c b/threads.c index 7124bca..87d0d36 100644 --- a/threads.c +++ b/threads.c @@ -139,6 +139,7 @@ struct _xmlRMutex { static pthread_key_t globalkey; static pthread_t mainthread; static pthread_once_t once_control = PTHREAD_ONCE_INIT; +static pthread_mutex_t global_init_lock = PTHREAD_MUTEX_INITIALIZER; #elif defined HAVE_WIN32_THREADS #if defined(HAVE_COMPILER_TLS) static __declspec(thread) xmlGlobalState tlstate; @@ -152,11 +153,14 @@ static struct DWORD done; DWORD control; } run_once = { 0, 0 }; +static volatile LPCRITICAL_SECTION global_init_lock = NULL; /* endif HAVE_WIN32_THREADS */ #elif defined HAVE_BEOS_THREADS int32 globalkey = 0; thread_id mainthread = 0; int32 run_once_init = 0; +static int32 global_init_lock = -1; +static vint32 global_init_count = 0; #endif static xmlRMutexPtr xmlLibraryLock = NULL; @@ -413,6 +417,85 @@ xmlRMutexUnlock(xmlRMutexPtr tok ATTRIBUTE_UNUSED) #endif } +/** + * xmlGlobalInitMutexLock + * + * Makes sure that the global initialization mutex is initialized and + * locks it. + */ +void +__xmlGlobalInitMutexLock(void) +{ + /* Make sure the global init lock is initialized and then lock it. */ +#ifdef HAVE_PTHREAD_H + int err; + + /* The mutex is statically initialized, so we just lock it. */ + pthread_mutex_lock(&global_init_lock); +#elif defined HAVE_WIN32_THREADS + LPCRITICAL_SECTION cs; + + /* Create a new critical section */ + if (global_init_lock == NULL) { + cs = malloc(sizeof(CRITICAL_SECTION)); + InitializeCriticalSection(cs); + + /* Swap it into the global_init_lock */ + InterlockedCompareExchangePointer(&global_init_lock, cs, NULL); + + /* If another thread successfully recorded its critical + * section in the global_init_lock then discard the one + * allocated by this thread. */ + if (global_init_lock != cs) { + free(cs); + } + } + + /* Lock the chosen critical section */ + EnterCriticalSection(global_init_lock); +#elif defined HAVE_BEOS_THREADS + int32 sem; + + /* Allocate a new semaphore */ + sem = create_sem(1, "xmlGlobalinitMutex"); + + while (global_init_lock == -1) { + if (atomic_add(&global_init_count, 1) == 0) { + global_init_lock = sem; + } else { + snooze(1); + atomic_add(&global_init_count, -1); + } + } + + /* If another thread successfully recorded its critical + * section in the global_init_lock then discard the one + * allocated by this thread. */ + if (global_init_lock != sem) + delete_sem(sem); + + /* Acquire the chosen semaphore */ + if (acquire_sem(global_init_lock) != B_NO_ERROR) { +#ifdef DEBUG_THREADS + xmlGenericError(xmlGenericErrorContext, "xmlGlobalInitMutexLock():BeOS:Couldn't acquire semaphore\n"); + exit(); +#endif + } +#endif +} + +void +__xmlGlobalInitMutexUnlock(void) +{ +#ifdef HAVE_PTHREAD_H + pthread_mutex_unlock(&global_init_lock); +#elif defined HAVE_WIN32_THREADS + LeaveCriticalSection(global_init_lock); +#elif defined HAVE_BEOS_THREADS + release_sem(global_init_lock); +#endif +} + /************************************************************************ * * * Per thread global state handling * diff --git a/tree.c b/tree.c index d5b9fec..ffbcabd 100644 --- a/tree.c +++ b/tree.c @@ -5199,6 +5199,9 @@ xmlNodeGetContent(xmlNodePtr cur) * @content: the new value of the content * * Replace the content of a node. + * NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity + * references, but XML special chars need to be escaped first by using + * xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars(). */ void xmlNodeSetContent(xmlNodePtr cur, const xmlChar *content) { @@ -5273,6 +5276,9 @@ xmlNodeSetContent(xmlNodePtr cur, const xmlChar *content) { * @len: the size of @content * * Replace the content of a node. + * NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity + * references, but XML special chars need to be escaped first by using + * xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars(). */ void xmlNodeSetContentLen(xmlNodePtr cur, const xmlChar *content, int len) { @@ -5344,6 +5350,9 @@ xmlNodeSetContentLen(xmlNodePtr cur, const xmlChar *content, int len) { * @len: the size of @content * * Append the extra substring to the node content. + * NOTE: In contrast to xmlNodeSetContentLen(), @content is supposed to be + * raw text, so unescaped XML special chars are allowed, entity + * references are not supported. */ void xmlNodeAddContentLen(xmlNodePtr cur, const xmlChar *content, int len) { @@ -5416,6 +5425,9 @@ xmlNodeAddContentLen(xmlNodePtr cur, const xmlChar *content, int len) { * @content: extra content * * Append the extra substring to the node content. + * NOTE: In contrast to xmlNodeSetContent(), @content is supposed to be + * raw text, so unescaped XML special chars are allowed, entity + * references are not supported. */ void xmlNodeAddContent(xmlNodePtr cur, const xmlChar *content) { diff --git a/trio.c b/trio.c index 2dd8478..3fac2e6 100644 --- a/trio.c +++ b/trio.c @@ -1,6 +1,6 @@ /************************************************************************* * - * $Id: trio.c,v 1.11 2003/04/03 15:28:27 veillard Exp $ + * $Id: trio.c 3600 2007-04-17 12:44:58Z veillard $ * * Copyright (C) 1998 Bjorn Reese and Daniel Stenberg. * @@ -62,7 +62,9 @@ #include #include -#if defined(__STDC_ISO_10646__) || defined(MB_LEN_MAX) || defined(USE_MULTIBYTE) || TRIO_WIDECHAR +#if (defined(__STDC_ISO_10646__) || defined(MB_LEN_MAX) \ + || defined(USE_MULTIBYTE) || TRIO_WIDECHAR) \ + && !defined(_WIN32_WCE) # define TRIO_COMPILER_SUPPORTS_MULTIBYTE # if !defined(MB_LEN_MAX) # define MB_LEN_MAX 6 @@ -73,6 +75,10 @@ # define TRIO_COMPILER_SUPPORTS_MSVC_INT #endif +#if defined(_WIN32_WCE) +#include +#endif + /************************************************************************* * Generic definitions */ @@ -92,7 +98,10 @@ # include #endif #include + +#ifdef HAVE_ERRNO_H #include +#endif #ifndef NULL # define NULL 0 @@ -133,9 +142,13 @@ typedef unsigned long trio_flags_t; # include #endif #if defined(TRIO_PLATFORM_WIN32) -# include -# define read _read -# define write _write +# if defined(_WIN32_WCE) +# include +# else +# include +# define read _read +# define write _write +# endif #endif /* TRIO_PLATFORM_WIN32 */ #if TRIO_WIDECHAR @@ -243,8 +256,9 @@ typedef trio_longlong_t trio_int64_t; # endif #endif -#if !(defined(TRIO_COMPILER_SUPPORTS_C99) \ - || defined(TRIO_COMPILER_SUPPORTS_UNIX01)) +#if (!(defined(TRIO_COMPILER_SUPPORTS_C99) \ + || defined(TRIO_COMPILER_SUPPORTS_UNIX01))) \ + && !defined(_WIN32_WCE) # define floorl(x) floor((double)(x)) # define fmodl(x,y) fmod((double)(x),(double)(y)) # define powl(x,y) pow((double)(x),(double)(y)) @@ -719,7 +733,7 @@ typedef struct _trio_userdef_t { * *************************************************************************/ -static TRIO_CONST char rcsid[] = "@(#)$Id: trio.c,v 1.11 2003/04/03 15:28:27 veillard Exp $"; +static TRIO_CONST char rcsid[] = "@(#)$Id: trio.c 3600 2007-04-17 12:44:58Z veillard $"; /* * Need this to workaround a parser bug in HP C/iX compiler that fails diff --git a/trio.h b/trio.h index 6a3c21a..d998f35 100644 --- a/trio.h +++ b/trio.h @@ -1,6 +1,6 @@ /************************************************************************* * - * $Id: trio.h,v 1.6 2003/04/03 15:28:27 veillard Exp $ + * $Id: trio.h 1886 2003-04-03 15:28:28Z veillard $ * * Copyright (C) 1998 Bjorn Reese and Daniel Stenberg. * diff --git a/triodef.h b/triodef.h index 6c4e151..9ab3af1 100644 --- a/triodef.h +++ b/triodef.h @@ -1,6 +1,6 @@ /************************************************************************* * - * $Id: triodef.h,v 1.8 2006/05/31 13:35:28 veillard Exp $ + * $Id: triodef.h 3473 2006-05-31 13:35:28Z veillard $ * * Copyright (C) 2001 Bjorn Reese * diff --git a/trionan.c b/trionan.c index 5248eaf..a2482e6 100644 --- a/trionan.c +++ b/trionan.c @@ -1,6 +1,6 @@ /************************************************************************* * - * $Id: trionan.c,v 1.14 2003/10/15 08:17:58 veillard Exp $ + * $Id: trionan.c 2219 2003-10-15 08:18:00Z veillard $ * * Copyright (C) 2001 Bjorn Reese * @@ -112,7 +112,7 @@ * Constants */ -static TRIO_CONST char rcsid[] = "@(#)$Id: trionan.c,v 1.14 2003/10/15 08:17:58 veillard Exp $"; +static TRIO_CONST char rcsid[] = "@(#)$Id: trionan.c 2219 2003-10-15 08:18:00Z veillard $"; #if defined(USE_IEEE_754) diff --git a/trionan.h b/trionan.h index 4847a00..92de0fd 100644 --- a/trionan.h +++ b/trionan.h @@ -1,6 +1,6 @@ /************************************************************************* * - * $Id: trionan.h,v 1.6 2003/08/06 04:43:53 wbrack Exp $ + * $Id: trionan.h 2026 2003-08-06 04:43:55Z wbrack $ * * Copyright (C) 2001 Bjorn Reese * diff --git a/triop.h b/triop.h index e984c28..a062c96 100644 --- a/triop.h +++ b/triop.h @@ -1,6 +1,6 @@ /************************************************************************* * - * $Id: triop.h,v 1.5 2003/04/03 15:28:28 veillard Exp $ + * $Id: triop.h 1886 2003-04-03 15:28:28Z veillard $ * * Copyright (C) 2000 Bjorn Reese and Daniel Stenberg. * diff --git a/triostr.c b/triostr.c index 0ecd672..dc5592c 100644 --- a/triostr.c +++ b/triostr.c @@ -1,6 +1,6 @@ /************************************************************************* * - * $Id: triostr.c,v 1.3 2003/04/03 15:28:28 veillard Exp $ + * $Id: triostr.c 3600 2007-04-17 12:44:58Z veillard $ * * Copyright (C) 2001 Bjorn Reese and Daniel Stenberg. * @@ -73,7 +73,11 @@ # endif #elif defined(TRIO_PLATFORM_WIN32) # define USE_STRCASECMP -# define strcasecmp(x,y) strcmpi(x,y) +# if defined(_WIN32_WCE) +# define strcasecmp(x,y) _stricmp(x,y) +# else +# define strcasecmp(x,y) strcmpi(x,y) +# endif #endif #if !(defined(TRIO_PLATFORM_SUNOS)) @@ -97,7 +101,7 @@ struct _trio_string_t */ #if !defined(TRIO_MINIMAL) -static TRIO_CONST char rcsid[] = "@(#)$Id: triostr.c,v 1.3 2003/04/03 15:28:28 veillard Exp $"; +static TRIO_CONST char rcsid[] = "@(#)$Id: triostr.c 3600 2007-04-17 12:44:58Z veillard $"; #endif /************************************************************************* @@ -574,7 +578,7 @@ TRIO_ARGS1((error_number), } -#if !defined(TRIO_MINIMAL) +#if !defined(TRIO_MINIMAL) && !defined(_WIN32_WCE) /** Format the date/time according to @p format. @@ -1887,7 +1891,7 @@ TRIO_ARGS3((self, max, other), #endif /* !defined(TRIO_MINIMAL) */ -#if !defined(TRIO_MINIMAL) +#if !defined(TRIO_MINIMAL) && !defined(_WIN32_WCE) /* * trio_string_format_data_max */ diff --git a/triostr.h b/triostr.h index d0e3836..6b8d30f 100644 --- a/triostr.h +++ b/triostr.h @@ -1,6 +1,6 @@ /************************************************************************* * - * $Id: triostr.h,v 1.3 2003/04/03 15:28:28 veillard Exp $ + * $Id: triostr.h 3600 2007-04-17 12:44:58Z veillard $ * * Copyright (C) 2001 Bjorn Reese and Daniel Stenberg. * @@ -65,7 +65,9 @@ TRIO_STRING_PUBLIC int trio_contains TRIO_PROTO((const char *string, const char TRIO_STRING_PUBLIC int trio_copy TRIO_PROTO((char *target, const char *source)); TRIO_STRING_PUBLIC char *trio_duplicate_max TRIO_PROTO((const char *source, size_t max)); TRIO_STRING_PUBLIC int trio_equal_case_max TRIO_PROTO((const char *first, size_t max, const char *second)); +#if !defined(_WIN32_WCE) TRIO_STRING_PUBLIC size_t trio_format_date_max TRIO_PROTO((char *target, size_t max, const char *format, const struct tm *datetime)); +#endif TRIO_STRING_PUBLIC unsigned long trio_hash TRIO_PROTO((const char *string, int type)); TRIO_STRING_PUBLIC char *trio_index TRIO_PROTO((const char *string, int character)); TRIO_STRING_PUBLIC char *trio_index_last TRIO_PROTO((const char *string, int character)); @@ -114,7 +116,9 @@ TRIO_STRING_PUBLIC int trio_string_equal TRIO_PROTO((trio_string_t *self, trio_s TRIO_STRING_PUBLIC int trio_string_equal_max TRIO_PROTO((trio_string_t *self, size_t max, trio_string_t *second)); TRIO_STRING_PUBLIC int trio_string_equal_case TRIO_PROTO((trio_string_t *self, trio_string_t *other)); TRIO_STRING_PUBLIC int trio_string_equal_case_max TRIO_PROTO((trio_string_t *self, size_t max, trio_string_t *other)); +#if !defined(_WIN32_WCE) TRIO_STRING_PUBLIC size_t trio_string_format_date_max TRIO_PROTO((trio_string_t *self, size_t max, const char *format, const struct tm *datetime)); +#endif TRIO_STRING_PUBLIC char *trio_string_index TRIO_PROTO((trio_string_t *self, int character)); TRIO_STRING_PUBLIC char *trio_string_index_last TRIO_PROTO((trio_string_t *self, int character)); TRIO_STRING_PUBLIC int trio_string_length TRIO_PROTO((trio_string_t *self)); diff --git a/uri.c b/uri.c index 1e29223..35cf98a 100644 --- a/uri.c +++ b/uri.c @@ -2346,6 +2346,10 @@ done: xmlChar * xmlCanonicPath(const xmlChar *path) { +/* + * For Windows implementations, additional work needs to be done to + * replace backslashes in pathnames with "forward slashes" + */ #if defined(_WIN32) && !defined(__CYGWIN__) int len = 0; int i = 0; @@ -2362,6 +2366,7 @@ xmlCanonicPath(const xmlChar *path) return xmlStrdup(path); } + /* Check if this is an "absolute uri" */ absuri = xmlStrstr(path, BAD_CAST "://"); if (absuri != NULL) { int l, j; @@ -2370,47 +2375,55 @@ xmlCanonicPath(const xmlChar *path) /* * this looks like an URI where some parts have not been - * escaped leading to a parsing problem check that the first + * escaped leading to a parsing problem. Check that the first * part matches a protocol. */ l = absuri - path; + /* Bypass if first part (part before the '://') is > 20 chars */ if ((l <= 0) || (l > 20)) goto path_processing; + /* Bypass if any non-alpha characters are present in first part */ for (j = 0;j < l;j++) { c = path[j]; if (!(((c >= 'a') && (c <= 'z')) || ((c >= 'A') && (c <= 'Z')))) goto path_processing; } + /* Escape all except the characters specified in the supplied path */ escURI = xmlURIEscapeStr(path, BAD_CAST ":/?_.#&;="); if (escURI != NULL) { + /* Try parsing the escaped path */ uri = xmlParseURI((const char *) escURI); + /* If successful, return the escaped string */ if (uri != NULL) { xmlFreeURI(uri); return escURI; } - xmlFreeURI(uri); } } path_processing: +/* For Windows implementations, replace backslashes with 'forward slashes' */ #if defined(_WIN32) && !defined(__CYGWIN__) /* - * This really need to be cleaned up by someone with a Windows box + * Create a URI structure */ uri = xmlCreateURI(); - if (uri == NULL) { + if (uri == NULL) { /* Guard against 'out of memory' */ return(NULL); } len = xmlStrlen(path); if ((len > 2) && IS_WINDOWS_PATH(path)) { + /* make the scheme 'file' */ uri->scheme = xmlStrdup(BAD_CAST "file"); + /* allocate space for leading '/' + path + string terminator */ uri->path = xmlMallocAtomic(len + 2); if (uri->path == NULL) { - xmlFreeURI(uri); + xmlFreeURI(uri); /* Guard agains 'out of memory' */ return(NULL); } + /* Put in leading '/' plus path */ uri->path[0] = '/'; p = uri->path + 1; strncpy(p, path, len + 1); @@ -2422,18 +2435,15 @@ path_processing: } p = uri->path; } + /* Now change all occurences of '\' to '/' */ while (*p != '\0') { if (*p == '\\') *p = '/'; p++; } - if (uri->path == NULL) { - xmlFreeURI(uri); - return(NULL); - } if (uri->scheme == NULL) { - ret = xmlStrdup((const xmlChar *) path); + ret = xmlStrdup((const xmlChar *) uri->path); } else { ret = xmlSaveUri(uri); } @@ -2473,6 +2483,24 @@ xmlPathToURI(const xmlChar *path) cal = xmlCanonicPath(path); if (cal == NULL) return(NULL); +#if defined(_WIN32) && !defined(__CYGWIN__) + /* xmlCanonicPath can return an URI on Windows (is that the intended behaviour?) + If 'cal' is a valid URI allready then we are done here, as continuing would make + it invalid. */ + if ((uri = xmlParseURI((const char *) cal)) != NULL) { + xmlFreeURI(uri); + return cal; + } + /* 'cal' can contain a relative path with backslashes. If that is processed + by xmlSaveURI, they will be escaped and the external entity loader machinery + will fail. So convert them to slashes. Misuse 'ret' for walking. */ + ret = cal; + while (*ret != '\0') { + if (*ret == '\\') + *ret = '/'; + ret++; + } +#endif memset(&temp, 0, sizeof(temp)); temp.path = (char *) cal; ret = xmlSaveUri(&temp); diff --git a/win32/Makefile.mingw.orig b/win32/Makefile.mingw.orig deleted file mode 100644 index 61d15ab..0000000 --- a/win32/Makefile.mingw.orig +++ /dev/null @@ -1,336 +0,0 @@ -# Makefile for libxml2, specific for Windows, GCC (mingw) and GNU make. -# -# Take a look at the beginning and modify the variables to suit your -# environment. Having done that, you can do a -# -# nmake [all] to build the libxml and the accompanying utilities. -# nmake clean to remove all compiler output files and return to a -# clean state. -# nmake rebuild to rebuild everything from scratch. This basically does -# a 'nmake clean' and then a 'nmake all'. -# nmake install to install the library and its header files. -# -# November 2002, Igor Zlatkovic - -# There should never be a need to modify anything below this line. -# ---------------------------------------------------------------- - -AUTOCONF = .\config.mingw -include $(AUTOCONF) - -# Names of various input and output components. -XML_NAME = xml2 -XML_BASENAME = lib$(XML_NAME) -XML_SO = $(XML_BASENAME).dll -XML_IMP = $(XML_BASENAME).lib -XML_A = $(XML_BASENAME).a - -# Place where we let the compiler put its output. -BINDIR = bin.mingw -XML_INTDIR = int.mingw -XML_INTDIR_A = int.a.mingw -UTILS_INTDIR = int.utils.mingw - -# The preprocessor and its options. -CPP = gcc.exe -E -CPPFLAGS += -I$(XML_SRCDIR)/include -ifeq ($(WITH_THREADS),1) -CPPFLAGS += -D_REENTRANT -endif - -# The compiler and its options. -CC = gcc.exe -CFLAGS += -DWIN32 -D_WINDOWS -D_MBCS -CFLAGS += -I$(XML_SRCDIR) -I$(XML_SRCDIR)/include -I$(INCPREFIX) -ifneq ($(WITH_THREADS),no) -CFLAGS += -D_REENTRANT -endif -ifeq ($(WITH_THREADS),yes) -CFLAGS += -DHAVE_WIN32_THREADS -DHAVE_COMPILER_TLS -endif -ifeq ($(WITH_THREADS),ctls) -CFLAGS += -DHAVE_WIN32_THREADS -DHAVE_COMPILER_TLS -endif -ifeq ($(WITH_THREADS),native) -CFLAGS += -DHAVE_WIN32_THREADS -endif -ifeq ($(WITH_THREADS),posix) -CFLAGS += -DHAVE_PTHREAD_H -endif -ifeq ($(WITH_ZLIB),1) -CFLAGS += -DHAVE_ZLIB_H -endif - -# The linker and its options. -LD = gcc.exe -LDFLAGS += -Wl,--major-image-version,$(LIBXML_MAJOR_VERSION) -LDFLAGS += -Wl,--minor-image-version,$(LIBXML_MINOR_VERSION) -LDFLAGS += -Wl,-L,$(BINDIR) -Wl,-L,$(LIBPREFIX) -LIBS = -ifeq ($(WITH_FTP),1) -CFLAGS += -D_WINSOCKAPI_ -LIBS += -lwsock32 -endif -ifeq ($(WITH_HTTP),1) -CFLAGS += -D_WINSOCKAPI_ -LIBS += -lwsock32 -endif -ifeq ($(WITH_ICONV),1) -LIBS += -liconv -endif -ifeq ($(WITH_ZLIB),1) -LIBS += -lzdll -endif -ifeq ($(WITH_THREADS),posix) -LIBS += -lpthreadGC -endif -ifeq ($(WITH_MODULES),1) -LIBS += -lkernel32 -endif - -# The archiver and its options. -AR = ar.exe -ARFLAGS = -r - -# Optimisation and debug symbols. -ifeq ($(DEBUG),1) -CFLAGS += -D_DEBUG -g -LDFLAGS += -else -CFLAGS += -DNDEBUG -O2 -LDFLAGS += -endif - - -# Libxml object files. -XML_OBJS = $(XML_INTDIR)/c14n.o\ - $(XML_INTDIR)/catalog.o\ - $(XML_INTDIR)/chvalid.o\ - $(XML_INTDIR)/debugXML.o\ - $(XML_INTDIR)/dict.o\ - $(XML_INTDIR)/DOCBparser.o\ - $(XML_INTDIR)/encoding.o\ - $(XML_INTDIR)/entities.o\ - $(XML_INTDIR)/error.o\ - $(XML_INTDIR)/globals.o\ - $(XML_INTDIR)/hash.o\ - $(XML_INTDIR)/HTMLparser.o\ - $(XML_INTDIR)/HTMLtree.o\ - $(XML_INTDIR)/legacy.o\ - $(XML_INTDIR)/list.o\ - $(XML_INTDIR)/nanoftp.o\ - $(XML_INTDIR)/nanohttp.o\ - $(XML_INTDIR)/parser.o\ - $(XML_INTDIR)/parserInternals.o\ - $(XML_INTDIR)/pattern.o\ - $(XML_INTDIR)/relaxng.o\ - $(XML_INTDIR)/SAX.o\ - $(XML_INTDIR)/SAX2.o\ - $(XML_INTDIR)/threads.o\ - $(XML_INTDIR)/tree.o\ - $(XML_INTDIR)/uri.o\ - $(XML_INTDIR)/valid.o\ - $(XML_INTDIR)/xinclude.o\ - $(XML_INTDIR)/xlink.o\ - $(XML_INTDIR)/xmlIO.o\ - $(XML_INTDIR)/xmlmemory.o\ - $(XML_INTDIR)/xmlreader.o\ - $(XML_INTDIR)/xmlregexp.o\ - $(XML_INTDIR)/xmlmodule.o\ - $(XML_INTDIR)/xmlsave.o\ - $(XML_INTDIR)/xmlschemas.o\ - $(XML_INTDIR)/xmlschemastypes.o\ - $(XML_INTDIR)/xmlunicode.o\ - $(XML_INTDIR)/xmlwriter.o\ - $(XML_INTDIR)/xpath.o\ - $(XML_INTDIR)/xpointer.o\ - $(XML_INTDIR)/xmlstring.o - -XML_SRCS = $(subst .o,.c,$(subst $(XML_INTDIR)/,$(XML_SRCDIR)/,$(XML_OBJS))) - -# Static libxml object files. -XML_OBJS_A = $(XML_INTDIR_A)/c14n.o\ - $(XML_INTDIR_A)/catalog.o\ - $(XML_INTDIR_A)/chvalid.o\ - $(XML_INTDIR_A)/debugXML.o\ - $(XML_INTDIR_A)/dict.o\ - $(XML_INTDIR_A)/DOCBparser.o\ - $(XML_INTDIR_A)/encoding.o\ - $(XML_INTDIR_A)/entities.o\ - $(XML_INTDIR_A)/error.o\ - $(XML_INTDIR_A)/globals.o\ - $(XML_INTDIR_A)/hash.o\ - $(XML_INTDIR_A)/HTMLparser.o\ - $(XML_INTDIR_A)/HTMLtree.o\ - $(XML_INTDIR_A)/legacy.o\ - $(XML_INTDIR_A)/list.o\ - $(XML_INTDIR_A)/nanoftp.o\ - $(XML_INTDIR_A)/nanohttp.o\ - $(XML_INTDIR_A)/parser.o\ - $(XML_INTDIR_A)/parserInternals.o\ - $(XML_INTDIR_A)/pattern.o\ - $(XML_INTDIR_A)/relaxng.o\ - $(XML_INTDIR_A)/SAX.o\ - $(XML_INTDIR_A)/SAX2.o\ - $(XML_INTDIR_A)/threads.o\ - $(XML_INTDIR_A)/tree.o\ - $(XML_INTDIR_A)/uri.o\ - $(XML_INTDIR_A)/valid.o\ - $(XML_INTDIR_A)/xinclude.o\ - $(XML_INTDIR_A)/xlink.o\ - $(XML_INTDIR_A)/xmlIO.o\ - $(XML_INTDIR_A)/xmlmemory.o\ - $(XML_INTDIR_A)/xmlreader.o\ - $(XML_INTDIR_A)/xmlregexp.o\ - $(XML_INTDIR_A)/xmlmodule.o\ - $(XML_INTDIR_A)/xmlsave.o\ - $(XML_INTDIR_A)/xmlschemas.o\ - $(XML_INTDIR_A)/xmlschemastypes.o\ - $(XML_INTDIR_A)/xmlunicode.o\ - $(XML_INTDIR_A)/xmlwriter.o\ - $(XML_INTDIR_A)/xpath.o\ - $(XML_INTDIR_A)/xpointer.o\ - $(XML_INTDIR_A)/xmlstring.o - -XML_SRCS_A = $(subst .o,.c,$(subst $(XML_INTDIR_A)/,$(XML_SRCDIR)/,$(XML_OBJS_A))) - -# Xmllint and friends executables. -UTILS = $(BINDIR)/xmllint.exe\ - $(BINDIR)/xmlcatalog.exe\ - $(BINDIR)/testAutomata.exe\ - $(BINDIR)/testC14N.exe\ - $(BINDIR)/testDocbook.exe\ - $(BINDIR)/testHTML.exe\ - $(BINDIR)/testReader.exe\ - $(BINDIR)/testRegexp.exe\ - $(BINDIR)/testModule.exe\ - $(BINDIR)/testRelax.exe\ - $(BINDIR)/testSAX.exe\ - $(BINDIR)/testSchemas.exe\ - $(BINDIR)/testURI.exe\ - $(BINDIR)/testXPath.exe\ - $(BINDIR)/runtest.exe\ - $(BINDIR)/runsuite.exe -ifeq ($(WITH_THREADS),yes) -UTILS += $(BINDIR)/testThreadsWin32.exe -endif -ifeq ($(WITH_THREADS),ctls) -UTILS += $(BINDIR)/testThreadsWin32.exe -endif -ifeq ($(WITH_THREADS),native) -UTILS += $(BINDIR)/testThreadsWin32.exe -endif -ifeq ($(WITH_THREADS),posix) -UTILS += $(BINDIR)/testThreads.exe -endif - -all : dep libxml libxmla utils - -libxml : $(BINDIR)/$(XML_SO) - -libxmla : $(BINDIR)/$(XML_A) - -utils : $(UTILS) - -clean : - cmd.exe /C if exist $(XML_INTDIR) rmdir /S /Q $(XML_INTDIR) - cmd.exe /C if exist $(XML_INTDIR_A) rmdir /S /Q $(XML_INTDIR_A) - cmd.exe /C if exist $(UTILS_INTDIR) rmdir /S /Q $(UTILS_INTDIR) - cmd.exe /C if exist $(BINDIR) rmdir /S /Q $(BINDIR) - cmd.exe /C if exist depends.mingw del depends.mingw - -distclean : clean - cmd.exe /C if exist config.* del config.* - cmd.exe /C if exist Makefile del Makefile - -rebuild : clean all - -install-libs : all - cmd.exe /C if not exist $(INCPREFIX)\libxml mkdir $(INCPREFIX)\libxml - cmd.exe /C if not exist $(BINPREFIX) mkdir $(BINPREFIX) - cmd.exe /C if not exist $(LIBPREFIX) mkdir $(LIBPREFIX) - cmd.exe /C copy $(XML_SRCDIR)\include\libxml\*.h $(INCPREFIX)\libxml - cmd.exe /C copy $(BINDIR)\$(XML_SO) $(SOPREFIX) - cmd.exe /C copy $(BINDIR)\$(XML_A) $(LIBPREFIX) - cmd.exe /C copy $(BINDIR)\$(XML_IMP) $(LIBPREFIX) - cmd.exe /C copy $(BINDIR)\xml*.exe $(BINPREFIX) - -install : install-libs - cmd.exe /C copy $(BINDIR)\*.exe $(BINPREFIX) - -install-dist : install-libs - cmd.exe /C copy $(BINDIR)\xml*.exe $(BINPREFIX) - -# This is a target for me, to make a binary distribution. Not for the public use, -# keep your hands off :-) -BDVERSION = $(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION).$(LIBXML_MICRO_VERSION) -BDPREFIX = $(XML_BASENAME)-$(BDVERSION).win32 -bindist : all - $(MAKE) PREFIX=$(BDPREFIX) SOPREFIX=$(BDPREFIX)/bin install-dist - cscript //NoLogo configure.js genreadme $(XML_BASENAME) $(BDVERSION) $(BDPREFIX)\readme.txt - - -# Creates the dependency file -dep : - $(CC) $(CFLAGS) -M $(XML_SRCS) > depends.mingw - - -# Makes the output directory. -$(BINDIR) : - cmd.exe /C if not exist $(BINDIR) mkdir $(BINDIR) - - -# Makes the libxml intermediate directory. -$(XML_INTDIR) : - cmd.exe /C if not exist $(XML_INTDIR) mkdir $(XML_INTDIR) - -# Makes the static libxml intermediate directory. -$(XML_INTDIR_A) : - cmd.exe /C if not exist $(XML_INTDIR_A) mkdir $(XML_INTDIR_A) - -# An implicit rule for libxml compilation. -$(XML_INTDIR)/%.o : $(XML_SRCDIR)/%.c - $(CC) $(CFLAGS) -o $@ -c $< - -# An implicit rule for static libxml compilation. -$(XML_INTDIR_A)/%.o : $(XML_SRCDIR)/%.c - $(CC) $(CFLAGS) -DLIBXML_STATIC -o $@ -c $< - - -# Compiles libxml source. Uses the implicit rule for commands. -$(XML_OBJS) : $(XML_INTDIR) - -# Compiles static libxml source. Uses the implicit rule for commands. -$(XML_OBJS_A) : $(XML_INTDIR_A) - -# Creates the libxml shared object. -XMLSO_LDFLAGS = $(LDFLAGS) -shared -Wl,--dll -Wl,--out-implib,$(BINDIR)/$(XML_IMP) -$(BINDIR)/$(XML_SO) : $(BINDIR) $(XML_OBJS) - $(LD) $(XMLSO_LDFLAGS) -o $(BINDIR)/$(XML_SO) $(XML_OBJS) $(LIBS) - -# Creates the libxml archive. -$(BINDIR)/$(XML_A) : $(BINDIR) $(XML_OBJS_A) - $(AR) $(ARFLAGS) $(BINDIR)\$(XML_A) $(XML_OBJS_A) - - -# Makes the utils intermediate directory. -$(UTILS_INTDIR) : - cmd.exe /C if not exist $(UTILS_INTDIR) mkdir $(UTILS_INTDIR) - -# An implicit rule for xmllint and friends. -ifeq ($(STATIC),1) -$(BINDIR)/%.exe : $(UTILS_SRCDIR)/%.c - $(CC) -DLIBXML_STATIC $(CFLAGS) -o $(subst .c,.o,$(UTILS_INTDIR)/$( +#include #define MAX_STRERROR 31 @@ -24,6 +25,8 @@ #define O_TRUNC 0x0200 /* open and truncate */ #define O_EXCL 0x0400 /* open only if file doesn't already exist */ +#define BUFSIZ 4096 + extern int errno; /* Prototypes @@ -33,6 +36,7 @@ int write(int handle, const char *buffer, unsigned int len); int open(const char *filename,int oflag, ...); int close(int handle); char *getenv( const char *varname ); +char *getcwd( char *buffer, unsigned int size); char *strerror(int errnum); /* diff --git a/xinclude.c b/xinclude.c index c58bbcf..34a5489 100644 --- a/xinclude.c +++ b/xinclude.c @@ -672,6 +672,10 @@ xmlXIncludeRecurseDoc(xmlXIncludeCtxtPtr ctxt, xmlDocPtr doc, newctxt = xmlXIncludeNewContext(doc); if (newctxt != NULL) { + /* + * Copy the private user data + */ + newctxt->_private = ctxt->_private; /* * Copy the existing document set */ @@ -1885,6 +1889,9 @@ xmlXIncludeLoadTxt(xmlXIncludeCtxtPtr ctxt, const xmlChar *url, int nr) { xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, XML_XINCLUDE_INVALID_CHAR, "%s contains invalid char\n", URL); + xmlFreeParserInputBuffer(buf); + xmlFree(URL); + return(-1); } else { xmlNodeAddContentLen(node, &content[i], l); } @@ -1930,6 +1937,7 @@ xmlXIncludeLoadFallback(xmlXIncludeCtxtPtr ctxt, xmlNodePtr fallback, int nr) { newctxt = xmlXIncludeNewContext(ctxt->doc); if (newctxt == NULL) return (-1); + newctxt->_private = ctxt->_private; newctxt->base = xmlStrdup(ctxt->base); /* Inherit the base from the existing context */ xmlXIncludeSetFlags(newctxt, ctxt->parseFlags); ret = xmlXIncludeDoProcess(newctxt, ctxt->doc, fallback->children); diff --git a/xmlIO.c b/xmlIO.c index 90db848..f576d76 100644 --- a/xmlIO.c +++ b/xmlIO.c @@ -36,10 +36,14 @@ #include #endif -#ifdef WIN32 +#if defined(WIN32) || defined(_WIN32) #include #endif +#if defined(_WIN32_WCE) +#include /* for CP_UTF8 */ +#endif + /* Figure a portable way to know if a file is a directory. */ #ifndef HAVE_STAT # ifdef HAVE__STAT @@ -883,13 +887,15 @@ xmlFileOpen (const char *filename) { char *unescaped; void *retval; - unescaped = xmlURIUnescapeString(filename, 0, NULL); - if (unescaped != NULL) { - retval = xmlFileOpen_real(unescaped); - xmlFree(unescaped); - } else { - retval = xmlFileOpen_real(filename); + retval = xmlFileOpen_real(filename); + if (retval == NULL) { + unescaped = xmlURIUnescapeString(filename, 0, NULL); + if (unescaped != NULL) { + retval = xmlFileOpen_real(unescaped); + xmlFree(unescaped); + } } + return retval; } diff --git a/xmllint.c b/xmllint.c index 5e1bfd7..5c27eb2 100644 --- a/xmllint.c +++ b/xmllint.c @@ -209,6 +209,11 @@ static int sax = 0; * * ************************************************************************/ #define MAX_PATHS 64 +#ifdef _WIN32 +# define PATH_SEPARATOR ';' +#else +# define PATH_SEPARATOR ':' +#endif static xmlChar *paths[MAX_PATHS + 1]; static int nbpaths = 0; static int load_trace = 0; @@ -225,10 +230,10 @@ void parsePath(const xmlChar *path) { return; } cur = path; - while ((*cur == ' ') || (*cur == ':')) + while ((*cur == ' ') || (*cur == PATH_SEPARATOR)) cur++; path = cur; - while ((*cur != 0) && (*cur != ' ') && (*cur != ':')) + while ((*cur != 0) && (*cur != ' ') && (*cur != PATH_SEPARATOR)) cur++; if (cur != path) { paths[nbpaths] = xmlStrndup(path, cur - path); diff --git a/xmlreader.c b/xmlreader.c index c8bcf7b..d7bddec 100644 --- a/xmlreader.c +++ b/xmlreader.c @@ -869,13 +869,13 @@ xmlTextReaderPushData(xmlTextReaderPtr reader) { * parser. */ else if (reader->mode == XML_TEXTREADER_MODE_EOF) { - if (reader->mode != XML_TEXTREADER_DONE) { + if (reader->state != XML_TEXTREADER_DONE) { s = inbuf->use - reader->cur; val = xmlParseChunk(reader->ctxt, (const char *) &inbuf->content[reader->cur], s, 1); reader->cur = inbuf->use; - reader->mode = XML_TEXTREADER_DONE; + reader->state = XML_TEXTREADER_DONE; if ((val != 0) || (reader->ctxt->wellFormed == 0)) return(-1); } @@ -1169,8 +1169,10 @@ xmlTextReaderDoExpand(xmlTextReaderPtr reader) { if (reader->mode == XML_TEXTREADER_MODE_EOF) return(1); val = xmlTextReaderPushData(reader); - if (val < 0) + if (val < 0){ + reader->mode = XML_TEXTREADER_MODE_ERROR; return(-1); + } } while(reader->mode != XML_TEXTREADER_MODE_EOF); return(1); } @@ -1257,17 +1259,23 @@ xmlTextReaderRead(xmlTextReaderPtr reader) { */ do { val = xmlTextReaderPushData(reader); - if (val < 0) + if (val < 0){ + reader->mode = XML_TEXTREADER_MODE_ERROR; + reader->state = XML_TEXTREADER_ERROR; return(-1); + } } while ((reader->ctxt->node == NULL) && ((reader->mode != XML_TEXTREADER_MODE_EOF) && - (reader->mode != XML_TEXTREADER_DONE))); + (reader->state != XML_TEXTREADER_DONE))); if (reader->ctxt->node == NULL) { if (reader->ctxt->myDoc != NULL) { reader->node = reader->ctxt->myDoc->children; } - if (reader->node == NULL) + if (reader->node == NULL){ + reader->mode = XML_TEXTREADER_MODE_ERROR; + reader->state = XML_TEXTREADER_ERROR; return(-1); + } reader->state = XML_TEXTREADER_ELEMENT; } else { if (reader->ctxt->myDoc != NULL) { @@ -1287,7 +1295,7 @@ xmlTextReaderRead(xmlTextReaderPtr reader) { get_next_node: if (reader->node == NULL) { - if (reader->mode == XML_TEXTREADER_DONE) + if (reader->mode == XML_TEXTREADER_MODE_EOF) return(0); else return(-1); @@ -1314,8 +1322,11 @@ get_next_node: (reader->ctxt->node == reader->node->parent)) && (reader->ctxt->instate != XML_PARSER_EOF)) { val = xmlTextReaderPushData(reader); - if (val < 0) + if (val < 0){ + reader->mode = XML_TEXTREADER_MODE_ERROR; + reader->state = XML_TEXTREADER_ERROR; return(-1); + } if (reader->node == NULL) goto node_end; } @@ -1394,9 +1405,9 @@ get_next_node: (reader->node->type == XML_DOCB_DOCUMENT_NODE) || #endif (reader->node->type == XML_HTML_DOCUMENT_NODE)) { - if (reader->mode != XML_TEXTREADER_DONE) { + if (reader->mode != XML_TEXTREADER_MODE_EOF) { val = xmlParseChunk(reader->ctxt, "", 0, 1); - reader->mode = XML_TEXTREADER_DONE; + reader->state = XML_TEXTREADER_DONE; if (val != 0) return(-1); } @@ -1550,7 +1561,7 @@ node_found: #endif /* LIBXML_PATTERN_ENABLED */ return(1); node_end: - reader->mode = XML_TEXTREADER_DONE; + reader->state = XML_TEXTREADER_DONE; return(0); } @@ -4167,9 +4178,9 @@ xmlTextReaderSetSchema(xmlTextReaderPtr reader, xmlSchemaPtr schema) { * * Use RelaxNG to validate the document as it is processed. * Activation is only possible before the first Read(). - * if @rng is NULL, then RelaxNG validation is desactivated. + * if @rng is NULL, then RelaxNG validation is deactivated. * - * Returns 0 in case the RelaxNG validation could be (des)activated and + * Returns 0 in case the RelaxNG validation could be (de)activated and * -1 in case of error. */ int @@ -4207,8 +4218,8 @@ xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader, const char *rng) { xmlTextReaderValidityWarningRelay, reader); } - if (reader->sErrorFunc != NULL) { - xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt, + if (reader->sErrorFunc != NULL) { + xmlRelaxNGSetValidStructuredErrors(reader->rngValidCtxt, xmlTextReaderValidityStructuredRelay, reader); } @@ -4846,22 +4857,26 @@ xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader, /** * xmlTextReaderSetup: * @reader: an XML reader + * @input: xmlParserInputBufferPtr used to feed the reader, will + * be destroyed with it. * @URL: the base URL to use for the document * @encoding: the document encoding, or NULL * @options: a combination of xmlParserOption - * @reuse: keep the context for reuse * * Setup an XML reader with new options * * Returns 0 in case of success and -1 in case of error. */ -static int +int xmlTextReaderSetup(xmlTextReaderPtr reader, xmlParserInputBufferPtr input, const char *URL, const char *encoding, int options) { - if (reader == NULL) + if (reader == NULL) { + if (input != NULL) + xmlFreeParserInputBuffer(input); return (-1); + } /* * we force the generation of compact text nodes on the reader diff --git a/xmlregexp.c b/xmlregexp.c index e7d519e..2a30d66 100644 --- a/xmlregexp.c +++ b/xmlregexp.c @@ -54,6 +54,11 @@ #define CUR_SCHAR(s, l) xmlStringCurrentChar(NULL, s, &l) #define NEXTL(l) ctxt->cur += l; #define XML_REG_STRING_SEPARATOR '|' +/* + * Need PREV to check on a '-' within a Character Group. May only be used + * when it's guaranteed that cur is not at the beginning of ctxt->string! + */ +#define PREV (ctxt->cur[-1]) /** * TODO: @@ -145,7 +150,8 @@ typedef enum { XML_REGEXP_START_STATE = 1, XML_REGEXP_FINAL_STATE, XML_REGEXP_TRANS_STATE, - XML_REGEXP_SINK_STATE + XML_REGEXP_SINK_STATE, + XML_REGEXP_UNREACH_STATE } xmlRegStateType; typedef enum { @@ -1595,6 +1601,11 @@ xmlFAGenerateTransitions(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr from, atom->quant = XML_REGEXP_QUANT_ONCE; xmlRegStateAddTrans(ctxt, to, atom, to, -1, -1); break; + case XML_REGEXP_QUANT_RANGE: + if (atom->min == 0) { + xmlFAGenerateEpsilonTransition(ctxt, from, to); + } + break; default: break; } @@ -1709,6 +1720,8 @@ xmlFAEliminateSimpleEpsilonTransitions(xmlRegParserCtxtPtr ctxt) { continue; if (state->nbTrans != 1) continue; + if (state->type == XML_REGEXP_UNREACH_STATE) + continue; /* is the only transition out a basic transition */ if ((state->trans[0].atom == NULL) && (state->trans[0].to >= 0) && @@ -1731,35 +1744,24 @@ xmlFAEliminateSimpleEpsilonTransitions(xmlRegParserCtxtPtr ctxt) { tmp = ctxt->states[state->transTo[i]]; for (j = 0;j < tmp->nbTrans;j++) { if (tmp->trans[j].to == statenr) { - tmp->trans[j].to = newto; -#ifdef DEBUG_REGEXP_GRAPH - printf("Changed transition %d on %d to go to %d\n", - j, tmp->no, newto); -#endif - xmlRegStateAddTransTo(ctxt, ctxt->states[newto], - tmp->no); - } - } - } -#if 0 - for (i = 0;i < ctxt->nbStates;i++) { - tmp = ctxt->states[i]; - for (j = 0;j < tmp->nbTrans;j++) { - if (tmp->trans[j].to == statenr) { - tmp->trans[j].to = newto; #ifdef DEBUG_REGEXP_GRAPH printf("Changed transition %d on %d to go to %d\n", j, tmp->no, newto); #endif + tmp->trans[j].to = -1; + xmlRegStateAddTrans(ctxt, tmp, tmp->trans[j].atom, + ctxt->states[newto], + tmp->trans[j].counter, + tmp->trans[j].count); } } } -#endif if (state->type == XML_REGEXP_FINAL_STATE) ctxt->states[newto]->type = XML_REGEXP_FINAL_STATE; /* eliminate the transition completely */ state->nbTrans = 0; + state->type = XML_REGEXP_UNREACH_STATE; } @@ -1779,16 +1781,33 @@ xmlFAEliminateEpsilonTransitions(xmlRegParserCtxtPtr ctxt) { if (ctxt->states == NULL) return; + /* + * Eliminate simple epsilon transition and the associated unreachable + * states. + */ xmlFAEliminateSimpleEpsilonTransitions(ctxt); + for (statenr = 0;statenr < ctxt->nbStates;statenr++) { + state = ctxt->states[statenr]; + if ((state != NULL) && (state->type == XML_REGEXP_UNREACH_STATE)) { +#ifdef DEBUG_REGEXP_GRAPH + printf("Removed unreachable state %d\n", statenr); +#endif + xmlRegFreeState(state); + ctxt->states[statenr] = NULL; + } + } has_epsilon = 0; /* - * build the completed transitions bypassing the epsilons + * Build the completed transitions bypassing the epsilons * Use a marking algorithm to avoid loops - * mark sink states too. + * Mark sink states too. + * Process from the latests states backward to the start when + * there is long cascading epsilon chains this minimize the + * recursions and transition compares when adding the new ones */ - for (statenr = 0;statenr < ctxt->nbStates;statenr++) { + for (statenr = ctxt->nbStates - 1;statenr >= 0;statenr--) { state = ctxt->states[statenr]; if (state == NULL) continue; @@ -1812,8 +1831,9 @@ xmlFAEliminateEpsilonTransitions(xmlRegParserCtxtPtr ctxt) { printf("Found epsilon trans %d from %d to %d\n", transnr, statenr, newto); #endif - state->mark = XML_REGEXP_MARK_START; has_epsilon = 1; + state->trans[transnr].to = -2; + state->mark = XML_REGEXP_MARK_START; xmlFAReduceEpsilonTransitions(ctxt, statenr, newto, state->trans[transnr].counter); state->mark = XML_REGEXP_MARK_NORMAL; @@ -2424,7 +2444,7 @@ xmlFARecurseDeterminism(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr state, * check transitions conflicting with the one looked at */ if (t1->atom == NULL) { - if (t1->to == -1) + if (t1->to < 0) continue; res = xmlFARecurseDeterminism(ctxt, ctxt->states[t1->to], to, atom); @@ -2875,7 +2895,8 @@ xmlFARegDebugExec(xmlRegExecCtxtPtr exec) { int i; printf(": "); for (i = 0;(i < 3) && (i < exec->inputStackNr);i++) - printf("%s ", exec->inputStack[exec->inputStackNr - (i + 1)]); + printf("%s ", (const char *) + exec->inputStack[exec->inputStackNr - (i + 1)].value); } else { printf(": %s", &(exec->inputString[exec->index])); } @@ -4842,10 +4863,15 @@ xmlFAParseCharRange(xmlRegParserCtxtPtr ctxt) { ERROR("Expecting a char range"); return; } - NEXTL(len); - if (start == '-') { + /* + * Since we are "inside" a range, we can assume ctxt->cur is past + * the start of ctxt->string, and PREV should be safe + */ + if ((start == '-') && (NXT(1) != ']') && (PREV != '[') && (PREV != '^')) { + NEXTL(len); return; } + NEXTL(len); cur = CUR; if ((cur != '-') || (NXT(1) == ']')) { xmlRegAtomAddRange(ctxt, ctxt->atom, ctxt->neg, diff --git a/xmlsave.c b/xmlsave.c index 6963e7b..231ee7b 100644 --- a/xmlsave.c +++ b/xmlsave.c @@ -623,7 +623,9 @@ xmlNodeListDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) { buf = ctxt->buf; while (cur != NULL) { if ((ctxt->format) && (xmlIndentTreeOutput) && - (cur->type == XML_ELEMENT_NODE)) + ((cur->type == XML_ELEMENT_NODE) || + (cur->type == XML_COMMENT_NODE) || + (cur->type == XML_PI_NODE))) xmlOutputBufferWrite(buf, ctxt->indent_size * (ctxt->level > ctxt->indent_nr ? ctxt->indent_nr : ctxt->level), diff --git a/xmlschemas.c b/xmlschemas.c index 11e3eac..aec901a 100644 --- a/xmlschemas.c +++ b/xmlschemas.c @@ -19139,7 +19139,8 @@ xmlSchemaExpandAttributeGroupRefs(xmlSchemaParserCtxtPtr pctxt, * Just remove the reference if the referenced group does not * contain any attribute uses. */ - if (gr->attrUses == NULL) { + sublist = ((xmlSchemaItemListPtr) gr->attrUses); + if ((sublist == NULL) || sublist->nbItems == 0) { if (xmlSchemaItemListRemove(list, i) == -1) return(-1); i--; @@ -19148,18 +19149,15 @@ xmlSchemaExpandAttributeGroupRefs(xmlSchemaParserCtxtPtr pctxt, /* * Add the attribute uses. */ - sublist = ((xmlSchemaItemListPtr) gr->attrUses); - if (sublist->nbItems != 0) { - list->items[i] = sublist->items[0]; - if (sublist->nbItems != 1) { - for (j = 1; j < sublist->nbItems; j++) { - i++; - if (xmlSchemaItemListInsert(list, - sublist->items[j], i) == -1) - return(-1); - } + list->items[i] = sublist->items[0]; + if (sublist->nbItems != 1) { + for (j = 1; j < sublist->nbItems; j++) { + i++; + if (xmlSchemaItemListInsert(list, + sublist->items[j], i) == -1) + return(-1); } - } + } } } diff --git a/xmlwriter.c b/xmlwriter.c index 74838e6..2e67a4f 100644 --- a/xmlwriter.c +++ b/xmlwriter.c @@ -9,9 +9,9 @@ */ #define IN_LIBXML +#include "libxml.h" #include -#include "libxml.h" #include #include #include diff --git a/xpath.c b/xpath.c index 8964628..8c35e30 100644 --- a/xpath.c +++ b/xpath.c @@ -198,6 +198,7 @@ static xmlNs xmlXPathXMLNamespaceStruct = { XML_NAMESPACE_DECL, XML_XML_NAMESPACE, BAD_CAST "xml", + NULL, NULL }; static xmlNsPtr xmlXPathXMLNamespace = &xmlXPathXMLNamespaceStruct; @@ -2840,6 +2841,8 @@ xmlXPathCmpNodes(xmlNodePtr node1, xmlNodePtr node2) { /* * a couple of optimizations which will avoid computations in most cases */ + if (node1 == node2) /* trivial case */ + return(0); if (node1->type == XML_ATTRIBUTE_NODE) { attr1 = 1; attrNode1 = node1; @@ -7668,9 +7671,9 @@ xmlXPathNextDescendantOrSelfElemParent(xmlNodePtr cur, continue; } break; -#ifdef LIBXML_DOCB_ENABLED /* Not sure if we need those here. */ case XML_DOCUMENT_NODE: +#ifdef LIBXML_DOCB_ENABLED case XML_DOCB_DOCUMENT_NODE: #endif case XML_HTML_DOCUMENT_NODE: @@ -11544,8 +11547,11 @@ xmlXPathCompOpEvalPredicate(xmlXPathParserContextPtr ctxt, res = xmlXPathCompOpEvalToBoolean(ctxt, exprOp, 1); - if ((ctxt->error != XPATH_EXPRESSION_OK) || (res == -1)) - goto evaluation_error; + if ((ctxt->error != XPATH_EXPRESSION_OK) || (res == -1)) { + xmlXPathNodeSetClear(set, hasNsNodes); + newContextSize = 0; + goto evaluation_exit; + } if (res != 0) { newContextSize++; @@ -11573,18 +11579,13 @@ xmlXPathCompOpEvalPredicate(xmlXPathParserContextPtr ctxt, contextObj = NULL; } } - goto evaluation_exit; -evaluation_error: - xmlXPathNodeSetClear(set, hasNsNodes); - newContextSize = 0; - -evaluation_exit: if (contextObj != NULL) { if (ctxt->value == contextObj) valuePop(ctxt); xmlXPathReleaseObject(xpctxt, contextObj); } +evaluation_exit: if (exprRes != NULL) xmlXPathReleaseObject(ctxt->context, exprRes); /* @@ -12163,6 +12164,7 @@ xmlXPathNodeCollectAndTest(xmlXPathParserContextPtr ctxt, #ifdef DEBUG_STEP xmlGenericError(xmlGenericErrorContext, " %s", cur->name); #endif + switch (test) { case NODE_TEST_NONE: total = 0; @@ -12241,6 +12243,16 @@ xmlXPathNodeCollectAndTest(xmlXPathParserContextPtr ctxt, break; } case NODE_TEST_NAME: + if (axis == AXIS_ATTRIBUTE) { + if (cur->type != XML_ATTRIBUTE_NODE) + break; + } else if (axis == AXIS_NAMESPACE) { + if (cur->type != XML_NAMESPACE_DECL) + break; + } else { + if (cur->type != XML_ELEMENT_NODE) + break; + } switch (cur->type) { case XML_ELEMENT_NODE: if (xmlStrEqual(name, cur->name)) { @@ -14543,6 +14555,8 @@ xmlXPathCtxtCompile(xmlXPathContextPtr ctxt, const xmlChar *str) { xmlXPathInit(); pctxt = xmlXPathNewParserContext(str, ctxt); + if (pctxt == NULL) + return NULL; xmlXPathCompileExpr(pctxt, 1); if( pctxt->error != XPATH_EXPRESSION_OK ) @@ -14794,6 +14808,8 @@ xmlXPathEval(const xmlChar *str, xmlXPathContextPtr ctx) { xmlXPathInit(); ctxt = xmlXPathNewParserContext(str, ctx); + if (ctxt == NULL) + return NULL; xmlXPathEvalExpr(ctxt); if (ctxt->value == NULL) { @@ -14854,6 +14870,8 @@ xmlXPathEvalExpression(const xmlChar *str, xmlXPathContextPtr ctxt) { xmlXPathInit(); pctxt = xmlXPathNewParserContext(str, ctxt); + if (pctxt == NULL) + return NULL; xmlXPathEvalExpr(pctxt); if ((*pctxt->cur != 0) || (pctxt->error != XPATH_EXPRESSION_OK)) { -- cgit v1.2.3 From 88f9c7ca80bfbc9a5429fc632b90d6c4a2a2787d Mon Sep 17 00:00:00 2001 From: Mike Hommey Date: Wed, 9 Apr 2008 10:33:41 +0200 Subject: Load /tmp/libxml2-2.6.32 into libxml2/branches/upstream/current. --- ChangeLog | 301 + HTMLparser.c | 39 +- SAX2.c | 4 +- config.h.in | 3 + configure | 76 +- configure.in | 25 +- debugXML.c | 4 +- dict.c | 9 +- doc/APIchunk1.html | 4 +- doc/APIchunk10.html | 7 +- doc/APIchunk11.html | 3 - doc/APIchunk12.html | 5 +- doc/APIchunk13.html | 3 +- doc/APIchunk14.html | 1 + doc/APIchunk15.html | 2 + doc/APIchunk16.html | 1 + doc/APIchunk17.html | 1 + doc/APIchunk19.html | 3 +- doc/APIchunk21.html | 2 + doc/APIchunk22.html | 2 +- doc/APIchunk23.html | 3 +- doc/APIchunk24.html | 5 + doc/APIchunk25.html | 2 + doc/APIchunk27.html | 1 + doc/APIchunk28.html | 1 + doc/APIchunk5.html | 1 + doc/APIchunk7.html | 4 +- doc/APIfiles.html | 6 + doc/APIfunctions.html | 3 + doc/APIsymbols.html | 6 + doc/devhelp/libxml2-parser.html | 16 +- doc/devhelp/libxml2-schematron.html | 6 + doc/devhelp/libxml2-xmlerror.html | 6 +- doc/devhelp/libxml2-xmlreader.html | 2 +- doc/devhelp/libxml2-xmlwriter.html | 4 +- doc/devhelp/libxml2.devhelp | 6 + doc/elfgcchack.xsl | 2 +- doc/examples/Makefile.am | 121 +- doc/examples/Makefile.in | 121 +- doc/examples/examples.xml | 787 +- doc/html/book1.html | 2 +- doc/html/index.html | 2 +- doc/html/libxml-DOCBparser.html | 2 +- doc/html/libxml-HTMLparser.html | 2 +- doc/html/libxml-HTMLtree.html | 2 +- doc/html/libxml-SAX.html | 2 +- doc/html/libxml-SAX2.html | 2 +- doc/html/libxml-c14n.html | 2 +- doc/html/libxml-catalog.html | 2 +- doc/html/libxml-chvalid.html | 2 +- doc/html/libxml-debugXML.html | 2 +- doc/html/libxml-dict.html | 2 +- doc/html/libxml-encoding.html | 2 +- doc/html/libxml-entities.html | 2 +- doc/html/libxml-globals.html | 2 +- doc/html/libxml-hash.html | 2 +- doc/html/libxml-lib.html | 2 +- doc/html/libxml-list.html | 2 +- doc/html/libxml-nanoftp.html | 2 +- doc/html/libxml-nanohttp.html | 2 +- doc/html/libxml-parser.html | 18 +- doc/html/libxml-parserInternals.html | 2 +- doc/html/libxml-pattern.html | 2 +- doc/html/libxml-relaxng.html | 2 +- doc/html/libxml-schemasInternals.html | 2 +- doc/html/libxml-schematron.html | 8 +- doc/html/libxml-threads.html | 2 +- doc/html/libxml-tree.html | 2 +- doc/html/libxml-uri.html | 2 +- doc/html/libxml-valid.html | 2 +- doc/html/libxml-xinclude.html | 2 +- doc/html/libxml-xlink.html | 2 +- doc/html/libxml-xmlIO.html | 2 +- doc/html/libxml-xmlautomata.html | 2 +- doc/html/libxml-xmlerror.html | 6 +- doc/html/libxml-xmlexports.html | 2 +- doc/html/libxml-xmlmemory.html | 2 +- doc/html/libxml-xmlmodule.html | 2 +- doc/html/libxml-xmlreader.html | 4 +- doc/html/libxml-xmlregexp.html | 2 +- doc/html/libxml-xmlsave.html | 2 +- doc/html/libxml-xmlschemas.html | 2 +- doc/html/libxml-xmlschemastypes.html | 2 +- doc/html/libxml-xmlstring.html | 2 +- doc/html/libxml-xmlunicode.html | 2 +- doc/html/libxml-xmlversion.html | 2 +- doc/html/libxml-xmlwriter.html | 6 +- doc/html/libxml-xpath.html | 2 +- doc/html/libxml-xpathInternals.html | 2 +- doc/html/libxml-xpointer.html | 2 +- doc/libxml2-api.xml | 43 +- doc/libxml2.xsa | 31 +- doc/newapi.xsl | 4 +- doc/news.html | 35 +- doc/xml.html | 72 +- doc/xmlmem.html | 33 +- elfgcchack.h | 12 + encoding.c | 11 +- error.c | 2 +- globals.c | 2 +- include/libxml/schematron.h | 3 +- include/libxml/threads.h | 30 +- include/libxml/xmlerror.h | 6 +- include/libxml/xmlversion.h | 8 +- include/libxml/xpath.h | 3 + include/win32config.h | 6 + libxml2.spec | 6 +- macos/src/XMLTestPrefix.h.orig | 1 + nanohttp.c | 10 + parser.c | 490 +- python/Makefile.am | 46 +- python/Makefile.in | 162 +- python/generator.py | 3 + python/libxml2-py.c | 14572 -------------------------------- python/setup.py | 2 +- python/tests/Makefile.am | 18 +- python/tests/Makefile.in | 71 +- python/tests/xpathns.py | 29 + python/types.c | 32 +- schematron.c | 76 +- testModule.c | 9 + testRegexp.c | 19 +- testapi.c | 13 +- threads.c | 460 +- tree.c | 42 +- uri.c | 29 + vms/build_libxml.com | 45 +- win32/Makefile.msvc | 14 +- win32/Makefile.msvc.orig | 462 + win32/libxml2.def.src | 2 + xinclude.c | 23 +- xmlIO.c | 11 + xmlmodule.c | 2 +- xmlreader.c | 7 +- xmlregexp.c | 25 +- xmlsave.c | 32 +- xmlschemas.c | 14 +- xmlschemastypes.c | 13 +- xmlwriter.c | 9 +- xpath.c | 32 +- xstc/Makefile.am | 5 +- xstc/Makefile.in | 12 +- 142 files changed, 3174 insertions(+), 15655 deletions(-) create mode 100644 macos/src/XMLTestPrefix.h.orig delete mode 100644 python/libxml2-py.c create mode 100755 python/tests/xpathns.py create mode 100644 win32/Makefile.msvc.orig (limited to 'testRegexp.c') diff --git a/ChangeLog b/ChangeLog index bacb7a8..4da35e4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,304 @@ +Tue Apr 8 10:19:01 CEST 2008 Daniel Veillard + + * tree.c: fix a bug introduced when fixing #438208 and reported by + Ashwin + * python/generator.py: fix an infinite loop bug + +Mon Apr 7 14:44:51 CEST 2008 Daniel Veillard + + * xmlreader.c: fix a link to XmlNodeType doc reported by Martijn Arts + * docs/*: rebuilt + +Fri Apr 4 18:09:50 CEST 2008 Daniel Veillard + + * parser.c: improve the *Recover* functions documentation + +Thu Apr 3 14:57:15 CEST 2008 Daniel Veillard + + * parser.c: patch from Mark Rowe fixing BOM or encoding detection + in external parsed entities, should fix #440415 + +Thu Apr 3 13:16:01 CEST 2008 Daniel Veillard + + * tree.c: fix some problems with the *EatName functions when + running out of memory raised by Eric Schrock , should fix #438208 + +Thu Apr 3 12:41:29 CEST 2008 Daniel Veillard + + * xmlschemastypes.c: horror around the definition of the lexical + values for decimal and derived types, fixing to reject empty + values, should fix #503268 + +Thu Apr 3 11:44:57 CEST 2008 Daniel Veillard + + * encoding.c: buffer may not be large enough to convert to + UCS4, patch from Christian Fruth , fixes #504015 + +Thu Apr 3 11:02:02 CEST 2008 Daniel Veillard + + * HTMLparser.c: apparently it's okay to forget the semicolumn after + entity refs in HTML, fixing char refs parsing accordingly based on + T. Manske patch, this should fix #517653 + +Thu Apr 3 09:30:29 CEST 2008 Daniel Veillard + + * error.c: avoid a scary realloc() loop should fix #520383 + +Thu Apr 3 08:22:52 CEST 2008 Daniel Veillard + + * parser.c: more realloc problems pointed out by Ashwin + +Thu Apr 3 07:40:13 CEST 2008 Daniel Veillard + + * xstc/Makefile.am: applied patch from Mike Hommey fixing distclean, + fixes #520387 + +Thu Apr 3 06:52:32 CEST 2008 Daniel Veillard + + * include/libxml/xpath.h: small doc improvement for xmlXPathContext + from Jack Jansen, fixes #524759 + * doc/newapi.xsl doc/*: fixed a problem and regenerated the docs + +Tue Apr 1 09:59:22 CEST 2008 Daniel Veillard + + * xpath.c: two patches from Alvaro Herrera to avoid problem when + running out of memory in XPath evaluations. + +Mon Mar 31 11:23:19 CEST 2008 Daniel Veillard + + * parser.c: lot of out of memory handling fixes from Ashwin + * elfgcchack.h doc/elfgcchack.xsl: work around a problem with xmlDllMain + * include/libxml/threads.h: indenting cleanups + +Mon Mar 31 10:25:37 CEST 2008 Daniel Veillard + + * parser.c docs/*: trying to clarify even more the xmlCleanupParser() + use and the memory documentation + +Wed Mar 26 18:39:58 CET 2008 Daniel Veillard + + * parser.c: changes based on Alex Khesin patch where xmlParseCharRef + seems to not be checked correctly, fixes #520198 + +Wed Mar 26 15:03:49 CET 2008 Daniel Veillard + + * parser.c: patch from Ashwin to avoid a problem of attribute + redefinition in the DTD. Remove a warning too. + +Wed Mar 26 14:38:31 CET 2008 Daniel Veillard + + * xmlschemas.c: fix a problem in externalSubsetSplit with a patch + from Ashwin + +Tue Mar 25 17:48:02 CET 2008 Daniel Veillard + + * parser.c: fix various attribute normalisation problems reported + by Ashwin + * result/c14n/without-comments/example-4 + result/c14n/with-comments/example-4: this impacted the result of + two c14n tests :-\ + * test/att9 test/att10 test/att11 result//att9* result//att10* + result//att11*: added 3 specific regression tests coming from the + XML spec revision and from Ashwin + +Tue Mar 25 14:20:49 CET 2008 Daniel Veillard + + * uri.c: fix saving for file:///X:/ URI embedding Windows file paths + should fix #524253 + +Mon Mar 24 21:42:33 CET 2008 Daniel Veillard + + * parser.c: fix a problem reported by Ashwin for system parameter + entities referenced from entities in external subset, add a + specific loading routine. + * test/valid/dtds/external.ent test/valid/dtds/external2.ent + test/valid/t11.xml result/valid/t11.xml*: added the test to + the regression suite + +Mon Mar 24 15:04:54 CET 2008 Daniel Veillard + + * xmlschemas.c: fix an XML Schemas crash raised by Stefan Behnel + when testing with W3C test suite + +Mon Mar 24 12:12:00 CET 2008 Daniel Veillard + + * threads.c: check some allocation with Ashwin patch + +Wed Mar 19 16:41:52 CET 2008 Daniel Veillard + + * vms/build_libxml.com: update from Tycho Hilhorst, should fix #523378 + +Tue Mar 18 09:23:05 CET 2008 Daniel Veillard + + * threads.c: check some malloc returns with Ashwin patch, add + error messages and reindent the module. + +Fri Mar 14 15:28:43 CET 2008 Daniel Veillard + + * xmlreader.c: patch from Ashwin removing duplicate tests + +Fri Mar 14 13:44:29 CET 2008 Daniel Veillard + + * include/libxml/schematron.h include/libxml/xmlerror.h schematron.c: + applied patch from Tobias Minich to allow plugin schematron error + reporting in the normal error system, should fix #513998 + +Fri Mar 14 11:52:09 CET 2008 Daniel Veillard + + * parser.c xinclude.c: patch from Vasily Chekalkin fixes memory + leaks, should fix 512647 + +Thu Mar 13 08:17:58 CET 2008 Daniel Veillard + + * xmlregexp.c: found a nasty bug in regexp automata build, + reported by Ashwin and Bjorn Reese + +Wed Mar 12 18:56:22 CET 2008 Daniel Veillard + + * HTMLparser.c: patch from Arnold Hendriks improving parsing of + html within html bogus data, still not a complete fix though + +Wed Mar 12 10:22:01 CET 2008 Daniel Veillard + + * python/types.c: fix a memory errro when using namespace nodes + returned from XPath queries, should fix #521699 + * python/tests/Makefile.am python/tests/xpathns.py: add a specific + regression test for it + +Mon Mar 10 16:25:32 CET 2008 Rob Richards + + * include/win32config.h: add ICONV_CONST define for win32 build + to satisfy encoding.c change in rev 3693 + +Fri Mar 7 17:45:27 CET 2008 Daniel Veillard + + * xmlsave.c parser.c: fix handling of empty CDATA nodes as + reported and discussed around #514181 and associated patches + * test/emptycdata.xml result/emptycdata.xml* + result/noent/emptycdata.xml: added a specific test in the + regression suite. + +Thu Mar 6 15:23:10 CET 2008 Daniel Veillard + + * encoding.c: poblem with encoding detection for UTF-16 reported by + Ashwin and found by Bill + * test/valid/dtds/utf16b.ent test/valid/dtds/utf16l.ent + test/valid/UTF16Entity.xml result/valid/UTF16Entity.xml*: added + the example to the regression tests + +Tue Mar 4 14:16:38 CET 2008 Daniel Veillard + + * xmlwriter.c: patch from Alex Khesin fixing CDATA output after + a text node. + * parser.c: fixed the comment for xmlParserCleanup + * globals.c: fixed indentation + +Mon Feb 25 16:42:19 CET 2008 Daniel Veillard + + * testModule.c: patch from Florent Guiliani to fix build on + SCO OpenServer + +Thu Feb 21 22:46:08 CET 2008 Daniel Veillard + + * debugXML.c: made one of the changes suggested by Brian Krahmer + * testRegexp.c: allow to pass '--' on the command line to allow + regexps starting with the character '-' + +Tue Feb 19 08:49:32 CET 2008 Daniel Veillard + + * python/Makefile.am python/tests/Makefile.am: applied cleanup + patches for cross compilation and MinGW from Roumen Petrov + +Sat Feb 16 11:06:54 CET 2008 Daniel Veillard + + * xmlIO.c: fix output bug reported by Petr Pajas and analyzed by + Bill + +Fri Feb 15 09:32:11 CET 2008 Daniel Veillard + + * include/libxml/xmlerror.h tree.c: patch from Julien Charbon + to simplify the processing of xmlSetProp() + +Fri Feb 15 08:45:32 CET 2008 Daniel Veillard + + * config.h.in configure.in encoding.c: patch from Roumen Petrov + to detect if iconv() needs a const for the second parameter + +Fri Feb 15 08:41:31 CET 2008 Daniel Veillard + + * macos/src/XMLTestPrefix2.h win32/Makefile.msvc: EOL cleanups + from Florent Guiliani + +Wed Feb 13 10:56:38 CET 2008 Daniel Veillard + + * xmlwriter.c: applied patch from Alfred Mickautsch to flush the + output at the end of document. + +Fri Feb 8 11:57:03 CET 2008 Daniel Veillard + + * doc/examples/examples.xml: regenerated, it was truncated. + +Fri Feb 8 11:47:18 CET 2008 Daniel Veillard + + * xmlmodule.c: apply simple patch from Carlo Bramini to avoid + compilation problems with Mingw32 + +Fri Feb 8 11:33:15 CET 2008 Daniel Veillard + + * xmlregexp.c: apply patch from Andrew Tosh to fix behaviour + when '.' is used in a posCharGroup + * test/schemas/poschargrp0_0.* result/schemas/poschargrp0_0_0*: + added the test to the regression suite + +Fri Feb 8 10:54:09 CET 2008 Daniel Veillard + + * dict.c: applied patch from Florent Guilian to remove an + useless mutex in the xmlDict structure. + +Wed Feb 6 17:00:20 CET 2008 Daniel Veillard + + * SAX2.c: another leak reported by Ashwin + * xinclude.c: fixed the behaviour when XIncluding a fragment + of the current document, patch from Chris Ryan + +Wed Feb 6 12:10:08 HKT 2008 William Brack + + * nanohttp.c: added space for port number (when not 80) in + xmlNanoHTTPMethodRedir, plus a few more comments. Should + fix #514521. + +Tue Feb 5 09:41:46 CET 2008 Daniel Veillard + + * schemas.c: apply fix suggested by Ashwin correcting a cut-n-paste + error about the SAX callback in cdataBlockSplit when streaming + XSD validation + +Tue Feb 5 09:36:46 CET 2008 Daniel Veillard + + * uri.c: applied a patch based on Petr Sumbera one to avoid a + problem with paths starting with // + +Mon Feb 4 17:48:30 CET 2008 Daniel Veillard + + * doc/xml.html doc/xmlmem.html: added a small section on returning + memory to the kernel by compacting the heap provided by Wolfram Sang + +Fri Jan 25 20:01:42 CET 2007 Rob Richards + + * include/win32config.h win32/Makefile.msvc: fix build under VS 2008. + patch by David Wimsey + +Thu Jan 24 15:37:04 CET 2008 Daniel Veillard + + * parser.c: fix a memeory leak in internal subset parsing with + a fix from Ashwin + * test/errors/content1.xml result/errors/content1.xml*: + add test to regressions + +Fri Jan 11 09:00:09 CET 2008 Daniel Veillard + + * configure.in doc/*: preparing release of 2.6.31 + Fri Jan 11 08:58:49 CET 2008 Daniel Veillard * parser.c: avoid a warning on 64bits introduced earlier diff --git a/HTMLparser.c b/HTMLparser.c index 38af5e3..92503a1 100644 --- a/HTMLparser.c +++ b/HTMLparser.c @@ -3115,9 +3115,9 @@ htmlParseCharRef(htmlParserCtxtPtr ctxt) { val = val * 16 + (CUR - 'A') + 10; else { htmlParseErr(ctxt, XML_ERR_INVALID_HEX_CHARREF, - "htmlParseCharRef: invalid hexadecimal value\n", + "htmlParseCharRef: missing semicolumn\n", NULL, NULL); - return(0); + break; } NEXT; } @@ -3130,9 +3130,9 @@ htmlParseCharRef(htmlParserCtxtPtr ctxt) { val = val * 10 + (CUR - '0'); else { htmlParseErr(ctxt, XML_ERR_INVALID_DEC_CHARREF, - "htmlParseCharRef: invalid decimal value\n", + "htmlParseCharRef: missing semicolumn\n", NULL, NULL); - return(0); + break; } NEXT; } @@ -3423,7 +3423,7 @@ htmlCheckMeta(htmlParserCtxtPtr ctxt, const xmlChar **atts) { * * [NS 10] EmptyElement ::= '<' QName (S Attribute)* S? '/>' * - * Returns 0 in case of success and -1 in case of error. + * Returns 0 in case of success, -1 in case of error and 1 if discarded */ static int @@ -3436,6 +3436,7 @@ htmlParseStartTag(htmlParserCtxtPtr ctxt) { int maxatts; int meta = 0; int i; + int discardtag = 0; if ((ctxt == NULL) || (ctxt->input == NULL)) { htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR, @@ -3480,14 +3481,14 @@ htmlParseStartTag(htmlParserCtxtPtr ctxt) { htmlParseErr(ctxt, XML_HTML_STRUCURE_ERROR, "htmlParseStartTag: misplaced tag\n", name, NULL); - return 0; + discardtag = 1; } if ((ctxt->nameNr != 1) && (xmlStrEqual(name, BAD_CAST"head"))) { htmlParseErr(ctxt, XML_HTML_STRUCURE_ERROR, "htmlParseStartTag: misplaced tag\n", name, NULL); - return 0; + discardtag = 1; } if (xmlStrEqual(name, BAD_CAST"body")) { int indx; @@ -3496,9 +3497,7 @@ htmlParseStartTag(htmlParserCtxtPtr ctxt) { htmlParseErr(ctxt, XML_HTML_STRUCURE_ERROR, "htmlParseStartTag: misplaced tag\n", name, NULL); - while ((IS_CHAR_CH(CUR)) && (CUR != '>')) - NEXT; - return 0; + discardtag = 1; } } } @@ -3597,12 +3596,14 @@ failed: /* * SAX: Start of Element ! */ - htmlnamePush(ctxt, name); - if ((ctxt->sax != NULL) && (ctxt->sax->startElement != NULL)) { - if (nbatts != 0) - ctxt->sax->startElement(ctxt->userData, name, atts); - else - ctxt->sax->startElement(ctxt->userData, name, NULL); + if (!discardtag) { + htmlnamePush(ctxt, name); + if ((ctxt->sax != NULL) && (ctxt->sax->startElement != NULL)) { + if (nbatts != 0) + ctxt->sax->startElement(ctxt->userData, name, atts); + else + ctxt->sax->startElement(ctxt->userData, name, NULL); + } } if (atts != NULL) { @@ -3612,7 +3613,7 @@ failed: } } - return 0; + return(discardtag); } /** @@ -3991,7 +3992,7 @@ htmlParseElement(htmlParserCtxtPtr ctxt) { failed = htmlParseStartTag(ctxt); name = ctxt->name; - if (failed || (name == NULL)) { + if ((failed == -1) || (name == NULL)) { if (CUR == '>') NEXT; return; @@ -4893,7 +4894,7 @@ htmlParseTryOrFinish(htmlParserCtxtPtr ctxt, int terminate) { failed = htmlParseStartTag(ctxt); name = ctxt->name; - if (failed || + if ((failed == -1) || (name == NULL)) { if (CUR == '>') NEXT; diff --git a/SAX2.c b/SAX2.c index 9739831..7dbc2b2 100644 --- a/SAX2.c +++ b/SAX2.c @@ -2366,7 +2366,9 @@ xmlSAX2Reference(void *ctx, const xmlChar *name) xmlGenericError(xmlGenericErrorContext, "add xmlSAX2Reference %s to %s \n", name, ctxt->node->name); #endif - xmlAddChild(ctxt->node, ret); + if (xmlAddChild(ctxt->node, ret) == NULL) { + xmlFreeNode(ret); + } } /** diff --git a/config.h.in b/config.h.in index 1dafc10..f8435d4 100644 --- a/config.h.in +++ b/config.h.in @@ -246,6 +246,9 @@ /* Whether __va_copy() is available */ #undef HAVE___VA_COPY +/* Define as const if the declaration of iconv() needs const. */ +#undef ICONV_CONST + /* Name of package */ #undef PACKAGE diff --git a/configure b/configure index d02721f..e80c4a9 100755 --- a/configure +++ b/configure @@ -2190,7 +2190,7 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac LIBXML_MAJOR_VERSION=2 LIBXML_MINOR_VERSION=6 -LIBXML_MICRO_VERSION=31 +LIBXML_MICRO_VERSION=32 LIBXML_MICRO_VERSION_SUFFIX= LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION$LIBXML_MICRO_VERSION_SUFFIX LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION @@ -29049,6 +29049,80 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ fi + + if test "$WITH_ICONV" = "1" ; then + { echo "$as_me:$LINENO: checking for iconv declaration" >&5 +echo $ECHO_N "checking for iconv declaration... $ECHO_C" >&6; } + if test "${xml_cv_iconv_arg2+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + xml_cv_iconv_arg2="" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + xml_cv_iconv_arg2="const" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + + + xml_cv_iconv_decl="extern size_t iconv (iconv_t cd, $xml_cv_iconv_arg2 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);" + { echo "$as_me:$LINENO: result: ${xml_xxx:- + }$xml_cv_iconv_decl" >&5 +echo "${ECHO_T}${xml_xxx:- + }$xml_cv_iconv_decl" >&6; } + +cat >>confdefs.h <<_ACEOF +#define ICONV_CONST $xml_cv_iconv_arg2 +_ACEOF + + fi fi case "$host" in *mingw*) M_LIBS="" diff --git a/configure.in b/configure.in index 699232f..8fc76e5 100644 --- a/configure.in +++ b/configure.in @@ -5,7 +5,7 @@ AC_CANONICAL_HOST LIBXML_MAJOR_VERSION=2 LIBXML_MINOR_VERSION=6 -LIBXML_MICRO_VERSION=31 +LIBXML_MICRO_VERSION=32 LIBXML_MICRO_VERSION_SUFFIX= LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION$LIBXML_MICRO_VERSION_SUFFIX LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION @@ -1224,6 +1224,29 @@ iconv (cd, NULL, NULL, NULL, NULL);],[ AC_MSG_RESULT(no) LIBS="${_libs}" LDFLAGS="${_ldflags}"])])) + + if test "$WITH_ICONV" = "1" ; then + AC_MSG_CHECKING([for iconv declaration]) + AC_CACHE_VAL(xml_cv_iconv_arg2, [ + AC_TRY_COMPILE([#include +#include +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif +], [], xml_cv_iconv_arg2="", xml_cv_iconv_arg2="const")]) + + xml_cv_iconv_decl="extern size_t iconv (iconv_t cd, $xml_cv_iconv_arg2 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);" + AC_MSG_RESULT([${xml_xxx:- + }$xml_cv_iconv_decl]) + AC_DEFINE_UNQUOTED(ICONV_CONST, $xml_cv_iconv_arg2, + [Define as const if the declaration of iconv() needs const.]) + fi fi case "$host" in *mingw*) M_LIBS="" diff --git a/debugXML.c b/debugXML.c index 3985ad3..de6fd6c 100644 --- a/debugXML.c +++ b/debugXML.c @@ -320,7 +320,8 @@ xmlCtxtGenericNodeCheck(xmlDebugCtxtPtr ctxt, xmlNodePtr node) { } if (node->next == NULL) { if ((node->parent != NULL) && (node->type != XML_ATTRIBUTE_NODE) && - (node->parent->last != node)) + (node->parent->last != node) && + (node->parent->type == XML_ELEMENT_NODE)) xmlDebugErr(ctxt, XML_CHECK_NO_NEXT, "Node has no next and not last of parent list\n"); } else { @@ -3244,6 +3245,7 @@ xmlShell(xmlDocPtr doc, char *filename, xmlShellReadlineFunc input, "Unknown command %s\n", command); } free(cmdline); /* not xmlFree here ! */ + cmdline = NULL; } #ifdef LIBXML_XPATH_ENABLED xmlXPathFreeContext(ctxt->pctxt); diff --git a/dict.c b/dict.c index 3b4054f..c071887 100644 --- a/dict.c +++ b/dict.c @@ -60,7 +60,6 @@ struct _xmlDictStrings { */ struct _xmlDict { int ref_counter; - xmlRMutexPtr mutex; struct _xmlDictEntry *dict; int size; @@ -337,11 +336,8 @@ xmlDictCreate(void) { dict->strings = NULL; dict->subdict = NULL; if (dict->dict) { - if ((dict->mutex = xmlNewRMutex()) != NULL) { - memset(dict->dict, 0, MIN_DICT_SIZE * sizeof(xmlDictEntry)); - return(dict); - } - xmlFree(dict->dict); + memset(dict->dict, 0, MIN_DICT_SIZE * sizeof(xmlDictEntry)); + return(dict); } xmlFree(dict); } @@ -545,7 +541,6 @@ xmlDictFree(xmlDictPtr dict) { xmlFree(pool); pool = nextp; } - xmlFreeRMutex(dict->mutex); xmlFree(dict); } diff --git a/doc/APIchunk1.html b/doc/APIchunk1.html index 881aedf..bedf943 100644 --- a/doc/APIchunk1.html +++ b/doc/APIchunk1.html @@ -119,8 +119,7 @@ A:link, A:visited, A:active { text-decoration: underline } referenceSAXFunc
              startDocumentSAXFunc
              startElementSAXFunc
              -
              Calling
              xmlCleanupParser
              -xmlRegisterHTTPPostCallbacks
              +
              Calling
              xmlRegisterHTTPPostCallbacks
              Canonical
              xmlC14NDocDumpMemory
              xmlC14NDocSave
              xmlC14NDocSaveTo
              @@ -200,7 +199,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParseChunk
              xmlParseInNodeContext
              Cleanup
              xmlCleanupCharEncodingHandlers
              -xmlCleanupParser
              xmlCleanupPredefinedEntities
              xmlCtxtResetLastError
              xmlNanoFTPCleanup
              diff --git a/doc/APIchunk10.html b/doc/APIchunk10.html index 49042c0..cbcc86b 100644 --- a/doc/APIchunk10.html +++ b/doc/APIchunk10.html @@ -374,6 +374,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPtrLocationSetAdd
              also
              xmlCharEncodingOutputFunc
              xmlCheckHTTPInput
              +xmlCleanupParser
              xmlHasProp
              xmlKeepBlanksDefault
              xmlNanoFTPProxy
              @@ -534,7 +535,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlStrdup
              assumed
              xmlCheckUTF8
              assumes
              xmlBuildRelativeURI
              -
              assuming
              xmlSaveFileTo
              +
              assuming
              xmlParseBalancedChunkMemoryRecover
              +xmlSaveFileTo
              xmlSaveFormatFileTo
              assure
              xmlGetUTF8Char
              atom
              xmlExpNewAtom
              @@ -544,6 +546,9 @@ A:link, A:visited, A:active { text-decoration: underline }
              atomic
              xmlGcMemGet
              xmlGcMemSetup
              attached
              xmlTextReaderGetRemainder
              +
              attempt
              xmlRecoverDoc
              +xmlRecoverMemory
              +
              attempts
              xmlRecoverFile
              attr
              XML_SCHEMAS_ATTRGROUP_HAS_REFS
              XML_SCHEMAS_ATTRGROUP_MARKED
              XML_SCHEMAS_ATTRGROUP_REDEFINED
              diff --git a/doc/APIchunk11.html b/doc/APIchunk11.html index 342ed29..bcb58cf 100644 --- a/doc/APIchunk11.html +++ b/doc/APIchunk11.html @@ -253,9 +253,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParseNotationType
              xmlParseURI
              xmlParseURIRaw
              -xmlRecoverDoc
              -xmlRecoverFile
              -xmlRecoverMemory
              xmlRelaxNGParse
              xmlSchemaGetBuiltInType
              xmlSchemaGetCanonValue
              diff --git a/doc/APIchunk12.html b/doc/APIchunk12.html index d65e701..769619b 100644 --- a/doc/APIchunk12.html +++ b/doc/APIchunk12.html @@ -259,10 +259,13 @@ A:link, A:visited, A:active { text-decoration: underline }
              circular
              XML_SCHEMAS_ATTRGROUP_MARKED
              XML_SCHEMAS_ELEM_CIRCULAR
              XML_SCHEMAS_TYPE_MARKED
              +
              clean
              xmlCleanupParser
              cleanly
              xmlCheckHTTPInput
              -
              cleans
              xmlNanoFTPScanProxy
              +
              cleans
              xmlCleanupParser
              +xmlNanoFTPScanProxy
              xmlNanoHTTPScanProxy
              cleanup
              xmlCleanupGlobals
              +xmlCleanupParser
              xmlCleanupThreads
              xmlNanoFTPCleanup
              clear
              xmlListMerge
              diff --git a/doc/APIchunk13.html b/doc/APIchunk13.html index 00da28b..c86ff16 100644 --- a/doc/APIchunk13.html +++ b/doc/APIchunk13.html @@ -495,7 +495,8 @@ A:link, A:visited, A:active { text-decoration: underline }
              docs
              xmlBuildRelativeURI
              doctypedecl
              xmlParseDocTypeDecl
              xmlParseDocument
              -
              documents
              xmlIsID
              +
              documents
              xmlCleanupParser
              +xmlIsID
              xmlParseEntityRef
              xmlParserHandleReference
              xmlSAXParseDoc
              diff --git a/doc/APIchunk14.html b/doc/APIchunk14.html index 1005453..61e35fc 100644 --- a/doc/APIchunk14.html +++ b/doc/APIchunk14.html @@ -419,6 +419,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION
              XML_SCHEMAS_TYPE_FINAL_EXTENSION
              extensions
              _xmlSAXHandler
              +
              extent
              xmlParseBalancedChunkMemoryRecover
              extract
              XML_GET_CONTENT
              XML_GET_LINE
              xmlBufferContent
              diff --git a/doc/APIchunk15.html b/doc/APIchunk15.html index 2f0774e..03616a5 100644 --- a/doc/APIchunk15.html +++ b/doc/APIchunk15.html @@ -231,6 +231,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlStringLenGetNodeList
              floor
              xmlXPathFloorFunction
              flow
              xmlScanName
              +
              flushed
              xmlTextWriterEndDocument
              flushes
              xmlOutputBufferClose
              xmlOutputBufferFlush
              follow
              xmlAutomataNewNegTrans
              @@ -393,6 +394,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlRelaxNGSetValidStructuredErrors
              xmlSchemaSetParserErrors
              xmlSchemaSetParserStructuredErrors
              +xmlSchematronSetValidStructuredErrors
              xmlShellCmd
              xmlSwitchEncoding
              xmlSwitchInputEncoding
              diff --git a/doc/APIchunk16.html b/doc/APIchunk16.html index b83d8e4..788a439 100644 --- a/doc/APIchunk16.html +++ b/doc/APIchunk16.html @@ -151,6 +151,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlInitializeGlobalState
              xmlResetLastError
              globally
              xmlSAXDefaultVersion
              +
              gnu
              xmlTextReaderNodeType
              good
              xmlTextReaderGetRemainder
              grafted
              xmlCopyProp
              xmlCopyPropList
              diff --git a/doc/APIchunk17.html b/doc/APIchunk17.html index f09d9bf..548d945 100644 --- a/doc/APIchunk17.html +++ b/doc/APIchunk17.html @@ -516,6 +516,7 @@ A:link, A:visited, A:active { text-decoration: underline }
              itself
              _xmlDoc
              xlinkIsLink
              xmlCharEncFirstLine
              +xmlCleanupParser
              xmlParsePEReference
              xmlParserHandlePEReference
              xmlXPathNextSelf
              diff --git a/doc/APIchunk19.html b/doc/APIchunk19.html index 7264dff..a5db809 100644 --- a/doc/APIchunk19.html +++ b/doc/APIchunk19.html @@ -242,7 +242,8 @@ A:link, A:visited, A:active { text-decoration: underline }
              minus
              xmlXPathStringFunction
              minute
              ftpListCallback
              misc
              xmlXPathContextSetCache
              -
              misleading
              xmlParsePEReference
              +
              misleading
              xmlCleanupParser
              +xmlParsePEReference
              xmlParserHandlePEReference
              missing
              xmlParseSDDecl
              mixed
              XML_SCHEMAS_TYPE_MIXED
              diff --git a/doc/APIchunk21.html b/doc/APIchunk21.html index 16d268c..05eab1d 100644 --- a/doc/APIchunk21.html +++ b/doc/APIchunk21.html @@ -214,6 +214,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathSubValues
              xmlXPathValueFlipSign
              operations
              _xmlDOMWrapCtxt
              +xmlCleanupParser
              xmlModuleClose
              xmlModuleFree
              xmlReconciliateNs
              @@ -226,6 +227,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathMultValues
              xmlXPathSubValues
              xmlXPathValueFlipSign
              +
              opposite
              xmlCleanupParser
              optimized
              xmlXPathNodeSetAddUnique
              option
              xmlDOMWrapAdoptNode
              xmlDOMWrapCloneNode
              diff --git a/doc/APIchunk22.html b/doc/APIchunk22.html index 4d1c296..1fcc6c9 100644 --- a/doc/APIchunk22.html +++ b/doc/APIchunk22.html @@ -320,6 +320,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlDOMWrapAdoptNode
              xmlDOMWrapCloneNode
              xmlDOMWrapReconcileNamespaces
              +
              preparing
              xmlCleanupParser
              preparsed
              xmlReaderNewWalker
              xmlReaderWalker
              xmlRelaxNGNewDocParserCtxt
              @@ -352,7 +353,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNodeSetSpacePreserve
              prev
              xmlValidGetValidElements
              prevent
              _xmlParserCtxt
              -xmlCleanupParser
              previous
              _xmlAttr
              _xmlAttribute
              _xmlDoc
              diff --git a/doc/APIchunk23.html b/doc/APIchunk23.html index bbf1165..4d76cc6 100644 --- a/doc/APIchunk23.html +++ b/doc/APIchunk23.html @@ -573,8 +573,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlReaderNewIO
              xmlReaderNewMemory
              xmlReaderNewWalker
              -
              reusing
              xmlCleanupParser
              -xmlXIncludeProcessNode
              +
              reusing
              xmlXIncludeProcessNode
              reverse
              xmlListReverseSearch
              xmlListReverseWalk
              xmlXPathNextAncestor
              diff --git a/doc/APIchunk24.html b/doc/APIchunk24.html index 5f563c6..0a798e6 100644 --- a/doc/APIchunk24.html +++ b/doc/APIchunk24.html @@ -399,6 +399,7 @@ A:link, A:visited, A:active { text-decoration: underline }
              socket
              xmlCheckFilename
              xmlNanoFTPGetSocket
              software
              LIBXML_TEST_VERSION
              +xmlTextReaderNodeType
              solution
              xmlNormalizeWindowsPath
              some
              XML_SKIP_IDS
              characters
              @@ -410,6 +411,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlHandleEntity
              xmlMemSetup
              xmlParseAttributeType
              +xmlParseBalancedChunkMemoryRecover
              xmlParserInputDeallocate
              xmlRelaxNGValidatePushCData
              xmlSAX2Characters
              @@ -424,6 +426,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXIncludeProcessTreeFlags
              sometimes
              xmlExpExpDerive
              somewhat
              xmlCheckLanguageID
              +xmlCleanupParser
              sorted
              xmlParserAddNodeInfo
              xmlParserFindNodeInfoIndex
              xmlXPathDistinct
              @@ -718,6 +721,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaNewStringValue
              structured
              xmlRelaxNGSetValidStructuredErrors
              xmlSchemaSetParserStructuredErrors
              +xmlSchematronSetValidStructuredErrors
              xmlSetStructuredErrorFunc
              structures
              xmlFreeDoc
              xmlFreeNs
              @@ -811,6 +815,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlHashUpdateEntry
              xmlHashUpdateEntry2
              xmlHashUpdateEntry3
              +xmlParseBalancedChunkMemoryRecover
              xmlSchemaValueAppend
              xmlXPathCompareValues
              xmlXPathContextSetCache
              diff --git a/doc/APIchunk25.html b/doc/APIchunk25.html index cf24741..aa590d2 100644 --- a/doc/APIchunk25.html +++ b/doc/APIchunk25.html @@ -333,6 +333,8 @@ A:link, A:visited, A:active { text-decoration: underline }
              traverse
              xmlXPathAxisFunc
              treaming
              _xmlParserCtxt
              treated
              xmlParseAttValue
              +
              tried
              xmlRecoverDoc
              +xmlRecoverMemory
              tries
              INPUT_CHUNK
              xlinkIsLink
              xmlCleanupParser
              diff --git a/doc/APIchunk27.html b/doc/APIchunk27.html index 1d0c9ae..d2272eb 100644 --- a/doc/APIchunk27.html +++ b/doc/APIchunk27.html @@ -293,6 +293,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParserHandleReference
              xmlSAX2GetSystemId
              xmlSchemaGetPredefinedType
              +xmlTextReaderNodeType

              A-B C-C D-E diff --git a/doc/APIchunk28.html b/doc/APIchunk28.html index 5ab3207..bc198ee 100644 --- a/doc/APIchunk28.html +++ b/doc/APIchunk28.html @@ -222,6 +222,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSaveFormatFile
              xmlSaveFormatFileEnc
              xmlInitParser
              htmlInitAutoClose
              +xmlCleanupParser
              xmlInitThreads
              xmlInitThreads
              xmlInitializeCatalog
              xmlCatalogAdd
              xmlInitializeGlobalState
              xmlInitializeGlobalState
              diff --git a/doc/APIchunk5.html b/doc/APIchunk5.html index f315b91..72067ed 100644 --- a/doc/APIchunk5.html +++ b/doc/APIchunk5.html @@ -61,6 +61,7 @@ A:link, A:visited, A:active { text-decoration: underline }
              Ogham
              xmlUCSIsOgham
              OldItalic
              xmlUCSIsOldItalic
              One
              INPUT_CHUNK
              +xmlCleanupParser
              xmlParseAttributeType
              xmlSetGenericErrorFunc
              xmlValidateElementDecl
              diff --git a/doc/APIchunk7.html b/doc/APIchunk7.html index ae29cb4..df878bf 100644 --- a/doc/APIchunk7.html +++ b/doc/APIchunk7.html @@ -122,6 +122,7 @@ A:link, A:visited, A:active { text-decoration: underline }
              Schematron
              LIBXML_SCHEMATRON_ENABLED
              xmlSchematronFree
              xmlSchematronParse
              +xmlSchematronSetValidStructuredErrors
              Schematrons
              xmlSchematronNewDocParserCtxt
              xmlSchematronNewMemParserCtxt
              xmlSchematronNewParserCtxt
              @@ -158,7 +159,8 @@ A:link, A:visited, A:active { text-decoration: underline }
              Second
              xmlCheckLanguageID
              Section
              xmlGetCharEncodingName
              xmlNormalizeURIPath
              -
              See
              xmlLinkGetData
              +
              See
              xmlCleanupParser
              +xmlLinkGetData
              xmlParseNotationDecl
              xmlTextReaderByteConsumed
              Seems
              xmlParseTextDecl
              diff --git a/doc/APIfiles.html b/doc/APIfiles.html index 00d34de..30d650a 100644 --- a/doc/APIfiles.html +++ b/doc/APIfiles.html @@ -1218,6 +1218,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaWildcardNsPtr
              xmlSchemaWildcardPtr

              Module schematron:

              XML_SCHEMATRON_OUT_BUFFER
              +XML_SCHEMATRON_OUT_ERROR
              XML_SCHEMATRON_OUT_FILE
              XML_SCHEMATRON_OUT_IO
              XML_SCHEMATRON_OUT_QUIET
              @@ -1235,6 +1236,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchematronParserCtxt
              xmlSchematronParserCtxtPtr
              xmlSchematronPtr
              +xmlSchematronSetValidStructuredErrors
              xmlSchematronValidCtxt
              xmlSchematronValidCtxtPtr
              xmlSchematronValidOptions
              @@ -1991,6 +1993,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_FROM_RELAXNGV
              XML_FROM_SCHEMASP
              XML_FROM_SCHEMASV
              +XML_FROM_SCHEMATRONV
              XML_FROM_TREE
              XML_FROM_VALID
              XML_FROM_WRITER
              @@ -2397,6 +2400,8 @@ A:link, A:visited, A:active { text-decoration: underline } XML_SCHEMAP_WARN_SKIP_SCHEMA
              XML_SCHEMAP_WARN_UNLOCATED_SCHEMA
              XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER
              +XML_SCHEMATRONV_ASSERT
              +XML_SCHEMATRONV_REPORT
              XML_SCHEMAV_ATTRINVALID
              XML_SCHEMAV_ATTRUNKNOWN
              XML_SCHEMAV_CONSTRUCT
              @@ -2478,6 +2483,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_SCHEMAV_WRONGELEM
              XML_TREE_INVALID_DEC
              XML_TREE_INVALID_HEX
              +XML_TREE_NOT_UTF8
              XML_TREE_UNTERMINATED_ENTITY
              XML_WAR_CATALOG_PI
              XML_WAR_ENTITY_REDEFINED
              diff --git a/doc/APIfunctions.html b/doc/APIfunctions.html index 80b0a88..9e83889 100644 --- a/doc/APIfunctions.html +++ b/doc/APIfunctions.html @@ -852,6 +852,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaValidateStream
              xmlSchemaValidityErrorFunc
              xmlSchemaValidityWarningFunc
              +xmlSchematronSetValidStructuredErrors
              xmlSchematronValidityErrorFunc
              xmlSchematronValidityWarningFunc
              xmlSetFeature
              @@ -1956,6 +1957,7 @@ A:link, A:visited, A:active { text-decoration: underline }

              Type xmlSchematronPtr:

              xmlSchematronFree
              xmlSchematronNewValidCtxt

              Type xmlSchematronValidCtxtPtr:

              xmlSchematronFreeValidCtxt
              +xmlSchematronSetValidStructuredErrors
              xmlSchematronValidateDoc

              Type xmlShellCtxtPtr:

              xmlShellBase
              xmlShellCat
              @@ -1983,6 +1985,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlRelaxNGSetValidStructuredErrors
              xmlSchemaSetParserStructuredErrors
              xmlSchemaSetValidStructuredErrors
              +xmlSchematronSetValidStructuredErrors
              xmlSetStructuredErrorFunc
              xmlTextReaderSetStructuredErrorHandler
              xmlThrDefSetStructuredErrorFunc
              diff --git a/doc/APIsymbols.html b/doc/APIsymbols.html index 12a0b5d..af09644 100644 --- a/doc/APIsymbols.html +++ b/doc/APIsymbols.html @@ -435,6 +435,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_FROM_RELAXNGV
              XML_FROM_SCHEMASP
              XML_FROM_SCHEMASV
              +XML_FROM_SCHEMATRONV
              XML_FROM_TREE
              XML_FROM_VALID
              XML_FROM_WRITER
              @@ -1128,7 +1129,10 @@ A:link, A:visited, A:active { text-decoration: underline } XML_SCHEMAS_UNKNOWN
              XML_SCHEMAS_USHORT
              XML_SCHEMAS_WILDCARD_COMPLETE
              +XML_SCHEMATRONV_ASSERT
              +XML_SCHEMATRONV_REPORT
              XML_SCHEMATRON_OUT_BUFFER
              +XML_SCHEMATRON_OUT_ERROR
              XML_SCHEMATRON_OUT_FILE
              XML_SCHEMATRON_OUT_IO
              XML_SCHEMATRON_OUT_QUIET
              @@ -1280,6 +1284,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_TEXT_NODE
              XML_TREE_INVALID_DEC
              XML_TREE_INVALID_HEX
              +XML_TREE_NOT_UTF8
              XML_TREE_UNTERMINATED_ENTITY
              XML_WAR_CATALOG_PI
              XML_WAR_ENTITY_REDEFINED
              @@ -2779,6 +2784,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchematronParserCtxt
              xmlSchematronParserCtxtPtr
              xmlSchematronPtr
              +xmlSchematronSetValidStructuredErrors
              xmlSchematronValidCtxt
              xmlSchematronValidCtxtPtr
              xmlSchematronValidOptions
              diff --git a/doc/devhelp/libxml2-parser.html b/doc/devhelp/libxml2-parser.html index c12cd02..76b4967 100644 --- a/doc/devhelp/libxml2-parser.html +++ b/doc/devhelp/libxml2-parser.html @@ -477,7 +477,7 @@ void xmlSetExternalEntityLoader (
              ctxt:an XML parser context
              Returns:the index in bytes from the beginning of the entity or -1 in case the index could not be computed.


      This function name is somewhat misleading. It does not clean up parser state, it cleans up memory allocated by the library itself. It is a cleanup function for the XML library. It tries to reclaim all related global memory allocated for the library processing. It doesn't deallocate any document related memory. One should call xmlCleanupParser() only when the process has finished using the library and all XML/HTML documents built with it. See also xmlInitParser() which has the opposite function of preparing the library for operations.


      xmlClearNodeInfoSeq ()

      void	xmlClearNodeInfoSeq		(xmlParserNodeInfoSeqPtr seq)
      @@ -594,7 +594,7 @@ void xmlSetExternalEntityLoader (

      xmlParseBalancedChunkMemoryRecover ()

      int	xmlParseBalancedChunkMemoryRecover	(xmlDocPtr doc, 
      xmlSAXHandlerPtr sax,
      void * user_data,
      int depth,
      const xmlChar * string,
      xmlNodePtr * lst,
      int recover)

      Parse a well-balanced chunk of an XML document called by the parser The allowed sequence for the Well Balanced Chunk is the one defined by the content production in the XML grammar: [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*

      -
      doc:the document the chunk pertains to
      sax:the SAX handler bloc (possibly NULL)
      user_data:The user data returned on SAX callbacks (possibly NULL)
      depth:Used for loop detection, use 0
      string:the input string in UTF8 or ISO-Latin (zero terminated)
      lst:the return value for the set of parsed nodes
      recover:return nodes even if the data is broken (use 0)
      Returns:0 if the chunk is well balanced, -1 in case of args problem and the parser error code otherwise In case recover is set to 1, the nodelist will not be empty even if the parsed chunk is not well balanced.
      +
      doc:the document the chunk pertains to
      sax:the SAX handler bloc (possibly NULL)
      user_data:The user data returned on SAX callbacks (possibly NULL)
      depth:Used for loop detection, use 0
      string:the input string in UTF8 or ISO-Latin (zero terminated)
      lst:the return value for the set of parsed nodes
      recover:return nodes even if the data is broken (use 0)
      Returns:0 if the chunk is well balanced, -1 in case of args problem and the parser error code otherwise In case recover is set to 1, the nodelist will not be empty even if the parsed chunk is not well balanced, assuming the parsing succeeded to some extent.


      xmlRecoverDoc ()

      xmlDocPtr	xmlRecoverDoc		(xmlChar * cur)
      -

      parse an XML in-memory document and build a tree. In the case the document is not Well Formed, a tree is built anyway

      -
      cur:a pointer to an array of xmlChar
      Returns:the resulting document tree
      +

      parse an XML in-memory document and build a tree. In the case the document is not Well Formed, a attempt to build a tree is tried anyway

      +
      cur:a pointer to an array of xmlChar
      Returns:the resulting document tree or NULL in case of failure

      xmlRecoverFile ()

      xmlDocPtr	xmlRecoverFile		(const char * filename)
      -

      parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. In the case the document is not Well Formed, a tree is built anyway

      -
      filename:the filename
      Returns:the resulting document tree
      +

      parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. In the case the document is not Well Formed, it attempts to build a tree anyway

      +
      filename:the filename
      Returns:the resulting document tree or NULL in case of failure

      xmlRecoverMemory ()

      xmlDocPtr	xmlRecoverMemory	(const char * buffer, 
      int size)
      -

      parse an XML in-memory block and build a tree. In the case the document is not Well Formed, a tree is built anyway

      -
      buffer:an pointer to a char array
      size:the size of the array
      Returns:the resulting document tree
      +

      parse an XML in-memory block and build a tree. In the case the document is not Well Formed, an attempt to build a tree is tried anyway

      +
      buffer:an pointer to a char array
      size:the size of the array
      Returns:the resulting document tree or NULL in case of error

      xmlSAXParseDTD ()

      xmlDtdPtr	xmlSAXParseDTD		(xmlSAXHandlerPtr sax, 
      const xmlChar * ExternalID,
      const xmlChar * SystemID)

      Load and parse an external subset.

      diff --git a/doc/devhelp/libxml2-schematron.html b/doc/devhelp/libxml2-schematron.html index 995d96a..bdcb944 100644 --- a/doc/devhelp/libxml2-schematron.html +++ b/doc/devhelp/libxml2-schematron.html @@ -57,6 +57,7 @@ typedef void xmlSchematronValidityErro xmlSchematronParserCtxtPtr xmlSchematronNewParserCtxt (const char * URL); typedef void xmlSchematronValidityWarningFunc (void * ctx,
      const char * msg,
      ... ...); void xmlSchematronFree (xmlSchematronPtr schema); +void xmlSchematronSetValidStructuredErrors (xmlSchematronValidCtxtPtr ctxt,
      xmlStructuredErrorFunc serror,
      void * ctx); void xmlSchematronFreeValidCtxt (xmlSchematronValidCtxtPtr ctxt); xmlSchematronPtr xmlSchematronParse (xmlSchematronParserCtxtPtr ctxt); xmlSchematronParserCtxtPtr xmlSchematronNewDocParserCtxt (xmlDocPtr doc); @@ -103,6 +104,7 @@ The content of this structure is not made public by the API. XML_SCHEMATRON_OUT_QUIET = 1 /* quiet no report */ XML_SCHEMATRON_OUT_TEXT = 2 /* build a textual report */ XML_SCHEMATRON_OUT_XML = 4 /* output SVRL */ + XML_SCHEMATRON_OUT_ERROR = 8 /* output via xmlStructuredErrorFunc */ XML_SCHEMATRON_OUT_FILE = 256 /* output to a file descriptor */ XML_SCHEMATRON_OUT_BUFFER = 512 /* output to a buffer */ XML_SCHEMATRON_OUT_IO = 1024 /* output to I/O mechanism */ @@ -149,6 +151,10 @@ The content of this structure is not made public by the API.

      xmlSchematronParse ()

      xmlSchematronPtr	xmlSchematronParse	(xmlSchematronParserCtxtPtr ctxt)

      parse a schema definition resource and build an internal XML Shema struture which can be used to validate instances.

      ctxt:a schema validation context
      Returns:the internal XML Schematron structure built from the resource or NULL in case of error
      +
      +

      xmlSchematronSetValidStructuredErrors ()

      void	xmlSchematronSetValidStructuredErrors	(xmlSchematronValidCtxtPtr ctxt, 
      xmlStructuredErrorFunc serror,
      void * ctx)
      +

      Set the structured error callback

      +
      ctxt:a Schematron validation context
      serror:the structured error function
      ctx:the functions context

      xmlSchematronValidateDoc ()

      int	xmlSchematronValidateDoc	(xmlSchematronValidCtxtPtr ctxt, 
      xmlDocPtr instance)

      Validate a tree instance against the schematron

      diff --git a/doc/devhelp/libxml2-xmlerror.html b/doc/devhelp/libxml2-xmlerror.html index 7545da4..eaacd0b 100644 --- a/doc/devhelp/libxml2-xmlerror.html +++ b/doc/devhelp/libxml2-xmlerror.html @@ -119,7 +119,8 @@ void xmlResetError (XML_FROM_CHECK = 24 /* The error checking module */ XML_FROM_WRITER = 25 /* The xmlwriter module */ XML_FROM_MODULE = 26 /* The dynamically loaded module modul */ - XML_FROM_I18N = 27 /* The module handling character conversion */ + XML_FROM_I18N = 27 /* The module handling character conversion */ + XML_FROM_SCHEMATRONV = 28 /* The Schematron validator module */ };

      @@ -442,6 +443,7 @@ void xmlResetError (XML_TREE_INVALID_HEX = 1300 XML_TREE_INVALID_DEC = 1301 /* 1301 */ XML_TREE_UNTERMINATED_ENTITY = 1302 /* 1302 */ + XML_TREE_NOT_UTF8 = 1303 /* 1303 */ XML_SAVE_NOT_UTF8 = 1400 XML_SAVE_CHAR_INVALID = 1401 /* 1401 */ XML_SAVE_NO_DOCTYPE = 1402 /* 1402 */ @@ -817,6 +819,8 @@ void xmlResetError (XML_SCHEMAP_AU_PROPS_CORRECT = 3089 /* 3088 */ XML_SCHEMAP_A_PROPS_CORRECT_3 = 3090 /* 3089 */ XML_SCHEMAP_COS_ALL_LIMITED = 3091 /* 3090 */ + XML_SCHEMATRONV_ASSERT = 4000 /* 4000 */ + XML_SCHEMATRONV_REPORT = 4001 XML_MODULE_OPEN = 4900 /* 4900 */ XML_MODULE_CLOSE = 4901 /* 4901 */ XML_CHECK_FOUND_ELEMENT = 5000 diff --git a/doc/devhelp/libxml2-xmlreader.html b/doc/devhelp/libxml2-xmlreader.html index e422f1d..1609a96 100644 --- a/doc/devhelp/libxml2-xmlreader.html +++ b/doc/devhelp/libxml2-xmlreader.html @@ -459,7 +459,7 @@ The content of this structure is not made public by the API.
      reader:the xmlTextReaderPtr used
      Returns:1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error

      xmlTextReaderNodeType ()

      int	xmlTextReaderNodeType		(xmlTextReaderPtr reader)
      -

      Get the node type of the current node Reference: http://dotgnu.org/pnetlib-doc/System/Xml/XmlNodeType.html

      +

      Get the node type of the current node Reference: http://www.gnu.org/software/dotgnu/pnetlib-doc/System/Xml/XmlNodeType.html

      reader:the xmlTextReaderPtr used
      Returns:the xmlNodeType of the current node or -1 in case of error

      xmlTextReaderNormalization ()

      int	xmlTextReaderNormalization	(xmlTextReaderPtr reader)
      diff --git a/doc/devhelp/libxml2-xmlwriter.html b/doc/devhelp/libxml2-xmlwriter.html index e453daf..358c9e6 100644 --- a/doc/devhelp/libxml2-xmlwriter.html +++ b/doc/devhelp/libxml2-xmlwriter.html @@ -209,8 +209,8 @@ The content of this structure is not made public by the API.
      writer:the xmlTextWriterPtr
      Returns:the bytes written (may be 0 because of buffering) or -1 in case of error

      xmlTextWriterEndDocument ()

      int	xmlTextWriterEndDocument	(xmlTextWriterPtr writer)
      -

      End an xml document. All open elements are closed

      -
      writer:the xmlTextWriterPtr
      Returns:the bytes written (may be 0 because of buffering) or -1 in case of error
      +

      End an xml document. All open elements are closed, and the content is flushed to the output.

      +
      writer:the xmlTextWriterPtr
      Returns:the bytes written or -1 in case of error

      xmlTextWriterEndElement ()

      int	xmlTextWriterEndElement		(xmlTextWriterPtr writer)

      End the current xml element.

      diff --git a/doc/devhelp/libxml2.devhelp b/doc/devhelp/libxml2.devhelp index a932cdf..499bcb9 100644 --- a/doc/devhelp/libxml2.devhelp +++ b/doc/devhelp/libxml2.devhelp @@ -620,6 +620,7 @@ + @@ -1226,7 +1227,10 @@ + + + @@ -1373,6 +1377,7 @@ + @@ -2853,6 +2858,7 @@ + diff --git a/doc/elfgcchack.xsl b/doc/elfgcchack.xsl index 11169f9..1adf340 100644 --- a/doc/elfgcchack.xsl +++ b/doc/elfgcchack.xsl @@ -106,7 +106,7 @@ extern __typeof (__xmlGenericErrorContext) __xmlGenericErrorContext__internal_al - + #ifdef bottom_ diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am index ea23621..d1beee5 100644 --- a/doc/examples/Makefile.am +++ b/doc/examples/Makefile.am @@ -9,127 +9,126 @@ examples.xml: index.py *.c -@($(srcdir)/index.py) index.html: examples.xml examples.xsl - -@(touch index.html) -@(xsltproc examples.xsl examples.xml && echo "Rebuilt web page" && xmllint --valid --noout index.html) install-data-local: $(mkinstalldirs) $(DESTDIR)$(HTML_DIR) -@INSTALL@ -m 0644 $(srcdir)/*.html $(srcdir)/*.c $(srcdir)/*.xml $(srcdir)/*.xsl $(srcdir)/*.res $(DESTDIR)$(HTML_DIR) -EXTRA_DIST=examples.xsl index.py examples.xml test1.xml test2.xml test3.xml tst.xml writer.xml io1.res io2.res reader1.res reader3.res reader4.res tree1.res tree2.res xpath1.res xpath2.res +EXTRA_DIST=examples.xsl index.py examples.xml writer.xml test3.xml tst.xml test1.xml test2.xml io2.res xpath2.res tree1.res reader4.res io1.res tree2.res reader3.res xpath1.res reader1.res -noinst_PROGRAMS=io1 io2 parse1 parse2 parse3 parse4 reader1 reader2 reader3 reader4 testWriter tree1 tree2 xpath1 xpath2 +noinst_PROGRAMS=xpath2 reader1 reader4 parse2 reader2 parse3 reader3 tree2 parse4 io2 testWriter io1 xpath1 parse1 tree1 -io1_SOURCES=io1.c -io1_LDFLAGS= -io1_DEPENDENCIES= $(DEPS) -io1_LDADD= @RDL_LIBS@ $(LDADDS) +xpath2_SOURCES=xpath2.c +xpath2_LDFLAGS= +xpath2_DEPENDENCIES= $(DEPS) +xpath2_LDADD= @RDL_LIBS@ $(LDADDS) -io2_SOURCES=io2.c -io2_LDFLAGS= -io2_DEPENDENCIES= $(DEPS) -io2_LDADD= @RDL_LIBS@ $(LDADDS) +reader1_SOURCES=reader1.c +reader1_LDFLAGS= +reader1_DEPENDENCIES= $(DEPS) +reader1_LDADD= @RDL_LIBS@ $(LDADDS) -parse1_SOURCES=parse1.c -parse1_LDFLAGS= -parse1_DEPENDENCIES= $(DEPS) -parse1_LDADD= @RDL_LIBS@ $(LDADDS) +reader4_SOURCES=reader4.c +reader4_LDFLAGS= +reader4_DEPENDENCIES= $(DEPS) +reader4_LDADD= @RDL_LIBS@ $(LDADDS) parse2_SOURCES=parse2.c parse2_LDFLAGS= parse2_DEPENDENCIES= $(DEPS) parse2_LDADD= @RDL_LIBS@ $(LDADDS) -parse3_SOURCES=parse3.c -parse3_LDFLAGS= -parse3_DEPENDENCIES= $(DEPS) -parse3_LDADD= @RDL_LIBS@ $(LDADDS) - -parse4_SOURCES=parse4.c -parse4_LDFLAGS= -parse4_DEPENDENCIES= $(DEPS) -parse4_LDADD= @RDL_LIBS@ $(LDADDS) - -reader1_SOURCES=reader1.c -reader1_LDFLAGS= -reader1_DEPENDENCIES= $(DEPS) -reader1_LDADD= @RDL_LIBS@ $(LDADDS) - reader2_SOURCES=reader2.c reader2_LDFLAGS= reader2_DEPENDENCIES= $(DEPS) reader2_LDADD= @RDL_LIBS@ $(LDADDS) +parse3_SOURCES=parse3.c +parse3_LDFLAGS= +parse3_DEPENDENCIES= $(DEPS) +parse3_LDADD= @RDL_LIBS@ $(LDADDS) + reader3_SOURCES=reader3.c reader3_LDFLAGS= reader3_DEPENDENCIES= $(DEPS) reader3_LDADD= @RDL_LIBS@ $(LDADDS) -reader4_SOURCES=reader4.c -reader4_LDFLAGS= -reader4_DEPENDENCIES= $(DEPS) -reader4_LDADD= @RDL_LIBS@ $(LDADDS) +tree2_SOURCES=tree2.c +tree2_LDFLAGS= +tree2_DEPENDENCIES= $(DEPS) +tree2_LDADD= @RDL_LIBS@ $(LDADDS) + +parse4_SOURCES=parse4.c +parse4_LDFLAGS= +parse4_DEPENDENCIES= $(DEPS) +parse4_LDADD= @RDL_LIBS@ $(LDADDS) + +io2_SOURCES=io2.c +io2_LDFLAGS= +io2_DEPENDENCIES= $(DEPS) +io2_LDADD= @RDL_LIBS@ $(LDADDS) testWriter_SOURCES=testWriter.c testWriter_LDFLAGS= testWriter_DEPENDENCIES= $(DEPS) testWriter_LDADD= @RDL_LIBS@ $(LDADDS) -tree1_SOURCES=tree1.c -tree1_LDFLAGS= -tree1_DEPENDENCIES= $(DEPS) -tree1_LDADD= @RDL_LIBS@ $(LDADDS) - -tree2_SOURCES=tree2.c -tree2_LDFLAGS= -tree2_DEPENDENCIES= $(DEPS) -tree2_LDADD= @RDL_LIBS@ $(LDADDS) +io1_SOURCES=io1.c +io1_LDFLAGS= +io1_DEPENDENCIES= $(DEPS) +io1_LDADD= @RDL_LIBS@ $(LDADDS) xpath1_SOURCES=xpath1.c xpath1_LDFLAGS= xpath1_DEPENDENCIES= $(DEPS) xpath1_LDADD= @RDL_LIBS@ $(LDADDS) -xpath2_SOURCES=xpath2.c -xpath2_LDFLAGS= -xpath2_DEPENDENCIES= $(DEPS) -xpath2_LDADD= @RDL_LIBS@ $(LDADDS) +parse1_SOURCES=parse1.c +parse1_LDFLAGS= +parse1_DEPENDENCIES= $(DEPS) +parse1_LDADD= @RDL_LIBS@ $(LDADDS) + +tree1_SOURCES=tree1.c +tree1_LDFLAGS= +tree1_DEPENDENCIES= $(DEPS) +tree1_LDADD= @RDL_LIBS@ $(LDADDS) valgrind: - $(MAKE) CHECKER='valgrind -q' tests + $(MAKE) CHECKER='valgrind' tests tests: $(noinst_PROGRAMS) @(echo '## examples regression tests') @(echo > .memdump) - @($(CHECKER) ./io1 > io1.tmp ; diff io1.tmp io1.res ; rm -f io1.tmp) + @($(CHECKER) ./xpath2 test3.xml '//discarded' discarded > xpath2.tmp ; diff xpath2.tmp xpath2.res ; rm xpath2.tmp) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./io2 > io2.tmp ; diff io2.tmp io2.res ; rm -f io2.tmp) + @($(CHECKER) ./reader1 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./parse1 test1.xml) + @($(CHECKER) ./reader4 test1.xml test2.xml test3.xml > reader4.tmp ; diff reader4.tmp reader4.res ; rm reader4.tmp) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) @($(CHECKER) ./parse2 test2.xml) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./parse3) + @($(CHECKER) ./reader2 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./parse4 test3.xml) + @($(CHECKER) ./parse3) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./reader1 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp) + @($(CHECKER) ./reader3 > reader3.tmp ; diff reader3.tmp reader3.res ; rm reader3.tmp) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./reader2 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp) + @($(CHECKER) ./tree2 > tree2.tmp ; diff tree2.tmp tree2.res ; rm tree2.tmp) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./reader3 > reader3.tmp ; diff reader3.tmp reader3.res ; rm reader3.tmp) + @($(CHECKER) ./parse4 test3.xml) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./reader4 test1.xml test2.xml test3.xml > reader4.tmp ; diff reader4.tmp reader4.res ; rm reader4.tmp) + @($(CHECKER) ./io2 > io2.tmp ; diff io2.tmp io2.res ; rm -f io2.tmp) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) @($(CHECKER) ./testWriter ; for i in 1 2 3 4 ; do diff writer.xml writer$$i.res ; done ; rm writer*.res) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./tree1 test2.xml > tree1.tmp ; diff tree1.tmp tree1.res ; rm tree1.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./tree2 > tree2.tmp ; diff tree2.tmp tree2.res ; rm tree2.tmp) + @($(CHECKER) ./io1 > io1.tmp ; diff io1.tmp io1.res ; rm -f io1.tmp) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) @($(CHECKER) ././xpath1 test3.xml '//child2' > xpath1.tmp ; diff xpath1.tmp xpath1.res ; rm xpath1.tmp) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./xpath2 test3.xml '//discarded' discarded > xpath2.tmp ; diff xpath2.tmp xpath2.res ; rm xpath2.tmp) + @($(CHECKER) ./parse1 test1.xml) + @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) + @($(CHECKER) ./tree1 test2.xml > tree1.tmp ; diff tree1.tmp tree1.res ; rm tree1.tmp) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) diff --git a/doc/examples/Makefile.in b/doc/examples/Makefile.in index 314343a..14681b4 100644 --- a/doc/examples/Makefile.in +++ b/doc/examples/Makefile.in @@ -32,11 +32,11 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -noinst_PROGRAMS = io1$(EXEEXT) io2$(EXEEXT) parse1$(EXEEXT) \ - parse2$(EXEEXT) parse3$(EXEEXT) parse4$(EXEEXT) \ - reader1$(EXEEXT) reader2$(EXEEXT) reader3$(EXEEXT) \ - reader4$(EXEEXT) testWriter$(EXEEXT) tree1$(EXEEXT) \ - tree2$(EXEEXT) xpath1$(EXEEXT) xpath2$(EXEEXT) +noinst_PROGRAMS = xpath2$(EXEEXT) reader1$(EXEEXT) reader4$(EXEEXT) \ + parse2$(EXEEXT) reader2$(EXEEXT) parse3$(EXEEXT) \ + reader3$(EXEEXT) tree2$(EXEEXT) parse4$(EXEEXT) io2$(EXEEXT) \ + testWriter$(EXEEXT) io1$(EXEEXT) xpath1$(EXEEXT) \ + parse1$(EXEEXT) tree1$(EXEEXT) subdir = doc/examples DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -370,67 +370,67 @@ top_srcdir = @top_srcdir@ INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I@srcdir@/include @THREAD_CFLAGS@ @Z_CFLAGS@ DEPS = $(top_builddir)/libxml2.la LDADDS = @STATIC_BINARIES@ $(top_builddir)/libxml2.la @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) -lm @WIN32_EXTRA_LIBADD@ -EXTRA_DIST = examples.xsl index.py examples.xml test1.xml test2.xml test3.xml tst.xml writer.xml io1.res io2.res reader1.res reader3.res reader4.res tree1.res tree2.res xpath1.res xpath2.res -io1_SOURCES = io1.c -io1_LDFLAGS = -io1_DEPENDENCIES = $(DEPS) -io1_LDADD = @RDL_LIBS@ $(LDADDS) -io2_SOURCES = io2.c -io2_LDFLAGS = -io2_DEPENDENCIES = $(DEPS) -io2_LDADD = @RDL_LIBS@ $(LDADDS) -parse1_SOURCES = parse1.c -parse1_LDFLAGS = -parse1_DEPENDENCIES = $(DEPS) -parse1_LDADD = @RDL_LIBS@ $(LDADDS) -parse2_SOURCES = parse2.c -parse2_LDFLAGS = -parse2_DEPENDENCIES = $(DEPS) -parse2_LDADD = @RDL_LIBS@ $(LDADDS) -parse3_SOURCES = parse3.c -parse3_LDFLAGS = -parse3_DEPENDENCIES = $(DEPS) -parse3_LDADD = @RDL_LIBS@ $(LDADDS) -parse4_SOURCES = parse4.c -parse4_LDFLAGS = -parse4_DEPENDENCIES = $(DEPS) -parse4_LDADD = @RDL_LIBS@ $(LDADDS) +EXTRA_DIST = examples.xsl index.py examples.xml writer.xml test3.xml tst.xml test1.xml test2.xml io2.res xpath2.res tree1.res reader4.res io1.res tree2.res reader3.res xpath1.res reader1.res +xpath2_SOURCES = xpath2.c +xpath2_LDFLAGS = +xpath2_DEPENDENCIES = $(DEPS) +xpath2_LDADD = @RDL_LIBS@ $(LDADDS) reader1_SOURCES = reader1.c reader1_LDFLAGS = reader1_DEPENDENCIES = $(DEPS) reader1_LDADD = @RDL_LIBS@ $(LDADDS) +reader4_SOURCES = reader4.c +reader4_LDFLAGS = +reader4_DEPENDENCIES = $(DEPS) +reader4_LDADD = @RDL_LIBS@ $(LDADDS) +parse2_SOURCES = parse2.c +parse2_LDFLAGS = +parse2_DEPENDENCIES = $(DEPS) +parse2_LDADD = @RDL_LIBS@ $(LDADDS) reader2_SOURCES = reader2.c reader2_LDFLAGS = reader2_DEPENDENCIES = $(DEPS) reader2_LDADD = @RDL_LIBS@ $(LDADDS) +parse3_SOURCES = parse3.c +parse3_LDFLAGS = +parse3_DEPENDENCIES = $(DEPS) +parse3_LDADD = @RDL_LIBS@ $(LDADDS) reader3_SOURCES = reader3.c reader3_LDFLAGS = reader3_DEPENDENCIES = $(DEPS) reader3_LDADD = @RDL_LIBS@ $(LDADDS) -reader4_SOURCES = reader4.c -reader4_LDFLAGS = -reader4_DEPENDENCIES = $(DEPS) -reader4_LDADD = @RDL_LIBS@ $(LDADDS) -testWriter_SOURCES = testWriter.c -testWriter_LDFLAGS = -testWriter_DEPENDENCIES = $(DEPS) -testWriter_LDADD = @RDL_LIBS@ $(LDADDS) -tree1_SOURCES = tree1.c -tree1_LDFLAGS = -tree1_DEPENDENCIES = $(DEPS) -tree1_LDADD = @RDL_LIBS@ $(LDADDS) tree2_SOURCES = tree2.c tree2_LDFLAGS = tree2_DEPENDENCIES = $(DEPS) tree2_LDADD = @RDL_LIBS@ $(LDADDS) +parse4_SOURCES = parse4.c +parse4_LDFLAGS = +parse4_DEPENDENCIES = $(DEPS) +parse4_LDADD = @RDL_LIBS@ $(LDADDS) +io2_SOURCES = io2.c +io2_LDFLAGS = +io2_DEPENDENCIES = $(DEPS) +io2_LDADD = @RDL_LIBS@ $(LDADDS) +testWriter_SOURCES = testWriter.c +testWriter_LDFLAGS = +testWriter_DEPENDENCIES = $(DEPS) +testWriter_LDADD = @RDL_LIBS@ $(LDADDS) +io1_SOURCES = io1.c +io1_LDFLAGS = +io1_DEPENDENCIES = $(DEPS) +io1_LDADD = @RDL_LIBS@ $(LDADDS) xpath1_SOURCES = xpath1.c xpath1_LDFLAGS = xpath1_DEPENDENCIES = $(DEPS) xpath1_LDADD = @RDL_LIBS@ $(LDADDS) -xpath2_SOURCES = xpath2.c -xpath2_LDFLAGS = -xpath2_DEPENDENCIES = $(DEPS) -xpath2_LDADD = @RDL_LIBS@ $(LDADDS) +parse1_SOURCES = parse1.c +parse1_LDFLAGS = +parse1_DEPENDENCIES = $(DEPS) +parse1_LDADD = @RDL_LIBS@ $(LDADDS) +tree1_SOURCES = tree1.c +tree1_LDFLAGS = +tree1_DEPENDENCIES = $(DEPS) +tree1_LDADD = @RDL_LIBS@ $(LDADDS) all: all-am .SUFFIXES: @@ -750,7 +750,6 @@ examples.xml: index.py *.c -@($(srcdir)/index.py) index.html: examples.xml examples.xsl - -@(touch index.html) -@(xsltproc examples.xsl examples.xml && echo "Rebuilt web page" && xmllint --valid --noout index.html) install-data-local: @@ -758,40 +757,40 @@ install-data-local: -@INSTALL@ -m 0644 $(srcdir)/*.html $(srcdir)/*.c $(srcdir)/*.xml $(srcdir)/*.xsl $(srcdir)/*.res $(DESTDIR)$(HTML_DIR) valgrind: - $(MAKE) CHECKER='valgrind -q' tests + $(MAKE) CHECKER='valgrind' tests tests: $(noinst_PROGRAMS) @(echo '## examples regression tests') @(echo > .memdump) - @($(CHECKER) ./io1 > io1.tmp ; diff io1.tmp io1.res ; rm -f io1.tmp) + @($(CHECKER) ./xpath2 test3.xml '//discarded' discarded > xpath2.tmp ; diff xpath2.tmp xpath2.res ; rm xpath2.tmp) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./io2 > io2.tmp ; diff io2.tmp io2.res ; rm -f io2.tmp) + @($(CHECKER) ./reader1 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./parse1 test1.xml) + @($(CHECKER) ./reader4 test1.xml test2.xml test3.xml > reader4.tmp ; diff reader4.tmp reader4.res ; rm reader4.tmp) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) @($(CHECKER) ./parse2 test2.xml) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./parse3) + @($(CHECKER) ./reader2 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./parse4 test3.xml) + @($(CHECKER) ./parse3) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./reader1 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp) + @($(CHECKER) ./reader3 > reader3.tmp ; diff reader3.tmp reader3.res ; rm reader3.tmp) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./reader2 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp) + @($(CHECKER) ./tree2 > tree2.tmp ; diff tree2.tmp tree2.res ; rm tree2.tmp) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./reader3 > reader3.tmp ; diff reader3.tmp reader3.res ; rm reader3.tmp) + @($(CHECKER) ./parse4 test3.xml) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./reader4 test1.xml test2.xml test3.xml > reader4.tmp ; diff reader4.tmp reader4.res ; rm reader4.tmp) + @($(CHECKER) ./io2 > io2.tmp ; diff io2.tmp io2.res ; rm -f io2.tmp) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) @($(CHECKER) ./testWriter ; for i in 1 2 3 4 ; do diff writer.xml writer$$i.res ; done ; rm writer*.res) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./tree1 test2.xml > tree1.tmp ; diff tree1.tmp tree1.res ; rm tree1.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./tree2 > tree2.tmp ; diff tree2.tmp tree2.res ; rm tree2.tmp) + @($(CHECKER) ./io1 > io1.tmp ; diff io1.tmp io1.res ; rm -f io1.tmp) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) @($(CHECKER) ././xpath1 test3.xml '//child2' > xpath1.tmp ; diff xpath1.tmp xpath1.res ; rm xpath1.tmp) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./xpath2 test3.xml '//discarded' discarded > xpath2.tmp ; diff xpath2.tmp xpath2.res ; rm xpath2.tmp) + @($(CHECKER) ./parse1 test1.xml) + @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) + @($(CHECKER) ./tree1 test2.xml > tree1.tmp ; diff tree1.tmp tree1.res ; rm tree1.tmp) @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/doc/examples/examples.xml b/doc/examples/examples.xml index 31b8525..2a0827b 100644 --- a/doc/examples/examples.xml +++ b/doc/examples/examples.xml @@ -1,53 +1,4 @@ - - Parse an XML file to a tree and free it - Demonstrate the use of xmlReadFile() to read an XML file into a tree and and xmlFreeDoc() to free the resulting tree - parse1 test1.xml - parse1 test1.xml - Daniel Veillard - see Copyright for the status of this software. -
      Parsing
      - - <libxml/tree.h> - <libxml/parser.h> - - - - - - - - - -
      - - Parse an XML file with an xmlReader - Demonstrate the use of xmlReaderForFile() to parse an XML file and dump the informations about the nodes found in the process. (Note that the XMLReader functions require libxml2 version later than 2.6.) - reader1 <filename> - reader1 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp - Daniel Veillard - see Copyright for the status of this software. -
      xmlReader
      - - <libxml/xmlreader.h> - - - - - - - - - - - - - - - - - -
      Load a document, locate subelements with XPath, modify said elements and save the resulting document. Shows how to make a full round-trip from a load/edit/save @@ -81,148 +32,57 @@ - - Example of custom Input/Output - Demonstrate the use of xmlRegisterInputCallbacks to build a custom I/O layer, this is used in an XInclude method context to show how dynamic document can be built in a clean way. - io1 - io1 > io1.tmp ; diff io1.tmp io1.res ; rm -f io1.tmp + + Parse an XML file with an xmlReader + Demonstrate the use of xmlReaderForFile() to parse an XML file and dump the informations about the nodes found in the process. (Note that the XMLReader functions require libxml2 version later than 2.6.) + reader1 <filename> + reader1 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp Daniel Veillard see Copyright for the status of this software. -
      InputOutput
      +
      xmlReader
      - <libxml/parser.h> - <libxml/xmlIO.h> - <libxml/xinclude.h> - <libxml/tree.h> + <libxml/xmlreader.h> - - - - - - - - - + + + + + + + + + + + + + +
      - - Show how to extract subdocuments with xmlReader - Demonstrate the use of xmlTextReaderPreservePattern() to parse an XML file with the xmlReader while collecting only some subparts of the document. (Note that the XMLReader functions require libxml2 version later than 2.6.) - reader3 - reader3 > reader3.tmp ; diff reader3.tmp reader3.res ; rm reader3.tmp - Daniel Veillard + + Parse multiple XML files reusing an xmlReader + Demonstrate the use of xmlReaderForFile() and xmlReaderNewFile to parse XML files while reusing the reader object and parser context. (Note that the XMLReader functions require libxml2 version later than 2.6.) + reader4 <filename> [ filename ... ] + reader4 test1.xml test2.xml test3.xml > reader4.tmp ; diff reader4.tmp reader4.res ; rm reader4.tmp + Graham Bennett see Copyright for the status of this software.
      xmlReader
      <libxml/xmlreader.h> - - - - - - - - - - - - -
      - - use various APIs for the xmlWriter - tests a number of APIs for the xmlWriter, especially the various methods to write to a filename, to a memory buffer, to a new document, or to a subtree. It shows how to do encoding string conversions too. The resulting documents are then serialized. - testWriter - testWriter ; for i in 1 2 3 4 ; do diff writer.xml writer$$i.res ; done ; rm writer*.res - Alfred Mickautsch - see Copyright for the status of this software. -
      xmlWriter
      - - <libxml/encoding.h> - <libxml/xmlwriter.h> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - - Navigates a tree to print element names - Parse a file to a tree, use xmlDocGetRootElement() to get the root element, then walk the document and print all the element name in document order. - tree1 filename_or_URL - tree1 test2.xml > tree1.tmp ; diff tree1.tmp tree1.res ; rm tree1.tmp - Dodji Seketeli - see Copyright for the status of this software. -
      Tree
      - - <libxml/tree.h> - <libxml/parser.h> - - - - - - - -
      - - Creates a tree - Shows how to create document, nodes and dump it to stdout or file. - tree2 <filename> -Default output: stdout - tree2 > tree2.tmp ; diff tree2.tmp tree2.res ; rm tree2.tmp - Lucas Brasilino <brasilino@recife.pe.gov.br> - see Copyright for the status of this software -
      Tree
      - - <libxml/tree.h> - <libxml/parser.h> - - - - - - - - - - - + + + + + + + + + +
      @@ -243,7 +103,11 @@ + + + + @@ -259,14 +123,17 @@ + + + @@ -275,24 +142,73 @@ - - Parse multiple XML files reusing an xmlReader - Demonstrate the use of xmlReaderForFile() and xmlReaderNewFile to parse XML files while reusing the reader object and parser context. (Note that the XMLReader functions require libxml2 version later than 2.6.) - reader4 <filename> [ filename ... ] - reader4 test1.xml test2.xml test3.xml > reader4.tmp ; diff reader4.tmp reader4.res ; rm reader4.tmp - Graham Bennett + + Parse an XML document in memory to a tree and free it + Demonstrate the use of xmlReadMemory() to read an XML file into a tree and and xmlFreeDoc() to free the resulting tree + parse3 + parse3 + Daniel Veillard + see Copyright for the status of this software. +
      Parsing
      + + <libxml/tree.h> + <libxml/parser.h> + + + + + + + + + +
      + + Show how to extract subdocuments with xmlReader + Demonstrate the use of xmlTextReaderPreservePattern() to parse an XML file with the xmlReader while collecting only some subparts of the document. (Note that the XMLReader functions require libxml2 version later than 2.6.) + reader3 + reader3 > reader3.tmp ; diff reader3.tmp reader3.res ; rm reader3.tmp + Daniel Veillard see Copyright for the status of this software.
      xmlReader
      <libxml/xmlreader.h> - - - - - - + + + + + + + + + + +
      + + Creates a tree + Shows how to create document, nodes and dump it to stdout or file. + tree2 <filename> -Default output: stdout + tree2 > tree2.tmp ; diff tree2.tmp tree2.res ; rm tree2.tmp + Lucas Brasilino <brasilino@recife.pe.gov.br> + see Copyright for the status of this software +
      Tree
      + + <libxml/tree.h> + <libxml/parser.h> + + + + + + + + + + + +
      @@ -312,22 +228,93 @@ + - - Parse an XML document in memory to a tree and free it - Demonstrate the use of xmlReadMemory() to read an XML file into a tree and and xmlFreeDoc() to free the resulting tree - parse3 - parse3 + + Output to char buffer + Demonstrate the use of xmlDocDumpMemory to output document to a character buffer + io2 + io2 > io2.tmp ; diff io2.tmp io2.res ; rm -f io2.tmp + John Fleck + see Copyright for the status of this software. +
      InputOutput
      + + <libxml/parser.h> + + + + + + + + + + +
      + + use various APIs for the xmlWriter + tests a number of APIs for the xmlWriter, especially the various methods to write to a filename, to a memory buffer, to a new document, or to a subtree. It shows how to do encoding string conversions too. The resulting documents are then serialized. + testWriter + testWriter ; for i in 1 2 3 4 ; do diff writer.xml writer$$i.res ; done ; rm writer*.res + Alfred Mickautsch + see Copyright for the status of this software. +
      xmlWriter
      + + <libxml/encoding.h> + <libxml/xmlwriter.h> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + Example of custom Input/Output + Demonstrate the use of xmlRegisterInputCallbacks to build a custom I/O layer, this is used in an XInclude method context to show how dynamic document can be built in a clean way. + io1 + io1 > io1.tmp ; diff io1.tmp io1.res ; rm -f io1.tmp Daniel Veillard see Copyright for the status of this software. -
      Parsing
      +
      InputOutput
      - <libxml/tree.h> <libxml/parser.h> + <libxml/xmlIO.h> + <libxml/xinclude.h> + <libxml/tree.h> - + + + +
      @@ -363,24 +350,402 @@ - - Output to char buffer - Demonstrate the use of xmlDocDumpMemory to output document to a character buffer - io2 - io2 > io2.tmp ; diff io2.tmp io2.res ; rm -f io2.tmp - John Fleck + + Parse an XML file to a tree and free it + Demonstrate the use of xmlReadFile() to read an XML file into a tree and and xmlFreeDoc() to free the resulting tree + parse1 test1.xml + parse1 test1.xml + Daniel Veillard see Copyright for the status of this software. -
      InputOutput
      +
      Parsing
      + <libxml/tree.h> <libxml/parser.h> - - - - - - - + + +
      + + Navigates a tree to print element names + Parse a file to a tree, use xmlDocGetRootElement() to get the root element, then walk the document and print all the element name in document order. + tree1 filename_or_URL + tree1 test2.xml > tree1.tmp ; diff tree1.tmp tree1.res ; rm tree1.tmp + Dodji Seketeli + see Copyright for the status of this software. +
      Tree
      + + <libxml/tree.h> + <libxml/parser.h> + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + +
      +
      + + + + +
      +
      + + +
      +
      + + +
      +
      + + + + +
      +
      + +
      +
      +
      diff --git a/doc/html/book1.html b/doc/html/book1.html index 4a4962a..70263a1 100644 --- a/doc/html/book1.html +++ b/doc/html/book1.html @@ -10,4 +10,4 @@ A:link, A:visited, A:active { text-decoration: underline } Reference Manual for libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Reference Manual for libxml2

      API Menu
      API Indexes
      Related links

      Table of Contents

      • DOCBparser: old DocBook SGML parser
      • HTMLparser: interface for an HTML 4.0 non-verifying parser
      • HTMLtree: specific APIs to process HTML tree, especially serialization
      • SAX: Old SAX version 1 handler, deprecated
      • SAX2: SAX2 parser interface used to build the DOM tree
      • c14n: Provide Canonical XML and Exclusive XML Canonicalization
      • catalog: interfaces to the Catalog handling system
      • chvalid: Unicode character range checking
      • debugXML: Tree debugging APIs
      • dict: string dictionnary
      • encoding: interface for the encoding conversion functions
      • entities: interface for the XML entities handling
      • globals: interface for all global variables of the library
      • hash: Chained hash tables
      • list: lists interfaces
      • nanoftp: minimal FTP implementation
      • nanohttp: minimal HTTP implementation
      • parser: the core parser module
      • parserInternals: internals routines exported by the parser.
      • pattern: pattern expression handling
      • relaxng: implementation of the Relax-NG validation
      • schemasInternals: internal interfaces for XML Schemas
      • schematron: XML Schemastron implementation
      • threads: interfaces for thread handling
      • tree: interfaces for tree manipulation
      • uri: library of generic URI related routines
      • valid: The DTD validation
      • xinclude: implementation of XInclude
      • xlink: unfinished XLink detection module
      • xmlIO: interface for the I/O interfaces used by the parser
      • xmlautomata: API to build regexp automata
      • xmlerror: error handling
      • xmlexports: macros for marking symbols as exportable/importable.
      • xmlmemory: interface for the memory allocator
      • xmlmodule: dynamic module loading
      • xmlreader: the XMLReader implementation
      • xmlregexp: regular expressions handling
      • xmlsave: the XML document serializer
      • xmlschemas: incomplete XML Schemas structure implementation
      • xmlschemastypes: implementation of XML Schema Datatypes
      • xmlstring: set of routines to process strings
      • xmlunicode: Unicode character APIs
      • xmlversion: compile-time version informations
      • xmlwriter: text writing API for XML
      • xpath: XML Path Language implementation
      • xpathInternals: internal interfaces for XML Path Language implementation
      • xpointer: API to handle XML Pointers

      Daniel Veillard

      + Reference Manual for libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Reference Manual for libxml2

      API Menu
      API Indexes
      Related links

      Table of Contents

      • DOCBparser: old DocBook SGML parser
      • HTMLparser: interface for an HTML 4.0 non-verifying parser
      • HTMLtree: specific APIs to process HTML tree, especially serialization
      • SAX: Old SAX version 1 handler, deprecated
      • SAX2: SAX2 parser interface used to build the DOM tree
      • c14n: Provide Canonical XML and Exclusive XML Canonicalization
      • catalog: interfaces to the Catalog handling system
      • chvalid: Unicode character range checking
      • debugXML: Tree debugging APIs
      • dict: string dictionnary
      • encoding: interface for the encoding conversion functions
      • entities: interface for the XML entities handling
      • globals: interface for all global variables of the library
      • hash: Chained hash tables
      • list: lists interfaces
      • nanoftp: minimal FTP implementation
      • nanohttp: minimal HTTP implementation
      • parser: the core parser module
      • parserInternals: internals routines exported by the parser.
      • pattern: pattern expression handling
      • relaxng: implementation of the Relax-NG validation
      • schemasInternals: internal interfaces for XML Schemas
      • schematron: XML Schemastron implementation
      • threads: interfaces for thread handling
      • tree: interfaces for tree manipulation
      • uri: library of generic URI related routines
      • valid: The DTD validation
      • xinclude: implementation of XInclude
      • xlink: unfinished XLink detection module
      • xmlIO: interface for the I/O interfaces used by the parser
      • xmlautomata: API to build regexp automata
      • xmlerror: error handling
      • xmlexports: macros for marking symbols as exportable/importable.
      • xmlmemory: interface for the memory allocator
      • xmlmodule: dynamic module loading
      • xmlreader: the XMLReader implementation
      • xmlregexp: regular expressions handling
      • xmlsave: the XML document serializer
      • xmlschemas: incomplete XML Schemas structure implementation
      • xmlschemastypes: implementation of XML Schema Datatypes
      • xmlstring: set of routines to process strings
      • xmlunicode: Unicode character APIs
      • xmlversion: compile-time version informations
      • xmlwriter: text writing API for XML
      • xpath: XML Path Language implementation
      • xpathInternals: internal interfaces for XML Path Language implementation
      • xpointer: API to handle XML Pointers

      Daniel Veillard

      diff --git a/doc/html/index.html b/doc/html/index.html index 4a4962a..70263a1 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -10,4 +10,4 @@ A:link, A:visited, A:active { text-decoration: underline } Reference Manual for libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Reference Manual for libxml2

      API Menu
      API Indexes
      Related links

      Table of Contents

      • DOCBparser: old DocBook SGML parser
      • HTMLparser: interface for an HTML 4.0 non-verifying parser
      • HTMLtree: specific APIs to process HTML tree, especially serialization
      • SAX: Old SAX version 1 handler, deprecated
      • SAX2: SAX2 parser interface used to build the DOM tree
      • c14n: Provide Canonical XML and Exclusive XML Canonicalization
      • catalog: interfaces to the Catalog handling system
      • chvalid: Unicode character range checking
      • debugXML: Tree debugging APIs
      • dict: string dictionnary
      • encoding: interface for the encoding conversion functions
      • entities: interface for the XML entities handling
      • globals: interface for all global variables of the library
      • hash: Chained hash tables
      • list: lists interfaces
      • nanoftp: minimal FTP implementation
      • nanohttp: minimal HTTP implementation
      • parser: the core parser module
      • parserInternals: internals routines exported by the parser.
      • pattern: pattern expression handling
      • relaxng: implementation of the Relax-NG validation
      • schemasInternals: internal interfaces for XML Schemas
      • schematron: XML Schemastron implementation
      • threads: interfaces for thread handling
      • tree: interfaces for tree manipulation
      • uri: library of generic URI related routines
      • valid: The DTD validation
      • xinclude: implementation of XInclude
      • xlink: unfinished XLink detection module
      • xmlIO: interface for the I/O interfaces used by the parser
      • xmlautomata: API to build regexp automata
      • xmlerror: error handling
      • xmlexports: macros for marking symbols as exportable/importable.
      • xmlmemory: interface for the memory allocator
      • xmlmodule: dynamic module loading
      • xmlreader: the XMLReader implementation
      • xmlregexp: regular expressions handling
      • xmlsave: the XML document serializer
      • xmlschemas: incomplete XML Schemas structure implementation
      • xmlschemastypes: implementation of XML Schema Datatypes
      • xmlstring: set of routines to process strings
      • xmlunicode: Unicode character APIs
      • xmlversion: compile-time version informations
      • xmlwriter: text writing API for XML
      • xpath: XML Path Language implementation
      • xpathInternals: internal interfaces for XML Path Language implementation
      • xpointer: API to handle XML Pointers

      Daniel Veillard

      + Reference Manual for libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Reference Manual for libxml2

      API Menu
      API Indexes
      Related links

      Table of Contents

      • DOCBparser: old DocBook SGML parser
      • HTMLparser: interface for an HTML 4.0 non-verifying parser
      • HTMLtree: specific APIs to process HTML tree, especially serialization
      • SAX: Old SAX version 1 handler, deprecated
      • SAX2: SAX2 parser interface used to build the DOM tree
      • c14n: Provide Canonical XML and Exclusive XML Canonicalization
      • catalog: interfaces to the Catalog handling system
      • chvalid: Unicode character range checking
      • debugXML: Tree debugging APIs
      • dict: string dictionnary
      • encoding: interface for the encoding conversion functions
      • entities: interface for the XML entities handling
      • globals: interface for all global variables of the library
      • hash: Chained hash tables
      • list: lists interfaces
      • nanoftp: minimal FTP implementation
      • nanohttp: minimal HTTP implementation
      • parser: the core parser module
      • parserInternals: internals routines exported by the parser.
      • pattern: pattern expression handling
      • relaxng: implementation of the Relax-NG validation
      • schemasInternals: internal interfaces for XML Schemas
      • schematron: XML Schemastron implementation
      • threads: interfaces for thread handling
      • tree: interfaces for tree manipulation
      • uri: library of generic URI related routines
      • valid: The DTD validation
      • xinclude: implementation of XInclude
      • xlink: unfinished XLink detection module
      • xmlIO: interface for the I/O interfaces used by the parser
      • xmlautomata: API to build regexp automata
      • xmlerror: error handling
      • xmlexports: macros for marking symbols as exportable/importable.
      • xmlmemory: interface for the memory allocator
      • xmlmodule: dynamic module loading
      • xmlreader: the XMLReader implementation
      • xmlregexp: regular expressions handling
      • xmlsave: the XML document serializer
      • xmlschemas: incomplete XML Schemas structure implementation
      • xmlschemastypes: implementation of XML Schema Datatypes
      • xmlstring: set of routines to process strings
      • xmlunicode: Unicode character APIs
      • xmlversion: compile-time version informations
      • xmlwriter: text writing API for XML
      • xpath: XML Path Language implementation
      • xpathInternals: internal interfaces for XML Path Language implementation
      • xpointer: API to handle XML Pointers

      Daniel Veillard

      diff --git a/doc/html/libxml-DOCBparser.html b/doc/html/libxml-DOCBparser.html index c75bd26..bb3ef1c 100644 --- a/doc/html/libxml-DOCBparser.html +++ b/doc/html/libxml-DOCBparser.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module DOCBparser from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module DOCBparser from libxml2

      API Menu
      API Indexes
      Related links

      This module is deprecated

      interface for a DocBook SGML non-verifying parser This code is DEPRECATED, and should not be used anymore.

      Table of Contents

      Typedef xmlParserInputPtr docbParserInputPtr
      +    Module DOCBparser from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module DOCBparser from libxml2

      API Menu
      API Indexes
      Related links

      This module is deprecated

      interface for a DocBook SGML non-verifying parser This code is DEPRECATED, and should not be used anymore.

      Table of Contents

      Typedef xmlParserInputPtr docbParserInputPtr
       
      Typedef xmlParserCtxt docbParserCtxt
       
      Typedef xmlParserCtxtPtr docbParserCtxtPtr
       
      Typedef xmlParserInput docbParserInput
      diff --git a/doc/html/libxml-HTMLparser.html b/doc/html/libxml-HTMLparser.html
      index 694a08f..7034fe0 100644
      --- a/doc/html/libxml-HTMLparser.html
      +++ b/doc/html/libxml-HTMLparser.html
      @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline }
       Module HTMLparser from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module HTMLparser from libxml2

      API Menu
      API Indexes
      Related links

      this module implements an HTML 4.0 non-verifying parser with API compatible with the XML parser ones. It should be able to parse "real world" HTML, even if severely broken from a specification point of view.

      Table of Contents

      #define htmlDefaultSubelement
      #define htmlElementAllowedHereDesc
      #define htmlRequiredAttrs
      Typedef xmlDocPtr htmlDocPtr
      +    Module HTMLparser from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module HTMLparser from libxml2

      API Menu
      API Indexes
      Related links

      this module implements an HTML 4.0 non-verifying parser with API compatible with the XML parser ones. It should be able to parse "real world" HTML, even if severely broken from a specification point of view.

      Table of Contents

      #define htmlDefaultSubelement
      #define htmlElementAllowedHereDesc
      #define htmlRequiredAttrs
      Typedef xmlDocPtr htmlDocPtr
       
      Structure htmlElemDesc
      struct _htmlElemDesc
      Typedef htmlElemDesc * htmlElemDescPtr
       
      Structure htmlEntityDesc
      struct _htmlEntityDesc diff --git a/doc/html/libxml-HTMLtree.html b/doc/html/libxml-HTMLtree.html index 1f430aa..a2270e0 100644 --- a/doc/html/libxml-HTMLtree.html +++ b/doc/html/libxml-HTMLtree.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module HTMLtree from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module HTMLtree from libxml2

      API Menu
      API Indexes
      Related links

      this module implements a few function needed to process tree in an HTML specific way.

      Table of Contents

      #define HTML_COMMENT_NODE
      #define HTML_ENTITY_REF_NODE
      #define HTML_PI_NODE
      #define HTML_PRESERVE_NODE
      #define HTML_TEXT_NODE
      void	htmlDocContentDumpFormatOutput	(xmlOutputBufferPtr buf, 
      xmlDocPtr cur,
      const char * encoding,
      int format)
      + Module HTMLtree from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module HTMLtree from libxml2

      API Menu
      API Indexes
      Related links

      this module implements a few function needed to process tree in an HTML specific way.

      Table of Contents

      #define HTML_COMMENT_NODE
      #define HTML_ENTITY_REF_NODE
      #define HTML_PI_NODE
      #define HTML_PRESERVE_NODE
      #define HTML_TEXT_NODE
      void	htmlDocContentDumpFormatOutput	(xmlOutputBufferPtr buf, 
      xmlDocPtr cur,
      const char * encoding,
      int format)
      void	htmlDocContentDumpOutput	(xmlOutputBufferPtr buf, 
      xmlDocPtr cur,
      const char * encoding)
      int	htmlDocDump			(FILE * f, 
      xmlDocPtr cur)
      void	htmlDocDumpMemory		(xmlDocPtr cur, 
      xmlChar ** mem,
      int * size)
      diff --git a/doc/html/libxml-SAX.html b/doc/html/libxml-SAX.html index d2c8ac3..746c55b 100644 --- a/doc/html/libxml-SAX.html +++ b/doc/html/libxml-SAX.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module SAX from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module SAX from libxml2

      API Menu
      API Indexes
      Related links

      This module is deprecated

      DEPRECATED set of SAX version 1 interfaces used to build the DOM tree.

      Table of Contents

      void	comment			(void * ctx, 
      const xmlChar * value)
      + Module SAX from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module SAX from libxml2

      API Menu
      API Indexes
      Related links

      This module is deprecated

      DEPRECATED set of SAX version 1 interfaces used to build the DOM tree.

      Table of Contents

      void	comment			(void * ctx, 
      const xmlChar * value)
      int	checkNamespace			(void * ctx, 
      xmlChar * namespace)
      int	getColumnNumber			(void * ctx)
      void	entityDecl			(void * ctx, 
      const xmlChar * name,
      int type,
      const xmlChar * publicId,
      const xmlChar * systemId,
      xmlChar * content)
      diff --git a/doc/html/libxml-SAX2.html b/doc/html/libxml-SAX2.html index 028692d..02fdad1 100644 --- a/doc/html/libxml-SAX2.html +++ b/doc/html/libxml-SAX2.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module SAX2 from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module SAX2 from libxml2

      API Menu
      API Indexes
      Related links

      those are the default SAX2 interfaces used by the library when building DOM tree.

      Table of Contents

      void	docbDefaultSAXHandlerInit	(void)
      + Module SAX2 from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module SAX2 from libxml2

      API Menu
      API Indexes
      Related links

      those are the default SAX2 interfaces used by the library when building DOM tree.

      Table of Contents

      void	docbDefaultSAXHandlerInit	(void)
      void	htmlDefaultSAXHandlerInit	(void)
      void	xmlDefaultSAXHandlerInit	(void)
      void	xmlSAX2AttributeDecl		(void * ctx, 
      const xmlChar * elem,
      const xmlChar * fullname,
      int type,
      int def,
      const xmlChar * defaultValue,
      xmlEnumerationPtr tree)
      diff --git a/doc/html/libxml-c14n.html b/doc/html/libxml-c14n.html index a4a1bc3..f4b3ecd 100644 --- a/doc/html/libxml-c14n.html +++ b/doc/html/libxml-c14n.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module c14n from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module c14n from libxml2

      API Menu
      API Indexes
      Related links

      the c14n modules provides a "Canonical XML" implementation

      Table of Contents

      int	xmlC14NDocDumpMemory		(xmlDocPtr doc, 
      xmlNodeSetPtr nodes,
      int exclusive,
      xmlChar ** inclusive_ns_prefixes,
      int with_comments,
      xmlChar ** doc_txt_ptr)
      + Module c14n from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module c14n from libxml2

      API Menu
      API Indexes
      Related links

      the c14n modules provides a "Canonical XML" implementation

      Table of Contents

      int	xmlC14NDocDumpMemory		(xmlDocPtr doc, 
      xmlNodeSetPtr nodes,
      int exclusive,
      xmlChar ** inclusive_ns_prefixes,
      int with_comments,
      xmlChar ** doc_txt_ptr)
      int	xmlC14NDocSave			(xmlDocPtr doc, 
      xmlNodeSetPtr nodes,
      int exclusive,
      xmlChar ** inclusive_ns_prefixes,
      int with_comments,
      const char * filename,
      int compression)
      int	xmlC14NDocSaveTo		(xmlDocPtr doc, 
      xmlNodeSetPtr nodes,
      int exclusive,
      xmlChar ** inclusive_ns_prefixes,
      int with_comments,
      xmlOutputBufferPtr buf)
      int	xmlC14NExecute			(xmlDocPtr doc, 
      xmlC14NIsVisibleCallback is_visible_callback,
      void * user_data,
      int exclusive,
      xmlChar ** inclusive_ns_prefixes,
      int with_comments,
      xmlOutputBufferPtr buf)
      diff --git a/doc/html/libxml-catalog.html b/doc/html/libxml-catalog.html index 51da79b..9a58bbf 100644 --- a/doc/html/libxml-catalog.html +++ b/doc/html/libxml-catalog.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module catalog from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module catalog from libxml2

      API Menu
      API Indexes
      Related links

      the catalog module implements the support for XML Catalogs and SGML catalogs

      Table of Contents

      #define XML_CATALOGS_NAMESPACE
      #define XML_CATALOG_PI
      Structure xmlCatalog
      struct _xmlCatalog + Module catalog from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module catalog from libxml2

      API Menu
      API Indexes
      Related links

      the catalog module implements the support for XML Catalogs and SGML catalogs

      Table of Contents

      #define XML_CATALOGS_NAMESPACE
      #define XML_CATALOG_PI
      Structure xmlCatalog
      struct _xmlCatalog The content of this structure is not made public by the API.
      Enum xmlCatalogAllow
       
      Enum xmlCatalogPrefer
      diff --git a/doc/html/libxml-chvalid.html b/doc/html/libxml-chvalid.html
      index b0ea1d4..4b1ebf1 100644
      --- a/doc/html/libxml-chvalid.html
      +++ b/doc/html/libxml-chvalid.html
      @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline }
       Module chvalid from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module chvalid from libxml2

      API Menu
      API Indexes
      Related links

      this module exports interfaces for the character range validation APIs This file is automatically generated from the cvs source definition files using the genChRanges.py Python script

      Table of Contents

      #define xmlIsBaseCharQ
      #define xmlIsBaseChar_ch
      #define xmlIsBlankQ
      #define xmlIsBlank_ch
      #define xmlIsCharQ
      #define xmlIsChar_ch
      #define xmlIsCombiningQ
      #define xmlIsDigitQ
      #define xmlIsDigit_ch
      #define xmlIsExtenderQ
      #define xmlIsExtender_ch
      #define xmlIsIdeographicQ
      #define xmlIsPubidCharQ
      #define xmlIsPubidChar_ch
      Structure xmlChLRange
      struct _xmlChLRange + Module chvalid from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module chvalid from libxml2

      API Menu
      API Indexes
      Related links

      this module exports interfaces for the character range validation APIs This file is automatically generated from the cvs source definition files using the genChRanges.py Python script

      Table of Contents

      #define xmlIsBaseCharQ
      #define xmlIsBaseChar_ch
      #define xmlIsBlankQ
      #define xmlIsBlank_ch
      #define xmlIsCharQ
      #define xmlIsChar_ch
      #define xmlIsCombiningQ
      #define xmlIsDigitQ
      #define xmlIsDigit_ch
      #define xmlIsExtenderQ
      #define xmlIsExtender_ch
      #define xmlIsIdeographicQ
      #define xmlIsPubidCharQ
      #define xmlIsPubidChar_ch
      Structure xmlChLRange
      struct _xmlChLRange
      Typedef xmlChLRange * xmlChLRangePtr
       
      Structure xmlChRangeGroup
      struct _xmlChRangeGroup
      Typedef xmlChRangeGroup * xmlChRangeGroupPtr
      diff --git a/doc/html/libxml-debugXML.html b/doc/html/libxml-debugXML.html
      index ae944be..6cae0a6 100644
      --- a/doc/html/libxml-debugXML.html
      +++ b/doc/html/libxml-debugXML.html
      @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline }
       Module debugXML from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module debugXML from libxml2

      API Menu
      API Indexes
      Related links

      Interfaces to a set of routines used for debugging the tree produced by the XML parser.

      Table of Contents

      Structure xmlShellCtxt
      struct _xmlShellCtxt + Module debugXML from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module debugXML from libxml2

      API Menu
      API Indexes
      Related links

      Interfaces to a set of routines used for debugging the tree produced by the XML parser.

      Table of Contents

      Structure xmlShellCtxt
      struct _xmlShellCtxt
      Typedef xmlShellCtxt * xmlShellCtxtPtr
       
      const char *	xmlBoolToText		(int boolval)
      int	xmlDebugCheckDocument		(FILE * output, 
      xmlDocPtr doc)
      diff --git a/doc/html/libxml-dict.html b/doc/html/libxml-dict.html index ae1b99a..412a881 100644 --- a/doc/html/libxml-dict.html +++ b/doc/html/libxml-dict.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module dict from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module dict from libxml2

      API Menu
      API Indexes
      Related links

      dictionary of reusable strings, just used to avoid allocation and freeing operations.

      Table of Contents

      Structure xmlDict
      struct _xmlDict + Module dict from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module dict from libxml2

      API Menu
      API Indexes
      Related links

      dictionary of reusable strings, just used to avoid allocation and freeing operations.

      Table of Contents

      Structure xmlDict
      struct _xmlDict The content of this structure is not made public by the API.
      Typedef xmlDict * xmlDictPtr
       
      void	xmlDictCleanup			(void)
      diff --git a/doc/html/libxml-encoding.html b/doc/html/libxml-encoding.html index 259f573..16ced2a 100644 --- a/doc/html/libxml-encoding.html +++ b/doc/html/libxml-encoding.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module encoding from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module encoding from libxml2

      API Menu
      API Indexes
      Related links

      interface for the encoding conversion functions needed for XML basic encoding and iconv() support. Related specs are rfc2044 (UTF-8 and UTF-16) F. Yergeau Alis Technologies [ISO-10646] UTF-8 and UTF-16 in Annexes [ISO-8859-1] ISO Latin-1 characters codes. [UNICODE] The Unicode Consortium, "The Unicode Standard -- Worldwide Character Encoding -- Version 1.0", Addison- Wesley, Volume 1, 1991, Volume 2, 1992. UTF-8 is described in Unicode Technical Report #4. [US-ASCII] Coded Character Set--7-bit American Standard Code for Information Interchange, ANSI X3.4-1986.

      Table of Contents

      Enum xmlCharEncoding
      +    Module encoding from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module encoding from libxml2

      API Menu
      API Indexes
      Related links

      interface for the encoding conversion functions needed for XML basic encoding and iconv() support. Related specs are rfc2044 (UTF-8 and UTF-16) F. Yergeau Alis Technologies [ISO-10646] UTF-8 and UTF-16 in Annexes [ISO-8859-1] ISO Latin-1 characters codes. [UNICODE] The Unicode Consortium, "The Unicode Standard -- Worldwide Character Encoding -- Version 1.0", Addison- Wesley, Volume 1, 1991, Volume 2, 1992. UTF-8 is described in Unicode Technical Report #4. [US-ASCII] Coded Character Set--7-bit American Standard Code for Information Interchange, ANSI X3.4-1986.

      Table of Contents

      Enum xmlCharEncoding
       
      Structure xmlCharEncodingHandler
      struct _xmlCharEncodingHandler
      Typedef xmlCharEncodingHandler * xmlCharEncodingHandlerPtr
       
      int	UTF8Toisolat1			(unsigned char * out, 
      int * outlen,
      const unsigned char * in,
      int * inlen)
      diff --git a/doc/html/libxml-entities.html b/doc/html/libxml-entities.html index ac203f3..fe4ea86 100644 --- a/doc/html/libxml-entities.html +++ b/doc/html/libxml-entities.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module entities from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module entities from libxml2

      API Menu
      API Indexes
      Related links

      this module provides some of the entity API needed for the parser and applications.

      Table of Contents

      Structure xmlEntitiesTable
      struct _xmlHashTable + Module entities from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module entities from libxml2

      API Menu
      API Indexes
      Related links

      this module provides some of the entity API needed for the parser and applications.

      Table of Contents

      Structure xmlEntitiesTable
      struct _xmlHashTable The content of this structure is not made public by the API.
      Typedef xmlEntitiesTable * xmlEntitiesTablePtr
       
      Enum xmlEntityType
      diff --git a/doc/html/libxml-globals.html b/doc/html/libxml-globals.html
      index 1e7c1e9..fd9a06c 100644
      --- a/doc/html/libxml-globals.html
      +++ b/doc/html/libxml-globals.html
      @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline }
       Module globals from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module globals from libxml2

      API Menu
      API Indexes
      Related links

      all the global variables and thread handling for those variables is handled by this module. The bottom of this file is automatically generated by build_glob.py based on the description file global.data

      Table of Contents

      Structure xmlGlobalState
      struct _xmlGlobalState + Module globals from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module globals from libxml2

      API Menu
      API Indexes
      Related links

      all the global variables and thread handling for those variables is handled by this module. The bottom of this file is automatically generated by build_glob.py based on the description file global.data

      Table of Contents

      Structure xmlGlobalState
      struct _xmlGlobalState
      Typedef xmlGlobalState * xmlGlobalStatePtr
       
      void	xmlCleanupGlobals		(void)
      xmlDeregisterNodeFunc	xmlDeregisterNodeDefault	(xmlDeregisterNodeFunc func)
      diff --git a/doc/html/libxml-hash.html b/doc/html/libxml-hash.html index e2ffa53..ef5b903 100644 --- a/doc/html/libxml-hash.html +++ b/doc/html/libxml-hash.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module hash from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module hash from libxml2

      API Menu
      API Indexes
      Related links

      This module implements the hash table support used in various places in the library.

      Table of Contents

      #define XML_CAST_FPTR
      Structure xmlHashTable
      struct _xmlHashTable + Module hash from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module hash from libxml2

      API Menu
      API Indexes
      Related links

      This module implements the hash table support used in various places in the library.

      Table of Contents

      #define XML_CAST_FPTR
      Structure xmlHashTable
      struct _xmlHashTable The content of this structure is not made public by the API.
      Typedef xmlHashTable * xmlHashTablePtr
       
      int	xmlHashAddEntry			(xmlHashTablePtr table, 
      const xmlChar * name,
      void * userdata)
      diff --git a/doc/html/libxml-lib.html b/doc/html/libxml-lib.html index 4a4962a..70263a1 100644 --- a/doc/html/libxml-lib.html +++ b/doc/html/libxml-lib.html @@ -10,4 +10,4 @@ A:link, A:visited, A:active { text-decoration: underline } Reference Manual for libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Reference Manual for libxml2

      API Menu
      API Indexes
      Related links

      Table of Contents

      • DOCBparser: old DocBook SGML parser
      • HTMLparser: interface for an HTML 4.0 non-verifying parser
      • HTMLtree: specific APIs to process HTML tree, especially serialization
      • SAX: Old SAX version 1 handler, deprecated
      • SAX2: SAX2 parser interface used to build the DOM tree
      • c14n: Provide Canonical XML and Exclusive XML Canonicalization
      • catalog: interfaces to the Catalog handling system
      • chvalid: Unicode character range checking
      • debugXML: Tree debugging APIs
      • dict: string dictionnary
      • encoding: interface for the encoding conversion functions
      • entities: interface for the XML entities handling
      • globals: interface for all global variables of the library
      • hash: Chained hash tables
      • list: lists interfaces
      • nanoftp: minimal FTP implementation
      • nanohttp: minimal HTTP implementation
      • parser: the core parser module
      • parserInternals: internals routines exported by the parser.
      • pattern: pattern expression handling
      • relaxng: implementation of the Relax-NG validation
      • schemasInternals: internal interfaces for XML Schemas
      • schematron: XML Schemastron implementation
      • threads: interfaces for thread handling
      • tree: interfaces for tree manipulation
      • uri: library of generic URI related routines
      • valid: The DTD validation
      • xinclude: implementation of XInclude
      • xlink: unfinished XLink detection module
      • xmlIO: interface for the I/O interfaces used by the parser
      • xmlautomata: API to build regexp automata
      • xmlerror: error handling
      • xmlexports: macros for marking symbols as exportable/importable.
      • xmlmemory: interface for the memory allocator
      • xmlmodule: dynamic module loading
      • xmlreader: the XMLReader implementation
      • xmlregexp: regular expressions handling
      • xmlsave: the XML document serializer
      • xmlschemas: incomplete XML Schemas structure implementation
      • xmlschemastypes: implementation of XML Schema Datatypes
      • xmlstring: set of routines to process strings
      • xmlunicode: Unicode character APIs
      • xmlversion: compile-time version informations
      • xmlwriter: text writing API for XML
      • xpath: XML Path Language implementation
      • xpathInternals: internal interfaces for XML Path Language implementation
      • xpointer: API to handle XML Pointers

      Daniel Veillard

      + Reference Manual for libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Reference Manual for libxml2

      API Menu
      API Indexes
      Related links

      Table of Contents

      • DOCBparser: old DocBook SGML parser
      • HTMLparser: interface for an HTML 4.0 non-verifying parser
      • HTMLtree: specific APIs to process HTML tree, especially serialization
      • SAX: Old SAX version 1 handler, deprecated
      • SAX2: SAX2 parser interface used to build the DOM tree
      • c14n: Provide Canonical XML and Exclusive XML Canonicalization
      • catalog: interfaces to the Catalog handling system
      • chvalid: Unicode character range checking
      • debugXML: Tree debugging APIs
      • dict: string dictionnary
      • encoding: interface for the encoding conversion functions
      • entities: interface for the XML entities handling
      • globals: interface for all global variables of the library
      • hash: Chained hash tables
      • list: lists interfaces
      • nanoftp: minimal FTP implementation
      • nanohttp: minimal HTTP implementation
      • parser: the core parser module
      • parserInternals: internals routines exported by the parser.
      • pattern: pattern expression handling
      • relaxng: implementation of the Relax-NG validation
      • schemasInternals: internal interfaces for XML Schemas
      • schematron: XML Schemastron implementation
      • threads: interfaces for thread handling
      • tree: interfaces for tree manipulation
      • uri: library of generic URI related routines
      • valid: The DTD validation
      • xinclude: implementation of XInclude
      • xlink: unfinished XLink detection module
      • xmlIO: interface for the I/O interfaces used by the parser
      • xmlautomata: API to build regexp automata
      • xmlerror: error handling
      • xmlexports: macros for marking symbols as exportable/importable.
      • xmlmemory: interface for the memory allocator
      • xmlmodule: dynamic module loading
      • xmlreader: the XMLReader implementation
      • xmlregexp: regular expressions handling
      • xmlsave: the XML document serializer
      • xmlschemas: incomplete XML Schemas structure implementation
      • xmlschemastypes: implementation of XML Schema Datatypes
      • xmlstring: set of routines to process strings
      • xmlunicode: Unicode character APIs
      • xmlversion: compile-time version informations
      • xmlwriter: text writing API for XML
      • xpath: XML Path Language implementation
      • xpathInternals: internal interfaces for XML Path Language implementation
      • xpointer: API to handle XML Pointers

      Daniel Veillard

      diff --git a/doc/html/libxml-list.html b/doc/html/libxml-list.html index b8254bb..41d94af 100644 --- a/doc/html/libxml-list.html +++ b/doc/html/libxml-list.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module list from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module list from libxml2

      API Menu
      API Indexes
      Related links

      this module implement the list support used in various place in the library.

      Table of Contents

      Structure xmlLink
      struct _xmlLink + Module list from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module list from libxml2

      API Menu
      API Indexes
      Related links

      this module implement the list support used in various place in the library.

      Table of Contents

      Structure xmlLink
      struct _xmlLink The content of this structure is not made public by the API.
      Typedef xmlLink * xmlLinkPtr
       
      Structure xmlList
      struct _xmlList diff --git a/doc/html/libxml-nanoftp.html b/doc/html/libxml-nanoftp.html index 32aca49..bf10179 100644 --- a/doc/html/libxml-nanoftp.html +++ b/doc/html/libxml-nanoftp.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module nanoftp from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module nanoftp from libxml2

      API Menu
      API Indexes
      Related links

      minimal FTP implementation allowing to fetch resources like external subset.

      Table of Contents

      Function type: ftpDataCallback
      +    Module nanoftp from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module nanoftp from libxml2

      API Menu
      API Indexes
      Related links

      minimal FTP implementation allowing to fetch resources like external subset.

      Table of Contents

      Function type: ftpDataCallback
       void	ftpDataCallback			(void * userData, 
      const char * data,
      int len)
      Function type: ftpListCallback
      diff --git a/doc/html/libxml-nanohttp.html b/doc/html/libxml-nanohttp.html
      index b26e9d2..39510d3 100644
      --- a/doc/html/libxml-nanohttp.html
      +++ b/doc/html/libxml-nanohttp.html
      @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline }
       Module nanohttp from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module nanohttp from libxml2

      API Menu
      API Indexes
      Related links

      minimal HTTP implementation allowing to fetch resources like external subset.

      Table of Contents

      const char *	xmlNanoHTTPAuthHeader	(void * ctx)
      + Module nanohttp from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module nanohttp from libxml2

      API Menu
      API Indexes
      Related links

      minimal HTTP implementation allowing to fetch resources like external subset.

      Table of Contents

      const char *	xmlNanoHTTPAuthHeader	(void * ctx)
      void	xmlNanoHTTPCleanup		(void)
      void	xmlNanoHTTPClose		(void * ctx)
      int	xmlNanoHTTPContentLength	(void * ctx)
      diff --git a/doc/html/libxml-parser.html b/doc/html/libxml-parser.html index b0849cf..82c6f8e 100644 --- a/doc/html/libxml-parser.html +++ b/doc/html/libxml-parser.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module parser from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module parser from libxml2

      API Menu
      API Indexes
      Related links

      Interfaces, constants and types related to the XML parser

      Table of Contents

      #define XML_COMPLETE_ATTRS
      #define XML_DEFAULT_VERSION
      #define XML_DETECT_IDS
      #define XML_SAX2_MAGIC
      #define XML_SKIP_IDS
      Enum xmlFeature
      +    Module parser from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module parser from libxml2

      API Menu
      API Indexes
      Related links

      Interfaces, constants and types related to the XML parser

      Table of Contents

      #define XML_COMPLETE_ATTRS
      #define XML_DEFAULT_VERSION
      #define XML_DETECT_IDS
      #define XML_SAX2_MAGIC
      #define XML_SKIP_IDS
      Enum xmlFeature
       
      Enum xmlParserInputState
       
      Enum xmlParserMode
       
      Structure xmlParserNodeInfo
      struct _xmlParserNodeInfo @@ -405,7 +405,7 @@ void warningSAXFunc (void * ctx,
      const char * msg,
      ...

      Function: xmlByteConsumed

      long	xmlByteConsumed			(xmlParserCtxtPtr ctxt)

      This function provides the current index of the parser relative to the start of the current entity. This function is computed in bytes from the beginning starting at zero and finishing at the size in byte of the file if parsing a file. The function is of constant cost if the input is UTF-8 but can be costly if run on non-UTF-8 input.

      ctxt:an XML parser context
      Returns:the index in bytes from the beginning of the entity or -1 in case the index could not be computed.

      Function: xmlCleanupParser

      void	xmlCleanupParser		(void)
      -

      Cleanup function for the XML library. It tries to reclaim all parsing related global memory allocated for the library processing. It doesn't deallocate any document related memory. Calling this function should not prevent reusing the library but one should call xmlCleanupParser() only when the process has finished using the library or XML document built with it.

      +

      This function name is somewhat misleading. It does not clean up parser state, it cleans up memory allocated by the library itself. It is a cleanup function for the XML library. It tries to reclaim all related global memory allocated for the library processing. It doesn't deallocate any document related memory. One should call xmlCleanupParser() only when the process has finished using the library and all XML/HTML documents built with it. See also xmlInitParser() which has the opposite function of preparing the library for operations.

      Function: xmlClearNodeInfoSeq

      void	xmlClearNodeInfoSeq		(xmlParserNodeInfoSeqPtr seq)

      -- Clear (release memory and reinitialize) node info sequence

      seq:a node info sequence pointer

      Function: xmlClearParserCtxt

      void	xmlClearParserCtxt		(xmlParserCtxtPtr ctxt)
      @@ -467,7 +467,7 @@ void warningSAXFunc (void * ctx,
      const char * msg,
      ...

      Parse a well-balanced chunk of an XML document called by the parser The allowed sequence for the Well Balanced Chunk is the one defined by the content production in the XML grammar: [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*

      doc:the document the chunk pertains to
      sax:the SAX handler bloc (possibly NULL)
      user_data:The user data returned on SAX callbacks (possibly NULL)
      depth:Used for loop detection, use 0
      string:the input string in UTF8 or ISO-Latin (zero terminated)
      lst:the return value for the set of parsed nodes
      Returns:0 if the chunk is well balanced, -1 in case of args problem and the parser error code otherwise

      Function: xmlParseBalancedChunkMemoryRecover

      int	xmlParseBalancedChunkMemoryRecover	(xmlDocPtr doc, 
      xmlSAXHandlerPtr sax,
      void * user_data,
      int depth,
      const xmlChar * string,
      xmlNodePtr * lst,
      int recover)

      Parse a well-balanced chunk of an XML document called by the parser The allowed sequence for the Well Balanced Chunk is the one defined by the content production in the XML grammar: [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*

      -
      doc:the document the chunk pertains to
      sax:the SAX handler bloc (possibly NULL)
      user_data:The user data returned on SAX callbacks (possibly NULL)
      depth:Used for loop detection, use 0
      string:the input string in UTF8 or ISO-Latin (zero terminated)
      lst:the return value for the set of parsed nodes
      recover:return nodes even if the data is broken (use 0)
      Returns:0 if the chunk is well balanced, -1 in case of args problem and the parser error code otherwise In case recover is set to 1, the nodelist will not be empty even if the parsed chunk is not well balanced.

      Function: xmlParseChunk

      int	xmlParseChunk			(xmlParserCtxtPtr ctxt, 
      const char * chunk,
      int size,
      int terminate)
      +
      doc:the document the chunk pertains to
      sax:the SAX handler bloc (possibly NULL)
      user_data:The user data returned on SAX callbacks (possibly NULL)
      depth:Used for loop detection, use 0
      string:the input string in UTF8 or ISO-Latin (zero terminated)
      lst:the return value for the set of parsed nodes
      recover:return nodes even if the data is broken (use 0)
      Returns:0 if the chunk is well balanced, -1 in case of args problem and the parser error code otherwise In case recover is set to 1, the nodelist will not be empty even if the parsed chunk is not well balanced, assuming the parsing succeeded to some extent.

      Function: xmlParseChunk

      int	xmlParseChunk			(xmlParserCtxtPtr ctxt, 
      const char * chunk,
      int size,
      int terminate)

      Parse a Chunk of memory

      ctxt:an XML parser context
      chunk:an char array
      size:the size in byte of the chunk
      terminate:last chunk indicator
      Returns:zero if no error, the xmlParserErrors otherwise.

      Function: xmlParseCtxtExternalEntity

      int	xmlParseCtxtExternalEntity	(xmlParserCtxtPtr ctx, 
      const xmlChar * URL,
      const xmlChar * ID,
      xmlNodePtr * lst)

      Parse an external general entity within an existing parsing context An external general parsed entity is well-formed if it matches the production labeled extParsedEnt. [78] extParsedEnt ::= TextDecl? content

      @@ -515,12 +515,12 @@ void xmlParserInputDeallocate (xmlChar
      ioread:an I/O read function
      ioclose:an I/O close function
      ioctx:an I/O handler
      URL:the base URL to use for the document
      encoding:the document encoding, or NULL
      options:a combination of xmlParserOption
      Returns:the resulting document tree

      Function: xmlReadMemory

      xmlDocPtr	xmlReadMemory		(const char * buffer, 
      int size,
      const char * URL,
      const char * encoding,
      int options)

      parse an XML in-memory document and build a tree.

      buffer:a pointer to a char array
      size:the size of the array
      URL:the base URL to use for the document
      encoding:the document encoding, or NULL
      options:a combination of xmlParserOption
      Returns:the resulting document tree

      Function: xmlRecoverDoc

      xmlDocPtr	xmlRecoverDoc		(xmlChar * cur)
      -

      parse an XML in-memory document and build a tree. In the case the document is not Well Formed, a tree is built anyway

      -
      cur:a pointer to an array of xmlChar
      Returns:the resulting document tree

      Function: xmlRecoverFile

      xmlDocPtr	xmlRecoverFile		(const char * filename)
      -

      parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. In the case the document is not Well Formed, a tree is built anyway

      -
      filename:the filename
      Returns:the resulting document tree

      Function: xmlRecoverMemory

      xmlDocPtr	xmlRecoverMemory	(const char * buffer, 
      int size)
      -

      parse an XML in-memory block and build a tree. In the case the document is not Well Formed, a tree is built anyway

      -
      buffer:an pointer to a char array
      size:the size of the array
      Returns:the resulting document tree

      Function: xmlSAXParseDTD

      xmlDtdPtr	xmlSAXParseDTD		(xmlSAXHandlerPtr sax, 
      const xmlChar * ExternalID,
      const xmlChar * SystemID)
      +

      parse an XML in-memory document and build a tree. In the case the document is not Well Formed, a attempt to build a tree is tried anyway

      +
      cur:a pointer to an array of xmlChar
      Returns:the resulting document tree or NULL in case of failure

      Function: xmlRecoverFile

      xmlDocPtr	xmlRecoverFile		(const char * filename)
      +

      parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. In the case the document is not Well Formed, it attempts to build a tree anyway

      +
      filename:the filename
      Returns:the resulting document tree or NULL in case of failure

      Function: xmlRecoverMemory

      xmlDocPtr	xmlRecoverMemory	(const char * buffer, 
      int size)
      +

      parse an XML in-memory block and build a tree. In the case the document is not Well Formed, an attempt to build a tree is tried anyway

      +
      buffer:an pointer to a char array
      size:the size of the array
      Returns:the resulting document tree or NULL in case of error

      Function: xmlSAXParseDTD

      xmlDtdPtr	xmlSAXParseDTD		(xmlSAXHandlerPtr sax, 
      const xmlChar * ExternalID,
      const xmlChar * SystemID)

      Load and parse an external subset.

      sax:the SAX handler block
      ExternalID:a NAME* containing the External ID of the DTD
      SystemID:a NAME* containing the URL to the DTD
      Returns:the resulting xmlDtdPtr or NULL in case of error.

      Function: xmlSAXParseDoc

      xmlDocPtr	xmlSAXParseDoc		(xmlSAXHandlerPtr sax, 
      const xmlChar * cur,
      int recovery)

      parse an XML in-memory document and build a tree. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.

      diff --git a/doc/html/libxml-parserInternals.html b/doc/html/libxml-parserInternals.html index 97de5a5..3c12a6a 100644 --- a/doc/html/libxml-parserInternals.html +++ b/doc/html/libxml-parserInternals.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module parserInternals from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module parserInternals from libxml2

      API Menu
      API Indexes
      Related links

      this module exports a number of internal parsing routines they are not really all intended for applications but can prove useful doing low level processing.

      Table of Contents

      #define INPUT_CHUNK
      #define IS_ASCII_DIGIT
      #define IS_ASCII_LETTER
      #define IS_BASECHAR
      #define IS_BLANK
      #define IS_BLANK_CH
      #define IS_BYTE_CHAR
      #define IS_CHAR
      #define IS_CHAR_CH
      #define IS_COMBINING
      #define IS_COMBINING_CH
      #define IS_DIGIT
      #define IS_DIGIT_CH
      #define IS_EXTENDER
      #define IS_EXTENDER_CH
      #define IS_IDEOGRAPHIC
      #define IS_LETTER
      #define IS_LETTER_CH
      #define IS_PUBIDCHAR
      #define IS_PUBIDCHAR_CH
      #define MOVETO_ENDTAG
      #define MOVETO_STARTTAG
      #define SKIP_EOL
      #define XML_MAX_NAMELEN
      #define XML_SUBSTITUTE_BOTH
      #define XML_SUBSTITUTE_NONE
      #define XML_SUBSTITUTE_PEREF
      #define XML_SUBSTITUTE_REF
      htmlParserCtxtPtr	htmlCreateFileParserCtxt	(const char * filename, 
      const char * encoding)
      + Module parserInternals from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module parserInternals from libxml2

      API Menu
      API Indexes
      Related links

      this module exports a number of internal parsing routines they are not really all intended for applications but can prove useful doing low level processing.

      Table of Contents

      #define INPUT_CHUNK
      #define IS_ASCII_DIGIT
      #define IS_ASCII_LETTER
      #define IS_BASECHAR
      #define IS_BLANK
      #define IS_BLANK_CH
      #define IS_BYTE_CHAR
      #define IS_CHAR
      #define IS_CHAR_CH
      #define IS_COMBINING
      #define IS_COMBINING_CH
      #define IS_DIGIT
      #define IS_DIGIT_CH
      #define IS_EXTENDER
      #define IS_EXTENDER_CH
      #define IS_IDEOGRAPHIC
      #define IS_LETTER
      #define IS_LETTER_CH
      #define IS_PUBIDCHAR
      #define IS_PUBIDCHAR_CH
      #define MOVETO_ENDTAG
      #define MOVETO_STARTTAG
      #define SKIP_EOL
      #define XML_MAX_NAMELEN
      #define XML_SUBSTITUTE_BOTH
      #define XML_SUBSTITUTE_NONE
      #define XML_SUBSTITUTE_PEREF
      #define XML_SUBSTITUTE_REF
      htmlParserCtxtPtr	htmlCreateFileParserCtxt	(const char * filename, 
      const char * encoding)
      void	htmlInitAutoClose		(void)
      xmlParserInputPtr	inputPop	(xmlParserCtxtPtr ctxt)
      int	inputPush			(xmlParserCtxtPtr ctxt, 
      xmlParserInputPtr value)
      diff --git a/doc/html/libxml-pattern.html b/doc/html/libxml-pattern.html index fe72902..2edeafd 100644 --- a/doc/html/libxml-pattern.html +++ b/doc/html/libxml-pattern.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module pattern from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module pattern from libxml2

      API Menu
      API Indexes
      Related links

      allows to compile and test pattern expressions for nodes either in a tree or based on a parser state.

      Table of Contents

      Structure xmlPattern
      struct _xmlPattern + Module pattern from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module pattern from libxml2

      API Menu
      API Indexes
      Related links

      allows to compile and test pattern expressions for nodes either in a tree or based on a parser state.

      Table of Contents

      Structure xmlPattern
      struct _xmlPattern The content of this structure is not made public by the API.
      Enum xmlPatternFlags
       
      Typedef xmlPattern * xmlPatternPtr
      diff --git a/doc/html/libxml-relaxng.html b/doc/html/libxml-relaxng.html
      index 6a64233..650d058 100644
      --- a/doc/html/libxml-relaxng.html
      +++ b/doc/html/libxml-relaxng.html
      @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline }
       Module relaxng from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module relaxng from libxml2

      API Menu
      API Indexes
      Related links

      implementation of the Relax-NG validation

      Table of Contents

      Structure xmlRelaxNG
      struct _xmlRelaxNG + Module relaxng from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module relaxng from libxml2

      API Menu
      API Indexes
      Related links

      implementation of the Relax-NG validation

      Table of Contents

      Structure xmlRelaxNG
      struct _xmlRelaxNG The content of this structure is not made public by the API.
      Structure xmlRelaxNGParserCtxt
      struct _xmlRelaxNGParserCtxt The content of this structure is not made public by the API. diff --git a/doc/html/libxml-schemasInternals.html b/doc/html/libxml-schemasInternals.html index 96d4150..2ebd4a3 100644 --- a/doc/html/libxml-schemasInternals.html +++ b/doc/html/libxml-schemasInternals.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module schemasInternals from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module schemasInternals from libxml2

      API Menu
      API Indexes
      Related links

      internal interfaces for the XML Schemas handling and schema validity checking The Schemas development is a Work In Progress. Some of those interfaces are not garanteed to be API or ABI stable !

      Table of Contents

      #define XML_SCHEMAS_ANYATTR_LAX
      #define XML_SCHEMAS_ANYATTR_SKIP
      #define XML_SCHEMAS_ANYATTR_STRICT
      #define XML_SCHEMAS_ANY_LAX
      #define XML_SCHEMAS_ANY_SKIP
      #define XML_SCHEMAS_ANY_STRICT
      #define XML_SCHEMAS_ATTRGROUP_GLOBAL
      #define XML_SCHEMAS_ATTRGROUP_HAS_REFS
      #define XML_SCHEMAS_ATTRGROUP_MARKED
      #define XML_SCHEMAS_ATTRGROUP_REDEFINED
      #define XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED
      #define XML_SCHEMAS_ATTR_FIXED
      #define XML_SCHEMAS_ATTR_GLOBAL
      #define XML_SCHEMAS_ATTR_INTERNAL_RESOLVED
      #define XML_SCHEMAS_ATTR_NSDEFAULT
      #define XML_SCHEMAS_ATTR_USE_OPTIONAL
      #define XML_SCHEMAS_ATTR_USE_PROHIBITED
      #define XML_SCHEMAS_ATTR_USE_REQUIRED
      #define XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION
      #define XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION
      #define XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION
      #define XML_SCHEMAS_ELEM_ABSTRACT
      #define XML_SCHEMAS_ELEM_BLOCK_ABSENT
      #define XML_SCHEMAS_ELEM_BLOCK_EXTENSION
      #define XML_SCHEMAS_ELEM_BLOCK_RESTRICTION
      #define XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION
      #define XML_SCHEMAS_ELEM_CIRCULAR
      #define XML_SCHEMAS_ELEM_DEFAULT
      #define XML_SCHEMAS_ELEM_FINAL_ABSENT
      #define XML_SCHEMAS_ELEM_FINAL_EXTENSION
      #define XML_SCHEMAS_ELEM_FINAL_RESTRICTION
      #define XML_SCHEMAS_ELEM_FIXED
      #define XML_SCHEMAS_ELEM_GLOBAL
      #define XML_SCHEMAS_ELEM_INTERNAL_CHECKED
      #define XML_SCHEMAS_ELEM_INTERNAL_RESOLVED
      #define XML_SCHEMAS_ELEM_NILLABLE
      #define XML_SCHEMAS_ELEM_NSDEFAULT
      #define XML_SCHEMAS_ELEM_REF
      #define XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD
      #define XML_SCHEMAS_ELEM_TOPLEVEL
      #define XML_SCHEMAS_FACET_COLLAPSE
      #define XML_SCHEMAS_FACET_PRESERVE
      #define XML_SCHEMAS_FACET_REPLACE
      #define XML_SCHEMAS_FACET_UNKNOWN
      #define XML_SCHEMAS_FINAL_DEFAULT_EXTENSION
      #define XML_SCHEMAS_FINAL_DEFAULT_LIST
      #define XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION
      #define XML_SCHEMAS_FINAL_DEFAULT_UNION
      #define XML_SCHEMAS_INCLUDING_CONVERT_NS
      #define XML_SCHEMAS_QUALIF_ATTR
      #define XML_SCHEMAS_QUALIF_ELEM
      #define XML_SCHEMAS_TYPE_ABSTRACT
      #define XML_SCHEMAS_TYPE_BLOCK_DEFAULT
      #define XML_SCHEMAS_TYPE_BLOCK_EXTENSION
      #define XML_SCHEMAS_TYPE_BLOCK_RESTRICTION
      #define XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE
      #define XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION
      #define XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION
      #define XML_SCHEMAS_TYPE_FACETSNEEDVALUE
      #define XML_SCHEMAS_TYPE_FINAL_DEFAULT
      #define XML_SCHEMAS_TYPE_FINAL_EXTENSION
      #define XML_SCHEMAS_TYPE_FINAL_LIST
      #define XML_SCHEMAS_TYPE_FINAL_RESTRICTION
      #define XML_SCHEMAS_TYPE_FINAL_UNION
      #define XML_SCHEMAS_TYPE_FIXUP_1
      #define XML_SCHEMAS_TYPE_GLOBAL
      #define XML_SCHEMAS_TYPE_HAS_FACETS
      #define XML_SCHEMAS_TYPE_INTERNAL_INVALID
      #define XML_SCHEMAS_TYPE_INTERNAL_RESOLVED
      #define XML_SCHEMAS_TYPE_MARKED
      #define XML_SCHEMAS_TYPE_MIXED
      #define XML_SCHEMAS_TYPE_NORMVALUENEEDED
      #define XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD
      #define XML_SCHEMAS_TYPE_REDEFINED
      #define XML_SCHEMAS_TYPE_VARIETY_ABSENT
      #define XML_SCHEMAS_TYPE_VARIETY_ATOMIC
      #define XML_SCHEMAS_TYPE_VARIETY_LIST
      #define XML_SCHEMAS_TYPE_VARIETY_UNION
      #define XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE
      #define XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE
      #define XML_SCHEMAS_TYPE_WHITESPACE_REPLACE
      #define XML_SCHEMAS_WILDCARD_COMPLETE
      Structure xmlSchemaAnnot
      struct _xmlSchemaAnnot + Module schemasInternals from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module schemasInternals from libxml2

      API Menu
      API Indexes
      Related links

      internal interfaces for the XML Schemas handling and schema validity checking The Schemas development is a Work In Progress. Some of those interfaces are not garanteed to be API or ABI stable !

      Table of Contents

      #define XML_SCHEMAS_ANYATTR_LAX
      #define XML_SCHEMAS_ANYATTR_SKIP
      #define XML_SCHEMAS_ANYATTR_STRICT
      #define XML_SCHEMAS_ANY_LAX
      #define XML_SCHEMAS_ANY_SKIP
      #define XML_SCHEMAS_ANY_STRICT
      #define XML_SCHEMAS_ATTRGROUP_GLOBAL
      #define XML_SCHEMAS_ATTRGROUP_HAS_REFS
      #define XML_SCHEMAS_ATTRGROUP_MARKED
      #define XML_SCHEMAS_ATTRGROUP_REDEFINED
      #define XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED
      #define XML_SCHEMAS_ATTR_FIXED
      #define XML_SCHEMAS_ATTR_GLOBAL
      #define XML_SCHEMAS_ATTR_INTERNAL_RESOLVED
      #define XML_SCHEMAS_ATTR_NSDEFAULT
      #define XML_SCHEMAS_ATTR_USE_OPTIONAL
      #define XML_SCHEMAS_ATTR_USE_PROHIBITED
      #define XML_SCHEMAS_ATTR_USE_REQUIRED
      #define XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION
      #define XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION
      #define XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION
      #define XML_SCHEMAS_ELEM_ABSTRACT
      #define XML_SCHEMAS_ELEM_BLOCK_ABSENT
      #define XML_SCHEMAS_ELEM_BLOCK_EXTENSION
      #define XML_SCHEMAS_ELEM_BLOCK_RESTRICTION
      #define XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION
      #define XML_SCHEMAS_ELEM_CIRCULAR
      #define XML_SCHEMAS_ELEM_DEFAULT
      #define XML_SCHEMAS_ELEM_FINAL_ABSENT
      #define XML_SCHEMAS_ELEM_FINAL_EXTENSION
      #define XML_SCHEMAS_ELEM_FINAL_RESTRICTION
      #define XML_SCHEMAS_ELEM_FIXED
      #define XML_SCHEMAS_ELEM_GLOBAL
      #define XML_SCHEMAS_ELEM_INTERNAL_CHECKED
      #define XML_SCHEMAS_ELEM_INTERNAL_RESOLVED
      #define XML_SCHEMAS_ELEM_NILLABLE
      #define XML_SCHEMAS_ELEM_NSDEFAULT
      #define XML_SCHEMAS_ELEM_REF
      #define XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD
      #define XML_SCHEMAS_ELEM_TOPLEVEL
      #define XML_SCHEMAS_FACET_COLLAPSE
      #define XML_SCHEMAS_FACET_PRESERVE
      #define XML_SCHEMAS_FACET_REPLACE
      #define XML_SCHEMAS_FACET_UNKNOWN
      #define XML_SCHEMAS_FINAL_DEFAULT_EXTENSION
      #define XML_SCHEMAS_FINAL_DEFAULT_LIST
      #define XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION
      #define XML_SCHEMAS_FINAL_DEFAULT_UNION
      #define XML_SCHEMAS_INCLUDING_CONVERT_NS
      #define XML_SCHEMAS_QUALIF_ATTR
      #define XML_SCHEMAS_QUALIF_ELEM
      #define XML_SCHEMAS_TYPE_ABSTRACT
      #define XML_SCHEMAS_TYPE_BLOCK_DEFAULT
      #define XML_SCHEMAS_TYPE_BLOCK_EXTENSION
      #define XML_SCHEMAS_TYPE_BLOCK_RESTRICTION
      #define XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE
      #define XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION
      #define XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION
      #define XML_SCHEMAS_TYPE_FACETSNEEDVALUE
      #define XML_SCHEMAS_TYPE_FINAL_DEFAULT
      #define XML_SCHEMAS_TYPE_FINAL_EXTENSION
      #define XML_SCHEMAS_TYPE_FINAL_LIST
      #define XML_SCHEMAS_TYPE_FINAL_RESTRICTION
      #define XML_SCHEMAS_TYPE_FINAL_UNION
      #define XML_SCHEMAS_TYPE_FIXUP_1
      #define XML_SCHEMAS_TYPE_GLOBAL
      #define XML_SCHEMAS_TYPE_HAS_FACETS
      #define XML_SCHEMAS_TYPE_INTERNAL_INVALID
      #define XML_SCHEMAS_TYPE_INTERNAL_RESOLVED
      #define XML_SCHEMAS_TYPE_MARKED
      #define XML_SCHEMAS_TYPE_MIXED
      #define XML_SCHEMAS_TYPE_NORMVALUENEEDED
      #define XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD
      #define XML_SCHEMAS_TYPE_REDEFINED
      #define XML_SCHEMAS_TYPE_VARIETY_ABSENT
      #define XML_SCHEMAS_TYPE_VARIETY_ATOMIC
      #define XML_SCHEMAS_TYPE_VARIETY_LIST
      #define XML_SCHEMAS_TYPE_VARIETY_UNION
      #define XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE
      #define XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE
      #define XML_SCHEMAS_TYPE_WHITESPACE_REPLACE
      #define XML_SCHEMAS_WILDCARD_COMPLETE
      Structure xmlSchemaAnnot
      struct _xmlSchemaAnnot
      Typedef xmlSchemaAnnot * xmlSchemaAnnotPtr
       
      Structure xmlSchemaAttribute
      struct _xmlSchemaAttribute
      Structure xmlSchemaAttributeGroup
      struct _xmlSchemaAttributeGroup diff --git a/doc/html/libxml-schematron.html b/doc/html/libxml-schematron.html index 6797672..5ec67e5 100644 --- a/doc/html/libxml-schematron.html +++ b/doc/html/libxml-schematron.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module schematron from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module schematron from libxml2

      API Menu
      API Indexes
      Related links

      interface to the XML Schematron validity checking.

      Table of Contents

      Structure xmlSchematron
      struct _xmlSchematron + Module schematron from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module schematron from libxml2

      API Menu
      API Indexes
      Related links

      interface to the XML Schematron validity checking.

      Table of Contents

      Structure xmlSchematron
      struct _xmlSchematron The content of this structure is not made public by the API.
      Structure xmlSchematronParserCtxt
      struct _xmlSchematronParserCtxt The content of this structure is not made public by the API. @@ -28,6 +28,7 @@ The content of this structure is not made public by the API.
      xmlSchematronParserCtxtPtr	xmlSchematronNewParserCtxt	(const char * URL)
      xmlSchematronValidCtxtPtr	xmlSchematronNewValidCtxt	(xmlSchematronPtr schema, 
      int options)
      xmlSchematronPtr	xmlSchematronParse	(xmlSchematronParserCtxtPtr ctxt)
      +
      void	xmlSchematronSetValidStructuredErrors	(xmlSchematronValidCtxtPtr ctxt, 
      xmlStructuredErrorFunc serror,
      void * ctx)
      int	xmlSchematronValidateDoc	(xmlSchematronValidCtxtPtr ctxt, 
      xmlDocPtr instance)
      Function type: xmlSchematronValidityErrorFunc
       void	xmlSchematronValidityErrorFunc	(void * ctx, 
      const char * msg,
      ... ...) @@ -46,6 +47,7 @@ The content of this structure is not made public by the API. XML_SCHEMATRON_OUT_QUIET = 1 : quiet no report XML_SCHEMATRON_OUT_TEXT = 2 : build a textual report XML_SCHEMATRON_OUT_XML = 4 : output SVRL + XML_SCHEMATRON_OUT_ERROR = 8 : output via xmlStructuredErrorFunc XML_SCHEMATRON_OUT_FILE = 256 : output to a file descriptor XML_SCHEMATRON_OUT_BUFFER = 512 : output to a buffer XML_SCHEMATRON_OUT_IO = 1024 : output to I/O mechanism @@ -66,7 +68,9 @@ The content of this structure is not made public by the API.

      Create an XML Schematrons validation context based on the given schema.

      schema:a precompiled XML Schematrons
      options:a set of xmlSchematronValidOptions
      Returns:the validation context or NULL in case of error

      Function: xmlSchematronParse

      xmlSchematronPtr	xmlSchematronParse	(xmlSchematronParserCtxtPtr ctxt)

      parse a schema definition resource and build an internal XML Shema struture which can be used to validate instances.

      -
      ctxt:a schema validation context
      Returns:the internal XML Schematron structure built from the resource or NULL in case of error

      Function: xmlSchematronValidateDoc

      int	xmlSchematronValidateDoc	(xmlSchematronValidCtxtPtr ctxt, 
      xmlDocPtr instance)
      +
      ctxt:a schema validation context
      Returns:the internal XML Schematron structure built from the resource or NULL in case of error

      Function: xmlSchematronSetValidStructuredErrors

      void	xmlSchematronSetValidStructuredErrors	(xmlSchematronValidCtxtPtr ctxt, 
      xmlStructuredErrorFunc serror,
      void * ctx)
      +

      Set the structured error callback

      +
      ctxt:a Schematron validation context
      serror:the structured error function
      ctx:the functions context

      Function: xmlSchematronValidateDoc

      int	xmlSchematronValidateDoc	(xmlSchematronValidCtxtPtr ctxt, 
      xmlDocPtr instance)

      Validate a tree instance against the schematron

      ctxt:the schema validation context
      instance:the document instace tree
      Returns:0 in case of success, -1 in case of internal error and an error count otherwise.

      Function type: xmlSchematronValidityErrorFunc

      Function type: xmlSchematronValidityErrorFunc
       void	xmlSchematronValidityErrorFunc	(void * ctx, 
      const char * msg,
      ... ...) diff --git a/doc/html/libxml-threads.html b/doc/html/libxml-threads.html index 8bb2cbf..b31cfd4 100644 --- a/doc/html/libxml-threads.html +++ b/doc/html/libxml-threads.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module threads from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module threads from libxml2

      API Menu
      API Indexes
      Related links

      set of generic threading related routines should work with pthreads, Windows native or TLS threads

      Table of Contents

      Structure xmlMutex
      struct _xmlMutex + Module threads from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module threads from libxml2

      API Menu
      API Indexes
      Related links

      set of generic threading related routines should work with pthreads, Windows native or TLS threads

      Table of Contents

      Structure xmlMutex
      struct _xmlMutex The content of this structure is not made public by the API.
      Typedef xmlMutex * xmlMutexPtr
       
      Structure xmlRMutex
      struct _xmlRMutex diff --git a/doc/html/libxml-tree.html b/doc/html/libxml-tree.html index 7a5c31b..34914cb 100644 --- a/doc/html/libxml-tree.html +++ b/doc/html/libxml-tree.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module tree from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module tree from libxml2

      API Menu
      API Indexes
      Related links

      this module describes the structures found in an tree resulting from an XML or HTML parsing, as well as the API provided for various processing on that tree

      Table of Contents

      #define BASE_BUFFER_SIZE
      #define XML_GET_CONTENT
      #define XML_GET_LINE
      #define XML_LOCAL_NAMESPACE
      #define XML_XML_ID
      #define XML_XML_NAMESPACE
      #define xmlChildrenNode
      #define xmlRootNode
      Structure xmlAttr
      struct _xmlAttr + Module tree from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module tree from libxml2

      API Menu
      API Indexes
      Related links

      this module describes the structures found in an tree resulting from an XML or HTML parsing, as well as the API provided for various processing on that tree

      Table of Contents

      #define BASE_BUFFER_SIZE
      #define XML_GET_CONTENT
      #define XML_GET_LINE
      #define XML_LOCAL_NAMESPACE
      #define XML_XML_ID
      #define XML_XML_NAMESPACE
      #define xmlChildrenNode
      #define xmlRootNode
      Structure xmlAttr
      struct _xmlAttr
      Typedef xmlAttr * xmlAttrPtr
       
      Structure xmlAttribute
      struct _xmlAttribute
      Enum xmlAttributeDefault
      diff --git a/doc/html/libxml-uri.html b/doc/html/libxml-uri.html
      index 1c668e8..9b8cdb6 100644
      --- a/doc/html/libxml-uri.html
      +++ b/doc/html/libxml-uri.html
      @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline }
       Module uri from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module uri from libxml2

      API Menu
      API Indexes
      Related links

      library of generic URI related routines Implements RFC 2396

      Table of Contents

      Structure xmlURI
      struct _xmlURI + Module uri from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module uri from libxml2

      API Menu
      API Indexes
      Related links

      library of generic URI related routines Implements RFC 2396

      Table of Contents

      Structure xmlURI
      struct _xmlURI
      Typedef xmlURI * xmlURIPtr
       
      xmlChar *	xmlBuildRelativeURI	(const xmlChar * URI, 
      const xmlChar * base)
      xmlChar *	xmlBuildURI		(const xmlChar * URI, 
      const xmlChar * base)
      diff --git a/doc/html/libxml-valid.html b/doc/html/libxml-valid.html index e8abbaa..30ef3cd 100644 --- a/doc/html/libxml-valid.html +++ b/doc/html/libxml-valid.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module valid from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module valid from libxml2

      API Menu
      API Indexes
      Related links

      API for the DTD handling and the validity checking

      Table of Contents

      #define XML_CTXT_FINISH_DTD_0
      #define XML_CTXT_FINISH_DTD_1
      Structure xmlAttributeTable
      struct _xmlHashTable + Module valid from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module valid from libxml2

      API Menu
      API Indexes
      Related links

      API for the DTD handling and the validity checking

      Table of Contents

      #define XML_CTXT_FINISH_DTD_0
      #define XML_CTXT_FINISH_DTD_1
      Structure xmlAttributeTable
      struct _xmlHashTable The content of this structure is not made public by the API.
      Typedef xmlAttributeTable * xmlAttributeTablePtr
       
      Structure xmlElementTable
      struct _xmlHashTable diff --git a/doc/html/libxml-xinclude.html b/doc/html/libxml-xinclude.html index 58c1c19..6ccb123 100644 --- a/doc/html/libxml-xinclude.html +++ b/doc/html/libxml-xinclude.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module xinclude from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xinclude from libxml2

      API Menu
      API Indexes
      Related links

      API to handle XInclude processing, implements the World Wide Web Consortium Last Call Working Draft 10 November 2003

      Table of Contents

      #define XINCLUDE_FALLBACK
      #define XINCLUDE_HREF
      #define XINCLUDE_NODE
      #define XINCLUDE_NS
      #define XINCLUDE_OLD_NS
      #define XINCLUDE_PARSE
      #define XINCLUDE_PARSE_ENCODING
      #define XINCLUDE_PARSE_TEXT
      #define XINCLUDE_PARSE_XML
      #define XINCLUDE_PARSE_XPOINTER
      Structure xmlXIncludeCtxt
      struct _xmlXIncludeCtxt + Module xinclude from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xinclude from libxml2

      API Menu
      API Indexes
      Related links

      API to handle XInclude processing, implements the World Wide Web Consortium Last Call Working Draft 10 November 2003

      Table of Contents

      #define XINCLUDE_FALLBACK
      #define XINCLUDE_HREF
      #define XINCLUDE_NODE
      #define XINCLUDE_NS
      #define XINCLUDE_OLD_NS
      #define XINCLUDE_PARSE
      #define XINCLUDE_PARSE_ENCODING
      #define XINCLUDE_PARSE_TEXT
      #define XINCLUDE_PARSE_XML
      #define XINCLUDE_PARSE_XPOINTER
      Structure xmlXIncludeCtxt
      struct _xmlXIncludeCtxt The content of this structure is not made public by the API.
      Typedef xmlXIncludeCtxt * xmlXIncludeCtxtPtr
       
      void	xmlXIncludeFreeContext		(xmlXIncludeCtxtPtr ctxt)
      diff --git a/doc/html/libxml-xlink.html b/doc/html/libxml-xlink.html index 0350911..4c1c7ba 100644 --- a/doc/html/libxml-xlink.html +++ b/doc/html/libxml-xlink.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module xlink from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xlink from libxml2

      API Menu
      API Indexes
      Related links

      unfinished XLink detection module

      Table of Contents

      Enum xlinkActuate
      +    Module xlink from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xlink from libxml2

      API Menu
      API Indexes
      Related links

      unfinished XLink detection module

      Table of Contents

      Enum xlinkActuate
       
      Typedef xmlChar * xlinkHRef
       
      Structure xlinkHandler
      struct _xlinkHandler
      Typedef xlinkHandler * xlinkHandlerPtr
      diff --git a/doc/html/libxml-xmlIO.html b/doc/html/libxml-xmlIO.html
      index 5c0b9b0..0ca4bc9 100644
      --- a/doc/html/libxml-xmlIO.html
      +++ b/doc/html/libxml-xmlIO.html
      @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline }
       Module xmlIO from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlIO from libxml2

      API Menu
      API Indexes
      Related links

      interface for the I/O interfaces used by the parser

      Table of Contents

      xmlOutputBufferPtr	xmlAllocOutputBuffer	(xmlCharEncodingHandlerPtr encoder)
      + Module xmlIO from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlIO from libxml2

      API Menu
      API Indexes
      Related links

      interface for the I/O interfaces used by the parser

      Table of Contents

      xmlOutputBufferPtr	xmlAllocOutputBuffer	(xmlCharEncodingHandlerPtr encoder)
      xmlParserInputBufferPtr	xmlAllocParserInputBuffer	(xmlCharEncoding enc)
      int	xmlCheckFilename		(const char * path)
      xmlParserInputPtr	xmlCheckHTTPInput	(xmlParserCtxtPtr ctxt, 
      xmlParserInputPtr ret)
      diff --git a/doc/html/libxml-xmlautomata.html b/doc/html/libxml-xmlautomata.html index d10c787..1361214 100644 --- a/doc/html/libxml-xmlautomata.html +++ b/doc/html/libxml-xmlautomata.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module xmlautomata from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlautomata from libxml2

      API Menu
      API Indexes
      Related links

      the API to build regexp automata

      Table of Contents

      Structure xmlAutomata
      struct _xmlAutomata + Module xmlautomata from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlautomata from libxml2

      API Menu
      API Indexes
      Related links

      the API to build regexp automata

      Table of Contents

      Structure xmlAutomata
      struct _xmlAutomata The content of this structure is not made public by the API.
      Typedef xmlAutomata * xmlAutomataPtr
       
      Structure xmlAutomataState
      struct _xmlAutomataState diff --git a/doc/html/libxml-xmlerror.html b/doc/html/libxml-xmlerror.html index aefa967..9803b4a 100644 --- a/doc/html/libxml-xmlerror.html +++ b/doc/html/libxml-xmlerror.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module xmlerror from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlerror from libxml2

      API Menu
      API Indexes
      Related links

      the API used to report errors

      Table of Contents

      Structure xmlError
      struct _xmlError + Module xmlerror from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlerror from libxml2

      API Menu
      API Indexes
      Related links

      the API used to report errors

      Table of Contents

      Structure xmlError
      struct _xmlError
      Enum xmlErrorDomain
       
      Enum xmlErrorLevel
       
      Typedef xmlError * xmlErrorPtr
      @@ -80,6 +80,7 @@ void	xmlStructuredErrorFunc		(void * userD
           XML_FROM_WRITER = 25 : The xmlwriter module
           XML_FROM_MODULE = 26 : The dynamically loaded module modul
           XML_FROM_I18N = 27 : The module handling character conversion
      +    XML_FROM_SCHEMATRONV = 28 : The Schematron validator module
       }
       

      Enum xmlErrorLevel

      Enum xmlErrorLevel {
           XML_ERR_NONE = 0
      @@ -392,6 +393,7 @@ void	xmlStructuredErrorFunc		(void * userD
           XML_TREE_INVALID_HEX = 1300
           XML_TREE_INVALID_DEC = 1301 : 1301
           XML_TREE_UNTERMINATED_ENTITY = 1302 : 1302
      +    XML_TREE_NOT_UTF8 = 1303 : 1303
           XML_SAVE_NOT_UTF8 = 1400
           XML_SAVE_CHAR_INVALID = 1401 : 1401
           XML_SAVE_NO_DOCTYPE = 1402 : 1402
      @@ -767,6 +769,8 @@ void	xmlStructuredErrorFunc		(void * userD
           XML_SCHEMAP_AU_PROPS_CORRECT = 3089 : 3088
           XML_SCHEMAP_A_PROPS_CORRECT_3 = 3090 : 3089
           XML_SCHEMAP_COS_ALL_LIMITED = 3091 : 3090
      +    XML_SCHEMATRONV_ASSERT = 4000 : 4000
      +    XML_SCHEMATRONV_REPORT = 4001
           XML_MODULE_OPEN = 4900 : 4900
           XML_MODULE_CLOSE = 4901 : 4901
           XML_CHECK_FOUND_ELEMENT = 5000
      diff --git a/doc/html/libxml-xmlexports.html b/doc/html/libxml-xmlexports.html
      index 1ce2de8..38a05a3 100644
      --- a/doc/html/libxml-xmlexports.html
      +++ b/doc/html/libxml-xmlexports.html
      @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline }
       Module xmlexports from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlexports from libxml2

      API Menu
      API Indexes
      Related links

      macros for marking symbols as exportable/importable.

      Table of Contents

      #define LIBXML_DLL_IMPORT
      #define XMLCALL
      #define XMLCDECL
      #define XMLPUBFUN
      #define XMLPUBVAR
      #define _REENTRANT

      Description

      + Module xmlexports from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlexports from libxml2

      API Menu
      API Indexes
      Related links

      macros for marking symbols as exportable/importable.

      Table of Contents

      #define LIBXML_DLL_IMPORT
      #define XMLCALL
      #define XMLCDECL
      #define XMLPUBFUN
      #define XMLPUBVAR
      #define _REENTRANT

      Description

      Macro: LIBXML_DLL_IMPORT

      #define LIBXML_DLL_IMPORT

      Macro: XMLCALL

      #define XMLCALL

      Macro: XMLCDECL

      #define XMLCDECL

      diff --git a/doc/html/libxml-xmlmemory.html b/doc/html/libxml-xmlmemory.html index 66350c8..ea62ae7 100644 --- a/doc/html/libxml-xmlmemory.html +++ b/doc/html/libxml-xmlmemory.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module xmlmemory from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlmemory from libxml2

      API Menu
      API Indexes
      Related links

      provides interfaces for the memory allocator, including debugging capabilities.

      Table of Contents

      #define DEBUG_MEMORY
      Variable xmlMallocFunc xmlMalloc
      +    Module xmlmemory from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlmemory from libxml2

      API Menu
      API Indexes
      Related links

      provides interfaces for the memory allocator, including debugging capabilities.

      Table of Contents

      #define DEBUG_MEMORY
      Variable xmlMallocFunc xmlMalloc
       
       
      Variable xmlMallocFunc xmlMallocAtomic
       
      diff --git a/doc/html/libxml-xmlmodule.html b/doc/html/libxml-xmlmodule.html
      index c5a6441..0a6c4a8 100644
      --- a/doc/html/libxml-xmlmodule.html
      +++ b/doc/html/libxml-xmlmodule.html
      @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline }
       Module xmlmodule from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlmodule from libxml2

      API Menu
      API Indexes
      Related links

      basic API for dynamic module loading, used by libexslt added in 2.6.17

      Table of Contents

      Structure xmlModule
      struct _xmlModule + Module xmlmodule from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlmodule from libxml2

      API Menu
      API Indexes
      Related links

      basic API for dynamic module loading, used by libexslt added in 2.6.17

      Table of Contents

      Structure xmlModule
      struct _xmlModule The content of this structure is not made public by the API.
      Enum xmlModuleOption
       
      Typedef xmlModule * xmlModulePtr
      diff --git a/doc/html/libxml-xmlreader.html b/doc/html/libxml-xmlreader.html
      index b69d759..b4c1cbc 100644
      --- a/doc/html/libxml-xmlreader.html
      +++ b/doc/html/libxml-xmlreader.html
      @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline }
       Module xmlreader from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlreader from libxml2

      API Menu
      API Indexes
      Related links

      API of the XML streaming API based on C# interfaces.

      Table of Contents

      Enum xmlParserProperties
      +    Module xmlreader from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlreader from libxml2

      API Menu
      API Indexes
      Related links

      API of the XML streaming API based on C# interfaces.

      Table of Contents

      Enum xmlParserProperties
       
      Enum xmlParserSeverities
       
      Enum xmlReaderTypes
       
      Structure xmlTextReader
      struct _xmlTextReader @@ -277,7 +277,7 @@ void xmlTextReaderErrorFunc (void * arg,
      const char * msg,
      reader:the xmlTextReaderPtr used
      Returns:1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error

      Function: xmlTextReaderNextSibling

      int	xmlTextReaderNextSibling	(xmlTextReaderPtr reader)

      Skip to the node following the current one in document order while avoiding the subtree if any. Currently implemented only for Readers built on a document

      reader:the xmlTextReaderPtr used
      Returns:1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error

      Function: xmlTextReaderNodeType

      int	xmlTextReaderNodeType		(xmlTextReaderPtr reader)
      -

      Get the node type of the current node Reference: http://dotgnu.org/pnetlib-doc/System/Xml/XmlNodeType.html

      +

      Get the node type of the current node Reference: http://www.gnu.org/software/dotgnu/pnetlib-doc/System/Xml/XmlNodeType.html

      reader:the xmlTextReaderPtr used
      Returns:the xmlNodeType of the current node or -1 in case of error

      Function: xmlTextReaderNormalization

      int	xmlTextReaderNormalization	(xmlTextReaderPtr reader)

      The value indicating whether to normalize white space and attribute values. Since attribute value and end of line normalizations are a MUST in the XML specification only the value true is accepted. The broken bahaviour of accepting out of range character entities like &#0; is of course not supported either.

      reader:the xmlTextReaderPtr used
      Returns:1 or -1 in case of error.

      Function: xmlTextReaderPrefix

      xmlChar *	xmlTextReaderPrefix	(xmlTextReaderPtr reader)
      diff --git a/doc/html/libxml-xmlregexp.html b/doc/html/libxml-xmlregexp.html index 69834f0..642e930 100644 --- a/doc/html/libxml-xmlregexp.html +++ b/doc/html/libxml-xmlregexp.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module xmlregexp from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlregexp from libxml2

      API Menu
      API Indexes
      Related links

      basic API for libxml regular expressions handling used for XML Schemas and validation.

      Table of Contents

      Structure xmlExpCtxt
      struct _xmlExpCtxt + Module xmlregexp from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlregexp from libxml2

      API Menu
      API Indexes
      Related links

      basic API for libxml regular expressions handling used for XML Schemas and validation.

      Table of Contents

      Structure xmlExpCtxt
      struct _xmlExpCtxt The content of this structure is not made public by the API.
      Typedef xmlExpCtxt * xmlExpCtxtPtr
       
      Structure xmlExpNode
      struct _xmlExpNode diff --git a/doc/html/libxml-xmlsave.html b/doc/html/libxml-xmlsave.html index d649ef7..ec9b5da 100644 --- a/doc/html/libxml-xmlsave.html +++ b/doc/html/libxml-xmlsave.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module xmlsave from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlsave from libxml2

      API Menu
      API Indexes
      Related links

      API to save document or subtree of document

      Table of Contents

      Structure xmlSaveCtxt
      struct _xmlSaveCtxt + Module xmlsave from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlsave from libxml2

      API Menu
      API Indexes
      Related links

      API to save document or subtree of document

      Table of Contents

      Structure xmlSaveCtxt
      struct _xmlSaveCtxt The content of this structure is not made public by the API.
      Typedef xmlSaveCtxt * xmlSaveCtxtPtr
       
      Enum xmlSaveOption
      diff --git a/doc/html/libxml-xmlschemas.html b/doc/html/libxml-xmlschemas.html
      index b5de305..261f221 100644
      --- a/doc/html/libxml-xmlschemas.html
      +++ b/doc/html/libxml-xmlschemas.html
      @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline }
       Module xmlschemas from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlschemas from libxml2

      API Menu
      API Indexes
      Related links

      interface to the XML Schemas handling and schema validity checking, it is incomplete right now.

      Table of Contents

      Structure xmlSchema
      struct _xmlSchema + Module xmlschemas from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlschemas from libxml2

      API Menu
      API Indexes
      Related links

      interface to the XML Schemas handling and schema validity checking, it is incomplete right now.

      Table of Contents

      Structure xmlSchema
      struct _xmlSchema
      Structure xmlSchemaParserCtxt
      struct _xmlSchemaParserCtxt The content of this structure is not made public by the API.
      Typedef xmlSchemaParserCtxt * xmlSchemaParserCtxtPtr
      diff --git a/doc/html/libxml-xmlschemastypes.html b/doc/html/libxml-xmlschemastypes.html
      index c890b59..ef44e80 100644
      --- a/doc/html/libxml-xmlschemastypes.html
      +++ b/doc/html/libxml-xmlschemastypes.html
      @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline }
       Module xmlschemastypes from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlschemastypes from libxml2

      API Menu
      API Indexes
      Related links

      module providing the XML Schema Datatypes implementation both definition and validity checking

      Table of Contents

      Enum xmlSchemaWhitespaceValueType
      +    Module xmlschemastypes from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlschemastypes from libxml2

      API Menu
      API Indexes
      Related links

      module providing the XML Schema Datatypes implementation both definition and validity checking

      Table of Contents

      Enum xmlSchemaWhitespaceValueType
       
      int	xmlSchemaCheckFacet		(xmlSchemaFacetPtr facet, 
      xmlSchemaTypePtr typeDecl,
      xmlSchemaParserCtxtPtr pctxt,
      const xmlChar * name)
      void	xmlSchemaCleanupTypes		(void)
      xmlChar *	xmlSchemaCollapseString	(const xmlChar * value)
      diff --git a/doc/html/libxml-xmlstring.html b/doc/html/libxml-xmlstring.html index e29d740..f7c9a64 100644 --- a/doc/html/libxml-xmlstring.html +++ b/doc/html/libxml-xmlstring.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module xmlstring from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlstring from libxml2

      API Menu
      API Indexes
      Related links

      type and interfaces needed for the internal string handling of the library, especially UTF8 processing.

      Table of Contents

      #define BAD_CAST
      Typedef unsigned char xmlChar
      +    Module xmlstring from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlstring from libxml2

      API Menu
      API Indexes
      Related links

      type and interfaces needed for the internal string handling of the library, especially UTF8 processing.

      Table of Contents

      #define BAD_CAST
      Typedef unsigned char xmlChar
       
      xmlChar *	xmlCharStrdup		(const char * cur)
      xmlChar *	xmlCharStrndup		(const char * cur, 
      int len)
      int	xmlCheckUTF8			(const unsigned char * utf)
      diff --git a/doc/html/libxml-xmlunicode.html b/doc/html/libxml-xmlunicode.html index ceb8450..7ee50ef 100644 --- a/doc/html/libxml-xmlunicode.html +++ b/doc/html/libxml-xmlunicode.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module xmlunicode from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlunicode from libxml2

      API Menu
      API Indexes
      Related links

      API for the Unicode character APIs This file is automatically generated from the UCS description files of the Unicode Character Database

      Table of Contents

      int	xmlUCSIsAegeanNumbers		(int code)
      + Module xmlunicode from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlunicode from libxml2

      API Menu
      API Indexes
      Related links

      API for the Unicode character APIs This file is automatically generated from the UCS description files of the Unicode Character Database

      Table of Contents

      int	xmlUCSIsAegeanNumbers		(int code)
      int	xmlUCSIsAlphabeticPresentationForms	(int code)
      int	xmlUCSIsArabic			(int code)
      int	xmlUCSIsArabicPresentationFormsA	(int code)
      diff --git a/doc/html/libxml-xmlversion.html b/doc/html/libxml-xmlversion.html index 3e9d50a..c76206c 100644 --- a/doc/html/libxml-xmlversion.html +++ b/doc/html/libxml-xmlversion.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module xmlversion from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlversion from libxml2

      API Menu
      API Indexes
      Related links

      compile-time version informations for the XML library

      Table of Contents

      #define ATTRIBUTE_UNUSED
      #define DEBUG_MEMORY_LOCATION
      #define LIBXML_AUTOMATA_ENABLED
      #define LIBXML_C14N_ENABLED
      #define LIBXML_CATALOG_ENABLED
      #define LIBXML_DEBUG_ENABLED
      #define LIBXML_DEBUG_RUNTIME
      #define LIBXML_DOCB_ENABLED
      #define LIBXML_DOTTED_VERSION
      #define LIBXML_EXPR_ENABLED
      #define LIBXML_FTP_ENABLED
      #define LIBXML_HTML_ENABLED
      #define LIBXML_HTTP_ENABLED
      #define LIBXML_ICONV_ENABLED
      #define LIBXML_ISO8859X_ENABLED
      #define LIBXML_LEGACY_ENABLED
      #define LIBXML_MODULES_ENABLED
      #define LIBXML_MODULE_EXTENSION
      #define LIBXML_OUTPUT_ENABLED
      #define LIBXML_PATTERN_ENABLED
      #define LIBXML_PUSH_ENABLED
      #define LIBXML_READER_ENABLED
      #define LIBXML_REGEXP_ENABLED
      #define LIBXML_SAX1_ENABLED
      #define LIBXML_SCHEMAS_ENABLED
      #define LIBXML_SCHEMATRON_ENABLED
      #define LIBXML_TEST_VERSION
      #define LIBXML_THREAD_ENABLED
      #define LIBXML_TREE_ENABLED
      #define LIBXML_UNICODE_ENABLED
      #define LIBXML_VALID_ENABLED
      #define LIBXML_VERSION
      #define LIBXML_VERSION_EXTRA
      #define LIBXML_VERSION_STRING
      #define LIBXML_WRITER_ENABLED
      #define LIBXML_XINCLUDE_ENABLED
      #define LIBXML_XPATH_ENABLED
      #define LIBXML_XPTR_ENABLED
      #define LIBXML_ZLIB_ENABLED
      #define WITHOUT_TRIO
      #define WITH_TRIO
      void	xmlCheckVersion			(int version)
      + Module xmlversion from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlversion from libxml2

      API Menu
      API Indexes
      Related links

      compile-time version informations for the XML library

      Table of Contents

      #define ATTRIBUTE_UNUSED
      #define DEBUG_MEMORY_LOCATION
      #define LIBXML_AUTOMATA_ENABLED
      #define LIBXML_C14N_ENABLED
      #define LIBXML_CATALOG_ENABLED
      #define LIBXML_DEBUG_ENABLED
      #define LIBXML_DEBUG_RUNTIME
      #define LIBXML_DOCB_ENABLED
      #define LIBXML_DOTTED_VERSION
      #define LIBXML_EXPR_ENABLED
      #define LIBXML_FTP_ENABLED
      #define LIBXML_HTML_ENABLED
      #define LIBXML_HTTP_ENABLED
      #define LIBXML_ICONV_ENABLED
      #define LIBXML_ISO8859X_ENABLED
      #define LIBXML_LEGACY_ENABLED
      #define LIBXML_MODULES_ENABLED
      #define LIBXML_MODULE_EXTENSION
      #define LIBXML_OUTPUT_ENABLED
      #define LIBXML_PATTERN_ENABLED
      #define LIBXML_PUSH_ENABLED
      #define LIBXML_READER_ENABLED
      #define LIBXML_REGEXP_ENABLED
      #define LIBXML_SAX1_ENABLED
      #define LIBXML_SCHEMAS_ENABLED
      #define LIBXML_SCHEMATRON_ENABLED
      #define LIBXML_TEST_VERSION
      #define LIBXML_THREAD_ENABLED
      #define LIBXML_TREE_ENABLED
      #define LIBXML_UNICODE_ENABLED
      #define LIBXML_VALID_ENABLED
      #define LIBXML_VERSION
      #define LIBXML_VERSION_EXTRA
      #define LIBXML_VERSION_STRING
      #define LIBXML_WRITER_ENABLED
      #define LIBXML_XINCLUDE_ENABLED
      #define LIBXML_XPATH_ENABLED
      #define LIBXML_XPTR_ENABLED
      #define LIBXML_ZLIB_ENABLED
      #define WITHOUT_TRIO
      #define WITH_TRIO
      void	xmlCheckVersion			(int version)

      Description

      Macro: ATTRIBUTE_UNUSED

      #define ATTRIBUTE_UNUSED

      Macro used to signal to GCC unused function parameters

      Macro: DEBUG_MEMORY_LOCATION

      #define DEBUG_MEMORY_LOCATION

      Whether the memory debugging is configured in

      diff --git a/doc/html/libxml-xmlwriter.html b/doc/html/libxml-xmlwriter.html index 111207b..1d3c6fd 100644 --- a/doc/html/libxml-xmlwriter.html +++ b/doc/html/libxml-xmlwriter.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module xmlwriter from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlwriter from libxml2

      API Menu
      API Indexes
      Related links

      text writing API for XML

      Table of Contents

      #define xmlTextWriterWriteDocType
      #define xmlTextWriterWriteProcessingInstruction
      Structure xmlTextWriter
      struct _xmlTextWriter + Module xmlwriter from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xmlwriter from libxml2

      API Menu
      API Indexes
      Related links

      text writing API for XML

      Table of Contents

      #define xmlTextWriterWriteDocType
      #define xmlTextWriterWriteProcessingInstruction
      Structure xmlTextWriter
      struct _xmlTextWriter The content of this structure is not made public by the API.
      Typedef xmlTextWriter * xmlTextWriterPtr
       
      void	xmlFreeTextWriter		(xmlTextWriterPtr writer)
      @@ -126,8 +126,8 @@ The content of this structure is not made public by the API.
      writer:the xmlTextWriterPtr
      Returns:the bytes written (may be 0 because of buffering) or -1 in case of error

      Function: xmlTextWriterEndDTDEntity

      int	xmlTextWriterEndDTDEntity	(xmlTextWriterPtr writer)

      End an xml DTD entity.

      writer:the xmlTextWriterPtr
      Returns:the bytes written (may be 0 because of buffering) or -1 in case of error

      Function: xmlTextWriterEndDocument

      int	xmlTextWriterEndDocument	(xmlTextWriterPtr writer)
      -

      End an xml document. All open elements are closed

      -
      writer:the xmlTextWriterPtr
      Returns:the bytes written (may be 0 because of buffering) or -1 in case of error

      Function: xmlTextWriterEndElement

      int	xmlTextWriterEndElement		(xmlTextWriterPtr writer)
      +

      End an xml document. All open elements are closed, and the content is flushed to the output.

      +
      writer:the xmlTextWriterPtr
      Returns:the bytes written or -1 in case of error

      Function: xmlTextWriterEndElement

      int	xmlTextWriterEndElement		(xmlTextWriterPtr writer)

      End the current xml element.

      writer:the xmlTextWriterPtr
      Returns:the bytes written (may be 0 because of buffering) or -1 in case of error

      Function: xmlTextWriterEndPI

      int	xmlTextWriterEndPI		(xmlTextWriterPtr writer)

      End the current xml PI.

      diff --git a/doc/html/libxml-xpath.html b/doc/html/libxml-xpath.html index 19225da..ce71616 100644 --- a/doc/html/libxml-xpath.html +++ b/doc/html/libxml-xpath.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module xpath from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xpath from libxml2

      API Menu
      API Indexes
      Related links

      API for the XML Path Language implementation XML Path Language implementation XPath is a language for addressing parts of an XML document, designed to be used by both XSLT and XPointer

      Table of Contents

      #define XML_XPATH_CHECKNS
      #define XML_XPATH_NOVAR
      #define xmlXPathNodeSetGetLength
      #define xmlXPathNodeSetIsEmpty
      #define xmlXPathNodeSetItem
      Structure xmlNodeSet
      struct _xmlNodeSet + Module xpath from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xpath from libxml2

      API Menu
      API Indexes
      Related links

      API for the XML Path Language implementation XML Path Language implementation XPath is a language for addressing parts of an XML document, designed to be used by both XSLT and XPointer

      Table of Contents

      #define XML_XPATH_CHECKNS
      #define XML_XPATH_NOVAR
      #define xmlXPathNodeSetGetLength
      #define xmlXPathNodeSetIsEmpty
      #define xmlXPathNodeSetItem
      Structure xmlNodeSet
      struct _xmlNodeSet
      Typedef xmlNodeSet * xmlNodeSetPtr
       
      Structure xmlXPathAxis
      struct _xmlXPathAxis
      Typedef xmlXPathAxis * xmlXPathAxisPtr
      diff --git a/doc/html/libxml-xpathInternals.html b/doc/html/libxml-xpathInternals.html
      index eae9705..d3ac35f 100644
      --- a/doc/html/libxml-xpathInternals.html
      +++ b/doc/html/libxml-xpathInternals.html
      @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline }
       Module xpathInternals from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xpathInternals from libxml2

      API Menu
      API Indexes
      Related links

      internal interfaces for XML Path Language implementation used to build new modules on top of XPath like XPointer and XSLT

      Table of Contents

      #define CAST_TO_BOOLEAN
      #define CAST_TO_NUMBER
      #define CAST_TO_STRING
      #define CHECK_ARITY
      #define CHECK_ERROR
      #define CHECK_ERROR0
      #define CHECK_TYPE
      #define CHECK_TYPE0
      #define XP_ERROR
      #define XP_ERROR0
      #define xmlXPathCheckError
      #define xmlXPathEmptyNodeSet
      #define xmlXPathGetContextNode
      #define xmlXPathGetDocument
      #define xmlXPathGetError
      #define xmlXPathReturnBoolean
      #define xmlXPathReturnEmptyNodeSet
      #define xmlXPathReturnEmptyString
      #define xmlXPathReturnExternal
      #define xmlXPathReturnFalse
      #define xmlXPathReturnNodeSet
      #define xmlXPathReturnNumber
      #define xmlXPathReturnString
      #define xmlXPathReturnTrue
      #define xmlXPathSetArityError
      #define xmlXPathSetError
      #define xmlXPathSetTypeError
      #define xmlXPathStackIsExternal
      #define xmlXPathStackIsNodeSet
      xmlXPathObjectPtr	valuePop	(xmlXPathParserContextPtr ctxt)
      + Module xpathInternals from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xpathInternals from libxml2

      API Menu
      API Indexes
      Related links

      internal interfaces for XML Path Language implementation used to build new modules on top of XPath like XPointer and XSLT

      Table of Contents

      #define CAST_TO_BOOLEAN
      #define CAST_TO_NUMBER
      #define CAST_TO_STRING
      #define CHECK_ARITY
      #define CHECK_ERROR
      #define CHECK_ERROR0
      #define CHECK_TYPE
      #define CHECK_TYPE0
      #define XP_ERROR
      #define XP_ERROR0
      #define xmlXPathCheckError
      #define xmlXPathEmptyNodeSet
      #define xmlXPathGetContextNode
      #define xmlXPathGetDocument
      #define xmlXPathGetError
      #define xmlXPathReturnBoolean
      #define xmlXPathReturnEmptyNodeSet
      #define xmlXPathReturnEmptyString
      #define xmlXPathReturnExternal
      #define xmlXPathReturnFalse
      #define xmlXPathReturnNodeSet
      #define xmlXPathReturnNumber
      #define xmlXPathReturnString
      #define xmlXPathReturnTrue
      #define xmlXPathSetArityError
      #define xmlXPathSetError
      #define xmlXPathSetTypeError
      #define xmlXPathStackIsExternal
      #define xmlXPathStackIsNodeSet
      xmlXPathObjectPtr	valuePop	(xmlXPathParserContextPtr ctxt)
      int	valuePush			(xmlXPathParserContextPtr ctxt, 
      xmlXPathObjectPtr value)
      void	xmlXPathAddValues		(xmlXPathParserContextPtr ctxt)
      void	xmlXPathBooleanFunction		(xmlXPathParserContextPtr ctxt, 
      int nargs)
      diff --git a/doc/html/libxml-xpointer.html b/doc/html/libxml-xpointer.html index 7b0c350..45f8d7d 100644 --- a/doc/html/libxml-xpointer.html +++ b/doc/html/libxml-xpointer.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module xpointer from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xpointer from libxml2

      API Menu
      API Indexes
      Related links

      API to handle XML Pointers Base implementation was made accordingly to W3C Candidate Recommendation 7 June 2000

      Table of Contents

      Structure xmlLocationSet
      struct _xmlLocationSet + Module xpointer from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xpointer from libxml2

      API Menu
      API Indexes
      Related links

      API to handle XML Pointers Base implementation was made accordingly to W3C Candidate Recommendation 7 June 2000

      Table of Contents

      Structure xmlLocationSet
      struct _xmlLocationSet
      Typedef xmlLocationSet * xmlLocationSetPtr
       
      xmlNodePtr	xmlXPtrBuildNodeList	(xmlXPathObjectPtr obj)
      xmlXPathObjectPtr	xmlXPtrEval	(const xmlChar * str, 
      xmlXPathContextPtr ctx)
      diff --git a/doc/libxml2-api.xml b/doc/libxml2-api.xml index df478d6..867ac92 100644 --- a/doc/libxml2-api.xml +++ b/doc/libxml2-api.xml @@ -1328,6 +1328,7 @@ interface to the XML Schematron validity checking. Daniel Veillard + @@ -1347,6 +1348,7 @@ + @@ -2011,6 +2013,7 @@ + @@ -2512,6 +2515,7 @@ + @@ -2593,6 +2597,7 @@ + @@ -2618,6 +2623,7 @@ + @@ -4844,7 +4850,7 @@ - + @@ -4857,6 +4863,7 @@ + @@ -5465,7 +5472,10 @@ crash if you try to modify the tree)'/> + + + @@ -5614,6 +5624,7 @@ crash if you try to modify the tree)'/> + @@ -8787,7 +8798,7 @@ Could we use @subtypes for this?'/> - Cleanup function for the XML library. It tries to reclaim all parsing related global memory allocated for the library processing. It doesn't deallocate any document related memory. Calling this function should not prevent reusing the library but one should call xmlCleanupParser() only when the process has finished using the library or XML document built with it. + This function name is somewhat misleading. It does not clean up parser state, it cleans up memory allocated by the library itself. It is a cleanup function for the XML library. It tries to reclaim all related global memory allocated for the library processing. It doesn't deallocate any document related memory. One should call xmlCleanupParser() only when the process has finished using the library and all XML/HTML documents built with it. See also xmlInitParser() which has the opposite function of preparing the library for operations. @@ -11724,7 +11735,7 @@ Could we use @subtypes for this?'/> defined(LIBXML_SAX1_ENABLED) Parse a well-balanced chunk of an XML document called by the parser The allowed sequence for the Well Balanced Chunk is the one defined by the content production in the XML grammar: [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)* - + @@ -12495,20 +12506,20 @@ Could we use @subtypes for this?'/> defined(LIBXML_SAX1_ENABLED) - parse an XML in-memory document and build a tree. In the case the document is not Well Formed, a tree is built anyway - + parse an XML in-memory document and build a tree. In the case the document is not Well Formed, a attempt to build a tree is tried anyway + defined(LIBXML_SAX1_ENABLED) - parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. In the case the document is not Well Formed, a tree is built anyway - + parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. In the case the document is not Well Formed, it attempts to build a tree anyway + defined(LIBXML_SAX1_ENABLED) - parse an XML in-memory block and build a tree. In the case the document is not Well Formed, a tree is built anyway - + parse an XML in-memory block and build a tree. In the case the document is not Well Formed, an attempt to build a tree is tried anyway + @@ -13815,6 +13826,14 @@ Could we use @subtypes for this?'/> + + defined(LIBXML_SCHEMATRON_ENABLED) + Set the structured error callback + + + + + defined(LIBXML_SCHEMATRON_ENABLED) Validate a tree instance against the schematron @@ -14662,7 +14681,7 @@ Could we use @subtypes for this?'/> defined(LIBXML_READER_ENABLED) - Get the node type of the current node Reference: http://dotgnu.org/pnetlib-doc/System/Xml/XmlNodeType.html + Get the node type of the current node Reference: http://www.gnu.org/software/dotgnu/pnetlib-doc/System/Xml/XmlNodeType.html @@ -14866,8 +14885,8 @@ Could we use @subtypes for this?'/> defined(LIBXML_WRITER_ENABLED) - End an xml document. All open elements are closed - + End an xml document. All open elements are closed, and the content is flushed to the output. + diff --git a/doc/libxml2.xsa b/doc/libxml2.xsa index c9fb529..9133b40 100644 --- a/doc/libxml2.xsa +++ b/doc/libxml2.xsa @@ -8,19 +8,26 @@ libxml2 - 2.6.30 - Aug 23 2007 + 2.6.31 + Jan 11 2008 http://xmlsoft.org/ - - Portability: Solaris crash on error handling, windows path fixes - (Roland Schwarz and Rob Richards), mingw build (Roland Schwarz) - - Bugfixes: xmlXPathNodeSetSort problem (William Brack), leak when - reusing a writer for a new document (Dodji Seketeli), Schemas - xsi:nil handling patch (Frank Gross), relative URI build problem - (Patrik Fimml), crash in xmlDocFormatDump, invalid char in comment - detection bug, fix disparity with xmlSAXUserParseMemory, automata - generation for complex regexp counts problems, Schemas IDC import - problems (Frank Gross), xpath predicate evailation error handling - (William Brack) + - Security fix: missing of checks in UTF-8 parsing + - Bug fixes: regexp bug, dump attribute from XHTML document, fix + xmlFree(NULL) to not crash in debug mode, Schematron parsing crash + (Rob Richards), global lock free on Windows (Marc-Antoine Ruel), + XSD crash due to double free (Rob Richards), indentation fix in + xmlTextWriterFullEndElement (Felipe Pena), error in attribute type + parsing if attribute redeclared, avoid crash in hash list scanner if + deleting elements, column counter bug fix (Christian Schmidt), + HTML embed element saving fix (Stefan Behnel), avoid -L/usr/lib + output from xml2-config (Fred Crozat), avoid an xmllint crash + (Stefan Kost), don't stop HTML parsing on out of range chars. + + - Code cleanup: fix open() call third argument, regexp cut'n paste + copy error, unused variable in __xmlGlobalInitMutexLock (Hannes Eder), + some make distcheck realted fixes (John Carr) + - Improvements: HTTP Header: includes port number (William Brack), + testURI --debug option, diff --git a/doc/newapi.xsl b/doc/newapi.xsl index 17d0464..c2709c7 100644 --- a/doc/newapi.xsl +++ b/doc/newapi.xsl @@ -556,6 +556,7 @@ + + Module from diff --git a/doc/news.html b/doc/news.html index f320d17..4c89278 100644 --- a/doc/news.html +++ b/doc/news.html @@ -12,7 +12,40 @@ to help those

      The change log describes the recents commits -to the SVN code base.

      Here is the list of public releases:

      2.6.31: Jan 11 2008

      • Security fix: missing of checks in UTF-8 parsing
      • +to the SVN code base.

        Here is the list of public releases:

        2.6.32: Apr 8 2008

        • Documentation: returning heap memory to kernel (Wolfram Sang), + trying to clarify xmlCleanupParser() use, xmlXPathContext improvement + (Jack Jansen), improve the *Recover* functions documentation, + XmlNodeType doc link fix (Martijn Arts)
        • +
        • Bug fixes: internal subset memory leak (Ashwin), avoid problem with + paths starting with // (Petr Sumbera), streaming XSD validation callback + patches (Ashwin), fix redirection on port other than 80 (William Brack), + SAX2 leak (Ashwin), XInclude fragment of own document (Chris Ryan), + regexp bug with '.' (Andrew Tosh), flush the writer at the end of the + document (Alfred Mickautsch), output I/O bug fix (William Brack), + writer CDATA output after a text node (Alex Khesin), UTF-16 encoding + detection (William Brack), fix handling of empty CDATA nodes for Safari + team, python binding problem with namespace nodes, improve HTML parsing + (Arnold Hendriks), regexp automata build bug, memory leak fix (Vasily + Chekalkin), XSD test crash, weird system parameter entity parsing problem, + allow save to file:///X:/ windows paths, various attribute normalisation + problems, externalSubsetSplit fix (Ashwin), attribute redefinition in + the DTD (Ashwin), fix in char ref parsing check (Alex Khesin), many + out of memory handling fixes (Ashwin), XPath out of memory handling fixes + (Alvaro Herrera), various realloc problems (Ashwin), UCS4 encoding + conversion buffer size (Christian Fruth), problems with EatName + functions on memory errors, BOM handling in external parsed entities + (Mark Rowe)
        • +
        • Code cleanup: fix build under VS 2008 (David Wimsey), remove useless + mutex in xmlDict (Florent Guilian), Mingw32 compilation fix (Carlo + Bramini), Win and MacOS EOL cleanups (Florent Guiliani), iconv need + a const detection (Roumen Petrov), simplify xmlSetProp (Julien Charbon), + cross compilation fixes for Mingw (Roumen Petrov), SCO Openserver build + fix (Florent Guiliani), iconv uses const on Win32 (Rob Richards), + duplicate code removal (Ashwin), missing malloc test and error reports + (Ashwin), VMS makefile fix (Tycho Hilhorst)
        • +
        • improvements: better plug of schematron in the normal error handling + (Tobias Minich)
        • +

        2.6.31: Jan 11 2008

        • Security fix: missing of checks in UTF-8 parsing
        • Bug fixes: regexp bug, dump attribute from XHTML document, fix xmlFree(NULL) to not crash in debug mode, Schematron parsing crash (Rob Richards), global lock free on Windows (Marc-Antoine Ruel), diff --git a/doc/xml.html b/doc/xml.html index 355dbed..8e42443 100644 --- a/doc/xml.html +++ b/doc/xml.html @@ -739,6 +739,43 @@ to the SVN code base.<

          Here is the list of public releases:

          +

          2.6.32: Apr 8 2008

          +
            +
          • Documentation: returning heap memory to kernel (Wolfram Sang), + trying to clarify xmlCleanupParser() use, xmlXPathContext improvement + (Jack Jansen), improve the *Recover* functions documentation, + XmlNodeType doc link fix (Martijn Arts)
          • +
          • Bug fixes: internal subset memory leak (Ashwin), avoid problem with + paths starting with // (Petr Sumbera), streaming XSD validation callback + patches (Ashwin), fix redirection on port other than 80 (William Brack), + SAX2 leak (Ashwin), XInclude fragment of own document (Chris Ryan), + regexp bug with '.' (Andrew Tosh), flush the writer at the end of the + document (Alfred Mickautsch), output I/O bug fix (William Brack), + writer CDATA output after a text node (Alex Khesin), UTF-16 encoding + detection (William Brack), fix handling of empty CDATA nodes for Safari + team, python binding problem with namespace nodes, improve HTML parsing + (Arnold Hendriks), regexp automata build bug, memory leak fix (Vasily + Chekalkin), XSD test crash, weird system parameter entity parsing problem, + allow save to file:///X:/ windows paths, various attribute normalisation + problems, externalSubsetSplit fix (Ashwin), attribute redefinition in + the DTD (Ashwin), fix in char ref parsing check (Alex Khesin), many + out of memory handling fixes (Ashwin), XPath out of memory handling fixes + (Alvaro Herrera), various realloc problems (Ashwin), UCS4 encoding + conversion buffer size (Christian Fruth), problems with EatName + functions on memory errors, BOM handling in external parsed entities + (Mark Rowe)
          • +
          • Code cleanup: fix build under VS 2008 (David Wimsey), remove useless + mutex in xmlDict (Florent Guilian), Mingw32 compilation fix (Carlo + Bramini), Win and MacOS EOL cleanups (Florent Guiliani), iconv need + a const detection (Roumen Petrov), simplify xmlSetProp (Julien Charbon), + cross compilation fixes for Mingw (Roumen Petrov), SCO Openserver build + fix (Florent Guiliani), iconv uses const on Win32 (Rob Richards), + duplicate code removal (Ashwin), missing malloc test and error reports + (Ashwin), VMS makefile fix (Tycho Hilhorst)
          • +
          • improvements: better plug of schematron in the normal error handling + (Tobias Minich)
          • +
          +

          2.6.31: Jan 11 2008

          • Security fix: missing of checks in UTF-8 parsing
          • @@ -3356,9 +3393,10 @@ should be both simple and complete enough to allow you to build your own.

            1. General overview
            2. Setting libxml2 set of memory routines
            3. -
            4. Cleaning up after parsing
            5. +
            6. Cleaning up after using the library
            7. Debugging routines
            8. General memory requirements
            9. +
            10. Returning memory to the kernel

            General overview

            @@ -3391,27 +3429,29 @@ debugging, analysis or to implement a specific behaviour on memory management any other libxml2 routines (unless you are sure your allocations routines are compatibles).

            -

            Cleaning up after parsing

            +

            Cleaning up after using the library

            Libxml2 is not stateless, there is a few set of memory structures needing allocation before the parser is fully functional (some encoding structures for example). This also mean that once parsing is finished there is a tiny amount of memory (a few hundred bytes) which can be recollected if you don't -reuse the parser immediately:

            +reuse the library or any document built with it:

            • xmlCleanupParser - () is a centralized routine to free the parsing states. Note that it - won't deallocate any produced tree if any (use the xmlFreeDoc() and - related routines for this).
            • + () is a centralized routine to free the library state and data. Note + that it won't deallocate any produced tree if any (use the xmlFreeDoc() + and related routines for this). This should be called only when the library + is not used anymore.
            • xmlInitParser () is the dual routine allowing to preallocate the parsing state which can be useful for example to avoid initialization reentrancy problems when using libxml2 in multithreaded applications
            -

            Generally xmlCleanupParser() is safe, if needed the state will be rebuild -at the next invocation of parser routines, but be careful of the consequences -in multithreaded applications.

            +

            Generally xmlCleanupParser() is safe assuming no parsing is ongoing and +no document is still being used, if needed the state will be rebuild at the +next invocation of parser routines (or by xmlInitParser()), but be careful +of the consequences in multithreaded applications.

            Debugging routines

            @@ -3496,6 +3536,20 @@ of a number of things:

            then the SAX interface should be used, but it has known restrictions.
          +

          +

          Returning memory to the kernel

          + +

          You may encounter that your process using libxml2 does not have a +reduced memory usage although you freed the trees. This is because +libxml2 allocates memory in a number of small chunks. When freeing one +of those chunks, the OS may decide that giving this little memory back +to the kernel will cause too much overhead and delay the operation. As +all chunks are this small, they get actually freed but not returned to +the kernel. On systems using glibc, there is a function call +"malloc_trim" from malloc.h which does this missing operation (note that +it is allowed to fail). Thus, after freeing your tree you may simply try +"malloc_trim(0);" to really get the memory back. If your OS does not +provide malloc_trim, try searching for a similar function.

          Encodings support

          diff --git a/doc/xmlmem.html b/doc/xmlmem.html index 1ca4334..5599444 100644 --- a/doc/xmlmem.html +++ b/doc/xmlmem.html @@ -9,9 +9,10 @@ H3 {font-family: Verdana,Arial,Helvetica} A:link, A:visited, A:active { text-decoration: underline } Memory Management
          Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
          Made with Libxml2 Logo

          The XML C parser and toolkit of Gnome

          Memory Management

          Developer Menu
          API Indexes
          Related links

          Table of Content:

          1. General overview
          2. Setting libxml2 set of memory routines
          3. -
          4. Cleaning up after parsing
          5. +
          6. Cleaning up after using the library
          7. Debugging routines
          8. General memory requirements
          9. +
          10. Returning memory to the kernel

          General overview

          The module xmlmemory.h provides the interfaces to the libxml2 memory system:

          • libxml2 does not use the libc memory allocator directly but xmlFree(), xmlMalloc() and xmlRealloc()
          • @@ -26,21 +27,23 @@ debugging, analysis or to implement a specific behaviour on memory management which allow to set up a new set of memory allocation functions

          Of course a call to xmlMemSetup() should probably be done before calling any other libxml2 routines (unless you are sure your allocations routines are -compatibles).

          Cleaning up after parsing

          Libxml2 is not stateless, there is a few set of memory structures needing +compatibles).

          Cleaning up after using the library

          Libxml2 is not stateless, there is a few set of memory structures needing allocation before the parser is fully functional (some encoding structures for example). This also mean that once parsing is finished there is a tiny amount of memory (a few hundred bytes) which can be recollected if you don't -reuse the parser immediately:

          • xmlCleanupParser - () is a centralized routine to free the parsing states. Note that it - won't deallocate any produced tree if any (use the xmlFreeDoc() and - related routines for this).
          • +reuse the library or any document built with it:

            • xmlCleanupParser + () is a centralized routine to free the library state and data. Note + that it won't deallocate any produced tree if any (use the xmlFreeDoc() + and related routines for this). This should be called only when the library + is not used anymore.
            • xmlInitParser () is the dual routine allowing to preallocate the parsing state which can be useful for example to avoid initialization reentrancy problems when using libxml2 in multithreaded applications
            • -

            Generally xmlCleanupParser() is safe, if needed the state will be rebuild -at the next invocation of parser routines, but be careful of the consequences -in multithreaded applications.

            Debugging routines

            When configured using --with-mem-debug flag (off by default), libxml2 uses +

          Generally xmlCleanupParser() is safe assuming no parsing is ongoing and +no document is still being used, if needed the state will be rebuild at the +next invocation of parser routines (or by xmlInitParser()), but be careful +of the consequences in multithreaded applications.

          Debugging routines

          When configured using --with-mem-debug flag (off by default), libxml2 uses a set of memory allocation debugging routines keeping track of all allocated blocks and the location in the code where the routine was called. A couple of other debugging routines allow to dump the memory allocated infos to a file @@ -99,4 +102,14 @@ of a number of things:

          • the parser itself should work in a fixed amou validation, DOM, XPath or XPointer, don't use entities, need to work with fixed memory requirements, and try to get the fastest parsing possible then the SAX interface should be used, but it has known restrictions.
          • -

          Daniel Veillard

          +

        Returning memory to the kernel

        You may encounter that your process using libxml2 does not have a +reduced memory usage although you freed the trees. This is because +libxml2 allocates memory in a number of small chunks. When freeing one +of those chunks, the OS may decide that giving this little memory back +to the kernel will cause too much overhead and delay the operation. As +all chunks are this small, they get actually freed but not returned to +the kernel. On systems using glibc, there is a function call +"malloc_trim" from malloc.h which does this missing operation (note that +it is allowed to fail). Thus, after freeing your tree you may simply try +"malloc_trim(0);" to really get the memory back. If your OS does not +provide malloc_trim, try searching for a similar function.

        Daniel Veillard

      diff --git a/elfgcchack.h b/elfgcchack.h index cd9605c..e1d21bb 100644 --- a/elfgcchack.h +++ b/elfgcchack.h @@ -10117,6 +10117,18 @@ extern __typeof (xmlSchematronParse) xmlSchematronParse__internal_alias __attrib #endif #endif +#if defined(LIBXML_SCHEMATRON_ENABLED) +#ifdef bottom_schematron +#undef xmlSchematronSetValidStructuredErrors +extern __typeof (xmlSchematronSetValidStructuredErrors) xmlSchematronSetValidStructuredErrors __attribute((alias("xmlSchematronSetValidStructuredErrors__internal_alias"))); +#else +#ifndef xmlSchematronSetValidStructuredErrors +extern __typeof (xmlSchematronSetValidStructuredErrors) xmlSchematronSetValidStructuredErrors__internal_alias __attribute((visibility("hidden"))); +#define xmlSchematronSetValidStructuredErrors xmlSchematronSetValidStructuredErrors__internal_alias +#endif +#endif +#endif + #if defined(LIBXML_SCHEMATRON_ENABLED) #ifdef bottom_schematron #undef xmlSchematronValidateDoc diff --git a/encoding.c b/encoding.c index 002eeba..6c49fff 100644 --- a/encoding.c +++ b/encoding.c @@ -1703,7 +1703,7 @@ xmlIconvWrapper(iconv_t cd, unsigned char *out, int *outlen, } icv_inlen = *inlen; icv_outlen = *outlen; - ret = iconv(cd, (char **) &icv_in, &icv_inlen, &icv_out, &icv_outlen); + ret = iconv(cd, (ICONV_CONST char **) &icv_in, &icv_inlen, &icv_out, &icv_outlen); *inlen -= icv_inlen; *outlen -= icv_outlen; if ((icv_inlen != 0) || (ret == -1)) { @@ -1768,9 +1768,10 @@ xmlCharEncFirstLine(xmlCharEncodingHandler *handler, xmlBufferPtr out, * echo '' | wc -c => 38 * 45 chars should be sufficient to reach the end of the encoding * declaration without going too far inside the document content. + * on UTF-16 this means 90bytes, on UCS4 this means 180 */ - if (toconv > 45) - toconv = 45; + if (toconv > 180) + toconv = 180; if (toconv * 2 >= written) { xmlBufferGrow(out, toconv); written = out->size - out->use - 1; @@ -1991,8 +1992,8 @@ retry: toconv = in->use; if (toconv == 0) return(0); - if (toconv * 2 >= written) { - xmlBufferGrow(out, toconv * 2); + if (toconv * 4 >= written) { + xmlBufferGrow(out, toconv * 4); written = out->size - out->use - 1; } if (handler->output != NULL) { diff --git a/error.c b/error.c index 722ffbb..5f03d94 100644 --- a/error.c +++ b/error.c @@ -31,7 +31,7 @@ void XMLCDECL xmlGenericErrorDefaultFunc (void *ctx ATTRIBUTE_UNUSED, \ size = 150; \ \ - while (1) { \ + while (size < 64000) { \ va_start(ap, msg); \ chars = vsnprintf(str, size, msg, ap); \ va_end(ap); \ diff --git a/globals.c b/globals.c index 636ff87..cbc6625 100644 --- a/globals.c +++ b/globals.c @@ -60,7 +60,7 @@ void xmlCleanupGlobals(void) xmlFreeMutex(xmlThrDefMutex); xmlThrDefMutex = NULL; } - __xmlGlobalInitMutexDestroy(); + __xmlGlobalInitMutexDestroy(); } /************************************************************************ diff --git a/include/libxml/schematron.h b/include/libxml/schematron.h index 6eaa699..9e36c0e 100644 --- a/include/libxml/schematron.h +++ b/include/libxml/schematron.h @@ -25,6 +25,7 @@ typedef enum { XML_SCHEMATRON_OUT_QUIET = 1 << 0, /* quiet no report */ XML_SCHEMATRON_OUT_TEXT = 1 << 1, /* build a textual report */ XML_SCHEMATRON_OUT_XML = 1 << 2, /* output SVRL */ + XML_SCHEMATRON_OUT_ERROR = 1 << 3, /* output via xmlStructuredErrorFunc */ XML_SCHEMATRON_OUT_FILE = 1 << 8, /* output to a file descriptor */ XML_SCHEMATRON_OUT_BUFFER = 1 << 9, /* output to a buffer */ XML_SCHEMATRON_OUT_IO = 1 << 10 /* output to I/O mechanism */ @@ -81,12 +82,12 @@ XMLPUBFUN void XMLCALL /* * Interfaces for validating */ -/****** XMLPUBFUN void XMLCALL xmlSchematronSetValidStructuredErrors( xmlSchematronValidCtxtPtr ctxt, xmlStructuredErrorFunc serror, void *ctx); +/****** XMLPUBFUN void XMLCALL xmlSchematronSetValidErrors (xmlSchematronValidCtxtPtr ctxt, xmlSchematronValidityErrorFunc err, diff --git a/include/libxml/threads.h b/include/libxml/threads.h index f81f982..d31f16a 100644 --- a/include/libxml/threads.h +++ b/include/libxml/threads.h @@ -36,40 +36,40 @@ typedef xmlRMutex *xmlRMutexPtr; #ifdef __cplusplus extern "C" { #endif -XMLPUBFUN xmlMutexPtr XMLCALL +XMLPUBFUN xmlMutexPtr XMLCALL xmlNewMutex (void); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlMutexLock (xmlMutexPtr tok); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlMutexUnlock (xmlMutexPtr tok); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeMutex (xmlMutexPtr tok); -XMLPUBFUN xmlRMutexPtr XMLCALL +XMLPUBFUN xmlRMutexPtr XMLCALL xmlNewRMutex (void); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlRMutexLock (xmlRMutexPtr tok); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlRMutexUnlock (xmlRMutexPtr tok); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeRMutex (xmlRMutexPtr tok); /* * Library wide APIs. */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlInitThreads (void); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlLockLibrary (void); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlUnlockLibrary(void); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlGetThreadId (void); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlIsMainThread (void); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlCleanupThreads(void); -XMLPUBFUN xmlGlobalStatePtr XMLCALL +XMLPUBFUN xmlGlobalStatePtr XMLCALL xmlGetGlobalState(void); #if defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && defined(LIBXML_STATIC_FOR_DLL) diff --git a/include/libxml/xmlerror.h b/include/libxml/xmlerror.h index c5f2164..8cbab5e 100644 --- a/include/libxml/xmlerror.h +++ b/include/libxml/xmlerror.h @@ -61,7 +61,8 @@ typedef enum { XML_FROM_CHECK, /* The error checking module */ XML_FROM_WRITER, /* The xmlwriter module */ XML_FROM_MODULE, /* The dynamically loaded module module*/ - XML_FROM_I18N /* The module handling character conversion */ + XML_FROM_I18N, /* The module handling character conversion */ + XML_FROM_SCHEMATRONV /* The Schematron validator module */ } xmlErrorDomain; /** @@ -398,6 +399,7 @@ typedef enum { XML_TREE_INVALID_HEX = 1300, XML_TREE_INVALID_DEC, /* 1301 */ XML_TREE_UNTERMINATED_ENTITY, /* 1302 */ + XML_TREE_NOT_UTF8, /* 1303 */ XML_SAVE_NOT_UTF8 = 1400, XML_SAVE_CHAR_INVALID, /* 1401 */ XML_SAVE_NO_DOCTYPE, /* 1402 */ @@ -773,6 +775,8 @@ typedef enum { XML_SCHEMAP_AU_PROPS_CORRECT, /* 3088 */ XML_SCHEMAP_A_PROPS_CORRECT_3, /* 3089 */ XML_SCHEMAP_COS_ALL_LIMITED, /* 3090 */ + XML_SCHEMATRONV_ASSERT = 4000, /* 4000 */ + XML_SCHEMATRONV_REPORT, XML_MODULE_OPEN = 4900, /* 4900 */ XML_MODULE_CLOSE, /* 4901 */ XML_CHECK_FOUND_ELEMENT = 5000, diff --git a/include/libxml/xmlversion.h b/include/libxml/xmlversion.h index adb4f4e..9fc51a2 100644 --- a/include/libxml/xmlversion.h +++ b/include/libxml/xmlversion.h @@ -29,21 +29,21 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(int version); * * the version string like "1.2.3" */ -#define LIBXML_DOTTED_VERSION "2.6.31" +#define LIBXML_DOTTED_VERSION "2.6.32" /** * LIBXML_VERSION: * * the version number: 1.2.3 value is 10203 */ -#define LIBXML_VERSION 20631 +#define LIBXML_VERSION 20632 /** * LIBXML_VERSION_STRING: * * the version number string, 1.2.3 value is "10203" */ -#define LIBXML_VERSION_STRING "20631" +#define LIBXML_VERSION_STRING "20632" /** * LIBXML_VERSION_EXTRA: @@ -58,7 +58,7 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(int version); * Macro to check that the libxml version in use is compatible with * the version the software has been compiled against */ -#define LIBXML_TEST_VERSION xmlCheckVersion(20631); +#define LIBXML_TEST_VERSION xmlCheckVersion(20632); #ifndef VMS #if 0 diff --git a/include/libxml/xpath.h b/include/libxml/xpath.h index 725cebe..1a9e30e 100644 --- a/include/libxml/xpath.h +++ b/include/libxml/xpath.h @@ -278,6 +278,9 @@ typedef xmlXPathFunction (*xmlXPathFuncLookupFunc) (void *ctxt, * - the set of namespace declarations in scope for the expression * Following the switch to hash tables, this need to be trimmed up at * the next binary incompatible release. + * The node may be modified when the context is passed to libxml2 + * for an XPath evaluation so you may need to initialize it again + * before the next call. */ struct _xmlXPathContext { diff --git a/include/win32config.h b/include/win32config.h index 6e9b33b..3fc9be5 100644 --- a/include/win32config.h +++ b/include/win32config.h @@ -23,6 +23,10 @@ #include +#ifndef ICONV_CONST +#define ICONV_CONST const +#endif + #ifdef NEED_SOCKETS #include #endif @@ -92,7 +96,9 @@ static int isnan (double d) { #if defined(_MSC_VER) #define mkdir(p,m) _mkdir(p) #define snprintf _snprintf +#if _MSC_VER < 1500 #define vsnprintf(b,c,f,a) _vsnprintf(b,c,f,a) +#endif #elif defined(__MINGW32__) #define mkdir(p,m) _mkdir(p) #endif diff --git a/libxml2.spec b/libxml2.spec index 40632aa..887e8a1 100644 --- a/libxml2.spec +++ b/libxml2.spec @@ -1,6 +1,6 @@ Summary: Library providing XML and HTML support Name: libxml2 -Version: 2.6.31 +Version: 2.6.32 Release: 1 License: MIT Group: Development/Libraries @@ -128,6 +128,6 @@ rm -fr %{buildroot} %doc doc/python.html %changelog -* Fri Jan 11 2008 Daniel Veillard -- upstream release 2.6.31 see http://xmlsoft.org/news.html +* Tue Apr 8 2008 Daniel Veillard +- upstream release 2.6.32 see http://xmlsoft.org/news.html diff --git a/macos/src/XMLTestPrefix.h.orig b/macos/src/XMLTestPrefix.h.orig new file mode 100644 index 0000000..3e84255 --- /dev/null +++ b/macos/src/XMLTestPrefix.h.orig @@ -0,0 +1 @@ +int test_main(int argc, char **argv); #define main(X,Y) test_main(X,Y) \ No newline at end of file diff --git a/nanohttp.c b/nanohttp.c index 91c7e87..07829c7 100644 --- a/nanohttp.c +++ b/nanohttp.c @@ -1332,13 +1332,23 @@ retry: if (headers != NULL) blen += strlen(headers) + 2; if (contentType && *contentType) + /* reserve for string plus 'Content-Type: \r\n" */ blen += strlen(*contentType) + 16; if (ctxt->query != NULL) + /* 1 for '?' */ blen += strlen(ctxt->query) + 1; blen += strlen(method) + strlen(ctxt->path) + 24; #ifdef HAVE_ZLIB_H + /* reserve for possible 'Accept-Encoding: gzip' string */ blen += 23; #endif + if (ctxt->port != 80) { + /* reserve space for ':xxxxx', incl. potential proxy */ + if (proxy) + blen += 12; + else + blen += 6; + } bp = (char*)xmlMallocAtomic(blen); if ( bp == NULL ) { xmlNanoHTTPFreeCtxt( ctxt ); diff --git a/parser.c b/parser.c index 529e061..f20fd05 100644 --- a/parser.c +++ b/parser.c @@ -126,6 +126,9 @@ static xmlParserErrors xmlParseBalancedChunkMemoryInternal(xmlParserCtxtPtr oldctxt, const xmlChar *string, void *user_data, xmlNodePtr *lst); +static int +xmlLoadEntityContent(xmlParserCtxtPtr ctxt, xmlEntityPtr entity); + /************************************************************************ * * * Some factorized error routines * @@ -859,6 +862,103 @@ struct _xmlDefAttrs { const xmlChar *values[4]; /* array of localname/prefix/values */ }; +/** + * xmlAttrNormalizeSpace: + * @src: the source string + * @dst: the target string + * + * Normalize the space in non CDATA attribute values: + * If the attribute type is not CDATA, then the XML processor MUST further + * process the normalized attribute value by discarding any leading and + * trailing space (#x20) characters, and by replacing sequences of space + * (#x20) characters by a single space (#x20) character. + * Note that the size of dst need to be at least src, and if one doesn't need + * to preserve dst (and it doesn't come from a dictionary or read-only) then + * passing src as dst is just fine. + * + * Returns a pointer to the normalized value (dst) or NULL if no conversion + * is needed. + */ +static xmlChar * +xmlAttrNormalizeSpace(const xmlChar *src, xmlChar *dst) +{ + if ((src == NULL) || (dst == NULL)) + return(NULL); + + while (*src == 0x20) src++; + while (*src != 0) { + if (*src == 0x20) { + while (*src == 0x20) src++; + if (*src != 0) + *dst++ = 0x20; + } else { + *dst++ = *src++; + } + } + *dst = 0; + if (dst == src) + return(NULL); + return(dst); +} + +/** + * xmlAttrNormalizeSpace2: + * @src: the source string + * + * Normalize the space in non CDATA attribute values, a slightly more complex + * front end to avoid allocation problems when running on attribute values + * coming from the input. + * + * Returns a pointer to the normalized value (dst) or NULL if no conversion + * is needed. + */ +static const xmlChar * +xmlAttrNormalizeSpace2(xmlParserCtxtPtr ctxt, const xmlChar *src, int *len) +{ + int i; + int remove_head = 0; + int need_realloc = 0; + const xmlChar *cur; + + if ((ctxt == NULL) || (src == NULL) || (len == NULL)) + return(NULL); + i = *len; + if (i <= 0) + return(NULL); + + cur = src; + while (*cur == 0x20) { + cur++; + remove_head++; + } + while (*cur != 0) { + if (*cur == 0x20) { + cur++; + if ((*cur == 0x20) || (*cur == 0)) { + need_realloc = 1; + break; + } + } else + cur++; + } + if (need_realloc) { + xmlChar *ret; + + ret = xmlStrndup(src + remove_head, i - remove_head + 1); + if (ret == NULL) { + xmlErrMemory(ctxt, NULL); + return(NULL); + } + xmlAttrNormalizeSpace(ret, ret); + *len = (int) strlen((const char *)ret); + return(ret); + } else if (remove_head) { + *len -= remove_head; + return(src + remove_head); + } + return(NULL); +} + /** * xmlAddDefAttrs: * @ctxt: an XML parser context @@ -878,6 +978,14 @@ xmlAddDefAttrs(xmlParserCtxtPtr ctxt, const xmlChar *name; const xmlChar *prefix; + /* + * Allows to detect attribute redefinitions + */ + if (ctxt->attsSpecial != NULL) { + if (xmlHashLookup2(ctxt->attsSpecial, fullname, fullattr) != NULL) + return; + } + if (ctxt->attsDefault == NULL) { ctxt->attsDefault = xmlHashCreateDict(10, ctxt->dict); if (ctxt->attsDefault == NULL) @@ -908,7 +1016,11 @@ xmlAddDefAttrs(xmlParserCtxtPtr ctxt, goto mem_error; defaults->nbAttrs = 0; defaults->maxAttrs = 4; - xmlHashUpdateEntry2(ctxt->attsDefault, name, prefix, defaults, NULL); + if (xmlHashUpdateEntry2(ctxt->attsDefault, name, prefix, + defaults, NULL) < 0) { + xmlFree(defaults); + goto mem_error; + } } else if (defaults->nbAttrs >= defaults->maxAttrs) { xmlDefAttrsPtr temp; @@ -918,7 +1030,11 @@ xmlAddDefAttrs(xmlParserCtxtPtr ctxt, goto mem_error; defaults = temp; defaults->maxAttrs *= 2; - xmlHashUpdateEntry2(ctxt->attsDefault, name, prefix, defaults, NULL); + if (xmlHashUpdateEntry2(ctxt->attsDefault, name, prefix, + defaults, NULL) < 0) { + xmlFree(defaults); + goto mem_error; + } } /* @@ -1141,15 +1257,16 @@ nsPush(xmlParserCtxtPtr ctxt, const xmlChar *prefix, const xmlChar *URL) return (-1); } } else if (ctxt->nsNr >= ctxt->nsMax) { + const xmlChar ** tmp; ctxt->nsMax *= 2; - ctxt->nsTab = (const xmlChar **) - xmlRealloc((char *) ctxt->nsTab, - ctxt->nsMax * sizeof(ctxt->nsTab[0])); - if (ctxt->nsTab == NULL) { + tmp = (const xmlChar **) xmlRealloc((char *) ctxt->nsTab, + ctxt->nsMax * sizeof(ctxt->nsTab[0])); + if (tmp == NULL) { xmlErrMemory(ctxt, NULL); ctxt->nsMax /= 2; return (-1); } + ctxt->nsTab = tmp; } ctxt->nsTab[ctxt->nsNr++] = prefix; ctxt->nsTab[ctxt->nsNr++] = URL; @@ -1470,13 +1587,16 @@ namePop(xmlParserCtxtPtr ctxt) static int spacePush(xmlParserCtxtPtr ctxt, int val) { if (ctxt->spaceNr >= ctxt->spaceMax) { + int *tmp; + ctxt->spaceMax *= 2; - ctxt->spaceTab = (int *) xmlRealloc(ctxt->spaceTab, - ctxt->spaceMax * sizeof(ctxt->spaceTab[0])); - if (ctxt->spaceTab == NULL) { + tmp = (int *) xmlRealloc(ctxt->spaceTab, + ctxt->spaceMax * sizeof(ctxt->spaceTab[0])); + if (tmp == NULL) { xmlErrMemory(ctxt, NULL); return(0); } + ctxt->spaceTab = tmp; } ctxt->spaceTab[ctxt->spaceNr] = val; ctxt->space = &ctxt->spaceTab[ctxt->spaceNr]; @@ -1966,6 +2086,7 @@ xmlNewBlanksWrapperInputStream(xmlParserCtxtPtr ctxt, xmlEntityPtr entity) { buffer = xmlMallocAtomic(length); if (buffer == NULL) { xmlErrMemory(ctxt, NULL); + xmlFree(input); return(NULL); } buffer [0] = ' '; @@ -2182,7 +2303,7 @@ xmlParserHandlePEReference(xmlParserCtxtPtr ctxt) { xmlChar *tmp; \ buffer##_size *= 2; \ tmp = (xmlChar *) \ - xmlRealloc(buffer, buffer##_size * sizeof(xmlChar)); \ + xmlRealloc(buffer, buffer##_size * sizeof(xmlChar)); \ if (tmp == NULL) goto mem_error; \ buffer = tmp; \ } @@ -2213,6 +2334,7 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, int buffer_size = 0; xmlChar *current = NULL; + xmlChar *rep = NULL; const xmlChar *last; xmlEntityPtr ent; int c,l; @@ -2272,8 +2394,6 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, "predefined entity has no content\n"); } } else if ((ent != NULL) && (ent->content != NULL)) { - xmlChar *rep; - ctxt->depth++; rep = xmlStringDecodeEntities(ctxt, ent->content, what, 0, 0, 0); @@ -2288,6 +2408,7 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, } } xmlFree(rep); + rep = NULL; } } else if (ent != NULL) { int i = xmlStrlen(ent->name); @@ -2307,8 +2428,10 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, "String decoding PE Reference: %.30s\n", str); ent = xmlParseStringPEReference(ctxt, &str); if (ent != NULL) { - xmlChar *rep; - + if (ent->content == NULL) { + if (xmlLoadEntityContent(ctxt, ent) < 0) { + } + } ctxt->depth++; rep = xmlStringDecodeEntities(ctxt, ent->content, what, 0, 0, 0); @@ -2323,6 +2446,7 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, } } xmlFree(rep); + rep = NULL; } } } else { @@ -2342,6 +2466,10 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, mem_error: xmlErrMemory(ctxt, NULL); + if (rep != NULL) + xmlFree(rep); + if (buffer != NULL) + xmlFree(buffer); return(NULL); } @@ -2456,7 +2584,7 @@ static int areBlanks(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, * xmlSplitQName: * @ctxt: an XML parser context * @name: an XML parser context - * @prefix: a xmlChar ** + * @prefix: a xmlChar ** * * parse an UTF8 encoded XML qualified name string * @@ -2507,7 +2635,7 @@ xmlSplitQName(xmlParserCtxtPtr ctxt, const xmlChar *name, xmlChar **prefix) { * for the processing speed. */ max = len * 2; - + buffer = (xmlChar *) xmlMallocAtomic(max * sizeof(xmlChar)); if (buffer == NULL) { xmlErrMemory(ctxt, NULL); @@ -2522,7 +2650,7 @@ xmlSplitQName(xmlParserCtxtPtr ctxt, const xmlChar *name, xmlChar **prefix) { tmp = (xmlChar *) xmlRealloc(buffer, max * sizeof(xmlChar)); if (tmp == NULL) { - xmlFree(tmp); + xmlFree(buffer); xmlErrMemory(ctxt, NULL); return(NULL); } @@ -2533,7 +2661,7 @@ xmlSplitQName(xmlParserCtxtPtr ctxt, const xmlChar *name, xmlChar **prefix) { } buffer[len] = 0; } - + if ((c == ':') && (*cur == 0)) { if (buffer != NULL) xmlFree(buffer); @@ -2586,7 +2714,7 @@ xmlSplitQName(xmlParserCtxtPtr ctxt, const xmlChar *name, xmlChar **prefix) { * for the processing speed. */ max = len * 2; - + buffer = (xmlChar *) xmlMallocAtomic(max * sizeof(xmlChar)); if (buffer == NULL) { xmlErrMemory(ctxt, NULL); @@ -2612,7 +2740,7 @@ xmlSplitQName(xmlParserCtxtPtr ctxt, const xmlChar *name, xmlChar **prefix) { } buffer[len] = 0; } - + if (buffer == NULL) ret = xmlStrndup(buf, len); else { @@ -3085,6 +3213,7 @@ static xmlChar * xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { xmlChar limit = 0; xmlChar *buf = NULL; + xmlChar *rep = NULL; int len = 0; int buf_size = 0; int c, l, in_space = 0; @@ -3103,7 +3232,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { xmlFatalErr(ctxt, XML_ERR_ATTRIBUTE_NOT_STARTED, NULL); return(NULL); } - + /* * allocate a translation buffer. */ @@ -3143,7 +3272,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { buf[len++] = '8'; buf[len++] = ';'; } - } else { + } else if (val != 0) { if (len > buf_size - 10) { growBuffer(buf); } @@ -3168,8 +3297,6 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { } } else if ((ent != NULL) && (ctxt->replaceEntities != 0)) { - xmlChar *rep; - if (ent->etype != XML_INTERNAL_PREDEFINED_ENTITY) { rep = xmlStringDecodeEntities(ctxt, ent->content, XML_SUBSTITUTE_REF, @@ -3183,6 +3310,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { } } xmlFree(rep); + rep = NULL; } } else { if (len > buf_size - 10) { @@ -3201,11 +3329,12 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { */ if ((ent->etype != XML_INTERNAL_PREDEFINED_ENTITY) && (ent->content != NULL)) { - xmlChar *rep; rep = xmlStringDecodeEntities(ctxt, ent->content, - XML_SUBSTITUTE_REF, 0, 0, 0); - if (rep != NULL) + XML_SUBSTITUTE_REF, 0, 0, 0); + if (rep != NULL) { xmlFree(rep); + rep = NULL; + } } /* @@ -3264,6 +3393,10 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { mem_error: xmlErrMemory(ctxt, NULL); + if (buf != NULL) + xmlFree(buf); + if (rep != NULL) + xmlFree(rep); return(NULL); } @@ -4532,6 +4665,10 @@ xmlParseEntityDecl(xmlParserCtxtPtr ctxt) { (xmlStrEqual(ctxt->myDoc->version, SAX_COMPAT_MODE))) { if (ctxt->myDoc == NULL) { ctxt->myDoc = xmlNewDoc(SAX_COMPAT_MODE); + if (ctxt->myDoc == NULL) { + xmlErrMemory(ctxt, "New Doc failed"); + return; + } } if (ctxt->myDoc->intSubset == NULL) ctxt->myDoc->intSubset = xmlNewDtd(ctxt->myDoc, @@ -4600,6 +4737,10 @@ xmlParseEntityDecl(xmlParserCtxtPtr ctxt) { (xmlStrEqual(ctxt->myDoc->version, SAX_COMPAT_MODE)))) { if (ctxt->myDoc == NULL) { ctxt->myDoc = xmlNewDoc(SAX_COMPAT_MODE); + if (ctxt->myDoc == NULL) { + xmlErrMemory(ctxt, "New Doc failed"); + return; + } } if (ctxt->myDoc->intSubset == NULL) @@ -5013,6 +5154,8 @@ xmlParseAttributeListDecl(xmlParserCtxtPtr ctxt) { xmlFreeEnumeration(tree); break; } + if ((type != XML_ATTRIBUTE_CDATA) && (defaultValue != NULL)) + xmlAttrNormalizeSpace(defaultValue, defaultValue); GROW; if (RAW != '>') { @@ -5102,6 +5245,8 @@ xmlParseElementMixedContentDecl(xmlParserCtxtPtr ctxt, int inputchk) { } NEXT; ret = xmlNewDocElementContent(ctxt->myDoc, NULL, XML_ELEMENT_CONTENT_PCDATA); + if (ret == NULL) + return(NULL); if (RAW == '*') { ret->ocur = XML_ELEMENT_CONTENT_MULT; NEXT; @@ -5332,6 +5477,8 @@ xmlParseElementChildrenContentDecl (xmlParserCtxtPtr ctxt, int inputchk) { } } else { xmlFatalErr(ctxt, XML_ERR_ELEMCONTENT_NOT_FINISHED, NULL); + if ((last != NULL) && (last != ret)) + xmlFreeDocElementContent(ctxt->myDoc, last); if (ret != NULL) xmlFreeDocElementContent(ctxt->myDoc, ret); return(NULL); @@ -5355,6 +5502,11 @@ xmlParseElementChildrenContentDecl (xmlParserCtxtPtr ctxt, int inputchk) { return(NULL); } last = xmlNewDocElementContent(ctxt->myDoc, elem, XML_ELEMENT_CONTENT_ELEMENT); + if (last == NULL) { + if (ret != NULL) + xmlFreeDocElementContent(ctxt->myDoc, ret); + return(NULL); + } if (RAW == '?') { last->ocur = XML_ELEMENT_CONTENT_OPT; NEXT; @@ -5907,6 +6059,21 @@ xmlParseExternalSubset(xmlParserCtxtPtr ctxt, const xmlChar *ExternalID, const xmlChar *SystemID) { xmlDetectSAX2(ctxt); GROW; + + if ((ctxt->encoding == (const xmlChar *)XML_CHAR_ENCODING_NONE) && + (ctxt->input->end - ctxt->input->cur >= 4)) { + xmlChar start[4]; + xmlCharEncoding enc; + + start[0] = RAW; + start[1] = NXT(1); + start[2] = NXT(2); + start[3] = NXT(3); + enc = xmlDetectCharEncoding(start, 4); + if (enc != XML_CHAR_ENCODING_NONE) + xmlSwitchEncoding(ctxt, enc); + } + if (CMP5(CUR_PTR, '<', '?', 'x', 'm', 'l')) { xmlParseTextDecl(ctxt); if (ctxt->errNo == XML_ERR_UNSUPPORTED_ENCODING) { @@ -5982,6 +6149,8 @@ xmlParseReference(xmlParserCtxtPtr ctxt) { int hex = NXT(2); int value = xmlParseCharRef(ctxt); + if (value == 0) + return; if (ctxt->charset != XML_CHAR_ENCODING_UTF8) { /* * So we are using non-UTF-8 buffers @@ -6825,6 +6994,86 @@ xmlParsePEReference(xmlParserCtxtPtr ctxt) } } +/** + * xmlLoadEntityContent: + * @ctxt: an XML parser context + * @entity: an unloaded system entity + * + * Load the original content of the given system entity from the + * ExternalID/SystemID given. This is to be used for Included in Literal + * http://www.w3.org/TR/REC-xml/#inliteral processing of entities references + * + * Returns 0 in case of success and -1 in case of failure + */ +static int +xmlLoadEntityContent(xmlParserCtxtPtr ctxt, xmlEntityPtr entity) { + xmlParserInputPtr input; + xmlBufferPtr buf; + int l, c; + int count = 0; + + if ((ctxt == NULL) || (entity == NULL) || + ((entity->etype != XML_EXTERNAL_PARAMETER_ENTITY) && + (entity->etype != XML_EXTERNAL_GENERAL_PARSED_ENTITY)) || + (entity->content != NULL)) { + xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR, + "xmlLoadEntityContent parameter error"); + return(-1); + } + + if (xmlParserDebugEntities) + xmlGenericError(xmlGenericErrorContext, + "Reading %s entity content input\n", entity->name); + + buf = xmlBufferCreate(); + if (buf == NULL) { + xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR, + "xmlLoadEntityContent parameter error"); + return(-1); + } + + input = xmlNewEntityInputStream(ctxt, entity); + if (input == NULL) { + xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR, + "xmlLoadEntityContent input error"); + xmlBufferFree(buf); + return(-1); + } + + /* + * Push the entity as the current input, read char by char + * saving to the buffer until the end of the entity or an error + */ + xmlPushInput(ctxt, input); + GROW; + c = CUR_CHAR(l); + while ((ctxt->input == input) && (ctxt->input->cur < ctxt->input->end) && + (IS_CHAR(c))) { + xmlBufferAdd(buf, ctxt->input->cur, l); + if (count++ > 100) { + count = 0; + GROW; + } + NEXTL(l); + c = CUR_CHAR(l); + } + + if ((ctxt->input == input) && (ctxt->input->cur >= ctxt->input->end)) { + xmlPopInput(ctxt); + } else if (!IS_CHAR(c)) { + xmlFatalErrMsgInt(ctxt, XML_ERR_INVALID_CHAR, + "xmlLoadEntityContent: invalid char value %d\n", + c); + xmlBufferFree(buf); + return(-1); + } + entity->content = buf->content; + buf->content = NULL; + xmlBufferFree(buf); + + return(0); +} + /** * xmlParseStringPEReference: * @ctxt: an XML parser context @@ -6836,7 +7085,7 @@ xmlParsePEReference(xmlParserCtxtPtr ctxt) * * [ WFC: No Recursion ] * A parsed entity must not contain a recursive - * reference to itself, either directly or indirectly. + * reference to itself, either directly or indirectly. * * [ WFC: Entity Declared ] * In a document without any DTD, a document with only an internal DTD @@ -7811,9 +8060,10 @@ need_complex: static const xmlChar * xmlParseAttribute2(xmlParserCtxtPtr ctxt, - const xmlChar *pref, const xmlChar *elem, - const xmlChar **prefix, xmlChar **value, - int *len, int *alloc) { + const xmlChar * pref, const xmlChar * elem, + const xmlChar ** prefix, xmlChar ** value, + int *len, int *alloc) +{ const xmlChar *name; xmlChar *val, *internal_val = NULL; int normalize = 0; @@ -7822,9 +8072,9 @@ xmlParseAttribute2(xmlParserCtxtPtr ctxt, GROW; name = xmlParseQName(ctxt, prefix); if (name == NULL) { - xmlFatalErrMsg(ctxt, XML_ERR_NAME_REQUIRED, - "error parsing attribute name\n"); - return(NULL); + xmlFatalErrMsg(ctxt, XML_ERR_NAME_REQUIRED, + "error parsing attribute name\n"); + return (NULL); } /* @@ -7834,8 +8084,9 @@ xmlParseAttribute2(xmlParserCtxtPtr ctxt, int type; type = (int) (long) xmlHashQLookup2(ctxt->attsSpecial, - pref, elem, *prefix, name); - if (type != 0) normalize = 1; + pref, elem, *prefix, name); + if (type != 0) + normalize = 1; } /* @@ -7844,54 +8095,71 @@ xmlParseAttribute2(xmlParserCtxtPtr ctxt, SKIP_BLANKS; if (RAW == '=') { NEXT; - SKIP_BLANKS; - val = xmlParseAttValueInternal(ctxt, len, alloc, normalize); - ctxt->instate = XML_PARSER_CONTENT; + SKIP_BLANKS; + val = xmlParseAttValueInternal(ctxt, len, alloc, normalize); + if (normalize) { + /* + * Sometimes a second normalisation pass for spaces is needed + * but that only happens if charrefs or entities refernces + * have been used in the attribute value, i.e. the attribute + * value have been extracted in an allocated string already. + */ + if (*alloc) { + const xmlChar *val2; + + val2 = xmlAttrNormalizeSpace2(ctxt, val, len); + if (val2 != NULL) { + xmlFree(val); + val = (xmlChar *) val2; + } + } + } + ctxt->instate = XML_PARSER_CONTENT; } else { - xmlFatalErrMsgStr(ctxt, XML_ERR_ATTRIBUTE_WITHOUT_VALUE, - "Specification mandate value for attribute %s\n", name); - return(NULL); + xmlFatalErrMsgStr(ctxt, XML_ERR_ATTRIBUTE_WITHOUT_VALUE, + "Specification mandate value for attribute %s\n", + name); + return (NULL); } - if (*prefix == ctxt->str_xml) { - /* - * Check that xml:lang conforms to the specification - * No more registered as an error, just generate a warning now - * since this was deprecated in XML second edition - */ - if ((ctxt->pedantic) && (xmlStrEqual(name, BAD_CAST "lang"))) { - internal_val = xmlStrndup(val, *len); - if (!xmlCheckLanguageID(internal_val)) { - xmlWarningMsg(ctxt, XML_WAR_LANG_VALUE, - "Malformed value for xml:lang : %s\n", - internal_val, NULL); - } - } + if (*prefix == ctxt->str_xml) { + /* + * Check that xml:lang conforms to the specification + * No more registered as an error, just generate a warning now + * since this was deprecated in XML second edition + */ + if ((ctxt->pedantic) && (xmlStrEqual(name, BAD_CAST "lang"))) { + internal_val = xmlStrndup(val, *len); + if (!xmlCheckLanguageID(internal_val)) { + xmlWarningMsg(ctxt, XML_WAR_LANG_VALUE, + "Malformed value for xml:lang : %s\n", + internal_val, NULL); + } + } - /* - * Check that xml:space conforms to the specification - */ - if (xmlStrEqual(name, BAD_CAST "space")) { - internal_val = xmlStrndup(val, *len); - if (xmlStrEqual(internal_val, BAD_CAST "default")) - *(ctxt->space) = 0; - else if (xmlStrEqual(internal_val, BAD_CAST "preserve")) - *(ctxt->space) = 1; - else { - xmlWarningMsg(ctxt, XML_WAR_SPACE_VALUE, -"Invalid value \"%s\" for xml:space : \"default\" or \"preserve\" expected\n", - internal_val, NULL); - } - } - if (internal_val) { - xmlFree(internal_val); - } - } + /* + * Check that xml:space conforms to the specification + */ + if (xmlStrEqual(name, BAD_CAST "space")) { + internal_val = xmlStrndup(val, *len); + if (xmlStrEqual(internal_val, BAD_CAST "default")) + *(ctxt->space) = 0; + else if (xmlStrEqual(internal_val, BAD_CAST "preserve")) + *(ctxt->space) = 1; + else { + xmlWarningMsg(ctxt, XML_WAR_SPACE_VALUE, + "Invalid value \"%s\" for xml:space : \"default\" or \"preserve\" expected\n", + internal_val, NULL); + } + } + if (internal_val) { + xmlFree(internal_val); + } + } *value = val; - return(name); + return (name); } - /** * xmlParseStartTag2: * @ctxt: an XML parser context @@ -8763,6 +9031,7 @@ xmlParseVersionNum(xmlParserCtxtPtr ctxt) { size *= 2; tmp = (xmlChar *) xmlRealloc(buf, size * sizeof(xmlChar)); if (tmp == NULL) { + xmlFree(buf); xmlErrMemory(ctxt, NULL); return(NULL); } @@ -8779,11 +9048,11 @@ xmlParseVersionNum(xmlParserCtxtPtr ctxt) { /** * xmlParseVersionInfo: * @ctxt: an XML parser context - * + * * parse the XML version. * * [24] VersionInfo ::= S 'version' Eq (' VersionNum ' | " VersionNum ") - * + * * [25] Eq ::= S? '=' S? * * Returns the version string, e.g. "1.0" @@ -10163,7 +10432,20 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { ctxt->input->cur += tmp; goto encoding_error; } - if ((ctxt->sax != NULL) && (base > 0) && + if ((ctxt->sax != NULL) && (base == 0) && + (ctxt->sax->cdataBlock != NULL) && + (!ctxt->disableSAX)) { + /* + * Special case to provide identical behaviour + * between pull and push parsers on enpty CDATA + * sections + */ + if ((ctxt->input->cur - ctxt->input->base >= 9) && + (!strncmp((const char *)&ctxt->input->cur[-9], + "sax->cdataBlock(ctxt->userData, + BAD_CAST "", 0); + } else if ((ctxt->sax != NULL) && (base > 0) && (!ctxt->disableSAX)) { if (ctxt->sax->cdataBlock != NULL) ctxt->sax->cdataBlock(ctxt->userData, @@ -12003,13 +12285,14 @@ xmlParseInNodeContext(xmlNodePtr node, const char *data, int datalen, * * Returns 0 if the chunk is well balanced, -1 in case of args problem and * the parser error code otherwise - * + * * In case recover is set to 1, the nodelist will not be empty even if - * the parsed chunk is not well balanced. + * the parsed chunk is not well balanced, assuming the parsing succeeded to + * some extent. */ int xmlParseBalancedChunkMemoryRecover(xmlDocPtr doc, xmlSAXHandlerPtr sax, - void *user_data, int depth, const xmlChar *string, xmlNodePtr *lst, + void *user_data, int depth, const xmlChar *string, xmlNodePtr *lst, int recover) { xmlParserCtxtPtr ctxt; xmlDocPtr newDoc; @@ -12361,7 +12644,6 @@ xmlSAXParseFileWithData(xmlSAXHandlerPtr sax, const char *filename, int recovery, void *data) { xmlDocPtr ret; xmlParserCtxtPtr ctxt; - char *directory = NULL; xmlInitParser(); @@ -12379,10 +12661,8 @@ xmlSAXParseFileWithData(xmlSAXHandlerPtr sax, const char *filename, ctxt->_private = data; } - if ((ctxt->directory == NULL) && (directory == NULL)) - directory = xmlParserGetDirectory(filename); - if ((ctxt->directory == NULL) && (directory != NULL)) - ctxt->directory = (char *) xmlStrdup((xmlChar *) directory); + if (ctxt->directory == NULL) + ctxt->directory = xmlParserGetDirectory(filename); ctxt->recovery = recovery; @@ -12435,9 +12715,10 @@ xmlSAXParseFile(xmlSAXHandlerPtr sax, const char *filename, * @cur: a pointer to an array of xmlChar * * parse an XML in-memory document and build a tree. - * In the case the document is not Well Formed, a tree is built anyway - * - * Returns the resulting document tree + * In the case the document is not Well Formed, a attempt to build a + * tree is tried anyway + * + * Returns the resulting document tree or NULL in case of failure */ xmlDocPtr @@ -12467,9 +12748,10 @@ xmlParseFile(const char *filename) { * * parse an XML file and build a tree. Automatic support for ZLIB/Compress * compressed document is provided by default if found at compile-time. - * In the case the document is not Well Formed, a tree is built anyway + * In the case the document is not Well Formed, it attempts to build + * a tree anyway * - * Returns the resulting document tree + * Returns the resulting document tree or NULL in case of failure */ xmlDocPtr @@ -12711,9 +12993,10 @@ xmlDocPtr xmlParseMemory(const char *buffer, int size) { * @size: the size of the array * * parse an XML in-memory block and build a tree. - * In the case the document is not Well Formed, a tree is built anyway - * - * Returns the resulting document tree + * In the case the document is not Well Formed, an attempt to + * build a tree is tried anyway + * + * Returns the resulting document tree or NULL in case of error */ xmlDocPtr xmlRecoverMemory(const char *buffer, int size) { @@ -12949,12 +13232,15 @@ xmlInitParser(void) { /** * xmlCleanupParser: * - * Cleanup function for the XML library. It tries to reclaim all - * parsing related global memory allocated for the library processing. - * It doesn't deallocate any document related memory. Calling this - * function should not prevent reusing the library but one should - * call xmlCleanupParser() only when the process has - * finished using the library or XML document built with it. + * This function name is somewhat misleading. It does not clean up + * parser state, it cleans up memory allocated by the library itself. + * It is a cleanup function for the XML library. It tries to reclaim all + * related global memory allocated for the library processing. + * It doesn't deallocate any document related memory. One should + * call xmlCleanupParser() only when the process has finished using + * the library and all XML/HTML documents built with it. + * See also xmlInitParser() which has the opposite function of preparing + * the library for operations. */ void diff --git a/python/Makefile.am b/python/Makefile.am index 667c2c8..23898fa 100644 --- a/python/Makefile.am +++ b/python/Makefile.am @@ -9,21 +9,17 @@ INCLUDES = \ -I$(top_builddir)/include \ -I$(top_builddir)/$(subdir) -DOCS_DIR = $(datadir)/doc/libxml2-python-$(LIBXML_VERSION) +docsdir = $(datadir)/doc/libxml2-python-$(LIBXML_VERSION) # libxml2class.txt is generated -DOCS = ${srcdir}/TODO +dist_docs_DATA = TODO EXTRA_DIST = \ - libxml.c \ - types.c \ setup.py \ setup.py.in \ generator.py \ libxml_wrap.h \ libxml.py \ - drv_libxml2.py \ - libxml2-python-api.xml \ - $(DOCS) + libxml2-python-api.xml libxml2mod_la_LDFLAGS = @CYGWIN_EXTRA_LDFLAGS@ @WIN32_EXTRA_LDFLAGS@ -module -avoid-version @@ -31,29 +27,23 @@ if WITH_PYTHON mylibs = \ $(top_builddir)/libxml2.la -all-local: libxml2.py - python_LTLIBRARIES = libxml2mod.la -libxml2mod_la_SOURCES = libxml.c types.c libxml2-py.c +libxml2mod_la_SOURCES = libxml.c types.c +nodist_libxml2mod_la_SOURCES = libxml2-py.c libxml2mod_la_LIBADD = $(mylibs) @CYGWIN_EXTRA_PYTHON_LIBADD@ +libxml.c: libxml2-py.h # to generate before to compile + + libxml2.py: $(srcdir)/libxml.py libxml2class.py - cat $(srcdir)/libxml.py libxml2class.py > libxml2.py - -install-data-local: - $(mkinstalldirs) $(DESTDIR)$(pythondir) - @INSTALL@ -m 0644 libxml2.py $(DESTDIR)$(pythondir) - @INSTALL@ -m 0644 $(srcdir)/drv_libxml2.py $(DESTDIR)$(pythondir) - $(mkinstalldirs) $(DESTDIR)$(DOCS_DIR) - @(for doc in $(DOCS) ; \ - do @INSTALL@ -m 0644 $$doc $(DESTDIR)$(DOCS_DIR) ; done) - -uninstall-local: - @(for doc in $(DOCS) ; \ - do rm $(DESTDIR)$(DOCS_DIR)/`basename $$doc` ; done) - rm $(DESTDIR)$(pythondir)/drv_libxml2.py - rm $(DESTDIR)$(pythondir)/libxml2.py + cat $(srcdir)/libxml.py libxml2class.py > $@ + +python_DATA = \ + libxml2.py + +dist_python_DATA = \ + drv_libxml2.py GENERATE = generator.py API_DESC = $(top_srcdir)/doc/libxml2-api.xml $(srcdir)/libxml2-python-api.xml @@ -70,12 +60,8 @@ $(GENERATED): gen_prog gen_prog: $(srcdir)/$(GENERATE) $(API_DESC) $(PYTHON) $(srcdir)/$(GENERATE) $(srcdir) touch gen_prog - -$(libxml2mod_la_OBJECTS): $(GENERATED) - -else -all: endif + tests test: all cd tests && $(MAKE) MAKEFLAGS+=--silent tests diff --git a/python/Makefile.in b/python/Makefile.in index fb1acf5..7ffe750 100644 --- a/python/Makefile.in +++ b/python/Makefile.in @@ -14,6 +14,7 @@ @SET_MAKE@ + VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -33,7 +34,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = python -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ +DIST_COMMON = README $(am__dist_python_DATA_DIST) $(dist_docs_DATA) \ + $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/setup.py.in TODO ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ @@ -49,14 +51,16 @@ am__vpath_adj = case $$p in \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(pythondir)" +am__installdirs = "$(DESTDIR)$(pythondir)" "$(DESTDIR)$(docsdir)" \ + "$(DESTDIR)$(pythondir)" "$(DESTDIR)$(pythondir)" pythonLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(python_LTLIBRARIES) @WITH_PYTHON_TRUE@libxml2mod_la_DEPENDENCIES = $(mylibs) -am__libxml2mod_la_SOURCES_DIST = libxml.c types.c libxml2-py.c -@WITH_PYTHON_TRUE@am_libxml2mod_la_OBJECTS = libxml.lo types.lo \ -@WITH_PYTHON_TRUE@ libxml2-py.lo -libxml2mod_la_OBJECTS = $(am_libxml2mod_la_OBJECTS) +am__libxml2mod_la_SOURCES_DIST = libxml.c types.c +@WITH_PYTHON_TRUE@am_libxml2mod_la_OBJECTS = libxml.lo types.lo +@WITH_PYTHON_TRUE@nodist_libxml2mod_la_OBJECTS = libxml2-py.lo +libxml2mod_la_OBJECTS = $(am_libxml2mod_la_OBJECTS) \ + $(nodist_libxml2mod_la_OBJECTS) libxml2mod_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libxml2mod_la_LDFLAGS) $(LDFLAGS) -o $@ @@ -73,7 +77,7 @@ CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ -SOURCES = $(libxml2mod_la_SOURCES) +SOURCES = $(libxml2mod_la_SOURCES) $(nodist_libxml2mod_la_SOURCES) DIST_SOURCES = $(am__libxml2mod_la_SOURCES_DIST) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ @@ -82,6 +86,11 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive +dist_docsDATA_INSTALL = $(INSTALL_DATA) +am__dist_python_DATA_DIST = drv_libxml2.py +dist_pythonDATA_INSTALL = $(INSTALL_DATA) +pythonDATA_INSTALL = $(INSTALL_DATA) +DATA = $(dist_docs_DATA) $(dist_python_DATA) $(python_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags @@ -313,28 +322,31 @@ INCLUDES = \ -I$(top_builddir)/include \ -I$(top_builddir)/$(subdir) -DOCS_DIR = $(datadir)/doc/libxml2-python-$(LIBXML_VERSION) +docsdir = $(datadir)/doc/libxml2-python-$(LIBXML_VERSION) # libxml2class.txt is generated -DOCS = ${srcdir}/TODO +dist_docs_DATA = TODO EXTRA_DIST = \ - libxml.c \ - types.c \ setup.py \ setup.py.in \ generator.py \ libxml_wrap.h \ libxml.py \ - drv_libxml2.py \ - libxml2-python-api.xml \ - $(DOCS) + libxml2-python-api.xml libxml2mod_la_LDFLAGS = @CYGWIN_EXTRA_LDFLAGS@ @WIN32_EXTRA_LDFLAGS@ -module -avoid-version @WITH_PYTHON_TRUE@mylibs = \ @WITH_PYTHON_TRUE@ $(top_builddir)/libxml2.la @WITH_PYTHON_TRUE@python_LTLIBRARIES = libxml2mod.la -@WITH_PYTHON_TRUE@libxml2mod_la_SOURCES = libxml.c types.c libxml2-py.c +@WITH_PYTHON_TRUE@libxml2mod_la_SOURCES = libxml.c types.c +@WITH_PYTHON_TRUE@nodist_libxml2mod_la_SOURCES = libxml2-py.c @WITH_PYTHON_TRUE@libxml2mod_la_LIBADD = $(mylibs) @CYGWIN_EXTRA_PYTHON_LIBADD@ +@WITH_PYTHON_TRUE@python_DATA = \ +@WITH_PYTHON_TRUE@ libxml2.py + +@WITH_PYTHON_TRUE@dist_python_DATA = \ +@WITH_PYTHON_TRUE@ drv_libxml2.py + @WITH_PYTHON_TRUE@GENERATE = generator.py @WITH_PYTHON_TRUE@API_DESC = $(top_srcdir)/doc/libxml2-api.xml $(srcdir)/libxml2-python-api.xml @WITH_PYTHON_TRUE@GENERATED = libxml2class.py \ @@ -445,6 +457,57 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs +install-dist_docsDATA: $(dist_docs_DATA) + @$(NORMAL_INSTALL) + test -z "$(docsdir)" || $(MKDIR_P) "$(DESTDIR)$(docsdir)" + @list='$(dist_docs_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(dist_docsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(docsdir)/$$f'"; \ + $(dist_docsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(docsdir)/$$f"; \ + done + +uninstall-dist_docsDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_docs_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(docsdir)/$$f'"; \ + rm -f "$(DESTDIR)$(docsdir)/$$f"; \ + done +install-dist_pythonDATA: $(dist_python_DATA) + @$(NORMAL_INSTALL) + test -z "$(pythondir)" || $(MKDIR_P) "$(DESTDIR)$(pythondir)" + @list='$(dist_python_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(dist_pythonDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pythondir)/$$f'"; \ + $(dist_pythonDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pythondir)/$$f"; \ + done + +uninstall-dist_pythonDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_python_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(pythondir)/$$f'"; \ + rm -f "$(DESTDIR)$(pythondir)/$$f"; \ + done +install-pythonDATA: $(python_DATA) + @$(NORMAL_INSTALL) + test -z "$(pythondir)" || $(MKDIR_P) "$(DESTDIR)$(pythondir)" + @list='$(python_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(pythonDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pythondir)/$$f'"; \ + $(pythonDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pythondir)/$$f"; \ + done + +uninstall-pythonDATA: + @$(NORMAL_UNINSTALL) + @list='$(python_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(pythondir)/$$f'"; \ + rm -f "$(DESTDIR)$(pythondir)/$$f"; \ + done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. @@ -622,11 +685,10 @@ distdir: $(DISTFILES) done check-am: all-am check: check-recursive -@WITH_PYTHON_FALSE@all-local: -all-am: Makefile $(LTLIBRARIES) all-local +all-am: Makefile $(LTLIBRARIES) $(DATA) installdirs: installdirs-recursive installdirs-am: - for dir in "$(DESTDIR)$(pythondir)"; do \ + for dir in "$(DESTDIR)$(pythondir)" "$(DESTDIR)$(docsdir)" "$(DESTDIR)$(pythondir)" "$(DESTDIR)$(pythondir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive @@ -654,8 +716,6 @@ distclean-generic: maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -@WITH_PYTHON_FALSE@uninstall-local: -@WITH_PYTHON_FALSE@install-data-local: clean: clean-recursive clean-am: clean-generic clean-libtool clean-pythonLTLIBRARIES \ @@ -677,7 +737,8 @@ info: info-recursive info-am: -install-data-am: install-data-local install-pythonLTLIBRARIES +install-data-am: install-dist_docsDATA install-dist_pythonDATA \ + install-pythonDATA install-pythonLTLIBRARIES install-dvi: install-dvi-recursive @@ -713,47 +774,35 @@ ps: ps-recursive ps-am: -uninstall-am: uninstall-local uninstall-pythonLTLIBRARIES +uninstall-am: uninstall-dist_docsDATA uninstall-dist_pythonDATA \ + uninstall-pythonDATA uninstall-pythonLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am all-local check check-am clean clean-generic \ - clean-libtool clean-pythonLTLIBRARIES ctags ctags-recursive \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-data-local install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-pythonLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-recursive uninstall uninstall-am uninstall-local \ - uninstall-pythonLTLIBRARIES - - -@WITH_PYTHON_TRUE@all-local: libxml2.py + all all-am check check-am clean clean-generic clean-libtool \ + clean-pythonLTLIBRARIES ctags ctags-recursive distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am \ + install-dist_docsDATA install-dist_pythonDATA install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-pythonDATA install-pythonLTLIBRARIES install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ + uninstall-dist_docsDATA uninstall-dist_pythonDATA \ + uninstall-pythonDATA uninstall-pythonLTLIBRARIES + + +@WITH_PYTHON_TRUE@libxml.c: libxml2-py.h # to generate before to compile @WITH_PYTHON_TRUE@libxml2.py: $(srcdir)/libxml.py libxml2class.py -@WITH_PYTHON_TRUE@ cat $(srcdir)/libxml.py libxml2class.py > libxml2.py - -@WITH_PYTHON_TRUE@install-data-local: -@WITH_PYTHON_TRUE@ $(mkinstalldirs) $(DESTDIR)$(pythondir) -@WITH_PYTHON_TRUE@ @INSTALL@ -m 0644 libxml2.py $(DESTDIR)$(pythondir) -@WITH_PYTHON_TRUE@ @INSTALL@ -m 0644 $(srcdir)/drv_libxml2.py $(DESTDIR)$(pythondir) -@WITH_PYTHON_TRUE@ $(mkinstalldirs) $(DESTDIR)$(DOCS_DIR) -@WITH_PYTHON_TRUE@ @(for doc in $(DOCS) ; \ -@WITH_PYTHON_TRUE@ do @INSTALL@ -m 0644 $$doc $(DESTDIR)$(DOCS_DIR) ; done) - -@WITH_PYTHON_TRUE@uninstall-local: -@WITH_PYTHON_TRUE@ @(for doc in $(DOCS) ; \ -@WITH_PYTHON_TRUE@ do rm $(DESTDIR)$(DOCS_DIR)/`basename $$doc` ; done) -@WITH_PYTHON_TRUE@ rm $(DESTDIR)$(pythondir)/drv_libxml2.py -@WITH_PYTHON_TRUE@ rm $(DESTDIR)$(pythondir)/libxml2.py +@WITH_PYTHON_TRUE@ cat $(srcdir)/libxml.py libxml2class.py > $@ @WITH_PYTHON_TRUE@$(GENERATED): gen_prog @@ -761,9 +810,6 @@ uninstall-am: uninstall-local uninstall-pythonLTLIBRARIES @WITH_PYTHON_TRUE@ $(PYTHON) $(srcdir)/$(GENERATE) $(srcdir) @WITH_PYTHON_TRUE@ touch gen_prog -@WITH_PYTHON_TRUE@$(libxml2mod_la_OBJECTS): $(GENERATED) - -@WITH_PYTHON_FALSE@all: tests test: all cd tests && $(MAKE) MAKEFLAGS+=--silent tests # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/python/generator.py b/python/generator.py index a38a23c..8cf327b 100755 --- a/python/generator.py +++ b/python/generator.py @@ -849,6 +849,9 @@ def writeDoc(name, args, indent, output): output.write(indent) output.write('"""') while len(val) > 60: + if val[0] == " ": + val = val[1:] + continue str = val[0:60] i = string.rfind(str, " "); if i < 0: diff --git a/python/libxml2-py.c b/python/libxml2-py.c deleted file mode 100644 index adf552f..0000000 --- a/python/libxml2-py.c +++ /dev/null @@ -1,14572 +0,0 @@ -/* Generated */ - -#include -#include -#include -#include -#include "libxml_wrap.h" -#include "libxml2-py.h" - -PyObject * -libxml_xmlGetDocEntity(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlEntityPtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlGetDocEntity", &pyobj_doc, &name)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlGetDocEntity(doc, name); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsBopomofo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsBopomofo", &code)) - return(NULL); - - c_retval = xmlUCSIsBopomofo(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNsLookup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlXPathContextPtr ctxt; - PyObject *pyobj_ctxt; - xmlChar * prefix; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlXPathNsLookup", &pyobj_ctxt, &prefix)) - return(NULL); - ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); - - c_retval = xmlXPathNsLookup(ctxt, prefix); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlStrstr(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlChar * str; - xmlChar * val; - - if (!PyArg_ParseTuple(args, (char *)"zz:xmlStrstr", &str, &val)) - return(NULL); - - c_retval = xmlStrstr(str, val); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlReaderForFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlTextReaderPtr c_retval; - char * filename; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"zzi:xmlReaderForFile", &filename, &encoding, &options)) - return(NULL); - - c_retval = xmlReaderForFile(filename, encoding, options); - py_retval = libxml_xmlTextReaderPtrWrap((xmlTextReaderPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderExpand(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderExpand", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderExpand(reader); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -PyObject * -libxml_xmlFreeParserInputBuffer(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserInputBufferPtr in; - PyObject *pyobj_in; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeParserInputBuffer", &pyobj_in)) - return(NULL); - in = (xmlParserInputBufferPtr) PyinputBuffer_Get(pyobj_in); - - xmlFreeParserInputBuffer(in); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsMathematicalAlphanumericSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMathematicalAlphanumericSymbols", &code)) - return(NULL); - - c_retval = xmlUCSIsMathematicalAlphanumericSymbols(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_DEBUG_ENABLED) -PyObject * -libxml_xmlDebugDumpNodeList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - FILE * output; - PyObject *pyobj_output; - xmlNodePtr node; - PyObject *pyobj_node; - int depth; - - if (!PyArg_ParseTuple(args, (char *)"OOi:xmlDebugDumpNodeList", &pyobj_output, &pyobj_node, &depth)) - return(NULL); - output = (FILE *) PyFile_Get(pyobj_output); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - xmlDebugDumpNodeList(output, node, depth); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_DEBUG_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsHangulJamo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsHangulJamo", &code)) - return(NULL); - - c_retval = xmlUCSIsHangulJamo(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlSchemaWhiteSpaceReplace(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * value; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlSchemaWhiteSpaceReplace", &value)) - return(NULL); - - c_retval = xmlSchemaWhiteSpaceReplace(value); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_FTP_ENABLED) -PyObject * -libxml_xmlNanoFTPCleanup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlNanoFTPCleanup(); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_FTP_ENABLED) */ -#if defined(LIBXML_VALID_ENABLED) -PyObject * -libxml_xmlValidateOneElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr elem; - PyObject *pyobj_elem; - - if (!PyArg_ParseTuple(args, (char *)"OOO:xmlValidateOneElement", &pyobj_ctxt, &pyobj_doc, &pyobj_elem)) - return(NULL); - ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); - - c_retval = xmlValidateOneElement(ctxt, doc, elem); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_VALID_ENABLED) */ -PyObject * -libxml_xmlGetID(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlAttrPtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * ID; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlGetID", &pyobj_doc, &ID)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlGetID(doc, ID); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsMalayalam(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMalayalam", &code)) - return(NULL); - - c_retval = xmlUCSIsMalayalam(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlXPathInit(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlXPathInit(); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlRelaxNGFreeParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlRelaxNGParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlRelaxNGFreeParserCtxt", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlRelaxNGParserCtxtPtr) PyrelaxNgParserCtxt_Get(pyobj_ctxt); - - xmlRelaxNGFreeParserCtxt(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_xmlCheckLanguageID(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * lang; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlCheckLanguageID", &lang)) - return(NULL); - - c_retval = xmlCheckLanguageID(lang); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlSchemaSetValidOptions(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlSchemaValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - int options; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlSchemaSetValidOptions", &pyobj_ctxt, &options)) - return(NULL); - ctxt = (xmlSchemaValidCtxtPtr) PySchemaValidCtxt_Get(pyobj_ctxt); - - c_retval = xmlSchemaSetValidOptions(ctxt, options); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_VALID_ENABLED) -PyObject * -libxml_xmlValidCtxtNormalizeAttributeValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr elem; - PyObject *pyobj_elem; - xmlChar * name; - xmlChar * value; - - if (!PyArg_ParseTuple(args, (char *)"OOOzz:xmlValidCtxtNormalizeAttributeValue", &pyobj_ctxt, &pyobj_doc, &pyobj_elem, &name, &value)) - return(NULL); - ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); - - c_retval = xmlValidCtxtNormalizeAttributeValue(ctxt, doc, elem, name, value); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_VALID_ENABLED) */ -PyObject * -libxml_xmlFreeNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlNsPtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeNs", &pyobj_cur)) - return(NULL); - cur = (xmlNsPtr) PyxmlNode_Get(pyobj_cur); - - xmlFreeNs(cur); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNormalizeFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathNormalizeFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathNormalizeFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlGetNoNsProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlGetNoNsProp", &pyobj_node, &name)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlGetNoNsProp(node, name); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlURIGetPath(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const char * c_retval; - xmlURIPtr URI; - PyObject *pyobj_URI; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetPath", &pyobj_URI)) - return(NULL); - URI = (xmlURIPtr) PyURI_Get(pyobj_URI); - - c_retval = URI->path; - py_retval = libxml_charPtrConstWrap((const char *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlNodeAddContentLen(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlNodePtr cur; - PyObject *pyobj_cur; - xmlChar * content; - int len; - - if (!PyArg_ParseTuple(args, (char *)"Ozi:xmlNodeAddContentLen", &pyobj_cur, &content, &len)) - return(NULL); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - xmlNodeAddContentLen(cur, content, len); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_xmlRegisterDefaultOutputCallbacks(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlRegisterDefaultOutputCallbacks(); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_OUTPUT_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_htmlNodeDumpFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - FILE * out; - PyObject *pyobj_out; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OOO:htmlNodeDumpFile", &pyobj_out, &pyobj_doc, &pyobj_cur)) - return(NULL); - out = (FILE *) PyFile_Get(pyobj_out); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - htmlNodeDumpFile(out, doc, cur); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathModValues(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathModValues", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathModValues(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_XPTR_ENABLED) -PyObject * -libxml_xmlXPtrRangeToFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPtrRangeToFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPtrRangeToFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPTR_ENABLED) */ -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlCatalogIsEmpty(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlCatalogPtr catal; - PyObject *pyobj_catal; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlCatalogIsEmpty", &pyobj_catal)) - return(NULL); - catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal); - - c_retval = xmlCatalogIsEmpty(catal); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderClose(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderClose", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderClose(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlLoadSGMLSuperCatalog(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlCatalogPtr c_retval; - char * filename; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlLoadSGMLSuperCatalog", &filename)) - return(NULL); - - c_retval = xmlLoadSGMLSuperCatalog(filename); - py_retval = libxml_xmlCatalogPtrWrap((xmlCatalogPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -PyObject * -libxml_xmlCopyChar(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int len; - xmlChar * out; - int val; - - if (!PyArg_ParseTuple(args, (char *)"izi:xmlCopyChar", &len, &out, &val)) - return(NULL); - - c_retval = xmlCopyChar(len, out, val); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlSchemaNewMemParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlSchemaParserCtxtPtr c_retval; - char * buffer; - int size; - - if (!PyArg_ParseTuple(args, (char *)"zi:xmlSchemaNewMemParserCtxt", &buffer, &size)) - return(NULL); - - c_retval = xmlSchemaNewMemParserCtxt(buffer, size); - py_retval = libxml_xmlSchemaParserCtxtPtrWrap((xmlSchemaParserCtxtPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_xmlGetDtdQElementDesc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlElementPtr c_retval; - xmlDtdPtr dtd; - PyObject *pyobj_dtd; - xmlChar * name; - xmlChar * prefix; - - if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlGetDtdQElementDesc", &pyobj_dtd, &name, &prefix)) - return(NULL); - dtd = (xmlDtdPtr) PyxmlNode_Get(pyobj_dtd); - - c_retval = xmlGetDtdQElementDesc(dtd, name, prefix); - py_retval = libxml_xmlElementPtrWrap((xmlElementPtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) -PyObject * -libxml_xmlValidatePopElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr elem; - PyObject *pyobj_elem; - xmlChar * qname; - - if (!PyArg_ParseTuple(args, (char *)"OOOz:xmlValidatePopElement", &pyobj_ctxt, &pyobj_doc, &pyobj_elem, &qname)) - return(NULL); - ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); - - c_retval = xmlValidatePopElement(ctxt, doc, elem, qname); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathLocalNameFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathLocalNameFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathLocalNameFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_LEGACY_ENABLED) -PyObject * -libxml_xmlParserHandleReference(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParserHandleReference", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlParserHandleReference(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_LEGACY_ENABLED) */ -#if defined(LIBXML_HTTP_ENABLED) -PyObject * -libxml_xmlNanoHTTPInit(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlNanoHTTPInit(); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_HTTP_ENABLED) */ -PyObject * -libxml_xmlCopyNamespaceList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNsPtr c_retval; - xmlNsPtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlCopyNamespaceList", &pyobj_cur)) - return(NULL); - cur = (xmlNsPtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlCopyNamespaceList(cur); - py_retval = libxml_xmlNsPtrWrap((xmlNsPtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsSpecials(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSpecials", &code)) - return(NULL); - - c_retval = xmlUCSIsSpecials(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlParseCDSect(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseCDSect", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlParseCDSect(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsLatinExtendedA(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsLatinExtendedA", &code)) - return(NULL); - - c_retval = xmlUCSIsLatinExtendedA(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_TREE_ENABLED) -PyObject * -libxml_xmlCopyDtd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDtdPtr c_retval; - xmlDtdPtr dtd; - PyObject *pyobj_dtd; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlCopyDtd", &pyobj_dtd)) - return(NULL); - dtd = (xmlDtdPtr) PyxmlNode_Get(pyobj_dtd); - - c_retval = xmlCopyDtd(dtd); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_TREE_ENABLED) */ -#if defined(LIBXML_TREE_ENABLED) -PyObject * -libxml_xmlNodeListGetRawString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr list; - PyObject *pyobj_list; - int inLine; - - if (!PyArg_ParseTuple(args, (char *)"OOi:xmlNodeListGetRawString", &pyobj_doc, &pyobj_list, &inLine)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - list = (xmlNodePtr) PyxmlNode_Get(pyobj_list); - - c_retval = xmlNodeListGetRawString(doc, list, inLine); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_TREE_ENABLED) */ -PyObject * -libxml_xmlErrorGetLine(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlErrorPtr Error; - PyObject *pyobj_Error; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlErrorGetLine", &pyobj_Error)) - return(NULL); - Error = (xmlErrorPtr) PyError_Get(pyobj_Error); - - c_retval = Error->line; - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlNewDocNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNsPtr ns; - PyObject *pyobj_ns; - xmlChar * name; - xmlChar * content; - - if (!PyArg_ParseTuple(args, (char *)"OOzz:xmlNewDocNode", &pyobj_doc, &pyobj_ns, &name, &content)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); - - c_retval = xmlNewDocNode(doc, ns, name, content); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlParseDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - htmlDocPtr c_retval; - xmlChar * cur; - char * encoding; - - if (!PyArg_ParseTuple(args, (char *)"zz:htmlParseDoc", &cur, &encoding)) - return(NULL); - - c_retval = htmlParseDoc(cur, encoding); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlRelaxNGInitTypes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - PyObject *py_retval; - int c_retval; - - c_retval = xmlRelaxNGInitTypes(); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsMiscellaneousMathematicalSymbolsA(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMiscellaneousMathematicalSymbolsA", &code)) - return(NULL); - - c_retval = xmlUCSIsMiscellaneousMathematicalSymbolsA(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathFreeParserContext(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathFreeParserContext", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathFreeParserContext(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlURIGetAuthority(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const char * c_retval; - xmlURIPtr URI; - PyObject *pyobj_URI; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetAuthority", &pyobj_URI)) - return(NULL); - URI = (xmlURIPtr) PyURI_Get(pyobj_URI); - - c_retval = URI->authority; - py_retval = libxml_charPtrConstWrap((const char *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlCreateURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - PyObject *py_retval; - xmlURIPtr c_retval; - - c_retval = xmlCreateURI(); - py_retval = libxml_xmlURIPtrWrap((xmlURIPtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlStrcat(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * cur; - xmlChar * add; - - if (!PyArg_ParseTuple(args, (char *)"zz:xmlStrcat", &cur, &add)) - return(NULL); - - c_retval = xmlStrcat(cur, add); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlSchemaFreeParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlSchemaParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlSchemaFreeParserCtxt", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlSchemaParserCtxtPtr) PySchemaParserCtxt_Get(pyobj_ctxt); - - xmlSchemaFreeParserCtxt(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderGetParserLineNumber(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderGetParserLineNumber", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderGetParserLineNumber(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -PyObject * -libxml_xmlCheckVersion(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - int version; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlCheckVersion", &version)) - return(NULL); - - xmlCheckVersion(version); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlParseMarkupDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseMarkupDecl", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlParseMarkupDecl(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlURISetQueryRaw(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlURIPtr URI; - PyObject *pyobj_URI; - char * query_raw; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlURISetQueryRaw", &pyobj_URI, &query_raw)) - return(NULL); - URI = (xmlURIPtr) PyURI_Get(pyobj_URI); - - if (URI->query_raw != NULL) xmlFree(URI->query_raw); - URI->query_raw = (char *)xmlStrdup((const xmlChar *)query_raw); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlHasNsProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlAttrPtr c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - xmlChar * name; - xmlChar * nameSpace; - - if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlHasNsProp", &pyobj_node, &name, &nameSpace)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlHasNsProp(node, name, nameSpace); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlAddPrevSibling(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlNodePtr cur; - PyObject *pyobj_cur; - xmlNodePtr elem; - PyObject *pyobj_elem; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlAddPrevSibling", &pyobj_cur, &pyobj_elem)) - return(NULL); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); - - c_retval = xmlAddPrevSibling(cur, elem); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_xmlGetDtdAttrDesc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlAttributePtr c_retval; - xmlDtdPtr dtd; - PyObject *pyobj_dtd; - xmlChar * elem; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlGetDtdAttrDesc", &pyobj_dtd, &elem, &name)) - return(NULL); - dtd = (xmlDtdPtr) PyxmlNode_Get(pyobj_dtd); - - c_retval = xmlGetDtdAttrDesc(dtd, elem, name); - py_retval = libxml_xmlAttributePtrWrap((xmlAttributePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlGetMetaEncoding(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - htmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"O:htmlGetMetaEncoding", &pyobj_doc)) - return(NULL); - doc = (htmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = htmlGetMetaEncoding(doc); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsEnclosedCJKLettersandMonths(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsEnclosedCJKLettersandMonths", &code)) - return(NULL); - - c_retval = xmlUCSIsEnclosedCJKLettersandMonths(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlGetIntSubset(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDtdPtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlGetIntSubset", &pyobj_doc)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlGetIntSubset(doc); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlCleanupInputCallbacks(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlCleanupInputCallbacks(); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_VALID_ENABLED) -PyObject * -libxml_xmlValidateRoot(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlValidateRoot", &pyobj_ctxt, &pyobj_doc)) - return(NULL); - ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlValidateRoot(ctxt, doc); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_VALID_ENABLED) */ -PyObject * -libxml_xmlNormalizeURIPath(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - char * path; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlNormalizeURIPath", &path)) - return(NULL); - - c_retval = xmlNormalizeURIPath(path); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderConstXmlVersion(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderConstXmlVersion", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderConstXmlVersion(reader); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCombiningDiacriticalMarksforSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCombiningDiacriticalMarksforSymbols", &code)) - return(NULL); - - c_retval = xmlUCSIsCombiningDiacriticalMarksforSymbols(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlParserInputBufferRead(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlParserInputBufferPtr in; - PyObject *pyobj_in; - int len; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlParserInputBufferRead", &pyobj_in, &len)) - return(NULL); - in = (xmlParserInputBufferPtr) PyinputBuffer_Get(pyobj_in); - - c_retval = xmlParserInputBufferRead(in, len); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_HTTP_ENABLED) -PyObject * -libxml_xmlIOHTTPMatch(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - char * filename; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlIOHTTPMatch", &filename)) - return(NULL); - - c_retval = xmlIOHTTPMatch(filename); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTTP_ENABLED) */ -PyObject * -libxml_xmlStringLenDecodeEntities(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlChar * str; - int len; - int what; - xmlChar end; - xmlChar end2; - xmlChar end3; - - if (!PyArg_ParseTuple(args, (char *)"Oziiccc:xmlStringLenDecodeEntities", &pyobj_ctxt, &str, &len, &what, &end, &end2, &end3)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlStringLenDecodeEntities(ctxt, str, len, what, end, end2, end3); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatCc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatCc", &code)) - return(NULL); - - c_retval = xmlUCSIsCatCc(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlURISetServer(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlURIPtr URI; - PyObject *pyobj_URI; - char * server; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlURISetServer", &pyobj_URI, &server)) - return(NULL); - URI = (xmlURIPtr) PyURI_Get(pyobj_URI); - - if (URI->server != NULL) xmlFree(URI->server); - URI->server = (char *)xmlStrdup((const xmlChar *)server); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsSpacingModifierLetters(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSpacingModifierLetters", &code)) - return(NULL); - - c_retval = xmlUCSIsSpacingModifierLetters(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) -#endif -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsHighPrivateUseSurrogates(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsHighPrivateUseSurrogates", &code)) - return(NULL); - - c_retval = xmlUCSIsHighPrivateUseSurrogates(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlDefaultSAXHandlerInit(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlDefaultSAXHandlerInit(); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsBraillePatterns(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsBraillePatterns", &code)) - return(NULL); - - c_retval = xmlUCSIsBraillePatterns(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlParseAttValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseAttValue", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlParseAttValue(ctxt); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlStringGetNodeList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * value; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlStringGetNodeList", &pyobj_doc, &value)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlStringGetNodeList(doc, value); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlHandleOmittedElem(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int val; - - if (!PyArg_ParseTuple(args, (char *)"i:htmlHandleOmittedElem", &val)) - return(NULL); - - c_retval = htmlHandleOmittedElem(val); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathTrueFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathTrueFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathTrueFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlCatalogAdd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * type; - xmlChar * orig; - xmlChar * replace; - - if (!PyArg_ParseTuple(args, (char *)"zzz:xmlCatalogAdd", &type, &orig, &replace)) - return(NULL); - - c_retval = xmlCatalogAdd(type, orig, replace); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCombiningDiacriticalMarks(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCombiningDiacriticalMarks", &code)) - return(NULL); - - c_retval = xmlUCSIsCombiningDiacriticalMarks(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathEqualValues(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathEqualValues", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - c_retval = xmlXPathEqualValues(ctxt); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlCtxtUseOptions(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - int options; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlCtxtUseOptions", &pyobj_ctxt, &options)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlCtxtUseOptions(ctxt, options); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsShavian(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsShavian", &code)) - return(NULL); - - c_retval = xmlUCSIsShavian(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsHebrew(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsHebrew", &code)) - return(NULL); - - c_retval = xmlUCSIsHebrew(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathLangFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathLangFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathLangFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlSchemaValidateDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlSchemaValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlDocPtr instance; - PyObject *pyobj_instance; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlSchemaValidateDoc", &pyobj_ctxt, &pyobj_instance)) - return(NULL); - ctxt = (xmlSchemaValidCtxtPtr) PySchemaValidCtxt_Get(pyobj_ctxt); - instance = (xmlDocPtr) PyxmlNode_Get(pyobj_instance); - - c_retval = xmlSchemaValidateDoc(ctxt, instance); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_xmlCopyError(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlErrorPtr from; - PyObject *pyobj_from; - xmlErrorPtr to; - PyObject *pyobj_to; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlCopyError", &pyobj_from, &pyobj_to)) - return(NULL); - from = (xmlErrorPtr) PyError_Get(pyobj_from); - to = (xmlErrorPtr) PyError_Get(pyobj_to); - - c_retval = xmlCopyError(from, to); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlRelaxNGValidateDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlRelaxNGValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlRelaxNGValidateDoc", &pyobj_ctxt, &pyobj_doc)) - return(NULL); - ctxt = (xmlRelaxNGValidCtxtPtr) PyrelaxNgValidCtxt_Get(pyobj_ctxt); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlRelaxNGValidateDoc(ctxt, doc); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_TREE_ENABLED) -PyObject * -libxml_xmlNodeSetSpacePreserve(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlNodePtr cur; - PyObject *pyobj_cur; - int val; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlNodeSetSpacePreserve", &pyobj_cur, &val)) - return(NULL); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - xmlNodeSetSpacePreserve(cur, val); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_TREE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsArmenian(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsArmenian", &code)) - return(NULL); - - c_retval = xmlUCSIsArmenian(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathCastNodeToNumber(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - double c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathCastNodeToNumber", &pyobj_node)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlXPathCastNodeToNumber(node); - py_retval = libxml_doubleWrap((double) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlUTF8Size(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * utf; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlUTF8Size", &utf)) - return(NULL); - - c_retval = xmlUTF8Size(utf); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlNewText(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlChar * content; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlNewText", &content)) - return(NULL); - - c_retval = xmlNewText(content); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlDocCopyNodeList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr node; - PyObject *pyobj_node; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlDocCopyNodeList", &pyobj_doc, &pyobj_node)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlDocCopyNodeList(doc, node); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlNewDocText(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * content; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNewDocText", &pyobj_doc, &content)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlNewDocText(doc, content); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlNewReference(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNewReference", &pyobj_doc, &name)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlNewReference(doc, name); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNewValueTree(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlXPathObjectPtr c_retval; - xmlNodePtr val; - PyObject *pyobj_val; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathNewValueTree", &pyobj_val)) - return(NULL); - val = (xmlNodePtr) PyxmlNode_Get(pyobj_val); - - c_retval = xmlXPathNewValueTree(val); - py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsSupplementalMathematicalOperators(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSupplementalMathematicalOperators", &code)) - return(NULL); - - c_retval = xmlUCSIsSupplementalMathematicalOperators(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_xmlOutputBufferWriteString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlOutputBufferPtr out; - PyObject *pyobj_out; - char * str; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlOutputBufferWriteString", &pyobj_out, &str)) - return(NULL); - out = (xmlOutputBufferPtr) PyoutputBuffer_Get(pyobj_out); - - c_retval = xmlOutputBufferWriteString(out, str); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_OUTPUT_ENABLED) */ -#if defined(LIBXML_VALID_ENABLED) -PyObject * -libxml_xmlValidateDtd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlDtdPtr dtd; - PyObject *pyobj_dtd; - - if (!PyArg_ParseTuple(args, (char *)"OOO:xmlValidateDtd", &pyobj_ctxt, &pyobj_doc, &pyobj_dtd)) - return(NULL); - ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - dtd = (xmlDtdPtr) PyxmlNode_Get(pyobj_dtd); - - c_retval = xmlValidateDtd(ctxt, doc, dtd); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_VALID_ENABLED) */ -PyObject * -libxml_xmlIsBlank(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - unsigned int ch; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlIsBlank", &ch)) - return(NULL); - - c_retval = xmlIsBlank(ch); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPTR_ENABLED) -PyObject * -libxml_xmlXPtrNewLocationSetNodes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlXPathObjectPtr c_retval; - xmlNodePtr start; - PyObject *pyobj_start; - xmlNodePtr end; - PyObject *pyobj_end; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPtrNewLocationSetNodes", &pyobj_start, &pyobj_end)) - return(NULL); - start = (xmlNodePtr) PyxmlNode_Get(pyobj_start); - end = (xmlNodePtr) PyxmlNode_Get(pyobj_end); - - c_retval = xmlXPtrNewLocationSetNodes(start, end); - py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPTR_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCombiningMarksforSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCombiningMarksforSymbols", &code)) - return(NULL); - - c_retval = xmlUCSIsCombiningMarksforSymbols(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_VALID_ENABLED) -PyObject * -libxml_xmlValidateElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr elem; - PyObject *pyobj_elem; - - if (!PyArg_ParseTuple(args, (char *)"OOO:xmlValidateElement", &pyobj_ctxt, &pyobj_doc, &pyobj_elem)) - return(NULL); - ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); - - c_retval = xmlValidateElement(ctxt, doc, elem); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_VALID_ENABLED) */ -PyObject * -libxml_xmlPopInputCallbacks(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - PyObject *py_retval; - int c_retval; - - c_retval = xmlPopInputCallbacks(); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsLao(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsLao", &code)) - return(NULL); - - c_retval = xmlUCSIsLao(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_TREE_ENABLED) -PyObject * -libxml_xmlNewDocFragment(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlNewDocFragment", &pyobj_doc)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlNewDocFragment(doc); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_TREE_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlReadMemory(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - htmlDocPtr c_retval; - char * buffer; - int py_buffsize0; - int size; - char * URL; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"t#izzi:htmlReadMemory", &buffer, &py_buffsize0, &size, &URL, &encoding, &options)) - return(NULL); - - c_retval = htmlReadMemory(buffer, size, URL, encoding, options); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNodeSetFreeNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlNsPtr ns; - PyObject *pyobj_ns; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathNodeSetFreeNs", &pyobj_ns)) - return(NULL); - ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); - - xmlXPathNodeSetFreeNs(ns); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderHasAttributes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderHasAttributes", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderHasAttributes(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsGothic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsGothic", &code)) - return(NULL); - - c_retval = xmlUCSIsGothic(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_xmlNodeDumpOutput(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlOutputBufferPtr buf; - PyObject *pyobj_buf; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr cur; - PyObject *pyobj_cur; - int level; - int format; - char * encoding; - - if (!PyArg_ParseTuple(args, (char *)"OOOiiz:xmlNodeDumpOutput", &pyobj_buf, &pyobj_doc, &pyobj_cur, &level, &format, &encoding)) - return(NULL); - buf = (xmlOutputBufferPtr) PyoutputBuffer_Get(pyobj_buf); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - xmlNodeDumpOutput(buf, doc, cur, level, format, encoding); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_OUTPUT_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathRegisteredFuncsCleanup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathRegisteredFuncsCleanup", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); - - xmlXPathRegisteredFuncsCleanup(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsBlock(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - char * block; - - if (!PyArg_ParseTuple(args, (char *)"iz:xmlUCSIsBlock", &code, &block)) - return(NULL); - - c_retval = xmlUCSIsBlock(code, block); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderMoveToNextAttribute(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderMoveToNextAttribute", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderMoveToNextAttribute(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatNd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatNd", &code)) - return(NULL); - - c_retval = xmlUCSIsCatNd(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlParseSDDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseSDDecl", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlParseSDDecl(ctxt); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlReaderNewWalker(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlReaderNewWalker", &pyobj_reader, &pyobj_doc)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlReaderNewWalker(reader, doc); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatNl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatNl", &code)) - return(NULL); - - c_retval = xmlUCSIsCatNl(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatNo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatNo", &code)) - return(NULL); - - c_retval = xmlUCSIsCatNo(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlSkipBlankChars(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlSkipBlankChars", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlSkipBlankChars(ctxt); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_VALID_ENABLED) -PyObject * -libxml_xmlValidateNmtokenValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * value; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlValidateNmtokenValue", &value)) - return(NULL); - - c_retval = xmlValidateNmtokenValue(value); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_VALID_ENABLED) */ -#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) -PyObject * -libxml_xmlGetNodePath(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlGetNodePath", &pyobj_node)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlGetNodePath(node); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_htmlDocContentDumpOutput(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlOutputBufferPtr buf; - PyObject *pyobj_buf; - xmlDocPtr cur; - PyObject *pyobj_cur; - char * encoding; - - if (!PyArg_ParseTuple(args, (char *)"OOz:htmlDocContentDumpOutput", &pyobj_buf, &pyobj_cur, &encoding)) - return(NULL); - buf = (xmlOutputBufferPtr) PyoutputBuffer_Get(pyobj_buf); - cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); - - htmlDocContentDumpOutput(buf, cur, encoding); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathPopBoolean(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathPopBoolean", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - c_retval = xmlXPathPopBoolean(ctxt); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlIsIdeographic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - unsigned int ch; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlIsIdeographic", &ch)) - return(NULL); - - c_retval = xmlIsIdeographic(ch); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsLatinExtendedAdditional(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsLatinExtendedAdditional", &code)) - return(NULL); - - c_retval = xmlUCSIsLatinExtendedAdditional(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlURISetAuthority(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlURIPtr URI; - PyObject *pyobj_URI; - char * authority; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlURISetAuthority", &pyobj_URI, &authority)) - return(NULL); - URI = (xmlURIPtr) PyURI_Get(pyobj_URI); - - if (URI->authority != NULL) xmlFree(URI->authority); - URI->authority = (char *)xmlStrdup((const xmlChar *)authority); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlRelaxNGValidatePushCData(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlRelaxNGValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlChar * data; - int len; - - if (!PyArg_ParseTuple(args, (char *)"Ozi:xmlRelaxNGValidatePushCData", &pyobj_ctxt, &data, &len)) - return(NULL); - ctxt = (xmlRelaxNGValidCtxtPtr) PyrelaxNgValidCtxt_Get(pyobj_ctxt); - - c_retval = xmlRelaxNGValidatePushCData(ctxt, data, len); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_xmlGetLastError(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - PyObject *py_retval; - xmlErrorPtr c_retval; - - c_retval = xmlGetLastError(); - py_retval = libxml_xmlErrorPtrWrap((xmlErrorPtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlEncodeEntitiesReentrant(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * input; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlEncodeEntitiesReentrant", &pyobj_doc, &input)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlEncodeEntitiesReentrant(doc, input); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlRemoveProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlAttrPtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlRemoveProp", &pyobj_cur)) - return(NULL); - cur = (xmlAttrPtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlRemoveProp(cur); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_xmlACatalogDump(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlCatalogPtr catal; - PyObject *pyobj_catal; - FILE * out; - PyObject *pyobj_out; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlACatalogDump", &pyobj_catal, &pyobj_out)) - return(NULL); - catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal); - out = (FILE *) PyFile_Get(pyobj_out); - - xmlACatalogDump(catal, out); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ -PyObject * -libxml_xmlReadFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDocPtr c_retval; - char * filename; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"zzi:xmlReadFile", &filename, &encoding, &options)) - return(NULL); - - c_retval = xmlReadFile(filename, encoding, options); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsNumberForms(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsNumberForms", &code)) - return(NULL); - - c_retval = xmlUCSIsNumberForms(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlStrncmp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * str1; - xmlChar * str2; - int len; - - if (!PyArg_ParseTuple(args, (char *)"zzi:xmlStrncmp", &str1, &str2, &len)) - return(NULL); - - c_retval = xmlStrncmp(str1, str2, len); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlCatalogGetPublic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlChar * pubID; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlCatalogGetPublic", &pubID)) - return(NULL); - - c_retval = xmlCatalogGetPublic(pubID); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -#if defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_xmlSaveFormatFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - char * filename; - xmlDocPtr cur; - PyObject *pyobj_cur; - int format; - - if (!PyArg_ParseTuple(args, (char *)"zOi:xmlSaveFormatFile", &filename, &pyobj_cur, &format)) - return(NULL); - cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlSaveFormatFile(filename, cur, format); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_OUTPUT_ENABLED) */ -PyObject * -libxml_xmlPathToURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * path; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlPathToURI", &path)) - return(NULL); - - c_retval = xmlPathToURI(path); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlParseXMLDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseXMLDecl", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlParseXMLDecl(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlNewComment(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlChar * content; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlNewComment", &content)) - return(NULL); - - c_retval = xmlNewComment(content); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlRelaxNGNewValidCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlRelaxNGValidCtxtPtr c_retval; - xmlRelaxNGPtr schema; - PyObject *pyobj_schema; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlRelaxNGNewValidCtxt", &pyobj_schema)) - return(NULL); - schema = (xmlRelaxNGPtr) PyrelaxNgSchema_Get(pyobj_schema); - - c_retval = xmlRelaxNGNewValidCtxt(schema); - py_retval = libxml_xmlRelaxNGValidCtxtPtrWrap((xmlRelaxNGValidCtxtPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsKatakana(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsKatakana", &code)) - return(NULL); - - c_retval = xmlUCSIsKatakana(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsHalfwidthandFullwidthForms(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsHalfwidthandFullwidthForms", &code)) - return(NULL); - - c_retval = xmlUCSIsHalfwidthandFullwidthForms(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_VALID_ENABLED) -PyObject * -libxml_xmlValidateNamesValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * value; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlValidateNamesValue", &value)) - return(NULL); - - c_retval = xmlValidateNamesValue(value); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_VALID_ENABLED) */ -PyObject * -libxml_xmlParseURIReference(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlURIPtr uri; - PyObject *pyobj_uri; - char * str; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlParseURIReference", &pyobj_uri, &str)) - return(NULL); - uri = (xmlURIPtr) PyURI_Get(pyobj_uri); - - c_retval = xmlParseURIReference(uri, str); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathOrderDocElems(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - long c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathOrderDocElems", &pyobj_doc)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlXPathOrderDocElems(doc); - py_retval = libxml_longWrap((long) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsGurmukhi(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsGurmukhi", &code)) - return(NULL); - - c_retval = xmlUCSIsGurmukhi(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_namePush(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlChar * value; - - if (!PyArg_ParseTuple(args, (char *)"Oz:namePush", &pyobj_ctxt, &value)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = namePush(ctxt, value); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) -PyObject * -libxml_xmlNodeSetBase(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlNodePtr cur; - PyObject *pyobj_cur; - xmlChar * uri; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNodeSetBase", &pyobj_cur, &uri)) - return(NULL); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - xmlNodeSetBase(cur, uri); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlTextReaderRelaxNGSetSchema(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - xmlRelaxNGPtr schema; - PyObject *pyobj_schema; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlTextReaderRelaxNGSetSchema", &pyobj_reader, &pyobj_schema)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - schema = (xmlRelaxNGPtr) PyrelaxNgSchema_Get(pyobj_schema); - - c_retval = xmlTextReaderRelaxNGSetSchema(reader, schema); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_DEBUG_ENABLED) -PyObject * -libxml_xmlDebugDumpAttr(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - FILE * output; - PyObject *pyobj_output; - xmlAttrPtr attr; - PyObject *pyobj_attr; - int depth; - - if (!PyArg_ParseTuple(args, (char *)"OOi:xmlDebugDumpAttr", &pyobj_output, &pyobj_attr, &depth)) - return(NULL); - output = (FILE *) PyFile_Get(pyobj_output); - attr = (xmlAttrPtr) PyxmlNode_Get(pyobj_attr); - - xmlDebugDumpAttr(output, attr, depth); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_DEBUG_ENABLED) */ -#if defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_xmlCleanupOutputCallbacks(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlCleanupOutputCallbacks(); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_OUTPUT_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathSetContextNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathContextPtr ctxt; - PyObject *pyobj_ctxt; - xmlNodePtr node; - PyObject *pyobj_node; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathSetContextNode", &pyobj_ctxt, &pyobj_node)) - return(NULL); - ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - ctxt->node = node; - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_xmlSaveFileEnc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - char * filename; - xmlDocPtr cur; - PyObject *pyobj_cur; - char * encoding; - - if (!PyArg_ParseTuple(args, (char *)"zOz:xmlSaveFileEnc", &filename, &pyobj_cur, &encoding)) - return(NULL); - cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlSaveFileEnc(filename, cur, encoding); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_OUTPUT_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathGetFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlXPathContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathGetFunction", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); - - c_retval = ctxt->function; - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_DEBUG_ENABLED) -PyObject * -libxml_xmlDebugDumpOneNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - FILE * output; - PyObject *pyobj_output; - xmlNodePtr node; - PyObject *pyobj_node; - int depth; - - if (!PyArg_ParseTuple(args, (char *)"OOi:xmlDebugDumpOneNode", &pyobj_output, &pyobj_node, &depth)) - return(NULL); - output = (FILE *) PyFile_Get(pyobj_output); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - xmlDebugDumpOneNode(output, node, depth); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_DEBUG_ENABLED) */ -PyObject * -libxml_xmlNewNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNsPtr c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - xmlChar * href; - xmlChar * prefix; - - if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlNewNs", &pyobj_node, &href, &prefix)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlNewNs(node, href, prefix); - py_retval = libxml_xmlNsPtrWrap((xmlNsPtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlStrcasestr(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlChar * str; - xmlChar * val; - - if (!PyArg_ParseTuple(args, (char *)"zz:xmlStrcasestr", &str, &val)) - return(NULL); - - c_retval = xmlStrcasestr(str, val); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderReadState(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderReadState", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderReadState(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsHangulSyllables(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsHangulSyllables", &code)) - return(NULL); - - c_retval = xmlUCSIsHangulSyllables(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlValidateQName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * value; - int space; - - if (!PyArg_ParseTuple(args, (char *)"zi:xmlValidateQName", &value, &space)) - return(NULL); - - c_retval = xmlValidateQName(value, space); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathCompareValues(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int inf; - int strict; - - if (!PyArg_ParseTuple(args, (char *)"Oii:xmlXPathCompareValues", &pyobj_ctxt, &inf, &strict)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - c_retval = xmlXPathCompareValues(ctxt, inf, strict); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsSyriac(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSyriac", &code)) - return(NULL); - - c_retval = xmlUCSIsSyriac(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlStrQEqual(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * pref; - xmlChar * name; - xmlChar * str; - - if (!PyArg_ParseTuple(args, (char *)"zzz:xmlStrQEqual", &pref, &name, &str)) - return(NULL); - - c_retval = xmlStrQEqual(pref, name, str); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlBuildURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * URI; - xmlChar * base; - - if (!PyArg_ParseTuple(args, (char *)"zz:xmlBuildURI", &URI, &base)) - return(NULL); - - c_retval = xmlBuildURI(URI, base); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderGetParserColumnNumber(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderGetParserColumnNumber", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderGetParserColumnNumber(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_valuePop(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlXPathObjectPtr c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:valuePop", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - c_retval = valuePop(ctxt); - py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathContainsFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathContainsFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathContainsFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlCtxtUseOptions(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - htmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - int options; - - if (!PyArg_ParseTuple(args, (char *)"Oi:htmlCtxtUseOptions", &pyobj_ctxt, &options)) - return(NULL); - ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = htmlCtxtUseOptions(ctxt, options); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlFreeCatalog(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlCatalogPtr catal; - PyObject *pyobj_catal; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeCatalog", &pyobj_catal)) - return(NULL); - catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal); - - xmlFreeCatalog(catal); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -#if defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) -PyObject * -libxml_xmlValidatePushElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr elem; - PyObject *pyobj_elem; - xmlChar * qname; - - if (!PyArg_ParseTuple(args, (char *)"OOOz:xmlValidatePushElement", &pyobj_ctxt, &pyobj_doc, &pyobj_elem, &qname)) - return(NULL); - ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); - - c_retval = xmlValidatePushElement(ctxt, doc, elem, qname); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) */ -PyObject * -libxml_xmlResetError(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlErrorPtr err; - PyObject *pyobj_err; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlResetError", &pyobj_err)) - return(NULL); - err = (xmlErrorPtr) PyError_Get(pyobj_err); - - xmlResetError(err); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsArrows(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsArrows", &code)) - return(NULL); - - c_retval = xmlUCSIsArrows(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathGetContextSize(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlXPathContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathGetContextSize", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); - - c_retval = ctxt->contextSize; - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsLimbu(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsLimbu", &code)) - return(NULL); - - c_retval = xmlUCSIsLimbu(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlRemoveID(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlAttrPtr attr; - PyObject *pyobj_attr; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlRemoveID", &pyobj_doc, &pyobj_attr)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - attr = (xmlAttrPtr) PyxmlNode_Get(pyobj_attr); - - c_retval = xmlRemoveID(doc, attr); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlNewDocPI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * name; - xmlChar * content; - - if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlNewDocPI", &pyobj_doc, &name, &content)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlNewDocPI(doc, name, content); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathTranslateFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathTranslateFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathTranslateFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlNodeGetSpacePreserve(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlNodeGetSpacePreserve", &pyobj_cur)) - return(NULL); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlNodeGetSpacePreserve(cur); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlResetLastError(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlResetLastError(); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlXPathIsNaN(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - double val; - - if (!PyArg_ParseTuple(args, (char *)"d:xmlXPathIsNaN", &val)) - return(NULL); - - c_retval = xmlXPathIsNaN(val); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_VALID_ENABLED) -PyObject * -libxml_xmlValidateDtdFinal(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlValidateDtdFinal", &pyobj_ctxt, &pyobj_doc)) - return(NULL); - ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlValidateDtdFinal(ctxt, doc); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_VALID_ENABLED) */ -PyObject * -libxml_xmlParseEncName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseEncName", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlParseEncName(ctxt); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNextAttribute(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextAttribute", &pyobj_ctxt, &pyobj_cur)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlXPathNextAttribute(ctxt, cur); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_XPTR_ENABLED) -PyObject * -libxml_xmlXPtrEvalRangePredicate(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPtrEvalRangePredicate", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPtrEvalRangePredicate(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPTR_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlAutoCloseTag(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - htmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * name; - htmlNodePtr elem; - PyObject *pyobj_elem; - - if (!PyArg_ParseTuple(args, (char *)"OzO:htmlAutoCloseTag", &pyobj_doc, &name, &pyobj_elem)) - return(NULL); - doc = (htmlDocPtr) PyxmlNode_Get(pyobj_doc); - elem = (htmlNodePtr) PyxmlNode_Get(pyobj_elem); - - c_retval = htmlAutoCloseTag(doc, name, elem); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -PyObject * -libxml_xmlThrDefLoadExtDtdDefaultValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int v; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefLoadExtDtdDefaultValue", &v)) - return(NULL); - - c_retval = xmlThrDefLoadExtDtdDefaultValue(v); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlThrDefTreeIndentString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const char * c_retval; - char * v; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlThrDefTreeIndentString", &v)) - return(NULL); - - c_retval = xmlThrDefTreeIndentString(v); - py_retval = libxml_charPtrConstWrap((const char *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlGetDocCompressMode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlGetDocCompressMode", &pyobj_doc)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlGetDocCompressMode(doc); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_DEBUG_ENABLED) -PyObject * -libxml_xmlDebugDumpDocumentHead(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - FILE * output; - PyObject *pyobj_output; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlDebugDumpDocumentHead", &pyobj_output, &pyobj_doc)) - return(NULL); - output = (FILE *) PyFile_Get(pyobj_output); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - xmlDebugDumpDocumentHead(output, doc); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_DEBUG_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_htmlNodeDumpOutput(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlOutputBufferPtr buf; - PyObject *pyobj_buf; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr cur; - PyObject *pyobj_cur; - char * encoding; - - if (!PyArg_ParseTuple(args, (char *)"OOOz:htmlNodeDumpOutput", &pyobj_buf, &pyobj_doc, &pyobj_cur, &encoding)) - return(NULL); - buf = (xmlOutputBufferPtr) PyoutputBuffer_Get(pyobj_buf); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - htmlNodeDumpOutput(buf, doc, cur, encoding); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlParseElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - htmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:htmlParseElement", &pyobj_ctxt)) - return(NULL); - ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - htmlParseElement(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsGreek(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsGreek", &code)) - return(NULL); - - c_retval = xmlUCSIsGreek(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_LEGACY_ENABLED) -PyObject * -libxml_xmlDecodeEntities(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - int len; - int what; - xmlChar end; - xmlChar end2; - xmlChar end3; - - if (!PyArg_ParseTuple(args, (char *)"Oiiccc:xmlDecodeEntities", &pyobj_ctxt, &len, &what, &end, &end2, &end3)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlDecodeEntities(ctxt, len, what, end, end2, end3); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_LEGACY_ENABLED) */ -#if defined(LIBXML_LEGACY_ENABLED) -PyObject * -libxml_xmlNamespaceParseNSDef(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlNamespaceParseNSDef", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlNamespaceParseNSDef(ctxt); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_LEGACY_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathCastNumberToString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - double val; - - if (!PyArg_ParseTuple(args, (char *)"d:xmlXPathCastNumberToString", &val)) - return(NULL); - - c_retval = xmlXPathCastNumberToString(val); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlCatalogRemove(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * value; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlCatalogRemove", &value)) - return(NULL); - - c_retval = xmlCatalogRemove(value); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -#if defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_xmlOutputBufferWrite(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlOutputBufferPtr out; - PyObject *pyobj_out; - int len; - char * buf; - - if (!PyArg_ParseTuple(args, (char *)"Oiz:xmlOutputBufferWrite", &pyobj_out, &len, &buf)) - return(NULL); - out = (xmlOutputBufferPtr) PyoutputBuffer_Get(pyobj_out); - - c_retval = xmlOutputBufferWrite(out, len, buf); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_OUTPUT_ENABLED) */ -#if defined(LIBXML_FTP_ENABLED) -PyObject * -libxml_xmlIOFTPMatch(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - char * filename; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlIOFTPMatch", &filename)) - return(NULL); - - c_retval = xmlIOFTPMatch(filename); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_FTP_ENABLED) */ -PyObject * -libxml_xmlParseReference(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseReference", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlParseReference(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_HTTP_ENABLED) -PyObject * -libxml_xmlNanoHTTPScanProxy(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - char * URL; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlNanoHTTPScanProxy", &URL)) - return(NULL); - - xmlNanoHTTPScanProxy(URL); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_HTTP_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlRelaxNGCleanupTypes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlRelaxNGCleanupTypes(); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_xmlStringLenGetNodeList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * value; - int len; - - if (!PyArg_ParseTuple(args, (char *)"Ozi:xmlStringLenGetNodeList", &pyobj_doc, &value, &len)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlStringLenGetNodeList(doc, value, len); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderLocatorBaseURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlTextReaderLocatorPtr locator; - PyObject *pyobj_locator; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderLocatorBaseURI", &pyobj_locator)) - return(NULL); - locator = (xmlTextReaderLocatorPtr) PyxmlTextReaderLocator_Get(pyobj_locator); - - c_retval = xmlTextReaderLocatorBaseURI(locator); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_xmlSetNsProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlAttrPtr c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - xmlNsPtr ns; - PyObject *pyobj_ns; - xmlChar * name; - xmlChar * value; - - if (!PyArg_ParseTuple(args, (char *)"OOzz:xmlSetNsProp", &pyobj_node, &pyobj_ns, &name, &value)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); - - c_retval = xmlSetNsProp(node, ns, name, value); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_SAX1_ENABLED) -PyObject * -libxml_xmlSAXDefaultVersion(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int version; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlSAXDefaultVersion", &version)) - return(NULL); - - c_retval = xmlSAXDefaultVersion(version); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SAX1_ENABLED) */ -#if defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlValidateNotationUse(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * notationName; - - if (!PyArg_ParseTuple(args, (char *)"OOz:xmlValidateNotationUse", &pyobj_ctxt, &pyobj_doc, ¬ationName)) - return(NULL); - ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlValidateNotationUse(ctxt, doc, notationName); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_xmlGetCompressMode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - PyObject *py_retval; - int c_retval; - - c_retval = xmlGetCompressMode(); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlNewDocNoDtD(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - htmlDocPtr c_retval; - xmlChar * URI; - xmlChar * ExternalID; - - if (!PyArg_ParseTuple(args, (char *)"zz:htmlNewDocNoDtD", &URI, &ExternalID)) - return(NULL); - - c_retval = htmlNewDocNoDtD(URI, ExternalID); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -PyObject * -libxml_xmlURIEscape(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * str; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlURIEscape", &str)) - return(NULL); - - c_retval = xmlURIEscape(str); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_htmlDocContentDumpFormatOutput(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlOutputBufferPtr buf; - PyObject *pyobj_buf; - xmlDocPtr cur; - PyObject *pyobj_cur; - char * encoding; - int format; - - if (!PyArg_ParseTuple(args, (char *)"OOzi:htmlDocContentDumpFormatOutput", &pyobj_buf, &pyobj_cur, &encoding, &format)) - return(NULL); - buf = (xmlOutputBufferPtr) PyoutputBuffer_Get(pyobj_buf); - cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); - - htmlDocContentDumpFormatOutput(buf, cur, encoding, format); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ -PyObject * -libxml_xmlURISetQuery(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlURIPtr URI; - PyObject *pyobj_URI; - char * query; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlURISetQuery", &pyobj_URI, &query)) - return(NULL); - URI = (xmlURIPtr) PyURI_Get(pyobj_URI); - - if (URI->query != NULL) xmlFree(URI->query); - URI->query = (char *)xmlStrdup((const xmlChar *)query); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlTextReaderSchemaValidate(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - char * xsd; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlTextReaderSchemaValidate", &pyobj_reader, &xsd)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderSchemaValidate(reader, xsd); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsGreekandCoptic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsGreekandCoptic", &code)) - return(NULL); - - c_retval = xmlUCSIsGreekandCoptic(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlUTF8Strlen(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * utf; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlUTF8Strlen", &utf)) - return(NULL); - - c_retval = xmlUTF8Strlen(utf); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathAddValues(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathAddValues", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathAddValues(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlStrchr(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlChar * str; - xmlChar val; - - if (!PyArg_ParseTuple(args, (char *)"zc:xmlStrchr", &str, &val)) - return(NULL); - - c_retval = xmlStrchr(str, val); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlNewTextLen(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlChar * content; - int len; - - if (!PyArg_ParseTuple(args, (char *)"zi:xmlNewTextLen", &content, &len)) - return(NULL); - - c_retval = xmlNewTextLen(content, len); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlXPathIsInf(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - double val; - - if (!PyArg_ParseTuple(args, (char *)"d:xmlXPathIsInf", &val)) - return(NULL); - - c_retval = xmlXPathIsInf(val); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCJKUnifiedIdeographs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCJKUnifiedIdeographs", &code)) - return(NULL); - - c_retval = xmlUCSIsCJKUnifiedIdeographs(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlValidateName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * value; - int space; - - if (!PyArg_ParseTuple(args, (char *)"zi:xmlValidateName", &value, &space)) - return(NULL); - - c_retval = xmlValidateName(value, space); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderConstString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - xmlChar * str; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlTextReaderConstString", &pyobj_reader, &str)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderConstString(reader, str); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlSchemaValidateFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlSchemaValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - char * filename; - int options; - - if (!PyArg_ParseTuple(args, (char *)"Ozi:xmlSchemaValidateFile", &pyobj_ctxt, &filename, &options)) - return(NULL); - ctxt = (xmlSchemaValidCtxtPtr) PySchemaValidCtxt_Get(pyobj_ctxt); - - c_retval = xmlSchemaValidateFile(ctxt, filename, options); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_xmlAddNextSibling(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlNodePtr cur; - PyObject *pyobj_cur; - xmlNodePtr elem; - PyObject *pyobj_elem; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlAddNextSibling", &pyobj_cur, &pyobj_elem)) - return(NULL); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); - - c_retval = xmlAddNextSibling(cur, elem); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsSupplementalArrowsA(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSupplementalArrowsA", &code)) - return(NULL); - - c_retval = xmlUCSIsSupplementalArrowsA(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsSupplementalArrowsB(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSupplementalArrowsB", &code)) - return(NULL); - - c_retval = xmlUCSIsSupplementalArrowsB(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlErrorGetMessage(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const char * c_retval; - xmlErrorPtr Error; - PyObject *pyobj_Error; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlErrorGetMessage", &pyobj_Error)) - return(NULL); - Error = (xmlErrorPtr) PyError_Get(pyobj_Error); - - c_retval = Error->message; - py_retval = libxml_charPtrConstWrap((const char *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_HTML_ENABLED) -#endif -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathFalseFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathFalseFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathFalseFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderHasValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderHasValue", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderHasValue(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_xmlRelaxNGDumpTree(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - FILE * output; - PyObject *pyobj_output; - xmlRelaxNGPtr schema; - PyObject *pyobj_schema; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlRelaxNGDumpTree", &pyobj_output, &pyobj_schema)) - return(NULL); - output = (FILE *) PyFile_Get(pyobj_output); - schema = (xmlRelaxNGPtr) PyrelaxNgSchema_Get(pyobj_schema); - - xmlRelaxNGDumpTree(output, schema); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ -#if defined(LIBXML_REGEXP_ENABLED) -PyObject * -libxml_xmlRegexpPrint(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - FILE * output; - PyObject *pyobj_output; - xmlRegexpPtr regexp; - PyObject *pyobj_regexp; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlRegexpPrint", &pyobj_output, &pyobj_regexp)) - return(NULL); - output = (FILE *) PyFile_Get(pyobj_output); - regexp = (xmlRegexpPtr) PyxmlReg_Get(pyobj_regexp); - - xmlRegexpPrint(output, regexp); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_REGEXP_ENABLED) */ -#if defined(LIBXML_VALID_ENABLED) -PyObject * -libxml_xmlNewValidCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - PyObject *py_retval; - xmlValidCtxtPtr c_retval; - - c_retval = xmlNewValidCtxt(); - py_retval = libxml_xmlValidCtxtPtrWrap((xmlValidCtxtPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_VALID_ENABLED) */ -PyObject * -libxml_xmlURIEscapeStr(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * str; - xmlChar * list; - - if (!PyArg_ParseTuple(args, (char *)"zz:xmlURIEscapeStr", &str, &list)) - return(NULL); - - c_retval = xmlURIEscapeStr(str, list); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathCountFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathCountFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathCountFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderNext(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderNext", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderNext(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -PyObject * -libxml_xmlParserSetPedantic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - int pedantic; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlParserSetPedantic", &pyobj_ctxt, &pedantic)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - ctxt->pedantic = pedantic; - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatLu(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatLu", &code)) - return(NULL); - - c_retval = xmlUCSIsCatLu(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatLt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatLt", &code)) - return(NULL); - - c_retval = xmlUCSIsCatLt(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatLo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatLo", &code)) - return(NULL); - - c_retval = xmlUCSIsCatLo(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlIsPubidChar(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - unsigned int ch; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlIsPubidChar", &ch)) - return(NULL); - - c_retval = xmlIsPubidChar(ch); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatLm(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatLm", &code)) - return(NULL); - - c_retval = xmlUCSIsCatLm(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatLl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatLl", &code)) - return(NULL); - - c_retval = xmlUCSIsCatLl(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlNewDocProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlAttrPtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * name; - xmlChar * value; - - if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlNewDocProp", &pyobj_doc, &name, &value)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlNewDocProp(doc, name, value); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlLoadACatalog(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlCatalogPtr c_retval; - char * filename; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlLoadACatalog", &filename)) - return(NULL); - - c_retval = xmlLoadACatalog(filename); - py_retval = libxml_xmlCatalogPtrWrap((xmlCatalogPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -#if defined(LIBXML_REGEXP_ENABLED) -PyObject * -libxml_xmlRegexpExec(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlRegexpPtr comp; - PyObject *pyobj_comp; - xmlChar * content; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlRegexpExec", &pyobj_comp, &content)) - return(NULL); - comp = (xmlRegexpPtr) PyxmlReg_Get(pyobj_comp); - - c_retval = xmlRegexpExec(comp, content); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_REGEXP_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatPe(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatPe", &code)) - return(NULL); - - c_retval = xmlUCSIsCatPe(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlByteConsumed(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - long c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlByteConsumed", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlByteConsumed(ctxt); - py_retval = libxml_longWrap((long) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlHasProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlAttrPtr c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlHasProp", &pyobj_node, &name)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlHasProp(node, name); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNamespaceURIFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathNamespaceURIFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathNamespaceURIFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlURISetScheme(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlURIPtr URI; - PyObject *pyobj_URI; - char * scheme; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlURISetScheme", &pyobj_URI, &scheme)) - return(NULL); - URI = (xmlURIPtr) PyURI_Get(pyobj_URI); - - if (URI->scheme != NULL) xmlFree(URI->scheme); - URI->scheme = (char *)xmlStrdup((const xmlChar *)scheme); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsMiscellaneousSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMiscellaneousSymbols", &code)) - return(NULL); - - c_retval = xmlUCSIsMiscellaneousSymbols(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlGetDtdQAttrDesc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlAttributePtr c_retval; - xmlDtdPtr dtd; - PyObject *pyobj_dtd; - xmlChar * elem; - xmlChar * name; - xmlChar * prefix; - - if (!PyArg_ParseTuple(args, (char *)"Ozzz:xmlGetDtdQAttrDesc", &pyobj_dtd, &elem, &name, &prefix)) - return(NULL); - dtd = (xmlDtdPtr) PyxmlNode_Get(pyobj_dtd); - - c_retval = xmlGetDtdQAttrDesc(dtd, elem, name, prefix); - py_retval = libxml_xmlAttributePtrWrap((xmlAttributePtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlSetNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlNodePtr node; - PyObject *pyobj_node; - xmlNsPtr ns; - PyObject *pyobj_ns; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlSetNs", &pyobj_node, &pyobj_ns)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); - - xmlSetNs(node, ns); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlGetDtdEntity(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlEntityPtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlGetDtdEntity", &pyobj_doc, &name)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlGetDtdEntity(doc, name); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlIsXHTML(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * systemID; - xmlChar * publicID; - - if (!PyArg_ParseTuple(args, (char *)"zz:xmlIsXHTML", &systemID, &publicID)) - return(NULL); - - c_retval = xmlIsXHTML(systemID, publicID); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlURIUnescapeString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - char * c_retval; - char * str; - int len; - char * target; - - if (!PyArg_ParseTuple(args, (char *)"ziz:xmlURIUnescapeString", &str, &len, &target)) - return(NULL); - - c_retval = xmlURIUnescapeString(str, len, target); - py_retval = libxml_charPtrWrap((char *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsRunic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsRunic", &code)) - return(NULL); - - c_retval = xmlUCSIsRunic(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlGetParameterEntity(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlEntityPtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlGetParameterEntity", &pyobj_doc, &name)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlGetParameterEntity(doc, name); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlNewDocTextLen(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * content; - int len; - - if (!PyArg_ParseTuple(args, (char *)"Ozi:xmlNewDocTextLen", &pyobj_doc, &content, &len)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlNewDocTextLen(doc, content, len); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathParseName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathParseName", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - c_retval = xmlXPathParseName(ctxt); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlURISetPath(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlURIPtr URI; - PyObject *pyobj_URI; - char * path; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlURISetPath", &pyobj_URI, &path)) - return(NULL); - URI = (xmlURIPtr) PyURI_Get(pyobj_URI); - - if (URI->path != NULL) xmlFree(URI->path); - URI->path = (char *)xmlStrdup((const xmlChar *)path); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlErrorGetFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const char * c_retval; - xmlErrorPtr Error; - PyObject *pyobj_Error; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlErrorGetFile", &pyobj_Error)) - return(NULL); - Error = (xmlErrorPtr) PyError_Get(pyobj_Error); - - c_retval = Error->file; - py_retval = libxml_charPtrConstWrap((const char *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlGetProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlGetProp", &pyobj_node, &name)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlGetProp(node, name); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsLatinExtendedB(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsLatinExtendedB", &code)) - return(NULL); - - c_retval = xmlUCSIsLatinExtendedB(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlACatalogResolveURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlCatalogPtr catal; - PyObject *pyobj_catal; - xmlChar * URI; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlACatalogResolveURI", &pyobj_catal, &URI)) - return(NULL); - catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal); - - c_retval = xmlACatalogResolveURI(catal, URI); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsVariationSelectors(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsVariationSelectors", &code)) - return(NULL); - - c_retval = xmlUCSIsVariationSelectors(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlLoadCatalog(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - char * filename; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlLoadCatalog", &filename)) - return(NULL); - - c_retval = xmlLoadCatalog(filename); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathEval(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlXPathObjectPtr c_retval; - xmlChar * str; - xmlXPathContextPtr ctx; - PyObject *pyobj_ctx; - - if (!PyArg_ParseTuple(args, (char *)"zO:xmlXPathEval", &str, &pyobj_ctx)) - return(NULL); - ctx = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctx); - - c_retval = xmlXPathEval(str, ctx); - py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsTags(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsTags", &code)) - return(NULL); - - c_retval = xmlUCSIsTags(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlNewPI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlChar * name; - xmlChar * content; - - if (!PyArg_ParseTuple(args, (char *)"zz:xmlNewPI", &name, &content)) - return(NULL); - - c_retval = xmlNewPI(name, content); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsLowSurrogates(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsLowSurrogates", &code)) - return(NULL); - - c_retval = xmlUCSIsLowSurrogates(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsOsmanya(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsOsmanya", &code)) - return(NULL); - - c_retval = xmlUCSIsOsmanya(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlThrDefDoValidityCheckingDefaultValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int v; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefDoValidityCheckingDefaultValue", &v)) - return(NULL); - - c_retval = xmlThrDefDoValidityCheckingDefaultValue(v); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsBoxDrawing(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsBoxDrawing", &code)) - return(NULL); - - c_retval = xmlUCSIsBoxDrawing(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlStrndup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * cur; - int len; - - if (!PyArg_ParseTuple(args, (char *)"zi:xmlStrndup", &cur, &len)) - return(NULL); - - c_retval = xmlStrndup(cur, len); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderIsValid(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderIsValid", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderIsValid(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsByzantineMusicalSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsByzantineMusicalSymbols", &code)) - return(NULL); - - c_retval = xmlUCSIsByzantineMusicalSymbols(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlDefaultSAXHandlerInit(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - htmlDefaultSAXHandlerInit(); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlShellPrintXPathError(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - int errorType; - char * arg; - - if (!PyArg_ParseTuple(args, (char *)"iz:xmlShellPrintXPathError", &errorType, &arg)) - return(NULL); - - xmlShellPrintXPathError(errorType, arg); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlCatalogResolve(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * pubID; - xmlChar * sysID; - - if (!PyArg_ParseTuple(args, (char *)"zz:xmlCatalogResolve", &pubID, &sysID)) - return(NULL); - - c_retval = xmlCatalogResolve(pubID, sysID); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderConstName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderConstName", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderConstName(reader); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlSchemaNewValidCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlSchemaValidCtxtPtr c_retval; - xmlSchemaPtr schema; - PyObject *pyobj_schema; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlSchemaNewValidCtxt", &pyobj_schema)) - return(NULL); - schema = (xmlSchemaPtr) PySchema_Get(pyobj_schema); - - c_retval = xmlSchemaNewValidCtxt(schema); - py_retval = libxml_xmlSchemaValidCtxtPtrWrap((xmlSchemaValidCtxtPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsKhmer(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsKhmer", &code)) - return(NULL); - - c_retval = xmlUCSIsKhmer(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlParseCharRef(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseCharRef", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlParseCharRef(ctxt); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlCopyCharMultiByte(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * out; - int val; - - if (!PyArg_ParseTuple(args, (char *)"zi:xmlCopyCharMultiByte", &out, &val)) - return(NULL); - - c_retval = xmlCopyCharMultiByte(out, val); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlParseVersionNum(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseVersionNum", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlParseVersionNum(ctxt); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlReaderWalker(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlTextReaderPtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlReaderWalker", &pyobj_doc)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlReaderWalker(doc); - py_retval = libxml_xmlTextReaderPtrWrap((xmlTextReaderPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderNodeType(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderNodeType", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderNodeType(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -PyObject * -libxml_xmlIsBlankNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlIsBlankNode", &pyobj_node)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlIsBlankNode(node); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlRelaxNGFree(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlRelaxNGPtr schema; - PyObject *pyobj_schema; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlRelaxNGFree", &pyobj_schema)) - return(NULL); - schema = (xmlRelaxNGPtr) PyrelaxNgSchema_Get(pyobj_schema); - - xmlRelaxNGFree(schema); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_xmlFreeProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlAttrPtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeProp", &pyobj_cur)) - return(NULL); - cur = (xmlAttrPtr) PyxmlNode_Get(pyobj_cur); - - xmlFreeProp(cur); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlStrcmp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * str1; - xmlChar * str2; - - if (!PyArg_ParseTuple(args, (char *)"zz:xmlStrcmp", &str1, &str2)) - return(NULL); - - c_retval = xmlStrcmp(str1, str2); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) -PyObject * -libxml_xmlDocSetRootElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr root; - PyObject *pyobj_root; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlDocSetRootElement", &pyobj_doc, &pyobj_root)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - root = (xmlNodePtr) PyxmlNode_Get(pyobj_root); - - c_retval = xmlDocSetRootElement(doc, root); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsKhmerSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsKhmerSymbols", &code)) - return(NULL); - - c_retval = xmlUCSIsKhmerSymbols(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_REGEXP_ENABLED) -PyObject * -libxml_xmlRegFreeRegexp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlRegexpPtr regexp; - PyObject *pyobj_regexp; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlRegFreeRegexp", &pyobj_regexp)) - return(NULL); - regexp = (xmlRegexpPtr) PyxmlReg_Get(pyobj_regexp); - - xmlRegFreeRegexp(regexp); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_REGEXP_ENABLED) */ -PyObject * -libxml_xmlSearchNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNsPtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr node; - PyObject *pyobj_node; - xmlChar * nameSpace; - - if (!PyArg_ParseTuple(args, (char *)"OOz:xmlSearchNs", &pyobj_doc, &pyobj_node, &nameSpace)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlSearchNs(doc, node, nameSpace); - py_retval = libxml_xmlNsPtrWrap((xmlNsPtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathParserGetContext(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlXPathContextPtr c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathParserGetContext", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - c_retval = ctxt->context; - py_retval = libxml_xmlXPathContextPtrWrap((xmlXPathContextPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderReadAttributeValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderReadAttributeValue", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderReadAttributeValue(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_XINCLUDE_ENABLED) -PyObject * -libxml_xmlXIncludeProcessTreeFlags(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlNodePtr tree; - PyObject *pyobj_tree; - int flags; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXIncludeProcessTreeFlags", &pyobj_tree, &flags)) - return(NULL); - tree = (xmlNodePtr) PyxmlNode_Get(pyobj_tree); - - c_retval = xmlXIncludeProcessTreeFlags(tree, flags); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XINCLUDE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsGeorgian(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsGeorgian", &code)) - return(NULL); - - c_retval = xmlUCSIsGeorgian(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlParserSetValidate(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - int validate; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlParserSetValidate", &pyobj_ctxt, &validate)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - ctxt->validate = validate; - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_VALID_ENABLED) -PyObject * -libxml_xmlValidNormalizeAttributeValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr elem; - PyObject *pyobj_elem; - xmlChar * name; - xmlChar * value; - - if (!PyArg_ParseTuple(args, (char *)"OOzz:xmlValidNormalizeAttributeValue", &pyobj_doc, &pyobj_elem, &name, &value)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); - - c_retval = xmlValidNormalizeAttributeValue(doc, elem, name, value); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_VALID_ENABLED) */ -PyObject * -libxml_xmlParsePubidLiteral(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParsePubidLiteral", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlParsePubidLiteral(ctxt); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlNewCharRef(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNewCharRef", &pyobj_doc, &name)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlNewCharRef(doc, name); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsArabic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsArabic", &code)) - return(NULL); - - c_retval = xmlUCSIsArabic(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsMiscellaneousMathematicalSymbolsB(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMiscellaneousMathematicalSymbolsB", &code)) - return(NULL); - - c_retval = xmlUCSIsMiscellaneousMathematicalSymbolsB(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_HTTP_ENABLED) -PyObject * -libxml_xmlNanoHTTPCleanup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlNanoHTTPCleanup(); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_HTTP_ENABLED) */ -#if defined(LIBXML_LEGACY_ENABLED) -PyObject * -libxml_xmlParseQuotedString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseQuotedString", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlParseQuotedString(ctxt); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_LEGACY_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathCastStringToNumber(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - double c_retval; - xmlChar * val; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlXPathCastStringToNumber", &val)) - return(NULL); - - c_retval = xmlXPathCastStringToNumber(val); - py_retval = libxml_doubleWrap((double) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNewCString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlXPathObjectPtr c_retval; - char * val; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlXPathNewCString", &val)) - return(NULL); - - c_retval = xmlXPathNewCString(val); - py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderIsNamespaceDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderIsNamespaceDecl", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderIsNamespaceDecl(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -PyObject * -libxml_xmlStopParser(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlStopParser", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlStopParser(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlReadFd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDocPtr c_retval; - int fd; - char * URL; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"izzi:xmlReadFd", &fd, &URL, &encoding, &options)) - return(NULL); - - c_retval = xmlReadFd(fd, URL, encoding, options); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlACatalogResolveSystem(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlCatalogPtr catal; - PyObject *pyobj_catal; - xmlChar * sysID; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlACatalogResolveSystem", &pyobj_catal, &sysID)) - return(NULL); - catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal); - - c_retval = xmlACatalogResolveSystem(catal, sysID); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -PyObject * -libxml_xmlCreateDocParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlParserCtxtPtr c_retval; - xmlChar * cur; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlCreateDocParserCtxt", &cur)) - return(NULL); - - c_retval = xmlCreateDocParserCtxt(cur); - py_retval = libxml_xmlParserCtxtPtrWrap((xmlParserCtxtPtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsTaiXuanJingSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsTaiXuanJingSymbols", &code)) - return(NULL); - - c_retval = xmlUCSIsTaiXuanJingSymbols(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_htmlDocDump(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - FILE * f; - PyObject *pyobj_f; - xmlDocPtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OO:htmlDocDump", &pyobj_f, &pyobj_cur)) - return(NULL); - f = (FILE *) PyFile_Get(pyobj_f); - cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); - - c_retval = htmlDocDump(f, cur); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ -PyObject * -libxml_xmlCheckFilename(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - char * path; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlCheckFilename", &path)) - return(NULL); - - c_retval = xmlCheckFilename(path); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlTextReaderRelaxNGValidate(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - char * rng; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlTextReaderRelaxNGValidate", &pyobj_reader, &rng)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderRelaxNGValidate(reader, rng); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_xmlFreeNodeList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeNodeList", &pyobj_cur)) - return(NULL); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - xmlFreeNodeList(cur); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathDivValues(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathDivValues", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathDivValues(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathPositionFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathPositionFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathPositionFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsTelugu(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsTelugu", &code)) - return(NULL); - - c_retval = xmlUCSIsTelugu(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_DEBUG_ENABLED) -PyObject * -libxml_xmlLsCountNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlLsCountNode", &pyobj_node)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlLsCountNode(node); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_DEBUG_ENABLED) */ -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlParseCatalogFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDocPtr c_retval; - char * filename; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlParseCatalogFile", &filename)) - return(NULL); - - c_retval = xmlParseCatalogFile(filename); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathGetFunctionURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlXPathContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathGetFunctionURI", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); - - c_retval = ctxt->functionURI; - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatMn(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatMn", &code)) - return(NULL); - - c_retval = xmlUCSIsCatMn(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatMc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatMc", &code)) - return(NULL); - - c_retval = xmlUCSIsCatMc(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatMe(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatMe", &code)) - return(NULL); - - c_retval = xmlUCSIsCatMe(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlGetEncodingAlias(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const char * c_retval; - char * alias; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlGetEncodingAlias", &alias)) - return(NULL); - - c_retval = xmlGetEncodingAlias(alias); - py_retval = libxml_charPtrConstWrap((const char *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlACatalogAdd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlCatalogPtr catal; - PyObject *pyobj_catal; - xmlChar * type; - xmlChar * orig; - xmlChar * replace; - - if (!PyArg_ParseTuple(args, (char *)"Ozzz:xmlACatalogAdd", &pyobj_catal, &type, &orig, &replace)) - return(NULL); - catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal); - - c_retval = xmlACatalogAdd(catal, type, orig, replace); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -PyObject * -libxml_xmlNewNsPropEatName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlAttrPtr c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - xmlNsPtr ns; - PyObject *pyobj_ns; - xmlChar * name; - xmlChar * value; - - if (!PyArg_ParseTuple(args, (char *)"OOzz:xmlNewNsPropEatName", &pyobj_node, &pyobj_ns, &name, &value)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); - - c_retval = xmlNewNsPropEatName(node, ns, name, value); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlStrdup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * cur; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlStrdup", &cur)) - return(NULL); - - c_retval = xmlStrdup(cur); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlCtxtReadDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDocPtr c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlChar * cur; - char * URL; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"Ozzzi:xmlCtxtReadDoc", &pyobj_ctxt, &cur, &URL, &encoding, &options)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlCtxtReadDoc(ctxt, cur, URL, encoding, options); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlSubstituteEntitiesDefault(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int val; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlSubstituteEntitiesDefault", &val)) - return(NULL); - - c_retval = xmlSubstituteEntitiesDefault(val); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderQuoteChar(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderQuoteChar", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderQuoteChar(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -PyObject * -libxml_xmlInitCharEncodingHandlers(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlInitCharEncodingHandlers(); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_REGEXP_ENABLED) -PyObject * -libxml_xmlRegexpCompile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlRegexpPtr c_retval; - xmlChar * regexp; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlRegexpCompile", ®exp)) - return(NULL); - - c_retval = xmlRegexpCompile(regexp); - py_retval = libxml_xmlRegexpPtrWrap((xmlRegexpPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_REGEXP_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathRegisteredNsCleanup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathRegisteredNsCleanup", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); - - xmlXPathRegisteredNsCleanup(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsKannada(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsKannada", &code)) - return(NULL); - - c_retval = xmlUCSIsKannada(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderConstValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderConstValue", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderConstValue(reader); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_DOCB_ENABLED) -PyObject * -libxml_docbDefaultSAXHandlerInit(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - docbDefaultSAXHandlerInit(); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_DOCB_ENABLED) */ -#if defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) -PyObject * -libxml_xmlValidatePushCData(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlChar * data; - int len; - - if (!PyArg_ParseTuple(args, (char *)"Ozi:xmlValidatePushCData", &pyobj_ctxt, &data, &len)) - return(NULL); - ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); - - c_retval = xmlValidatePushCData(ctxt, data, len); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) */ -PyObject * -libxml_xmlErrorGetDomain(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlErrorPtr Error; - PyObject *pyobj_Error; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlErrorGetDomain", &pyobj_Error)) - return(NULL); - Error = (xmlErrorPtr) PyError_Get(pyobj_Error); - - c_retval = Error->domain; - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathFloorFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathFloorFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathFloorFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsTibetan(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsTibetan", &code)) - return(NULL); - - c_retval = xmlUCSIsTibetan(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlUTF8Strndup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * utf; - int len; - - if (!PyArg_ParseTuple(args, (char *)"zi:xmlUTF8Strndup", &utf, &len)) - return(NULL); - - c_retval = xmlUTF8Strndup(utf, len); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_LEGACY_ENABLED) -PyObject * -libxml_xmlNewGlobalNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNsPtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * href; - xmlChar * prefix; - - if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlNewGlobalNs", &pyobj_doc, &href, &prefix)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlNewGlobalNs(doc, href, prefix); - py_retval = libxml_xmlNsPtrWrap((xmlNsPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_LEGACY_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathStringLengthFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathStringLengthFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathStringLengthFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_xmlDocDump(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - FILE * f; - PyObject *pyobj_f; - xmlDocPtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlDocDump", &pyobj_f, &pyobj_cur)) - return(NULL); - f = (FILE *) PyFile_Get(pyobj_f); - cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlDocDump(f, cur); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_OUTPUT_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNextSelf(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextSelf", &pyobj_ctxt, &pyobj_cur)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlXPathNextSelf(ctxt, cur); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCyrillicSupplement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCyrillicSupplement", &code)) - return(NULL); - - c_retval = xmlUCSIsCyrillicSupplement(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlParseURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlURIPtr c_retval; - char * str; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlParseURI", &str)) - return(NULL); - - c_retval = xmlParseURI(str); - py_retval = libxml_xmlURIPtrWrap((xmlURIPtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlCopyProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlAttrPtr c_retval; - xmlNodePtr target; - PyObject *pyobj_target; - xmlAttrPtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlCopyProp", &pyobj_target, &pyobj_cur)) - return(NULL); - target = (xmlNodePtr) PyxmlNode_Get(pyobj_target); - cur = (xmlAttrPtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlCopyProp(target, cur); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlURIGetPort(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlURIPtr URI; - PyObject *pyobj_URI; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetPort", &pyobj_URI)) - return(NULL); - URI = (xmlURIPtr) PyURI_Get(pyobj_URI); - - c_retval = URI->port; - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_htmlSaveFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - char * filename; - xmlDocPtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"zO:htmlSaveFile", &filename, &pyobj_cur)) - return(NULL); - cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); - - c_retval = htmlSaveFile(filename, cur); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderCurrentDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDocPtr c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderCurrentDoc", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderCurrentDoc(reader); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -PyObject * -libxml_xmlParsePITarget(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParsePITarget", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlParsePITarget(ctxt); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlURISetOpaque(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlURIPtr URI; - PyObject *pyobj_URI; - char * opaque; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlURISetOpaque", &pyobj_URI, &opaque)) - return(NULL); - URI = (xmlURIPtr) PyURI_Get(pyobj_URI); - - if (URI->opaque != NULL) xmlFree(URI->opaque); - URI->opaque = (char *)xmlStrdup((const xmlChar *)opaque); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlNewNodeEatName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlNsPtr ns; - PyObject *pyobj_ns; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNewNodeEatName", &pyobj_ns, &name)) - return(NULL); - ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); - - c_retval = xmlNewNodeEatName(ns, name); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlIsCombining(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - unsigned int ch; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlIsCombining", &ch)) - return(NULL); - - c_retval = xmlIsCombining(ch); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlReadFd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - htmlDocPtr c_retval; - int fd; - char * URL; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"izzi:htmlReadFd", &fd, &URL, &encoding, &options)) - return(NULL); - - c_retval = htmlReadFd(fd, URL, encoding, options); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderNormalization(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderNormalization", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderNormalization(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathEvalExpression(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlXPathObjectPtr c_retval; - xmlChar * str; - xmlXPathContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"zO:xmlXPathEvalExpression", &str, &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); - - c_retval = xmlXPathEvalExpression(str, ctxt); - py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlStrncatNew(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * str1; - xmlChar * str2; - int len; - - if (!PyArg_ParseTuple(args, (char *)"zzi:xmlStrncatNew", &str1, &str2, &len)) - return(NULL); - - c_retval = xmlStrncatNew(str1, str2, len); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlCatalogResolvePublic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * pubID; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlCatalogResolvePublic", &pubID)) - return(NULL); - - c_retval = xmlCatalogResolvePublic(pubID); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -PyObject * -libxml_xmlNewCDataBlock(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * content; - int len; - - if (!PyArg_ParseTuple(args, (char *)"Ozi:xmlNewCDataBlock", &pyobj_doc, &content, &len)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlNewCDataBlock(doc, content, len); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlURIGetServer(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const char * c_retval; - xmlURIPtr URI; - PyObject *pyobj_URI; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetServer", &pyobj_URI)) - return(NULL); - URI = (xmlURIPtr) PyURI_Get(pyobj_URI); - - c_retval = URI->server; - py_retval = libxml_charPtrConstWrap((const char *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_htmlSaveFileFormat(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - char * filename; - xmlDocPtr cur; - PyObject *pyobj_cur; - char * encoding; - int format; - - if (!PyArg_ParseTuple(args, (char *)"zOzi:htmlSaveFileFormat", &filename, &pyobj_cur, &encoding, &format)) - return(NULL); - cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); - - c_retval = htmlSaveFileFormat(filename, cur, encoding, format); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ -PyObject * -libxml_xmlNodeIsText(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlNodeIsText", &pyobj_node)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlNodeIsText(node); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlParserSetReplaceEntities(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - int replaceEntities; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlParserSetReplaceEntities", &pyobj_ctxt, &replaceEntities)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - ctxt->replaceEntities = replaceEntities; - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathStringEvalNumber(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - double c_retval; - xmlChar * str; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlXPathStringEvalNumber", &str)) - return(NULL); - - c_retval = xmlXPathStringEvalNumber(str); - py_retval = libxml_doubleWrap((double) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlUTF8Strsize(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * utf; - int len; - - if (!PyArg_ParseTuple(args, (char *)"zi:xmlUTF8Strsize", &utf, &len)) - return(NULL); - - c_retval = xmlUTF8Strsize(utf, len); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderStandalone(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderStandalone", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderStandalone(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_SAX1_ENABLED) -PyObject * -libxml_xmlParseStartTag(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseStartTag", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlParseStartTag(ctxt); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SAX1_ENABLED) */ -#if defined(LIBXML_SAX1_ENABLED) -PyObject * -libxml_xmlSetupParserForBuffer(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlChar * buffer; - char * filename; - - if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlSetupParserForBuffer", &pyobj_ctxt, &buffer, &filename)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlSetupParserForBuffer(ctxt, buffer, filename); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_SAX1_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlNewTextReaderFilename(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlTextReaderPtr c_retval; - char * URI; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlNewTextReaderFilename", &URI)) - return(NULL); - - c_retval = xmlNewTextReaderFilename(URI); - py_retval = libxml_xmlTextReaderPtrWrap((xmlTextReaderPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNumberFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathNumberFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathNumberFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_DEBUG_ENABLED) -PyObject * -libxml_xmlLsOneNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - FILE * output; - PyObject *pyobj_output; - xmlNodePtr node; - PyObject *pyobj_node; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlLsOneNode", &pyobj_output, &pyobj_node)) - return(NULL); - output = (FILE *) PyFile_Get(pyobj_output); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - xmlLsOneNode(output, node); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_DEBUG_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsGreekExtended(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsGreekExtended", &code)) - return(NULL); - - c_retval = xmlUCSIsGreekExtended(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlNewDocNodeEatName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNsPtr ns; - PyObject *pyobj_ns; - xmlChar * name; - xmlChar * content; - - if (!PyArg_ParseTuple(args, (char *)"OOzz:xmlNewDocNodeEatName", &pyobj_doc, &pyobj_ns, &name, &content)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); - - c_retval = xmlNewDocNodeEatName(doc, ns, name, content); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlReaderForDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlTextReaderPtr c_retval; - xmlChar * cur; - char * URL; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"zzzi:xmlReaderForDoc", &cur, &URL, &encoding, &options)) - return(NULL); - - c_retval = xmlReaderForDoc(cur, URL, encoding, options); - py_retval = libxml_xmlTextReaderPtrWrap((xmlTextReaderPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlRelaxNGParse(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlRelaxNGPtr c_retval; - xmlRelaxNGParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlRelaxNGParse", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlRelaxNGParserCtxtPtr) PyrelaxNgParserCtxt_Get(pyobj_ctxt); - - c_retval = xmlRelaxNGParse(ctxt); - py_retval = libxml_xmlRelaxNGPtrWrap((xmlRelaxNGPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_xmlAddDocEntity(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlEntityPtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * name; - int type; - xmlChar * ExternalID; - xmlChar * SystemID; - xmlChar * content; - - if (!PyArg_ParseTuple(args, (char *)"Ozizzz:xmlAddDocEntity", &pyobj_doc, &name, &type, &ExternalID, &SystemID, &content)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlAddDocEntity(doc, name, type, ExternalID, SystemID, content); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsMyanmar(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMyanmar", &code)) - return(NULL); - - c_retval = xmlUCSIsMyanmar(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathIsNodeType(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlXPathIsNodeType", &name)) - return(NULL); - - c_retval = xmlXPathIsNodeType(name); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathRoot(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathRoot", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathRoot(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathVariableLookup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlXPathObjectPtr c_retval; - xmlXPathContextPtr ctxt; - PyObject *pyobj_ctxt; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlXPathVariableLookup", &pyobj_ctxt, &name)) - return(NULL); - ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); - - c_retval = xmlXPathVariableLookup(ctxt, name); - py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNextFollowing(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextFollowing", &pyobj_ctxt, &pyobj_cur)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlXPathNextFollowing(ctxt, cur); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsHangulCompatibilityJamo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsHangulCompatibilityJamo", &code)) - return(NULL); - - c_retval = xmlUCSIsHangulCompatibilityJamo(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_TREE_ENABLED) -PyObject * -libxml_xmlNewTextChild(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlNodePtr parent; - PyObject *pyobj_parent; - xmlNsPtr ns; - PyObject *pyobj_ns; - xmlChar * name; - xmlChar * content; - - if (!PyArg_ParseTuple(args, (char *)"OOzz:xmlNewTextChild", &pyobj_parent, &pyobj_ns, &name, &content)) - return(NULL); - parent = (xmlNodePtr) PyxmlNode_Get(pyobj_parent); - ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); - - c_retval = xmlNewTextChild(parent, ns, name, content); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_TREE_ENABLED) */ -PyObject * -libxml_xmlAddChild(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlNodePtr parent; - PyObject *pyobj_parent; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlAddChild", &pyobj_parent, &pyobj_cur)) - return(NULL); - parent = (xmlNodePtr) PyxmlNode_Get(pyobj_parent); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlAddChild(parent, cur); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathErr(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int error; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathErr", &pyobj_ctxt, &error)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathErr(ctxt, error); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderDepth(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderDepth", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderDepth(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsHiragana(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsHiragana", &code)) - return(NULL); - - c_retval = xmlUCSIsHiragana(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_xmlRelaxNGDump(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - FILE * output; - PyObject *pyobj_output; - xmlRelaxNGPtr schema; - PyObject *pyobj_schema; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlRelaxNGDump", &pyobj_output, &pyobj_schema)) - return(NULL); - output = (FILE *) PyFile_Get(pyobj_output); - schema = (xmlRelaxNGPtr) PyrelaxNgSchema_Get(pyobj_schema); - - xmlRelaxNGDump(output, schema); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ -PyObject * -libxml_xmlFreeURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlURIPtr uri; - PyObject *pyobj_uri; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeURI", &pyobj_uri)) - return(NULL); - uri = (xmlURIPtr) PyURI_Get(pyobj_uri); - - xmlFreeURI(uri); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNextParent(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextParent", &pyobj_ctxt, &pyobj_cur)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlXPathNextParent(ctxt, cur); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsDevanagari(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsDevanagari", &code)) - return(NULL); - - c_retval = xmlUCSIsDevanagari(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlNodeGetContent(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlNodeGetContent", &pyobj_cur)) - return(NULL); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlNodeGetContent(cur); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderIsEmptyElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderIsEmptyElement", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderIsEmptyElement(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsIPAExtensions(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsIPAExtensions", &code)) - return(NULL); - - c_retval = xmlUCSIsIPAExtensions(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_XPTR_ENABLED) -PyObject * -libxml_xmlXPtrNewContext(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlXPathContextPtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr here; - PyObject *pyobj_here; - xmlNodePtr origin; - PyObject *pyobj_origin; - - if (!PyArg_ParseTuple(args, (char *)"OOO:xmlXPtrNewContext", &pyobj_doc, &pyobj_here, &pyobj_origin)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - here = (xmlNodePtr) PyxmlNode_Get(pyobj_here); - origin = (xmlNodePtr) PyxmlNode_Get(pyobj_origin); - - c_retval = xmlXPtrNewContext(doc, here, origin); - py_retval = libxml_xmlXPathContextPtrWrap((xmlXPathContextPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPTR_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsYiSyllables(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsYiSyllables", &code)) - return(NULL); - - c_retval = xmlUCSIsYiSyllables(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderLookupNamespace(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - xmlChar * prefix; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlTextReaderLookupNamespace", &pyobj_reader, &prefix)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderLookupNamespace(reader, prefix); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -PyObject * -libxml_xmlNodeGetLang(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlNodeGetLang", &pyobj_cur)) - return(NULL); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlNodeGetLang(cur); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlNewParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - PyObject *py_retval; - xmlParserCtxtPtr c_retval; - - c_retval = xmlNewParserCtxt(); - py_retval = libxml_xmlParserCtxtPtrWrap((xmlParserCtxtPtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_FTP_ENABLED) -PyObject * -libxml_xmlNanoFTPScanProxy(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - char * URL; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlNanoFTPScanProxy", &URL)) - return(NULL); - - xmlNanoFTPScanProxy(URL); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_FTP_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlSchemaFree(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlSchemaPtr schema; - PyObject *pyobj_schema; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlSchemaFree", &pyobj_schema)) - return(NULL); - schema = (xmlSchemaPtr) PySchema_Get(pyobj_schema); - - xmlSchemaFree(schema); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderNextSibling(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderNextSibling", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderNextSibling(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -PyObject * -libxml_xmlClearParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlClearParserCtxt", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlClearParserCtxt(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) -PyObject * -libxml_xmlValidateNCName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * value; - int space; - - if (!PyArg_ParseTuple(args, (char *)"zi:xmlValidateNCName", &value, &space)) - return(NULL); - - c_retval = xmlValidateNCName(value, space); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) */ -PyObject * -libxml_xmlStrlen(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * str; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlStrlen", &str)) - return(NULL); - - c_retval = xmlStrlen(str); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_DEBUG_ENABLED) -PyObject * -libxml_xmlDebugDumpDocument(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - FILE * output; - PyObject *pyobj_output; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlDebugDumpDocument", &pyobj_output, &pyobj_doc)) - return(NULL); - output = (FILE *) PyFile_Get(pyobj_output); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - xmlDebugDumpDocument(output, doc); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_DEBUG_ENABLED) */ -#if defined(LIBXML_XPTR_ENABLED) -PyObject * -libxml_xmlXPtrEval(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlXPathObjectPtr c_retval; - xmlChar * str; - xmlXPathContextPtr ctx; - PyObject *pyobj_ctx; - - if (!PyArg_ParseTuple(args, (char *)"zO:xmlXPtrEval", &str, &pyobj_ctx)) - return(NULL); - ctx = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctx); - - c_retval = xmlXPtrEval(str, ctx); - py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPTR_ENABLED) */ -PyObject * -libxml_xmlPopInput(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlPopInput", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlPopInput(ctxt); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathBooleanFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathBooleanFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathBooleanFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderSetParserProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - int prop; - int value; - - if (!PyArg_ParseTuple(args, (char *)"Oii:xmlTextReaderSetParserProp", &pyobj_reader, &prop, &value)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderSetParserProp(reader, prop, value); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderGetRemainder(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlParserInputBufferPtr c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderGetRemainder", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderGetRemainder(reader); - py_retval = libxml_xmlParserInputBufferPtrWrap((xmlParserInputBufferPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsGujarati(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsGujarati", &code)) - return(NULL); - - c_retval = xmlUCSIsGujarati(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlSetMetaEncoding(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - htmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * encoding; - - if (!PyArg_ParseTuple(args, (char *)"Oz:htmlSetMetaEncoding", &pyobj_doc, &encoding)) - return(NULL); - doc = (htmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = htmlSetMetaEncoding(doc, encoding); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlReaderNewDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - xmlChar * cur; - char * URL; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"Ozzzi:xmlReaderNewDoc", &pyobj_reader, &cur, &URL, &encoding, &options)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlReaderNewDoc(reader, cur, URL, encoding, options); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderConstPrefix(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderConstPrefix", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderConstPrefix(reader); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_SAX1_ENABLED) -PyObject * -libxml_xmlRecoverDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDocPtr c_retval; - xmlChar * cur; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlRecoverDoc", &cur)) - return(NULL); - - c_retval = xmlRecoverDoc(cur); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SAX1_ENABLED) */ -PyObject * -libxml_xmlNormalizeWindowsPath(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * path; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlNormalizeWindowsPath", &path)) - return(NULL); - - c_retval = xmlNormalizeWindowsPath(path); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XINCLUDE_ENABLED) -PyObject * -libxml_xmlXIncludeProcessTree(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlNodePtr tree; - PyObject *pyobj_tree; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXIncludeProcessTree", &pyobj_tree)) - return(NULL); - tree = (xmlNodePtr) PyxmlNode_Get(pyobj_tree); - - c_retval = xmlXIncludeProcessTree(tree); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XINCLUDE_ENABLED) */ -#if defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_xmlCatalogDump(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - FILE * out; - PyObject *pyobj_out; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlCatalogDump", &pyobj_out)) - return(NULL); - out = (FILE *) PyFile_Get(pyobj_out); - - xmlCatalogDump(out); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNextDescendantOrSelf(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextDescendantOrSelf", &pyobj_ctxt, &pyobj_cur)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlXPathNextDescendantOrSelf(ctxt, cur); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_LEGACY_ENABLED) -PyObject * -libxml_xmlParseNamespace(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseNamespace", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlParseNamespace(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_LEGACY_ENABLED) */ -PyObject * -libxml_xmlStrcasecmp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * str1; - xmlChar * str2; - - if (!PyArg_ParseTuple(args, (char *)"zz:xmlStrcasecmp", &str1, &str2)) - return(NULL); - - c_retval = xmlStrcasecmp(str1, str2); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlReaderForMemory(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlTextReaderPtr c_retval; - char * buffer; - int size; - char * URL; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"zizzi:xmlReaderForMemory", &buffer, &size, &URL, &encoding, &options)) - return(NULL); - - c_retval = xmlReaderForMemory(buffer, size, URL, encoding, options); - py_retval = libxml_xmlTextReaderPtrWrap((xmlTextReaderPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderByteConsumed(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - long c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderByteConsumed", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderByteConsumed(reader); - py_retval = libxml_longWrap((long) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -PyObject * -libxml_xmlNewDtd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDtdPtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * name; - xmlChar * ExternalID; - xmlChar * SystemID; - - if (!PyArg_ParseTuple(args, (char *)"Ozzz:xmlNewDtd", &pyobj_doc, &name, &ExternalID, &SystemID)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlNewDtd(doc, name, ExternalID, SystemID); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsBlockElements(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsBlockElements", &code)) - return(NULL); - - c_retval = xmlUCSIsBlockElements(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlNodeGetBase(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlNodeGetBase", &pyobj_doc, &pyobj_cur)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlNodeGetBase(doc, cur); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNextAncestorOrSelf(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextAncestorOrSelf", &pyobj_ctxt, &pyobj_cur)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlXPathNextAncestorOrSelf(ctxt, cur); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNewFloat(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlXPathObjectPtr c_retval; - double val; - - if (!PyArg_ParseTuple(args, (char *)"d:xmlXPathNewFloat", &val)) - return(NULL); - - c_retval = xmlXPathNewFloat(val); - py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNewString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlXPathObjectPtr c_retval; - xmlChar * val; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlXPathNewString", &val)) - return(NULL); - - c_retval = xmlXPathNewString(val); - py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlAddSibling(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlNodePtr cur; - PyObject *pyobj_cur; - xmlNodePtr elem; - PyObject *pyobj_elem; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlAddSibling", &pyobj_cur, &pyobj_elem)) - return(NULL); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); - - c_retval = xmlAddSibling(cur, elem); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_LEGACY_ENABLED) -PyObject * -libxml_xmlScanName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlScanName", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlScanName(ctxt); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_LEGACY_ENABLED) */ -PyObject * -libxml_xmlRegisterDefaultInputCallbacks(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlRegisterDefaultInputCallbacks(); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_DEBUG_ENABLED) -PyObject * -libxml_xmlDebugDumpEntities(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - FILE * output; - PyObject *pyobj_output; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlDebugDumpEntities", &pyobj_output, &pyobj_doc)) - return(NULL); - output = (FILE *) PyFile_Get(pyobj_output); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - xmlDebugDumpEntities(output, doc); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_DEBUG_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNextAncestor(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextAncestor", &pyobj_ctxt, &pyobj_cur)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlXPathNextAncestor(ctxt, cur); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathCastNumberToBoolean(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - double val; - - if (!PyArg_ParseTuple(args, (char *)"d:xmlXPathCastNumberToBoolean", &val)) - return(NULL); - - c_retval = xmlXPathCastNumberToBoolean(val); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatCs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatCs", &code)) - return(NULL); - - c_retval = xmlUCSIsCatCs(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatCf(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatCf", &code)) - return(NULL); - - c_retval = xmlUCSIsCatCf(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatCo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatCo", &code)) - return(NULL); - - c_retval = xmlUCSIsCatCo(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_SAX1_ENABLED) -PyObject * -libxml_xmlRecoverMemory(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDocPtr c_retval; - char * buffer; - int py_buffsize0; - int size; - - if (!PyArg_ParseTuple(args, (char *)"t#i:xmlRecoverMemory", &buffer, &py_buffsize0, &size)) - return(NULL); - - c_retval = xmlRecoverMemory(buffer, size); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SAX1_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderIsDefault(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderIsDefault", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderIsDefault(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -PyObject * -libxml_xmlParserGetWellFormed(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParserGetWellFormed", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = ctxt->wellFormed; - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlRemoveRef(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlAttrPtr attr; - PyObject *pyobj_attr; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlRemoveRef", &pyobj_doc, &pyobj_attr)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - attr = (xmlAttrPtr) PyxmlNode_Get(pyobj_attr); - - c_retval = xmlRemoveRef(doc, attr); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlReaderNewMemory(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - char * buffer; - int size; - char * URL; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"Ozizzi:xmlReaderNewMemory", &pyobj_reader, &buffer, &size, &URL, &encoding, &options)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlReaderNewMemory(reader, buffer, size, URL, encoding, options); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlTextReaderSchemaValidateCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - xmlSchemaValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - int options; - - if (!PyArg_ParseTuple(args, (char *)"OOi:xmlTextReaderSchemaValidateCtxt", &pyobj_reader, &pyobj_ctxt, &options)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - ctxt = (xmlSchemaValidCtxtPtr) PySchemaValidCtxt_Get(pyobj_ctxt); - - c_retval = xmlTextReaderSchemaValidateCtxt(reader, ctxt, options); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlNewProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlAttrPtr c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - xmlChar * name; - xmlChar * value; - - if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlNewProp", &pyobj_node, &name, &value)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlNewProp(node, name, value); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_xmlParserGetDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDocPtr c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParserGetDoc", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = ctxt->myDoc; - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlCleanupCharEncodingHandlers(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlCleanupCharEncodingHandlers(); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlRelaxNGValidatePopElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlRelaxNGValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr elem; - PyObject *pyobj_elem; - - if (!PyArg_ParseTuple(args, (char *)"OOO:xmlRelaxNGValidatePopElement", &pyobj_ctxt, &pyobj_doc, &pyobj_elem)) - return(NULL); - ctxt = (xmlRelaxNGValidCtxtPtr) PyrelaxNgValidCtxt_Get(pyobj_ctxt); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); - - c_retval = xmlRelaxNGValidatePopElement(ctxt, doc, elem); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_xmlParseEntityRef(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlEntityPtr c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseEntityRef", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlParseEntityRef(ctxt); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlInitAutoClose(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - htmlInitAutoClose(); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_WRITER_ENABLED) -PyObject * -libxml_xmlTextReaderReadOuterXml(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderReadOuterXml", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderReadOuterXml(reader); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_WRITER_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsTamil(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsTamil", &code)) - return(NULL); - - c_retval = xmlUCSIsTamil(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_DEBUG_ENABLED) -PyObject * -libxml_xmlDebugDumpString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - FILE * output; - PyObject *pyobj_output; - xmlChar * str; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlDebugDumpString", &pyobj_output, &str)) - return(NULL); - output = (FILE *) PyFile_Get(pyobj_output); - - xmlDebugDumpString(output, str); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_DEBUG_ENABLED) */ -PyObject * -libxml_xmlCleanupGlobals(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlCleanupGlobals(); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_LEGACY_ENABLED) -PyObject * -libxml_xmlEncodeEntities(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * input; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlEncodeEntities", &pyobj_doc, &input)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlEncodeEntities(doc, input); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_LEGACY_ENABLED) */ -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlNewCatalog(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlCatalogPtr c_retval; - int sgml; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlNewCatalog", &sgml)) - return(NULL); - - c_retval = xmlNewCatalog(sgml); - py_retval = libxml_xmlCatalogPtrWrap((xmlCatalogPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -PyObject * -libxml_xmlStrncasecmp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * str1; - xmlChar * str2; - int len; - - if (!PyArg_ParseTuple(args, (char *)"zzi:xmlStrncasecmp", &str1, &str2, &len)) - return(NULL); - - c_retval = xmlStrncasecmp(str1, str2, len); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlCanonicPath(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * path; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlCanonicPath", &path)) - return(NULL); - - c_retval = xmlCanonicPath(path); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNextPrecedingSibling(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextPrecedingSibling", &pyobj_ctxt, &pyobj_cur)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlXPathNextPrecedingSibling(ctxt, cur); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlCatalogCleanup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlCatalogCleanup(); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -PyObject * -libxml_xmlNextChar(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlNextChar", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlNextChar(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlIsID(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr elem; - PyObject *pyobj_elem; - xmlAttrPtr attr; - PyObject *pyobj_attr; - - if (!PyArg_ParseTuple(args, (char *)"OOO:xmlIsID", &pyobj_doc, &pyobj_elem, &pyobj_attr)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); - attr = (xmlAttrPtr) PyxmlNode_Get(pyobj_attr); - - c_retval = xmlIsID(doc, elem, attr); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlParseExtParsedEnt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseExtParsedEnt", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlParseExtParsedEnt(ctxt); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_FTP_ENABLED) -PyObject * -libxml_xmlNanoFTPProxy(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - char * host; - int port; - char * user; - char * passwd; - int type; - - if (!PyArg_ParseTuple(args, (char *)"zizzi:xmlNanoFTPProxy", &host, &port, &user, &passwd, &type)) - return(NULL); - - xmlNanoFTPProxy(host, port, user, passwd, type); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_FTP_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCJKUnifiedIdeographsExtensionA(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCJKUnifiedIdeographsExtensionA", &code)) - return(NULL); - - c_retval = xmlUCSIsCJKUnifiedIdeographsExtensionA(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCJKUnifiedIdeographsExtensionB(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCJKUnifiedIdeographsExtensionB", &code)) - return(NULL); - - c_retval = xmlUCSIsCJKUnifiedIdeographsExtensionB(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlCreateMemoryParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - htmlParserCtxtPtr c_retval; - char * buffer; - int py_buffsize0; - int size; - - if (!PyArg_ParseTuple(args, (char *)"t#i:htmlCreateMemoryParserCtxt", &buffer, &py_buffsize0, &size)) - return(NULL); - - c_retval = htmlCreateMemoryParserCtxt(buffer, size); - py_retval = libxml_xmlParserCtxtPtrWrap((xmlParserCtxtPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -PyObject * -libxml_xmlIsDigit(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - unsigned int ch; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlIsDigit", &ch)) - return(NULL); - - c_retval = xmlIsDigit(ch); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlCatalogSetDebug(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int level; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlCatalogSetDebug", &level)) - return(NULL); - - c_retval = xmlCatalogSetDebug(level); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -PyObject * -libxml_xmlParserGetDirectory(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - char * c_retval; - char * filename; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlParserGetDirectory", &filename)) - return(NULL); - - c_retval = xmlParserGetDirectory(filename); - py_retval = libxml_charPtrWrap((char *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlSchemaCleanupTypes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlSchemaCleanupTypes(); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_xmlFreeNsList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlNsPtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeNsList", &pyobj_cur)) - return(NULL); - cur = (xmlNsPtr) PyxmlNode_Get(pyobj_cur); - - xmlFreeNsList(cur); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlParseEntityDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseEntityDecl", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlParseEntityDecl(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlDocCopyNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - xmlDocPtr doc; - PyObject *pyobj_doc; - int extended; - - if (!PyArg_ParseTuple(args, (char *)"OOi:xmlDocCopyNode", &pyobj_node, &pyobj_doc, &extended)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlDocCopyNode(node, doc, extended); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_nodePop(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:nodePop", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = nodePop(ctxt); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNextDescendant(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextDescendant", &pyobj_ctxt, &pyobj_cur)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlXPathNextDescendant(ctxt, cur); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNewNodeSet(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlXPathObjectPtr c_retval; - xmlNodePtr val; - PyObject *pyobj_val; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathNewNodeSet", &pyobj_val)) - return(NULL); - val = (xmlNodePtr) PyxmlNode_Get(pyobj_val); - - c_retval = xmlXPathNewNodeSet(val); - py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlSchemaNewParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlSchemaParserCtxtPtr c_retval; - char * URL; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlSchemaNewParserCtxt", &URL)) - return(NULL); - - c_retval = xmlSchemaNewParserCtxt(URL); - py_retval = libxml_xmlSchemaParserCtxtPtrWrap((xmlSchemaParserCtxtPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlInitializeCatalog(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlInitializeCatalog(); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -#if defined(LIBXML_SAX1_ENABLED) -PyObject * -libxml_xmlParseEntity(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDocPtr c_retval; - char * filename; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlParseEntity", &filename)) - return(NULL); - - c_retval = xmlParseEntity(filename); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SAX1_ENABLED) */ -PyObject * -libxml_xmlDocGetRootElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlDocGetRootElement", &pyobj_doc)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlDocGetRootElement(doc); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathPopString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathPopString", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - c_retval = xmlXPathPopString(ctxt); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlCreateFileParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - htmlParserCtxtPtr c_retval; - char * filename; - char * encoding; - - if (!PyArg_ParseTuple(args, (char *)"zz:htmlCreateFileParserCtxt", &filename, &encoding)) - return(NULL); - - c_retval = htmlCreateFileParserCtxt(filename, encoding); - py_retval = libxml_xmlParserCtxtPtrWrap((xmlParserCtxtPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderConstEncoding(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderConstEncoding", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderConstEncoding(reader); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_VALID_ENABLED) -PyObject * -libxml_xmlValidateOneAttribute(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr elem; - PyObject *pyobj_elem; - xmlAttrPtr attr; - PyObject *pyobj_attr; - xmlChar * value; - - if (!PyArg_ParseTuple(args, (char *)"OOOOz:xmlValidateOneAttribute", &pyobj_ctxt, &pyobj_doc, &pyobj_elem, &pyobj_attr, &value)) - return(NULL); - ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); - attr = (xmlAttrPtr) PyxmlNode_Get(pyobj_attr); - - c_retval = xmlValidateOneAttribute(ctxt, doc, elem, attr, value); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_VALID_ENABLED) */ -PyObject * -libxml_xmlAddEncodingAlias(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - char * name; - char * alias; - - if (!PyArg_ParseTuple(args, (char *)"zz:xmlAddEncodingAlias", &name, &alias)) - return(NULL); - - c_retval = xmlAddEncodingAlias(name, alias); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderMoveToAttribute(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlTextReaderMoveToAttribute", &pyobj_reader, &name)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderMoveToAttribute(reader, name); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCJKCompatibilityForms(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCJKCompatibilityForms", &code)) - return(NULL); - - c_retval = xmlUCSIsCJKCompatibilityForms(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlTextReaderSetSchema(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - xmlSchemaPtr schema; - PyObject *pyobj_schema; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlTextReaderSetSchema", &pyobj_reader, &pyobj_schema)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - schema = (xmlSchemaPtr) PySchema_Get(pyobj_schema); - - c_retval = xmlTextReaderSetSchema(reader, schema); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlUnsetNsProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - xmlNsPtr ns; - PyObject *pyobj_ns; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"OOz:xmlUnsetNsProp", &pyobj_node, &pyobj_ns, &name)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); - - c_retval = xmlUnsetNsProp(node, ns, name); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_xmlElemDump(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - FILE * f; - PyObject *pyobj_f; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OOO:xmlElemDump", &pyobj_f, &pyobj_doc, &pyobj_cur)) - return(NULL); - f = (FILE *) PyFile_Get(pyobj_f); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - xmlElemDump(f, doc, cur); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_OUTPUT_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathConcatFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathConcatFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathConcatFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_DEBUG_ENABLED) -PyObject * -libxml_xmlDebugDumpAttrList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - FILE * output; - PyObject *pyobj_output; - xmlAttrPtr attr; - PyObject *pyobj_attr; - int depth; - - if (!PyArg_ParseTuple(args, (char *)"OOi:xmlDebugDumpAttrList", &pyobj_output, &pyobj_attr, &depth)) - return(NULL); - output = (FILE *) PyFile_Get(pyobj_output); - attr = (xmlAttrPtr) PyxmlNode_Get(pyobj_attr); - - xmlDebugDumpAttrList(output, attr, depth); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_DEBUG_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderReadString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderReadString", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderReadString(reader); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsLinearBIdeograms(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsLinearBIdeograms", &code)) - return(NULL); - - c_retval = xmlUCSIsLinearBIdeograms(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlParseCharData(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - int cdata; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlParseCharData", &pyobj_ctxt, &cdata)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlParseCharData(ctxt, cdata); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsThai(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsThai", &code)) - return(NULL); - - c_retval = xmlUCSIsThai(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlCtxtReset(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - htmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:htmlCtxtReset", &pyobj_ctxt)) - return(NULL); - ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - htmlCtxtReset(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -PyObject * -libxml_xmlCtxtReadFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDocPtr c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - char * filename; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"Ozzi:xmlCtxtReadFile", &pyobj_ctxt, &filename, &encoding, &options)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlCtxtReadFile(ctxt, filename, encoding, options); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlCatalogResolveSystem(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * sysID; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlCatalogResolveSystem", &sysID)) - return(NULL); - - c_retval = xmlCatalogResolveSystem(sysID); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderConstLocalName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderConstLocalName", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderConstLocalName(reader); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathLastFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathLastFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathLastFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsOpticalCharacterRecognition(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsOpticalCharacterRecognition", &code)) - return(NULL); - - c_retval = xmlUCSIsOpticalCharacterRecognition(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlThrDefSubstituteEntitiesDefaultValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int v; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefSubstituteEntitiesDefaultValue", &v)) - return(NULL); - - c_retval = xmlThrDefSubstituteEntitiesDefaultValue(v); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlNewNsProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlAttrPtr c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - xmlNsPtr ns; - PyObject *pyobj_ns; - xmlChar * name; - xmlChar * value; - - if (!PyArg_ParseTuple(args, (char *)"OOzz:xmlNewNsProp", &pyobj_node, &pyobj_ns, &name, &value)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); - - c_retval = xmlNewNsProp(node, ns, name, value); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlThrDefIndentTreeOutput(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int v; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefIndentTreeOutput", &v)) - return(NULL); - - c_retval = xmlThrDefIndentTreeOutput(v); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsYijingHexagramSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsYijingHexagramSymbols", &code)) - return(NULL); - - c_retval = xmlUCSIsYijingHexagramSymbols(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlReaderNewFd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - int fd; - char * URL; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"Oizzi:xmlReaderNewFd", &pyobj_reader, &fd, &URL, &encoding, &options)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlReaderNewFd(reader, fd, URL, encoding, options); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -PyObject * -libxml_xmlCreateMemoryParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlParserCtxtPtr c_retval; - char * buffer; - int py_buffsize0; - int size; - - if (!PyArg_ParseTuple(args, (char *)"t#i:xmlCreateMemoryParserCtxt", &buffer, &py_buffsize0, &size)) - return(NULL); - - c_retval = xmlCreateMemoryParserCtxt(buffer, size); - py_retval = libxml_xmlParserCtxtPtrWrap((xmlParserCtxtPtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlParseName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseName", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlParseName(ctxt); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlCopyNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - int extended; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlCopyNode", &pyobj_node, &extended)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlCopyNode(node, extended); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathCastStringToBoolean(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * val; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlXPathCastStringToBoolean", &val)) - return(NULL); - - c_retval = xmlXPathCastStringToBoolean(val); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderMoveToElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderMoveToElement", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderMoveToElement(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlIsAutoClosed(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - htmlDocPtr doc; - PyObject *pyobj_doc; - htmlNodePtr elem; - PyObject *pyobj_elem; - - if (!PyArg_ParseTuple(args, (char *)"OO:htmlIsAutoClosed", &pyobj_doc, &pyobj_elem)) - return(NULL); - doc = (htmlDocPtr) PyxmlNode_Get(pyobj_doc); - elem = (htmlNodePtr) PyxmlNode_Get(pyobj_elem); - - c_retval = htmlIsAutoClosed(doc, elem); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsUgaritic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsUgaritic", &code)) - return(NULL); - - c_retval = xmlUCSIsUgaritic(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCJKCompatibilityIdeographsSupplement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCJKCompatibilityIdeographsSupplement", &code)) - return(NULL); - - c_retval = xmlUCSIsCJKCompatibilityIdeographsSupplement(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_TREE_ENABLED) -PyObject * -libxml_xmlReconciliateNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr tree; - PyObject *pyobj_tree; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlReconciliateNs", &pyobj_doc, &pyobj_tree)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - tree = (xmlNodePtr) PyxmlNode_Get(pyobj_tree); - - c_retval = xmlReconciliateNs(doc, tree); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_TREE_ENABLED) */ -#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlNewChild(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlNodePtr parent; - PyObject *pyobj_parent; - xmlNsPtr ns; - PyObject *pyobj_ns; - xmlChar * name; - xmlChar * content; - - if (!PyArg_ParseTuple(args, (char *)"OOzz:xmlNewChild", &pyobj_parent, &pyobj_ns, &name, &content)) - return(NULL); - parent = (xmlNodePtr) PyxmlNode_Get(pyobj_parent); - ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); - - c_retval = xmlNewChild(parent, ns, name, content); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsKangxiRadicals(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsKangxiRadicals", &code)) - return(NULL); - - c_retval = xmlUCSIsKangxiRadicals(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlCreateIntSubset(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDtdPtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * name; - xmlChar * ExternalID; - xmlChar * SystemID; - - if (!PyArg_ParseTuple(args, (char *)"Ozzz:xmlCreateIntSubset", &pyobj_doc, &name, &ExternalID, &SystemID)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlCreateIntSubset(doc, name, ExternalID, SystemID); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathSubValues(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathSubValues", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathSubValues(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsArabicPresentationFormsA(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsArabicPresentationFormsA", &code)) - return(NULL); - - c_retval = xmlUCSIsArabicPresentationFormsA(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsArabicPresentationFormsB(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsArabicPresentationFormsB", &code)) - return(NULL); - - c_retval = xmlUCSIsArabicPresentationFormsB(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsGeometricShapes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsGeometricShapes", &code)) - return(NULL); - - c_retval = xmlUCSIsGeometricShapes(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlGetPredefinedEntity(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlEntityPtr c_retval; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlGetPredefinedEntity", &name)) - return(NULL); - - c_retval = xmlGetPredefinedEntity(name); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_xmlSaveFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - char * filename; - xmlDocPtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"zO:xmlSaveFile", &filename, &pyobj_cur)) - return(NULL); - cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlSaveFile(filename, cur); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_OUTPUT_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNextNamespace(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextNamespace", &pyobj_ctxt, &pyobj_cur)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlXPathNextNamespace(ctxt, cur); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsBuhid(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsBuhid", &code)) - return(NULL); - - c_retval = xmlUCSIsBuhid(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlSchemaValidateOneElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlSchemaValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlNodePtr elem; - PyObject *pyobj_elem; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlSchemaValidateOneElement", &pyobj_ctxt, &pyobj_elem)) - return(NULL); - ctxt = (xmlSchemaValidCtxtPtr) PySchemaValidCtxt_Get(pyobj_ctxt); - elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); - - c_retval = xmlSchemaValidateOneElement(ctxt, elem); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_xmlReadDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDocPtr c_retval; - xmlChar * cur; - char * URL; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"zzzi:xmlReadDoc", &cur, &URL, &encoding, &options)) - return(NULL); - - c_retval = xmlReadDoc(cur, URL, encoding, options); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlReaderNewFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - char * filename; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"Ozzi:xmlReaderNewFile", &pyobj_reader, &filename, &encoding, &options)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlReaderNewFile(reader, filename, encoding, options); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -PyObject * -libxml_xmlFreeDtd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlDtdPtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeDtd", &pyobj_cur)) - return(NULL); - cur = (xmlDtdPtr) PyxmlNode_Get(pyobj_cur); - - xmlFreeDtd(cur); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderSetup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - xmlParserInputBufferPtr input; - PyObject *pyobj_input; - char * URL; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"OOzzi:xmlTextReaderSetup", &pyobj_reader, &pyobj_input, &URL, &encoding, &options)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - input = (xmlParserInputBufferPtr) PyinputBuffer_Get(pyobj_input); - - c_retval = xmlTextReaderSetup(reader, input, URL, encoding, options); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -PyObject * -libxml_xmlSetListDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlNodePtr list; - PyObject *pyobj_list; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlSetListDoc", &pyobj_list, &pyobj_doc)) - return(NULL); - list = (xmlNodePtr) PyxmlNode_Get(pyobj_list); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - xmlSetListDoc(list, doc); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlCtxtReadFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - htmlDocPtr c_retval; - htmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - char * filename; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"Ozzi:htmlCtxtReadFile", &pyobj_ctxt, &filename, &encoding, &options)) - return(NULL); - ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = htmlCtxtReadFile(ctxt, filename, encoding, options); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -PyObject * -libxml_xmlThrDefLineNumbersDefaultValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int v; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefLineNumbersDefaultValue", &v)) - return(NULL); - - c_retval = xmlThrDefLineNumbersDefaultValue(v); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCombiningHalfMarks(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCombiningHalfMarks", &code)) - return(NULL); - - c_retval = xmlUCSIsCombiningHalfMarks(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatSc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatSc", &code)) - return(NULL); - - c_retval = xmlUCSIsCatSc(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatSo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatSo", &code)) - return(NULL); - - c_retval = xmlUCSIsCatSo(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatSk(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatSk", &code)) - return(NULL); - - c_retval = xmlUCSIsCatSk(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathFreeContext(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathFreeContext", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); - - xmlXPathFreeContext(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlEncodeSpecialChars(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * input; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlEncodeSpecialChars", &pyobj_doc, &input)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlEncodeSpecialChars(doc, input); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsEthiopic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsEthiopic", &code)) - return(NULL); - - c_retval = xmlUCSIsEthiopic(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlParseContent(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseContent", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlParseContent(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlReadMemory(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDocPtr c_retval; - char * buffer; - int py_buffsize0; - int size; - char * URL; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"t#izzi:xmlReadMemory", &buffer, &py_buffsize0, &size, &URL, &encoding, &options)) - return(NULL); - - c_retval = xmlReadMemory(buffer, size, URL, encoding, options); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlThrDefGetWarningsDefaultValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int v; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefGetWarningsDefaultValue", &v)) - return(NULL); - - c_retval = xmlThrDefGetWarningsDefaultValue(v); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsMongolian(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMongolian", &code)) - return(NULL); - - c_retval = xmlUCSIsMongolian(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlURIGetFragment(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const char * c_retval; - xmlURIPtr URI; - PyObject *pyobj_URI; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetFragment", &pyobj_URI)) - return(NULL); - URI = (xmlURIPtr) PyURI_Get(pyobj_URI); - - c_retval = URI->fragment; - py_retval = libxml_charPtrConstWrap((const char *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCJKRadicalsSupplement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCJKRadicalsSupplement", &code)) - return(NULL); - - c_retval = xmlUCSIsCJKRadicalsSupplement(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathSumFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathSumFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathSumFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlCopyNamespace(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNsPtr c_retval; - xmlNsPtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlCopyNamespace", &pyobj_cur)) - return(NULL); - cur = (xmlNsPtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlCopyNamespace(cur); - py_retval = libxml_xmlNsPtrWrap((xmlNsPtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCyrillic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCyrillic", &code)) - return(NULL); - - c_retval = xmlUCSIsCyrillic(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlURISetFragment(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlURIPtr URI; - PyObject *pyobj_URI; - char * fragment; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlURISetFragment", &pyobj_URI, &fragment)) - return(NULL); - URI = (xmlURIPtr) PyURI_Get(pyobj_URI); - - if (URI->fragment != NULL) xmlFree(URI->fragment); - URI->fragment = (char *)xmlStrdup((const xmlChar *)fragment); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlAddChildList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlNodePtr parent; - PyObject *pyobj_parent; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlAddChildList", &pyobj_parent, &pyobj_cur)) - return(NULL); - parent = (xmlNodePtr) PyxmlNode_Get(pyobj_parent); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlAddChildList(parent, cur); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_PUSH_ENABLED) -PyObject * -libxml_htmlParseChunk(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - htmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - char * chunk; - int py_buffsize0; - int size; - int terminate; - - if (!PyArg_ParseTuple(args, (char *)"Ot#ii:htmlParseChunk", &pyobj_ctxt, &chunk, &py_buffsize0, &size, &terminate)) - return(NULL); - ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = htmlParseChunk(ctxt, chunk, size, terminate); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_PUSH_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathIdFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathIdFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathIdFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlCreateURLParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlParserCtxtPtr c_retval; - char * filename; - int options; - - if (!PyArg_ParseTuple(args, (char *)"zi:xmlCreateURLParserCtxt", &filename, &options)) - return(NULL); - - c_retval = xmlCreateURLParserCtxt(filename, options); - py_retval = libxml_xmlParserCtxtPtrWrap((xmlParserCtxtPtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderRead(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderRead", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderRead(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -PyObject * -libxml_xmlSaveUri(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlURIPtr uri; - PyObject *pyobj_uri; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlSaveUri", &pyobj_uri)) - return(NULL); - uri = (xmlURIPtr) PyURI_Get(pyobj_uri); - - c_retval = xmlSaveUri(uri); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlIsChar(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - unsigned int ch; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlIsChar", &ch)) - return(NULL); - - c_retval = xmlIsChar(ch); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlCtxtReadFd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - htmlDocPtr c_retval; - htmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - int fd; - char * URL; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"Oizzi:htmlCtxtReadFd", &pyobj_ctxt, &fd, &URL, &encoding, &options)) - return(NULL); - ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = htmlCtxtReadFd(ctxt, fd, URL, encoding, options); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -PyObject * -libxml_xmlPedanticParserDefault(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int val; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlPedanticParserDefault", &val)) - return(NULL); - - c_retval = xmlPedanticParserDefault(val); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_SAX1_ENABLED) -PyObject * -libxml_xmlParseDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDocPtr c_retval; - xmlChar * cur; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlParseDoc", &cur)) - return(NULL); - - c_retval = xmlParseDoc(cur); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SAX1_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathParseNCName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathParseNCName", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - c_retval = xmlXPathParseNCName(ctxt); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlLineNumbersDefault(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int val; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlLineNumbersDefault", &val)) - return(NULL); - - c_retval = xmlLineNumbersDefault(val); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlConvertSGMLCatalog(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlCatalogPtr catal; - PyObject *pyobj_catal; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlConvertSGMLCatalog", &pyobj_catal)) - return(NULL); - catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal); - - c_retval = xmlConvertSGMLCatalog(catal); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -PyObject * -libxml_xmlNodeAddContent(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlNodePtr cur; - PyObject *pyobj_cur; - xmlChar * content; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNodeAddContent", &pyobj_cur, &content)) - return(NULL); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - xmlNodeAddContent(cur, content); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNewParserContext(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlXPathParserContextPtr c_retval; - xmlChar * str; - xmlXPathContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"zO:xmlXPathNewParserContext", &str, &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); - - c_retval = xmlXPathNewParserContext(str, ctxt); - py_retval = libxml_xmlXPathParserContextPtrWrap((xmlXPathParserContextPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlParseDocument(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseDocument", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlParseDocument(ctxt); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlFreeNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeNode", &pyobj_cur)) - return(NULL); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - xmlFreeNode(cur); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlRelaxNGValidatePushElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlRelaxNGValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr elem; - PyObject *pyobj_elem; - - if (!PyArg_ParseTuple(args, (char *)"OOO:xmlRelaxNGValidatePushElement", &pyobj_ctxt, &pyobj_doc, &pyobj_elem)) - return(NULL); - ctxt = (xmlRelaxNGValidCtxtPtr) PyrelaxNgValidCtxt_Get(pyobj_ctxt); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); - - c_retval = xmlRelaxNGValidatePushElement(ctxt, doc, elem); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsSinhala(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSinhala", &code)) - return(NULL); - - c_retval = xmlUCSIsSinhala(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlParserInputBufferPush(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlParserInputBufferPtr in; - PyObject *pyobj_in; - int len; - char * buf; - - if (!PyArg_ParseTuple(args, (char *)"Oiz:xmlParserInputBufferPush", &pyobj_in, &len, &buf)) - return(NULL); - in = (xmlParserInputBufferPtr) PyinputBuffer_Get(pyobj_in); - - c_retval = xmlParserInputBufferPush(in, len, buf); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlFileMatch(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - char * filename; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlFileMatch", &filename)) - return(NULL); - - c_retval = xmlFileMatch(filename); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlStrEqual(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * str1; - xmlChar * str2; - - if (!PyArg_ParseTuple(args, (char *)"zz:xmlStrEqual", &str1, &str2)) - return(NULL); - - c_retval = xmlStrEqual(str1, str2); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderPreserve(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderPreserve", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderPreserve(reader); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsKatakanaPhoneticExtensions(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsKatakanaPhoneticExtensions", &code)) - return(NULL); - - c_retval = xmlUCSIsKatakanaPhoneticExtensions(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlRelaxNGNewParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlRelaxNGParserCtxtPtr c_retval; - char * URL; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlRelaxNGNewParserCtxt", &URL)) - return(NULL); - - c_retval = xmlRelaxNGNewParserCtxt(URL); - py_retval = libxml_xmlRelaxNGParserCtxtPtrWrap((xmlRelaxNGParserCtxtPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathSetContextDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathContextPtr ctxt; - PyObject *pyobj_ctxt; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathSetContextDoc", &pyobj_ctxt, &pyobj_doc)) - return(NULL); - ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - ctxt->doc = doc; - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlSchemaIsValid(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlSchemaValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlSchemaIsValid", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlSchemaValidCtxtPtr) PySchemaValidCtxt_Get(pyobj_ctxt); - - c_retval = xmlSchemaIsValid(ctxt); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsKanbun(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsKanbun", &code)) - return(NULL); - - c_retval = xmlUCSIsKanbun(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsLatin1Supplement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsLatin1Supplement", &code)) - return(NULL); - - c_retval = xmlUCSIsLatin1Supplement(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_TREE_ENABLED) -PyObject * -libxml_xmlNodeSetName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlNodePtr cur; - PyObject *pyobj_cur; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNodeSetName", &pyobj_cur, &name)) - return(NULL); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - xmlNodeSetName(cur, name); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_TREE_ENABLED) */ -PyObject * -libxml_xmlUTF8Strloc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * utf; - xmlChar * utfchar; - - if (!PyArg_ParseTuple(args, (char *)"zz:xmlUTF8Strloc", &utf, &utfchar)) - return(NULL); - - c_retval = xmlUTF8Strloc(utf, utfchar); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlReadFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - htmlDocPtr c_retval; - char * filename; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"zzi:htmlReadFile", &filename, &encoding, &options)) - return(NULL); - - c_retval = htmlReadFile(filename, encoding, options); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathContextSetCache(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlXPathContextPtr ctxt; - PyObject *pyobj_ctxt; - int active; - int value; - int options; - - if (!PyArg_ParseTuple(args, (char *)"Oiii:xmlXPathContextSetCache", &pyobj_ctxt, &active, &value, &options)) - return(NULL); - ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); - - c_retval = xmlXPathContextSetCache(ctxt, active, value, options); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsDingbats(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsDingbats", &code)) - return(NULL); - - c_retval = xmlUCSIsDingbats(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlSchemaParse(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlSchemaPtr c_retval; - xmlSchemaParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlSchemaParse", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlSchemaParserCtxtPtr) PySchemaParserCtxt_Get(pyobj_ctxt); - - c_retval = xmlSchemaParse(ctxt); - py_retval = libxml_xmlSchemaPtrWrap((xmlSchemaPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_xmlThrDefDefaultBufferSize(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int v; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefDefaultBufferSize", &v)) - return(NULL); - - c_retval = xmlThrDefDefaultBufferSize(v); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsPrivateUse(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsPrivateUse", &code)) - return(NULL); - - c_retval = xmlUCSIsPrivateUse(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_SAX1_ENABLED) -PyObject * -libxml_xmlRecoverFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDocPtr c_retval; - char * filename; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlRecoverFile", &filename)) - return(NULL); - - c_retval = xmlRecoverFile(filename); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SAX1_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNextFollowingSibling(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextFollowingSibling", &pyobj_ctxt, &pyobj_cur)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlXPathNextFollowingSibling(ctxt, cur); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlIsExtender(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - unsigned int ch; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlIsExtender", &ch)) - return(NULL); - - c_retval = xmlIsExtender(ch); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathCastBooleanToString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - int val; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlXPathCastBooleanToString", &val)) - return(NULL); - - c_retval = xmlXPathCastBooleanToString(val); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlUTF8Charcmp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * utf1; - xmlChar * utf2; - - if (!PyArg_ParseTuple(args, (char *)"zz:xmlUTF8Charcmp", &utf1, &utf2)) - return(NULL); - - c_retval = xmlUTF8Charcmp(utf1, utf2); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPTR_ENABLED) -PyObject * -libxml_xmlXPtrNewRangeNodes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlXPathObjectPtr c_retval; - xmlNodePtr start; - PyObject *pyobj_start; - xmlNodePtr end; - PyObject *pyobj_end; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPtrNewRangeNodes", &pyobj_start, &pyobj_end)) - return(NULL); - start = (xmlNodePtr) PyxmlNode_Get(pyobj_start); - end = (xmlNodePtr) PyxmlNode_Get(pyobj_end); - - c_retval = xmlXPtrNewRangeNodes(start, end); - py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPTR_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlNewParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - PyObject *py_retval; - htmlParserCtxtPtr c_retval; - - c_retval = htmlNewParserCtxt(); - py_retval = libxml_xmlParserCtxtPtrWrap((xmlParserCtxtPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -PyObject * -libxml_xmlStringDecodeEntities(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlChar * str; - int what; - xmlChar end; - xmlChar end2; - xmlChar end3; - - if (!PyArg_ParseTuple(args, (char *)"Oziccc:xmlStringDecodeEntities", &pyobj_ctxt, &str, &what, &end, &end2, &end3)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlStringDecodeEntities(ctxt, str, what, end, end2, end3); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNotEqualValues(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathNotEqualValues", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - c_retval = xmlXPathNotEqualValues(ctxt); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderMoveToAttributeNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - xmlChar * localName; - xmlChar * namespaceURI; - - if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlTextReaderMoveToAttributeNs", &pyobj_reader, &localName, &namespaceURI)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderMoveToAttributeNs(reader, localName, namespaceURI); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsOgham(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsOgham", &code)) - return(NULL); - - c_retval = xmlUCSIsOgham(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlNewDocComment(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * content; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNewDocComment", &pyobj_doc, &content)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlNewDocComment(doc, content); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsBopomofoExtended(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsBopomofoExtended", &code)) - return(NULL); - - c_retval = xmlUCSIsBopomofoExtended(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCJKCompatibility(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCJKCompatibility", &code)) - return(NULL); - - c_retval = xmlUCSIsCJKCompatibility(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlRelaxNGValidateFullElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlRelaxNGValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr elem; - PyObject *pyobj_elem; - - if (!PyArg_ParseTuple(args, (char *)"OOO:xmlRelaxNGValidateFullElement", &pyobj_ctxt, &pyobj_doc, &pyobj_elem)) - return(NULL); - ctxt = (xmlRelaxNGValidCtxtPtr) PyrelaxNgValidCtxt_Get(pyobj_ctxt); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); - - c_retval = xmlRelaxNGValidateFullElement(ctxt, doc, elem); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_VALID_ENABLED) -PyObject * -libxml_xmlValidateDocument(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlValidateDocument", &pyobj_ctxt, &pyobj_doc)) - return(NULL); - ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlValidateDocument(ctxt, doc); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_VALID_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatPc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatPc", &code)) - return(NULL); - - c_retval = xmlUCSIsCatPc(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatPf(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatPf", &code)) - return(NULL); - - c_retval = xmlUCSIsCatPf(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatPd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatPd", &code)) - return(NULL); - - c_retval = xmlUCSIsCatPd(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlCtxtReadMemory(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - htmlDocPtr c_retval; - htmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - char * buffer; - int py_buffsize0; - int size; - char * URL; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"Ot#izzi:htmlCtxtReadMemory", &pyobj_ctxt, &buffer, &py_buffsize0, &size, &URL, &encoding, &options)) - return(NULL); - ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = htmlCtxtReadMemory(ctxt, buffer, size, URL, encoding, options); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatPi(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatPi", &code)) - return(NULL); - - c_retval = xmlUCSIsCatPi(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathGetContextNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlXPathContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathGetContextNode", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); - - c_retval = ctxt->node; - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatPo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatPo", &code)) - return(NULL); - - c_retval = xmlUCSIsCatPo(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatPs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatPs", &code)) - return(NULL); - - c_retval = xmlUCSIsCatPs(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsHighSurrogates(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsHighSurrogates", &code)) - return(NULL); - - c_retval = xmlUCSIsHighSurrogates(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlCatalogResolveURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * URI; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlCatalogResolveURI", &URI)) - return(NULL); - - c_retval = xmlCatalogResolveURI(URI); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -PyObject * -libxml_xmlURIGetScheme(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const char * c_retval; - xmlURIPtr URI; - PyObject *pyobj_URI; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetScheme", &pyobj_URI)) - return(NULL); - URI = (xmlURIPtr) PyURI_Get(pyobj_URI); - - c_retval = URI->scheme; - py_retval = libxml_charPtrConstWrap((const char *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderLocatorLineNumber(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderLocatorPtr locator; - PyObject *pyobj_locator; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderLocatorLineNumber", &pyobj_locator)) - return(NULL); - locator = (xmlTextReaderLocatorPtr) PyxmlTextReaderLocator_Get(pyobj_locator); - - c_retval = xmlTextReaderLocatorLineNumber(locator); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlRelaxNGNewMemParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlRelaxNGParserCtxtPtr c_retval; - char * buffer; - int size; - - if (!PyArg_ParseTuple(args, (char *)"zi:xmlRelaxNGNewMemParserCtxt", &buffer, &size)) - return(NULL); - - c_retval = xmlRelaxNGNewMemParserCtxt(buffer, size); - py_retval = libxml_xmlRelaxNGParserCtxtPtrWrap((xmlRelaxNGParserCtxtPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderAttributeCount(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderAttributeCount", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderAttributeCount(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -PyObject * -libxml_xmlCharStrndup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - char * cur; - int len; - - if (!PyArg_ParseTuple(args, (char *)"zi:xmlCharStrndup", &cur, &len)) - return(NULL); - - c_retval = xmlCharStrndup(cur, len); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlParseEncodingDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseEncodingDecl", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlParseEncodingDecl(ctxt); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsUnifiedCanadianAboriginalSyllabics(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsUnifiedCanadianAboriginalSyllabics", &code)) - return(NULL); - - c_retval = xmlUCSIsUnifiedCanadianAboriginalSyllabics(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlCopyPropList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlAttrPtr c_retval; - xmlNodePtr target; - PyObject *pyobj_target; - xmlAttrPtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlCopyPropList", &pyobj_target, &pyobj_cur)) - return(NULL); - target = (xmlNodePtr) PyxmlNode_Get(pyobj_target); - cur = (xmlAttrPtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlCopyPropList(target, cur); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_xmlDocFormatDump(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - FILE * f; - PyObject *pyobj_f; - xmlDocPtr cur; - PyObject *pyobj_cur; - int format; - - if (!PyArg_ParseTuple(args, (char *)"OOi:xmlDocFormatDump", &pyobj_f, &pyobj_cur, &format)) - return(NULL); - f = (FILE *) PyFile_Get(pyobj_f); - cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlDocFormatDump(f, cur, format); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_OUTPUT_ENABLED) */ -PyObject * -libxml_xmlCtxtReset(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlCtxtReset", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlCtxtReset(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlIsRef(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr elem; - PyObject *pyobj_elem; - xmlAttrPtr attr; - PyObject *pyobj_attr; - - if (!PyArg_ParseTuple(args, (char *)"OOO:xmlIsRef", &pyobj_doc, &pyobj_elem, &pyobj_attr)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); - attr = (xmlAttrPtr) PyxmlNode_Get(pyobj_attr); - - c_retval = xmlIsRef(doc, elem, attr); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathGetContextDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDocPtr c_retval; - xmlXPathContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathGetContextDoc", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); - - c_retval = ctxt->doc; - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsTaiLe(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsTaiLe", &code)) - return(NULL); - - c_retval = xmlUCSIsTaiLe(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlParseComment(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseComment", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlParseComment(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathSubstringAfterFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathSubstringAfterFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathSubstringAfterFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_xmlSaveFormatFileEnc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - char * filename; - xmlDocPtr cur; - PyObject *pyobj_cur; - char * encoding; - int format; - - if (!PyArg_ParseTuple(args, (char *)"zOzi:xmlSaveFormatFileEnc", &filename, &pyobj_cur, &encoding, &format)) - return(NULL); - cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlSaveFormatFileEnc(filename, cur, encoding, format); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_OUTPUT_ENABLED) */ -PyObject * -libxml_xmlParseNmtoken(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseNmtoken", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlParseNmtoken(ctxt); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlParserGetIsValid(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParserGetIsValid", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = ctxt->valid; - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsMathematicalOperators(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMathematicalOperators", &code)) - return(NULL); - - c_retval = xmlUCSIsMathematicalOperators(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_DEBUG_ENABLED) -PyObject * -libxml_xmlDebugDumpDTD(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - FILE * output; - PyObject *pyobj_output; - xmlDtdPtr dtd; - PyObject *pyobj_dtd; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlDebugDumpDTD", &pyobj_output, &pyobj_dtd)) - return(NULL); - output = (FILE *) PyFile_Get(pyobj_output); - dtd = (xmlDtdPtr) PyxmlNode_Get(pyobj_dtd); - - xmlDebugDumpDTD(output, dtd); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_DEBUG_ENABLED) */ -#if defined(LIBXML_XPTR_ENABLED) -PyObject * -libxml_xmlXPtrNewCollapsedRange(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlXPathObjectPtr c_retval; - xmlNodePtr start; - PyObject *pyobj_start; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPtrNewCollapsedRange", &pyobj_start)) - return(NULL); - start = (xmlNodePtr) PyxmlNode_Get(pyobj_start); - - c_retval = xmlXPtrNewCollapsedRange(start); - py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPTR_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNotFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathNotFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathNotFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlTextConcat(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - xmlChar * content; - int len; - - if (!PyArg_ParseTuple(args, (char *)"Ozi:xmlTextConcat", &pyobj_node, &content, &len)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlTextConcat(node, content, len); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlParsePI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParsePI", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlParsePI(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlLoadCatalogs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - char * pathss; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlLoadCatalogs", &pathss)) - return(NULL); - - xmlLoadCatalogs(pathss); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlCtxtReadDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - htmlDocPtr c_retval; - htmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlChar * cur; - char * URL; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"Ozzzi:htmlCtxtReadDoc", &pyobj_ctxt, &cur, &URL, &encoding, &options)) - return(NULL); - ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = htmlCtxtReadDoc(ctxt, cur, URL, encoding, options); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_PUSH_ENABLED) -PyObject * -libxml_xmlParseChunk(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - char * chunk; - int py_buffsize0; - int size; - int terminate; - - if (!PyArg_ParseTuple(args, (char *)"Ot#ii:xmlParseChunk", &pyobj_ctxt, &chunk, &py_buffsize0, &size, &terminate)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlParseChunk(ctxt, chunk, size, terminate); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_PUSH_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_htmlSaveFileEnc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - char * filename; - xmlDocPtr cur; - PyObject *pyobj_cur; - char * encoding; - - if (!PyArg_ParseTuple(args, (char *)"zOz:htmlSaveFileEnc", &filename, &pyobj_cur, &encoding)) - return(NULL); - cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); - - c_retval = htmlSaveFileEnc(filename, cur, encoding); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ -PyObject * -libxml_xmlParseElementDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseElementDecl", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlParseElementDecl(ctxt); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlReaderForFd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlTextReaderPtr c_retval; - int fd; - char * URL; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"izzi:xmlReaderForFd", &fd, &URL, &encoding, &options)) - return(NULL); - - c_retval = xmlReaderForFd(fd, URL, encoding, options); - py_retval = libxml_xmlTextReaderPtrWrap((xmlTextReaderPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCJKCompatibilityIdeographs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCJKCompatibilityIdeographs", &code)) - return(NULL); - - c_retval = xmlUCSIsCJKCompatibilityIdeographs(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderMoveToFirstAttribute(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderMoveToFirstAttribute", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderMoveToFirstAttribute(reader); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlNewTextReader(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlTextReaderPtr c_retval; - xmlParserInputBufferPtr input; - PyObject *pyobj_input; - char * URI; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNewTextReader", &pyobj_input, &URI)) - return(NULL); - input = (xmlParserInputBufferPtr) PyinputBuffer_Get(pyobj_input); - - c_retval = xmlNewTextReader(input, URI); - py_retval = libxml_xmlTextReaderPtrWrap((xmlTextReaderPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderGetAttributeNo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - int no; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlTextReaderGetAttributeNo", &pyobj_reader, &no)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderGetAttributeNo(reader, no); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderGetAttributeNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - xmlChar * localName; - xmlChar * namespaceURI; - - if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlTextReaderGetAttributeNs", &pyobj_reader, &localName, &namespaceURI)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderGetAttributeNs(reader, localName, namespaceURI); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -PyObject * -libxml_xmlURIGetQuery(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const char * c_retval; - xmlURIPtr URI; - PyObject *pyobj_URI; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetQuery", &pyobj_URI)) - return(NULL); - URI = (xmlURIPtr) PyURI_Get(pyobj_URI); - - c_retval = URI->query; - py_retval = libxml_charPtrConstWrap((const char *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsGeneralPunctuation(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsGeneralPunctuation", &code)) - return(NULL); - - c_retval = xmlUCSIsGeneralPunctuation(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsControlPictures(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsControlPictures", &code)) - return(NULL); - - c_retval = xmlUCSIsControlPictures(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlIsBooleanAttr(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"z:htmlIsBooleanAttr", &name)) - return(NULL); - - c_retval = htmlIsBooleanAttr(name); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -PyObject * -libxml_xmlNodeListGetString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr list; - PyObject *pyobj_list; - int inLine; - - if (!PyArg_ParseTuple(args, (char *)"OOi:xmlNodeListGetString", &pyobj_doc, &pyobj_list, &inLine)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - list = (xmlNodePtr) PyxmlNode_Get(pyobj_list); - - c_retval = xmlNodeListGetString(doc, list, inLine); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsBengali(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsBengali", &code)) - return(NULL); - - c_retval = xmlUCSIsBengali(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlBuildQName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * ncname; - xmlChar * prefix; - xmlChar * memory; - int len; - - if (!PyArg_ParseTuple(args, (char *)"zzzi:xmlBuildQName", &ncname, &prefix, &memory, &len)) - return(NULL); - - c_retval = xmlBuildQName(ncname, prefix, memory, len); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlFreePropList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlAttrPtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlFreePropList", &pyobj_cur)) - return(NULL); - cur = (xmlAttrPtr) PyxmlNode_Get(pyobj_cur); - - xmlFreePropList(cur); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathStringFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathStringFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathStringFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlInitParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlInitParserCtxt", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlInitParserCtxt(ctxt); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsTagbanwa(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsTagbanwa", &code)) - return(NULL); - - c_retval = xmlUCSIsTagbanwa(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderConstBaseUri(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderConstBaseUri", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderConstBaseUri(reader); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsDeseret(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsDeseret", &code)) - return(NULL); - - c_retval = xmlUCSIsDeseret(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathRoundFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathRoundFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathRoundFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatSm(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatSm", &code)) - return(NULL); - - c_retval = xmlUCSIsCatSm(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderMoveToAttributeNo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - int no; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlTextReaderMoveToAttributeNo", &pyobj_reader, &no)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderMoveToAttributeNo(reader, no); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -PyObject * -libxml_xmlParserHandlePEReference(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParserHandlePEReference", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlParserHandlePEReference(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNewBoolean(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlXPathObjectPtr c_retval; - int val; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlXPathNewBoolean", &val)) - return(NULL); - - c_retval = xmlXPathNewBoolean(val); - py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsPrivateUseArea(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsPrivateUseArea", &code)) - return(NULL); - - c_retval = xmlUCSIsPrivateUseArea(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlCtxtReadFd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDocPtr c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - int fd; - char * URL; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"Oizzi:xmlCtxtReadFd", &pyobj_ctxt, &fd, &URL, &encoding, &options)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlCtxtReadFd(ctxt, fd, URL, encoding, options); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsAlphabeticPresentationForms(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsAlphabeticPresentationForms", &code)) - return(NULL); - - c_retval = xmlUCSIsAlphabeticPresentationForms(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCypriotSyllabary(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCypriotSyllabary", &code)) - return(NULL); - - c_retval = xmlUCSIsCypriotSyllabary(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlGetNsProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - xmlChar * name; - xmlChar * nameSpace; - - if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlGetNsProp", &pyobj_node, &name, &nameSpace)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlGetNsProp(node, name, nameSpace); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatC(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatC", &code)) - return(NULL); - - c_retval = xmlUCSIsCatC(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatN(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatN", &code)) - return(NULL); - - c_retval = xmlUCSIsCatN(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatL(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatL", &code)) - return(NULL); - - c_retval = xmlUCSIsCatL(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatM(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatM", &code)) - return(NULL); - - c_retval = xmlUCSIsCatM(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlCtxtResetPush(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - char * chunk; - int py_buffsize0; - int size; - char * filename; - char * encoding; - - if (!PyArg_ParseTuple(args, (char *)"Ot#izz:xmlCtxtResetPush", &pyobj_ctxt, &chunk, &py_buffsize0, &size, &filename, &encoding)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlCtxtResetPush(ctxt, chunk, size, filename, encoding); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatS(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatS", &code)) - return(NULL); - - c_retval = xmlUCSIsCatS(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatP(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatP", &code)) - return(NULL); - - c_retval = xmlUCSIsCatP(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlCatalogGetSystem(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlChar * sysID; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlCatalogGetSystem", &sysID)) - return(NULL); - - c_retval = xmlCatalogGetSystem(sysID); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatZ(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatZ", &code)) - return(NULL); - - c_retval = xmlUCSIsCatZ(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsSuperscriptsandSubscripts(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSuperscriptsandSubscripts", &code)) - return(NULL); - - c_retval = xmlUCSIsSuperscriptsandSubscripts(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsTagalog(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsTagalog", &code)) - return(NULL); - - c_retval = xmlUCSIsTagalog(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlGetDtdElementDesc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlElementPtr c_retval; - xmlDtdPtr dtd; - PyObject *pyobj_dtd; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlGetDtdElementDesc", &pyobj_dtd, &name)) - return(NULL); - dtd = (xmlDtdPtr) PyxmlNode_Get(pyobj_dtd); - - c_retval = xmlGetDtdElementDesc(dtd, name); - py_retval = libxml_xmlElementPtrWrap((xmlElementPtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsPhoneticExtensions(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsPhoneticExtensions", &code)) - return(NULL); - - c_retval = xmlUCSIsPhoneticExtensions(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathCastNodeToString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathCastNodeToString", &pyobj_node)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlXPathCastNodeToString(node); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlURISetPort(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlURIPtr URI; - PyObject *pyobj_URI; - int port; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlURISetPort", &pyobj_URI, &port)) - return(NULL); - URI = (xmlURIPtr) PyURI_Get(pyobj_URI); - - URI->port = port; - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_LEGACY_ENABLED) -PyObject * -libxml_xmlNamespaceParseNCName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlNamespaceParseNCName", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlNamespaceParseNCName(ctxt); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_LEGACY_ENABLED) */ -PyObject * -libxml_xmlInitGlobals(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlInitGlobals(); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_namePop(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:namePop", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = namePop(ctxt); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlParseFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - htmlDocPtr c_retval; - char * filename; - char * encoding; - - if (!PyArg_ParseTuple(args, (char *)"zz:htmlParseFile", &filename, &encoding)) - return(NULL); - - c_retval = htmlParseFile(filename, encoding); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_DEBUG_ENABLED) -PyObject * -libxml_xmlDebugCheckDocument(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - FILE * output; - PyObject *pyobj_output; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlDebugCheckDocument", &pyobj_output, &pyobj_doc)) - return(NULL); - output = (FILE *) PyFile_Get(pyobj_output); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlDebugCheckDocument(output, doc); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_DEBUG_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlReadDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - htmlDocPtr c_retval; - xmlChar * cur; - char * URL; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"zzzi:htmlReadDoc", &cur, &URL, &encoding, &options)) - return(NULL); - - c_retval = htmlReadDoc(cur, URL, encoding, options); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathGetContextPosition(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlXPathContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathGetContextPosition", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); - - c_retval = ctxt->proximityPosition; - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_htmlNodeDumpFileFormat(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - FILE * out; - PyObject *pyobj_out; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr cur; - PyObject *pyobj_cur; - char * encoding; - int format; - - if (!PyArg_ParseTuple(args, (char *)"OOOzi:htmlNodeDumpFileFormat", &pyobj_out, &pyobj_doc, &pyobj_cur, &encoding, &format)) - return(NULL); - out = (FILE *) PyFile_Get(pyobj_out); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - c_retval = htmlNodeDumpFileFormat(out, doc, cur, encoding, format); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderConstXmlLang(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderConstXmlLang", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderConstXmlLang(reader); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCherokee(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCherokee", &code)) - return(NULL); - - c_retval = xmlUCSIsCherokee(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlNodeSetContent(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlNodePtr cur; - PyObject *pyobj_cur; - xmlChar * content; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNodeSetContent", &pyobj_cur, &content)) - return(NULL); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - xmlNodeSetContent(cur, content); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_DEBUG_ENABLED) -PyObject * -libxml_xmlBoolToText(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const char * c_retval; - int boolval; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlBoolToText", &boolval)) - return(NULL); - - c_retval = xmlBoolToText(boolval); - py_retval = libxml_charPtrConstWrap((const char *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_DEBUG_ENABLED) */ -PyObject * -libxml_xmlSetCompressMode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - int mode; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlSetCompressMode", &mode)) - return(NULL); - - xmlSetCompressMode(mode); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlParseDocument(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - htmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:htmlParseDocument", &pyobj_ctxt)) - return(NULL); - ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = htmlParseDocument(ctxt); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathSubstringFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathSubstringFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathSubstringFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_DEBUG_ENABLED) -PyObject * -libxml_xmlDebugDumpNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - FILE * output; - PyObject *pyobj_output; - xmlNodePtr node; - PyObject *pyobj_node; - int depth; - - if (!PyArg_ParseTuple(args, (char *)"OOi:xmlDebugDumpNode", &pyobj_output, &pyobj_node, &depth)) - return(NULL); - output = (FILE *) PyFile_Get(pyobj_output); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - xmlDebugDumpNode(output, node, depth); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_DEBUG_ENABLED) */ -#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlCopyDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDocPtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - int recursive; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlCopyDoc", &pyobj_doc, &recursive)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlCopyDoc(doc, recursive); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_xmlCtxtReadMemory(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDocPtr c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - char * buffer; - int py_buffsize0; - int size; - char * URL; - char * encoding; - int options; - - if (!PyArg_ParseTuple(args, (char *)"Ot#izzi:xmlCtxtReadMemory", &pyobj_ctxt, &buffer, &py_buffsize0, &size, &URL, &encoding, &options)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlCtxtReadMemory(ctxt, buffer, size, URL, encoding, options); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlCreateFileParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlParserCtxtPtr c_retval; - char * filename; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlCreateFileParserCtxt", &filename)) - return(NULL); - - c_retval = xmlCreateFileParserCtxt(filename); - py_retval = libxml_xmlParserCtxtPtrWrap((xmlParserCtxtPtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlParseSystemLiteral(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseSystemLiteral", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlParseSystemLiteral(ctxt); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlParseAttributeListDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseAttributeListDecl", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlParseAttributeListDecl(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlSchemaNewDocParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlSchemaParserCtxtPtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlSchemaNewDocParserCtxt", &pyobj_doc)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlSchemaNewDocParserCtxt(doc); - py_retval = libxml_xmlSchemaParserCtxtPtrWrap((xmlSchemaParserCtxtPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_nodePush(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlNodePtr value; - PyObject *pyobj_value; - - if (!PyArg_ParseTuple(args, (char *)"OO:nodePush", &pyobj_ctxt, &pyobj_value)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - value = (xmlNodePtr) PyxmlNode_Get(pyobj_value); - - c_retval = nodePush(ctxt, value); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XINCLUDE_ENABLED) -PyObject * -libxml_xmlXIncludeProcess(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXIncludeProcess", &pyobj_doc)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlXIncludeProcess(doc); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XINCLUDE_ENABLED) */ -#if defined(LIBXML_REGEXP_ENABLED) -PyObject * -libxml_xmlRegexpIsDeterminist(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlRegexpPtr comp; - PyObject *pyobj_comp; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlRegexpIsDeterminist", &pyobj_comp)) - return(NULL); - comp = (xmlRegexpPtr) PyxmlReg_Get(pyobj_comp); - - c_retval = xmlRegexpIsDeterminist(comp); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_REGEXP_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlNewDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - htmlDocPtr c_retval; - xmlChar * URI; - xmlChar * ExternalID; - - if (!PyArg_ParseTuple(args, (char *)"zz:htmlNewDoc", &URI, &ExternalID)) - return(NULL); - - c_retval = htmlNewDoc(URI, ExternalID); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCat(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - char * cat; - - if (!PyArg_ParseTuple(args, (char *)"iz:xmlUCSIsCat", &code, &cat)) - return(NULL); - - c_retval = xmlUCSIsCat(code, cat); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlIsScriptAttribute(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"z:htmlIsScriptAttribute", &name)) - return(NULL); - - c_retval = htmlIsScriptAttribute(name); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_LEGACY_ENABLED) -PyObject * -libxml_xmlInitializePredefinedEntities(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlInitializePredefinedEntities(); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_LEGACY_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsMiscellaneousTechnical(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMiscellaneousTechnical", &code)) - return(NULL); - - c_retval = xmlUCSIsMiscellaneousTechnical(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_xmlShellPrintNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlNodePtr node; - PyObject *pyobj_node; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlShellPrintNode", &pyobj_node)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - xmlShellPrintNode(node); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ -#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlValidateNMToken(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * value; - int space; - - if (!PyArg_ParseTuple(args, (char *)"zi:xmlValidateNMToken", &value, &space)) - return(NULL); - - c_retval = xmlValidateNMToken(value, space); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_xmlErrorGetCode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlErrorPtr Error; - PyObject *pyobj_Error; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlErrorGetCode", &pyobj_Error)) - return(NULL); - Error = (xmlErrorPtr) PyError_Get(pyobj_Error); - - c_retval = Error->code; - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_VALID_ENABLED) -PyObject * -libxml_xmlValidateNameValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * value; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlValidateNameValue", &value)) - return(NULL); - - c_retval = xmlValidateNameValue(value); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_VALID_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNewContext(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlXPathContextPtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathNewContext", &pyobj_doc)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlXPathNewContext(doc); - py_retval = libxml_xmlXPathContextPtrWrap((xmlXPathContextPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlRelaxNGNewDocParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlRelaxNGParserCtxtPtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlRelaxNGNewDocParserCtxt", &pyobj_doc)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlRelaxNGNewDocParserCtxt(doc); - py_retval = libxml_xmlRelaxNGParserCtxtPtrWrap((xmlRelaxNGParserCtxtPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_xmlBuildRelativeURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * URI; - xmlChar * base; - - if (!PyArg_ParseTuple(args, (char *)"zz:xmlBuildRelativeURI", &URI, &base)) - return(NULL); - - c_retval = xmlBuildRelativeURI(URI, base); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlParseURIRaw(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlURIPtr c_retval; - char * str; - int raw; - - if (!PyArg_ParseTuple(args, (char *)"zi:xmlParseURIRaw", &str, &raw)) - return(NULL); - - c_retval = xmlParseURIRaw(str, raw); - py_retval = libxml_xmlURIPtrWrap((xmlURIPtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlACatalogResolvePublic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlCatalogPtr catal; - PyObject *pyobj_catal; - xmlChar * pubID; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlACatalogResolvePublic", &pyobj_catal, &pubID)) - return(NULL); - catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal); - - c_retval = xmlACatalogResolvePublic(catal, pubID); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -PyObject * -libxml_xmlThrDefParserDebugEntities(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int v; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefParserDebugEntities", &v)) - return(NULL); - - c_retval = xmlThrDefParserDebugEntities(v); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlCatalogConvert(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - PyObject *py_retval; - int c_retval; - - c_retval = xmlCatalogConvert(); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCJKSymbolsandPunctuation(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCJKSymbolsandPunctuation", &code)) - return(NULL); - - c_retval = xmlUCSIsCJKSymbolsandPunctuation(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsMusicalSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMusicalSymbols", &code)) - return(NULL); - - c_retval = xmlUCSIsMusicalSymbols(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_FTP_ENABLED) -PyObject * -libxml_xmlNanoFTPInit(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlNanoFTPInit(); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_FTP_ENABLED) */ -PyObject * -libxml_xmlURIGetUser(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const char * c_retval; - xmlURIPtr URI; - PyObject *pyobj_URI; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetUser", &pyobj_URI)) - return(NULL); - URI = (xmlURIPtr) PyURI_Get(pyobj_URI); - - c_retval = URI->user; - py_retval = libxml_charPtrConstWrap((const char *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlGetLastChild(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlNodePtr parent; - PyObject *pyobj_parent; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlGetLastChild", &pyobj_parent)) - return(NULL); - parent = (xmlNodePtr) PyxmlNode_Get(pyobj_parent); - - c_retval = xmlGetLastChild(parent); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlAddDtdEntity(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlEntityPtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * name; - int type; - xmlChar * ExternalID; - xmlChar * SystemID; - xmlChar * content; - - if (!PyArg_ParseTuple(args, (char *)"Ozizzz:xmlAddDtdEntity", &pyobj_doc, &name, &type, &ExternalID, &SystemID, &content)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlAddDtdEntity(doc, name, type, ExternalID, SystemID, content); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlParseNotationDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseNotationDecl", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlParseNotationDecl(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_TREE_ENABLED) -PyObject * -libxml_xmlNewDocRawNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNsPtr ns; - PyObject *pyobj_ns; - xmlChar * name; - xmlChar * content; - - if (!PyArg_ParseTuple(args, (char *)"OOzz:xmlNewDocRawNode", &pyobj_doc, &pyobj_ns, &name, &content)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); - - c_retval = xmlNewDocRawNode(doc, ns, name, content); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_TREE_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlSchemaCollapseString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * value; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlSchemaCollapseString", &value)) - return(NULL); - - c_retval = xmlSchemaCollapseString(value); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderConstNamespaceUri(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderConstNamespaceUri", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderConstNamespaceUri(reader); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsBasicLatin(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsBasicLatin", &code)) - return(NULL); - - c_retval = xmlUCSIsBasicLatin(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlParseMisc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseMisc", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlParseMisc(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlParserInputBufferGrow(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlParserInputBufferPtr in; - PyObject *pyobj_in; - int len; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlParserInputBufferGrow", &pyobj_in, &len)) - return(NULL); - in = (xmlParserInputBufferPtr) PyinputBuffer_Get(pyobj_in); - - c_retval = xmlParserInputBufferGrow(in, len); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNextChild(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextChild", &pyobj_ctxt, &pyobj_cur)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlXPathNextChild(ctxt, cur); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderGetParserProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - int prop; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlTextReaderGetParserProp", &pyobj_reader, &prop)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderGetParserProp(reader, prop); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -PyObject * -libxml_xmlStrncat(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * cur; - xmlChar * add; - int len; - - if (!PyArg_ParseTuple(args, (char *)"zzi:xmlStrncat", &cur, &add, &len)) - return(NULL); - - c_retval = xmlStrncat(cur, add, len); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -#endif -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPatherror(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - char * file; - int line; - int no; - - if (!PyArg_ParseTuple(args, (char *)"Ozii:xmlXPatherror", &pyobj_ctxt, &file, &line, &no)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPatherror(ctxt, file, line, no); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_SAX1_ENABLED) -PyObject * -libxml_xmlParseMemory(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDocPtr c_retval; - char * buffer; - int py_buffsize0; - int size; - - if (!PyArg_ParseTuple(args, (char *)"t#i:xmlParseMemory", &buffer, &py_buffsize0, &size)) - return(NULL); - - c_retval = xmlParseMemory(buffer, size); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SAX1_ENABLED) */ -PyObject * -libxml_xmlCleanupEncodingAliases(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlCleanupEncodingAliases(); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathCeilingFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathCeilingFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathCeilingFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsSmallFormVariants(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSmallFormVariants", &code)) - return(NULL); - - c_retval = xmlUCSIsSmallFormVariants(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlInitParser(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlInitParser(); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathStartsWithFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathStartsWithFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathStartsWithFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -PyObject * -libxml_xmlSearchNsByHref(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNsPtr c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr node; - PyObject *pyobj_node; - xmlChar * href; - - if (!PyArg_ParseTuple(args, (char *)"OOz:xmlSearchNsByHref", &pyobj_doc, &pyobj_node, &href)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlSearchNsByHref(doc, node, href); - py_retval = libxml_xmlNsPtrWrap((xmlNsPtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlParseTextDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseTextDecl", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlParseTextDecl(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathNextPreceding(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextPreceding", &pyobj_ctxt, &pyobj_cur)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlXPathNextPreceding(ctxt, cur); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathRegisterAllFunctions(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathRegisterAllFunctions", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); - - xmlXPathRegisterAllFunctions(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathRegisteredVariablesCleanup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathRegisteredVariablesCleanup", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); - - xmlXPathRegisteredVariablesCleanup(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_LEGACY_ENABLED) -PyObject * -libxml_xmlHandleEntity(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlEntityPtr entity; - PyObject *pyobj_entity; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlHandleEntity", &pyobj_ctxt, &pyobj_entity)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - entity = (xmlEntityPtr) PyxmlNode_Get(pyobj_entity); - - xmlHandleEntity(ctxt, entity); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_LEGACY_ENABLED) */ -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlACatalogResolve(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlCatalogPtr catal; - PyObject *pyobj_catal; - xmlChar * pubID; - xmlChar * sysID; - - if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlACatalogResolve", &pyobj_catal, &pubID, &sysID)) - return(NULL); - catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal); - - c_retval = xmlACatalogResolve(catal, pubID, sysID); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlSchemaValidCtxtGetOptions(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlSchemaValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlSchemaValidCtxtGetOptions", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlSchemaValidCtxtPtr) PySchemaValidCtxt_Get(pyobj_ctxt); - - c_retval = xmlSchemaValidCtxtGetOptions(ctxt); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_VALID_ENABLED) -PyObject * -libxml_xmlParseDTD(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDtdPtr c_retval; - xmlChar * ExternalID; - xmlChar * SystemID; - - if (!PyArg_ParseTuple(args, (char *)"zz:xmlParseDTD", &ExternalID, &SystemID)) - return(NULL); - - c_retval = xmlParseDTD(ExternalID, SystemID); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_VALID_ENABLED) */ -#if defined(LIBXML_VALID_ENABLED) -PyObject * -libxml_xmlValidateDocumentFinal(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlValidateDocumentFinal", &pyobj_ctxt, &pyobj_doc)) - return(NULL); - ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlValidateDocumentFinal(ctxt, doc); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_VALID_ENABLED) */ -PyObject * -libxml_xmlIsLetter(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int c; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlIsLetter", &c)) - return(NULL); - - c_retval = xmlIsLetter(c); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlTextMerge(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlNodePtr first; - PyObject *pyobj_first; - xmlNodePtr second; - PyObject *pyobj_second; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlTextMerge", &pyobj_first, &pyobj_second)) - return(NULL); - first = (xmlNodePtr) PyxmlNode_Get(pyobj_first); - second = (xmlNodePtr) PyxmlNode_Get(pyobj_second); - - c_retval = xmlTextMerge(first, second); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlPrintURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - FILE * stream; - PyObject *pyobj_stream; - xmlURIPtr uri; - PyObject *pyobj_uri; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlPrintURI", &pyobj_stream, &pyobj_uri)) - return(NULL); - stream = (FILE *) PyFile_Get(pyobj_stream); - uri = (xmlURIPtr) PyURI_Get(pyobj_uri); - - xmlPrintURI(stream, uri); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathValueFlipSign(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathValueFlipSign", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathValueFlipSign(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlRelaxParserSetFlag(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlRelaxNGParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - int flags; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlRelaxParserSetFlag", &pyobj_ctxt, &flags)) - return(NULL); - ctxt = (xmlRelaxNGParserCtxtPtr) PyrelaxNgParserCtxt_Get(pyobj_ctxt); - - c_retval = xmlRelaxParserSetFlag(ctxt, flags); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_xmlParserSetLoadSubset(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - int loadsubset; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlParserSetLoadSubset", &pyobj_ctxt, &loadsubset)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - ctxt->loadsubset = loadsubset; - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_VALID_ENABLED) -PyObject * -libxml_xmlValidateOneNamespace(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlValidCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr elem; - PyObject *pyobj_elem; - xmlChar * prefix; - xmlNsPtr ns; - PyObject *pyobj_ns; - xmlChar * value; - - if (!PyArg_ParseTuple(args, (char *)"OOOzOz:xmlValidateOneNamespace", &pyobj_ctxt, &pyobj_doc, &pyobj_elem, &prefix, &pyobj_ns, &value)) - return(NULL); - ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); - ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); - - c_retval = xmlValidateOneNamespace(ctxt, doc, elem, prefix, ns, value); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_VALID_ENABLED) */ -#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) -PyObject * -libxml_xmlReplaceNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlNodePtr old; - PyObject *pyobj_old; - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlReplaceNode", &pyobj_old, &pyobj_cur)) - return(NULL); - old = (xmlNodePtr) PyxmlNode_Get(pyobj_old); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - c_retval = xmlReplaceNode(old, cur); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */ -PyObject * -libxml_xmlSetDocCompressMode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlDocPtr doc; - PyObject *pyobj_doc; - int mode; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlSetDocCompressMode", &pyobj_doc, &mode)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - xmlSetDocCompressMode(doc, mode); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_XPTR_ENABLED) -PyObject * -libxml_xmlXPtrNewRange(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlXPathObjectPtr c_retval; - xmlNodePtr start; - PyObject *pyobj_start; - int startindex; - xmlNodePtr end; - PyObject *pyobj_end; - int endindex; - - if (!PyArg_ParseTuple(args, (char *)"OiOi:xmlXPtrNewRange", &pyobj_start, &startindex, &pyobj_end, &endindex)) - return(NULL); - start = (xmlNodePtr) PyxmlNode_Get(pyobj_start); - end = (xmlNodePtr) PyxmlNode_Get(pyobj_end); - - c_retval = xmlXPtrNewRange(start, startindex, end, endindex); - py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPTR_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathMultValues(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathMultValues", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathMultValues(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_xmlSchemaDump(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - FILE * output; - PyObject *pyobj_output; - xmlSchemaPtr schema; - PyObject *pyobj_schema; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlSchemaDump", &pyobj_output, &pyobj_schema)) - return(NULL); - output = (FILE *) PyFile_Get(pyobj_output); - schema = (xmlSchemaPtr) PySchema_Get(pyobj_schema); - - xmlSchemaDump(output, schema); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ -#if defined(LIBXML_SAX1_ENABLED) -PyObject * -libxml_xmlParseFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDocPtr c_retval; - char * filename; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlParseFile", &filename)) - return(NULL); - - c_retval = xmlParseFile(filename); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_SAX1_ENABLED) */ -#if defined(LIBXML_SAX1_ENABLED) -PyObject * -libxml_xmlParseEndTag(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseEndTag", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlParseEndTag(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_SAX1_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsHanunoo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsHanunoo", &code)) - return(NULL); - - c_retval = xmlUCSIsHanunoo(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlParserSetLineNumbers(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - int linenumbers; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlParserSetLineNumbers", &pyobj_ctxt, &linenumbers)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - ctxt->linenumbers = linenumbers; - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlParsePEReference(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParsePEReference", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlParsePEReference(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlDelEncodingAlias(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - char * alias; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlDelEncodingAlias", &alias)) - return(NULL); - - c_retval = xmlDelEncodingAlias(alias); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_TREE_ENABLED) -PyObject * -libxml_xmlNodeSetContentLen(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlNodePtr cur; - PyObject *pyobj_cur; - xmlChar * content; - int len; - - if (!PyArg_ParseTuple(args, (char *)"Ozi:xmlNodeSetContentLen", &pyobj_cur, &content, &len)) - return(NULL); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - xmlNodeSetContentLen(cur, content, len); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_TREE_ENABLED) */ -PyObject * -libxml_xmlThrDefPedanticParserDefaultValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int v; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefPedanticParserDefaultValue", &v)) - return(NULL); - - c_retval = xmlThrDefPedanticParserDefaultValue(v); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlUTF8Strpos(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const xmlChar * c_retval; - xmlChar * utf; - int pos; - - if (!PyArg_ParseTuple(args, (char *)"zi:xmlUTF8Strpos", &utf, &pos)) - return(NULL); - - c_retval = xmlUTF8Strpos(utf, pos); - py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlCharStrdup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - char * cur; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlCharStrdup", &cur)) - return(NULL); - - c_retval = xmlCharStrdup(cur); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathRegisterNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlXPathContextPtr ctxt; - PyObject *pyobj_ctxt; - xmlChar * prefix; - xmlChar * ns_uri; - - if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlXPathRegisterNs", &pyobj_ctxt, &prefix, &ns_uri)) - return(NULL); - ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); - - c_retval = xmlXPathRegisterNs(ctxt, prefix, ns_uri); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCurrencySymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCurrencySymbols", &code)) - return(NULL); - - c_retval = xmlUCSIsCurrencySymbols(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathCmpNodes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlNodePtr node1; - PyObject *pyobj_node1; - xmlNodePtr node2; - PyObject *pyobj_node2; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathCmpNodes", &pyobj_node1, &pyobj_node2)) - return(NULL); - node1 = (xmlNodePtr) PyxmlNode_Get(pyobj_node1); - node2 = (xmlNodePtr) PyxmlNode_Get(pyobj_node2); - - c_retval = xmlXPathCmpNodes(node1, node2); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathVariableLookupNS(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlXPathObjectPtr c_retval; - xmlXPathContextPtr ctxt; - PyObject *pyobj_ctxt; - xmlChar * name; - xmlChar * ns_uri; - - if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlXPathVariableLookupNS", &pyobj_ctxt, &name, &ns_uri)) - return(NULL); - ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); - - c_retval = xmlXPathVariableLookupNS(ctxt, name, ns_uri); - py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_XINCLUDE_ENABLED) -PyObject * -libxml_xmlXIncludeProcessFlags(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - int flags; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXIncludeProcessFlags", &pyobj_doc, &flags)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlXIncludeProcessFlags(doc, flags); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XINCLUDE_ENABLED) */ -PyObject * -libxml_xmlUTF8Strsub(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * utf; - int start; - int len; - - if (!PyArg_ParseTuple(args, (char *)"zii:xmlUTF8Strsub", &utf, &start, &len)) - return(NULL); - - c_retval = xmlUTF8Strsub(utf, start, len); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlIsMixedElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlIsMixedElement", &pyobj_doc, &name)) - return(NULL); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - c_retval = xmlIsMixedElement(doc, name); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsMiscellaneousSymbolsandArrows(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMiscellaneousSymbolsandArrows", &code)) - return(NULL); - - c_retval = xmlUCSIsMiscellaneousSymbolsandArrows(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) -PyObject * -libxml_htmlNodeDumpFormatOutput(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlOutputBufferPtr buf; - PyObject *pyobj_buf; - xmlDocPtr doc; - PyObject *pyobj_doc; - xmlNodePtr cur; - PyObject *pyobj_cur; - char * encoding; - int format; - - if (!PyArg_ParseTuple(args, (char *)"OOOzi:htmlNodeDumpFormatOutput", &pyobj_buf, &pyobj_doc, &pyobj_cur, &encoding, &format)) - return(NULL); - buf = (xmlOutputBufferPtr) PyoutputBuffer_Get(pyobj_buf); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - htmlNodeDumpFormatOutput(buf, doc, cur, encoding, format); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ -PyObject * -libxml_xmlParseExternalSubset(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - xmlChar * ExternalID; - xmlChar * SystemID; - - if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlParseExternalSubset", &pyobj_ctxt, &ExternalID, &SystemID)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlParseExternalSubset(ctxt, ExternalID, SystemID); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlURIGetOpaque(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const char * c_retval; - xmlURIPtr URI; - PyObject *pyobj_URI; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetOpaque", &pyobj_URI)) - return(NULL); - URI = (xmlURIPtr) PyURI_Get(pyobj_URI); - - c_retval = URI->opaque; - py_retval = libxml_charPtrConstWrap((const char *) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlDictCleanup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlDictCleanup(); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_WRITER_ENABLED) -PyObject * -libxml_xmlTextReaderReadInnerXml(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderReadInnerXml", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderReadInnerXml(reader); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_WRITER_ENABLED) */ -PyObject * -libxml_xmlThrDefKeepBlanksDefaultValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int v; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefKeepBlanksDefaultValue", &v)) - return(NULL); - - c_retval = xmlThrDefKeepBlanksDefaultValue(v); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_VALID_ENABLED) -PyObject * -libxml_xmlValidateNmtokensValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlChar * value; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlValidateNmtokensValue", &value)) - return(NULL); - - c_retval = xmlValidateNmtokensValue(value); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_VALID_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsThaana(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsThaana", &code)) - return(NULL); - - c_retval = xmlUCSIsThaana(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlStrsub(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlChar * str; - int start; - int len; - - if (!PyArg_ParseTuple(args, (char *)"zii:xmlStrsub", &str, &start, &len)) - return(NULL); - - c_retval = xmlStrsub(str, start, len); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsYiRadicals(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsYiRadicals", &code)) - return(NULL); - - c_retval = xmlUCSIsYiRadicals(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_LEGACY_ENABLED) -PyObject * -libxml_xmlCleanupPredefinedEntities(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlCleanupPredefinedEntities(); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_LEGACY_ENABLED) */ -#if defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlSchemaInitTypes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlSchemaInitTypes(); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ -PyObject * -libxml_xmlParseElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseElement", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlParseElement(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsOriya(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsOriya", &code)) - return(NULL); - - c_retval = xmlUCSIsOriya(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlParseVersionInfo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseVersionInfo", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = xmlParseVersionInfo(ctxt); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathSubstringBeforeFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - int nargs; - - if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathSubstringBeforeFunction", &pyobj_ctxt, &nargs)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathSubstringBeforeFunction(ctxt, nargs); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_OUTPUT_ENABLED) && defined(LIBXML_HTTP_ENABLED) -PyObject * -libxml_xmlRegisterHTTPPostCallbacks(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { - - xmlRegisterHTTPPostCallbacks(); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_OUTPUT_ENABLED) && defined(LIBXML_HTTP_ENABLED) */ -PyObject * -libxml_xmlSetTreeDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlNodePtr tree; - PyObject *pyobj_tree; - xmlDocPtr doc; - PyObject *pyobj_doc; - - if (!PyArg_ParseTuple(args, (char *)"OO:xmlSetTreeDoc", &pyobj_tree, &pyobj_doc)) - return(NULL); - tree = (xmlNodePtr) PyxmlNode_Get(pyobj_tree); - doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); - - xmlSetTreeDoc(tree, doc); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlCopyNodeList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlCopyNodeList", &pyobj_node)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlCopyNodeList(node); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlParseCharRef(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - htmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:htmlParseCharRef", &pyobj_ctxt)) - return(NULL); - ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - c_retval = htmlParseCharRef(ctxt); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsAegeanNumbers(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsAegeanNumbers", &code)) - return(NULL); - - c_retval = xmlUCSIsAegeanNumbers(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlErrorGetLevel(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlErrorPtr Error; - PyObject *pyobj_Error; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlErrorGetLevel", &pyobj_Error)) - return(NULL); - Error = (xmlErrorPtr) PyError_Get(pyobj_Error); - - c_retval = Error->level; - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlCheckUTF8(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - unsigned char * utf; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlCheckUTF8", &utf)) - return(NULL); - - c_retval = xmlCheckUTF8(utf); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsOldItalic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsOldItalic", &code)) - return(NULL); - - c_retval = xmlUCSIsOldItalic(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlURIGetQueryRaw(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - const char * c_retval; - xmlURIPtr URI; - PyObject *pyobj_URI; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetQueryRaw", &pyobj_URI)) - return(NULL); - URI = (xmlURIPtr) PyURI_Get(pyobj_URI); - - c_retval = URI->query_raw; - py_retval = libxml_charPtrConstWrap((const char *) c_retval); - return(py_retval); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathPopNumber(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - double c_retval; - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathPopNumber", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - c_retval = xmlXPathPopNumber(ctxt); - py_retval = libxml_doubleWrap((double) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsEnclosedAlphanumerics(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsEnclosedAlphanumerics", &code)) - return(NULL); - - c_retval = xmlUCSIsEnclosedAlphanumerics(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathCastBooleanToNumber(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - double c_retval; - int val; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlXPathCastBooleanToNumber", &val)) - return(NULL); - - c_retval = xmlXPathCastBooleanToNumber(val); - py_retval = libxml_doubleWrap((double) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsIdeographicDescriptionCharacters(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsIdeographicDescriptionCharacters", &code)) - return(NULL); - - c_retval = xmlUCSIsIdeographicDescriptionCharacters(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlGetLineNo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - long c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlGetLineNo", &pyobj_node)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlGetLineNo(node); - py_retval = libxml_longWrap((long) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlURISetUser(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlURIPtr URI; - PyObject *pyobj_URI; - char * user; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlURISetUser", &pyobj_URI, &user)) - return(NULL); - URI = (xmlURIPtr) PyURI_Get(pyobj_URI); - - if (URI->user != NULL) xmlFree(URI->user); - URI->user = (char *)xmlStrdup((const xmlChar *)user); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlUnlinkNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlNodePtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlUnlinkNode", &pyobj_cur)) - return(NULL); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - xmlUnlinkNode(cur); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlCreateEntityParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlParserCtxtPtr c_retval; - xmlChar * URL; - xmlChar * ID; - xmlChar * base; - - if (!PyArg_ParseTuple(args, (char *)"zzz:xmlCreateEntityParserCtxt", &URL, &ID, &base)) - return(NULL); - - c_retval = xmlCreateEntityParserCtxt(URL, ID, base); - py_retval = libxml_xmlParserCtxtPtrWrap((xmlParserCtxtPtr) c_retval); - return(py_retval); -} - -PyObject * -libxml_xmlThrDefSaveNoEmptyTags(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int v; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefSaveNoEmptyTags", &v)) - return(NULL); - - c_retval = xmlThrDefSaveNoEmptyTags(v); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderGetAttribute(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlChar * c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlTextReaderGetAttribute", &pyobj_reader, &name)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderGetAttribute(reader, name); - py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -PyObject * -libxml_xmlKeepBlanksDefault(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int val; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlKeepBlanksDefault", &val)) - return(NULL); - - c_retval = xmlKeepBlanksDefault(val); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsSupplementaryPrivateUseAreaB(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSupplementaryPrivateUseAreaB", &code)) - return(NULL); - - c_retval = xmlUCSIsSupplementaryPrivateUseAreaB(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsSupplementaryPrivateUseAreaA(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSupplementaryPrivateUseAreaA", &code)) - return(NULL); - - c_retval = xmlUCSIsSupplementaryPrivateUseAreaA(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_READER_ENABLED) -PyObject * -libxml_xmlTextReaderCurrentNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlNodePtr c_retval; - xmlTextReaderPtr reader; - PyObject *pyobj_reader; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderCurrentNode", &pyobj_reader)) - return(NULL); - reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); - - c_retval = xmlTextReaderCurrentNode(reader); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_READER_ENABLED) */ -PyObject * -libxml_xmlNewDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlDocPtr c_retval; - xmlChar * version; - - if (!PyArg_ParseTuple(args, (char *)"z:xmlNewDoc", &version)) - return(NULL); - - c_retval = xmlNewDoc(version); - py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); - return(py_retval); -} - -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsLetterlikeSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsLetterlikeSymbols", &code)) - return(NULL); - - c_retval = xmlUCSIsLetterlikeSymbols(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatZp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatZp", &code)) - return(NULL); - - c_retval = xmlUCSIsCatZp(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatZs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatZs", &code)) - return(NULL); - - c_retval = xmlUCSIsCatZs(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsCatZl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatZl", &code)) - return(NULL); - - c_retval = xmlUCSIsCatZl(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_CATALOG_ENABLED) -PyObject * -libxml_xmlACatalogRemove(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlCatalogPtr catal; - PyObject *pyobj_catal; - xmlChar * value; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlACatalogRemove", &pyobj_catal, &value)) - return(NULL); - catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal); - - c_retval = xmlACatalogRemove(catal, value); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_CATALOG_ENABLED) */ -#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) -PyObject * -libxml_xmlUnsetProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - xmlChar * name; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlUnsetProp", &pyobj_node, &name)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlUnsetProp(node, name); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ -#if defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_htmlFreeParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - htmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:htmlFreeParserCtxt", &pyobj_ctxt)) - return(NULL); - ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - htmlFreeParserCtxt(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsVariationSelectorsSupplement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsVariationSelectorsSupplement", &code)) - return(NULL); - - c_retval = xmlUCSIsVariationSelectorsSupplement(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) -PyObject * -libxml_xmlSetProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - xmlAttrPtr c_retval; - xmlNodePtr node; - PyObject *pyobj_node; - xmlChar * name; - xmlChar * value; - - if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlSetProp", &pyobj_node, &name, &value)) - return(NULL); - node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); - - c_retval = xmlSetProp(node, name, value); - py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */ -#if defined(LIBXML_TREE_ENABLED) -PyObject * -libxml_xmlNodeSetLang(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlNodePtr cur; - PyObject *pyobj_cur; - xmlChar * lang; - - if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNodeSetLang", &pyobj_cur, &lang)) - return(NULL); - cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); - - xmlNodeSetLang(cur, lang); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_TREE_ENABLED) */ -PyObject * -libxml_xmlFreeDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlDocPtr cur; - PyObject *pyobj_cur; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeDoc", &pyobj_cur)) - return(NULL); - cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); - - xmlFreeDoc(cur); - Py_INCREF(Py_None); - return(Py_None); -} - -#if defined(LIBXML_XPATH_ENABLED) -PyObject * -libxml_xmlXPathEvalExpr(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlXPathParserContextPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathEvalExpr", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); - - xmlXPathEvalExpr(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -#endif /* defined(LIBXML_XPATH_ENABLED) */ -#if defined(LIBXML_UNICODE_ENABLED) -PyObject * -libxml_xmlUCSIsLinearBSyllabary(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - int code; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsLinearBSyllabary", &code)) - return(NULL); - - c_retval = xmlUCSIsLinearBSyllabary(code); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - -#endif /* defined(LIBXML_UNICODE_ENABLED) */ -PyObject * -libxml_xmlParseDocTypeDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - xmlParserCtxtPtr ctxt; - PyObject *pyobj_ctxt; - - if (!PyArg_ParseTuple(args, (char *)"O:xmlParseDocTypeDecl", &pyobj_ctxt)) - return(NULL); - ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); - - xmlParseDocTypeDecl(ctxt); - Py_INCREF(Py_None); - return(Py_None); -} - -PyObject * -libxml_xmlIsBaseChar(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { - PyObject *py_retval; - int c_retval; - unsigned int ch; - - if (!PyArg_ParseTuple(args, (char *)"i:xmlIsBaseChar", &ch)) - return(NULL); - - c_retval = xmlIsBaseChar(ch); - py_retval = libxml_intWrap((int) c_retval); - return(py_retval); -} - diff --git a/python/setup.py b/python/setup.py index 342c6ab..b54da49 100755 --- a/python/setup.py +++ b/python/setup.py @@ -226,7 +226,7 @@ else: setup (name = "libxml2-python", # On *nix, the version number is created from setup.py.in # On windows, it is set by configure.js - version = "2.6.31", + version = "2.6.32", description = descr, author = "Daniel Veillard", author_email = "veillard@redhat.com", diff --git a/python/tests/Makefile.am b/python/tests/Makefile.am index 5ba503a..8a85075 100644 --- a/python/tests/Makefile.am +++ b/python/tests/Makefile.am @@ -1,4 +1,5 @@ -EXAMPLE_DIR = $(datadir)/doc/libxml2-python-$(LIBXML_VERSION)/examples +exampledir = $(datadir)/doc/libxml2-python-$(LIBXML_VERSION)/examples +dist_example_DATA = $(PYTESTS) $(XMLS) PYTESTS= \ build.py \ @@ -44,7 +45,8 @@ PYTESTS= \ validDTD.py \ validSchemas.py \ validRNG.py \ - compareNodes.py + compareNodes.py \ + xpathns.py XMLS= \ tst.xml \ @@ -52,8 +54,6 @@ XMLS= \ invalid.xml \ test.dtd -EXTRA_DIST = $(PYTESTS) $(XMLS) - if WITH_PYTHON tests: $(PYTESTS) @echo "## running Python regression tests" @@ -71,13 +71,3 @@ endif clean: rm -f *.pyc core - -install-data-local: - $(mkinstalldirs) $(DESTDIR)$(EXAMPLE_DIR) - -(for test in $(PYTESTS) $(XMLS); \ - do @INSTALL@ -m 0644 $(srcdir)/$$test $(DESTDIR)$(EXAMPLE_DIR) ; done) - -uninstall-local: - @(for test in $(PYTESTS) $(XMLS) ; \ - do rm $(DESTDIR)$(EXAMPLE_DIR)/`basename $$test` ; done) - diff --git a/python/tests/Makefile.in b/python/tests/Makefile.in index d477970..914e222 100644 --- a/python/tests/Makefile.in +++ b/python/tests/Makefile.in @@ -13,6 +13,7 @@ # PARTICULAR PURPOSE. @SET_MAKE@ + VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -32,7 +33,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = python/tests -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(dist_example_DATA) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in @@ -43,6 +45,15 @@ CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(exampledir)" +dist_exampleDATA_INSTALL = $(INSTALL_DATA) +DATA = $(dist_example_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -259,7 +270,8 @@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -EXAMPLE_DIR = $(datadir)/doc/libxml2-python-$(LIBXML_VERSION)/examples +exampledir = $(datadir)/doc/libxml2-python-$(LIBXML_VERSION)/examples +dist_example_DATA = $(PYTESTS) $(XMLS) PYTESTS = \ build.py \ attribs.py \ @@ -304,7 +316,8 @@ PYTESTS = \ validDTD.py \ validSchemas.py \ validRNG.py \ - compareNodes.py + compareNodes.py \ + xpathns.py XMLS = \ tst.xml \ @@ -312,7 +325,6 @@ XMLS = \ invalid.xml \ test.dtd -EXTRA_DIST = $(PYTESTS) $(XMLS) all: all-am .SUFFIXES: @@ -351,6 +363,23 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs +install-dist_exampleDATA: $(dist_example_DATA) + @$(NORMAL_INSTALL) + test -z "$(exampledir)" || $(MKDIR_P) "$(DESTDIR)$(exampledir)" + @list='$(dist_example_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(dist_exampleDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(exampledir)/$$f'"; \ + $(dist_exampleDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(exampledir)/$$f"; \ + done + +uninstall-dist_exampleDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_example_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(exampledir)/$$f'"; \ + rm -f "$(DESTDIR)$(exampledir)/$$f"; \ + done tags: TAGS TAGS: @@ -386,8 +415,11 @@ distdir: $(DISTFILES) done check-am: all-am check: check-am -all-am: Makefile +all-am: Makefile $(DATA) installdirs: + for dir in "$(DESTDIR)$(exampledir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done install: install-am install-exec: install-exec-am install-data: install-data-am @@ -428,7 +460,7 @@ info: info-am info-am: -install-data-am: install-data-local +install-data-am: install-dist_exampleDATA install-dvi: install-dvi-am @@ -462,21 +494,21 @@ ps: ps-am ps-am: -uninstall-am: uninstall-local +uninstall-am: uninstall-dist_exampleDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-data-local install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am uninstall-local + install-data install-data-am install-dist_exampleDATA \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am uninstall uninstall-am uninstall-dist_exampleDATA @WITH_PYTHON_TRUE@tests: $(PYTESTS) @@ -493,15 +525,6 @@ uninstall-am: uninstall-local clean: rm -f *.pyc core - -install-data-local: - $(mkinstalldirs) $(DESTDIR)$(EXAMPLE_DIR) - -(for test in $(PYTESTS) $(XMLS); \ - do @INSTALL@ -m 0644 $(srcdir)/$$test $(DESTDIR)$(EXAMPLE_DIR) ; done) - -uninstall-local: - @(for test in $(PYTESTS) $(XMLS) ; \ - do rm $(DESTDIR)$(EXAMPLE_DIR)/`basename $$test` ; done) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/python/tests/xpathns.py b/python/tests/xpathns.py new file mode 100755 index 0000000..e67e550 --- /dev/null +++ b/python/tests/xpathns.py @@ -0,0 +1,29 @@ +#!/usr/bin/python -u +# +import libxml2 + +expect=' xmlns:a="urn:whatevar"' + +# Memory debug specific +libxml2.debugMemory(1) + +d = libxml2.parseDoc("") +res="" +for n in d.xpathEval("//namespace::*"): + res = res + n.serialize() +d.freeDoc() + +if res != expect: + print "test5 failed: unexpected output" + print res +del res +del d +del n +# Memory debug specific +libxml2.cleanupParser() + +if libxml2.debugMemory(1) == 0: + print "OK" +else: + print "Memory leak %d bytes" % (libxml2.debugMemory(1)) + libxml2.dumpMemory() diff --git a/python/types.c b/python/types.c index 9a17749..80e4304 100644 --- a/python/types.c +++ b/python/types.c @@ -7,6 +7,7 @@ * daniel@veillard.com */ #include "libxml_wrap.h" +#include PyObject * libxml_intWrap(int val) @@ -330,6 +331,24 @@ libxml_xmlParserCtxtPtrWrap(xmlParserCtxtPtr ctxt) return (ret); } +/** + * libxml_xmlXPathDestructNsNode: + * cobj: xmlNsPtr namespace node + * desc: ignored string + * + * This function is called if and when a namespace node returned in + * an XPath node set is to be destroyed. That's the only kind of + * object returned in node set not directly linked to the original + * xmlDoc document, see xmlXPathNodeSetDupNs. + */ +static void +libxml_xmlXPathDestructNsNode(void *cobj, void *desc ATTRIBUTE_UNUSED) { +#ifdef DEBUG + fprintf(stderr, "libxml_xmlXPathDestructNsNode called %p\n", cobj); +#endif + xmlXPathNodeSetFreeNs((xmlNsPtr) cobj); +} + PyObject * libxml_xmlXPathObjectPtrWrap(xmlXPathObjectPtr obj) { @@ -380,8 +399,17 @@ libxml_xmlXPathObjectPtrWrap(xmlXPathObjectPtr obj) ret = PyList_New(obj->nodesetval->nodeNr); for (i = 0; i < obj->nodesetval->nodeNr; i++) { node = obj->nodesetval->nodeTab[i]; - /* TODO: try to cast directly to the proper node type */ - PyList_SetItem(ret, i, libxml_xmlNodePtrWrap(node)); + if (node->type == XML_NAMESPACE_DECL) { + PyObject *ns = + PyCObject_FromVoidPtrAndDesc((void *) node, + (char *) "xmlNsPtr", + libxml_xmlXPathDestructNsNode); + PyList_SetItem(ret, i, ns); + /* make sure the xmlNsPtr is not destroyed now */ + obj->nodesetval->nodeTab[i] = NULL; + } else { + PyList_SetItem(ret, i, libxml_xmlNodePtrWrap(node)); + } } } break; diff --git a/schematron.c b/schematron.c index 146ffc9..81f4704 100644 --- a/schematron.c +++ b/schematron.c @@ -168,6 +168,12 @@ struct _xmlSchematronValidCtxt { xmlOutputWriteCallback iowrite; /* if using XML_SCHEMATRON_OUT_IO */ xmlOutputCloseCallback ioclose; void *ioctx; + + /* error reporting data */ + void *userData; /* user specific data block */ + xmlSchematronValidityErrorFunc error;/* the callback in case of errors */ + xmlSchematronValidityWarningFunc warning;/* callback in case of warning */ + xmlStructuredErrorFunc serror; /* the structured function */ }; struct _xmlSchematronParserCtxt { @@ -193,12 +199,11 @@ struct _xmlSchematronParserCtxt { int maxIncludes; /* size of the array */ xmlNodePtr *includes; /* the array of includes */ - /* error rreporting data */ + /* error reporting data */ void *userData; /* user specific data block */ xmlSchematronValidityErrorFunc error;/* the callback in case of errors */ xmlSchematronValidityWarningFunc warning;/* callback in case of warning */ xmlStructuredErrorFunc serror; /* the structured function */ - }; #define XML_STRON_CTXT_PARSER 1 @@ -1361,7 +1366,7 @@ xmlSchematronFormatReport(xmlSchematronValidCtxtPtr ctxt, */ static void xmlSchematronReportSuccess(xmlSchematronValidCtxtPtr ctxt, - xmlSchematronTestPtr test, xmlNodePtr cur, int success) { + xmlSchematronTestPtr test, xmlNodePtr cur, xmlSchematronPatternPtr pattern, int success) { if ((ctxt == NULL) || (cur == NULL) || (test == NULL)) return; /* if quiet and not SVRL report only failures */ @@ -1392,18 +1397,41 @@ xmlSchematronReportSuccess(xmlSchematronValidCtxtPtr ctxt, report = xmlSchematronFormatReport(ctxt, test->node, cur); if (report == NULL) { if (test->type == XML_SCHEMATRON_ASSERT) { - snprintf(msg, 999, "%s line %ld: node failed assert\n", - (const char *) path, line); + report = xmlStrdup((const xmlChar *) "node failed assert"); } else { - snprintf(msg, 999, "%s line %ld: node failed report\n", - (const char *) path, line); + report = xmlStrdup((const xmlChar *) "node failed report"); + } } - } else { snprintf(msg, 999, "%s line %ld: %s\n", (const char *) path, line, (const char *) report); - xmlFree((char *) report); + + if (ctxt->flags & XML_SCHEMATRON_OUT_ERROR) { + xmlStructuredErrorFunc schannel = NULL; + xmlGenericErrorFunc channel = NULL; + void *data = NULL; + + if (ctxt != NULL) { + if (ctxt->serror != NULL) + schannel = ctxt->serror; + else + channel = ctxt->error; + data = ctxt->userData; } + + __xmlRaiseError(schannel, channel, data, + NULL, cur, XML_FROM_SCHEMATRONV, + (test->type == XML_SCHEMATRON_ASSERT)?XML_SCHEMATRONV_ASSERT:XML_SCHEMATRONV_REPORT, + XML_ERR_ERROR, NULL, line, + (pattern == NULL)?NULL:((const char *) pattern->name), + (const char *) path, + (const char *) report, 0, 0, + msg); + } else { xmlSchematronReportOutput(ctxt, cur, &msg[0]); + } + + xmlFree((char *) report); + if ((path != NULL) && (path != (xmlChar *) cur->name)) xmlFree(path); } @@ -1421,7 +1449,7 @@ xmlSchematronReportPattern(xmlSchematronValidCtxtPtr ctxt, xmlSchematronPatternPtr pattern) { if ((ctxt == NULL) || (pattern == NULL)) return; - if (ctxt->flags & XML_SCHEMATRON_OUT_QUIET) + if ((ctxt->flags & XML_SCHEMATRON_OUT_QUIET) || (ctxt->flags & XML_SCHEMATRON_OUT_ERROR)) /* Error gives pattern name as part of error */ return; if (ctxt->flags & XML_SCHEMATRON_OUT_XML) { TODO @@ -1442,6 +1470,26 @@ xmlSchematronReportPattern(xmlSchematronValidCtxtPtr ctxt, * * ************************************************************************/ +/** + * xmlSchematronSetValidStructuredErrors: + * @ctxt: a Schematron validation context + * @serror: the structured error function + * @ctx: the functions context + * + * Set the structured error callback + */ +void +xmlSchematronSetValidStructuredErrors(xmlSchematronValidCtxtPtr ctxt, + xmlStructuredErrorFunc serror, void *ctx) +{ + if (ctxt == NULL) + return; + ctxt->serror = serror; + ctxt->error = NULL; + ctxt->warning = NULL; + ctxt->userData = ctx; +} + /** * xmlSchematronNewValidCtxt: * @schema: a precompiled XML Schematrons @@ -1550,7 +1598,7 @@ xmlSchematronNextNode(xmlNodePtr cur) { */ static int xmlSchematronRunTest(xmlSchematronValidCtxtPtr ctxt, - xmlSchematronTestPtr test, xmlDocPtr instance, xmlNodePtr cur) + xmlSchematronTestPtr test, xmlDocPtr instance, xmlNodePtr cur, xmlSchematronPatternPtr pattern) { xmlXPathObjectPtr ret; int failed; @@ -1597,7 +1645,7 @@ xmlSchematronRunTest(xmlSchematronValidCtxtPtr ctxt, else if ((!failed) && (test->type == XML_SCHEMATRON_REPORT)) ctxt->nberrors++; - xmlSchematronReportSuccess(ctxt, test, cur, !failed); + xmlSchematronReportSuccess(ctxt, test, cur, pattern, !failed); return(!failed); } @@ -1643,7 +1691,7 @@ xmlSchematronValidateDoc(xmlSchematronValidCtxtPtr ctxt, xmlDocPtr instance) if (xmlPatternMatch(rule->pattern, cur) == 1) { test = rule->tests; while (test != NULL) { - xmlSchematronRunTest(ctxt, test, instance, cur); + xmlSchematronRunTest(ctxt, test, instance, cur, rule->pattern); test = test->next; } } @@ -1674,7 +1722,7 @@ xmlSchematronValidateDoc(xmlSchematronValidCtxtPtr ctxt, xmlDocPtr instance) if (xmlPatternMatch(rule->pattern, cur) == 1) { test = rule->tests; while (test != NULL) { - xmlSchematronRunTest(ctxt, test, instance, cur); + xmlSchematronRunTest(ctxt, test, instance, cur, pattern); test = test->next; } } diff --git a/testModule.c b/testModule.c index fecc852..8293c45 100644 --- a/testModule.c +++ b/testModule.c @@ -29,6 +29,15 @@ #define MODULE_PATH ".libs" #endif +/* Used for SCO Openserver*/ +#ifndef PATH_MAX +#ifdef _POSIX_PATH_MAX +#define PATH_MAX _POSIX_PATH_MAX +#else +#define PATH_MAX 4096 +#endif +#endif + typedef int (*hello_world_t)(void); int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) { diff --git a/testRegexp.c b/testRegexp.c index d5228b3..626536e 100644 --- a/testRegexp.c +++ b/testRegexp.c @@ -290,6 +290,9 @@ int main(int argc, char **argv) { if (argv[i][0] != '-') continue; + if (!strcmp(argv[i], "--")) + break; + if ((!strcmp(argv[i], "-debug")) || (!strcmp(argv[i], "--debug"))) { debug++; } else if ((!strcmp(argv[i], "-repeat")) || @@ -322,10 +325,15 @@ int main(int argc, char **argv) { #endif testRegexpFile(filename); } else { + int data = 0; #ifdef LIBXML_EXPR_ENABLED + if (use_exp) { for (i = 1; i < argc ; i++) { - if ((argv[i][0] != '-') || (strcmp(argv[i], "-") == 0)) { + if (strcmp(argv[i], "--") == 0) + data = 1; + else if ((argv[i][0] != '-') || (strcmp(argv[i], "-") == 0) || + (data == 1)) { if (pattern == NULL) { pattern = argv[i]; printf("Testing expr %s:\n", pattern); @@ -342,13 +350,18 @@ int main(int argc, char **argv) { } } } - if (expr != NULL) + if (expr != NULL) { xmlExpFree(ctxt, expr); + expr = NULL; + } } else #endif { for (i = 1; i < argc ; i++) { - if ((argv[i][0] != '-') || (strcmp(argv[i], "-") == 0)) { + if (strcmp(argv[i], "--") == 0) + data = 1; + else if ((argv[i][0] != '-') || (strcmp(argv[i], "-") == 0) || + (data == 1)) { if (pattern == NULL) { pattern = argv[i]; printf("Testing %s:\n", pattern); diff --git a/testapi.c b/testapi.c index af71ac2..8a50e88 100644 --- a/testapi.c +++ b/testapi.c @@ -18023,6 +18023,16 @@ static void des_xmlSchematronValidCtxtPtr(int no ATTRIBUTE_UNUSED, xmlSchematron #endif +static int +test_xmlSchematronSetValidStructuredErrors(void) { + int test_ret = 0; + + + /* missing type support */ + return(test_ret); +} + + static int test_xmlSchematronValidateDoc(void) { int test_ret = 0; @@ -18067,12 +18077,13 @@ static int test_schematron(void) { int test_ret = 0; - if (quiet == 0) printf("Testing schematron : 1 of 9 functions ...\n"); + if (quiet == 0) printf("Testing schematron : 1 of 10 functions ...\n"); test_ret += test_xmlSchematronNewDocParserCtxt(); test_ret += test_xmlSchematronNewMemParserCtxt(); test_ret += test_xmlSchematronNewParserCtxt(); test_ret += test_xmlSchematronNewValidCtxt(); test_ret += test_xmlSchematronParse(); + test_ret += test_xmlSchematronSetValidStructuredErrors(); test_ret += test_xmlSchematronValidateDoc(); if (test_ret != 0) diff --git a/threads.c b/threads.c index d5a177d..6481b40 100644 --- a/threads.c +++ b/threads.c @@ -101,8 +101,8 @@ struct _xmlMutex { #elif defined HAVE_WIN32_THREADS HANDLE mutex; #elif defined HAVE_BEOS_THREADS - sem_id sem; - thread_id tid; + sem_id sem; + thread_id tid; #else int empty; #endif @@ -114,21 +114,22 @@ struct _xmlMutex { struct _xmlRMutex { #ifdef HAVE_PTHREAD_H pthread_mutex_t lock; - unsigned int held; - unsigned int waiters; - pthread_t tid; - pthread_cond_t cv; + unsigned int held; + unsigned int waiters; + pthread_t tid; + pthread_cond_t cv; #elif defined HAVE_WIN32_THREADS CRITICAL_SECTION cs; unsigned int count; #elif defined HAVE_BEOS_THREADS - xmlMutexPtr lock; - thread_id tid; - int32 count; + xmlMutexPtr lock; + thread_id tid; + int32 count; #else int empty; #endif }; + /* * This module still has some internal static data. * - xmlLibraryLock a global lock @@ -136,8 +137,8 @@ struct _xmlRMutex { */ #ifdef HAVE_PTHREAD_H -static pthread_key_t globalkey; -static pthread_t mainthread; +static pthread_key_t globalkey; +static pthread_t mainthread; static pthread_once_t once_control = PTHREAD_ONCE_INIT; static pthread_mutex_t global_init_lock = PTHREAD_MUTEX_INITIALIZER; #elif defined HAVE_WIN32_THREADS @@ -148,12 +149,12 @@ static __declspec(thread) int tlstate_inited = 0; static DWORD globalkey = TLS_OUT_OF_INDEXES; #endif /* HAVE_COMPILER_TLS */ static DWORD mainthread; -static struct -{ +static struct { DWORD done; DWORD control; -} run_once = { 0, 0 }; +} run_once = { 0, 0}; static volatile LPCRITICAL_SECTION global_init_lock = NULL; + /* endif HAVE_WIN32_THREADS */ #elif defined HAVE_BEOS_THREADS int32 globalkey = 0; @@ -163,7 +164,8 @@ static int32 global_init_lock = -1; static vint32 global_init_count = 0; #endif -static xmlRMutexPtr xmlLibraryLock = NULL; +static xmlRMutexPtr xmlLibraryLock = NULL; + #ifdef LIBXML_THREAD_ENABLED static void xmlOnceInit(void); #endif @@ -185,15 +187,15 @@ xmlNewMutex(void) return (NULL); #ifdef HAVE_PTHREAD_H if (libxml_is_threaded != 0) - pthread_mutex_init(&tok->lock, NULL); + pthread_mutex_init(&tok->lock, NULL); #elif defined HAVE_WIN32_THREADS tok->mutex = CreateMutex(NULL, FALSE, NULL); #elif defined HAVE_BEOS_THREADS - if ((tok->sem = create_sem(1, "xmlMutex")) < B_OK) { - free(tok); - return NULL; - } - tok->tid = -1; + if ((tok->sem = create_sem(1, "xmlMutex")) < B_OK) { + free(tok); + return NULL; + } + tok->tid = -1; #endif return (tok); } @@ -208,15 +210,16 @@ xmlNewMutex(void) void xmlFreeMutex(xmlMutexPtr tok) { - if (tok == NULL) return; + if (tok == NULL) + return; #ifdef HAVE_PTHREAD_H if (libxml_is_threaded != 0) - pthread_mutex_destroy(&tok->lock); + pthread_mutex_destroy(&tok->lock); #elif defined HAVE_WIN32_THREADS CloseHandle(tok->mutex); #elif defined HAVE_BEOS_THREADS - delete_sem(tok->sem); + delete_sem(tok->sem); #endif free(tok); } @@ -234,17 +237,18 @@ xmlMutexLock(xmlMutexPtr tok) return; #ifdef HAVE_PTHREAD_H if (libxml_is_threaded != 0) - pthread_mutex_lock(&tok->lock); + pthread_mutex_lock(&tok->lock); #elif defined HAVE_WIN32_THREADS WaitForSingleObject(tok->mutex, INFINITE); #elif defined HAVE_BEOS_THREADS - if (acquire_sem(tok->sem) != B_NO_ERROR) { + if (acquire_sem(tok->sem) != B_NO_ERROR) { #ifdef DEBUG_THREADS - xmlGenericError(xmlGenericErrorContext, "xmlMutexLock():BeOS:Couldn't aquire semaphore\n"); - exit(); + xmlGenericError(xmlGenericErrorContext, + "xmlMutexLock():BeOS:Couldn't aquire semaphore\n"); + exit(); #endif - } - tok->tid = find_thread(NULL); + } + tok->tid = find_thread(NULL); #endif } @@ -262,14 +266,14 @@ xmlMutexUnlock(xmlMutexPtr tok) return; #ifdef HAVE_PTHREAD_H if (libxml_is_threaded != 0) - pthread_mutex_unlock(&tok->lock); + pthread_mutex_unlock(&tok->lock); #elif defined HAVE_WIN32_THREADS ReleaseMutex(tok->mutex); #elif defined HAVE_BEOS_THREADS - if (tok->tid == find_thread(NULL)) { - tok->tid = -1; - release_sem(tok->sem); - } + if (tok->tid == find_thread(NULL)) { + tok->tid = -1; + release_sem(tok->sem); + } #endif } @@ -292,20 +296,20 @@ xmlNewRMutex(void) return (NULL); #ifdef HAVE_PTHREAD_H if (libxml_is_threaded != 0) { - pthread_mutex_init(&tok->lock, NULL); - tok->held = 0; - tok->waiters = 0; - pthread_cond_init(&tok->cv, NULL); + pthread_mutex_init(&tok->lock, NULL); + tok->held = 0; + tok->waiters = 0; + pthread_cond_init(&tok->cv, NULL); } #elif defined HAVE_WIN32_THREADS InitializeCriticalSection(&tok->cs); tok->count = 0; #elif defined HAVE_BEOS_THREADS - if ((tok->lock = xmlNewMutex()) == NULL) { - free(tok); - return NULL; - } - tok->count = 0; + if ((tok->lock = xmlNewMutex()) == NULL) { + free(tok); + return NULL; + } + tok->count = 0; #endif return (tok); } @@ -324,13 +328,13 @@ xmlFreeRMutex(xmlRMutexPtr tok ATTRIBUTE_UNUSED) return; #ifdef HAVE_PTHREAD_H if (libxml_is_threaded != 0) { - pthread_mutex_destroy(&tok->lock); - pthread_cond_destroy(&tok->cv); + pthread_mutex_destroy(&tok->lock); + pthread_cond_destroy(&tok->cv); } #elif defined HAVE_WIN32_THREADS DeleteCriticalSection(&tok->cs); #elif defined HAVE_BEOS_THREADS - xmlFreeMutex(tok->lock); + xmlFreeMutex(tok->lock); #endif free(tok); } @@ -370,13 +374,13 @@ xmlRMutexLock(xmlRMutexPtr tok) EnterCriticalSection(&tok->cs); ++tok->count; #elif defined HAVE_BEOS_THREADS - if (tok->lock->tid == find_thread(NULL)) { - tok->count++; - return; - } else { - xmlMutexLock(tok->lock); - tok->count = 1; - } + if (tok->lock->tid == find_thread(NULL)) { + tok->count++; + return; + } else { + xmlMutexLock(tok->lock); + tok->count = 1; + } #endif } @@ -394,7 +398,7 @@ xmlRMutexUnlock(xmlRMutexPtr tok ATTRIBUTE_UNUSED) #ifdef HAVE_PTHREAD_H if (libxml_is_threaded == 0) return; - + pthread_mutex_lock(&tok->lock); tok->held--; if (tok->held == 0) { @@ -404,16 +408,16 @@ xmlRMutexUnlock(xmlRMutexPtr tok ATTRIBUTE_UNUSED) } pthread_mutex_unlock(&tok->lock); #elif defined HAVE_WIN32_THREADS - if (!--tok->count) - LeaveCriticalSection(&tok->cs); + if (!--tok->count) + LeaveCriticalSection(&tok->cs); #elif defined HAVE_BEOS_THREADS - if (tok->lock->tid == find_thread(NULL)) { - tok->count--; - if (tok->count == 0) { - xmlMutexUnlock(tok->lock); - } - return; - } + if (tok->lock->tid == find_thread(NULL)) { + tok->count--; + if (tok->count == 0) { + xmlMutexUnlock(tok->lock); + } + return; + } #endif } @@ -435,23 +439,29 @@ __xmlGlobalInitMutexLock(void) /* Create a new critical section */ if (global_init_lock == NULL) { - cs = malloc(sizeof(CRITICAL_SECTION)); - InitializeCriticalSection(cs); + cs = malloc(sizeof(CRITICAL_SECTION)); + if (cs == NULL) { + xmlGenericError(xmlGenericErrorContext, + "xmlGlobalInitMutexLock: out of memory\n"); + return; + } + InitializeCriticalSection(cs); - /* Swap it into the global_init_lock */ + /* Swap it into the global_init_lock */ #ifdef InterlockedCompareExchangePointer - InterlockedCompareExchangePointer(&global_init_lock, cs, NULL); -#else /* Use older void* version */ - InterlockedCompareExchange((void **)&global_init_lock, (void *)cs, NULL); + InterlockedCompareExchangePointer(&global_init_lock, cs, NULL); +#else /* Use older void* version */ + InterlockedCompareExchange((void **) &global_init_lock, + (void *) cs, NULL); #endif /* InterlockedCompareExchangePointer */ - /* If another thread successfully recorded its critical - * section in the global_init_lock then discard the one - * allocated by this thread. */ - if (global_init_lock != cs) { - DeleteCriticalSection(cs); - free(cs); - } + /* If another thread successfully recorded its critical + * section in the global_init_lock then discard the one + * allocated by this thread. */ + if (global_init_lock != cs) { + DeleteCriticalSection(cs); + free(cs); + } } /* Lock the chosen critical section */ @@ -463,25 +473,26 @@ __xmlGlobalInitMutexLock(void) sem = create_sem(1, "xmlGlobalinitMutex"); while (global_init_lock == -1) { - if (atomic_add(&global_init_count, 1) == 0) { - global_init_lock = sem; - } else { - snooze(1); - atomic_add(&global_init_count, -1); - } + if (atomic_add(&global_init_count, 1) == 0) { + global_init_lock = sem; + } else { + snooze(1); + atomic_add(&global_init_count, -1); + } } /* If another thread successfully recorded its critical * section in the global_init_lock then discard the one * allocated by this thread. */ if (global_init_lock != sem) - delete_sem(sem); + delete_sem(sem); /* Acquire the chosen semaphore */ if (acquire_sem(global_init_lock) != B_NO_ERROR) { #ifdef DEBUG_THREADS - xmlGenericError(xmlGenericErrorContext, "xmlGlobalInitMutexLock():BeOS:Couldn't acquire semaphore\n"); - exit(); + xmlGenericError(xmlGenericErrorContext, + "xmlGlobalInitMutexLock():BeOS:Couldn't acquire semaphore\n"); + exit(); #endif } #endif @@ -493,7 +504,9 @@ __xmlGlobalInitMutexUnlock(void) #ifdef HAVE_PTHREAD_H pthread_mutex_unlock(&global_init_lock); #elif defined HAVE_WIN32_THREADS - LeaveCriticalSection(global_init_lock); + if (global_init_lock != NULL) { + LeaveCriticalSection(global_init_lock); + } #elif defined HAVE_BEOS_THREADS release_sem(global_init_lock); #endif @@ -505,14 +518,14 @@ __xmlGlobalInitMutexUnlock(void) * Makes sure that the global initialization mutex is destroyed before * application termination. */ -void __xmlGlobalInitMutexDestroy(void) +void +__xmlGlobalInitMutexDestroy(void) { #if defined HAVE_WIN32_THREADS - if (global_init_lock != NULL) - { - DeleteCriticalSection(global_init_lock); - free(global_init_lock); - global_init_lock = NULL; + if (global_init_lock != NULL) { + DeleteCriticalSection(global_init_lock); + free(global_init_lock); + global_init_lock = NULL; } #endif } @@ -527,6 +540,7 @@ void __xmlGlobalInitMutexDestroy(void) #ifdef xmlLastError #undef xmlLastError #endif + /** * xmlFreeGlobalState: * @state: a thread global state @@ -557,10 +571,13 @@ static xmlGlobalStatePtr xmlNewGlobalState(void) { xmlGlobalState *gs; - + gs = malloc(sizeof(xmlGlobalState)); - if (gs == NULL) - return(NULL); + if (gs == NULL) { + xmlGenericError(xmlGenericErrorContext, + "xmlGetGlobalState: out of memory\n"); + return (NULL); + } memset(gs, 0, sizeof(xmlGlobalState)); xmlInitializeGlobalState(gs); @@ -572,15 +589,16 @@ xmlNewGlobalState(void) #ifdef HAVE_WIN32_THREADS #if !defined(HAVE_COMPILER_TLS) #if defined(LIBXML_STATIC) && !defined(LIBXML_STATIC_FOR_DLL) -typedef struct _xmlGlobalStateCleanupHelperParams -{ +typedef struct _xmlGlobalStateCleanupHelperParams { HANDLE thread; void *memory; } xmlGlobalStateCleanupHelperParams; -static void XMLCDECL xmlGlobalStateCleanupHelper (void *p) +static void XMLCDECL +xmlGlobalStateCleanupHelper(void *p) { - xmlGlobalStateCleanupHelperParams *params = (xmlGlobalStateCleanupHelperParams *) p; + xmlGlobalStateCleanupHelperParams *params = + (xmlGlobalStateCleanupHelperParams *) p; WaitForSingleObject(params->thread, INFINITE); CloseHandle(params->thread); xmlFreeGlobalState(params->memory); @@ -589,14 +607,13 @@ static void XMLCDECL xmlGlobalStateCleanupHelper (void *p) } #else /* LIBXML_STATIC && !LIBXML_STATIC_FOR_DLL */ -typedef struct _xmlGlobalStateCleanupHelperParams -{ +typedef struct _xmlGlobalStateCleanupHelperParams { void *memory; - struct _xmlGlobalStateCleanupHelperParams * prev; - struct _xmlGlobalStateCleanupHelperParams * next; + struct _xmlGlobalStateCleanupHelperParams *prev; + struct _xmlGlobalStateCleanupHelperParams *next; } xmlGlobalStateCleanupHelperParams; -static xmlGlobalStateCleanupHelperParams * cleanup_helpers_head = NULL; +static xmlGlobalStateCleanupHelperParams *cleanup_helpers_head = NULL; static CRITICAL_SECTION cleanup_helpers_cs; #endif /* LIBXMLSTATIC && !LIBXML_STATIC_FOR_DLL */ @@ -604,17 +621,20 @@ static CRITICAL_SECTION cleanup_helpers_cs; #endif /* HAVE_WIN32_THREADS */ #if defined HAVE_BEOS_THREADS + /** * xmlGlobalStateCleanup: * @data: unused parameter * * Used for Beos only */ -void xmlGlobalStateCleanup(void *data) +void +xmlGlobalStateCleanup(void *data) { - void *globalval = tls_get(globalkey); - if (globalval != NULL) - xmlFreeGlobalState(globalval); + void *globalval = tls_get(globalkey); + + if (globalval != NULL) + xmlFreeGlobalState(globalval); } #endif @@ -632,13 +652,15 @@ xmlGetGlobalState(void) xmlGlobalState *globalval; if (libxml_is_threaded == 0) - return(NULL); + return (NULL); pthread_once(&once_control, xmlOnceInit); if ((globalval = (xmlGlobalState *) - pthread_getspecific(globalkey)) == NULL) { + pthread_getspecific(globalkey)) == NULL) { xmlGlobalState *tsd = xmlNewGlobalState(); + if (tsd == NULL) + return(NULL); pthread_setspecific(globalkey, tsd); return (tsd); @@ -647,43 +669,53 @@ xmlGetGlobalState(void) #elif defined HAVE_WIN32_THREADS #if defined(HAVE_COMPILER_TLS) if (!tlstate_inited) { - tlstate_inited = 1; - xmlInitializeGlobalState(&tlstate); + tlstate_inited = 1; + xmlInitializeGlobalState(&tlstate); } return &tlstate; #else /* HAVE_COMPILER_TLS */ xmlGlobalState *globalval; - xmlGlobalStateCleanupHelperParams * p; + xmlGlobalStateCleanupHelperParams *p; xmlOnceInit(); #if defined(LIBXML_STATIC) && !defined(LIBXML_STATIC_FOR_DLL) - globalval = (xmlGlobalState *)TlsGetValue(globalkey); + globalval = (xmlGlobalState *) TlsGetValue(globalkey); #else - p = (xmlGlobalStateCleanupHelperParams*)TlsGetValue(globalkey); - globalval = (xmlGlobalState *)(p ? p->memory : NULL); + p = (xmlGlobalStateCleanupHelperParams *) TlsGetValue(globalkey); + globalval = (xmlGlobalState *) (p ? p->memory : NULL); #endif if (globalval == NULL) { - xmlGlobalState *tsd = xmlNewGlobalState(); - p = (xmlGlobalStateCleanupHelperParams *) malloc(sizeof(xmlGlobalStateCleanupHelperParams)); - p->memory = tsd; + xmlGlobalState *tsd = xmlNewGlobalState(); + + if (tsd == NULL) + return(NULL); + p = (xmlGlobalStateCleanupHelperParams *) + malloc(sizeof(xmlGlobalStateCleanupHelperParams)); + if (p == NULL) { + xmlGenericError(xmlGenericErrorContext, + "xmlGetGlobalState: out of memory\n"); + return(NULL); + } + p->memory = tsd; #if defined(LIBXML_STATIC) && !defined(LIBXML_STATIC_FOR_DLL) - DuplicateHandle(GetCurrentProcess(), GetCurrentThread(), - GetCurrentProcess(), &p->thread, 0, TRUE, DUPLICATE_SAME_ACCESS); - TlsSetValue(globalkey, tsd); - _beginthread(xmlGlobalStateCleanupHelper, 0, p); + DuplicateHandle(GetCurrentProcess(), GetCurrentThread(), + GetCurrentProcess(), &p->thread, 0, TRUE, + DUPLICATE_SAME_ACCESS); + TlsSetValue(globalkey, tsd); + _beginthread(xmlGlobalStateCleanupHelper, 0, p); #else - EnterCriticalSection(&cleanup_helpers_cs); + EnterCriticalSection(&cleanup_helpers_cs); if (cleanup_helpers_head != NULL) { cleanup_helpers_head->prev = p; } - p->next = cleanup_helpers_head; - p->prev = NULL; - cleanup_helpers_head = p; - TlsSetValue(globalkey, p); - LeaveCriticalSection(&cleanup_helpers_cs); + p->next = cleanup_helpers_head; + p->prev = NULL; + cleanup_helpers_head = p; + TlsSetValue(globalkey, p); + LeaveCriticalSection(&cleanup_helpers_cs); #endif - return (tsd); + return (tsd); } return (globalval); #endif /* HAVE_COMPILER_TLS */ @@ -692,9 +724,10 @@ xmlGetGlobalState(void) xmlOnceInit(); - if ((globalval = (xmlGlobalState *) - tls_get(globalkey)) == NULL) { + if ((globalval = (xmlGlobalState *) tls_get(globalkey)) == NULL) { xmlGlobalState *tsd = xmlNewGlobalState(); + if (tsd == NULL) + return (NULL); tls_set(globalkey, tsd); on_exit_thread(xmlGlobalStateCleanup, NULL); @@ -702,7 +735,7 @@ xmlGetGlobalState(void) } return (globalval); #else - return(NULL); + return (NULL); #endif } @@ -724,14 +757,14 @@ xmlGetThreadId(void) { #ifdef HAVE_PTHREAD_H if (libxml_is_threaded == 0) - return(0); - return((int) pthread_self()); + return (0); + return ((int) pthread_self()); #elif defined HAVE_WIN32_THREADS return GetCurrentThreadId(); #elif defined HAVE_BEOS_THREADS - return find_thread(NULL); + return find_thread(NULL); #else - return((int) 0); + return ((int) 0); #endif } @@ -749,25 +782,25 @@ xmlIsMainThread(void) if (libxml_is_threaded == -1) xmlInitThreads(); if (libxml_is_threaded == 0) - return(1); + return (1); pthread_once(&once_control, xmlOnceInit); #elif defined HAVE_WIN32_THREADS - xmlOnceInit (); + xmlOnceInit(); #elif defined HAVE_BEOS_THREADS xmlOnceInit(); #endif - + #ifdef DEBUG_THREADS xmlGenericError(xmlGenericErrorContext, "xmlIsMainThread()\n"); #endif #ifdef HAVE_PTHREAD_H - return(mainthread == pthread_self()); + return (mainthread == pthread_self()); #elif defined HAVE_WIN32_THREADS - return(mainthread == GetCurrentThreadId ()); + return (mainthread == GetCurrentThreadId()); #elif defined HAVE_BEOS_THREADS - return(mainthread == find_thread(NULL)); + return (mainthread == find_thread(NULL)); #else - return(1); + return (1); #endif } @@ -819,24 +852,25 @@ xmlInitThreads(void) #ifdef HAVE_PTHREAD_H if (libxml_is_threaded == -1) { if ((pthread_once != NULL) && - (pthread_getspecific != NULL) && - (pthread_setspecific != NULL) && - (pthread_key_create != NULL) && - (pthread_mutex_init != NULL) && - (pthread_mutex_destroy != NULL) && - (pthread_mutex_lock != NULL) && - (pthread_mutex_unlock != NULL) && - (pthread_cond_init != NULL) && - (pthread_equal != NULL) && - (pthread_self != NULL) && - (pthread_key_create != NULL) && - (pthread_cond_signal != NULL)) { - libxml_is_threaded = 1; + (pthread_getspecific != NULL) && + (pthread_setspecific != NULL) && + (pthread_key_create != NULL) && + (pthread_mutex_init != NULL) && + (pthread_mutex_destroy != NULL) && + (pthread_mutex_lock != NULL) && + (pthread_mutex_unlock != NULL) && + (pthread_cond_init != NULL) && + (pthread_equal != NULL) && + (pthread_self != NULL) && + (pthread_cond_signal != NULL)) { + libxml_is_threaded = 1; + /* fprintf(stderr, "Running multithreaded\n"); */ - } else { + } else { + /* fprintf(stderr, "Running without multithread\n"); */ - libxml_is_threaded = 0; - } + libxml_is_threaded = 0; + } } #endif } @@ -855,25 +889,28 @@ xmlCleanupThreads(void) #endif #if defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL)) if (globalkey != TLS_OUT_OF_INDEXES) { - xmlGlobalStateCleanupHelperParams * p; - EnterCriticalSection(&cleanup_helpers_cs); - p = cleanup_helpers_head; - while (p != NULL) { - xmlGlobalStateCleanupHelperParams * temp = p; - p = p->next; - xmlFreeGlobalState(temp->memory); - free(temp); - } - cleanup_helpers_head = 0; - LeaveCriticalSection(&cleanup_helpers_cs); - TlsFree(globalkey); - globalkey = TLS_OUT_OF_INDEXES; + xmlGlobalStateCleanupHelperParams *p; + + EnterCriticalSection(&cleanup_helpers_cs); + p = cleanup_helpers_head; + while (p != NULL) { + xmlGlobalStateCleanupHelperParams *temp = p; + + p = p->next; + xmlFreeGlobalState(temp->memory); + free(temp); + } + cleanup_helpers_head = 0; + LeaveCriticalSection(&cleanup_helpers_cs); + TlsFree(globalkey); + globalkey = TLS_OUT_OF_INDEXES; } DeleteCriticalSection(&cleanup_helpers_cs); #endif } #ifdef LIBXML_THREAD_ENABLED + /** * xmlOnceInit * @@ -884,7 +921,8 @@ xmlCleanupThreads(void) * details. */ static void -xmlOnceInit(void) { +xmlOnceInit(void) +{ #ifdef HAVE_PTHREAD_H (void) pthread_key_create(&globalkey, xmlFreeGlobalState); mainthread = pthread_self(); @@ -892,15 +930,13 @@ xmlOnceInit(void) { #if defined(HAVE_WIN32_THREADS) if (!run_once.done) { - if (InterlockedIncrement(&run_once.control) == 1) - { + if (InterlockedIncrement(&run_once.control) == 1) { #if !defined(HAVE_COMPILER_TLS) globalkey = TlsAlloc(); #endif mainthread = GetCurrentThreadId(); run_once.done = 1; - } - else { + } else { /* Another thread is working; give up our slice and * wait until they're done. */ while (!run_once.done) @@ -910,12 +946,12 @@ xmlOnceInit(void) { #endif #ifdef HAVE_BEOS_THREADS - if (atomic_add(&run_once_init, 1) == 0) { - globalkey = tls_allocate(); - tls_set(globalkey, NULL); - mainthread = find_thread(NULL); - } else - atomic_add(&run_once_init, -1); + if (atomic_add(&run_once_init, 1) == 0) { + globalkey = tls_allocate(); + tls_set(globalkey, NULL); + mainthread = find_thread(NULL); + } else + atomic_add(&run_once_init, -1); #endif } #endif @@ -933,36 +969,38 @@ xmlOnceInit(void) { */ #if defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL)) #if defined(LIBXML_STATIC_FOR_DLL) -BOOL XMLCALL xmlDllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +BOOL XMLCALL +xmlDllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) #else -BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +BOOL WINAPI +DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) #endif { - switch(fdwReason) { - case DLL_THREAD_DETACH: - if (globalkey != TLS_OUT_OF_INDEXES) { - xmlGlobalState *globalval = NULL; - xmlGlobalStateCleanupHelperParams * p = - (xmlGlobalStateCleanupHelperParams*)TlsGetValue(globalkey); - globalval = (xmlGlobalState *)(p ? p->memory : NULL); - if (globalval) { - xmlFreeGlobalState(globalval); - TlsSetValue(globalkey,NULL); + switch (fdwReason) { + case DLL_THREAD_DETACH: + if (globalkey != TLS_OUT_OF_INDEXES) { + xmlGlobalState *globalval = NULL; + xmlGlobalStateCleanupHelperParams *p = + (xmlGlobalStateCleanupHelperParams *) + TlsGetValue(globalkey); + globalval = (xmlGlobalState *) (p ? p->memory : NULL); + if (globalval) { + xmlFreeGlobalState(globalval); + TlsSetValue(globalkey, NULL); + } + if (p) { + EnterCriticalSection(&cleanup_helpers_cs); + if (p == cleanup_helpers_head) + cleanup_helpers_head = p->next; + else + p->prev->next = p->next; + if (p->next != NULL) + p->next->prev = p->prev; + LeaveCriticalSection(&cleanup_helpers_cs); + free(p); + } } - if (p) - { - EnterCriticalSection(&cleanup_helpers_cs); - if (p == cleanup_helpers_head) - cleanup_helpers_head = p->next; - else - p->prev->next = p->next; - if (p->next != NULL) - p->next->prev = p->prev; - LeaveCriticalSection(&cleanup_helpers_cs); - free(p); - } - } - break; + break; } return TRUE; } diff --git a/tree.c b/tree.c index 432007e..763381b 100644 --- a/tree.c +++ b/tree.c @@ -92,6 +92,9 @@ xmlTreeErr(int code, xmlNodePtr node, const char *extra) case XML_TREE_UNTERMINATED_ENTITY: msg = "unterminated entity reference %15s\n"; break; + case XML_TREE_NOT_UTF8: + msg = "string is not in UTF-8\n"; + break; default: msg = "unexpected error number\n"; } @@ -1780,7 +1783,9 @@ xmlNewPropInternal(xmlNodePtr node, xmlNsPtr ns, xmlDocPtr doc = NULL; if ((node != NULL) && (node->type != XML_ELEMENT_NODE)) { - if (eatname == 1) + if ((eatname == 1) && + ((node->doc == NULL) || + (!(xmlDictOwns(node->doc->dict, name))))) xmlFree((xmlChar *) name); return (NULL); } @@ -1790,7 +1795,9 @@ xmlNewPropInternal(xmlNodePtr node, xmlNsPtr ns, */ cur = (xmlAttrPtr) xmlMalloc(sizeof(xmlAttr)); if (cur == NULL) { - if (eatname == 1) + if ((eatname == 1) && + ((node->doc == NULL) || + (!(xmlDictOwns(node->doc->dict, name))))) xmlFree((xmlChar *) name); xmlTreeErrMemory("building attribute"); return (NULL); @@ -1814,11 +1821,15 @@ xmlNewPropInternal(xmlNodePtr node, xmlNsPtr ns, cur->name = name; if (value != NULL) { - xmlChar *buffer; xmlNodePtr tmp; - buffer = xmlEncodeEntitiesReentrant(doc, value); - cur->children = xmlStringGetNodeList(doc, buffer); + if(!xmlCheckUTF8(value)) { + xmlTreeErr(XML_TREE_NOT_UTF8, (xmlNodePtr) doc, + NULL); + if (doc != NULL) + doc->encoding = xmlStrdup(BAD_CAST "ISO-8859-1"); + } + cur->children = xmlNewDocText(doc, value); cur->last = NULL; tmp = cur->children; while (tmp != NULL) { @@ -1827,7 +1838,6 @@ xmlNewPropInternal(xmlNodePtr node, xmlNsPtr ns, cur->last = tmp; tmp = tmp->next; } - xmlFree(buffer); } /* @@ -1927,7 +1937,7 @@ xmlNewNsPropEatName(xmlNodePtr node, xmlNsPtr ns, xmlChar *name, return(NULL); } - return xmlNewPropInternal(node, ns, name, value, 1); + return xmlNewPropInternal(node, ns, name, value, 1); } /** @@ -2210,8 +2220,8 @@ xmlNewNodeEatName(xmlNsPtr ns, xmlChar *name) { */ cur = (xmlNodePtr) xmlMalloc(sizeof(xmlNode)); if (cur == NULL) { - xmlFree(name); xmlTreeErrMemory("building node"); + /* we can't check here that name comes from the doc dictionnary */ return(NULL); } memset(cur, 0, sizeof(xmlNode)); @@ -2290,6 +2300,11 @@ xmlNewDocNodeEatName(xmlDocPtr doc, xmlNsPtr ns, cur->children = xmlStringGetNodeList(doc, content); UPDATE_LAST_CHILD_AND_PARENT(cur) } + } else { + /* if name don't come from the doc dictionnary free it here */ + if ((name != NULL) && (doc != NULL) && + (!(xmlDictOwns(doc->dict, name)))) + xmlFree(name); } return(cur); } @@ -6466,11 +6481,15 @@ xmlSetNsProp(xmlNodePtr node, xmlNsPtr ns, const xmlChar *name, prop->last = NULL; prop->ns = ns; if (value != NULL) { - xmlChar *buffer; xmlNodePtr tmp; - buffer = xmlEncodeEntitiesReentrant(node->doc, value); - prop->children = xmlStringGetNodeList(node->doc, buffer); + if(!xmlCheckUTF8(value)) { + xmlTreeErr(XML_TREE_NOT_UTF8, (xmlNodePtr) node->doc, + NULL); + if (node->doc != NULL) + node->doc->encoding = xmlStrdup(BAD_CAST "ISO-8859-1"); + } + prop->children = xmlNewDocText(node->doc, value); prop->last = NULL; tmp = prop->children; while (tmp != NULL) { @@ -6479,7 +6498,6 @@ xmlSetNsProp(xmlNodePtr node, xmlNsPtr ns, const xmlChar *name, prop->last = tmp; tmp = tmp->next; } - xmlFree(buffer); } if (prop->atype == XML_ATTRIBUTE_ID) xmlAddID(NULL, node->doc, value, prop); diff --git a/uri.c b/uri.c index 34841af..fafd112 100644 --- a/uri.c +++ b/uri.c @@ -421,6 +421,30 @@ xmlSaveUri(xmlURIPtr uri) { } if (uri->path != NULL) { p = uri->path; + /* + * the colon in file:///d: should not be escaped or + * Windows accesses fail later. + */ + if ((uri->scheme != NULL) && + (p[0] == '/') && + (((p[1] >= 'a') && (p[1] <= 'z')) || + ((p[1] >= 'A') && (p[1] <= 'Z'))) && + (p[2] == ':') && + (xmlStrEqual(uri->scheme, BAD_CAST "file"))) { + if (len + 3 >= max) { + max *= 2; + ret = (xmlChar *) xmlRealloc(ret, + (max + 1) * sizeof(xmlChar)); + if (ret == NULL) { + xmlGenericError(xmlGenericErrorContext, + "xmlSaveUri: out of memory\n"); + return(NULL); + } + } + ret[len++] = *p++; + ret[len++] = *p++; + ret[len++] = *p++; + } while (*p != 0) { if (len + 3 >= max) { max *= 2; @@ -2418,6 +2442,11 @@ xmlCanonicPath(const xmlChar *path) if (path == NULL) return(NULL); + + /* sanitize filename starting with // so it can be used as URI */ + if ((path[0] == '/') && (path[1] == '/') && (path[2] != '/')) + path++; + if ((uri = xmlParseURI((const char *) path)) != NULL) { xmlFreeURI(uri); return xmlStrdup(path); diff --git a/vms/build_libxml.com b/vms/build_libxml.com index ed5107b..816e64d 100755 --- a/vms/build_libxml.com +++ b/vms/build_libxml.com @@ -6,16 +6,20 @@ $! Arguments: $! $! "DEBUG" - build everything in debug $! -$! This procedure creates an object library XML_LIBDIR:LIBXML.OLB directory. +$! This procedure creates an object library XML_LIBDIR:LIBXML.OLB directory. $! After the library is built, you can link LIBXML routines into -$! your code with the command +$! your code with the command $! $! $ LINK your_modules,XML_LIBDIR:LIBXML.OLB/LIBRARY -$! +$! $! Change History $! -------------- $! Command file author : John A Fotheringham (jaf@jafsoft.com) -$! Update history : 13 October 2003 Craig Berry (craigberry@mac.com) +$! Update history : 19 March 2008 Tycho Hilhorst +$! - added module schematron.c (prevent xmllint errors) +$! - added /DEF and /INCLUDE options to cc_opts to tell +$! config.h is available, and where to find it +$! : 13 October 2003 Craig Berry (craigberry@mac.com) $! more new module additions $! : 25 April 2003 Craig Berry (craigberry@mac.com) $! added xmlreader.c and relaxng.c to source list @@ -27,7 +31,7 @@ $!- configuration ------------------------------------------------------------- $! $!- compile command. If p1="nowarn" suppress the expected warning types $! -$ cc_opts = "/NAMES=(SHORTENED)/FLOAT=IEEE/IEEE_MODE=DENORM_RESULTS" +$ cc_opts = "/DEF=HAVE_CONFIG_H/NAMES=(SHORTENED)/FLOAT=IEEE/IEEE_MODE=DENORM_RESULTS/INCLUDE=xml_srcdir" $! $ if p1.eqs."DEBUG" .or. p2.eqs."DEBUG" $ then @@ -50,6 +54,7 @@ $ sources = sources + " catalog.c globals.c threads.c c14n.c xmlstring.c" $ sources = sources + " xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c" $ sources = sources + " triostr.c trio.c xmlreader.c relaxng.c dict.c SAX2.c" $ sources = sources + " xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c" +$ sources = sources + " schematron.c" $! $!- list of main modules to compile and link. Compare this list to the $! definition of bin_PROGRAMS in MAKEFILE.IN @@ -98,8 +103,8 @@ $ endif $! $ copy/log config.vms xml_srcdir:config.h $! -$ if f$trnlnm("libxml").eqs."" -$ then +$ if f$trnlnm("libxml").eqs."" +$ then $ globfile = f$search("[-...]globals.h") $ if globfile.eqs."" $ then @@ -116,16 +121,16 @@ $!- set up error handling (such as it is) ------------------------------------- $! $ exit_status = 1 $ saved_default = f$environment("default") -$ on error then goto ERROR_OUT -$ on control_y then goto ERROR_OUT +$ on error then goto ERROR_OUT +$ on control_y then goto ERROR_OUT $! -$!- move to the source directory and create any necessary subdirs and the +$!- move to the source directory and create any necessary subdirs and the $! object library $! $ set default xml_srcdir $ if f$search("DEBUG.DIR").eqs."" then create/dir [.DEBUG] -$ if f$search("XML_LIBDIR:LIBXML.OLB").eqs."" -$ then +$ if f$search("XML_LIBDIR:LIBXML.OLB").eqs."" +$ then $ write sys$output "Creating new object library XML_LIBDIR:LIBXML.OLB" $ library/create XML_LIBDIR:LIBXML.OLB $ endif @@ -151,8 +156,8 @@ $ next_source = f$element (S_no," ",sources) $ if next_source.nes."" .and. next_source.nes." " $ then $! -$ on error then goto ERROR_OUT -$ on control_y then goto ERROR_OUT +$ on error then goto ERROR_OUT +$ on control_y then goto ERROR_OUT $ call build 'next_source' $ s_no = s_no + 1 $ goto source_loop @@ -164,7 +169,7 @@ $! $! these programs are built as ordinary modules into XML_LIBDIR:LIBXML.OLB. Here they $! are built a second time with /DEFINE=(STANDALONE) in which case a main() $! is also compiled into the module -$ +$ $ lib_command = "" $ link_command = "LINK" $! @@ -199,8 +204,8 @@ $ next_prog = f$element (p_no," ",all_progs) $ if next_prog.nes."" .and. next_prog.nes." " $ then $! -$ on error then goto ERROR_OUT -$ on control_y then goto ERROR_OUT +$ on error then goto ERROR_OUT +$ on control_y then goto ERROR_OUT $ call build 'next_prog'.c $ p_no = p_no + 1 $ goto prog_loop @@ -210,9 +215,9 @@ $! $!- Th-th-th-th-th-that's all folks! ------------------------------------------ $! $ goto exit_here ! move this line to avoid parts of this command file -$ exit_here: +$ exit_here: $! -$ exit +$ exit $ goto exit_out $! $! @@ -246,7 +251,7 @@ $! $ if lib_command.nes."" then lib_command 'object_file' $! $!- link module if command defined -$ if link_command.nes."" +$ if link_command.nes."" $ then $ opts = "" $ if debug then opts = "/DEBUG" diff --git a/win32/Makefile.msvc b/win32/Makefile.msvc index 9046ff3..2409905 100644 --- a/win32/Makefile.msvc +++ b/win32/Makefile.msvc @@ -66,7 +66,7 @@ LDFLAGS = /nologo /VERSION:$(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION) LDFLAGS = $(LDFLAGS) /LIBPATH:$(BINDIR) /LIBPATH:$(LIBPREFIX) LIBS = !if "$(WITH_FTP)" == "1" || "$(WITH_HTTP)" == "1" -LIBS = $(LIBS) wsock32.lib +LIBS = $(LIBS) wsock32.lib ws2_32.lib !endif !if "$(WITH_ICONV)" == "1" LIBS = $(LIBS) iconv.lib @@ -254,12 +254,12 @@ UTILS = $(UTILS) $(BINDIR)\testThreadsWin32.exe UTILS = $(UTILS) $(BINDIR)\testThreads.exe !endif -!if "$(VCMANIFEST)" == "1" -_VC_MANIFEST_EMBED_EXE= if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1 -_VC_MANIFEST_EMBED_DLL= if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2 -!else -_VC_MANIFEST_EMBED_EXE= -_VC_MANIFEST_EMBED_DLL= +!if "$(VCMANIFEST)" == "1" +_VC_MANIFEST_EMBED_EXE= if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1 +_VC_MANIFEST_EMBED_DLL= if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2 +!else +_VC_MANIFEST_EMBED_EXE= +_VC_MANIFEST_EMBED_DLL= !endif all : libxml libxmla libxmladll utils diff --git a/win32/Makefile.msvc.orig b/win32/Makefile.msvc.orig new file mode 100644 index 0000000..ec1950c --- /dev/null +++ b/win32/Makefile.msvc.orig @@ -0,0 +1,462 @@ +# Makefile for libxml2, specific for Windows, MSVC and NMAKE. +# +# Take a look at the beginning and modify the variables to suit your +# environment. Having done that, you can do a +# +# nmake [all] to build the libxml and the accompanying utilities. +# nmake clean to remove all compiler output files and return to a +# clean state. +# nmake rebuild to rebuild everything from scratch. This basically does +# a 'nmake clean' and then a 'nmake all'. +# nmake install to install the library and its header files. +# +# March 2002, Igor Zlatkovic + +# There should never be a need to modify anything below this line. +# ---------------------------------------------------------------- + +AUTOCONF = .\config.msvc +!include $(AUTOCONF) + +# Names of various input and output components. +XML_NAME = xml2 +XML_BASENAME = lib$(XML_NAME) +XML_SO = $(XML_BASENAME).dll +XML_IMP = $(XML_BASENAME).lib +XML_DEF = $(XML_BASENAME).def +XML_A = $(XML_BASENAME)_a.lib +XML_A_DLL = $(XML_BASENAME)_a_dll.lib + +# Place where we let the compiler put its output. +BINDIR = bin.msvc +XML_INTDIR = int.msvc +XML_INTDIR_A = int.a.msvc +XML_INTDIR_A_DLL = int.a.dll.msvc +UTILS_INTDIR = int.utils.msvc + +# The preprocessor and its options. +CPP = cl.exe /EP +CPPFLAGS = /nologo /I$(XML_SRCDIR)\include +!if "$(WITH_THREADS)" != "no" +CPPFLAGS = $(CPPFLAGS) /D "_REENTRANT" +!endif + +# The compiler and its options. +CC = cl.exe +CFLAGS = /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" /W1 $(CRUNTIME) +CFLAGS = $(CFLAGS) /I$(XML_SRCDIR) /I$(XML_SRCDIR)\include /I$(INCPREFIX) +!if "$(WITH_THREADS)" != "no" +CFLAGS = $(CFLAGS) /D "_REENTRANT" +!endif +!if "$(WITH_THREADS)" == "yes" || "$(WITH_THREADS)" == "ctls" +CFLAGS = $(CFLAGS) /D "HAVE_WIN32_THREADS" /D "HAVE_COMPILER_TLS" +!else if "$(WITH_THREADS)" == "native" +CFLAGS = $(CFLAGS) /D "HAVE_WIN32_THREADS" +!else if "$(WITH_THREADS)" == "posix" +CFLAGS = $(CFLAGS) /D "HAVE_PTHREAD_H" +!endif +!if "$(WITH_ZLIB)" == "1" +CFLAGS = $(CFLAGS) /D "HAVE_ZLIB_H" +!endif +CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE + +# The linker and its options. +LD = link.exe +LDFLAGS = /nologo /VERSION:$(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION) +LDFLAGS = $(LDFLAGS) /LIBPATH:$(BINDIR) /LIBPATH:$(LIBPREFIX) +LIBS = +!if "$(WITH_FTP)" == "1" || "$(WITH_HTTP)" == "1" +LIBS = $(LIBS) wsock32.lib ws2_32.lib +!endif +!if "$(WITH_ICONV)" == "1" +LIBS = $(LIBS) iconv.lib +!endif +!if "$(WITH_ZLIB)" == "1" +LIBS = $(LIBS) zdll.lib +!endif +!if "$(WITH_THREADS)" == "posix" +LIBS = $(LIBS) pthreadVC.lib +!endif +!if "$(WITH_MODULES)" == "1" +LIBS = $(LIBS) kernel32.lib +!endif + +# The archiver and its options. +AR = lib.exe +ARFLAGS = /nologo + +# Optimisation and debug symbols. +!if "$(DEBUG)" == "1" +CFLAGS = $(CFLAGS) /D "_DEBUG" /Od /Z7 +LDFLAGS = $(LDFLAGS) /DEBUG +!else +CFLAGS = $(CFLAGS) /D "NDEBUG" /O2 +LDFLAGS = $(LDFLAGS) /OPT:NOWIN98 +!endif + +# Libxml object files. +XML_OBJS = $(XML_INTDIR)\c14n.obj\ + $(XML_INTDIR)\catalog.obj\ + $(XML_INTDIR)\chvalid.obj\ + $(XML_INTDIR)\debugXML.obj\ + $(XML_INTDIR)\dict.obj\ + $(XML_INTDIR)\DOCBparser.obj\ + $(XML_INTDIR)\encoding.obj\ + $(XML_INTDIR)\entities.obj\ + $(XML_INTDIR)\error.obj\ + $(XML_INTDIR)\globals.obj\ + $(XML_INTDIR)\hash.obj\ + $(XML_INTDIR)\HTMLparser.obj\ + $(XML_INTDIR)\HTMLtree.obj\ + $(XML_INTDIR)\legacy.obj\ + $(XML_INTDIR)\list.obj\ + $(XML_INTDIR)\nanoftp.obj\ + $(XML_INTDIR)\nanohttp.obj\ + $(XML_INTDIR)\parser.obj\ + $(XML_INTDIR)\parserInternals.obj\ + $(XML_INTDIR)\pattern.obj\ + $(XML_INTDIR)\relaxng.obj\ + $(XML_INTDIR)\SAX2.obj\ + $(XML_INTDIR)\SAX.obj\ + $(XML_INTDIR)\schematron.obj\ + $(XML_INTDIR)\threads.obj\ + $(XML_INTDIR)\tree.obj\ + $(XML_INTDIR)\uri.obj\ + $(XML_INTDIR)\valid.obj\ + $(XML_INTDIR)\xinclude.obj\ + $(XML_INTDIR)\xlink.obj\ + $(XML_INTDIR)\xmlIO.obj\ + $(XML_INTDIR)\xmlmemory.obj\ + $(XML_INTDIR)\xmlreader.obj\ + $(XML_INTDIR)\xmlregexp.obj\ + $(XML_INTDIR)\xmlmodule.obj\ + $(XML_INTDIR)\xmlsave.obj\ + $(XML_INTDIR)\xmlschemas.obj\ + $(XML_INTDIR)\xmlschemastypes.obj\ + $(XML_INTDIR)\xmlunicode.obj\ + $(XML_INTDIR)\xmlwriter.obj\ + $(XML_INTDIR)\xpath.obj\ + $(XML_INTDIR)\xpointer.obj\ + $(XML_INTDIR)\xmlstring.obj + +# Static libxml object files. +XML_OBJS_A = $(XML_INTDIR_A)\c14n.obj\ + $(XML_INTDIR_A)\catalog.obj\ + $(XML_INTDIR_A)\chvalid.obj\ + $(XML_INTDIR_A)\debugXML.obj\ + $(XML_INTDIR_A)\dict.obj\ + $(XML_INTDIR_A)\DOCBparser.obj\ + $(XML_INTDIR_A)\encoding.obj\ + $(XML_INTDIR_A)\entities.obj\ + $(XML_INTDIR_A)\error.obj\ + $(XML_INTDIR_A)\globals.obj\ + $(XML_INTDIR_A)\hash.obj\ + $(XML_INTDIR_A)\HTMLparser.obj\ + $(XML_INTDIR_A)\HTMLtree.obj\ + $(XML_INTDIR_A)\legacy.obj\ + $(XML_INTDIR_A)\list.obj\ + $(XML_INTDIR_A)\nanoftp.obj\ + $(XML_INTDIR_A)\nanohttp.obj\ + $(XML_INTDIR_A)\parser.obj\ + $(XML_INTDIR_A)\parserInternals.obj\ + $(XML_INTDIR_A)\pattern.obj\ + $(XML_INTDIR_A)\relaxng.obj\ + $(XML_INTDIR_A)\SAX2.obj\ + $(XML_INTDIR_A)\SAX.obj\ + $(XML_INTDIR_A)\schematron.obj\ + $(XML_INTDIR_A)\threads.obj\ + $(XML_INTDIR_A)\tree.obj\ + $(XML_INTDIR_A)\uri.obj\ + $(XML_INTDIR_A)\valid.obj\ + $(XML_INTDIR_A)\xinclude.obj\ + $(XML_INTDIR_A)\xlink.obj\ + $(XML_INTDIR_A)\xmlIO.obj\ + $(XML_INTDIR_A)\xmlmemory.obj\ + $(XML_INTDIR_A)\xmlreader.obj\ + $(XML_INTDIR_A)\xmlregexp.obj\ + $(XML_INTDIR_A)\xmlmodule.obj\ + $(XML_INTDIR_A)\xmlsave.obj\ + $(XML_INTDIR_A)\xmlschemas.obj\ + $(XML_INTDIR_A)\xmlschemastypes.obj\ + $(XML_INTDIR_A)\xmlunicode.obj\ + $(XML_INTDIR_A)\xmlwriter.obj\ + $(XML_INTDIR_A)\xpath.obj\ + $(XML_INTDIR_A)\xpointer.obj\ + $(XML_INTDIR_A)\xmlstring.obj + +# Static libxml object files. +XML_OBJS_A_DLL = $(XML_INTDIR_A_DLL)\c14n.obj\ + $(XML_INTDIR_A_DLL)\catalog.obj\ + $(XML_INTDIR_A_DLL)\chvalid.obj\ + $(XML_INTDIR_A_DLL)\debugXML.obj\ + $(XML_INTDIR_A_DLL)\dict.obj\ + $(XML_INTDIR_A_DLL)\DOCBparser.obj\ + $(XML_INTDIR_A_DLL)\encoding.obj\ + $(XML_INTDIR_A_DLL)\entities.obj\ + $(XML_INTDIR_A_DLL)\error.obj\ + $(XML_INTDIR_A_DLL)\globals.obj\ + $(XML_INTDIR_A_DLL)\hash.obj\ + $(XML_INTDIR_A_DLL)\HTMLparser.obj\ + $(XML_INTDIR_A_DLL)\HTMLtree.obj\ + $(XML_INTDIR_A_DLL)\legacy.obj\ + $(XML_INTDIR_A_DLL)\list.obj\ + $(XML_INTDIR_A_DLL)\nanoftp.obj\ + $(XML_INTDIR_A_DLL)\nanohttp.obj\ + $(XML_INTDIR_A_DLL)\parser.obj\ + $(XML_INTDIR_A_DLL)\parserInternals.obj\ + $(XML_INTDIR_A_DLL)\pattern.obj\ + $(XML_INTDIR_A_DLL)\relaxng.obj\ + $(XML_INTDIR_A_DLL)\SAX2.obj\ + $(XML_INTDIR_A_DLL)\SAX.obj\ + $(XML_INTDIR_A_DLL)\schematron.obj\ + $(XML_INTDIR_A_DLL)\threads.obj\ + $(XML_INTDIR_A_DLL)\tree.obj\ + $(XML_INTDIR_A_DLL)\uri.obj\ + $(XML_INTDIR_A_DLL)\valid.obj\ + $(XML_INTDIR_A_DLL)\xinclude.obj\ + $(XML_INTDIR_A_DLL)\xlink.obj\ + $(XML_INTDIR_A_DLL)\xmlIO.obj\ + $(XML_INTDIR_A_DLL)\xmlmemory.obj\ + $(XML_INTDIR_A_DLL)\xmlreader.obj\ + $(XML_INTDIR_A_DLL)\xmlregexp.obj\ + $(XML_INTDIR_A_DLL)\xmlmodule.obj\ + $(XML_INTDIR_A_DLL)\xmlsave.obj\ + $(XML_INTDIR_A_DLL)\xmlschemas.obj\ + $(XML_INTDIR_A_DLL)\xmlschemastypes.obj\ + $(XML_INTDIR_A_DLL)\xmlunicode.obj\ + $(XML_INTDIR_A_DLL)\xmlwriter.obj\ + $(XML_INTDIR_A_DLL)\xpath.obj\ + $(XML_INTDIR_A_DLL)\xpointer.obj\ + $(XML_INTDIR_A_DLL)\xmlstring.obj + +# Xmllint and friends executables. +UTILS = $(BINDIR)\xmllint.exe\ + $(BINDIR)\xmlcatalog.exe\ + $(BINDIR)\testAutomata.exe\ + $(BINDIR)\testC14N.exe\ + $(BINDIR)\testDocbook.exe\ + $(BINDIR)\testHTML.exe\ + $(BINDIR)\testReader.exe\ + $(BINDIR)\testRelax.exe\ + $(BINDIR)\testRegexp.exe\ + $(BINDIR)\testModule.exe\ + $(BINDIR)\testSAX.exe\ + $(BINDIR)\testSchemas.exe\ + $(BINDIR)\testURI.exe\ + $(BINDIR)\testXPath.exe\ + $(BINDIR)\runtest.exe\ + $(BINDIR)\runsuite.exe\ + $(BINDIR)\testapi.exe + +!if "$(WITH_THREADS)" == "yes" || "$(WITH_THREADS)" == "ctls" || "$(WITH_THREADS)" == "native" +UTILS = $(UTILS) $(BINDIR)\testThreadsWin32.exe +!else if "$(WITH_THREADS)" == "posix" +UTILS = $(UTILS) $(BINDIR)\testThreads.exe +!endif + +!if "$(VCMANIFEST)" == "1" +_VC_MANIFEST_EMBED_EXE= if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1 +_VC_MANIFEST_EMBED_DLL= if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2 +!else +_VC_MANIFEST_EMBED_EXE= +_VC_MANIFEST_EMBED_DLL= +!endif + +all : libxml libxmla libxmladll utils + +libxml : $(BINDIR)\$(XML_SO) + +libxmla : $(BINDIR)\$(XML_A) + +libxmladll : $(BINDIR)\$(XML_A_DLL) + +utils : $(UTILS) + +clean : + if exist $(XML_INTDIR) rmdir /S /Q $(XML_INTDIR) + if exist $(XML_INTDIR_A) rmdir /S /Q $(XML_INTDIR_A) + if exist $(XML_INTDIR_A_DLL) rmdir /S /Q $(XML_INTDIR_A_DLL) + if exist $(UTILS_INTDIR) rmdir /S /Q $(UTILS_INTDIR) + if exist $(BINDIR) rmdir /S /Q $(BINDIR) + +distclean : clean + if exist config.* del config.* + if exist Makefile del Makefile + +rebuild : clean all + +install-libs : all + if not exist $(INCPREFIX)\libxml mkdir $(INCPREFIX)\libxml + if not exist $(BINPREFIX) mkdir $(BINPREFIX) + if not exist $(LIBPREFIX) mkdir $(LIBPREFIX) + if not exist $(SOPREFIX) mkdir $(SOPREFIX) + copy $(XML_SRCDIR)\include\libxml\*.h $(INCPREFIX)\libxml + copy $(BINDIR)\$(XML_SO) $(SOPREFIX) + copy $(BINDIR)\$(XML_A) $(LIBPREFIX) + copy $(BINDIR)\$(XML_A_DLL) $(LIBPREFIX) + copy $(BINDIR)\$(XML_IMP) $(LIBPREFIX) + +install : install-libs + copy $(BINDIR)\*.exe $(BINPREFIX) + -copy $(BINDIR)\*.pdb $(BINPREFIX) + +install-dist : install-libs + copy $(BINDIR)\xml*.exe $(BINPREFIX) + -copy $(BINDIR)\xml*.pdb $(BINPREFIX) + +# This is a target for me, to make a binary distribution. Not for the public use, +# keep your hands off :-) +BDVERSION = $(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION).$(LIBXML_MICRO_VERSION) +BDPREFIX = $(XML_BASENAME)-$(BDVERSION).win32 +bindist : all + $(MAKE) /nologo PREFIX=$(BDPREFIX) SOPREFIX=$(BDPREFIX)\bin install-dist + cscript //NoLogo configure.js genreadme $(XML_BASENAME) $(BDVERSION) $(BDPREFIX)\readme.txt + + +# Makes the output directory. +$(BINDIR) : + if not exist $(BINDIR) mkdir $(BINDIR) + + +# Makes the libxml intermediate directory. +$(XML_INTDIR) : + if not exist $(XML_INTDIR) mkdir $(XML_INTDIR) + +# Makes the static libxml intermediate directory. +$(XML_INTDIR_A) : + if not exist $(XML_INTDIR_A) mkdir $(XML_INTDIR_A) + +# Makes the static for dll libxml intermediate directory. +$(XML_INTDIR_A_DLL) : + if not exist $(XML_INTDIR_A_DLL) mkdir $(XML_INTDIR_A_DLL) + +# An implicit rule for libxml compilation. +{$(XML_SRCDIR)}.c{$(XML_INTDIR)}.obj:: + $(CC) $(CFLAGS) /Fo$(XML_INTDIR)\ /c $< + +# An implicit rule for static libxml compilation. +{$(XML_SRCDIR)}.c{$(XML_INTDIR_A)}.obj:: + $(CC) $(CFLAGS) /D "LIBXML_STATIC" /Fo$(XML_INTDIR_A)\ /c $< + +# An implicit rule for static for dll libxml compilation. +{$(XML_SRCDIR)}.c{$(XML_INTDIR_A_DLL)}.obj:: + $(CC) $(CFLAGS) /D "LIBXML_STATIC" /D "LIBXML_STATIC_FOR_DLL" /Fo$(XML_INTDIR_A_DLL)\ /c $< + +# Compiles libxml source. Uses the implicit rule for commands. +$(XML_OBJS) : $(XML_INTDIR) + +# Compiles static libxml source. Uses the implicit rule for commands. +$(XML_OBJS_A) : $(XML_INTDIR_A) + +# Compiles static for dll libxml source. Uses the implicit rule for commands. +$(XML_OBJS_A_DLL) : $(XML_INTDIR_A_DLL) + +# Creates the export definition file (DEF) for libxml. +$(XML_INTDIR)\$(XML_DEF) : $(XML_INTDIR) $(XML_DEF).src + $(CPP) $(CPPFLAGS) $(XML_DEF).src > $(XML_INTDIR)\$(XML_DEF) + +# Creates the libxml shared object. +$(BINDIR)\$(XML_SO) : $(BINDIR) $(XML_OBJS) $(XML_INTDIR)\$(XML_DEF) + $(LD) $(LDFLAGS) /DLL \ + /IMPLIB:$(BINDIR)\$(XML_IMP) /OUT:$(BINDIR)\$(XML_SO) $(XML_OBJS) $(LIBS) + @$(_VC_MANIFEST_EMBED_DLL) + +#$(BINDIR)\$(XML_SO) : $(BINDIR) $(XML_OBJS) $(XML_INTDIR)\$(XML_DEF) +# $(LD) $(LDFLAGS) /DLL /DEF:$(XML_INTDIR)\$(XML_DEF) \ +# /IMPLIB:$(BINDIR)\$(XML_IMP) /OUT:$(BINDIR)\$(XML_SO) $(XML_OBJS) $(LIBS) + +# Creates the libxml archive. +$(BINDIR)\$(XML_A) : $(BINDIR) $(XML_OBJS_A) + $(AR) $(ARFLAGS) /OUT:$(BINDIR)\$(XML_A) $(XML_OBJS_A) + +# Creates the libxml static for dll archive. +$(BINDIR)\$(XML_A_DLL) : $(BINDIR) $(XML_OBJS_A_DLL) + $(AR) $(ARFLAGS) /OUT:$(BINDIR)\$(XML_A_DLL) $(XML_OBJS_A_DLL) + +# Makes the utils intermediate directory. +$(UTILS_INTDIR) : + if not exist $(UTILS_INTDIR) mkdir $(UTILS_INTDIR) + +# An implicit rule for xmllint and friends. +!if "$(STATIC)" == "1" +{$(UTILS_SRCDIR)}.c{$(BINDIR)}.exe: + $(CC) /D "LIBXML_STATIC" $(CFLAGS) /Fo$(UTILS_INTDIR)\ /c $< + $(LD) $(LDFLAGS) /OUT:$@ $(XML_A) $(LIBS) $(UTILS_INTDIR)\$( .memdump + @echo ## XPath regression tests + @-$(BINDIR)\testXPath.exe | find /C "support not compiled in" 1>nul + @if %ERRORLEVEL% NEQ 0 @( \ + echo Skipping debug not compiled in\ + @exit 0 \ + ) + @for %%I in ($(XML_SRCDIR)\test\XPath\expr\*.*) do @( \ + @IF NOT EXIST $(XML_SRCDIR)\result\XPath\expr\%%~nxI ( \ + @echo New test %%~nxI &&\ + @echo %%~nxI &&\ + $(BINDIR)\testXPath.exe -f --expr %%I > $(XML_SRCDIR)/result/XPath/expr/%%~nxI &&\ + findstr /C:"MEMORY ALLOCATED : 0" \ + ) ELSE ( \ + $(BINDIR)\testXPath.exe -f --expr %%I 2>&1 > result.%%~nxI &&\ + fc $(XML_SRCDIR)\result\XPath\expr\%%~nxI result.%%~nxI >nul &\ + iF ERRORLEVEL 1 exit 1 & \ + findstr "MEMORY ALLOCATED" .memdump | findstr /C:"MEMORY ALLOCATED : 0" >nul &&\ + del result.%%~nxI \ + ) \ + ) + @for %%I in ($(XML_SRCDIR)\test\XPath\docs\*.*) do @( \ + for %%J in ($(XML_SRCDIR)\test\XPath\tests\%%~nxI*.*) do @( \ + if not exist $(XML_SRCDIR)\result\XPath\tests\%%~nxJ ( \ + $(BINDIR)\testXPath.exe -f -i %%I %%J > $(XML_SRCDIR)\result\XPath\tests\%%~nxJ &&\ + findstr /C:"MEMORY ALLOCATED" .memdump | findstr /C:"MEMORY ALLOCATED : 0" > nul \ + ) ELSE ( \ + $(BINDIR)\testXPAth.exe -f -i %%I %%J 2>&1 > result.%%~nxJ &&\ + findstr /C:"MEMORY ALLOCATED" .memdump | findstr /C:"MEMORY ALLOCATED : 0">null &&\ + fc $(XML_SRCDIR)\result\XPath\tests\%%~nxJ result.%%~nxJ >null & \ + IF ERRORLEVEL 1 (echo Error: %%I %%J & exit 1) & \ + del result.%%~nxJ \ + )\ + )\ + ) + +XMLtests : $(BINDIR)\xmllint.exe + @echo. 2> .memdump + @echo ## XML regression tests + -@for %%I in ($(XML_SRCDIR)\test\*) do @( \ + if not exist $(XML_SRCDIR)\result\%%~nxI ( \ + echo New test file %%~nxI &\ + $(BINDIR)\xmllint.exe %%I > $(XML_SRCDIR)\result\%%~nxI && \ + findstr /C:"MEMORY ALLOCATED" .memdump | findstr /C:"MEMORY ALLOCATED : 0" > null \ + ) ELSE ( \ + $(BINDIR)\xmllint.exe %%I 2>&1 > result.%%~nxI && \ + findstr /C:"MEMORY ALLOC" .memdump | findstr /C:"MEMORY ALLOCATED : 0" > null && \ + fc $(XML_SRCDIR)\result\%%~nxI result.%%~nxI > null && \ + $(BINDIR)\xmllint.exe result.%%~nxI 2>&1 > result2.%%~nxI | findstr /V /C:"failed to load external entity" && \ + fc result.%%~nxI result2.%%~nxI & \ + del result.%%~nxI result2.%%~nxI\ + ) \ + ) + + + + + + diff --git a/win32/libxml2.def.src b/win32/libxml2.def.src index e37cfe0..db05ad4 100644 --- a/win32/libxml2.def.src +++ b/win32/libxml2.def.src @@ -768,6 +768,7 @@ xmlDictOwns xmlDictQLookup xmlDictReference xmlDictSize +xmlDllMain xmlDocCopyNode xmlDocCopyNodeList xmlDocDump @@ -1783,6 +1784,7 @@ xmlSchematronNewMemParserCtxt xmlSchematronNewParserCtxt xmlSchematronNewValidCtxt xmlSchematronParse +xmlSchematronSetValidStructuredErrors xmlSchematronValidateDoc xmlSearchNs xmlSearchNsByHref diff --git a/xinclude.c b/xinclude.c index 31ea026..bb41180 100644 --- a/xinclude.c +++ b/xinclude.c @@ -419,7 +419,6 @@ static xmlDocPtr xmlXIncludeParseFile(xmlXIncludeCtxtPtr ctxt, const char *URL) { xmlDocPtr ret; xmlParserCtxtPtr pctxt; - char *directory = NULL; xmlParserInputPtr inputStream; xmlInitParser(); @@ -456,10 +455,8 @@ xmlXIncludeParseFile(xmlXIncludeCtxtPtr ctxt, const char *URL) { inputPush(pctxt, inputStream); - if ((pctxt->directory == NULL) && (directory == NULL)) - directory = xmlParserGetDirectory(URL); - if ((pctxt->directory == NULL) && (directory != NULL)) - pctxt->directory = (char *) xmlStrdup((xmlChar *) directory); + if (pctxt->directory == NULL) + pctxt->directory = xmlParserGetDirectory(URL); pctxt->loadsubset |= XML_DETECT_IDS; @@ -516,9 +513,8 @@ xmlXIncludeAddNode(xmlXIncludeCtxtPtr ctxt, xmlNodePtr cur) { href = xmlStrdup(BAD_CAST ""); /* @@@@ href is now optional */ if (href == NULL) return(-1); - local = 1; } - if (href[0] == '#') + if ((href[0] == '#') || (href[0] == 0)) local = 1; parse = xmlXIncludeGetProp(ctxt, cur, XINCLUDE_PARSE); if (parse != NULL) { @@ -616,6 +612,19 @@ xmlXIncludeAddNode(xmlXIncludeCtxtPtr ctxt, xmlNodePtr cur) { return(-1); } + /* + * If local and xml then we need a fragment + */ + if ((local == 1) && (xml == 1) && + ((fragment == NULL) || (fragment[0] == 0))) { + xmlXIncludeErr(ctxt, cur, XML_XINCLUDE_RECURSION, + "detected a local recursion with no xpointer in %s\n", + URL); + if (fragment != NULL) + xmlFree(fragment); + return(-1); + } + /* * Check the URL against the stack for recursions */ diff --git a/xmlIO.c b/xmlIO.c index 7782776..dd4f7e7 100644 --- a/xmlIO.c +++ b/xmlIO.c @@ -3315,6 +3315,16 @@ xmlOutputBufferWriteEscape(xmlOutputBufferPtr out, const xmlChar *str, cons = len; chunk = (out->buffer->size - out->buffer->use) - 1; + /* + * make sure we have enough room to save first, if this is + * not the case force a flush, but make sure we stay in the loop + */ + if (chunk < 40) { + nbchars = 0; + oldwritten = -1; + goto flush; + } + /* * first handle encoding stuff. */ @@ -3360,6 +3370,7 @@ xmlOutputBufferWriteEscape(xmlOutputBufferPtr out, const xmlChar *str, if ((nbchars < MINLEN) && (len <= 0)) goto done; +flush: if (out->writecallback) { /* * second write the stuff to the I/O channel diff --git a/xmlmodule.c b/xmlmodule.c index 15bcf07..9ffd610 100644 --- a/xmlmodule.c +++ b/xmlmodule.c @@ -190,7 +190,7 @@ xmlModuleFree(xmlModulePtr module) return (0); } -#ifdef HAVE_DLOPEN +#if defined(HAVE_DLOPEN) && !defined(_WIN32) #ifdef HAVE_DLFCN_H #include #endif diff --git a/xmlreader.c b/xmlreader.c index d7bddec..92b053e 100644 --- a/xmlreader.c +++ b/xmlreader.c @@ -234,8 +234,6 @@ xmlTextReaderRemoveID(xmlDocPtr doc, xmlAttrPtr attr) { if (table == NULL) return(-1); - if (attr == NULL) - return(-1); ID = xmlNodeListGetString(doc, attr->children, 1); if (ID == NULL) return(-1); @@ -2936,7 +2934,7 @@ xmlTextReaderAttributeCount(xmlTextReaderPtr reader) { * * Get the node type of the current node * Reference: - * http://dotgnu.org/pnetlib-doc/System/Xml/XmlNodeType.html + * http://www.gnu.org/software/dotgnu/pnetlib-doc/System/Xml/XmlNodeType.html * * Returns the xmlNodeType of the current node or -1 in case of error */ @@ -3960,8 +3958,7 @@ xmlTextReaderCurrentDoc(xmlTextReaderPtr reader) { return(NULL); if (reader->doc != NULL) return(reader->doc); - if ((reader == NULL) || (reader->ctxt == NULL) || - (reader->ctxt->myDoc == NULL)) + if ((reader->ctxt == NULL) || (reader->ctxt->myDoc == NULL)) return(NULL); reader->preserve = 1; diff --git a/xmlregexp.c b/xmlregexp.c index a3e16c5..389453b 100644 --- a/xmlregexp.c +++ b/xmlregexp.c @@ -1532,6 +1532,8 @@ xmlFAGenerateCountedTransition(xmlRegParserCtxtPtr ctxt, static int xmlFAGenerateTransitions(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr from, xmlRegStatePtr to, xmlRegAtomPtr atom) { + xmlRegStatePtr end; + if (atom == NULL) { ERROR("genrate transition: atom == NULL"); return(-1); @@ -1689,12 +1691,31 @@ xmlFAGenerateTransitions(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr from, else { return(-1); } + } + end = to; + if ((atom->quant == XML_REGEXP_QUANT_MULT) || + (atom->quant == XML_REGEXP_QUANT_PLUS)) { + /* + * Do not pollute the target state by adding transitions from + * it as it is likely to be the shared target of multiple branches. + * So isolate with an epsilon transition. + */ + xmlRegStatePtr tmp; + + tmp = xmlRegNewState(ctxt); + if (tmp != NULL) + xmlRegStatePush(ctxt, tmp); + else { + return(-1); + } + xmlFAGenerateEpsilonTransition(ctxt, tmp, to); + to = tmp; } if (xmlRegAtomPush(ctxt, atom) < 0) { return(-1); } xmlRegStateAddTrans(ctxt, from, atom, to, -1, -1); - ctxt->state = to; + ctxt->state = end; switch (atom->quant) { case XML_REGEXP_QUANT_OPT: atom->quant = XML_REGEXP_QUANT_ONCE; @@ -5052,7 +5073,7 @@ xmlFAParseCharRange(xmlRegParserCtxtPtr ctxt) { static void xmlFAParsePosCharGroup(xmlRegParserCtxtPtr ctxt) { do { - if ((CUR == '\\') || (CUR == '.')) { + if (CUR == '\\') { xmlFAParseCharClassEsc(ctxt); } else { xmlFAParseCharRange(ctxt); diff --git a/xmlsave.c b/xmlsave.c index cbabd78..2a61577 100644 --- a/xmlsave.c +++ b/xmlsave.c @@ -727,8 +727,8 @@ xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) { return; } if (cur->type == XML_CDATA_SECTION_NODE) { - if (cur->content == NULL) { - xmlOutputBufferWrite(buf, 12, ""); + if (cur->content == NULL || *cur->content == '\0') { + xmlOutputBufferWrite(buf, 12, ""); } else { start = end = cur->content; while (*end != '\0') { @@ -1236,21 +1236,25 @@ xhtmlNodeDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) { return; } if (cur->type == XML_CDATA_SECTION_NODE) { - start = end = cur->content; - while (*end != '\0') { - if (*end == ']' && *(end + 1) == ']' && *(end + 2) == '>') { - end = end + 2; + if (cur->content == NULL || *cur->content == '\0') { + xmlOutputBufferWrite(buf, 12, ""); + } else { + start = end = cur->content; + while (*end != '\0') { + if (*end == ']' && *(end + 1) == ']' && *(end + 2) == '>') { + end = end + 2; + xmlOutputBufferWrite(buf, 9, ""); + start = end; + } + end++; + } + if (start != end) { xmlOutputBufferWrite(buf, 9, ""); - start = end; } - end++; - } - if (start != end) { - xmlOutputBufferWrite(buf, 9, ""); } return; } diff --git a/xmlschemas.c b/xmlschemas.c index f6b86dd..d57ba9f 100644 --- a/xmlschemas.c +++ b/xmlschemas.c @@ -21808,9 +21808,9 @@ xmlSchemaValidateNotation(xmlSchemaValidCtxtPtr vctxt, return (1); } if (xmlSchemaGetNotation(schema, localName, nsName) != NULL) { - if (valNeeded && (val != NULL)) { - (*val) = xmlSchemaNewNOTATIONValue(BAD_CAST localName, - BAD_CAST xmlStrdup(nsName)); + if ((valNeeded) && (val != NULL)) { + (*val) = xmlSchemaNewNOTATIONValue(xmlStrdup(localName), + xmlStrdup(nsName)); if (*val == NULL) ret = -1; } @@ -28108,8 +28108,8 @@ externalSubsetSplit(void *ctx, const xmlChar *name, { xmlSchemaSAXPlugPtr ctxt = (xmlSchemaSAXPlugPtr) ctx; if ((ctxt != NULL) && (ctxt->user_sax != NULL) && - (ctxt->user_sax->internalSubset != NULL)) - ctxt->user_sax->internalSubset(ctxt->user_data, name, ExternalID, + (ctxt->user_sax->externalSubset != NULL)) + ctxt->user_sax->externalSubset(ctxt->user_data, name, ExternalID, SystemID); } @@ -28315,8 +28315,8 @@ cdataBlockSplit(void *ctx, const xmlChar *value, int len) if (ctxt == NULL) return; if ((ctxt->user_sax != NULL) && - (ctxt->user_sax->ignorableWhitespace != NULL)) - ctxt->user_sax->ignorableWhitespace(ctxt->user_data, value, len); + (ctxt->user_sax->cdataBlock != NULL)) + ctxt->user_sax->cdataBlock(ctxt->user_data, value, len); if (ctxt->ctxt != NULL) xmlSchemaSAXHandleCDataSection(ctxt->ctxt, value, len); } diff --git a/xmlschemastypes.c b/xmlschemastypes.c index a35c539..0d967d0 100644 --- a/xmlschemastypes.c +++ b/xmlschemastypes.c @@ -2063,7 +2063,7 @@ xmlSchemaValAtomicListNode(xmlSchemaTypePtr type, const xmlChar *value, * Parse an unsigned long into 3 fields. * * Returns the number of significant digits in the number or - * -1 if overflow of the capacity + * -1 if overflow of the capacity and -2 if it's not a number. */ static int xmlSchemaParseUInt(const xmlChar **str, unsigned long *llo, @@ -2072,6 +2072,9 @@ xmlSchemaParseUInt(const xmlChar **str, unsigned long *llo, const xmlChar *tmp, *cur = *str; int ret = 0, i = 0; + if (!((*cur >= '0') && (*cur <= '9'))) + return(-2); + while (*cur == '0') { /* ignore leading zeroes */ cur++; } @@ -2342,9 +2345,9 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value, * Terminate the (preparsed) string. */ if (len != 0) { - *cptr = 0; + *cptr = 0; cptr = cval; - + xmlSchemaParseUInt((const xmlChar **)&cptr, &v->value.decimal.lo, &v->value.decimal.mi, @@ -3116,7 +3119,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value, } else if (*cur == '+') cur++; ret = xmlSchemaParseUInt(&cur, &lo, &mi, &hi); - if (ret == -1) + if (ret < 0) goto return1; if (normOnTheFly) while IS_WSP_BLANK_CH(*cur) cur++; @@ -3161,7 +3164,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value, case XML_SCHEMAS_BYTE: case XML_SCHEMAS_SHORT: case XML_SCHEMAS_INT:{ - const xmlChar *cur = value; + const xmlChar *cur = value; unsigned long lo, mi, hi; int sign = 0; diff --git a/xmlwriter.c b/xmlwriter.c index 2d9d109..69d4b85 100644 --- a/xmlwriter.c +++ b/xmlwriter.c @@ -626,9 +626,10 @@ xmlTextWriterStartDocument(xmlTextWriterPtr writer, const char *version, * xmlTextWriterEndDocument: * @writer: the xmlTextWriterPtr * - * End an xml document. All open elements are closed + * End an xml document. All open elements are closed, and + * the content is flushed to the output. * - * Returns the bytes written (may be 0 because of buffering) or -1 in case of error + * Returns the bytes written or -1 in case of error */ int xmlTextWriterEndDocument(xmlTextWriterPtr writer) @@ -702,6 +703,9 @@ xmlTextWriterEndDocument(xmlTextWriterPtr writer) return -1; sum += count; } + + sum += xmlTextWriterFlush(writer); + return sum; } @@ -2610,6 +2614,7 @@ xmlTextWriterStartCDATA(xmlTextWriterPtr writer) if (p != 0) { switch (p->state) { case XML_TEXTWRITER_NONE: + case XML_TEXTWRITER_TEXT: case XML_TEXTWRITER_PI: case XML_TEXTWRITER_PI_TEXT: break; diff --git a/xpath.c b/xpath.c index 22a3f9d..a52c44a 100644 --- a/xpath.c +++ b/xpath.c @@ -3663,6 +3663,8 @@ xmlXPathNodeSetMerge(xmlNodeSetPtr val1, xmlNodeSetPtr val2) { if (val2 == NULL) return(val1); if (val1 == NULL) { val1 = xmlXPathNodeSetCreate(NULL); + if (val1 == NULL) + return (NULL); #if 0 /* * TODO: The optimization won't work in every case, since @@ -3776,6 +3778,8 @@ xmlXPathNodeSetMergeUnique(xmlNodeSetPtr val1, xmlNodeSetPtr val2) { if (val1 == NULL) { val1 = xmlXPathNodeSetCreate(NULL); } + if (val1 == NULL) + return (NULL); /* @@ with_ns to check whether namespace nodes should be looked at @@ */ @@ -3852,7 +3856,9 @@ xmlXPathNodeSetMergeAndClear(xmlNodeSetPtr set1, xmlNodeSetPtr set2, xmlNodePtr n1, n2; if (set1 == NULL) - set1 = xmlXPathNodeSetCreate(NULL); + set1 = xmlXPathNodeSetCreate(NULL); + if (set1 == NULL) + return (NULL); initNbSet1 = set1->nodeNr; for (i = 0;i < set2->nodeNr;i++) { @@ -3962,6 +3968,8 @@ xmlXPathNodeSetMergeAndClearNoDupls(xmlNodeSetPtr set1, xmlNodeSetPtr set2, if (set1 == NULL) set1 = xmlXPathNodeSetCreate(NULL); + if (set1 == NULL) + return (NULL); for (i = 0;i < set2->nodeNr;i++) { n2 = set2->nodeTab[i]; @@ -4281,8 +4289,9 @@ xmlXPathNewNodeSetList(xmlNodeSetPtr val) ret = xmlXPathNewNodeSet(NULL); else { ret = xmlXPathNewNodeSet(val->nodeTab[0]); - for (i = 1; i < val->nodeNr; ++i) - xmlXPathNodeSetAddUnique(ret->nodesetval, val->nodeTab[i]); + if (ret) + for (i = 1; i < val->nodeNr; ++i) + xmlXPathNodeSetAddUnique(ret->nodesetval, val->nodeTab[i]); } return (ret); @@ -4381,6 +4390,8 @@ xmlXPathIntersection (xmlNodeSetPtr nodes1, xmlNodeSetPtr nodes2) { int i, l1; xmlNodePtr cur; + if (ret == NULL) + return(ret); if (xmlXPathNodeSetIsEmpty(nodes1)) return(ret); if (xmlXPathNodeSetIsEmpty(nodes2)) @@ -4418,6 +4429,8 @@ xmlXPathDistinctSorted (xmlNodeSetPtr nodes) { return(nodes); ret = xmlXPathNodeSetCreate(NULL); + if (ret == NULL) + return(ret); l = xmlXPathNodeSetGetLength(nodes); hash = xmlHashCreate (l); for (i = 0; i < l; i++) { @@ -4506,6 +4519,8 @@ xmlXPathNodeLeadingSorted (xmlNodeSetPtr nodes, xmlNodePtr node) { return(nodes); ret = xmlXPathNodeSetCreate(NULL); + if (ret == NULL) + return(ret); if (xmlXPathNodeSetIsEmpty(nodes) || (!xmlXPathNodeSetContains(nodes, node))) return(ret); @@ -4608,6 +4623,8 @@ xmlXPathNodeTrailingSorted (xmlNodeSetPtr nodes, xmlNodePtr node) { return(nodes); ret = xmlXPathNodeSetCreate(NULL); + if (ret == NULL) + return(ret); if (xmlXPathNodeSetIsEmpty(nodes) || (!xmlXPathNodeSetContains(nodes, node))) return(ret); @@ -8432,6 +8449,8 @@ xmlXPathGetElementsByIds (xmlDocPtr doc, const xmlChar *ids) { if (ids == NULL) return(NULL); ret = xmlXPathNodeSetCreate(NULL); + if (ret == NULL) + return(ret); while (IS_BLANK_CH(*cur)) cur++; while (*cur != 0) { @@ -8499,6 +8518,11 @@ xmlXPathIdFunction(xmlXPathParserContextPtr ctxt, int nargs) { int i; ret = xmlXPathNodeSetCreate(NULL); + /* + * FIXME -- in an out-of-memory condition this will behave badly. + * The solution is not clear -- we already popped an item from + * ctxt, so the object is in a corrupt state. + */ if (obj->nodesetval != NULL) { for (i = 0; i < obj->nodesetval->nodeNr; i++) { @@ -12481,6 +12505,7 @@ error: outSeq = seq; else outSeq = xmlXPathNodeSetCreate(NULL); + /* XXX what if xmlXPathNodeSetCreate returned NULL here? */ } if ((seq != NULL) && (seq != outSeq)) { xmlXPathFreeNodeSet(seq); @@ -12976,6 +13001,7 @@ xmlXPathCompOpEvalFilterFirst(xmlXPathParserContextPtr ctxt, * key() evaluation are attempted on the predicate */ newset = xmlXPathNodeSetCreate(NULL); + /* XXX what if xmlXPathNodeSetCreate returned NULL? */ for (i = 0; i < oldset->nodeNr; i++) { /* diff --git a/xstc/Makefile.am b/xstc/Makefile.am index 2d24f02..966a8de 100644 --- a/xstc/Makefile.am +++ b/xstc/Makefile.am @@ -128,8 +128,5 @@ valgrind: echo '## Running the regression tests under Valgrind' ; \ $(MAKE) CHECKER='valgrind -q' MAKEFLAGS+=--silent pytests ; fi); -clean: - rm -f $(PYSCRIPTS) test.log +CLEANFILES=$(PYSCRIPTS) test.log -distclean: - rm -rf $(PYSCRIPTS) test.log # TESTDIRS diff --git a/xstc/Makefile.in b/xstc/Makefile.in index 054ea8b..26048e6 100644 --- a/xstc/Makefile.in +++ b/xstc/Makefile.in @@ -281,6 +281,7 @@ NISTTESTDEF_2 = NISTXMLSchemaDatatypes.testSet # The local data and scripts # EXTRA_DIST = xstc.py xstc-to-python.xsl +CLEANFILES = $(PYSCRIPTS) test.log all: all-am .SUFFIXES: @@ -373,6 +374,7 @@ install-strip: mostlyclean-generic: clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -380,8 +382,12 @@ distclean-generic: maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + clean-am: clean-generic clean-libtool mostlyclean-am +distclean: distclean-am + -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am @@ -551,12 +557,6 @@ valgrind: -@(if [ -x $(PYTHON) ] ; then \ echo '## Running the regression tests under Valgrind' ; \ $(MAKE) CHECKER='valgrind -q' MAKEFLAGS+=--silent pytests ; fi); - -clean: - rm -f $(PYSCRIPTS) test.log - -distclean: - rm -rf $(PYSCRIPTS) test.log # TESTDIRS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: -- cgit v1.2.3 From f660f9d2924c7549bc87e7f9b4ece7c9727b3682 Mon Sep 17 00:00:00 2001 From: Aron Xu Date: Tue, 18 Sep 2012 01:15:22 +0800 Subject: Imported Upstream version 2.9.0 --- DOCBparser.c | 12 +- HTMLparser.c | 137 +- HTMLtree.c | 106 +- INSTALL | 9 +- Makefile.am | 127 +- Makefile.in | 450 +- SAX.c | 2 +- SAX2.c | 134 +- acinclude.m4 | 8 +- aclocal.m4 | 114 +- buf.c | 1301 + buf.h | 72 + c14n.c | 632 +- catalog.c | 91 +- chvalid.c | 164 +- config.guess | 245 +- config.h.in | 26 + config.sub | 189 +- configure | 747 +- configure.in | 114 +- debugXML.c | 30 +- depcomp | 74 +- dict.c | 193 +- doc/APIchunk0.html | 14 +- doc/APIchunk1.html | 8 +- doc/APIchunk10.html | 34 +- doc/APIchunk11.html | 29 +- doc/APIchunk12.html | 21 +- doc/APIchunk13.html | 35 +- doc/APIchunk14.html | 13 +- doc/APIchunk15.html | 16 +- doc/APIchunk16.html | 16 +- doc/APIchunk17.html | 27 +- doc/APIchunk18.html | 22 +- doc/APIchunk19.html | 15 +- doc/APIchunk2.html | 12 +- doc/APIchunk20.html | 8 +- doc/APIchunk21.html | 19 +- doc/APIchunk22.html | 17 +- doc/APIchunk23.html | 17 +- doc/APIchunk24.html | 21 +- doc/APIchunk25.html | 13 +- doc/APIchunk26.html | 18 +- doc/APIchunk27.html | 15 +- doc/APIchunk28.html | 25 +- doc/APIchunk29.html | 8 +- doc/APIchunk3.html | 24 +- doc/APIchunk4.html | 18 +- doc/APIchunk5.html | 8 +- doc/APIchunk6.html | 12 +- doc/APIchunk7.html | 12 +- doc/APIchunk8.html | 10 +- doc/APIchunk9.html | 20 +- doc/APIconstructors.html | 9 + doc/APIfiles.html | 30 +- doc/APIfunctions.html | 26 +- doc/APIsymbols.html | 30 +- doc/Makefile.am | 297 +- doc/Makefile.in | 443 +- doc/apibuild.py | 12 +- doc/devhelp/Makefile.am | 32 +- doc/devhelp/Makefile.in | 144 +- doc/devhelp/general.html | 2 +- doc/devhelp/libxml2-dict.html | 10 + doc/devhelp/libxml2-parser.html | 9 +- doc/devhelp/libxml2-parserInternals.html | 21 +- doc/devhelp/libxml2-tree.html | 77 +- doc/devhelp/libxml2-xmlIO.html | 10 + doc/devhelp/libxml2-xmlerror.html | 8 +- doc/devhelp/libxml2-xmlmodule.html | 4 +- doc/devhelp/libxml2-xmlschemas.html | 15 + doc/devhelp/libxml2-xmlwriter.html | 11 +- doc/devhelp/libxml2-xpath.html | 1 + doc/devhelp/libxml2-xpathInternals.html | 18 +- doc/devhelp/libxml2.devhelp | 28 +- doc/examples/Makefile.am | 241 +- doc/examples/Makefile.in | 427 +- doc/examples/examples.xml | 450 +- doc/examples/index.html | 14 + doc/examples/index.py | 92 +- doc/examples/io1.c | 2 +- doc/examples/io1.res | 2 +- doc/examples/io2.c | 2 +- doc/examples/reader1.c | 2 +- doc/examples/reader2.c | 2 +- doc/examples/reader3.c | 2 +- doc/examples/reader4.c | 2 +- doc/examples/testWriter.c | 10 +- doc/examples/tree1.c | 2 +- doc/examples/tree2.c | 2 +- doc/examples/xpath1.c | 2 +- doc/examples/xpath2.c | 2 +- doc/html/book1.html | 2 +- doc/html/index.html | 2 +- doc/html/libxml-dict.html | 10 +- doc/html/libxml-lib.html | 2 +- doc/html/libxml-parser.html | 7 +- doc/html/libxml-parserInternals.html | 7 +- doc/html/libxml-tree.html | 46 +- doc/html/libxml-xmlIO.html | 8 +- doc/html/libxml-xmlerror.html | 6 +- doc/html/libxml-xmlmodule.html | 4 +- doc/html/libxml-xmlschemas.html | 14 +- doc/html/libxml-xmlwriter.html | 5 +- doc/html/libxml-xpath.html | 1 + doc/html/libxml-xpathInternals.html | 14 +- doc/html/libxml-xzlib.html | 16 - doc/libxml2-api.xml | 210 +- doc/libxml2.xsa | 177 +- doc/news.html | 137 +- doc/symbols.xml | 15 + doc/xml.html | 148 +- enc.h | 32 + encoding.c | 489 +- entities.c | 147 +- error.c | 77 +- example/Makefile.am | 9 +- example/Makefile.in | 79 +- globals.c | 28 +- hash.c | 44 +- include/Makefile.in | 30 +- include/libxml/DOCBparser.h | 18 +- include/libxml/HTMLparser.h | 44 +- include/libxml/HTMLtree.h | 38 +- include/libxml/Makefile.in | 40 +- include/libxml/SAX.h | 74 +- include/libxml/SAX2.h | 68 +- include/libxml/c14n.h | 2 +- include/libxml/catalog.h | 70 +- include/libxml/debugXML.h | 52 +- include/libxml/dict.h | 6 + include/libxml/encoding.h | 28 +- include/libxml/hash.h | 48 +- include/libxml/list.h | 52 +- include/libxml/nanoftp.h | 1 + include/libxml/nanohttp.h | 26 +- include/libxml/parser.h | 143 +- include/libxml/parserInternals.h | 179 +- include/libxml/schemasInternals.h | 4 +- include/libxml/schematron.h | 22 +- include/libxml/tree.h | 352 +- include/libxml/valid.h | 144 +- include/libxml/xlink.h | 14 +- include/libxml/xmlIO.h | 136 +- include/libxml/xmlautomata.h | 44 +- include/libxml/xmlerror.h | 12 +- include/libxml/xmlexports.h | 2 +- include/libxml/xmlmodule.h | 2 +- include/libxml/xmlreader.h | 39 +- include/libxml/xmlschemas.h | 32 +- include/libxml/xmlschemastypes.h | 40 +- include/libxml/xmlstring.h | 6 +- include/libxml/xmlversion.h | 16 +- include/libxml/xmlversion.h.in | 6 +- include/libxml/xmlwriter.h | 5 +- include/libxml/xpath.h | 87 +- include/libxml/xpathInternals.h | 160 +- include/libxml/xpointer.h | 46 +- include/wsockcompat.h | 2 +- install-sh | 29 +- legacy.c | 30 +- libxml-2.0-uninstalled.pc.in | 2 +- libxml-2.0.pc.in | 2 +- libxml.3 | 2 +- libxml.h | 5 + libxml2.spec | 6 +- libxml2.syms | 27 + list.c | 76 +- ltmain.sh | 95 +- m4/libtool.m4 | 265 +- m4/ltoptions.m4 | 19 +- m4/ltversion.m4 | 10 +- missing | 53 +- nanoftp.c | 64 +- nanohttp.c | 52 +- parser.c | 1205 +- parserInternals.c | 202 +- pattern.c | 178 +- python/Makefile.am | 63 +- python/Makefile.in | 226 +- python/libxml.c | 6 +- python/libxml2-export.c | 2058 ++ python/libxml2-py.c | 14750 ++++++++ python/libxml2-py.h | 2058 ++ python/libxml2.py | 9259 +++++ python/libxml2class.py | 8526 +++++ python/libxml2class.txt | 1176 + python/setup.py | 2 +- python/tests/Makefile.am | 6 +- python/tests/Makefile.in | 48 +- relaxng.c | 103 +- result/HTML/53867.html | 70 + result/HTML/53867.html.err | 0 result/HTML/53867.html.sax | 26 + result/HTML/Down.html | 13 + result/HTML/Down.html.err | 0 result/HTML/Down.html.sax | 37 + result/HTML/attrents.html | 6 + result/HTML/attrents.html.err | 0 result/HTML/attrents.html.sax | 21 + result/HTML/autoclose.html | 4 + result/HTML/autoclose.html.err | 0 result/HTML/autoclose.html.sax | 11 + result/HTML/autoclose2.html | 3 + result/HTML/autoclose2.html.err | 0 result/HTML/autoclose2.html.sax | 11 + result/HTML/autoclose3.html | 7 + result/HTML/autoclose3.html.err | 0 result/HTML/autoclose3.html.sax | 19 + result/HTML/cf_128.html | 24 + result/HTML/cf_128.html.err | 0 result/HTML/cf_128.html.sax | 69 + result/HTML/doc2.htm | 30 + result/HTML/doc2.htm.err | 3 + result/HTML/doc2.htm.sax | 69 + result/HTML/doc3.htm | 579 + result/HTML/doc3.htm.err | 81 + result/HTML/doc3.htm.sax | 2878 ++ result/HTML/entities.html | 8 + result/HTML/entities.html.err | 12 + result/HTML/entities.html.sax | 27 + result/HTML/entities2.html | 8 + result/HTML/entities2.html.err | 0 result/HTML/entities2.html.sax | 23 + result/HTML/fp40.htm | 167 + result/HTML/fp40.htm.err | 3 + result/HTML/fp40.htm.sax | 463 + result/HTML/html5_enc.html | 9 + result/HTML/html5_enc.html.err | 0 result/HTML/html5_enc.html.sax | 30 + result/HTML/liclose.html | 15 + result/HTML/liclose.html.err | 0 result/HTML/liclose.html.sax | 38 + result/HTML/lt.html | 6 + result/HTML/lt.html.err | 0 result/HTML/lt.html.sax | 19 + result/HTML/noscript.html | 10 + result/HTML/noscript.html.err | 0 result/HTML/noscript.html.sax | 38 + result/HTML/pre.html | 6 + result/HTML/pre.html.err | 0 result/HTML/pre.html.sax | 23 + result/HTML/python.html | 9 + result/HTML/python.html.err | 0 result/HTML/python.html.sax | 29 + result/HTML/reg1.html | 12 + result/HTML/reg1.html.err | 0 result/HTML/reg1.html.sax | 36 + result/HTML/reg2.html | 15 + result/HTML/reg2.html.err | 0 result/HTML/reg2.html.sax | 41 + result/HTML/reg3.html | 16 + result/HTML/reg3.html.err | 0 result/HTML/reg3.html.sax | 45 + result/HTML/reg4.html | 14 + result/HTML/reg4.html.err | 3 + result/HTML/reg4.html.sax | 43 + result/HTML/repeat.html | 7 + result/HTML/repeat.html.err | 0 result/HTML/repeat.html.sax | 14 + result/HTML/script.html | 10 + result/HTML/script.html.err | 0 result/HTML/script.html.sax | 32 + result/HTML/script2.html | 17 + result/HTML/script2.html.err | 0 result/HTML/script2.html.sax | 50 + result/HTML/test2.html | 38 + result/HTML/test2.html.err | 0 result/HTML/test2.html.sax | 145 + result/HTML/test3.html | 59 + result/HTML/test3.html.err | 12 + result/HTML/test3.html.sax | 230 + result/HTML/utf8bug.html | 215 + result/HTML/utf8bug.html.err | 15 + result/HTML/utf8bug.html.sax | 737 + result/HTML/wired.html | 576 + result/HTML/wired.html.err | 249 + result/HTML/wired.html.sax | 2848 ++ result/SVG/4rects.xml | 10 + result/SVG/a-valid.xml | 9 + result/SVG/a-wf.xml | 8 + result/SVG/bike-errors.xml | 0 result/SVG/bike.xml | 44 + result/SVG/circle.xml | 9 + result/SVG/defs.xml | 14 + result/SVG/desc.xml | 14 + result/SVG/ellipse.xml | 9 + result/SVG/flower2.xml | 10 + result/SVG/gradient.xml | 16 + result/SVG/group01.xml | 14 + result/SVG/group02.xml | 12 + result/SVG/group03.xml | 11 + result/SVG/image-valid.xml | 9 + result/SVG/image-wf.xml | 8 + result/SVG/lin-gradient.xml | 15 + result/SVG/marker.xml | 23 + result/SVG/mask.xml | 12 + result/SVG/mathswitch.xml | 26 + result/SVG/parentns.xml | 9 + result/SVG/path01.xml | 4 + result/SVG/path02.xml | 9 + result/SVG/patternfill.xml | 11 + result/SVG/polyline.xml | 8 + result/SVG/private.xml | 18 + result/SVG/rad-gradient.xml | 16 + result/SVG/rectangle.xml | 9 + result/SVG/richdesc.xml | 11 + result/SVG/script.xml | 13 + result/SVG/structure01.xml | 8 + result/SVG/style.xml | 11 + result/SVG/switch.xml | 16 + result/SVG/symbol-use.xml | 22 + result/SVG/template.xml | 8 + result/SVG/text01.xml | 11 + result/SVG/text02.xml | 25 + result/SVG/text03.xml | 7 + result/SVG/toap01.xml | 8 + result/SVG/toap02.xml | 27 + result/SVG/transform.xml | 20 + result/SVG/trivial.xml | 4 + result/SVG/twin-gradients.xml | 18 + result/SVG/v-template.xml | 6 + result/SVG/viewport-nest.xml | 12 + result/SVG/viewport-transform.xml | 36 + result/SVG/viewport.xml | 8 + result/SVG/wf-template.xml | 4 + result/URI/smith.uri | 15 + result/URI/uri.data | 18 + result/VC/AttributeDefaultLegal | 12 + result/VC/AttributeNmtokens | 3 + result/VC/DuplicateType | 3 + result/VC/ElementValid | 3 + result/VC/ElementValid2 | 3 + result/VC/ElementValid3 | 3 + result/VC/ElementValid4 | 3 + result/VC/ElementValid5 | 3 + result/VC/ElementValid6 | 3 + result/VC/ElementValid7 | 3 + result/VC/ElementValid8 | 3 + result/VC/Enumeration | 3 + result/VC/NS1 | 0 result/VC/NS2 | 3 + result/VC/NS3 | 9 + result/VC/OneID | 6 + result/VC/OneID2 | 6 + result/VC/OneID3 | 6 + result/VC/PENesting | 6 + result/VC/PENesting2 | 6 + result/VC/UniqueElementTypeDeclaration | 3 + result/VC/UniqueElementTypeDeclaration2 | 3 + result/XInclude/docids.xml | 19 + result/XInclude/docids.xml.err | 0 result/XInclude/docids.xml.rdr | 35 + result/XInclude/fallback.xml | 5 + result/XInclude/fallback.xml.err | 0 result/XInclude/fallback.xml.rdr | 12 + result/XInclude/fallback2.xml | 6 + result/XInclude/fallback2.xml.err | 0 result/XInclude/fallback2.xml.rdr | 11 + result/XInclude/include.xml | 9 + result/XInclude/include.xml.err | 0 result/XInclude/include.xml.rdr | 28 + result/XInclude/nodes.xml | 5 + result/XInclude/nodes.xml.err | 0 result/XInclude/nodes.xml.rdr | 18 + result/XInclude/nodes2.xml | 5 + result/XInclude/nodes2.xml.err | 0 result/XInclude/nodes2.xml.rdr | 18 + result/XInclude/nodes3.xml | 5 + result/XInclude/nodes3.xml.err | 1 + result/XInclude/nodes3.xml.rdr | 10 + result/XInclude/recursive.xml | 3 + result/XInclude/recursive.xml.err | 0 result/XInclude/recursive.xml.rdr | 6 + result/XInclude/tstencoding.xml | 6 + result/XInclude/tstencoding.xml.err | 0 result/XInclude/tstencoding.xml.rdr | 11 + result/XInclude/txtinclude.xml | 6 + result/XInclude/txtinclude.xml.err | 0 result/XInclude/txtinclude.xml.rdr | 11 + result/XPath/expr/base | 20 + result/XPath/expr/compare | 184 + result/XPath/expr/equality | 104 + result/XPath/expr/floats | 244 + result/XPath/expr/functions | 100 + result/XPath/expr/strings | 136 + result/XPath/tests/chaptersbase | 115 + result/XPath/tests/chaptersprefol | 100 + result/XPath/tests/idsimple | 33 + result/XPath/tests/langsimple | 60 + result/XPath/tests/mixedpat | 101 + result/XPath/tests/nodespat | 94 + result/XPath/tests/simpleabbr | 81 + result/XPath/tests/simplebase | 73 + result/XPath/tests/usr1check | 12 + result/XPath/tests/vidbase | 42 + result/XPath/xptr/chapterschildseq | 53 + result/XPath/xptr/chaptersparts | 44 + result/XPath/xptr/chaptersrange | 64 + result/XPath/xptr/strpoint | 75 + result/XPath/xptr/strrange | 96 + result/XPath/xptr/strrange2 | 64 + result/XPath/xptr/strrange3 | 48 + result/XPath/xptr/vidbase | 19 + result/XPath/xptr/vidchildseq | 36 + result/XPath/xptr/vidparts | 27 + result/att1 | 2 + result/att1.rde | 1 + result/att1.rdr | 1 + result/att1.sax | 5 + result/att1.sax2 | 5 + result/att10 | 18 + result/att10.rde | 23 + result/att10.rdr | 23 + result/att10.sax | 61 + result/att10.sax2 | 57 + result/att11 | 9 + result/att11.rde | 2 + result/att11.rdr | 2 + result/att11.sax | 21 + result/att11.sax2 | 20 + result/att2 | 2 + result/att2.rde | 1 + result/att2.rdr | 1 + result/att2.sax | 5 + result/att2.sax2 | 5 + result/att3 | 2 + result/att3.rde | 3 + result/att3.rdr | 3 + result/att3.sax | 9 + result/att3.sax2 | 8 + result/att4 | 9264 +++++ result/att4.rde | 27785 ++++++++++++++ result/att4.rdr | 27785 ++++++++++++++ result/att4.sax | 36976 +++++++++++++++++++ result/att4.sax2 | 36976 +++++++++++++++++++ result/att5 | 40 + result/att5.rde | 109 + result/att5.rdr | 109 + result/att5.sax | 148 + result/att5.sax2 | 149 + result/att6 | 6 + result/att6.rde | 15 + result/att6.rdr | 15 + result/att6.sax | 20 + result/att6.sax2 | 20 + result/att7 | 11 + result/att7.rde | 12 + result/att7.rdr | 11 + result/att7.sax | 24 + result/att7.sax2 | 24 + result/att8 | 2 + result/att8.rde | 22 + result/att8.rdr | 22 + result/att8.sax | 29 + result/att8.sax2 | 29 + result/att9 | 6 + result/att9.rde | 2 + result/att9.rdr | 2 + result/att9.sax | 9 + result/att9.sax2 | 9 + result/attrib.xml | 2 + result/attrib.xml.rde | 1 + result/attrib.xml.rdr | 1 + result/attrib.xml.sax | 5 + result/attrib.xml.sax2 | 5 + result/automata/a | 4 + result/automata/aba | 6 + result/automata/abaa | 5 + result/automata/abba | 4 + result/automata/po | 2 + result/badcomment.xml | 17 + result/badcomment.xml.rde | 21 + result/badcomment.xml.rdr | 21 + result/badcomment.xml.sax | 24 + result/badcomment.xml.sax2 | 24 + result/bigentname.xml | 6 + result/bigentname.xml.rde | 4 + result/bigentname.xml.rdr | 4 + result/bigentname.xml.sax | 17 + result/bigentname.xml.sax2 | 17 + result/bigname.xml | 2 + result/bigname.xml.rde | 1 + result/bigname.xml.rdr | 1 + result/bigname.xml.sax | 5 + result/bigname.xml.sax2 | 5 + result/bigname2.xml | 2 + result/bigname2.xml.rde | 1 + result/bigname2.xml.rdr | 1 + result/bigname2.xml.sax | 5 + result/bigname2.xml.sax2 | 5 + result/c14n/1-1-without-comments/example-1 | 4 + result/c14n/1-1-without-comments/example-2 | 11 + result/c14n/1-1-without-comments/example-3 | 14 + result/c14n/1-1-without-comments/example-4 | 9 + result/c14n/1-1-without-comments/example-5 | 3 + result/c14n/1-1-without-comments/example-6 | 1 + result/c14n/1-1-without-comments/example-7 | 1 + result/c14n/1-1-without-comments/example-8 | 1 + .../1-1-without-comments/xmlbase-c14n11spec-102 | 1 + .../1-1-without-comments/xmlbase-c14n11spec2-102 | 1 + .../1-1-without-comments/xmlbase-c14n11spec3-102 | 2 + result/c14n/1-1-without-comments/xmlbase-prop-1 | 14 + result/c14n/1-1-without-comments/xmlbase-prop-2 | 8 + result/c14n/1-1-without-comments/xmlbase-prop-3 | 3 + result/c14n/1-1-without-comments/xmlbase-prop-4 | 1 + result/c14n/1-1-without-comments/xmlbase-prop-5 | 1 + result/c14n/1-1-without-comments/xmlbase-prop-6 | 3 + result/c14n/1-1-without-comments/xmlbase-prop-7 | 7 + result/c14n/1-1-without-comments/xmlid-prop-1 | 8 + result/c14n/1-1-without-comments/xmlid-prop-2 | 5 + result/c14n/1-1-without-comments/xmllang-prop-1 | 8 + result/c14n/1-1-without-comments/xmllang-prop-2 | 3 + result/c14n/1-1-without-comments/xmllang-prop-3 | 3 + result/c14n/1-1-without-comments/xmllang-prop-4 | 5 + result/c14n/1-1-without-comments/xmlspace-prop-1 | 8 + result/c14n/1-1-without-comments/xmlspace-prop-2 | 3 + result/c14n/1-1-without-comments/xmlspace-prop-3 | 3 + result/c14n/1-1-without-comments/xmlspace-prop-4 | 5 + .../c14n/exc-without-comments/merlin-c14n-two-09 | 9 + .../c14n/exc-without-comments/merlin-c14n-two-10 | 9 + .../c14n/exc-without-comments/merlin-c14n-two-11 | 9 + .../c14n/exc-without-comments/merlin-c14n-two-12 | 9 + .../c14n/exc-without-comments/merlin-c14n-two-13 | 9 + .../c14n/exc-without-comments/merlin-c14n-two-14 | 9 + .../c14n/exc-without-comments/merlin-c14n-two-15 | 0 .../c14n/exc-without-comments/merlin-c14n-two-16 | 0 .../c14n/exc-without-comments/merlin-c14n-two-17 | 9 + .../c14n/exc-without-comments/merlin-c14n-two-18 | 9 + .../c14n/exc-without-comments/merlin-c14n-two-19 | 9 + .../c14n/exc-without-comments/merlin-c14n-two-20 | 9 + .../c14n/exc-without-comments/merlin-c14n-two-21 | 9 + .../c14n/exc-without-comments/merlin-c14n-two-22 | 9 + .../c14n/exc-without-comments/merlin-c14n-two-23 | 9 + .../c14n/exc-without-comments/merlin-c14n-two-24 | 1 + .../c14n/exc-without-comments/merlin-c14n-two-25 | 0 .../c14n/exc-without-comments/merlin-c14n-two-26 | 9 + result/c14n/exc-without-comments/test-0 | 7 + result/c14n/exc-without-comments/test-1 | 7 + result/c14n/exc-without-comments/test-2 | 11 + result/c14n/with-comments/example-1 | 6 + result/c14n/with-comments/example-2 | 11 + result/c14n/with-comments/example-3 | 14 + result/c14n/with-comments/example-4 | 9 + result/c14n/with-comments/example-5 | 4 + result/c14n/with-comments/example-6 | 1 + result/c14n/with-comments/example-7 | 1 + result/c14n/without-comments/example-1 | 4 + result/c14n/without-comments/example-2 | 11 + result/c14n/without-comments/example-3 | 14 + result/c14n/without-comments/example-4 | 9 + result/c14n/without-comments/example-5 | 3 + result/c14n/without-comments/example-6 | 1 + result/c14n/without-comments/example-7 | 1 + result/c14n/without-comments/merlin-c14n-two-00 | 9 + result/c14n/without-comments/merlin-c14n-two-01 | 9 + result/c14n/without-comments/merlin-c14n-two-02 | 9 + result/c14n/without-comments/merlin-c14n-two-03 | 9 + result/c14n/without-comments/merlin-c14n-two-04 | 9 + result/c14n/without-comments/merlin-c14n-two-05 | 9 + result/c14n/without-comments/merlin-c14n-two-06 | 1 + result/c14n/without-comments/merlin-c14n-two-07 | 1 + result/c14n/without-comments/merlin-c14n-two-08 | 9 + result/c14n/without-comments/test-0 | 1 + result/c14n/without-comments/test-1 | 31 + result/c14n/without-comments/test-2 | 3 + result/c14n/without-comments/test-3 | 7 + result/catalogs/catal | 5 + result/catalogs/docbook | 6 + result/catalogs/mycatalog.empty | 3 + result/catalogs/mycatalog.full | 7 + result/catalogs/registry | 5 + result/catalogs/whites | 5 + result/catalogs/whitex | 8 + result/cdata | 4 + result/cdata.rde | 7 + result/cdata.rdr | 7 + result/cdata.sax | 10 + result/cdata.sax2 | 10 + result/cdata2 | 6 + result/cdata2.rde | 13 + result/cdata2.rdr | 13 + result/cdata2.sax | 17 + result/cdata2.sax2 | 17 + result/comment.xml | 6 + result/comment.xml.rde | 13 + result/comment.xml.rdr | 13 + result/comment.xml.sax | 17 + result/comment.xml.sax2 | 17 + result/comment2.xml | 6 + result/comment2.xml.rde | 9 + result/comment2.xml.rdr | 9 + result/comment2.xml.sax | 13 + result/comment2.xml.sax2 | 13 + result/comment3.xml | 164 + result/comment3.xml.rde | 163 + result/comment3.xml.rdr | 163 + result/comment3.xml.sax | 167 + result/comment3.xml.sax2 | 167 + result/comment4.xml | 5 + result/comment4.xml.rde | 4 + result/comment4.xml.rdr | 4 + result/comment4.xml.sax | 8 + result/comment4.xml.sax2 | 8 + result/comment5.xml | 9 + result/comment5.xml.rde | 8 + result/comment5.xml.rdr | 8 + result/comment5.xml.sax | 12 + result/comment5.xml.sax2 | 12 + result/comment6.xml | 14 + result/comment6.xml.rde | 11 + result/comment6.xml.rdr | 11 + result/comment6.xml.sax | 17 + result/comment6.xml.sax2 | 17 + result/dav1 | 25 + result/dav1.rde | 78 + result/dav1.rdr | 78 + result/dav1.sax | 81 + result/dav1.sax2 | 81 + result/dav10 | 4 + result/dav10.rde | 9 + result/dav10.rdr | 9 + result/dav10.sax | 12 + result/dav10.sax2 | 12 + result/dav11 | 21 + result/dav11.rde | 60 + result/dav11.rdr | 60 + result/dav11.sax | 62 + result/dav11.sax2 | 62 + result/dav12 | 2 + result/dav12.rde | 3 + result/dav12.rdr | 3 + result/dav12.sax | 6 + result/dav12.sax2 | 6 + result/dav13 | 16 + result/dav13.rde | 45 + result/dav13.rdr | 45 + result/dav13.sax | 46 + result/dav13.sax2 | 46 + result/dav15 | 20 + result/dav15.rde | 73 + result/dav15.rdr | 73 + result/dav15.sax | 76 + result/dav15.sax2 | 76 + result/dav16 | 6 + result/dav16.rde | 13 + result/dav16.rdr | 13 + result/dav16.sax | 17 + result/dav16.sax2 | 17 + result/dav17 | 22 + result/dav17.rde | 75 + result/dav17.rdr | 75 + result/dav17.sax | 78 + result/dav17.sax2 | 78 + result/dav18 | 6 + result/dav18.rde | 13 + result/dav18.rdr | 13 + result/dav18.sax | 17 + result/dav18.sax2 | 17 + result/dav19 | 18 + result/dav19.rde | 59 + result/dav19.rdr | 59 + result/dav19.sax | 62 + result/dav19.sax2 | 62 + result/dav2 | 24 + result/dav2.rde | 81 + result/dav2.rdr | 81 + result/dav2.sax | 84 + result/dav2.sax2 | 84 + result/dav3 | 18 + result/dav3.rde | 57 + result/dav3.rdr | 57 + result/dav3.sax | 63 + result/dav3.sax2 | 63 + result/dav4 | 16 + result/dav4.rde | 47 + result/dav4.rdr | 47 + result/dav4.sax | 51 + result/dav4.sax2 | 51 + result/dav5 | 17 + result/dav5.rde | 50 + result/dav5.rdr | 50 + result/dav5.sax | 54 + result/dav5.sax2 | 54 + result/dav6 | 22 + result/dav6.rde | 63 + result/dav6.rdr | 63 + result/dav6.sax | 66 + result/dav6.sax2 | 66 + result/dav7 | 16 + result/dav7.rde | 57 + result/dav7.rdr | 57 + result/dav7.sax | 60 + result/dav7.sax2 | 60 + result/dav8 | 14 + result/dav8.rde | 51 + result/dav8.rdr | 51 + result/dav8.sax | 54 + result/dav8.sax2 | 54 + result/dav9 | 18 + result/dav9.rde | 67 + result/dav9.rdr | 67 + result/dav9.sax | 70 + result/dav9.sax2 | 70 + result/defattr.xml | 6 + result/defattr.xml.rde | 2 + result/defattr.xml.rdr | 2 + result/defattr.xml.sax | 9 + result/defattr.xml.sax2 | 9 + result/defattr2.xml | 8 + result/defattr2.xml.rde | 2 + result/defattr2.xml.rdr | 2 + result/defattr2.xml.sax | 11 + result/defattr2.xml.sax2 | 11 + result/dia1 | 99 + result/dia1.rde | 292 + result/dia1.rdr | 292 + result/dia1.sax | 323 + result/dia1.sax2 | 323 + result/dia2 | 99 + result/dia2.rde | 292 + result/dia2.rdr | 292 + result/dia2.sax | 323 + result/dia2.sax2 | 323 + result/dtd1 | 4 + result/dtd1.rde | 5 + result/dtd1.rdr | 5 + result/dtd1.sax | 9 + result/dtd1.sax2 | 9 + result/dtd10 | 9 + result/dtd10.rde | 12 + result/dtd10.rdr | 12 + result/dtd10.sax | 21 + result/dtd10.sax2 | 21 + result/dtd11 | 6 + result/dtd11.rde | 2 + result/dtd11.rdr | 2 + result/dtd11.sax | 9 + result/dtd11.sax2 | 9 + result/dtd12 | 6 + result/dtd12.rde | 4 + result/dtd12.rdr | 4 + result/dtd12.sax | 17 + result/dtd12.sax2 | 17 + result/dtd13 | 7 + result/dtd13.rde | 4 + result/dtd13.rdr | 4 + result/dtd13.sax | 10 + result/dtd13.sax2 | 10 + result/dtd2 | 5 + result/dtd2.rde | 4 + result/dtd2.rdr | 4 + result/dtd2.sax | 9 + result/dtd2.sax2 | 9 + result/dtd3 | 5 + result/dtd3.rde | 4 + result/dtd3.rdr | 4 + result/dtd3.sax | 9 + result/dtd3.sax2 | 9 + result/dtd4 | 5 + result/dtd4.rde | 2 + result/dtd4.rdr | 2 + result/dtd4.sax | 8 + result/dtd4.sax2 | 8 + result/dtd5 | 7 + result/dtd5.rde | 11 + result/dtd5.rdr | 11 + result/dtd5.sax | 18 + result/dtd5.sax2 | 18 + result/dtd6 | 7 + result/dtd6.rde | 12 + result/dtd6.rdr | 12 + result/dtd6.sax | 19 + result/dtd6.sax2 | 19 + result/dtd7 | 7 + result/dtd7.rde | 9 + result/dtd7.rdr | 9 + result/dtd7.sax | 16 + result/dtd7.sax2 | 16 + result/dtd8 | 9 + result/dtd8.rde | 9 + result/dtd8.rdr | 9 + result/dtd8.sax | 18 + result/dtd8.sax2 | 18 + result/dtd9 | 9 + result/dtd9.rde | 9 + result/dtd9.rdr | 9 + result/dtd9.sax | 18 + result/dtd9.sax2 | 18 + result/ebcdic_566012.xml | 1 + result/ebcdic_566012.xml.rde | 1 + result/ebcdic_566012.xml.rdr | 1 + result/ebcdic_566012.xml.sax | 5 + result/ebcdic_566012.xml.sax2 | 5 + result/emptycdata.xml | 4 + result/emptycdata.xml.rde | 7 + result/emptycdata.xml.rdr | 7 + result/emptycdata.xml.sax | 10 + result/emptycdata.xml.sax2 | 10 + result/ent1 | 7 + result/ent1.rde | 6 + result/ent1.rdr | 8 + result/ent1.sax | 16 + result/ent1.sax2 | 16 + result/ent10 | 14 + result/ent10.rde | 14 + result/ent10.rdr | 8 + result/ent10.sax | 31 + result/ent10.sax2 | 31 + result/ent11 | 5 + result/ent11.rde | 5 + result/ent11.rdr | 4 + result/ent11.sax | 13 + result/ent11.sax2 | 13 + result/ent12 | 8 + result/ent12.rde | 10 + result/ent12.rdr | 10 + result/ent12.sax | 21 + result/ent12.sax2 | 21 + result/ent13 | 5 + result/ent13.rde | 4 + result/ent13.rdr | 4 + result/ent13.sax | 11 + result/ent13.sax2 | 11 + result/ent2 | 10 + result/ent2.rde | 15 + result/ent2.rdr | 13 + result/ent2.sax | 26 + result/ent2.sax2 | 26 + result/ent3 | 7 + result/ent3.rde | 6 + result/ent3.rdr | 6 + result/ent3.sax | 12 + result/ent3.sax2 | 12 + result/ent4 | 7 + result/ent4.rde | 6 + result/ent4.rdr | 6 + result/ent4.sax | 16 + result/ent4.sax2 | 16 + result/ent5 | 5 + result/ent5.rde | 6 + result/ent5.rdr | 6 + result/ent5.sax | 13 + result/ent5.sax2 | 13 + result/ent6 | 9 + result/ent6.rde | 2 + result/ent6.rdr | 2 + result/ent6.sax | 17 + result/ent6.sax2 | 17 + result/ent7 | 8 + result/ent7.rde | 6 + result/ent7.rdr | 8 + result/ent7.sax | 17 + result/ent7.sax2 | 17 + result/ent8 | 10 + result/ent8.rde | 20 + result/ent8.rdr | 21 + result/ent8.sax | 37 + result/ent8.sax2 | 37 + result/ent9 | 61 + result/ent9.rde | 300 + result/ent9.rdr | 280 + result/ent9.sax | 310 + result/ent9.sax2 | 310 + result/errors/attr1.xml | 0 result/errors/attr1.xml.err | 6 + result/errors/attr1.xml.str | 10 + result/errors/attr2.xml | 0 result/errors/attr2.xml.err | 6 + result/errors/attr2.xml.str | 10 + result/errors/attr3.xml | 6 + result/errors/attr3.xml.err | 3 + result/errors/attr3.xml.str | 3 + result/errors/attr4.xml | 0 result/errors/attr4.xml.err | 12 + result/errors/attr4.xml.str | 10 + result/errors/cdata.xml | 0 result/errors/cdata.xml.err | 4 + result/errors/cdata.xml.str | 5 + result/errors/charref1.xml | 0 result/errors/charref1.xml.err | 3 + result/errors/charref1.xml.str | 4 + result/errors/comment1.xml | 0 result/errors/comment1.xml.err | 6 + result/errors/comment1.xml.str | 4 + result/errors/content1.xml | 0 result/errors/content1.xml.err | 16 + result/errors/content1.xml.str | 14 + result/errors/extparsedent.xml | 5 + result/errors/extparsedent.xml.err | 0 result/errors/extparsedent.xml.str | 0 result/errors/name.xml | 0 result/errors/name.xml.err | 3 + result/errors/name.xml.str | 4 + result/errors/name2.xml | 0 result/errors/name2.xml.err | 6 + result/errors/name2.xml.str | 10 + result/eve.xml | 6 + result/eve.xml.rde | 5 + result/eve.xml.rdr | 5 + result/eve.xml.sax | 11 + result/eve.xml.sax2 | 11 + result/example.dtd | 0 result/expr/base | 85 + result/intsubset.xml | 5 + result/intsubset.xml.rde | 2 + result/intsubset.xml.rdr | 2 + result/intsubset.xml.sax | 9 + result/intsubset.xml.sax2 | 9 + result/intsubset2.xml | 250 + result/intsubset2.xml.rde | 5 + result/intsubset2.xml.rdr | 5 + result/intsubset2.xml.sax | 286 + result/intsubset2.xml.sax2 | 286 + result/isolat1 | 2 + result/isolat1.rde | 3 + result/isolat1.rdr | 3 + result/isolat1.sax | 7 + result/isolat1.sax2 | 7 + result/isolat2 | 107 + result/isolat2.rde | 108 + result/isolat2.rdr | 108 + result/isolat2.sax | 35 + result/isolat2.sax2 | 35 + result/isolat3 | 10 + result/isolat3.rde | 23 + result/isolat3.rdr | 23 + result/isolat3.sax | 29 + result/isolat3.sax2 | 29 + result/namespaces/err_0.xml | 2 + result/namespaces/err_0.xml.err | 0 result/namespaces/err_1.xml | 2 + result/namespaces/err_1.xml.err | 3 + result/namespaces/err_10.xml | 0 result/namespaces/err_10.xml.err | 3 + result/namespaces/err_11.xml | 0 result/namespaces/err_11.xml.err | 3 + result/namespaces/err_2.xml | 2 + result/namespaces/err_2.xml.err | 3 + result/namespaces/err_3.xml | 2 + result/namespaces/err_3.xml.err | 3 + result/namespaces/err_4.xml | 2 + result/namespaces/err_4.xml.err | 3 + result/namespaces/err_5.xml | 2 + result/namespaces/err_5.xml.err | 3 + result/namespaces/err_6.xml | 2 + result/namespaces/err_6.xml.err | 3 + result/namespaces/err_7.xml | 2 + result/namespaces/err_7.xml.err | 3 + result/namespaces/err_8.xml | 2 + result/namespaces/err_8.xml.err | 3 + result/namespaces/err_9.xml | 2 + result/namespaces/err_9.xml.err | 3 + result/noent/att1 | 2 + result/noent/att10 | 18 + result/noent/att11 | 9 + result/noent/att2 | 2 + result/noent/att3 | 2 + result/noent/att4 | 9264 +++++ result/noent/att5 | 40 + result/noent/att6 | 6 + result/noent/att7 | 11 + result/noent/att8 | 2 + result/noent/att9 | 6 + result/noent/attrib.xml | 2 + result/noent/badcomment.xml | 17 + result/noent/bigentname.xml | 6 + result/noent/bigname.xml | 2 + result/noent/bigname2.xml | 2 + result/noent/cdata | 4 + result/noent/cdata2 | 6 + result/noent/comment.xml | 6 + result/noent/comment2.xml | 6 + result/noent/comment3.xml | 164 + result/noent/comment4.xml | 5 + result/noent/comment5.xml | 9 + result/noent/comment6.xml | 14 + result/noent/dav1 | 25 + result/noent/dav10 | 4 + result/noent/dav11 | 21 + result/noent/dav12 | 2 + result/noent/dav13 | 16 + result/noent/dav15 | 20 + result/noent/dav16 | 6 + result/noent/dav17 | 22 + result/noent/dav18 | 6 + result/noent/dav19 | 18 + result/noent/dav2 | 24 + result/noent/dav3 | 18 + result/noent/dav4 | 16 + result/noent/dav5 | 17 + result/noent/dav6 | 22 + result/noent/dav7 | 16 + result/noent/dav8 | 14 + result/noent/dav9 | 18 + result/noent/defattr.xml | 6 + result/noent/defattr2.xml | 8 + result/noent/dia1 | 99 + result/noent/dia2 | 99 + result/noent/dtd1 | 4 + result/noent/dtd10 | 9 + result/noent/dtd11 | 6 + result/noent/dtd12 | 6 + result/noent/dtd13 | 7 + result/noent/dtd2 | 5 + result/noent/dtd3 | 5 + result/noent/dtd4 | 5 + result/noent/dtd5 | 7 + result/noent/dtd6 | 7 + result/noent/dtd7 | 7 + result/noent/dtd8 | 9 + result/noent/dtd9 | 9 + result/noent/ebcdic_566012.xml | 1 + result/noent/emptycdata.xml | 4 + result/noent/ent1 | 7 + result/noent/ent10 | 18 + result/noent/ent11 | 6 + result/noent/ent12 | 8 + result/noent/ent13 | 5 + result/noent/ent2 | 12 + result/noent/ent3 | 7 + result/noent/ent4 | 7 + result/noent/ent5 | 5 + result/noent/ent6 | 9 + result/noent/ent7 | 8 + result/noent/ent8 | 10 + result/noent/ent9 | 61 + result/noent/eve.xml | 6 + result/noent/intsubset.xml | 5 + result/noent/intsubset2.xml | 250 + result/noent/isolat1 | 2 + result/noent/isolat2 | 107 + result/noent/isolat3 | 10 + result/noent/ns | 4 + result/noent/ns2 | 2 + result/noent/ns3 | 2 + result/noent/ns4 | 2 + result/noent/ns5 | 4 + result/noent/ns6 | 5 + result/noent/ns7 | 2 + result/noent/nsclean.xml | 5 + result/noent/p3p | 19 + result/noent/pi.xml | 6 + result/noent/pi2.xml | 6 + result/noent/rdf1 | 81 + result/noent/rdf2 | 1899 + result/noent/slashdot.rdf | 65 + result/noent/slashdot.xml | 113 + result/noent/slashdot16.xml | Bin 0 -> 10374 bytes result/noent/svg1 | 161 + result/noent/svg2 | 56 + result/noent/svg3 | 723 + result/noent/title.xml | 2 + result/noent/tstblanks.xml | 2 + result/noent/utf16bebom.xml | Bin 0 -> 344 bytes result/noent/utf16bom.xml | Bin 0 -> 258 bytes result/noent/utf16lebom.xml | Bin 0 -> 344 bytes result/noent/utf8bom.xml | 2 + result/noent/wap.xml | 24 + result/noent/winblanks.xml | 6 + result/noent/wml.xml | 10 + result/noent/xhtml1 | 30 + result/noent/xhtmlcomp | 7 + result/noent/xml1 | 9 + result/noent/xml2 | 8 + result/ns | 4 + result/ns.rde | 7 + result/ns.rdr | 7 + result/ns.sax | 11 + result/ns.sax2 | 11 + result/ns2 | 2 + result/ns2.rde | 1 + result/ns2.rdr | 1 + result/ns2.sax | 5 + result/ns2.sax2 | 5 + result/ns3 | 2 + result/ns3.rde | 1 + result/ns3.rdr | 1 + result/ns3.sax | 5 + result/ns3.sax2 | 5 + result/ns4 | 2 + result/ns4.rde | 1 + result/ns4.rdr | 1 + result/ns4.sax | 5 + result/ns4.sax2 | 5 + result/ns5 | 4 + result/ns5.rde | 7 + result/ns5.rdr | 7 + result/ns5.sax | 11 + result/ns5.sax2 | 11 + result/ns6 | 5 + result/ns6.rde | 10 + result/ns6.rdr | 10 + result/ns6.sax | 15 + result/ns6.sax2 | 15 + result/ns7 | 2 + result/ns7.rde | 1 + result/ns7.rdr | 1 + result/ns7.sax | 5 + result/ns7.sax2 | 5 + result/nsclean.xml | 5 + result/nsclean.xml.rde | 10 + result/nsclean.xml.rdr | 10 + result/nsclean.xml.sax | 13 + result/nsclean.xml.sax2 | 13 + result/p3p | 19 + result/p3p.rde | 55 + result/p3p.rdr | 55 + result/p3p.sax | 63 + result/p3p.sax2 | 65 + result/pattern/conj | 47 + result/pattern/multiple | 91 + result/pattern/namespaces | 20 + result/pattern/simple | 12 + result/pi.xml | 6 + result/pi.xml.rde | 13 + result/pi.xml.rdr | 13 + result/pi.xml.sax | 17 + result/pi.xml.sax2 | 17 + result/pi2.xml | 6 + result/pi2.xml.rde | 9 + result/pi2.xml.rdr | 9 + result/pi2.xml.sax | 13 + result/pi2.xml.sax2 | 13 + result/rdf1 | 81 + result/rdf1.rde | 214 + result/rdf1.rdr | 214 + result/rdf1.sax | 186 + result/rdf1.sax2 | 186 + result/rdf2 | 1899 + result/rdf2.rde | 2008 + result/rdf2.rdr | 2008 + result/rdf2.sax | 191 + result/rdf2.sax2 | 191 + result/regexp/branch | 14 + result/regexp/bug316338 | 20 + result/regexp/bug420596 | 10 + result/regexp/content | 12 + result/regexp/hard | 12 + result/regexp/ncname | 6 + result/regexp/ranges | 15 + result/regexp/ranges2 | 14 + result/regexp/xpath | 32 + result/relaxng/302836_0 | 0 result/relaxng/302836_0.err | 1 + result/relaxng/302836_err | 1 + result/relaxng/302836_valid | 0 result/relaxng/307377_0 | 0 result/relaxng/307377_0.err | 2 + result/relaxng/307377_1 | 0 result/relaxng/307377_1.err | 3 + result/relaxng/307377_2 | 0 result/relaxng/307377_2.err | 1 + result/relaxng/307377_err | 1 + result/relaxng/307377_valid | 0 result/relaxng/492317_0 | 0 result/relaxng/492317_0.err | 1 + result/relaxng/492317_1 | 0 result/relaxng/492317_1.err | 1 + result/relaxng/492317_2 | 0 result/relaxng/492317_2.err | 3 + result/relaxng/492317_err | 1 + result/relaxng/492317_valid | 0 result/relaxng/558452_0 | 0 result/relaxng/558452_0.err | 1 + result/relaxng/558452_1 | 0 result/relaxng/558452_1.err | 2 + result/relaxng/558452_2 | 0 result/relaxng/558452_2.err | 1 + result/relaxng/558452_3 | 0 result/relaxng/558452_3.err | 1 + result/relaxng/558452_4 | 0 result/relaxng/558452_4.err | 2 + result/relaxng/558452_err | 1 + result/relaxng/558452_valid | 0 result/relaxng/595792-ext_err | 1 + result/relaxng/595792-ext_valid | 0 result/relaxng/595792_0 | 0 result/relaxng/595792_0.err | 1 + result/relaxng/595792_err | 1 + result/relaxng/595792_valid | 0 result/relaxng/OpenDocumentSub_0 | 0 result/relaxng/OpenDocumentSub_0.err | 1 + result/relaxng/OpenDocumentSub_err | 1 + result/relaxng/OpenDocumentSub_valid | 0 result/relaxng/addressBook_err | 1 + result/relaxng/addressBook_valid | 0 result/relaxng/choice0_0 | 0 result/relaxng/choice0_0.err | 1 + result/relaxng/choice0_1 | 0 result/relaxng/choice0_1.err | 1 + result/relaxng/choice0_2 | 0 result/relaxng/choice0_2.err | 1 + result/relaxng/choice0_3 | 0 result/relaxng/choice0_3.err | 1 + result/relaxng/choice0_4 | 0 result/relaxng/choice0_4.err | 2 + result/relaxng/choice0_5 | 0 result/relaxng/choice0_5.err | 2 + result/relaxng/choice0_6 | 0 result/relaxng/choice0_6.err | 2 + result/relaxng/choice0_7 | 0 result/relaxng/choice0_7.err | 3 + result/relaxng/choice0_8 | 0 result/relaxng/choice0_8.err | 3 + result/relaxng/choice0_err | 1 + result/relaxng/choice0_valid | 0 result/relaxng/compare0_0 | 0 result/relaxng/compare0_0.err | 3 + result/relaxng/compare0_err | 1 + result/relaxng/compare0_valid | 0 result/relaxng/comps_0 | 0 result/relaxng/comps_0.err | 1 + result/relaxng/comps_err | 1 + result/relaxng/comps_valid | 0 result/relaxng/demo2_err | 1 + result/relaxng/demo2_valid | 0 result/relaxng/demo3_err | 1 + result/relaxng/demo3_valid | 0 result/relaxng/demo_err | 1 + result/relaxng/demo_valid | 0 result/relaxng/docbook_0 | 0 result/relaxng/docbook_0.err | 1 + result/relaxng/docbook_err | 1 + result/relaxng/docbook_valid | 0 result/relaxng/empty0_0 | 0 result/relaxng/empty0_0.err | 1 + result/relaxng/empty0_err | 1 + result/relaxng/empty0_valid | 0 result/relaxng/empty1_0 | 0 result/relaxng/empty1_0.err | 1 + result/relaxng/empty1_1 | 0 result/relaxng/empty1_1.err | 1 + result/relaxng/empty1_err | 1 + result/relaxng/empty1_valid | 0 result/relaxng/inline2_err | 1 + result/relaxng/inline2_valid | 0 result/relaxng/inline3_err | 1 + result/relaxng/inline3_valid | 0 result/relaxng/inline_err | 1 + result/relaxng/inline_valid | 0 result/relaxng/interleave0_0_err | 1 + result/relaxng/interleave0_0_valid | 0 result/relaxng/interleave1_0_err | 1 + result/relaxng/interleave1_0_valid | 0 result/relaxng/libvirt_0 | 0 result/relaxng/libvirt_0.err | 1 + result/relaxng/libvirt_err | 1 + result/relaxng/libvirt_valid | 0 result/relaxng/list_0 | 0 result/relaxng/list_0.err | 1 + result/relaxng/list_1 | 0 result/relaxng/list_1.err | 2 + result/relaxng/list_err | 1 + result/relaxng/list_valid | 0 result/relaxng/pattern1_err | 1 + result/relaxng/pattern1_valid | 0 result/relaxng/pattern2_err | 1 + result/relaxng/pattern2_valid | 0 result/relaxng/proofsystem_err | 1 + result/relaxng/proofsystem_valid | 0 result/relaxng/rngbug-001_err | 1 + result/relaxng/rngbug-001_valid | 0 result/relaxng/spec1_1 | 0 result/relaxng/spec1_1.err | 1 + result/relaxng/spec1_err | 1 + result/relaxng/spec1_valid | 0 result/relaxng/spec_0 | 0 result/relaxng/spec_0.err | 1 + result/relaxng/spec_err | 1 + result/relaxng/spec_valid | 0 result/relaxng/table_err | 1 + result/relaxng/table_valid | 0 result/relaxng/tutor10_10_1 | 0 result/relaxng/tutor10_10_1.err | 1 + result/relaxng/tutor10_10_err | 1 + result/relaxng/tutor10_10_valid | 0 result/relaxng/tutor10_1_1 | 0 result/relaxng/tutor10_1_1.err | 1 + result/relaxng/tutor10_1_2 | 0 result/relaxng/tutor10_1_2.err | 1 + result/relaxng/tutor10_1_3 | 0 result/relaxng/tutor10_1_3.err | 1 + result/relaxng/tutor10_1_4 | 0 result/relaxng/tutor10_1_4.err | 2 + result/relaxng/tutor10_1_5 | 0 result/relaxng/tutor10_1_5.err | 2 + result/relaxng/tutor10_1_6 | 0 result/relaxng/tutor10_1_6.err | 2 + result/relaxng/tutor10_1_err | 1 + result/relaxng/tutor10_1_valid | 0 result/relaxng/tutor10_2_1 | 0 result/relaxng/tutor10_2_1.err | 1 + result/relaxng/tutor10_2_2 | 0 result/relaxng/tutor10_2_2.err | 1 + result/relaxng/tutor10_2_3 | 0 result/relaxng/tutor10_2_3.err | 2 + result/relaxng/tutor10_2_4 | 0 result/relaxng/tutor10_2_4.err | 2 + result/relaxng/tutor10_2_err | 1 + result/relaxng/tutor10_2_valid | 0 result/relaxng/tutor10_3_1 | 0 result/relaxng/tutor10_3_1.err | 1 + result/relaxng/tutor10_3_err | 1 + result/relaxng/tutor10_3_valid | 0 result/relaxng/tutor10_4_1 | 0 result/relaxng/tutor10_4_1.err | 1 + result/relaxng/tutor10_4_err | 1 + result/relaxng/tutor10_4_valid | 0 result/relaxng/tutor10_5_1 | 0 result/relaxng/tutor10_5_1.err | 1 + result/relaxng/tutor10_5_err | 1 + result/relaxng/tutor10_5_valid | 0 result/relaxng/tutor10_6_1 | 0 result/relaxng/tutor10_6_1.err | 1 + result/relaxng/tutor10_6_err | 1 + result/relaxng/tutor10_6_valid | 0 result/relaxng/tutor10_7_1 | 0 result/relaxng/tutor10_7_1.err | 1 + result/relaxng/tutor10_7_2 | 0 result/relaxng/tutor10_7_2.err | 1 + result/relaxng/tutor10_7_3 | 0 result/relaxng/tutor10_7_3.err | 2 + result/relaxng/tutor10_7_err | 1 + result/relaxng/tutor10_7_valid | 0 result/relaxng/tutor10_8_1 | 0 result/relaxng/tutor10_8_1.err | 1 + result/relaxng/tutor10_8_2 | 0 result/relaxng/tutor10_8_2.err | 1 + result/relaxng/tutor10_8_3 | 0 result/relaxng/tutor10_8_3.err | 2 + result/relaxng/tutor10_8_err | 1 + result/relaxng/tutor10_8_valid | 0 result/relaxng/tutor10_9_1 | 0 result/relaxng/tutor10_9_1.err | 1 + result/relaxng/tutor10_9_err | 1 + result/relaxng/tutor10_9_valid | 0 result/relaxng/tutor11_1_1 | 0 result/relaxng/tutor11_1_1.err | 1 + result/relaxng/tutor11_1_2 | 0 result/relaxng/tutor11_1_2.err | 1 + result/relaxng/tutor11_1_3 | 0 result/relaxng/tutor11_1_3.err | 1 + result/relaxng/tutor11_1_err | 1 + result/relaxng/tutor11_1_valid | 0 result/relaxng/tutor11_2_1 | 0 result/relaxng/tutor11_2_1.err | 1 + result/relaxng/tutor11_2_2 | 0 result/relaxng/tutor11_2_2.err | 2 + result/relaxng/tutor11_2_3 | 0 result/relaxng/tutor11_2_3.err | 2 + result/relaxng/tutor11_2_err | 1 + result/relaxng/tutor11_2_valid | 0 result/relaxng/tutor11_3_1 | 0 result/relaxng/tutor11_3_1.err | 2 + result/relaxng/tutor11_3_err | 1 + result/relaxng/tutor11_3_valid | 0 result/relaxng/tutor11_4_1 | 0 result/relaxng/tutor11_4_1.err | 1 + result/relaxng/tutor11_4_err | 1 + result/relaxng/tutor11_4_valid | 0 result/relaxng/tutor12_1_1 | 0 result/relaxng/tutor12_1_1.err | 1 + result/relaxng/tutor12_1_err | 1 + result/relaxng/tutor12_1_valid | 0 result/relaxng/tutor13_1_1 | 0 result/relaxng/tutor13_1_1.err | 1 + result/relaxng/tutor13_1_err | 1 + result/relaxng/tutor13_1_valid | 0 result/relaxng/tutor14_1_err | 1 + result/relaxng/tutor14_1_valid | 0 result/relaxng/tutor1_1_1 | 0 result/relaxng/tutor1_1_1.err | 1 + result/relaxng/tutor1_1_err | 1 + result/relaxng/tutor1_1_valid | 0 result/relaxng/tutor1_2_1 | 0 result/relaxng/tutor1_2_1.err | 1 + result/relaxng/tutor1_2_err | 1 + result/relaxng/tutor1_2_valid | 0 result/relaxng/tutor1_3_1 | 0 result/relaxng/tutor1_3_1.err | 1 + result/relaxng/tutor1_3_err | 1 + result/relaxng/tutor1_3_valid | 0 result/relaxng/tutor1_4_1 | 0 result/relaxng/tutor1_4_1.err | 1 + result/relaxng/tutor1_4_err | 1 + result/relaxng/tutor1_4_valid | 0 result/relaxng/tutor2_1_1 | 0 result/relaxng/tutor2_1_1.err | 1 + result/relaxng/tutor2_1_err | 1 + result/relaxng/tutor2_1_valid | 0 result/relaxng/tutor3_1_1 | 0 result/relaxng/tutor3_1_1.err | 1 + result/relaxng/tutor3_1_2 | 0 result/relaxng/tutor3_1_2.err | 1 + result/relaxng/tutor3_1_err | 1 + result/relaxng/tutor3_1_valid | 0 result/relaxng/tutor3_2_1 | 0 result/relaxng/tutor3_2_1.err | 2 + result/relaxng/tutor3_2_err | 1 + result/relaxng/tutor3_2_valid | 0 result/relaxng/tutor3_3_1 | 0 result/relaxng/tutor3_3_1.err | 1 + result/relaxng/tutor3_3_err | 1 + result/relaxng/tutor3_3_valid | 0 result/relaxng/tutor3_4_1 | 0 result/relaxng/tutor3_4_1.err | 1 + result/relaxng/tutor3_4_err | 1 + result/relaxng/tutor3_4_valid | 0 result/relaxng/tutor3_5_1 | 0 result/relaxng/tutor3_5_1.err | 1 + result/relaxng/tutor3_5_2 | 0 result/relaxng/tutor3_5_2.err | 3 + result/relaxng/tutor3_5_err | 1 + result/relaxng/tutor3_5_valid | 0 result/relaxng/tutor3_6_1 | 0 result/relaxng/tutor3_6_1.err | 1 + result/relaxng/tutor3_6_err | 1 + result/relaxng/tutor3_6_valid | 0 result/relaxng/tutor3_7_1 | 0 result/relaxng/tutor3_7_1.err | 2 + result/relaxng/tutor3_7_err | 4 + result/relaxng/tutor3_7_valid | 0 result/relaxng/tutor3_8_1 | 0 result/relaxng/tutor3_8_1.err | 1 + result/relaxng/tutor3_8_err | 1 + result/relaxng/tutor3_8_valid | 0 result/relaxng/tutor3_9_1 | 0 result/relaxng/tutor3_9_1.err | 1 + result/relaxng/tutor3_9_err | 1 + result/relaxng/tutor3_9_valid | 0 result/relaxng/tutor4_1_1 | 0 result/relaxng/tutor4_1_1.err | 1 + result/relaxng/tutor4_1_err | 1 + result/relaxng/tutor4_1_valid | 0 result/relaxng/tutor4_2_1 | 0 result/relaxng/tutor4_2_1.err | 1 + result/relaxng/tutor4_2_err | 1 + result/relaxng/tutor4_2_valid | 0 result/relaxng/tutor4_3_1 | 0 result/relaxng/tutor4_3_1.err | 1 + result/relaxng/tutor4_3_2 | 0 result/relaxng/tutor4_3_2.err | 1 + result/relaxng/tutor4_3_3 | 0 result/relaxng/tutor4_3_3.err | 1 + result/relaxng/tutor4_3_4 | 0 result/relaxng/tutor4_3_4.err | 1 + result/relaxng/tutor4_3_5 | 0 result/relaxng/tutor4_3_5.err | 1 + result/relaxng/tutor4_3_6 | 0 result/relaxng/tutor4_3_6.err | 1 + result/relaxng/tutor4_3_err | 1 + result/relaxng/tutor4_3_valid | 0 result/relaxng/tutor4_4_1 | 0 result/relaxng/tutor4_4_1.err | 2 + result/relaxng/tutor4_4_err | 1 + result/relaxng/tutor4_4_valid | 0 result/relaxng/tutor5_1_1 | 0 result/relaxng/tutor5_1_1.err | 1 + result/relaxng/tutor5_1_err | 1 + result/relaxng/tutor5_1_valid | 0 result/relaxng/tutor5_2_1 | 0 result/relaxng/tutor5_2_1.err | 1 + result/relaxng/tutor5_2_err | 1 + result/relaxng/tutor5_2_valid | 0 result/relaxng/tutor5_3_1 | 0 result/relaxng/tutor5_3_1.err | 2 + result/relaxng/tutor5_3_err | 1 + result/relaxng/tutor5_3_valid | 0 result/relaxng/tutor5_4_1 | 0 result/relaxng/tutor5_4_1.err | 1 + result/relaxng/tutor5_4_err | 1 + result/relaxng/tutor5_4_valid | 0 result/relaxng/tutor5_5_err | 1 + result/relaxng/tutor5_5_valid | 0 result/relaxng/tutor6_1_1 | 0 result/relaxng/tutor6_1_1.err | 1 + result/relaxng/tutor6_1_2 | 0 result/relaxng/tutor6_1_2.err | 1 + result/relaxng/tutor6_1_3 | 0 result/relaxng/tutor6_1_3.err | 2 + result/relaxng/tutor6_1_4 | 0 result/relaxng/tutor6_1_4.err | 1 + result/relaxng/tutor6_1_5 | 0 result/relaxng/tutor6_1_5.err | 1 + result/relaxng/tutor6_1_err | 1 + result/relaxng/tutor6_1_valid | 0 result/relaxng/tutor6_2_1 | 0 result/relaxng/tutor6_2_1.err | 1 + result/relaxng/tutor6_2_2 | 0 result/relaxng/tutor6_2_2.err | 1 + result/relaxng/tutor6_2_3 | 0 result/relaxng/tutor6_2_3.err | 1 + result/relaxng/tutor6_2_4 | 0 result/relaxng/tutor6_2_4.err | 3 + result/relaxng/tutor6_2_err | 1 + result/relaxng/tutor6_2_valid | 0 result/relaxng/tutor6_3_1 | 0 result/relaxng/tutor6_3_1.err | 2 + result/relaxng/tutor6_3_err | 1 + result/relaxng/tutor6_3_valid | 0 result/relaxng/tutor7_1_1 | 0 result/relaxng/tutor7_1_1.err | 1 + result/relaxng/tutor7_1_2 | 0 result/relaxng/tutor7_1_2.err | 4 + result/relaxng/tutor7_1_3 | 0 result/relaxng/tutor7_1_3.err | 4 + result/relaxng/tutor7_1_4 | 0 result/relaxng/tutor7_1_4.err | 1 + result/relaxng/tutor7_1_err | 1 + result/relaxng/tutor7_1_valid | 0 result/relaxng/tutor7_2_1 | 0 result/relaxng/tutor7_2_1.err | 1 + result/relaxng/tutor7_2_2 | 0 result/relaxng/tutor7_2_2.err | 1 + result/relaxng/tutor7_2_3 | 0 result/relaxng/tutor7_2_3.err | 1 + result/relaxng/tutor7_2_4 | 0 result/relaxng/tutor7_2_4.err | 4 + result/relaxng/tutor7_2_err | 1 + result/relaxng/tutor7_2_valid | 0 result/relaxng/tutor7_3_1 | 0 result/relaxng/tutor7_3_1.err | 1 + result/relaxng/tutor7_3_2 | 0 result/relaxng/tutor7_3_2.err | 1 + result/relaxng/tutor7_3_3 | 0 result/relaxng/tutor7_3_3.err | 1 + result/relaxng/tutor7_3_4 | 0 result/relaxng/tutor7_3_4.err | 4 + result/relaxng/tutor7_3_5 | 0 result/relaxng/tutor7_3_5.err | 4 + result/relaxng/tutor7_3_err | 1 + result/relaxng/tutor7_3_valid | 0 result/relaxng/tutor8_1_1 | 0 result/relaxng/tutor8_1_1.err | 1 + result/relaxng/tutor8_1_2 | 0 result/relaxng/tutor8_1_2.err | 1 + result/relaxng/tutor8_1_err | 1 + result/relaxng/tutor8_1_valid | 0 result/relaxng/tutor8_2_1 | 0 result/relaxng/tutor8_2_1.err | 1 + result/relaxng/tutor8_2_2 | 0 result/relaxng/tutor8_2_2.err | 1 + result/relaxng/tutor8_2_3 | 0 result/relaxng/tutor8_2_3.err | 1 + result/relaxng/tutor8_2_4 | 0 result/relaxng/tutor8_2_4.err | 3 + result/relaxng/tutor8_2_5 | 0 result/relaxng/tutor8_2_5.err | 4 + result/relaxng/tutor8_2_6 | 0 result/relaxng/tutor8_2_6.err | 3 + result/relaxng/tutor8_2_err | 1 + result/relaxng/tutor8_2_valid | 0 result/relaxng/tutor8_3_1 | 0 result/relaxng/tutor8_3_1.err | 1 + result/relaxng/tutor8_3_err | 1 + result/relaxng/tutor8_3_valid | 0 result/relaxng/tutor9_10_1 | 0 result/relaxng/tutor9_10_1.err | 1 + result/relaxng/tutor9_10_err | 1 + result/relaxng/tutor9_10_valid | 0 result/relaxng/tutor9_11_1 | 0 result/relaxng/tutor9_11_1.err | 1 + result/relaxng/tutor9_11_err | 1 + result/relaxng/tutor9_11_valid | 0 result/relaxng/tutor9_12_1 | 0 result/relaxng/tutor9_12_1.err | 1 + result/relaxng/tutor9_12_err | 1 + result/relaxng/tutor9_12_valid | 0 result/relaxng/tutor9_1_1 | 0 result/relaxng/tutor9_1_1.err | 1 + result/relaxng/tutor9_1_err | 1 + result/relaxng/tutor9_1_valid | 0 result/relaxng/tutor9_2_1 | 0 result/relaxng/tutor9_2_1.err | 1 + result/relaxng/tutor9_2_2 | 0 result/relaxng/tutor9_2_2.err | 1 + result/relaxng/tutor9_2_err | 1 + result/relaxng/tutor9_2_valid | 0 result/relaxng/tutor9_3_1 | 0 result/relaxng/tutor9_3_1.err | 1 + result/relaxng/tutor9_3_2 | 0 result/relaxng/tutor9_3_2.err | 1 + result/relaxng/tutor9_3_err | 1 + result/relaxng/tutor9_3_valid | 0 result/relaxng/tutor9_4_1 | 0 result/relaxng/tutor9_4_1.err | 1 + result/relaxng/tutor9_4_2 | 0 result/relaxng/tutor9_4_2.err | 1 + result/relaxng/tutor9_4_err | 1 + result/relaxng/tutor9_4_valid | 0 result/relaxng/tutor9_5_1 | 0 result/relaxng/tutor9_5_1.err | 1 + result/relaxng/tutor9_5_2 | 0 result/relaxng/tutor9_5_2.err | 3 + result/relaxng/tutor9_5_3 | 0 result/relaxng/tutor9_5_3.err | 2 + result/relaxng/tutor9_5_err | 1 + result/relaxng/tutor9_5_valid | 0 result/relaxng/tutor9_6.rng | 24 + result/relaxng/tutor9_6_1 | 0 result/relaxng/tutor9_6_1.err | 1 + result/relaxng/tutor9_6_2 | 0 result/relaxng/tutor9_6_2.err | 2 + result/relaxng/tutor9_6_3 | 0 result/relaxng/tutor9_6_3.err | 2 + result/relaxng/tutor9_6_err | 1 + result/relaxng/tutor9_6_valid | 0 result/relaxng/tutor9_7_1 | 0 result/relaxng/tutor9_7_1.err | 1 + result/relaxng/tutor9_7_err | 1 + result/relaxng/tutor9_7_valid | 0 result/relaxng/tutor9_8_1 | 0 result/relaxng/tutor9_8_1.err | 1 + result/relaxng/tutor9_8_err | 1 + result/relaxng/tutor9_8_valid | 0 result/relaxng/tutor9_9_1 | 0 result/relaxng/tutor9_9_1.err | 1 + result/relaxng/tutor9_9_err | 1 + result/relaxng/tutor9_9_valid | 0 result/relaxng/tutorA_err | 1 + result/relaxng/tutorA_valid | 0 result/schemas/570702_0_0 | 1 + result/schemas/570702_0_0.err | 0 result/schemas/579746_0_0 | 1 + result/schemas/579746_0_0.err | 0 result/schemas/579746_0_1 | 1 + result/schemas/579746_0_1.err | 0 result/schemas/579746_0_2 | 1 + result/schemas/579746_0_2.err | 0 result/schemas/579746_0_3 | 1 + result/schemas/579746_0_3.err | 1 + result/schemas/579746_0_4 | 1 + result/schemas/579746_0_4.err | 0 result/schemas/579746_0_5 | 1 + result/schemas/579746_0_5.err | 1 + result/schemas/579746_1_0 | 1 + result/schemas/579746_1_0.err | 0 result/schemas/579746_1_1 | 1 + result/schemas/579746_1_1.err | 0 result/schemas/579746_1_2 | 1 + result/schemas/579746_1_2.err | 0 result/schemas/579746_1_3 | 1 + result/schemas/579746_1_3.err | 1 + result/schemas/579746_1_4 | 1 + result/schemas/579746_1_4.err | 0 result/schemas/579746_1_5 | 1 + result/schemas/579746_1_5.err | 1 + result/schemas/582887_0_0 | 1 + result/schemas/582887_0_0.err | 0 result/schemas/582906-1_0_0 | 1 + result/schemas/582906-1_0_0.err | 0 result/schemas/582906-2_0_0 | 0 result/schemas/582906-2_0_0.err | 1 + result/schemas/all1_0_0 | 1 + result/schemas/all1_0_0.err | 0 result/schemas/all_0_0 | 1 + result/schemas/all_0_0.err | 0 result/schemas/all_0_1 | 1 + result/schemas/all_0_1.err | 0 result/schemas/all_0_2 | 1 + result/schemas/all_0_2.err | 0 result/schemas/all_0_3 | 1 + result/schemas/all_0_3.err | 1 + result/schemas/all_0_4 | 1 + result/schemas/all_0_4.err | 1 + result/schemas/all_0_5 | 1 + result/schemas/all_0_5.err | 1 + result/schemas/all_0_6 | 1 + result/schemas/all_0_6.err | 1 + result/schemas/all_0_7 | 1 + result/schemas/all_0_7.err | 1 + result/schemas/all_1_0 | 1 + result/schemas/all_1_0.err | 0 result/schemas/all_1_1 | 1 + result/schemas/all_1_1.err | 0 result/schemas/all_1_2 | 1 + result/schemas/all_1_2.err | 0 result/schemas/all_1_3 | 1 + result/schemas/all_1_3.err | 1 + result/schemas/all_1_4 | 1 + result/schemas/all_1_4.err | 0 result/schemas/all_1_5 | 1 + result/schemas/all_1_5.err | 1 + result/schemas/all_1_6 | 1 + result/schemas/all_1_6.err | 1 + result/schemas/all_1_7 | 1 + result/schemas/all_1_7.err | 1 + result/schemas/all_2_0 | 1 + result/schemas/all_2_0.err | 1 + result/schemas/all_2_1 | 1 + result/schemas/all_2_1.err | 1 + result/schemas/all_2_2 | 1 + result/schemas/all_2_2.err | 1 + result/schemas/all_2_3 | 1 + result/schemas/all_2_3.err | 0 result/schemas/all_2_4 | 1 + result/schemas/all_2_4.err | 1 + result/schemas/all_2_5 | 1 + result/schemas/all_2_5.err | 1 + result/schemas/all_2_6 | 1 + result/schemas/all_2_6.err | 0 result/schemas/all_2_7 | 1 + result/schemas/all_2_7.err | 0 result/schemas/allsg_0_0 | 1 + result/schemas/allsg_0_0.err | 0 result/schemas/allsg_0_1 | 1 + result/schemas/allsg_0_1.err | 0 result/schemas/allsg_0_2 | 1 + result/schemas/allsg_0_2.err | 0 result/schemas/allsg_0_3 | 1 + result/schemas/allsg_0_3.err | 1 + result/schemas/allsg_0_4 | 1 + result/schemas/allsg_0_4.err | 1 + result/schemas/allsg_0_5 | 1 + result/schemas/allsg_0_5.err | 1 + result/schemas/annot-err_0_0 | 0 result/schemas/annot-err_0_0.err | 7 + result/schemas/any1_0_0 | 1 + result/schemas/any1_0_0.err | 0 result/schemas/any2_0_0 | 1 + result/schemas/any2_0_0.err | 0 result/schemas/any3_0_0 | 1 + result/schemas/any3_0_0.err | 1 + result/schemas/any4_0_0 | 1 + result/schemas/any4_0_0.err | 0 result/schemas/any5_0_0 | 1 + result/schemas/any5_0_0.err | 1 + result/schemas/any5_0_1 | 1 + result/schemas/any5_0_1.err | 1 + result/schemas/any5_0_2 | 1 + result/schemas/any5_0_2.err | 1 + result/schemas/any5_0_3 | 1 + result/schemas/any5_0_3.err | 0 result/schemas/any5_0_4 | 1 + result/schemas/any5_0_4.err | 1 + result/schemas/any5_0_5 | 1 + result/schemas/any5_0_5.err | 1 + result/schemas/any5_0_6 | 1 + result/schemas/any5_0_6.err | 1 + result/schemas/any5_1_0 | 1 + result/schemas/any5_1_0.err | 1 + result/schemas/any5_1_1 | 1 + result/schemas/any5_1_1.err | 1 + result/schemas/any5_1_2 | 1 + result/schemas/any5_1_2.err | 0 result/schemas/any5_1_3 | 1 + result/schemas/any5_1_3.err | 1 + result/schemas/any5_1_4 | 1 + result/schemas/any5_1_4.err | 1 + result/schemas/any5_1_5 | 1 + result/schemas/any5_1_5.err | 0 result/schemas/any5_1_6 | 1 + result/schemas/any5_1_6.err | 1 + result/schemas/any6_1_0 | 1 + result/schemas/any6_1_0.err | 0 result/schemas/any6_2_0 | 1 + result/schemas/any6_2_0.err | 0 result/schemas/any7_1_0 | 1 + result/schemas/any7_1_0.err | 1 + result/schemas/any7_1_1 | 1 + result/schemas/any7_1_1.err | 1 + result/schemas/any7_1_2 | 1 + result/schemas/any7_1_2.err | 0 result/schemas/any7_2_0 | 1 + result/schemas/any7_2_0.err | 1 + result/schemas/any7_2_1 | 1 + result/schemas/any7_2_1.err | 1 + result/schemas/any7_2_2 | 1 + result/schemas/any7_2_2.err | 0 result/schemas/any8_1_0 | 1 + result/schemas/any8_1_0.err | 0 result/schemas/anyAttr-derive-errors1_0_0 | 1 + result/schemas/anyAttr-derive-errors1_0_0.err | 0 result/schemas/anyAttr-derive1_0_0 | 1 + result/schemas/anyAttr-derive1_0_0.err | 0 result/schemas/anyAttr-derive2_0_0 | 1 + result/schemas/anyAttr-derive2_0_0.err | 0 result/schemas/anyAttr-processContents-err1_0_0 | 1 + .../schemas/anyAttr-processContents-err1_0_0.err | 2 + result/schemas/anyAttr-processContents1_0_0 | 1 + result/schemas/anyAttr-processContents1_0_0.err | 0 result/schemas/anyAttr1_0_0 | 1 + result/schemas/anyAttr1_0_0.err | 0 result/schemas/attr0_0_0 | 1 + result/schemas/attr0_0_0.err | 0 result/schemas/attruse_0_0 | 1 + result/schemas/attruse_0_0.err | 0 result/schemas/attruse_0_1 | 1 + result/schemas/attruse_0_1.err | 1 + result/schemas/attruse_0_2 | 1 + result/schemas/attruse_0_2.err | 1 + result/schemas/bug141312_0_0 | 1 + result/schemas/bug141312_0_0.err | 0 result/schemas/bug141333_0_0 | 1 + result/schemas/bug141333_0_0.err | 0 result/schemas/bug143951_0_0 | 1 + result/schemas/bug143951_0_0.err | 0 result/schemas/bug145246_0_0 | 1 + result/schemas/bug145246_0_0.err | 0 result/schemas/bug152470_1_1 | 1 + result/schemas/bug152470_1_1.err | 0 result/schemas/bug167754_0_0 | 1 + result/schemas/bug167754_0_0.err | 0 result/schemas/bug303566_1_1 | 1 + result/schemas/bug303566_1_1.err | 1 + result/schemas/bug306806_1_0 | 1 + result/schemas/bug306806_1_0.err | 0 result/schemas/bug309338_1_0 | 1 + result/schemas/bug309338_1_0.err | 0 result/schemas/bug310264_0_0 | 1 + result/schemas/bug310264_0_0.err | 0 result/schemas/bug312957_1_0 | 1 + result/schemas/bug312957_1_0.err | 1 + result/schemas/bug313982_0_0 | 1 + result/schemas/bug313982_0_0.err | 0 result/schemas/bug321475_1_0 | 1 + result/schemas/bug321475_1_0.err | 0 result/schemas/bug322411_1_0 | 1 + result/schemas/bug322411_1_0.err | 0 result/schemas/bug323510_1_0 | 1 + result/schemas/bug323510_1_0.err | 1 + result/schemas/bug455953_0_0 | 1 + result/schemas/bug455953_0_0.err | 0 result/schemas/changelog093_1_0 | 1 + result/schemas/changelog093_1_0.err | 1 + result/schemas/choice_0_0 | 1 + result/schemas/choice_0_0.err | 0 result/schemas/choice_0_1 | 1 + result/schemas/choice_0_1.err | 0 result/schemas/choice_0_2 | 1 + result/schemas/choice_0_2.err | 1 + result/schemas/choice_0_3 | 1 + result/schemas/choice_0_3.err | 1 + result/schemas/choice_0_4 | 1 + result/schemas/choice_0_4.err | 1 + result/schemas/choice_0_5 | 1 + result/schemas/choice_0_5.err | 1 + result/schemas/choice_0_6 | 1 + result/schemas/choice_0_6.err | 1 + result/schemas/choice_1_0 | 1 + result/schemas/choice_1_0.err | 0 result/schemas/choice_1_1 | 1 + result/schemas/choice_1_1.err | 0 result/schemas/choice_1_2 | 1 + result/schemas/choice_1_2.err | 1 + result/schemas/choice_1_3 | 1 + result/schemas/choice_1_3.err | 1 + result/schemas/choice_1_4 | 1 + result/schemas/choice_1_4.err | 0 result/schemas/choice_1_5 | 1 + result/schemas/choice_1_5.err | 1 + result/schemas/choice_1_6 | 1 + result/schemas/choice_1_6.err | 1 + result/schemas/choice_2_0 | 1 + result/schemas/choice_2_0.err | 0 result/schemas/choice_2_1 | 1 + result/schemas/choice_2_1.err | 0 result/schemas/choice_2_2 | 1 + result/schemas/choice_2_2.err | 0 result/schemas/choice_2_3 | 1 + result/schemas/choice_2_3.err | 0 result/schemas/choice_2_4 | 1 + result/schemas/choice_2_4.err | 1 + result/schemas/choice_2_5 | 1 + result/schemas/choice_2_5.err | 0 result/schemas/choice_2_6 | 1 + result/schemas/choice_2_6.err | 1 + result/schemas/complex-type-extension_0_0 | 1 + result/schemas/complex-type-extension_0_0.err | 0 result/schemas/cos-ct-extends-1-3_0_0 | 1 + result/schemas/cos-ct-extends-1-3_0_0.err | 0 result/schemas/cos-st-restricts-1-2-err_0_0 | 1 + result/schemas/cos-st-restricts-1-2-err_0_0.err | 2 + result/schemas/ct-sc-nobase_0_0 | 1 + result/schemas/ct-sc-nobase_0_0.err | 0 result/schemas/date_0_0 | 1 + result/schemas/date_0_0.err | 0 result/schemas/decimal-1_1_0 | 1 + result/schemas/decimal-1_1_0.err | 8 + result/schemas/decimal-2_1_0 | 1 + result/schemas/decimal-2_1_0.err | 4 + result/schemas/decimal-3_1_0 | 1 + result/schemas/decimal-3_1_0.err | 8 + result/schemas/derivation-ok-extension-err_0_0 | 0 result/schemas/derivation-ok-extension-err_0_0.err | 1 + result/schemas/derivation-ok-extension_0_0 | 1 + result/schemas/derivation-ok-extension_0_0.err | 1 + result/schemas/derivation-ok-restriction-2-1-1_0_0 | 0 .../derivation-ok-restriction-2-1-1_0_0.err | 6 + .../schemas/derivation-ok-restriction-4-1-err_0_0 | 0 .../derivation-ok-restriction-4-1-err_0_0.err | 3 + result/schemas/derivation-restriction-anyAttr_0_0 | 1 + .../schemas/derivation-restriction-anyAttr_0_0.err | 0 result/schemas/deter0_0_0 | 0 result/schemas/deter0_0_0.err | 1 + result/schemas/dur_0_0 | 1 + result/schemas/dur_0_0.err | 0 result/schemas/elem0_0_0 | 1 + result/schemas/elem0_0_0.err | 0 result/schemas/element-err_0_0 | 0 result/schemas/element-err_0_0.err | 20 + result/schemas/element-minmax-err_0_0 | 0 result/schemas/element-minmax-err_0_0.err | 1 + result/schemas/empty-value_1_0 | 1 + result/schemas/empty-value_1_0.err | 0 result/schemas/empty-value_1_1 | 1 + result/schemas/empty-value_1_1.err | 0 result/schemas/empty_0_0 | 1 + result/schemas/empty_0_0.err | 0 result/schemas/empty_1_0 | 1 + result/schemas/empty_1_0.err | 0 result/schemas/extension0_0_0 | 1 + result/schemas/extension0_0_0.err | 0 result/schemas/extension1_0_0 | 1 + result/schemas/extension1_0_0.err | 0 result/schemas/extension1_0_1 | 1 + result/schemas/extension1_0_1.err | 1 + result/schemas/extension1_0_2 | 1 + result/schemas/extension1_0_2.err | 1 + result/schemas/extension2_1_0 | 1 + result/schemas/extension2_1_0.err | 0 result/schemas/facet-unionST-err1_0_0 | 1 + result/schemas/facet-unionST-err1_0_0.err | 1 + result/schemas/facet-whiteSpace_0_0 | 1 + result/schemas/facet-whiteSpace_0_0.err | 0 result/schemas/group0_0_0 | 1 + result/schemas/group0_0_0.err | 0 result/schemas/hexbinary_0_0 | 1 + result/schemas/hexbinary_0_0.err | 0 result/schemas/hexbinary_0_1 | 1 + result/schemas/hexbinary_0_1.err | 10 + result/schemas/idc-keyref-err1_1_0 | 1 + result/schemas/idc-keyref-err1_1_0.err | 1 + result/schemas/import0_0_0 | 1 + result/schemas/import0_0_0.err | 0 result/schemas/import1_0_0 | 0 result/schemas/import1_0_0.err | 4 + result/schemas/import2_0_0 | 1 + result/schemas/import2_0_0.err | 0 result/schemas/include1_0_0 | 1 + result/schemas/include1_0_0.err | 0 result/schemas/include2_0_0 | 1 + result/schemas/include2_0_0.err | 0 result/schemas/include3_0_0 | 0 result/schemas/include3_0_0.err | 1 + result/schemas/item_0_0 | 1 + result/schemas/item_0_0.err | 0 result/schemas/item_1_0 | 1 + result/schemas/item_1_0.err | 0 result/schemas/length1_0_0 | 1 + result/schemas/length1_0_0.err | 0 result/schemas/length2_0_0 | 1 + result/schemas/length2_0_0.err | 0 result/schemas/length3_0_0 | 0 result/schemas/length3_0_0.err | 1 + result/schemas/list0_0_0 | 1 + result/schemas/list0_0_0.err | 0 result/schemas/list0_0_1 | 1 + result/schemas/list0_0_1.err | 1 + result/schemas/list0_0_2 | 1 + result/schemas/list0_0_2.err | 0 result/schemas/list0_1_0 | 1 + result/schemas/list0_1_0.err | 1 + result/schemas/list0_1_1 | 1 + result/schemas/list0_1_1.err | 1 + result/schemas/list0_1_2 | 1 + result/schemas/list0_1_2.err | 0 result/schemas/mixed0_0_0 | 1 + result/schemas/mixed0_0_0.err | 0 result/schemas/mixed1_0_0 | 1 + result/schemas/mixed1_0_0.err | 0 result/schemas/ns0_0_0 | 1 + result/schemas/ns0_0_0.err | 0 result/schemas/ns0_0_1 | 1 + result/schemas/ns0_0_1.err | 0 result/schemas/ns0_0_2 | 1 + result/schemas/ns0_0_2.err | 1 + result/schemas/ns0_0_3 | 1 + result/schemas/ns0_0_3.err | 1 + result/schemas/ns0_0_4 | 1 + result/schemas/ns0_0_4.err | 1 + result/schemas/ns0_1_0 | 1 + result/schemas/ns0_1_0.err | 1 + result/schemas/ns0_1_1 | 1 + result/schemas/ns0_1_1.err | 1 + result/schemas/ns0_1_2 | 1 + result/schemas/ns0_1_2.err | 1 + result/schemas/ns0_1_3 | 1 + result/schemas/ns0_1_3.err | 0 result/schemas/ns0_1_4 | 1 + result/schemas/ns0_1_4.err | 0 result/schemas/ns1_0_0 | 1 + result/schemas/ns1_0_0.err | 0 result/schemas/ns2_0_0 | 1 + result/schemas/ns2_0_0.err | 0 result/schemas/nvdcve_0_0 | 1 + result/schemas/nvdcve_0_0.err | 0 result/schemas/po0_0_0 | 1 + result/schemas/po0_0_0.err | 0 result/schemas/po1_0_0 | 1 + result/schemas/po1_0_0.err | 0 result/schemas/poschargrp0_0_0 | 1 + result/schemas/poschargrp0_0_0.err | 0 result/schemas/regexp-char-ref_0_0 | 1 + result/schemas/regexp-char-ref_1_0 | 1 + result/schemas/restrict-CT-attr-ref_0_0 | 1 + result/schemas/restrict-CT-attr-ref_0_0.err | 0 result/schemas/restriction-attr1_0_0 | 0 result/schemas/restriction-attr1_0_0.err | 1 + result/schemas/restriction-enum-1_1_0 | 1 + result/schemas/restriction-enum-1_1_0.err | 2 + result/schemas/restriction0_0_0 | 1 + result/schemas/restriction0_0_0.err | 0 result/schemas/scc-no-xmlns_0_0 | 0 result/schemas/scc-no-xmlns_0_0.err | 1 + result/schemas/scc-no-xsi_0_0 | 0 result/schemas/scc-no-xsi_0_0.err | 1 + result/schemas/seq-dubl-elem1_0_0 | 1 + result/schemas/seq-dubl-elem1_0_0.err | 0 result/schemas/seq0_0_0 | 1 + result/schemas/seq0_0_0.err | 0 result/schemas/src-attribute1_0_0 | 0 result/schemas/src-attribute1_0_0.err | 1 + result/schemas/src-attribute2_0_0 | 0 result/schemas/src-attribute2_0_0.err | 1 + result/schemas/src-attribute3-1_0_0 | 0 result/schemas/src-attribute3-1_0_0.err | 1 + result/schemas/src-attribute3-2-form_0_0 | 0 result/schemas/src-attribute3-2-form_0_0.err | 1 + result/schemas/src-attribute3-2-st_0_0 | 0 result/schemas/src-attribute3-2-st_0_0.err | 1 + result/schemas/src-attribute3-2-type_0_0 | 0 result/schemas/src-attribute3-2-type_0_0.err | 1 + result/schemas/src-attribute4_0_0 | 0 result/schemas/src-attribute4_0_0.err | 1 + result/schemas/src-element1_0_0 | 0 result/schemas/src-element1_0_0.err | 1 + result/schemas/src-element2-1_0_0 | 0 result/schemas/src-element2-1_0_0.err | 1 + result/schemas/src-element2-2_0_0 | 0 result/schemas/src-element2-2_0_0.err | 9 + result/schemas/src-element3_0_0 | 0 result/schemas/src-element3_0_0.err | 2 + result/schemas/subst-group-1_0_1 | 1 + result/schemas/subst-group-1_0_1.err | 0 result/schemas/union2_1_1 | 1 + result/schemas/union2_1_1.err | 3 + result/schemas/union_0_0 | 1 + result/schemas/union_0_0.err | 0 result/schemas/vdv-first0_0_0 | 1 + result/schemas/vdv-first0_0_0.err | 0 result/schemas/vdv-first1_0_0 | 1 + result/schemas/vdv-first1_0_0.err | 0 result/schemas/vdv-first2_0_0 | 1 + result/schemas/vdv-first2_0_0.err | 0 result/schemas/vdv-first3_0_0 | 1 + result/schemas/vdv-first3_0_0.err | 0 result/schemas/vdv-first4_0_0 | 1 + result/schemas/vdv-first4_0_0.err | 0 result/schemas/vdv-first4_0_1 | 1 + result/schemas/vdv-first4_0_1.err | 1 + result/schemas/vdv-first4_0_2 | 1 + result/schemas/vdv-first4_0_2.err | 2 + result/schemas/vdv-first5_0_0 | 1 + result/schemas/vdv-first5_0_0.err | 0 result/schemas/xsd-list-itemType_0_0 | 1 + result/schemas/xsd-list-itemType_0_0.err | 0 result/schemas/xsd-simpleType-varieties_0_0 | 1 + result/schemas/xsd-simpleType-varieties_0_0.err | 0 result/schematron/zvon10_0 | 4 + result/schematron/zvon10_0.err | 5 + result/schematron/zvon10_1 | 5 + result/schematron/zvon10_1.err | 6 + result/schematron/zvon11_0 | 4 + result/schematron/zvon11_0.err | 2 + result/schematron/zvon11_1 | 4 + result/schematron/zvon11_1.err | 3 + result/schematron/zvon11_2 | 4 + result/schematron/zvon11_2.err | 3 + result/schematron/zvon11_3 | 4 + result/schematron/zvon11_3.err | 2 + result/schematron/zvon12_0 | 4 + result/schematron/zvon12_0.err | 3 + result/schematron/zvon12_1 | 4 + result/schematron/zvon12_1.err | 2 + result/schematron/zvon12_2 | 4 + result/schematron/zvon12_2.err | 3 + result/schematron/zvon13_0 | 7 + result/schematron/zvon13_0.err | 3 + result/schematron/zvon13_1 | 6 + result/schematron/zvon13_1.err | 3 + result/schematron/zvon13_2 | 6 + result/schematron/zvon13_2.err | 2 + result/schematron/zvon14_0 | 13 + result/schematron/zvon14_0.err | 4 + result/schematron/zvon15_0 | 5 + result/schematron/zvon15_0.err | 4 + result/schematron/zvon1_0 | 4 + result/schematron/zvon1_0.err | 8 + result/schematron/zvon1_1 | 4 + result/schematron/zvon1_1.err | 8 + result/schematron/zvon2_0 | 5 + result/schematron/zvon2_0.err | 2 + result/schematron/zvon2_1 | 5 + result/schematron/zvon2_1.err | 5 + result/schematron/zvon2_2 | 6 + result/schematron/zvon2_2.err | 3 + result/schematron/zvon3_0 | 9 + result/schematron/zvon3_0.err | 6 + result/schematron/zvon4_0 | 7 + result/schematron/zvon4_0.err | 3 + result/schematron/zvon4_1 | 7 + result/schematron/zvon4_1.err | 3 + result/schematron/zvon5_0 | 6 + result/schematron/zvon5_0.err | 7 + result/schematron/zvon5_1 | 6 + result/schematron/zvon5_1.err | 5 + result/schematron/zvon5_2 | 8 + result/schematron/zvon5_2.err | 5 + result/schematron/zvon6_0 | 4 + result/schematron/zvon6_0.err | 3 + result/schematron/zvon6_1 | 4 + result/schematron/zvon6_1.err | 3 + result/schematron/zvon6_2 | 4 + result/schematron/zvon6_2.err | 3 + result/schematron/zvon7_0 | 4 + result/schematron/zvon7_0.err | 3 + result/schematron/zvon7_1 | 4 + result/schematron/zvon7_1.err | 3 + result/schematron/zvon7_2 | 4 + result/schematron/zvon7_2.err | 3 + result/schematron/zvon7_3 | 4 + result/schematron/zvon7_3.err | 3 + result/schematron/zvon7_4 | 4 + result/schematron/zvon7_4.err | 3 + result/schematron/zvon8_0 | 9 + result/schematron/zvon8_0.err | 3 + result/schematron/zvon8_1 | 8 + result/schematron/zvon8_1.err | 3 + result/schematron/zvon8_2 | 8 + result/schematron/zvon8_2.err | 3 + result/schematron/zvon9_0 | 8 + result/schematron/zvon9_0.err | 2 + result/schematron/zvon9_1 | 8 + result/schematron/zvon9_1.err | 3 + result/schematron/zvon9_2 | 8 + result/schematron/zvon9_2.err | 3 + result/scripts/base | 4 + result/scripts/base.err | 0 result/scripts/base2 | 4 + result/scripts/base2.err | 0 result/scripts/set1 | 3 + result/scripts/set1.err | 0 result/scripts/set3 | 12 + result/scripts/set3.err | 3 + result/scripts/set4 | 6 + result/scripts/set4.err | 0 result/slashdot.rdf | 65 + result/slashdot.rdf.rde | 218 + result/slashdot.rdf.rdr | 218 + result/slashdot.rdf.sax | 221 + result/slashdot.rdf.sax2 | 221 + result/slashdot.xml | 113 + result/slashdot.xml.rde | 514 + result/slashdot.xml.rdr | 514 + result/slashdot.xml.sax | 517 + result/slashdot.xml.sax2 | 517 + result/slashdot16.xml | Bin 0 -> 10374 bytes result/slashdot16.xml.rde | 718 + result/slashdot16.xml.rdr | 718 + result/slashdot16.xml.sax | 721 + result/slashdot16.xml.sax2 | 721 + result/svg1 | 161 + result/svg1.rde | 477 + result/svg1.rdr | 477 + result/svg1.sax | 613 + result/svg1.sax2 | 613 + result/svg2 | 56 + result/svg2.rde | 178 + result/svg2.rdr | 178 + result/svg2.sax | 189 + result/svg2.sax2 | 189 + result/svg3 | 723 + result/svg3.rde | 2164 ++ result/svg3.rdr | 2164 ++ result/svg3.sax | 2407 ++ result/svg3.sax2 | 2407 ++ result/title.xml | 2 + result/title.xml.rde | 3 + result/title.xml.rdr | 3 + result/title.xml.sax | 6 + result/title.xml.sax2 | 6 + result/tstblanks.xml | 2 + result/tstblanks.xml.rde | 3 + result/tstblanks.xml.rdr | 3 + result/tstblanks.xml.sax | 6 + result/tstblanks.xml.sax2 | 6 + result/utf16bebom.xml | Bin 0 -> 344 bytes result/utf16bebom.xml.rde | 4 + result/utf16bebom.xml.rdr | 4 + result/utf16bebom.xml.sax | 8 + result/utf16bebom.xml.sax2 | 8 + result/utf16bom.xml | Bin 0 -> 258 bytes result/utf16bom.xml.rde | 3 + result/utf16bom.xml.rdr | 3 + result/utf16bom.xml.sax | 7 + result/utf16bom.xml.sax2 | 7 + result/utf16lebom.xml | Bin 0 -> 344 bytes result/utf16lebom.xml.rde | 4 + result/utf16lebom.xml.rdr | 4 + result/utf16lebom.xml.sax | 8 + result/utf16lebom.xml.sax2 | 8 + result/utf8bom.xml | 2 + result/utf8bom.xml.rde | 1 + result/utf8bom.xml.rdr | 1 + result/utf8bom.xml.sax | 5 + result/utf8bom.xml.sax2 | 5 + result/valid/127772.xml | 5 + result/valid/127772.xml.err | 0 result/valid/REC-xml-19980210.xml | 4154 +++ result/valid/REC-xml-19980210.xml.err | 0 result/valid/UTF16Entity.xml | 8 + result/valid/UTF16Entity.xml.err | 0 result/valid/dia.xml | 139 + result/valid/dia.xml.err | 0 result/valid/id1.xml | 13 + result/valid/id1.xml.err | 0 result/valid/id2.xml | 14 + result/valid/id2.xml.err | 0 result/valid/id3.xml | 14 + result/valid/id3.xml.err | 0 result/valid/index.xml | 808 + result/valid/index.xml.err | 0 result/valid/mixed_ns.xml | 16 + result/valid/mixed_ns.xml.err | 0 result/valid/notes.xml | 3 + result/valid/notes.xml.err | 0 result/valid/ns.xml | 7 + result/valid/ns.xml.err | 0 result/valid/ns2.xml | 11 + result/valid/ns2.xml.err | 0 result/valid/objednavka.xml | 39 + result/valid/objednavka.xml.err | 0 result/valid/rss.xml | 169 + result/valid/rss.xml.err | 3 + result/valid/t10.xml | 12 + result/valid/t10.xml.err | 0 result/valid/t11.xml | 3 + result/valid/t11.xml.err | 0 result/valid/t4.dtd | 0 result/valid/t4.dtd.err | 6 + result/valid/t4.xml | 3 + result/valid/t4.xml.err | 0 result/valid/t4a.dtd | 0 result/valid/t4a.dtd.err | 6 + result/valid/t4a.xml | 3 + result/valid/t4a.xml.err | 0 result/valid/t6.dtd | 0 result/valid/t6.dtd.err | 6 + result/valid/t6.xml | 3 + result/valid/t6.xml.err | 0 result/valid/t8.xml | 0 result/valid/t8.xml.err | 19 + result/valid/t8a.xml | 0 result/valid/t8a.xml.err | 19 + result/valid/t9.xml | 10 + result/valid/t9.xml.err | 0 result/valid/t9a.xml | 10 + result/valid/t9a.xml.err | 0 result/valid/xhtml1.xhtml | 1453 + result/valid/xhtml1.xhtml.err | 0 result/valid/xlink.xml | 525 + result/valid/xlink.xml.err | 4 + result/wap.xml | 24 + result/wap.xml.rde | 70 + result/wap.xml.rdr | 70 + result/wap.xml.sax | 86 + result/wap.xml.sax2 | 87 + result/winblanks.xml | 6 + result/winblanks.xml.rde | 13 + result/winblanks.xml.rdr | 13 + result/winblanks.xml.sax | 18 + result/winblanks.xml.sax2 | 18 + result/wml.xml | 10 + result/wml.xml.rde | 24 + result/wml.xml.rdr | 24 + result/wml.xml.sax | 31 + result/wml.xml.sax2 | 31 + result/xhtml1 | 30 + result/xhtml1.rde | 95 + result/xhtml1.rdr | 95 + result/xhtml1.sax | 103 + result/xhtml1.sax2 | 104 + result/xhtmlcomp | 7 + result/xhtmlcomp.rde | 19 + result/xhtmlcomp.rdr | 19 + result/xhtmlcomp.sax | 23 + result/xhtmlcomp.sax2 | 23 + result/xml1 | 7 + result/xml1.rde | 8 + result/xml1.rdr | 4 + result/xml1.sax | 23 + result/xml1.sax2 | 23 + result/xml2 | 8 + result/xml2.rde | 4 + result/xml2.rdr | 6 + result/xml2.sax | 18 + result/xml2.sax2 | 18 + result/xmlid/id_err1.xml | 2 + result/xmlid/id_err1.xml.err | 3 + result/xmlid/id_err2.xml | 6 + result/xmlid/id_err2.xml.err | 3 + result/xmlid/id_tst1.xml | 6 + result/xmlid/id_tst1.xml.err | 0 result/xmlid/id_tst2.xml | 6 + result/xmlid/id_tst2.xml.err | 3 + result/xmlid/id_tst3.xml | 6 + result/xmlid/id_tst3.xml.err | 6 + result/xmlid/id_tst4.xml | 6 + result/xmlid/id_tst4.xml.err | 3 + runsuite.c | 37 +- runtest.c | 117 +- runxmlconf.c | 9 +- save.h | 35 + schematron.c | 34 +- test/HTML/53867.html | 69 + test/HTML/Down.html | 12 + test/HTML/attrents.html | 5 + test/HTML/autoclose.html | 1 + test/HTML/autoclose2.html | 1 + test/HTML/autoclose3.html | 3 + test/HTML/cf_128.html | 20 + test/HTML/doc2.htm | 30 + test/HTML/doc3.htm | 851 + test/HTML/entities.html | 5 + test/HTML/entities2.html | 7 + test/HTML/fp40.htm | 166 + test/HTML/html5_enc.html | 8 + test/HTML/liclose.html | 13 + test/HTML/lt.html | 5 + test/HTML/noscript.html | 10 + test/HTML/pre.html | 5 + test/HTML/python.html | 10 + test/HTML/reg1.html | 10 + test/HTML/reg2.html | 12 + test/HTML/reg3.html | 13 + test/HTML/reg4.html | 12 + test/HTML/repeat.html | 1 + test/HTML/script.html | 9 + test/HTML/script2.html | 19 + test/HTML/test2.html | 33 + test/HTML/test3.html | 34 + test/HTML/utf8bug.html | 182 + test/HTML/wired.html | 516 + test/SVG/4rects.xml | 11 + test/SVG/a-valid.xml | 10 + test/SVG/a-wf.xml | 9 + test/SVG/bike.xml | 41 + test/SVG/circle.xml | 11 + test/SVG/defs.xml | 14 + test/SVG/desc.xml | 14 + test/SVG/ellipse.xml | 10 + test/SVG/flower2.xml | 44 + test/SVG/gradient.xml | 16 + test/SVG/group01.xml | 15 + test/SVG/group02.xml | 13 + test/SVG/group03.xml | 13 + test/SVG/image-valid.xml | 11 + test/SVG/image-wf.xml | 11 + test/SVG/lin-gradient.xml | 16 + test/SVG/marker.xml | 28 + test/SVG/mask.xml | 13 + test/SVG/mathswitch.xml | 32 + test/SVG/parentns.xml | 12 + test/SVG/path01.xml | 5 + test/SVG/path02.xml | 10 + test/SVG/patternfill.xml | 12 + test/SVG/polyline.xml | 9 + test/SVG/private.xml | 19 + test/SVG/rad-gradient.xml | 17 + test/SVG/rectangle.xml | 10 + test/SVG/richdesc.xml | 12 + test/SVG/script.xml | 13 + test/SVG/structure01.xml | 10 + test/SVG/style.xml | 11 + test/SVG/switch.xml | 21 + test/SVG/symbol-use.xml | 28 + test/SVG/template.xml | 9 + test/SVG/text01.xml | 12 + test/SVG/text02.xml | 17 + test/SVG/text03.xml | 8 + test/SVG/toap01.xml | 10 + test/SVG/toap02.xml | 33 + test/SVG/transform.xml | 26 + test/SVG/trivial.xml | 6 + test/SVG/twin-gradients.xml | 19 + test/SVG/v-template.xml | 9 + test/SVG/viewport-nest.xml | 13 + test/SVG/viewport-transform.xml | 46 + test/SVG/viewport.xml | 11 + test/SVG/wf-template.xml | 7 + test/URI/smith.uri | 15 + test/URI/uri.data | 18 + test/VC/AttributeDefaultLegal | 12 + test/VC/AttributeNmtokens | 6 + test/VC/DuplicateType | 5 + test/VC/ElementValid | 3 + test/VC/ElementValid2 | 4 + test/VC/ElementValid3 | 4 + test/VC/ElementValid4 | 7 + test/VC/ElementValid5 | 7 + test/VC/ElementValid6 | 7 + test/VC/ElementValid7 | 7 + test/VC/ElementValid8 | 7 + test/VC/Enumeration | 5 + test/VC/NS1 | 13 + test/VC/NS2 | 13 + test/VC/NS3 | 9 + test/VC/OneID | 6 + test/VC/OneID2 | 6 + test/VC/OneID3 | 4 + test/VC/PENesting | 2 + test/VC/PENesting2 | 3 + test/VC/UniqueElementTypeDeclaration | 7 + test/VC/UniqueElementTypeDeclaration2 | 8 + test/VC/dtds/a.dtd | 2 + test/VC/dtds/doc.dtd | 2 + test/VCM/21.xml | 8 + test/VCM/AttributeNmtokens.xml | 14 + test/VCM/v1.xml | 4 + test/VCM/v10.xml | 5 + test/VCM/v11.xml | 5 + test/VCM/v12.xml | 9 + test/VCM/v13.xml | 7 + test/VCM/v14.xml | 9 + test/VCM/v15.xml | 9 + test/VCM/v16.xml | 8 + test/VCM/v17.xml | 7 + test/VCM/v18.xml | 7 + test/VCM/v19.xml | 7 + test/VCM/v2.xml | 4 + test/VCM/v20.xml | 10 + test/VCM/v21.xml | 7 + test/VCM/v22.xml | 15 + test/VCM/v23.xml | 10 + test/VCM/v24.xml | 16 + test/VCM/v3.xml | 8 + test/VCM/v4.xml | 5 + test/VCM/v5.xml | 7 + test/VCM/v6.xml | 9 + test/VCM/v7.xml | 8 + test/VCM/v8.xml | 5 + test/VCM/v9.xml | 5 + test/WFC/ElemTypeMatch | 2 + test/WFC/EntityDeclared | 2 + test/WFC/EntityDeclared2 | 5 + test/WFC/EntityDeclared3 | 3 + test/WFC/EntityDeclared4 | 6 + test/WFC/EntityDeclared5 | 6 + test/WFC/LegalCharacter | 2 + test/WFC/NoExternalEntityRef | 5 + test/WFC/NoLtInAttValue | 5 + test/WFC/NoRecursion | 7 + test/WFC/PEintsubset | 6 + test/WFC/UniqueAttSpec | 2 + test/WFC/UniqueAttSpec2 | 2 + test/XInclude/docs/docids.xml | 15 + test/XInclude/docs/fallback.xml | 6 + test/XInclude/docs/fallback2.xml | 10 + test/XInclude/docs/include.xml | 4 + test/XInclude/docs/nodes.xml | 4 + test/XInclude/docs/nodes2.xml | 4 + test/XInclude/docs/nodes3.xml | 4 + test/XInclude/docs/recursive.xml | 3 + test/XInclude/docs/tstencoding.xml | 5 + test/XInclude/docs/txtinclude.xml | 4 + test/XInclude/ents/ids.xml | 10 + test/XInclude/ents/inc.txt | 1 + test/XInclude/ents/isolatin.txt | 1 + test/XInclude/ents/something.txt | 1 + test/XInclude/ents/something.xml | 5 + test/XInclude/ents/sub-inc.ent | 2 + test/XPath/docs/chapters | 28 + test/XPath/docs/id | 28 + test/XPath/docs/lang | 13 + test/XPath/docs/mixed | 10 + test/XPath/docs/nodes | 2 + test/XPath/docs/simple | 12 + test/XPath/docs/str | 9 + test/XPath/docs/usr1 | 12 + test/XPath/docs/vid | 43 + test/XPath/expr/base | 5 + test/XPath/expr/compare | 46 + test/XPath/expr/equality | 26 + test/XPath/expr/floats | 61 + test/XPath/expr/functions | 25 + test/XPath/expr/strings | 34 + test/XPath/tests/chaptersbase | 9 + test/XPath/tests/chaptersprefol | 8 + test/XPath/tests/idsimple | 3 + test/XPath/tests/langsimple | 5 + test/XPath/tests/mixedpat | 7 + test/XPath/tests/nodespat | 5 + test/XPath/tests/simpleabbr | 10 + test/XPath/tests/simplebase | 9 + test/XPath/tests/usr1check | 1 + test/XPath/tests/vidbase | 5 + test/XPath/xptr/chapterschildseq | 8 + test/XPath/xptr/chaptersparts | 6 + test/XPath/xptr/chaptersrange | 4 + test/XPath/xptr/strpoint | 9 + test/XPath/xptr/strrange | 6 + test/XPath/xptr/strrange2 | 3 + test/XPath/xptr/strrange3 | 4 + test/XPath/xptr/vidbase | 2 + test/XPath/xptr/vidchildseq | 4 + test/XPath/xptr/vidparts | 3 + test/att1 | 2 + test/att10 | 22 + test/att11 | 13 + test/att2 | 1 + test/att3 | 1 + test/att4 | 9264 +++++ test/att5 | 73 + test/att6 | 6 + test/att7 | 10 + test/att8 | 1 + test/att9 | 5 + test/attrib.xml | 1 + test/automata/a | 14 + test/automata/aba | 26 + test/automata/abaa | 43 + test/automata/abba | 30 + test/automata/po | 19 + test/badcomment.xml | 18 + test/bigentname.xml | 5 + test/bigname.xml | 1 + test/bigname2.xml | 1 + test/c14n/1-1-without-comments/doc.dtd | 1 + test/c14n/1-1-without-comments/example-1.xml | 14 + test/c14n/1-1-without-comments/example-2.xml | 11 + test/c14n/1-1-without-comments/example-3.xml | 18 + test/c14n/1-1-without-comments/example-4.xml | 9 + test/c14n/1-1-without-comments/example-5.xml | 12 + test/c14n/1-1-without-comments/example-6.xml | 2 + test/c14n/1-1-without-comments/example-7.xml | 11 + test/c14n/1-1-without-comments/example-7.xpath | 10 + test/c14n/1-1-without-comments/example-8.xml | 11 + test/c14n/1-1-without-comments/example-8.xpath | 10 + test/c14n/1-1-without-comments/world.txt | 1 + .../xmlbase-c14n11spec-102.xml | 16 + .../xmlbase-c14n11spec-102.xpath | 9 + .../xmlbase-c14n11spec2-102.xml | 16 + .../xmlbase-c14n11spec2-102.xpath | 9 + .../xmlbase-c14n11spec3-102.xml | 14 + .../xmlbase-c14n11spec3-102.xpath | 9 + test/c14n/1-1-without-comments/xmlbase-prop-1.xml | 24 + .../c14n/1-1-without-comments/xmlbase-prop-1.xpath | 11 + test/c14n/1-1-without-comments/xmlbase-prop-2.xml | 23 + .../c14n/1-1-without-comments/xmlbase-prop-2.xpath | 10 + test/c14n/1-1-without-comments/xmlbase-prop-3.xml | 24 + .../c14n/1-1-without-comments/xmlbase-prop-3.xpath | 11 + test/c14n/1-1-without-comments/xmlbase-prop-4.xml | 24 + .../c14n/1-1-without-comments/xmlbase-prop-4.xpath | 11 + test/c14n/1-1-without-comments/xmlbase-prop-5.xml | 24 + .../c14n/1-1-without-comments/xmlbase-prop-5.xpath | 11 + test/c14n/1-1-without-comments/xmlbase-prop-6.xml | 23 + .../c14n/1-1-without-comments/xmlbase-prop-6.xpath | 10 + test/c14n/1-1-without-comments/xmlbase-prop-7.xml | 23 + .../c14n/1-1-without-comments/xmlbase-prop-7.xpath | 10 + test/c14n/1-1-without-comments/xmlid-prop-1.xml | 20 + test/c14n/1-1-without-comments/xmlid-prop-1.xpath | 10 + test/c14n/1-1-without-comments/xmlid-prop-2.xml | 20 + test/c14n/1-1-without-comments/xmlid-prop-2.xpath | 10 + test/c14n/1-1-without-comments/xmllang-prop-1.xml | 20 + .../c14n/1-1-without-comments/xmllang-prop-1.xpath | 10 + test/c14n/1-1-without-comments/xmllang-prop-2.xml | 20 + .../c14n/1-1-without-comments/xmllang-prop-2.xpath | 10 + test/c14n/1-1-without-comments/xmllang-prop-3.xml | 20 + .../c14n/1-1-without-comments/xmllang-prop-3.xpath | 10 + test/c14n/1-1-without-comments/xmllang-prop-4.xml | 20 + .../c14n/1-1-without-comments/xmllang-prop-4.xpath | 10 + test/c14n/1-1-without-comments/xmlspace-prop-1.xml | 20 + .../1-1-without-comments/xmlspace-prop-1.xpath | 10 + test/c14n/1-1-without-comments/xmlspace-prop-2.xml | 20 + .../1-1-without-comments/xmlspace-prop-2.xpath | 10 + test/c14n/1-1-without-comments/xmlspace-prop-3.xml | 20 + .../1-1-without-comments/xmlspace-prop-3.xpath | 10 + test/c14n/1-1-without-comments/xmlspace-prop-4.xml | 20 + .../1-1-without-comments/xmlspace-prop-4.xpath | 10 + .../exc-without-comments/merlin-c14n-two-09.xml | 12 + .../exc-without-comments/merlin-c14n-two-09.xpath | 8 + .../exc-without-comments/merlin-c14n-two-10.xml | 12 + .../exc-without-comments/merlin-c14n-two-10.xpath | 12 + .../exc-without-comments/merlin-c14n-two-11.xml | 12 + .../exc-without-comments/merlin-c14n-two-11.xpath | 11 + .../exc-without-comments/merlin-c14n-two-12.xml | 12 + .../exc-without-comments/merlin-c14n-two-12.xpath | 12 + .../exc-without-comments/merlin-c14n-two-13.xml | 12 + .../exc-without-comments/merlin-c14n-two-13.xpath | 10 + .../exc-without-comments/merlin-c14n-two-14.xml | 12 + .../exc-without-comments/merlin-c14n-two-14.xpath | 10 + .../exc-without-comments/merlin-c14n-two-15.xml | 12 + .../exc-without-comments/merlin-c14n-two-15.xpath | 10 + .../exc-without-comments/merlin-c14n-two-16.xml | 12 + .../exc-without-comments/merlin-c14n-two-16.xpath | 9 + .../exc-without-comments/merlin-c14n-two-17.xml | 12 + .../exc-without-comments/merlin-c14n-two-17.xpath | 12 + .../exc-without-comments/merlin-c14n-two-18.ns | 1 + .../exc-without-comments/merlin-c14n-two-18.xml | 12 + .../exc-without-comments/merlin-c14n-two-18.xpath | 8 + .../exc-without-comments/merlin-c14n-two-19.ns | 1 + .../exc-without-comments/merlin-c14n-two-19.xml | 12 + .../exc-without-comments/merlin-c14n-two-19.xpath | 12 + .../exc-without-comments/merlin-c14n-two-20.ns | 1 + .../exc-without-comments/merlin-c14n-two-20.xml | 12 + .../exc-without-comments/merlin-c14n-two-20.xpath | 11 + .../exc-without-comments/merlin-c14n-two-21.ns | 1 + .../exc-without-comments/merlin-c14n-two-21.xml | 12 + .../exc-without-comments/merlin-c14n-two-21.xpath | 12 + .../exc-without-comments/merlin-c14n-two-22.ns | 1 + .../exc-without-comments/merlin-c14n-two-22.xml | 12 + .../exc-without-comments/merlin-c14n-two-22.xpath | 10 + .../exc-without-comments/merlin-c14n-two-23.ns | 1 + .../exc-without-comments/merlin-c14n-two-23.xml | 12 + .../exc-without-comments/merlin-c14n-two-23.xpath | 10 + .../exc-without-comments/merlin-c14n-two-24.ns | 1 + .../exc-without-comments/merlin-c14n-two-24.xml | 12 + .../exc-without-comments/merlin-c14n-two-24.xpath | 10 + .../exc-without-comments/merlin-c14n-two-25.ns | 1 + .../exc-without-comments/merlin-c14n-two-25.xml | 12 + .../exc-without-comments/merlin-c14n-two-25.xpath | 9 + .../exc-without-comments/merlin-c14n-two-26.ns | 1 + .../exc-without-comments/merlin-c14n-two-26.xml | 12 + .../exc-without-comments/merlin-c14n-two-26.xpath | 12 + test/c14n/exc-without-comments/test-0.xml | 18 + test/c14n/exc-without-comments/test-0.xpath | 3 + test/c14n/exc-without-comments/test-1.ns | 1 + test/c14n/exc-without-comments/test-1.xml | 18 + test/c14n/exc-without-comments/test-1.xpath | 3 + test/c14n/exc-without-comments/test-2.xml | 20 + test/c14n/exc-without-comments/test-2.xpath | 6 + test/c14n/with-comments/doc.dtd | 1 + test/c14n/with-comments/example-1.xml | 14 + test/c14n/with-comments/example-2.xml | 11 + test/c14n/with-comments/example-3.xml | 18 + test/c14n/with-comments/example-4.xml | 9 + test/c14n/with-comments/example-5.xml | 12 + test/c14n/with-comments/example-6.xml | 2 + test/c14n/with-comments/example-7.xml | 11 + test/c14n/with-comments/example-7.xpath | 10 + test/c14n/with-comments/world.txt | 1 + test/c14n/without-comments/doc.dtd | 1 + test/c14n/without-comments/example-1.xml | 14 + test/c14n/without-comments/example-2.xml | 11 + test/c14n/without-comments/example-3.xml | 18 + test/c14n/without-comments/example-4.xml | 9 + test/c14n/without-comments/example-5.xml | 12 + test/c14n/without-comments/example-6.xml | 2 + test/c14n/without-comments/example-7.xml | 11 + test/c14n/without-comments/example-7.xpath | 10 + test/c14n/without-comments/merlin-c14n-two-00.xml | 12 + .../c14n/without-comments/merlin-c14n-two-00.xpath | 8 + test/c14n/without-comments/merlin-c14n-two-01.xml | 12 + .../c14n/without-comments/merlin-c14n-two-01.xpath | 12 + test/c14n/without-comments/merlin-c14n-two-02.xml | 12 + .../c14n/without-comments/merlin-c14n-two-02.xpath | 11 + test/c14n/without-comments/merlin-c14n-two-03.xml | 12 + .../c14n/without-comments/merlin-c14n-two-03.xpath | 12 + test/c14n/without-comments/merlin-c14n-two-04.xml | 12 + .../c14n/without-comments/merlin-c14n-two-04.xpath | 10 + test/c14n/without-comments/merlin-c14n-two-05.xml | 12 + .../c14n/without-comments/merlin-c14n-two-05.xpath | 10 + test/c14n/without-comments/merlin-c14n-two-06.xml | 12 + .../c14n/without-comments/merlin-c14n-two-06.xpath | 10 + test/c14n/without-comments/merlin-c14n-two-07.xml | 12 + .../c14n/without-comments/merlin-c14n-two-07.xpath | 9 + test/c14n/without-comments/merlin-c14n-two-08.xml | 12 + .../c14n/without-comments/merlin-c14n-two-08.xpath | 12 + test/c14n/without-comments/test-0.xml | 9 + test/c14n/without-comments/test-0.xpath | 14 + test/c14n/without-comments/test-1.xml | 43 + test/c14n/without-comments/test-1.xpath | 14 + test/c14n/without-comments/test-2.xml | 8 + test/c14n/without-comments/test-2.xpath | 8 + test/c14n/without-comments/test-3.xml | 18 + test/c14n/without-comments/test-3.xpath | 3 + test/c14n/without-comments/world.txt | 1 + test/catalogs/catal.script | 4 + test/catalogs/catal.sgml | 2 + test/catalogs/catal1.sgml | 1 + test/catalogs/catal2.sgml | 4 + test/catalogs/catal3.sgml | 8 + test/catalogs/docbook.script | 5 + test/catalogs/docbook.xml | 14 + test/catalogs/registry.script | 4 + test/catalogs/registry.xml | 23 + test/catalogs/stylesheet.xml | 12 + test/catalogs/whites.script | 4 + test/catalogs/whites.sgml | 5 + test/catalogs/whitex.script | 7 + test/catalogs/whitex.xml | 15 + test/cdata | 3 + test/cdata2 | 6 + test/comment.xml | 6 + test/comment2.xml | 6 + test/comment3.xml | 164 + test/comment4.xml | 5 + test/comment5.xml | 9 + test/comment6.xml | 13 + test/dav1 | 25 + test/dav10 | 4 + test/dav11 | 21 + test/dav12 | 2 + test/dav13 | 16 + test/dav15 | 20 + test/dav16 | 6 + test/dav17 | 22 + test/dav18 | 6 + test/dav19 | 18 + test/dav2 | 24 + test/dav3 | 18 + test/dav4 | 16 + test/dav5 | 17 + test/dav6 | 22 + test/dav7 | 16 + test/dav8 | 14 + test/dav9 | 18 + test/defattr.xml | 6 + test/defattr2.xml | 8 + test/dia1 | 99 + test/dia2 | 99 + test/dtd1 | 5 + test/dtd10 | 8 + test/dtd11 | 5 + test/dtd12 | 5 + test/dtd13 | 6 + test/dtd2 | 4 + test/dtd3 | 5 + test/dtd4 | 4 + test/dtd5 | 6 + test/dtd6 | 6 + test/dtd7 | 6 + test/dtd8 | 8 + test/dtd9 | 8 + test/dtds/eve.dtd | 4 + test/ebcdic_566012.xml | 1 + test/emptycdata.xml | 4 + test/ent1 | 7 + test/ent10 | 21 + test/ent11 | 6 + test/ent12 | 8 + test/ent13 | 6 + test/ent2 | 11 + test/ent3 | 8 + test/ent4 | 8 + test/ent5 | 5 + test/ent6 | 8 + test/ent7 | 7 + test/ent8 | 9 + test/ent9 | 61 + test/errors/attr1.xml | 1 + test/errors/attr2.xml | 1 + test/errors/attr3.xml | 6 + test/errors/attr4.xml | 1 + test/errors/cdata.xml | 2 + test/errors/charref1.xml | 1 + test/errors/comment1.xml | 6 + test/errors/content1.xml | 10 + test/errors/dtd13 | 6 + test/errors/extparsedent.xml | 5 + test/errors/name.xml | 1 + test/errors/name2.xml | 1 + test/eve.xml | 6 + test/expr/base | 86 + test/intsubset.xml | 6 + test/intsubset2.xml | 282 + test/isolat1 | 2 + test/isolat2 | 107 + test/isolat3 | 10 + test/namespaces/err_0.xml | 1 + test/namespaces/err_1.xml | 1 + test/namespaces/err_10.xml | 1 + test/namespaces/err_11.xml | 1 + test/namespaces/err_2.xml | 1 + test/namespaces/err_3.xml | 1 + test/namespaces/err_4.xml | 1 + test/namespaces/err_5.xml | 1 + test/namespaces/err_6.xml | 1 + test/namespaces/err_7.xml | 1 + test/namespaces/err_8.xml | 1 + test/namespaces/err_9.xml | 2 + test/namespaces/reconcile/tests-to-c.xsl | 275 + test/namespaces/reconcile/tests.xml | 249 + test/ns | 4 + test/ns2 | 3 + test/ns3 | 3 + test/ns4 | 2 + test/ns5 | 4 + test/ns6 | 4 + test/ns7 | 1 + test/nsclean.xml | 9 + test/p3p | 24 + test/pattern/conj.pat | 8 + test/pattern/conj.xml | 13 + test/pattern/multiple.pat | 27 + test/pattern/multiple.xml | 5 + test/pattern/namespaces.pat | 10 + test/pattern/namespaces.xml | 17 + test/pattern/simple.pat | 15 + test/pattern/simple.xml | 5 + test/pi.xml | 6 + test/pi2.xml | 6 + test/rdf1 | 81 + test/rdf2 | 1899 + test/recurse/good.xml | 343 + test/recurse/goodattr.xml | 343 + test/recurse/lol1.xml | 23 + test/recurse/lol2.xml | 23 + test/recurse/lol3.dtd | 20 + test/recurse/lol3.xml | 5 + test/recurse/lol4.patch | 16 + test/recurse/lol4.xml | 36 + test/recurse/lol5.xml | 51 + test/recurse/lol6.xml | 23 + test/regexp/branch | 14 + test/regexp/bug316338 | 20 + test/regexp/bug420596 | 10 + test/regexp/content | 12 + test/regexp/hard | 12 + test/regexp/ncname | 6 + test/regexp/ranges | 15 + test/regexp/ranges2 | 14 + test/regexp/xpath | 37 + test/relaxng/302836.rng | 35 + test/relaxng/302836_0.xml | 12 + test/relaxng/307377.rng | 14 + test/relaxng/307377_0.xml | 1 + test/relaxng/307377_1.xml | 1 + test/relaxng/307377_2.xml | 1 + test/relaxng/492317.rng | 16 + test/relaxng/492317_0.xml | 4 + test/relaxng/492317_1.xml | 4 + test/relaxng/492317_2.xml | 4 + test/relaxng/558452.rng | 21 + test/relaxng/558452_0.xml | 6 + test/relaxng/558452_1.xml | 3 + test/relaxng/558452_2.xml | 4 + test/relaxng/558452_3.xml | 5 + test/relaxng/558452_4.xml | 7 + test/relaxng/595792-ext.rng | 11 + test/relaxng/595792.rng | 8 + test/relaxng/595792_0.xml | 4 + test/relaxng/OASIS/spectest.xml | 6845 ++++ test/relaxng/OpenDocumentSub.rng | 229 + test/relaxng/OpenDocumentSub_0.xml | 7 + test/relaxng/addressBook.rng | 24 + test/relaxng/choice0.rng | 25 + test/relaxng/choice0_0.xml | 2 + test/relaxng/choice0_1.xml | 2 + test/relaxng/choice0_2.xml | 3 + test/relaxng/choice0_3.xml | 3 + test/relaxng/choice0_4.xml | 2 + test/relaxng/choice0_5.xml | 3 + test/relaxng/choice0_6.xml | 3 + test/relaxng/choice0_7.xml | 3 + test/relaxng/choice0_8.xml | 3 + test/relaxng/compare0.rng | 8 + test/relaxng/compare0_0.xml | 3 + test/relaxng/comps.rng | 177 + test/relaxng/comps_0.xml | 17870 +++++++++ test/relaxng/demo.rng | 11 + test/relaxng/demo.xml | 1 + test/relaxng/demo2.rng | 23 + test/relaxng/demo3.rng | 8 + test/relaxng/docbook.rng | 9141 +++++ test/relaxng/docbook_0.xml | 4448 +++ test/relaxng/empty0.rng | 16 + test/relaxng/empty0_0.xml | 3 + test/relaxng/empty1.rng | 18 + test/relaxng/empty1_0.xml | 3 + test/relaxng/empty1_1.xml | 2 + test/relaxng/inline.rng | 20 + test/relaxng/inline2.rng | 21 + test/relaxng/inline3.rng | 22 + test/relaxng/interleave0_0.rng | 24 + test/relaxng/interleave1_0.rng | 15 + test/relaxng/libvirt.rng | 1258 + test/relaxng/libvirt_0.xml | 23 + test/relaxng/list.rng | 23 + test/relaxng/list_0.xml | 1 + test/relaxng/list_1.xml | 1 + test/relaxng/pattern1.rng | 8 + test/relaxng/pattern2.rng | 9 + test/relaxng/proofsystem.rng | 96 + test/relaxng/rngbug-001.ext | 13 + test/relaxng/rngbug-001.rng | 16 + test/relaxng/rngbug-001.xml | 6 + test/relaxng/spec.rng | 60 + test/relaxng/spec1.rng | 14 + test/relaxng/spec1_1.xml | 3 + test/relaxng/spec_0.xml | 3589 ++ test/relaxng/table.rng | 21 + test/relaxng/testsuite.xml | 1708 + test/relaxng/tutor10_1.rng | 4 + test/relaxng/tutor10_10.rng | 13 + test/relaxng/tutor10_10_1.xml | 5 + test/relaxng/tutor10_1_1.xml | 1 + test/relaxng/tutor10_1_2.xml | 1 + test/relaxng/tutor10_1_3.xml | 1 + test/relaxng/tutor10_1_4.xml | 1 + test/relaxng/tutor10_1_5.xml | 1 + test/relaxng/tutor10_1_6.xml | 1 + test/relaxng/tutor10_2.rng | 3 + test/relaxng/tutor10_2_1.xml | 1 + test/relaxng/tutor10_2_2.xml | 1 + test/relaxng/tutor10_2_3.xml | 1 + test/relaxng/tutor10_2_4.xml | 1 + test/relaxng/tutor10_3.rng | 12 + test/relaxng/tutor10_3_1.xml | 3 + test/relaxng/tutor10_4.rng | 12 + test/relaxng/tutor10_4_1.xml | 3 + test/relaxng/tutor10_5.rng | 13 + test/relaxng/tutor10_5_1.xml | 3 + test/relaxng/tutor10_6.rng | 13 + test/relaxng/tutor10_6_1.xml | 3 + test/relaxng/tutor10_7.rng | 9 + test/relaxng/tutor10_7_1.xml | 3 + test/relaxng/tutor10_7_2.xml | 3 + test/relaxng/tutor10_7_3.xml | 3 + test/relaxng/tutor10_8.rng | 9 + test/relaxng/tutor10_8_1.xml | 3 + test/relaxng/tutor10_8_2.xml | 3 + test/relaxng/tutor10_8_3.xml | 3 + test/relaxng/tutor10_9.rng | 14 + test/relaxng/tutor10_9_1.xml | 5 + test/relaxng/tutor11_1.rng | 22 + test/relaxng/tutor11_1_1.xml | 22 + test/relaxng/tutor11_1_2.xml | 7 + test/relaxng/tutor11_1_3.xml | 4197 +++ test/relaxng/tutor11_2.rng | 14 + test/relaxng/tutor11_2_1.xml | 5 + test/relaxng/tutor11_2_2.xml | 5 + test/relaxng/tutor11_2_3.xml | 5 + test/relaxng/tutor11_3.rng | 15 + test/relaxng/tutor11_3_1.xml | 1 + test/relaxng/tutor11_4.rng | 19 + test/relaxng/tutor11_4_1.xml | 1 + test/relaxng/tutor12_1.rng | 13 + test/relaxng/tutor12_1_1.xml | 3 + test/relaxng/tutor13_1.rng | 33 + test/relaxng/tutor13_1_1.xml | 12 + test/relaxng/tutor14_1.rng | 53 + test/relaxng/tutor1_1.rng | 12 + test/relaxng/tutor1_1_1.xml | 10 + test/relaxng/tutor1_2.rng | 12 + test/relaxng/tutor1_2_1.xml | 10 + test/relaxng/tutor1_3.rng | 17 + test/relaxng/tutor1_3_1.xml | 10 + test/relaxng/tutor1_4.rng | 12 + test/relaxng/tutor1_4_1.xml | 10 + test/relaxng/tutor2_1.rng | 27 + test/relaxng/tutor2_1_1.xml | 11 + test/relaxng/tutor3_1.rng | 12 + test/relaxng/tutor3_1_1.xml | 3 + test/relaxng/tutor3_1_2.xml | 3 + test/relaxng/tutor3_2.rng | 8 + test/relaxng/tutor3_2_1.xml | 1 + test/relaxng/tutor3_3.rng | 17 + test/relaxng/tutor3_3_1.xml | 4 + test/relaxng/tutor3_4.rng | 22 + test/relaxng/tutor3_4_1.xml | 4 + test/relaxng/tutor3_5.rng | 22 + test/relaxng/tutor3_5_1.xml | 7 + test/relaxng/tutor3_5_2.xml | 3 + test/relaxng/tutor3_6.rng | 8 + test/relaxng/tutor3_6_1.xml | 3 + test/relaxng/tutor3_7.rng | 2 + test/relaxng/tutor3_7_1.xml | 1 + test/relaxng/tutor3_8.rng | 17 + test/relaxng/tutor3_8_1.xml | 4 + test/relaxng/tutor3_9.rng | 5 + test/relaxng/tutor3_9_1.xml | 1 + test/relaxng/tutor4_1.rng | 22 + test/relaxng/tutor4_1_1.xml | 4 + test/relaxng/tutor4_2.rng | 34 + test/relaxng/tutor4_2_1.xml | 4 + test/relaxng/tutor4_3.rng | 27 + test/relaxng/tutor4_3_1.xml | 1 + test/relaxng/tutor4_3_2.xml | 1 + test/relaxng/tutor4_3_3.xml | 1 + test/relaxng/tutor4_3_4.xml | 1 + test/relaxng/tutor4_3_5.xml | 1 + test/relaxng/tutor4_3_6.xml | 1 + test/relaxng/tutor4_4.rng | 28 + test/relaxng/tutor4_4_1.xml | 1 + test/relaxng/tutor5_1.rng | 3 + test/relaxng/tutor5_1_1.xml | 1 + test/relaxng/tutor5_2.rng | 9 + test/relaxng/tutor5_2_1.xml | 1 + test/relaxng/tutor5_3.rng | 6 + test/relaxng/tutor5_3_1.xml | 1 + test/relaxng/tutor5_4.rng | 6 + test/relaxng/tutor5_4_1.xml | 1 + test/relaxng/tutor5_5.rng | 5 + test/relaxng/tutor6_1.rng | 10 + test/relaxng/tutor6_1_1.xml | 1 + test/relaxng/tutor6_1_2.xml | 1 + test/relaxng/tutor6_1_3.xml | 1 + test/relaxng/tutor6_1_4.xml | 1 + test/relaxng/tutor6_1_5.xml | 2 + test/relaxng/tutor6_2.rng | 14 + test/relaxng/tutor6_2_1.xml | 5 + test/relaxng/tutor6_2_2.xml | 5 + test/relaxng/tutor6_2_3.xml | 5 + test/relaxng/tutor6_2_4.xml | 5 + test/relaxng/tutor6_3.rng | 10 + test/relaxng/tutor6_3_1.xml | 1 + test/relaxng/tutor7_1.rng | 7 + test/relaxng/tutor7_1_1.xml | 1 + test/relaxng/tutor7_1_2.xml | 1 + test/relaxng/tutor7_1_3.xml | 1 + test/relaxng/tutor7_1_4.xml | 1 + test/relaxng/tutor7_2.rng | 8 + test/relaxng/tutor7_2_1.xml | 1 + test/relaxng/tutor7_2_2.xml | 1 + test/relaxng/tutor7_2_3.xml | 1 + test/relaxng/tutor7_2_4.xml | 1 + test/relaxng/tutor7_3.rng | 9 + test/relaxng/tutor7_3_1.xml | 1 + test/relaxng/tutor7_3_2.xml | 1 + test/relaxng/tutor7_3_3.xml | 1 + test/relaxng/tutor7_3_4.xml | 1 + test/relaxng/tutor7_3_5.xml | 1 + test/relaxng/tutor8_1.rng | 15 + test/relaxng/tutor8_1_1.xml | 6 + test/relaxng/tutor8_1_2.xml | 7 + test/relaxng/tutor8_2.rng | 57 + test/relaxng/tutor8_2_1.xml | 5 + test/relaxng/tutor8_2_2.xml | 36 + test/relaxng/tutor8_2_3.xml | 3 + test/relaxng/tutor8_2_4.xml | 6 + test/relaxng/tutor8_2_5.xml | 3 + test/relaxng/tutor8_2_6.xml | 5 + test/relaxng/tutor8_3.rng | 9 + test/relaxng/tutor8_3_1.xml | 1 + test/relaxng/tutor9_1.rng | 17 + test/relaxng/tutor9_10.rng | 26 + test/relaxng/tutor9_10_1.xml | 3 + test/relaxng/tutor9_11.rng | 16 + test/relaxng/tutor9_11_1.xml | 3 + test/relaxng/tutor9_12.rng | 22 + test/relaxng/tutor9_12_1.xml | 3 + test/relaxng/tutor9_1_1.xml | 7 + test/relaxng/tutor9_2.rng | 7 + test/relaxng/tutor9_2_1.xml | 4 + test/relaxng/tutor9_2_2.xml | 4 + test/relaxng/tutor9_3.rng | 37 + test/relaxng/tutor9_3_1.xml | 1 + test/relaxng/tutor9_3_2.xml | 1 + test/relaxng/tutor9_4.rng | 36 + test/relaxng/tutor9_4_1.xml | 1 + test/relaxng/tutor9_4_2.xml | 1 + test/relaxng/tutor9_5.rng | 25 + test/relaxng/tutor9_5_1.xml | 3 + test/relaxng/tutor9_5_2.xml | 3 + test/relaxng/tutor9_5_3.xml | 3 + test/relaxng/tutor9_6.rng | 24 + test/relaxng/tutor9_6_1.xml | 3 + test/relaxng/tutor9_6_2.xml | 3 + test/relaxng/tutor9_6_3.xml | 3 + test/relaxng/tutor9_7.rng | 26 + test/relaxng/tutor9_7_1.xml | 3 + test/relaxng/tutor9_8.rng | 42 + test/relaxng/tutor9_8_1.xml | 3 + test/relaxng/tutor9_9.rng | 37 + test/relaxng/tutor9_9_1.xml | 3 + test/relaxng/tutorA.rng | 334 + test/schemas/570702_0.xml | 13 + test/schemas/570702_0.xsd | 25 + test/schemas/579746_0.xml | 3 + test/schemas/579746_0.xsd | 11 + test/schemas/579746_1.xml | 4 + test/schemas/579746_1.xsd | 10 + test/schemas/579746_2.xml | 5 + test/schemas/579746_3.xml | 7 + test/schemas/579746_4.xml | 5 + test/schemas/579746_5.xml | 6 + test/schemas/582887-attribute.xsd | 12 + test/schemas/582887-common.xsd | 8 + test/schemas/582887-element.xsd | 11 + test/schemas/582887_0.xml | 7 + test/schemas/582887_0.xsd | 17 + test/schemas/582906-1-common.xsd | 6 + test/schemas/582906-1-prog1.xsd | 11 + test/schemas/582906-1-prog2-include.xsd | 9 + test/schemas/582906-1-prog2.xsd | 13 + test/schemas/582906-1_0.xml | 5 + test/schemas/582906-1_0.xsd | 20 + test/schemas/582906-2-common.xsd | 7 + test/schemas/582906-2-prog1.xsd | 11 + test/schemas/582906-2-prog2-include.xsd | 9 + test/schemas/582906-2-prog2.xsd | 13 + test/schemas/582906-2_0.xml | 5 + test/schemas/582906-2_0.xsd | 20 + test/schemas/all.xsd | 16 + test/schemas/all1_0.xml | 4 + test/schemas/all1_0.xsd | 10 + test/schemas/all_0.xml | 1 + test/schemas/all_0.xsd | 12 + test/schemas/all_1.xml | 2 + test/schemas/all_1.xsd | 12 + test/schemas/all_2.xml | 1 + test/schemas/all_2.xsd | 11 + test/schemas/all_3.xml | 1 + test/schemas/all_4.xml | 1 + test/schemas/all_5.xml | 1 + test/schemas/all_6.xml | 1 + test/schemas/all_7.xml | 1 + test/schemas/allsg_0.xml | 7 + test/schemas/allsg_0.xsd | 26 + test/schemas/allsg_1.xml | 8 + test/schemas/allsg_2.xml | 8 + test/schemas/allsg_3.xml | 7 + test/schemas/allsg_4.xml | 7 + test/schemas/allsg_5.xml | 8 + test/schemas/annot-err_0.xml | 4 + test/schemas/annot-err_0.xsd | 21 + test/schemas/any1_0.xml | 21 + test/schemas/any1_0.xsd | 22 + test/schemas/any2_0.xml | 24 + test/schemas/any2_0.xsd | 26 + test/schemas/any3_0.xml | 17 + test/schemas/any3_0.xsd | 17 + test/schemas/any4_0.xml | 17 + test/schemas/any4_0.xsd | 28 + test/schemas/any5_0.xml | 7 + test/schemas/any5_0.xsd | 13 + test/schemas/any5_1.xml | 12 + test/schemas/any5_1.xsd | 14 + test/schemas/any5_2.xml | 8 + test/schemas/any5_3.xml | 11 + test/schemas/any5_4.xml | 12 + test/schemas/any5_5.xml | 12 + test/schemas/any5_6.xml | 13 + test/schemas/any6_0.xml | 8 + test/schemas/any6_1.xsd | 36 + test/schemas/any6_2.xsd | 19 + test/schemas/any7_0.xml | 19 + test/schemas/any7_1.xml | 18 + test/schemas/any7_1.xsd | 13 + test/schemas/any7_2.xml | 20 + test/schemas/any7_2.xsd | 13 + test/schemas/any8_0.xml | 9 + test/schemas/any8_1.xsd | 20 + test/schemas/anyAttr-derive-errors1_0.xml | 30 + test/schemas/anyAttr-derive-errors1_0.xsd | 223 + test/schemas/anyAttr-derive1_0.xml | 30 + test/schemas/anyAttr-derive1_0.xsd | 227 + test/schemas/anyAttr-derive2_0.xml | 9 + test/schemas/anyAttr-derive2_0.xsd | 33 + test/schemas/anyAttr-errors1_0.xml | 26 + test/schemas/anyAttr-processContents-err1_0.xml | 11 + test/schemas/anyAttr-processContents-err1_0.xsd | 26 + test/schemas/anyAttr-processContents1_0.xml | 13 + test/schemas/anyAttr-processContents1_0.xsd | 32 + test/schemas/anyAttr.importA.1_0.xsd | 24 + test/schemas/anyAttr.importB.1_0.xsd | 21 + test/schemas/anyAttr1_0.xml | 31 + test/schemas/anyAttr1_0.xsd | 144 + test/schemas/attr0_0.xml | 1 + test/schemas/attr0_0.xsd | 13 + test/schemas/attruse_0_0.xml | 8 + test/schemas/attruse_0_0.xsd | 32 + test/schemas/attruse_0_1.xml | 8 + test/schemas/attruse_0_2.xml | 8 + test/schemas/bug141312_0.xml | 2 + test/schemas/bug141312_0.xsd | 16 + test/schemas/bug141333.xml | 9 + test/schemas/bug141333.xsd | 25 + test/schemas/bug141333_0.xml | 9 + test/schemas/bug141333_0.xsd | 25 + test/schemas/bug143951.imp | 12 + test/schemas/bug143951_0.xml | 9 + test/schemas/bug143951_0.xsd | 17 + test/schemas/bug145246.xsd.imp | 119 + test/schemas/bug145246_0.xml | 30 + test/schemas/bug145246_0.xsd | 173 + test/schemas/bug152470_1.xml | 9 + test/schemas/bug152470_1.xsd | 49 + test/schemas/bug167754_0.xml | 12 + test/schemas/bug167754_0.xsd | 29 + test/schemas/bug303566_1.xml | 19 + test/schemas/bug303566_1.xsd | 63 + test/schemas/bug306806_0.xml | 111 + test/schemas/bug306806_1.xsd | 544 + test/schemas/bug309338_0.xml | 4 + test/schemas/bug309338_1.xsd | 13 + test/schemas/bug310264_0.xml | 41 + test/schemas/bug310264_0.xsd | 18 + test/schemas/bug312957_0.xml | 14 + test/schemas/bug312957_1.xsd | 39 + test/schemas/bug313982_0.xml | 4 + test/schemas/bug313982_0.xsd | 11 + test/schemas/bug321475_0.xml | 10 + test/schemas/bug321475_1.xsd | 48 + test/schemas/bug322411_0.xml | 93 + test/schemas/bug322411_1.xsd | 35 + test/schemas/bug323510_0.xml | 3 + test/schemas/bug323510_1.xsd | 12 + test/schemas/bug455953_0.xml | 9 + test/schemas/bug455953_0.xsd | 29 + test/schemas/changelog093_0.xml | 14 + test/schemas/changelog093_1.xsd | 253 + test/schemas/choice_0.xml | 3 + test/schemas/choice_0.xsd | 13 + test/schemas/choice_1.xml | 3 + test/schemas/choice_1.xsd | 13 + test/schemas/choice_2.xml | 4 + test/schemas/choice_2.xsd | 13 + test/schemas/choice_3.xml | 4 + test/schemas/choice_4.xml | 2 + test/schemas/choice_5.xml | 6 + test/schemas/choice_6.xml | 7 + test/schemas/complex-type-extension_0.xml | 12 + test/schemas/complex-type-extension_0.xsd | 27 + test/schemas/cos-ct-extends-1-3_0.xml | 9 + test/schemas/cos-ct-extends-1-3_0.xsd | 51 + test/schemas/cos-st-restricts-1-2-err_0.xml | 3 + test/schemas/cos-st-restricts-1-2-err_0.xsd | 30 + test/schemas/ct-sc-nobase_0.xml | 4 + test/schemas/ct-sc-nobase_0.xsd | 24 + test/schemas/date_0.xml | 26 + test/schemas/date_0.xsd | 122 + test/schemas/decimal-1.xml | 37 + test/schemas/decimal-1.xsd | 29 + test/schemas/decimal-1_0.xml | 24 + test/schemas/decimal-1_1.xsd | 19 + test/schemas/decimal-2_0.xml | 14 + test/schemas/decimal-2_1.xsd | 18 + test/schemas/decimal-3_0.xml | 17 + test/schemas/decimal-3_1.xsd | 18 + test/schemas/derivation-ok-extension-err_0.xml | 9 + test/schemas/derivation-ok-extension-err_0.xsd | 22 + test/schemas/derivation-ok-extension_0.xml | 9 + test/schemas/derivation-ok-extension_0.xsd | 22 + test/schemas/derivation-ok-restriction-2-1-1_0.xml | 8 + test/schemas/derivation-ok-restriction-2-1-1_0.xsd | 56 + .../derivation-ok-restriction-4-1-err_0.xml | 8 + .../derivation-ok-restriction-4-1-err_0.xsd | 69 + test/schemas/derivation-restriction-anyAttr_0.xml | 12 + test/schemas/derivation-restriction-anyAttr_0.xsd | 24 + test/schemas/derivation-restriction-anyType.xml | 9 + test/schemas/derivation-restriction-anyType.xsd | 22 + test/schemas/deter0_0.xml | 5 + test/schemas/deter0_0.xsd | 16 + test/schemas/dur_0.xml | 13 + test/schemas/dur_0.xsd | 72 + test/schemas/elem0_0.xml | 3 + test/schemas/elem0_0.xsd | 16 + test/schemas/element-err_0.xml | 4 + test/schemas/element-err_0.xsd | 39 + test/schemas/element-minmax-err_0.xml | 5 + test/schemas/element-minmax-err_0.xsd | 11 + test/schemas/empty-value_0.xml | 2 + test/schemas/empty-value_1.xml | 2 + test/schemas/empty-value_1.xsd | 24 + test/schemas/empty_0.xml | 1 + test/schemas/empty_0.xsd | 13 + test/schemas/empty_1.xsd | 9 + test/schemas/extension0_0.xml | 7 + test/schemas/extension0_0.xsd | 20 + test/schemas/extension1_0.xml | 1 + test/schemas/extension1_0.xsd | 17 + test/schemas/extension1_1.xml | 1 + test/schemas/extension1_2.xml | 1 + test/schemas/extension2_0.xml | 4 + test/schemas/extension2_1.xsd | 17 + test/schemas/facet-unionST-err1_0.xml | 4 + test/schemas/facet-unionST-err1_0.xsd | 27 + test/schemas/facet-whiteSpace_0.xml | 7 + test/schemas/facet-whiteSpace_0.xsd | 12 + test/schemas/group0_0.xml | 3 + test/schemas/group0_0.xsd | 18 + test/schemas/hexbinary_0.xml | 20 + test/schemas/hexbinary_0.xsd | 35 + test/schemas/hexbinary_1.xml | 15 + test/schemas/idc-keyref-err1_0.xml | 14 + test/schemas/idc-keyref-err1_1.xsd | 53 + test/schemas/import-455953.xsd | 24 + test/schemas/import-bad-1_0.imp | 5 + test/schemas/import0_0.imp | 13 + test/schemas/import0_0.xml | 8 + test/schemas/import0_0.xsd | 21 + test/schemas/import1_0.imp | 8 + test/schemas/import1_0.xml | 11 + test/schemas/import1_0.xsd | 30 + test/schemas/import1_0b.imp | 8 + test/schemas/import2_0.imp | 24 + test/schemas/import2_0.xml | 8 + test/schemas/import2_0.xsd | 24 + test/schemas/include1_0.inc | 28 + test/schemas/include1_0.xml | 8 + test/schemas/include1_0.xsd | 15 + test/schemas/include2_0.inc | 17 + test/schemas/include2_0.xml | 9 + test/schemas/include2_0.xsd | 14 + test/schemas/include3_0.inc | 5 + test/schemas/include3_0.xml | 7 + test/schemas/include3_0.xsd | 9 + test/schemas/item_0.xml | 6 + test/schemas/item_0.xsd | 39 + test/schemas/item_1.xsd | 42 + test/schemas/length1_0.xml | 1 + test/schemas/length1_0.xsd | 11 + test/schemas/length2_0.xml | 5 + test/schemas/length2_0.xsd | 14 + test/schemas/length3_0.xml | 5 + test/schemas/length3_0.xsd | 10 + test/schemas/list0_0.xml | 6 + test/schemas/list0_0.xsd | 13 + test/schemas/list0_1.xml | 3 + test/schemas/list0_1.xsd | 13 + test/schemas/list0_2.xml | 4 + test/schemas/mixed0_0.xml | 1 + test/schemas/mixed0_0.xsd | 5 + test/schemas/mixed1_0.xml | 1 + test/schemas/mixed1_0.xsd | 7 + test/schemas/ns0_0.xml | 2 + test/schemas/ns0_0.xsd | 16 + test/schemas/ns0_1.xml | 2 + test/schemas/ns0_1.xsd | 16 + test/schemas/ns0_2.xml | 2 + test/schemas/ns0_3.xml | 2 + test/schemas/ns0_4.xml | 3 + test/schemas/ns1_0.xml | 2 + test/schemas/ns1_0.xsd | 3 + test/schemas/ns2_0.xml | 1 + test/schemas/ns2_0.xsd | 15 + test/schemas/nvdcve_0.xml | 5235 +++ test/schemas/nvdcve_0.xsd | 498 + test/schemas/po0_0.xml | 32 + test/schemas/po0_0.xsd | 59 + test/schemas/po1_0.xml | 34 + test/schemas/po1_0.xsd | 64 + test/schemas/poschargrp0_0.xml | 2 + test/schemas/poschargrp0_0.xsd | 14 + test/schemas/regexp-char-ref_0.xml | 7 + test/schemas/regexp-char-ref_0.xsd | 20 + test/schemas/regexp-char-ref_1.xsd | 20 + test/schemas/restrict-CT-attr-ref_0.xml | 3 + test/schemas/restrict-CT-attr-ref_0.xsd | 30 + test/schemas/restriction-attr1_0.xml | 3 + test/schemas/restriction-attr1_0.xsd | 18 + test/schemas/restriction-enum-1_0.xml | 7 + test/schemas/restriction-enum-1_1.xsd | 19 + test/schemas/restriction0_0.xml | 5 + test/schemas/restriction0_0.xsd | 21 + test/schemas/scc-no-xmlns_0.xml | 3 + test/schemas/scc-no-xmlns_0.xsd | 11 + test/schemas/scc-no-xsi_0.xml | 3 + test/schemas/scc-no-xsi_0.xsd | 11 + test/schemas/seq-dubl-elem1_0.xml | 7 + test/schemas/seq-dubl-elem1_0.xsd | 25 + test/schemas/seq0_0.xml | 61 + test/schemas/seq0_0.xsd | 64 + test/schemas/src-attribute1_0.xml | 2 + test/schemas/src-attribute1_0.xsd | 13 + test/schemas/src-attribute2_0.xml | 2 + test/schemas/src-attribute2_0.xsd | 13 + test/schemas/src-attribute3-1_0.xml | 2 + test/schemas/src-attribute3-1_0.xsd | 15 + test/schemas/src-attribute3-2-form_0.xml | 2 + test/schemas/src-attribute3-2-form_0.xsd | 16 + test/schemas/src-attribute3-2-st_0.xml | 2 + test/schemas/src-attribute3-2-st_0.xsd | 22 + test/schemas/src-attribute3-2-type_0.xml | 2 + test/schemas/src-attribute3-2-type_0.xsd | 16 + test/schemas/src-attribute4_0.xml | 2 + test/schemas/src-attribute4_0.xsd | 17 + test/schemas/src-element1_0.xml | 2 + test/schemas/src-element1_0.xsd | 9 + test/schemas/src-element2-1_0.xml | 2 + test/schemas/src-element2-1_0.xsd | 17 + test/schemas/src-element2-2_0.xml | 2 + test/schemas/src-element2-2_0.xsd | 48 + test/schemas/src-element3_0.xml | 2 + test/schemas/src-element3_0.xsd | 29 + test/schemas/subst-group-1_0.xsd | 45 + test/schemas/subst-group-1_1.xml | 12 + test/schemas/union2_1.xml | 6 + test/schemas/union2_1.xsd | 21 + test/schemas/union_0_0.xml | 8 + test/schemas/union_0_0.xsd | 53 + test/schemas/vdv-complexTypes.xsd | 37 + test/schemas/vdv-first0_0.xml | 33 + test/schemas/vdv-first0_0.xsd | 67 + test/schemas/vdv-first1_0.xml | 33 + test/schemas/vdv-first1_0.xsd | 47 + test/schemas/vdv-first2_0.xml | 33 + test/schemas/vdv-first2_0.xsd | 89 + test/schemas/vdv-first3_0.xml | 33 + test/schemas/vdv-first3_0.xsd | 68 + test/schemas/vdv-first4_0.xml | 33 + test/schemas/vdv-first4_0.xsd | 150 + test/schemas/vdv-first4_1.xml | 33 + test/schemas/vdv-first4_2.xml | 33 + test/schemas/vdv-first5_0.xml | 33 + test/schemas/vdv-first5_0.xsd | 85 + test/schemas/vdv-simpleTypes.xsd | 38 + test/schemas/xml.xsd | 117 + test/schemas/xsd-list-itemType_0.xml | 3 + test/schemas/xsd-list-itemType_0.xsd | 14 + test/schemas/xsd-simpleType-varieties_0.xml | 8 + test/schemas/xsd-simpleType-varieties_0.xsd | 45 + test/schematron/zvon1.sct | 23 + test/schematron/zvon10.sct | 15 + test/schematron/zvon10_0.xml | 3 + test/schematron/zvon10_1.xml | 4 + test/schematron/zvon11.sct | 8 + test/schematron/zvon11_0.xml | 3 + test/schematron/zvon11_1.xml | 3 + test/schematron/zvon11_2.xml | 3 + test/schematron/zvon11_3.xml | 3 + test/schematron/zvon12.sct | 8 + test/schematron/zvon12_0.xml | 3 + test/schematron/zvon12_1.xml | 3 + test/schematron/zvon12_2.xml | 3 + test/schematron/zvon13.sct | 7 + test/schematron/zvon13_0.xml | 6 + test/schematron/zvon13_1.xml | 5 + test/schematron/zvon13_2.xml | 5 + test/schematron/zvon14.sct | 10 + test/schematron/zvon14_0.xml | 12 + test/schematron/zvon15.sct | 11 + test/schematron/zvon15_0.xml | 4 + test/schematron/zvon1_0.xml | 3 + test/schematron/zvon1_1.xml | 3 + test/schematron/zvon2.sct | 9 + test/schematron/zvon2_0.xml | 4 + test/schematron/zvon2_1.xml | 4 + test/schematron/zvon2_2.xml | 5 + test/schematron/zvon3.sct | 8 + test/schematron/zvon3_0.xml | 8 + test/schematron/zvon4.sct | 10 + test/schematron/zvon4_0.xml | 6 + test/schematron/zvon4_1.xml | 6 + test/schematron/zvon5.sct | 12 + test/schematron/zvon5_0.xml | 5 + test/schematron/zvon5_1.xml | 5 + test/schematron/zvon5_2.xml | 7 + test/schematron/zvon6.sct | 8 + test/schematron/zvon6_0.xml | 3 + test/schematron/zvon6_1.xml | 3 + test/schematron/zvon6_2.xml | 3 + test/schematron/zvon7.sct | 9 + test/schematron/zvon7_0.xml | 3 + test/schematron/zvon7_1.xml | 3 + test/schematron/zvon7_2.xml | 3 + test/schematron/zvon7_3.xml | 3 + test/schematron/zvon7_4.xml | 3 + test/schematron/zvon8.sct | 10 + test/schematron/zvon8_0.xml | 8 + test/schematron/zvon8_1.xml | 7 + test/schematron/zvon8_2.xml | 7 + test/schematron/zvon9.sct | 9 + test/schematron/zvon9_0.xml | 7 + test/schematron/zvon9_1.xml | 7 + test/schematron/zvon9_2.xml | 7 + test/scripts/base.script | 7 + test/scripts/base.xml | 7 + test/scripts/base2.script | 7 + test/scripts/base2.xml | 7 + test/scripts/set1.script | 2 + test/scripts/set1.xml | 1 + test/scripts/set3.script | 5 + test/scripts/set3.xml | 1 + test/scripts/set4.script | 4 + test/scripts/set4.xml | 1 + test/slashdot.rdf | 66 + test/slashdot.xml | 112 + test/slashdot16.xml | Bin 0 -> 10374 bytes test/svg1 | 163 + test/svg2 | 58 + test/svg3 | 722 + test/threads/a.example.org.xml | 6 + test/threads/a/a.dtd | 1 + test/threads/abc.dtd | 7 + test/threads/abc.xml | 7 + test/threads/acb.dtd | 7 + test/threads/acb.xml | 7 + test/threads/b.example.org.xml | 6 + test/threads/b/b.dtd | 2 + test/threads/bac.dtd | 7 + test/threads/bac.xml | 7 + test/threads/bca.dtd | 7 + test/threads/bca.xml | 7 + test/threads/c.example.org.xml | 6 + test/threads/c/c.dtd | 1 + test/threads/cab.dtd | 7 + test/threads/cab.xml | 7 + test/threads/cba.dtd | 7 + test/threads/cba.xml | 7 + test/threads/complex.xml | 6 + test/threads/example.org.xml | 9 + test/threads/invalid.xml | 2 + test/title.xml | 2 + test/tstblanks.xml | 495 + test/utf16bebom.xml | Bin 0 -> 346 bytes test/utf16bom.xml | Bin 0 -> 256 bytes test/utf16lebom.xml | Bin 0 -> 344 bytes test/utf8bom.xml | 1 + test/valid/127772.xml | 7 + test/valid/REC-xml-19980210.xml | 4197 +++ test/valid/UTF16Entity.xml | 8 + test/valid/dia.xml | 163 + test/valid/dtds/127772.dtd | 7 + test/valid/dtds/NewsMLv1.0.dtd | 1578 + test/valid/dtds/destfoo.ent | 1 + test/valid/dtds/external.ent | 3 + test/valid/dtds/external2.ent | 1 + test/valid/dtds/nitf-2-5.dtd | 1004 + test/valid/dtds/notes.dtd | 19 + test/valid/dtds/objednavka.dtd | 23 + test/valid/dtds/spec.dtd | 972 + test/valid/dtds/utf16b.ent | Bin 0 -> 98 bytes test/valid/dtds/utf16l.ent | Bin 0 -> 98 bytes test/valid/dtds/xhtml-lat1.ent | 196 + test/valid/dtds/xhtml-special.ent | 79 + test/valid/dtds/xhtml-symbol.ent | 242 + test/valid/dtds/xhtml.cat | 14 + test/valid/dtds/xhtml1-frameset.dtd | 1223 + test/valid/dtds/xhtml1-strict.dtd | 986 + test/valid/dtds/xhtml1-transitional.dtd | 1194 + test/valid/dtds/xhtml1.dcl | 179 + test/valid/dtds/xmlspec.dtd | 1102 + test/valid/id1.xml | 13 + test/valid/id2.xml | 14 + test/valid/id3.xml | 14 + test/valid/index.xml | 111 + test/valid/mixed_ns.xml | 16 + test/valid/notes.xml | 5 + test/valid/ns.xml | 9 + test/valid/ns2.xml | 14 + test/valid/objednavka.xml | 39 + test/valid/rss.xml | 177 + test/valid/t10.xml | 12 + test/valid/t11.xml | 2 + test/valid/t4.dtd | 4 + test/valid/t4.xml | 3 + test/valid/t4a.dtd | 5 + test/valid/t4a.xml | 3 + test/valid/t6.dtd | 5 + test/valid/t6.xml | 3 + test/valid/t8.xml | 8 + test/valid/t8a.xml | 8 + test/valid/t9.xml | 8 + test/valid/t9a.xml | 8 + test/valid/xhtml1.xhtml | 1505 + test/valid/xlink.xml | 529 + test/wap.xml | 27 + test/warning/ent8 | 3 + test/warning/ent9 | 7 + test/winblanks.xml | 5 + test/wml.xml | 11 + test/xhtml1 | 34 + test/xhtmlcomp | 8 + test/xml1 | 7 + test/xml2 | 8 + test/xmlid/id_err1.xml | 1 + test/xmlid/id_err2.xml | 5 + test/xmlid/id_tst1.xml | 1 + test/xmlid/id_tst2.xml | 1 + test/xmlid/id_tst3.xml | 1 + test/xmlid/id_tst4.xml | 4 + test/xsdtest/xsdtest.xml | 806 + test/xsdtest/xsdtest.xsl | 238 + test/xsdtest/xsdtestsuite.xml | 5286 +++ testAutomata.c | 4 +- testC14N.c | 96 +- testHTML.c | 30 +- testModule.c | 4 +- testRegexp.c | 18 +- testRelax.c | 10 +- testSAX.c | 22 +- testSchemas.c | 10 +- testThreadsWin32.c | 6 +- testXPath.c | 16 +- testapi.c | 356 +- testchar.c | 20 +- testlimits.c | 1634 + testrecurse.c | 11 - threads.c | 5 +- timsort.h | 506 + tree.c | 299 +- trio.c | 300 +- trio.h | 2 +- trionan.c | 74 +- trionan.h | 2 +- triostr.c | 146 +- uri.c | 404 +- valid.c | 198 +- win32/.cvsignore | 7 - win32/Makefile.bcb | 20 +- win32/Makefile.mingw | 20 +- win32/Makefile.msvc | 17 +- win32/VC10/libxml2.vcxproj | 1 + win32/VC10/runsuite.vcxproj | 2 +- win32/libxml2.def.src | 22 +- win32/wince/wincecompat.c | 7 +- xinclude.c | 127 +- xlink.c | 10 +- xml2-config.1 | 1 - xml2-config.in | 6 +- xmlIO.c | 225 +- xmlcatalog.c | 24 +- xmllint.c | 28 +- xmlmemory.c | 2 +- xmlmodule.c | 21 +- xmlreader.c | 161 +- xmlregexp.c | 245 +- xmlsave.c | 313 +- xmlschemas.c | 253 +- xmlschemastypes.c | 334 +- xmlstring.c | 34 +- xmlunicode.c | 1270 +- xmlwriter.c | 48 +- xpath.c | 591 +- xpointer.c | 98 +- xstc/Makefile.am | 4 +- xstc/Makefile.in | 34 +- 3632 files changed, 380374 insertions(+), 7727 deletions(-) create mode 100644 buf.c create mode 100644 buf.h mode change 100755 => 100644 chvalid.c create mode 100644 doc/examples/index.html delete mode 100644 doc/html/libxml-xzlib.html create mode 100644 enc.h mode change 100755 => 100644 ltmain.sh create mode 100644 python/libxml2-export.c create mode 100644 python/libxml2-py.c create mode 100644 python/libxml2-py.h create mode 100644 python/libxml2.py create mode 100644 python/libxml2class.py create mode 100644 python/libxml2class.txt create mode 100644 result/HTML/53867.html create mode 100644 result/HTML/53867.html.err create mode 100644 result/HTML/53867.html.sax create mode 100644 result/HTML/Down.html create mode 100644 result/HTML/Down.html.err create mode 100644 result/HTML/Down.html.sax create mode 100644 result/HTML/attrents.html create mode 100644 result/HTML/attrents.html.err create mode 100644 result/HTML/attrents.html.sax create mode 100644 result/HTML/autoclose.html create mode 100644 result/HTML/autoclose.html.err create mode 100644 result/HTML/autoclose.html.sax create mode 100644 result/HTML/autoclose2.html create mode 100644 result/HTML/autoclose2.html.err create mode 100644 result/HTML/autoclose2.html.sax create mode 100644 result/HTML/autoclose3.html create mode 100644 result/HTML/autoclose3.html.err create mode 100644 result/HTML/autoclose3.html.sax create mode 100644 result/HTML/cf_128.html create mode 100644 result/HTML/cf_128.html.err create mode 100644 result/HTML/cf_128.html.sax create mode 100644 result/HTML/doc2.htm create mode 100644 result/HTML/doc2.htm.err create mode 100644 result/HTML/doc2.htm.sax create mode 100644 result/HTML/doc3.htm create mode 100644 result/HTML/doc3.htm.err create mode 100644 result/HTML/doc3.htm.sax create mode 100644 result/HTML/entities.html create mode 100644 result/HTML/entities.html.err create mode 100644 result/HTML/entities.html.sax create mode 100644 result/HTML/entities2.html create mode 100644 result/HTML/entities2.html.err create mode 100644 result/HTML/entities2.html.sax create mode 100644 result/HTML/fp40.htm create mode 100644 result/HTML/fp40.htm.err create mode 100644 result/HTML/fp40.htm.sax create mode 100644 result/HTML/html5_enc.html create mode 100644 result/HTML/html5_enc.html.err create mode 100644 result/HTML/html5_enc.html.sax create mode 100644 result/HTML/liclose.html create mode 100644 result/HTML/liclose.html.err create mode 100644 result/HTML/liclose.html.sax create mode 100644 result/HTML/lt.html create mode 100644 result/HTML/lt.html.err create mode 100644 result/HTML/lt.html.sax create mode 100644 result/HTML/noscript.html create mode 100644 result/HTML/noscript.html.err create mode 100644 result/HTML/noscript.html.sax create mode 100644 result/HTML/pre.html create mode 100644 result/HTML/pre.html.err create mode 100644 result/HTML/pre.html.sax create mode 100644 result/HTML/python.html create mode 100644 result/HTML/python.html.err create mode 100644 result/HTML/python.html.sax create mode 100644 result/HTML/reg1.html create mode 100644 result/HTML/reg1.html.err create mode 100644 result/HTML/reg1.html.sax create mode 100644 result/HTML/reg2.html create mode 100644 result/HTML/reg2.html.err create mode 100644 result/HTML/reg2.html.sax create mode 100644 result/HTML/reg3.html create mode 100644 result/HTML/reg3.html.err create mode 100644 result/HTML/reg3.html.sax create mode 100644 result/HTML/reg4.html create mode 100644 result/HTML/reg4.html.err create mode 100644 result/HTML/reg4.html.sax create mode 100644 result/HTML/repeat.html create mode 100644 result/HTML/repeat.html.err create mode 100644 result/HTML/repeat.html.sax create mode 100644 result/HTML/script.html create mode 100644 result/HTML/script.html.err create mode 100644 result/HTML/script.html.sax create mode 100644 result/HTML/script2.html create mode 100644 result/HTML/script2.html.err create mode 100644 result/HTML/script2.html.sax create mode 100644 result/HTML/test2.html create mode 100644 result/HTML/test2.html.err create mode 100644 result/HTML/test2.html.sax create mode 100644 result/HTML/test3.html create mode 100644 result/HTML/test3.html.err create mode 100644 result/HTML/test3.html.sax create mode 100644 result/HTML/utf8bug.html create mode 100644 result/HTML/utf8bug.html.err create mode 100644 result/HTML/utf8bug.html.sax create mode 100644 result/HTML/wired.html create mode 100644 result/HTML/wired.html.err create mode 100644 result/HTML/wired.html.sax create mode 100644 result/SVG/4rects.xml create mode 100644 result/SVG/a-valid.xml create mode 100644 result/SVG/a-wf.xml create mode 100644 result/SVG/bike-errors.xml create mode 100644 result/SVG/bike.xml create mode 100644 result/SVG/circle.xml create mode 100644 result/SVG/defs.xml create mode 100644 result/SVG/desc.xml create mode 100644 result/SVG/ellipse.xml create mode 100644 result/SVG/flower2.xml create mode 100644 result/SVG/gradient.xml create mode 100644 result/SVG/group01.xml create mode 100644 result/SVG/group02.xml create mode 100644 result/SVG/group03.xml create mode 100644 result/SVG/image-valid.xml create mode 100644 result/SVG/image-wf.xml create mode 100644 result/SVG/lin-gradient.xml create mode 100644 result/SVG/marker.xml create mode 100644 result/SVG/mask.xml create mode 100644 result/SVG/mathswitch.xml create mode 100644 result/SVG/parentns.xml create mode 100644 result/SVG/path01.xml create mode 100644 result/SVG/path02.xml create mode 100644 result/SVG/patternfill.xml create mode 100644 result/SVG/polyline.xml create mode 100644 result/SVG/private.xml create mode 100644 result/SVG/rad-gradient.xml create mode 100644 result/SVG/rectangle.xml create mode 100644 result/SVG/richdesc.xml create mode 100644 result/SVG/script.xml create mode 100644 result/SVG/structure01.xml create mode 100644 result/SVG/style.xml create mode 100644 result/SVG/switch.xml create mode 100644 result/SVG/symbol-use.xml create mode 100644 result/SVG/template.xml create mode 100644 result/SVG/text01.xml create mode 100644 result/SVG/text02.xml create mode 100644 result/SVG/text03.xml create mode 100644 result/SVG/toap01.xml create mode 100644 result/SVG/toap02.xml create mode 100644 result/SVG/transform.xml create mode 100644 result/SVG/trivial.xml create mode 100644 result/SVG/twin-gradients.xml create mode 100644 result/SVG/v-template.xml create mode 100644 result/SVG/viewport-nest.xml create mode 100644 result/SVG/viewport-transform.xml create mode 100644 result/SVG/viewport.xml create mode 100644 result/SVG/wf-template.xml create mode 100644 result/URI/smith.uri create mode 100644 result/URI/uri.data create mode 100644 result/VC/AttributeDefaultLegal create mode 100644 result/VC/AttributeNmtokens create mode 100644 result/VC/DuplicateType create mode 100644 result/VC/ElementValid create mode 100644 result/VC/ElementValid2 create mode 100644 result/VC/ElementValid3 create mode 100644 result/VC/ElementValid4 create mode 100644 result/VC/ElementValid5 create mode 100644 result/VC/ElementValid6 create mode 100644 result/VC/ElementValid7 create mode 100644 result/VC/ElementValid8 create mode 100644 result/VC/Enumeration create mode 100644 result/VC/NS1 create mode 100644 result/VC/NS2 create mode 100644 result/VC/NS3 create mode 100644 result/VC/OneID create mode 100644 result/VC/OneID2 create mode 100644 result/VC/OneID3 create mode 100644 result/VC/PENesting create mode 100644 result/VC/PENesting2 create mode 100644 result/VC/UniqueElementTypeDeclaration create mode 100644 result/VC/UniqueElementTypeDeclaration2 create mode 100644 result/XInclude/docids.xml create mode 100644 result/XInclude/docids.xml.err create mode 100644 result/XInclude/docids.xml.rdr create mode 100644 result/XInclude/fallback.xml create mode 100644 result/XInclude/fallback.xml.err create mode 100644 result/XInclude/fallback.xml.rdr create mode 100644 result/XInclude/fallback2.xml create mode 100644 result/XInclude/fallback2.xml.err create mode 100644 result/XInclude/fallback2.xml.rdr create mode 100644 result/XInclude/include.xml create mode 100644 result/XInclude/include.xml.err create mode 100644 result/XInclude/include.xml.rdr create mode 100644 result/XInclude/nodes.xml create mode 100644 result/XInclude/nodes.xml.err create mode 100644 result/XInclude/nodes.xml.rdr create mode 100644 result/XInclude/nodes2.xml create mode 100644 result/XInclude/nodes2.xml.err create mode 100644 result/XInclude/nodes2.xml.rdr create mode 100644 result/XInclude/nodes3.xml create mode 100644 result/XInclude/nodes3.xml.err create mode 100644 result/XInclude/nodes3.xml.rdr create mode 100644 result/XInclude/recursive.xml create mode 100644 result/XInclude/recursive.xml.err create mode 100644 result/XInclude/recursive.xml.rdr create mode 100644 result/XInclude/tstencoding.xml create mode 100644 result/XInclude/tstencoding.xml.err create mode 100644 result/XInclude/tstencoding.xml.rdr create mode 100644 result/XInclude/txtinclude.xml create mode 100644 result/XInclude/txtinclude.xml.err create mode 100644 result/XInclude/txtinclude.xml.rdr create mode 100644 result/XPath/expr/base create mode 100644 result/XPath/expr/compare create mode 100644 result/XPath/expr/equality create mode 100644 result/XPath/expr/floats create mode 100644 result/XPath/expr/functions create mode 100644 result/XPath/expr/strings create mode 100644 result/XPath/tests/chaptersbase create mode 100644 result/XPath/tests/chaptersprefol create mode 100644 result/XPath/tests/idsimple create mode 100644 result/XPath/tests/langsimple create mode 100644 result/XPath/tests/mixedpat create mode 100644 result/XPath/tests/nodespat create mode 100644 result/XPath/tests/simpleabbr create mode 100644 result/XPath/tests/simplebase create mode 100644 result/XPath/tests/usr1check create mode 100644 result/XPath/tests/vidbase create mode 100644 result/XPath/xptr/chapterschildseq create mode 100644 result/XPath/xptr/chaptersparts create mode 100644 result/XPath/xptr/chaptersrange create mode 100644 result/XPath/xptr/strpoint create mode 100644 result/XPath/xptr/strrange create mode 100644 result/XPath/xptr/strrange2 create mode 100644 result/XPath/xptr/strrange3 create mode 100644 result/XPath/xptr/vidbase create mode 100644 result/XPath/xptr/vidchildseq create mode 100644 result/XPath/xptr/vidparts create mode 100644 result/att1 create mode 100644 result/att1.rde create mode 100644 result/att1.rdr create mode 100644 result/att1.sax create mode 100644 result/att1.sax2 create mode 100644 result/att10 create mode 100644 result/att10.rde create mode 100644 result/att10.rdr create mode 100644 result/att10.sax create mode 100644 result/att10.sax2 create mode 100644 result/att11 create mode 100644 result/att11.rde create mode 100644 result/att11.rdr create mode 100644 result/att11.sax create mode 100644 result/att11.sax2 create mode 100644 result/att2 create mode 100644 result/att2.rde create mode 100644 result/att2.rdr create mode 100644 result/att2.sax create mode 100644 result/att2.sax2 create mode 100644 result/att3 create mode 100644 result/att3.rde create mode 100644 result/att3.rdr create mode 100644 result/att3.sax create mode 100644 result/att3.sax2 create mode 100644 result/att4 create mode 100644 result/att4.rde create mode 100644 result/att4.rdr create mode 100644 result/att4.sax create mode 100644 result/att4.sax2 create mode 100644 result/att5 create mode 100644 result/att5.rde create mode 100644 result/att5.rdr create mode 100644 result/att5.sax create mode 100644 result/att5.sax2 create mode 100644 result/att6 create mode 100644 result/att6.rde create mode 100644 result/att6.rdr create mode 100644 result/att6.sax create mode 100644 result/att6.sax2 create mode 100644 result/att7 create mode 100644 result/att7.rde create mode 100644 result/att7.rdr create mode 100644 result/att7.sax create mode 100644 result/att7.sax2 create mode 100644 result/att8 create mode 100644 result/att8.rde create mode 100644 result/att8.rdr create mode 100644 result/att8.sax create mode 100644 result/att8.sax2 create mode 100644 result/att9 create mode 100644 result/att9.rde create mode 100644 result/att9.rdr create mode 100644 result/att9.sax create mode 100644 result/att9.sax2 create mode 100644 result/attrib.xml create mode 100644 result/attrib.xml.rde create mode 100644 result/attrib.xml.rdr create mode 100644 result/attrib.xml.sax create mode 100644 result/attrib.xml.sax2 create mode 100644 result/automata/a create mode 100644 result/automata/aba create mode 100644 result/automata/abaa create mode 100644 result/automata/abba create mode 100644 result/automata/po create mode 100644 result/badcomment.xml create mode 100644 result/badcomment.xml.rde create mode 100644 result/badcomment.xml.rdr create mode 100644 result/badcomment.xml.sax create mode 100644 result/badcomment.xml.sax2 create mode 100644 result/bigentname.xml create mode 100644 result/bigentname.xml.rde create mode 100644 result/bigentname.xml.rdr create mode 100644 result/bigentname.xml.sax create mode 100644 result/bigentname.xml.sax2 create mode 100644 result/bigname.xml create mode 100644 result/bigname.xml.rde create mode 100644 result/bigname.xml.rdr create mode 100644 result/bigname.xml.sax create mode 100644 result/bigname.xml.sax2 create mode 100644 result/bigname2.xml create mode 100644 result/bigname2.xml.rde create mode 100644 result/bigname2.xml.rdr create mode 100644 result/bigname2.xml.sax create mode 100644 result/bigname2.xml.sax2 create mode 100755 result/c14n/1-1-without-comments/example-1 create mode 100755 result/c14n/1-1-without-comments/example-2 create mode 100755 result/c14n/1-1-without-comments/example-3 create mode 100755 result/c14n/1-1-without-comments/example-4 create mode 100755 result/c14n/1-1-without-comments/example-5 create mode 100755 result/c14n/1-1-without-comments/example-6 create mode 100755 result/c14n/1-1-without-comments/example-7 create mode 100755 result/c14n/1-1-without-comments/example-8 create mode 100644 result/c14n/1-1-without-comments/xmlbase-c14n11spec-102 create mode 100644 result/c14n/1-1-without-comments/xmlbase-c14n11spec2-102 create mode 100644 result/c14n/1-1-without-comments/xmlbase-c14n11spec3-102 create mode 100644 result/c14n/1-1-without-comments/xmlbase-prop-1 create mode 100644 result/c14n/1-1-without-comments/xmlbase-prop-2 create mode 100644 result/c14n/1-1-without-comments/xmlbase-prop-3 create mode 100644 result/c14n/1-1-without-comments/xmlbase-prop-4 create mode 100644 result/c14n/1-1-without-comments/xmlbase-prop-5 create mode 100644 result/c14n/1-1-without-comments/xmlbase-prop-6 create mode 100644 result/c14n/1-1-without-comments/xmlbase-prop-7 create mode 100644 result/c14n/1-1-without-comments/xmlid-prop-1 create mode 100644 result/c14n/1-1-without-comments/xmlid-prop-2 create mode 100644 result/c14n/1-1-without-comments/xmllang-prop-1 create mode 100644 result/c14n/1-1-without-comments/xmllang-prop-2 create mode 100644 result/c14n/1-1-without-comments/xmllang-prop-3 create mode 100644 result/c14n/1-1-without-comments/xmllang-prop-4 create mode 100644 result/c14n/1-1-without-comments/xmlspace-prop-1 create mode 100644 result/c14n/1-1-without-comments/xmlspace-prop-2 create mode 100644 result/c14n/1-1-without-comments/xmlspace-prop-3 create mode 100644 result/c14n/1-1-without-comments/xmlspace-prop-4 create mode 100644 result/c14n/exc-without-comments/merlin-c14n-two-09 create mode 100644 result/c14n/exc-without-comments/merlin-c14n-two-10 create mode 100644 result/c14n/exc-without-comments/merlin-c14n-two-11 create mode 100644 result/c14n/exc-without-comments/merlin-c14n-two-12 create mode 100644 result/c14n/exc-without-comments/merlin-c14n-two-13 create mode 100644 result/c14n/exc-without-comments/merlin-c14n-two-14 create mode 100644 result/c14n/exc-without-comments/merlin-c14n-two-15 create mode 100644 result/c14n/exc-without-comments/merlin-c14n-two-16 create mode 100644 result/c14n/exc-without-comments/merlin-c14n-two-17 create mode 100644 result/c14n/exc-without-comments/merlin-c14n-two-18 create mode 100644 result/c14n/exc-without-comments/merlin-c14n-two-19 create mode 100644 result/c14n/exc-without-comments/merlin-c14n-two-20 create mode 100644 result/c14n/exc-without-comments/merlin-c14n-two-21 create mode 100644 result/c14n/exc-without-comments/merlin-c14n-two-22 create mode 100644 result/c14n/exc-without-comments/merlin-c14n-two-23 create mode 100644 result/c14n/exc-without-comments/merlin-c14n-two-24 create mode 100644 result/c14n/exc-without-comments/merlin-c14n-two-25 create mode 100644 result/c14n/exc-without-comments/merlin-c14n-two-26 create mode 100644 result/c14n/exc-without-comments/test-0 create mode 100644 result/c14n/exc-without-comments/test-1 create mode 100644 result/c14n/exc-without-comments/test-2 create mode 100644 result/c14n/with-comments/example-1 create mode 100644 result/c14n/with-comments/example-2 create mode 100644 result/c14n/with-comments/example-3 create mode 100644 result/c14n/with-comments/example-4 create mode 100644 result/c14n/with-comments/example-5 create mode 100644 result/c14n/with-comments/example-6 create mode 100644 result/c14n/with-comments/example-7 create mode 100644 result/c14n/without-comments/example-1 create mode 100644 result/c14n/without-comments/example-2 create mode 100644 result/c14n/without-comments/example-3 create mode 100644 result/c14n/without-comments/example-4 create mode 100644 result/c14n/without-comments/example-5 create mode 100644 result/c14n/without-comments/example-6 create mode 100644 result/c14n/without-comments/example-7 create mode 100644 result/c14n/without-comments/merlin-c14n-two-00 create mode 100644 result/c14n/without-comments/merlin-c14n-two-01 create mode 100644 result/c14n/without-comments/merlin-c14n-two-02 create mode 100644 result/c14n/without-comments/merlin-c14n-two-03 create mode 100644 result/c14n/without-comments/merlin-c14n-two-04 create mode 100644 result/c14n/without-comments/merlin-c14n-two-05 create mode 100644 result/c14n/without-comments/merlin-c14n-two-06 create mode 100644 result/c14n/without-comments/merlin-c14n-two-07 create mode 100644 result/c14n/without-comments/merlin-c14n-two-08 create mode 100644 result/c14n/without-comments/test-0 create mode 100644 result/c14n/without-comments/test-1 create mode 100644 result/c14n/without-comments/test-2 create mode 100644 result/c14n/without-comments/test-3 create mode 100644 result/catalogs/catal create mode 100644 result/catalogs/docbook create mode 100644 result/catalogs/mycatalog.empty create mode 100644 result/catalogs/mycatalog.full create mode 100644 result/catalogs/registry create mode 100644 result/catalogs/whites create mode 100644 result/catalogs/whitex create mode 100644 result/cdata create mode 100644 result/cdata.rde create mode 100644 result/cdata.rdr create mode 100644 result/cdata.sax create mode 100644 result/cdata.sax2 create mode 100644 result/cdata2 create mode 100644 result/cdata2.rde create mode 100644 result/cdata2.rdr create mode 100644 result/cdata2.sax create mode 100644 result/cdata2.sax2 create mode 100644 result/comment.xml create mode 100644 result/comment.xml.rde create mode 100644 result/comment.xml.rdr create mode 100644 result/comment.xml.sax create mode 100644 result/comment.xml.sax2 create mode 100644 result/comment2.xml create mode 100644 result/comment2.xml.rde create mode 100644 result/comment2.xml.rdr create mode 100644 result/comment2.xml.sax create mode 100644 result/comment2.xml.sax2 create mode 100644 result/comment3.xml create mode 100644 result/comment3.xml.rde create mode 100644 result/comment3.xml.rdr create mode 100644 result/comment3.xml.sax create mode 100644 result/comment3.xml.sax2 create mode 100644 result/comment4.xml create mode 100644 result/comment4.xml.rde create mode 100644 result/comment4.xml.rdr create mode 100644 result/comment4.xml.sax create mode 100644 result/comment4.xml.sax2 create mode 100644 result/comment5.xml create mode 100644 result/comment5.xml.rde create mode 100644 result/comment5.xml.rdr create mode 100644 result/comment5.xml.sax create mode 100644 result/comment5.xml.sax2 create mode 100644 result/comment6.xml create mode 100644 result/comment6.xml.rde create mode 100644 result/comment6.xml.rdr create mode 100644 result/comment6.xml.sax create mode 100644 result/comment6.xml.sax2 create mode 100644 result/dav1 create mode 100644 result/dav1.rde create mode 100644 result/dav1.rdr create mode 100644 result/dav1.sax create mode 100644 result/dav1.sax2 create mode 100644 result/dav10 create mode 100644 result/dav10.rde create mode 100644 result/dav10.rdr create mode 100644 result/dav10.sax create mode 100644 result/dav10.sax2 create mode 100644 result/dav11 create mode 100644 result/dav11.rde create mode 100644 result/dav11.rdr create mode 100644 result/dav11.sax create mode 100644 result/dav11.sax2 create mode 100644 result/dav12 create mode 100644 result/dav12.rde create mode 100644 result/dav12.rdr create mode 100644 result/dav12.sax create mode 100644 result/dav12.sax2 create mode 100644 result/dav13 create mode 100644 result/dav13.rde create mode 100644 result/dav13.rdr create mode 100644 result/dav13.sax create mode 100644 result/dav13.sax2 create mode 100644 result/dav15 create mode 100644 result/dav15.rde create mode 100644 result/dav15.rdr create mode 100644 result/dav15.sax create mode 100644 result/dav15.sax2 create mode 100644 result/dav16 create mode 100644 result/dav16.rde create mode 100644 result/dav16.rdr create mode 100644 result/dav16.sax create mode 100644 result/dav16.sax2 create mode 100644 result/dav17 create mode 100644 result/dav17.rde create mode 100644 result/dav17.rdr create mode 100644 result/dav17.sax create mode 100644 result/dav17.sax2 create mode 100644 result/dav18 create mode 100644 result/dav18.rde create mode 100644 result/dav18.rdr create mode 100644 result/dav18.sax create mode 100644 result/dav18.sax2 create mode 100644 result/dav19 create mode 100644 result/dav19.rde create mode 100644 result/dav19.rdr create mode 100644 result/dav19.sax create mode 100644 result/dav19.sax2 create mode 100644 result/dav2 create mode 100644 result/dav2.rde create mode 100644 result/dav2.rdr create mode 100644 result/dav2.sax create mode 100644 result/dav2.sax2 create mode 100644 result/dav3 create mode 100644 result/dav3.rde create mode 100644 result/dav3.rdr create mode 100644 result/dav3.sax create mode 100644 result/dav3.sax2 create mode 100644 result/dav4 create mode 100644 result/dav4.rde create mode 100644 result/dav4.rdr create mode 100644 result/dav4.sax create mode 100644 result/dav4.sax2 create mode 100644 result/dav5 create mode 100644 result/dav5.rde create mode 100644 result/dav5.rdr create mode 100644 result/dav5.sax create mode 100644 result/dav5.sax2 create mode 100644 result/dav6 create mode 100644 result/dav6.rde create mode 100644 result/dav6.rdr create mode 100644 result/dav6.sax create mode 100644 result/dav6.sax2 create mode 100644 result/dav7 create mode 100644 result/dav7.rde create mode 100644 result/dav7.rdr create mode 100644 result/dav7.sax create mode 100644 result/dav7.sax2 create mode 100644 result/dav8 create mode 100644 result/dav8.rde create mode 100644 result/dav8.rdr create mode 100644 result/dav8.sax create mode 100644 result/dav8.sax2 create mode 100644 result/dav9 create mode 100644 result/dav9.rde create mode 100644 result/dav9.rdr create mode 100644 result/dav9.sax create mode 100644 result/dav9.sax2 create mode 100644 result/defattr.xml create mode 100644 result/defattr.xml.rde create mode 100644 result/defattr.xml.rdr create mode 100644 result/defattr.xml.sax create mode 100644 result/defattr.xml.sax2 create mode 100644 result/defattr2.xml create mode 100644 result/defattr2.xml.rde create mode 100644 result/defattr2.xml.rdr create mode 100644 result/defattr2.xml.sax create mode 100644 result/defattr2.xml.sax2 create mode 100644 result/dia1 create mode 100644 result/dia1.rde create mode 100644 result/dia1.rdr create mode 100644 result/dia1.sax create mode 100644 result/dia1.sax2 create mode 100644 result/dia2 create mode 100644 result/dia2.rde create mode 100644 result/dia2.rdr create mode 100644 result/dia2.sax create mode 100644 result/dia2.sax2 create mode 100644 result/dtd1 create mode 100644 result/dtd1.rde create mode 100644 result/dtd1.rdr create mode 100644 result/dtd1.sax create mode 100644 result/dtd1.sax2 create mode 100644 result/dtd10 create mode 100644 result/dtd10.rde create mode 100644 result/dtd10.rdr create mode 100644 result/dtd10.sax create mode 100644 result/dtd10.sax2 create mode 100644 result/dtd11 create mode 100644 result/dtd11.rde create mode 100644 result/dtd11.rdr create mode 100644 result/dtd11.sax create mode 100644 result/dtd11.sax2 create mode 100644 result/dtd12 create mode 100644 result/dtd12.rde create mode 100644 result/dtd12.rdr create mode 100644 result/dtd12.sax create mode 100644 result/dtd12.sax2 create mode 100644 result/dtd13 create mode 100644 result/dtd13.rde create mode 100644 result/dtd13.rdr create mode 100644 result/dtd13.sax create mode 100644 result/dtd13.sax2 create mode 100644 result/dtd2 create mode 100644 result/dtd2.rde create mode 100644 result/dtd2.rdr create mode 100644 result/dtd2.sax create mode 100644 result/dtd2.sax2 create mode 100644 result/dtd3 create mode 100644 result/dtd3.rde create mode 100644 result/dtd3.rdr create mode 100644 result/dtd3.sax create mode 100644 result/dtd3.sax2 create mode 100644 result/dtd4 create mode 100644 result/dtd4.rde create mode 100644 result/dtd4.rdr create mode 100644 result/dtd4.sax create mode 100644 result/dtd4.sax2 create mode 100644 result/dtd5 create mode 100644 result/dtd5.rde create mode 100644 result/dtd5.rdr create mode 100644 result/dtd5.sax create mode 100644 result/dtd5.sax2 create mode 100644 result/dtd6 create mode 100644 result/dtd6.rde create mode 100644 result/dtd6.rdr create mode 100644 result/dtd6.sax create mode 100644 result/dtd6.sax2 create mode 100644 result/dtd7 create mode 100644 result/dtd7.rde create mode 100644 result/dtd7.rdr create mode 100644 result/dtd7.sax create mode 100644 result/dtd7.sax2 create mode 100644 result/dtd8 create mode 100644 result/dtd8.rde create mode 100644 result/dtd8.rdr create mode 100644 result/dtd8.sax create mode 100644 result/dtd8.sax2 create mode 100644 result/dtd9 create mode 100644 result/dtd9.rde create mode 100644 result/dtd9.rdr create mode 100644 result/dtd9.sax create mode 100644 result/dtd9.sax2 create mode 100644 result/ebcdic_566012.xml create mode 100644 result/ebcdic_566012.xml.rde create mode 100644 result/ebcdic_566012.xml.rdr create mode 100644 result/ebcdic_566012.xml.sax create mode 100644 result/ebcdic_566012.xml.sax2 create mode 100644 result/emptycdata.xml create mode 100644 result/emptycdata.xml.rde create mode 100644 result/emptycdata.xml.rdr create mode 100644 result/emptycdata.xml.sax create mode 100644 result/emptycdata.xml.sax2 create mode 100644 result/ent1 create mode 100644 result/ent1.rde create mode 100644 result/ent1.rdr create mode 100644 result/ent1.sax create mode 100644 result/ent1.sax2 create mode 100644 result/ent10 create mode 100644 result/ent10.rde create mode 100644 result/ent10.rdr create mode 100644 result/ent10.sax create mode 100644 result/ent10.sax2 create mode 100644 result/ent11 create mode 100644 result/ent11.rde create mode 100644 result/ent11.rdr create mode 100644 result/ent11.sax create mode 100644 result/ent11.sax2 create mode 100644 result/ent12 create mode 100644 result/ent12.rde create mode 100644 result/ent12.rdr create mode 100644 result/ent12.sax create mode 100644 result/ent12.sax2 create mode 100644 result/ent13 create mode 100644 result/ent13.rde create mode 100644 result/ent13.rdr create mode 100644 result/ent13.sax create mode 100644 result/ent13.sax2 create mode 100644 result/ent2 create mode 100644 result/ent2.rde create mode 100644 result/ent2.rdr create mode 100644 result/ent2.sax create mode 100644 result/ent2.sax2 create mode 100644 result/ent3 create mode 100644 result/ent3.rde create mode 100644 result/ent3.rdr create mode 100644 result/ent3.sax create mode 100644 result/ent3.sax2 create mode 100644 result/ent4 create mode 100644 result/ent4.rde create mode 100644 result/ent4.rdr create mode 100644 result/ent4.sax create mode 100644 result/ent4.sax2 create mode 100644 result/ent5 create mode 100644 result/ent5.rde create mode 100644 result/ent5.rdr create mode 100644 result/ent5.sax create mode 100644 result/ent5.sax2 create mode 100644 result/ent6 create mode 100644 result/ent6.rde create mode 100644 result/ent6.rdr create mode 100644 result/ent6.sax create mode 100644 result/ent6.sax2 create mode 100644 result/ent7 create mode 100644 result/ent7.rde create mode 100644 result/ent7.rdr create mode 100644 result/ent7.sax create mode 100644 result/ent7.sax2 create mode 100644 result/ent8 create mode 100644 result/ent8.rde create mode 100644 result/ent8.rdr create mode 100644 result/ent8.sax create mode 100644 result/ent8.sax2 create mode 100644 result/ent9 create mode 100644 result/ent9.rde create mode 100644 result/ent9.rdr create mode 100644 result/ent9.sax create mode 100644 result/ent9.sax2 create mode 100644 result/errors/attr1.xml create mode 100644 result/errors/attr1.xml.err create mode 100644 result/errors/attr1.xml.str create mode 100644 result/errors/attr2.xml create mode 100644 result/errors/attr2.xml.err create mode 100644 result/errors/attr2.xml.str create mode 100644 result/errors/attr3.xml create mode 100644 result/errors/attr3.xml.err create mode 100644 result/errors/attr3.xml.str create mode 100644 result/errors/attr4.xml create mode 100644 result/errors/attr4.xml.err create mode 100644 result/errors/attr4.xml.str create mode 100644 result/errors/cdata.xml create mode 100644 result/errors/cdata.xml.err create mode 100644 result/errors/cdata.xml.str create mode 100644 result/errors/charref1.xml create mode 100644 result/errors/charref1.xml.err create mode 100644 result/errors/charref1.xml.str create mode 100644 result/errors/comment1.xml create mode 100644 result/errors/comment1.xml.err create mode 100644 result/errors/comment1.xml.str create mode 100644 result/errors/content1.xml create mode 100644 result/errors/content1.xml.err create mode 100644 result/errors/content1.xml.str create mode 100644 result/errors/extparsedent.xml create mode 100644 result/errors/extparsedent.xml.err create mode 100644 result/errors/extparsedent.xml.str create mode 100644 result/errors/name.xml create mode 100644 result/errors/name.xml.err create mode 100644 result/errors/name.xml.str create mode 100644 result/errors/name2.xml create mode 100644 result/errors/name2.xml.err create mode 100644 result/errors/name2.xml.str create mode 100644 result/eve.xml create mode 100644 result/eve.xml.rde create mode 100644 result/eve.xml.rdr create mode 100644 result/eve.xml.sax create mode 100644 result/eve.xml.sax2 create mode 100644 result/example.dtd create mode 100644 result/expr/base create mode 100644 result/intsubset.xml create mode 100644 result/intsubset.xml.rde create mode 100644 result/intsubset.xml.rdr create mode 100644 result/intsubset.xml.sax create mode 100644 result/intsubset.xml.sax2 create mode 100644 result/intsubset2.xml create mode 100644 result/intsubset2.xml.rde create mode 100644 result/intsubset2.xml.rdr create mode 100644 result/intsubset2.xml.sax create mode 100644 result/intsubset2.xml.sax2 create mode 100644 result/isolat1 create mode 100644 result/isolat1.rde create mode 100644 result/isolat1.rdr create mode 100644 result/isolat1.sax create mode 100644 result/isolat1.sax2 create mode 100644 result/isolat2 create mode 100644 result/isolat2.rde create mode 100644 result/isolat2.rdr create mode 100644 result/isolat2.sax create mode 100644 result/isolat2.sax2 create mode 100644 result/isolat3 create mode 100644 result/isolat3.rde create mode 100644 result/isolat3.rdr create mode 100644 result/isolat3.sax create mode 100644 result/isolat3.sax2 create mode 100644 result/namespaces/err_0.xml create mode 100644 result/namespaces/err_0.xml.err create mode 100644 result/namespaces/err_1.xml create mode 100644 result/namespaces/err_1.xml.err create mode 100644 result/namespaces/err_10.xml create mode 100644 result/namespaces/err_10.xml.err create mode 100644 result/namespaces/err_11.xml create mode 100644 result/namespaces/err_11.xml.err create mode 100644 result/namespaces/err_2.xml create mode 100644 result/namespaces/err_2.xml.err create mode 100644 result/namespaces/err_3.xml create mode 100644 result/namespaces/err_3.xml.err create mode 100644 result/namespaces/err_4.xml create mode 100644 result/namespaces/err_4.xml.err create mode 100644 result/namespaces/err_5.xml create mode 100644 result/namespaces/err_5.xml.err create mode 100644 result/namespaces/err_6.xml create mode 100644 result/namespaces/err_6.xml.err create mode 100644 result/namespaces/err_7.xml create mode 100644 result/namespaces/err_7.xml.err create mode 100644 result/namespaces/err_8.xml create mode 100644 result/namespaces/err_8.xml.err create mode 100644 result/namespaces/err_9.xml create mode 100644 result/namespaces/err_9.xml.err create mode 100644 result/noent/att1 create mode 100644 result/noent/att10 create mode 100644 result/noent/att11 create mode 100644 result/noent/att2 create mode 100644 result/noent/att3 create mode 100644 result/noent/att4 create mode 100644 result/noent/att5 create mode 100644 result/noent/att6 create mode 100644 result/noent/att7 create mode 100644 result/noent/att8 create mode 100644 result/noent/att9 create mode 100644 result/noent/attrib.xml create mode 100644 result/noent/badcomment.xml create mode 100644 result/noent/bigentname.xml create mode 100644 result/noent/bigname.xml create mode 100644 result/noent/bigname2.xml create mode 100644 result/noent/cdata create mode 100644 result/noent/cdata2 create mode 100644 result/noent/comment.xml create mode 100644 result/noent/comment2.xml create mode 100644 result/noent/comment3.xml create mode 100644 result/noent/comment4.xml create mode 100644 result/noent/comment5.xml create mode 100644 result/noent/comment6.xml create mode 100644 result/noent/dav1 create mode 100644 result/noent/dav10 create mode 100644 result/noent/dav11 create mode 100644 result/noent/dav12 create mode 100644 result/noent/dav13 create mode 100644 result/noent/dav15 create mode 100644 result/noent/dav16 create mode 100644 result/noent/dav17 create mode 100644 result/noent/dav18 create mode 100644 result/noent/dav19 create mode 100644 result/noent/dav2 create mode 100644 result/noent/dav3 create mode 100644 result/noent/dav4 create mode 100644 result/noent/dav5 create mode 100644 result/noent/dav6 create mode 100644 result/noent/dav7 create mode 100644 result/noent/dav8 create mode 100644 result/noent/dav9 create mode 100644 result/noent/defattr.xml create mode 100644 result/noent/defattr2.xml create mode 100644 result/noent/dia1 create mode 100644 result/noent/dia2 create mode 100644 result/noent/dtd1 create mode 100644 result/noent/dtd10 create mode 100644 result/noent/dtd11 create mode 100644 result/noent/dtd12 create mode 100644 result/noent/dtd13 create mode 100644 result/noent/dtd2 create mode 100644 result/noent/dtd3 create mode 100644 result/noent/dtd4 create mode 100644 result/noent/dtd5 create mode 100644 result/noent/dtd6 create mode 100644 result/noent/dtd7 create mode 100644 result/noent/dtd8 create mode 100644 result/noent/dtd9 create mode 100644 result/noent/ebcdic_566012.xml create mode 100644 result/noent/emptycdata.xml create mode 100644 result/noent/ent1 create mode 100644 result/noent/ent10 create mode 100644 result/noent/ent11 create mode 100644 result/noent/ent12 create mode 100644 result/noent/ent13 create mode 100644 result/noent/ent2 create mode 100644 result/noent/ent3 create mode 100644 result/noent/ent4 create mode 100644 result/noent/ent5 create mode 100644 result/noent/ent6 create mode 100644 result/noent/ent7 create mode 100644 result/noent/ent8 create mode 100644 result/noent/ent9 create mode 100644 result/noent/eve.xml create mode 100644 result/noent/intsubset.xml create mode 100644 result/noent/intsubset2.xml create mode 100644 result/noent/isolat1 create mode 100644 result/noent/isolat2 create mode 100644 result/noent/isolat3 create mode 100644 result/noent/ns create mode 100644 result/noent/ns2 create mode 100644 result/noent/ns3 create mode 100644 result/noent/ns4 create mode 100644 result/noent/ns5 create mode 100644 result/noent/ns6 create mode 100644 result/noent/ns7 create mode 100644 result/noent/nsclean.xml create mode 100644 result/noent/p3p create mode 100644 result/noent/pi.xml create mode 100644 result/noent/pi2.xml create mode 100644 result/noent/rdf1 create mode 100644 result/noent/rdf2 create mode 100644 result/noent/slashdot.rdf create mode 100644 result/noent/slashdot.xml create mode 100644 result/noent/slashdot16.xml create mode 100644 result/noent/svg1 create mode 100644 result/noent/svg2 create mode 100644 result/noent/svg3 create mode 100644 result/noent/title.xml create mode 100644 result/noent/tstblanks.xml create mode 100644 result/noent/utf16bebom.xml create mode 100644 result/noent/utf16bom.xml create mode 100644 result/noent/utf16lebom.xml create mode 100644 result/noent/utf8bom.xml create mode 100644 result/noent/wap.xml create mode 100644 result/noent/winblanks.xml create mode 100644 result/noent/wml.xml create mode 100644 result/noent/xhtml1 create mode 100644 result/noent/xhtmlcomp create mode 100644 result/noent/xml1 create mode 100644 result/noent/xml2 create mode 100644 result/ns create mode 100644 result/ns.rde create mode 100644 result/ns.rdr create mode 100644 result/ns.sax create mode 100644 result/ns.sax2 create mode 100644 result/ns2 create mode 100644 result/ns2.rde create mode 100644 result/ns2.rdr create mode 100644 result/ns2.sax create mode 100644 result/ns2.sax2 create mode 100644 result/ns3 create mode 100644 result/ns3.rde create mode 100644 result/ns3.rdr create mode 100644 result/ns3.sax create mode 100644 result/ns3.sax2 create mode 100644 result/ns4 create mode 100644 result/ns4.rde create mode 100644 result/ns4.rdr create mode 100644 result/ns4.sax create mode 100644 result/ns4.sax2 create mode 100644 result/ns5 create mode 100644 result/ns5.rde create mode 100644 result/ns5.rdr create mode 100644 result/ns5.sax create mode 100644 result/ns5.sax2 create mode 100644 result/ns6 create mode 100644 result/ns6.rde create mode 100644 result/ns6.rdr create mode 100644 result/ns6.sax create mode 100644 result/ns6.sax2 create mode 100644 result/ns7 create mode 100644 result/ns7.rde create mode 100644 result/ns7.rdr create mode 100644 result/ns7.sax create mode 100644 result/ns7.sax2 create mode 100644 result/nsclean.xml create mode 100644 result/nsclean.xml.rde create mode 100644 result/nsclean.xml.rdr create mode 100644 result/nsclean.xml.sax create mode 100644 result/nsclean.xml.sax2 create mode 100644 result/p3p create mode 100644 result/p3p.rde create mode 100644 result/p3p.rdr create mode 100644 result/p3p.sax create mode 100644 result/p3p.sax2 create mode 100644 result/pattern/conj create mode 100644 result/pattern/multiple create mode 100644 result/pattern/namespaces create mode 100644 result/pattern/simple create mode 100644 result/pi.xml create mode 100644 result/pi.xml.rde create mode 100644 result/pi.xml.rdr create mode 100644 result/pi.xml.sax create mode 100644 result/pi.xml.sax2 create mode 100644 result/pi2.xml create mode 100644 result/pi2.xml.rde create mode 100644 result/pi2.xml.rdr create mode 100644 result/pi2.xml.sax create mode 100644 result/pi2.xml.sax2 create mode 100644 result/rdf1 create mode 100644 result/rdf1.rde create mode 100644 result/rdf1.rdr create mode 100644 result/rdf1.sax create mode 100644 result/rdf1.sax2 create mode 100644 result/rdf2 create mode 100644 result/rdf2.rde create mode 100644 result/rdf2.rdr create mode 100644 result/rdf2.sax create mode 100644 result/rdf2.sax2 create mode 100644 result/regexp/branch create mode 100644 result/regexp/bug316338 create mode 100644 result/regexp/bug420596 create mode 100644 result/regexp/content create mode 100644 result/regexp/hard create mode 100644 result/regexp/ncname create mode 100644 result/regexp/ranges create mode 100644 result/regexp/ranges2 create mode 100644 result/regexp/xpath create mode 100644 result/relaxng/302836_0 create mode 100644 result/relaxng/302836_0.err create mode 100644 result/relaxng/302836_err create mode 100644 result/relaxng/302836_valid create mode 100644 result/relaxng/307377_0 create mode 100644 result/relaxng/307377_0.err create mode 100644 result/relaxng/307377_1 create mode 100644 result/relaxng/307377_1.err create mode 100644 result/relaxng/307377_2 create mode 100644 result/relaxng/307377_2.err create mode 100644 result/relaxng/307377_err create mode 100644 result/relaxng/307377_valid create mode 100644 result/relaxng/492317_0 create mode 100644 result/relaxng/492317_0.err create mode 100644 result/relaxng/492317_1 create mode 100644 result/relaxng/492317_1.err create mode 100644 result/relaxng/492317_2 create mode 100644 result/relaxng/492317_2.err create mode 100644 result/relaxng/492317_err create mode 100644 result/relaxng/492317_valid create mode 100644 result/relaxng/558452_0 create mode 100644 result/relaxng/558452_0.err create mode 100644 result/relaxng/558452_1 create mode 100644 result/relaxng/558452_1.err create mode 100644 result/relaxng/558452_2 create mode 100644 result/relaxng/558452_2.err create mode 100644 result/relaxng/558452_3 create mode 100644 result/relaxng/558452_3.err create mode 100644 result/relaxng/558452_4 create mode 100644 result/relaxng/558452_4.err create mode 100644 result/relaxng/558452_err create mode 100644 result/relaxng/558452_valid create mode 100644 result/relaxng/595792-ext_err create mode 100644 result/relaxng/595792-ext_valid create mode 100644 result/relaxng/595792_0 create mode 100644 result/relaxng/595792_0.err create mode 100644 result/relaxng/595792_err create mode 100644 result/relaxng/595792_valid create mode 100644 result/relaxng/OpenDocumentSub_0 create mode 100644 result/relaxng/OpenDocumentSub_0.err create mode 100644 result/relaxng/OpenDocumentSub_err create mode 100644 result/relaxng/OpenDocumentSub_valid create mode 100644 result/relaxng/addressBook_err create mode 100644 result/relaxng/addressBook_valid create mode 100644 result/relaxng/choice0_0 create mode 100644 result/relaxng/choice0_0.err create mode 100644 result/relaxng/choice0_1 create mode 100644 result/relaxng/choice0_1.err create mode 100644 result/relaxng/choice0_2 create mode 100644 result/relaxng/choice0_2.err create mode 100644 result/relaxng/choice0_3 create mode 100644 result/relaxng/choice0_3.err create mode 100644 result/relaxng/choice0_4 create mode 100644 result/relaxng/choice0_4.err create mode 100644 result/relaxng/choice0_5 create mode 100644 result/relaxng/choice0_5.err create mode 100644 result/relaxng/choice0_6 create mode 100644 result/relaxng/choice0_6.err create mode 100644 result/relaxng/choice0_7 create mode 100644 result/relaxng/choice0_7.err create mode 100644 result/relaxng/choice0_8 create mode 100644 result/relaxng/choice0_8.err create mode 100644 result/relaxng/choice0_err create mode 100644 result/relaxng/choice0_valid create mode 100644 result/relaxng/compare0_0 create mode 100644 result/relaxng/compare0_0.err create mode 100644 result/relaxng/compare0_err create mode 100644 result/relaxng/compare0_valid create mode 100644 result/relaxng/comps_0 create mode 100644 result/relaxng/comps_0.err create mode 100644 result/relaxng/comps_err create mode 100644 result/relaxng/comps_valid create mode 100644 result/relaxng/demo2_err create mode 100644 result/relaxng/demo2_valid create mode 100644 result/relaxng/demo3_err create mode 100644 result/relaxng/demo3_valid create mode 100644 result/relaxng/demo_err create mode 100644 result/relaxng/demo_valid create mode 100644 result/relaxng/docbook_0 create mode 100644 result/relaxng/docbook_0.err create mode 100644 result/relaxng/docbook_err create mode 100644 result/relaxng/docbook_valid create mode 100644 result/relaxng/empty0_0 create mode 100644 result/relaxng/empty0_0.err create mode 100644 result/relaxng/empty0_err create mode 100644 result/relaxng/empty0_valid create mode 100644 result/relaxng/empty1_0 create mode 100644 result/relaxng/empty1_0.err create mode 100644 result/relaxng/empty1_1 create mode 100644 result/relaxng/empty1_1.err create mode 100644 result/relaxng/empty1_err create mode 100644 result/relaxng/empty1_valid create mode 100644 result/relaxng/inline2_err create mode 100644 result/relaxng/inline2_valid create mode 100644 result/relaxng/inline3_err create mode 100644 result/relaxng/inline3_valid create mode 100644 result/relaxng/inline_err create mode 100644 result/relaxng/inline_valid create mode 100644 result/relaxng/interleave0_0_err create mode 100644 result/relaxng/interleave0_0_valid create mode 100644 result/relaxng/interleave1_0_err create mode 100644 result/relaxng/interleave1_0_valid create mode 100644 result/relaxng/libvirt_0 create mode 100644 result/relaxng/libvirt_0.err create mode 100644 result/relaxng/libvirt_err create mode 100644 result/relaxng/libvirt_valid create mode 100644 result/relaxng/list_0 create mode 100644 result/relaxng/list_0.err create mode 100644 result/relaxng/list_1 create mode 100644 result/relaxng/list_1.err create mode 100644 result/relaxng/list_err create mode 100644 result/relaxng/list_valid create mode 100644 result/relaxng/pattern1_err create mode 100644 result/relaxng/pattern1_valid create mode 100644 result/relaxng/pattern2_err create mode 100644 result/relaxng/pattern2_valid create mode 100644 result/relaxng/proofsystem_err create mode 100644 result/relaxng/proofsystem_valid create mode 100644 result/relaxng/rngbug-001_err create mode 100644 result/relaxng/rngbug-001_valid create mode 100644 result/relaxng/spec1_1 create mode 100644 result/relaxng/spec1_1.err create mode 100644 result/relaxng/spec1_err create mode 100644 result/relaxng/spec1_valid create mode 100644 result/relaxng/spec_0 create mode 100644 result/relaxng/spec_0.err create mode 100644 result/relaxng/spec_err create mode 100644 result/relaxng/spec_valid create mode 100644 result/relaxng/table_err create mode 100644 result/relaxng/table_valid create mode 100644 result/relaxng/tutor10_10_1 create mode 100644 result/relaxng/tutor10_10_1.err create mode 100644 result/relaxng/tutor10_10_err create mode 100644 result/relaxng/tutor10_10_valid create mode 100644 result/relaxng/tutor10_1_1 create mode 100644 result/relaxng/tutor10_1_1.err create mode 100644 result/relaxng/tutor10_1_2 create mode 100644 result/relaxng/tutor10_1_2.err create mode 100644 result/relaxng/tutor10_1_3 create mode 100644 result/relaxng/tutor10_1_3.err create mode 100644 result/relaxng/tutor10_1_4 create mode 100644 result/relaxng/tutor10_1_4.err create mode 100644 result/relaxng/tutor10_1_5 create mode 100644 result/relaxng/tutor10_1_5.err create mode 100644 result/relaxng/tutor10_1_6 create mode 100644 result/relaxng/tutor10_1_6.err create mode 100644 result/relaxng/tutor10_1_err create mode 100644 result/relaxng/tutor10_1_valid create mode 100644 result/relaxng/tutor10_2_1 create mode 100644 result/relaxng/tutor10_2_1.err create mode 100644 result/relaxng/tutor10_2_2 create mode 100644 result/relaxng/tutor10_2_2.err create mode 100644 result/relaxng/tutor10_2_3 create mode 100644 result/relaxng/tutor10_2_3.err create mode 100644 result/relaxng/tutor10_2_4 create mode 100644 result/relaxng/tutor10_2_4.err create mode 100644 result/relaxng/tutor10_2_err create mode 100644 result/relaxng/tutor10_2_valid create mode 100644 result/relaxng/tutor10_3_1 create mode 100644 result/relaxng/tutor10_3_1.err create mode 100644 result/relaxng/tutor10_3_err create mode 100644 result/relaxng/tutor10_3_valid create mode 100644 result/relaxng/tutor10_4_1 create mode 100644 result/relaxng/tutor10_4_1.err create mode 100644 result/relaxng/tutor10_4_err create mode 100644 result/relaxng/tutor10_4_valid create mode 100644 result/relaxng/tutor10_5_1 create mode 100644 result/relaxng/tutor10_5_1.err create mode 100644 result/relaxng/tutor10_5_err create mode 100644 result/relaxng/tutor10_5_valid create mode 100644 result/relaxng/tutor10_6_1 create mode 100644 result/relaxng/tutor10_6_1.err create mode 100644 result/relaxng/tutor10_6_err create mode 100644 result/relaxng/tutor10_6_valid create mode 100644 result/relaxng/tutor10_7_1 create mode 100644 result/relaxng/tutor10_7_1.err create mode 100644 result/relaxng/tutor10_7_2 create mode 100644 result/relaxng/tutor10_7_2.err create mode 100644 result/relaxng/tutor10_7_3 create mode 100644 result/relaxng/tutor10_7_3.err create mode 100644 result/relaxng/tutor10_7_err create mode 100644 result/relaxng/tutor10_7_valid create mode 100644 result/relaxng/tutor10_8_1 create mode 100644 result/relaxng/tutor10_8_1.err create mode 100644 result/relaxng/tutor10_8_2 create mode 100644 result/relaxng/tutor10_8_2.err create mode 100644 result/relaxng/tutor10_8_3 create mode 100644 result/relaxng/tutor10_8_3.err create mode 100644 result/relaxng/tutor10_8_err create mode 100644 result/relaxng/tutor10_8_valid create mode 100644 result/relaxng/tutor10_9_1 create mode 100644 result/relaxng/tutor10_9_1.err create mode 100644 result/relaxng/tutor10_9_err create mode 100644 result/relaxng/tutor10_9_valid create mode 100644 result/relaxng/tutor11_1_1 create mode 100644 result/relaxng/tutor11_1_1.err create mode 100644 result/relaxng/tutor11_1_2 create mode 100644 result/relaxng/tutor11_1_2.err create mode 100644 result/relaxng/tutor11_1_3 create mode 100644 result/relaxng/tutor11_1_3.err create mode 100644 result/relaxng/tutor11_1_err create mode 100644 result/relaxng/tutor11_1_valid create mode 100644 result/relaxng/tutor11_2_1 create mode 100644 result/relaxng/tutor11_2_1.err create mode 100644 result/relaxng/tutor11_2_2 create mode 100644 result/relaxng/tutor11_2_2.err create mode 100644 result/relaxng/tutor11_2_3 create mode 100644 result/relaxng/tutor11_2_3.err create mode 100644 result/relaxng/tutor11_2_err create mode 100644 result/relaxng/tutor11_2_valid create mode 100644 result/relaxng/tutor11_3_1 create mode 100644 result/relaxng/tutor11_3_1.err create mode 100644 result/relaxng/tutor11_3_err create mode 100644 result/relaxng/tutor11_3_valid create mode 100644 result/relaxng/tutor11_4_1 create mode 100644 result/relaxng/tutor11_4_1.err create mode 100644 result/relaxng/tutor11_4_err create mode 100644 result/relaxng/tutor11_4_valid create mode 100644 result/relaxng/tutor12_1_1 create mode 100644 result/relaxng/tutor12_1_1.err create mode 100644 result/relaxng/tutor12_1_err create mode 100644 result/relaxng/tutor12_1_valid create mode 100644 result/relaxng/tutor13_1_1 create mode 100644 result/relaxng/tutor13_1_1.err create mode 100644 result/relaxng/tutor13_1_err create mode 100644 result/relaxng/tutor13_1_valid create mode 100644 result/relaxng/tutor14_1_err create mode 100644 result/relaxng/tutor14_1_valid create mode 100644 result/relaxng/tutor1_1_1 create mode 100644 result/relaxng/tutor1_1_1.err create mode 100644 result/relaxng/tutor1_1_err create mode 100644 result/relaxng/tutor1_1_valid create mode 100644 result/relaxng/tutor1_2_1 create mode 100644 result/relaxng/tutor1_2_1.err create mode 100644 result/relaxng/tutor1_2_err create mode 100644 result/relaxng/tutor1_2_valid create mode 100644 result/relaxng/tutor1_3_1 create mode 100644 result/relaxng/tutor1_3_1.err create mode 100644 result/relaxng/tutor1_3_err create mode 100644 result/relaxng/tutor1_3_valid create mode 100644 result/relaxng/tutor1_4_1 create mode 100644 result/relaxng/tutor1_4_1.err create mode 100644 result/relaxng/tutor1_4_err create mode 100644 result/relaxng/tutor1_4_valid create mode 100644 result/relaxng/tutor2_1_1 create mode 100644 result/relaxng/tutor2_1_1.err create mode 100644 result/relaxng/tutor2_1_err create mode 100644 result/relaxng/tutor2_1_valid create mode 100644 result/relaxng/tutor3_1_1 create mode 100644 result/relaxng/tutor3_1_1.err create mode 100644 result/relaxng/tutor3_1_2 create mode 100644 result/relaxng/tutor3_1_2.err create mode 100644 result/relaxng/tutor3_1_err create mode 100644 result/relaxng/tutor3_1_valid create mode 100644 result/relaxng/tutor3_2_1 create mode 100644 result/relaxng/tutor3_2_1.err create mode 100644 result/relaxng/tutor3_2_err create mode 100644 result/relaxng/tutor3_2_valid create mode 100644 result/relaxng/tutor3_3_1 create mode 100644 result/relaxng/tutor3_3_1.err create mode 100644 result/relaxng/tutor3_3_err create mode 100644 result/relaxng/tutor3_3_valid create mode 100644 result/relaxng/tutor3_4_1 create mode 100644 result/relaxng/tutor3_4_1.err create mode 100644 result/relaxng/tutor3_4_err create mode 100644 result/relaxng/tutor3_4_valid create mode 100644 result/relaxng/tutor3_5_1 create mode 100644 result/relaxng/tutor3_5_1.err create mode 100644 result/relaxng/tutor3_5_2 create mode 100644 result/relaxng/tutor3_5_2.err create mode 100644 result/relaxng/tutor3_5_err create mode 100644 result/relaxng/tutor3_5_valid create mode 100644 result/relaxng/tutor3_6_1 create mode 100644 result/relaxng/tutor3_6_1.err create mode 100644 result/relaxng/tutor3_6_err create mode 100644 result/relaxng/tutor3_6_valid create mode 100644 result/relaxng/tutor3_7_1 create mode 100644 result/relaxng/tutor3_7_1.err create mode 100644 result/relaxng/tutor3_7_err create mode 100644 result/relaxng/tutor3_7_valid create mode 100644 result/relaxng/tutor3_8_1 create mode 100644 result/relaxng/tutor3_8_1.err create mode 100644 result/relaxng/tutor3_8_err create mode 100644 result/relaxng/tutor3_8_valid create mode 100644 result/relaxng/tutor3_9_1 create mode 100644 result/relaxng/tutor3_9_1.err create mode 100644 result/relaxng/tutor3_9_err create mode 100644 result/relaxng/tutor3_9_valid create mode 100644 result/relaxng/tutor4_1_1 create mode 100644 result/relaxng/tutor4_1_1.err create mode 100644 result/relaxng/tutor4_1_err create mode 100644 result/relaxng/tutor4_1_valid create mode 100644 result/relaxng/tutor4_2_1 create mode 100644 result/relaxng/tutor4_2_1.err create mode 100644 result/relaxng/tutor4_2_err create mode 100644 result/relaxng/tutor4_2_valid create mode 100644 result/relaxng/tutor4_3_1 create mode 100644 result/relaxng/tutor4_3_1.err create mode 100644 result/relaxng/tutor4_3_2 create mode 100644 result/relaxng/tutor4_3_2.err create mode 100644 result/relaxng/tutor4_3_3 create mode 100644 result/relaxng/tutor4_3_3.err create mode 100644 result/relaxng/tutor4_3_4 create mode 100644 result/relaxng/tutor4_3_4.err create mode 100644 result/relaxng/tutor4_3_5 create mode 100644 result/relaxng/tutor4_3_5.err create mode 100644 result/relaxng/tutor4_3_6 create mode 100644 result/relaxng/tutor4_3_6.err create mode 100644 result/relaxng/tutor4_3_err create mode 100644 result/relaxng/tutor4_3_valid create mode 100644 result/relaxng/tutor4_4_1 create mode 100644 result/relaxng/tutor4_4_1.err create mode 100644 result/relaxng/tutor4_4_err create mode 100644 result/relaxng/tutor4_4_valid create mode 100644 result/relaxng/tutor5_1_1 create mode 100644 result/relaxng/tutor5_1_1.err create mode 100644 result/relaxng/tutor5_1_err create mode 100644 result/relaxng/tutor5_1_valid create mode 100644 result/relaxng/tutor5_2_1 create mode 100644 result/relaxng/tutor5_2_1.err create mode 100644 result/relaxng/tutor5_2_err create mode 100644 result/relaxng/tutor5_2_valid create mode 100644 result/relaxng/tutor5_3_1 create mode 100644 result/relaxng/tutor5_3_1.err create mode 100644 result/relaxng/tutor5_3_err create mode 100644 result/relaxng/tutor5_3_valid create mode 100644 result/relaxng/tutor5_4_1 create mode 100644 result/relaxng/tutor5_4_1.err create mode 100644 result/relaxng/tutor5_4_err create mode 100644 result/relaxng/tutor5_4_valid create mode 100644 result/relaxng/tutor5_5_err create mode 100644 result/relaxng/tutor5_5_valid create mode 100644 result/relaxng/tutor6_1_1 create mode 100644 result/relaxng/tutor6_1_1.err create mode 100644 result/relaxng/tutor6_1_2 create mode 100644 result/relaxng/tutor6_1_2.err create mode 100644 result/relaxng/tutor6_1_3 create mode 100644 result/relaxng/tutor6_1_3.err create mode 100644 result/relaxng/tutor6_1_4 create mode 100644 result/relaxng/tutor6_1_4.err create mode 100644 result/relaxng/tutor6_1_5 create mode 100644 result/relaxng/tutor6_1_5.err create mode 100644 result/relaxng/tutor6_1_err create mode 100644 result/relaxng/tutor6_1_valid create mode 100644 result/relaxng/tutor6_2_1 create mode 100644 result/relaxng/tutor6_2_1.err create mode 100644 result/relaxng/tutor6_2_2 create mode 100644 result/relaxng/tutor6_2_2.err create mode 100644 result/relaxng/tutor6_2_3 create mode 100644 result/relaxng/tutor6_2_3.err create mode 100644 result/relaxng/tutor6_2_4 create mode 100644 result/relaxng/tutor6_2_4.err create mode 100644 result/relaxng/tutor6_2_err create mode 100644 result/relaxng/tutor6_2_valid create mode 100644 result/relaxng/tutor6_3_1 create mode 100644 result/relaxng/tutor6_3_1.err create mode 100644 result/relaxng/tutor6_3_err create mode 100644 result/relaxng/tutor6_3_valid create mode 100644 result/relaxng/tutor7_1_1 create mode 100644 result/relaxng/tutor7_1_1.err create mode 100644 result/relaxng/tutor7_1_2 create mode 100644 result/relaxng/tutor7_1_2.err create mode 100644 result/relaxng/tutor7_1_3 create mode 100644 result/relaxng/tutor7_1_3.err create mode 100644 result/relaxng/tutor7_1_4 create mode 100644 result/relaxng/tutor7_1_4.err create mode 100644 result/relaxng/tutor7_1_err create mode 100644 result/relaxng/tutor7_1_valid create mode 100644 result/relaxng/tutor7_2_1 create mode 100644 result/relaxng/tutor7_2_1.err create mode 100644 result/relaxng/tutor7_2_2 create mode 100644 result/relaxng/tutor7_2_2.err create mode 100644 result/relaxng/tutor7_2_3 create mode 100644 result/relaxng/tutor7_2_3.err create mode 100644 result/relaxng/tutor7_2_4 create mode 100644 result/relaxng/tutor7_2_4.err create mode 100644 result/relaxng/tutor7_2_err create mode 100644 result/relaxng/tutor7_2_valid create mode 100644 result/relaxng/tutor7_3_1 create mode 100644 result/relaxng/tutor7_3_1.err create mode 100644 result/relaxng/tutor7_3_2 create mode 100644 result/relaxng/tutor7_3_2.err create mode 100644 result/relaxng/tutor7_3_3 create mode 100644 result/relaxng/tutor7_3_3.err create mode 100644 result/relaxng/tutor7_3_4 create mode 100644 result/relaxng/tutor7_3_4.err create mode 100644 result/relaxng/tutor7_3_5 create mode 100644 result/relaxng/tutor7_3_5.err create mode 100644 result/relaxng/tutor7_3_err create mode 100644 result/relaxng/tutor7_3_valid create mode 100644 result/relaxng/tutor8_1_1 create mode 100644 result/relaxng/tutor8_1_1.err create mode 100644 result/relaxng/tutor8_1_2 create mode 100644 result/relaxng/tutor8_1_2.err create mode 100644 result/relaxng/tutor8_1_err create mode 100644 result/relaxng/tutor8_1_valid create mode 100644 result/relaxng/tutor8_2_1 create mode 100644 result/relaxng/tutor8_2_1.err create mode 100644 result/relaxng/tutor8_2_2 create mode 100644 result/relaxng/tutor8_2_2.err create mode 100644 result/relaxng/tutor8_2_3 create mode 100644 result/relaxng/tutor8_2_3.err create mode 100644 result/relaxng/tutor8_2_4 create mode 100644 result/relaxng/tutor8_2_4.err create mode 100644 result/relaxng/tutor8_2_5 create mode 100644 result/relaxng/tutor8_2_5.err create mode 100644 result/relaxng/tutor8_2_6 create mode 100644 result/relaxng/tutor8_2_6.err create mode 100644 result/relaxng/tutor8_2_err create mode 100644 result/relaxng/tutor8_2_valid create mode 100644 result/relaxng/tutor8_3_1 create mode 100644 result/relaxng/tutor8_3_1.err create mode 100644 result/relaxng/tutor8_3_err create mode 100644 result/relaxng/tutor8_3_valid create mode 100644 result/relaxng/tutor9_10_1 create mode 100644 result/relaxng/tutor9_10_1.err create mode 100644 result/relaxng/tutor9_10_err create mode 100644 result/relaxng/tutor9_10_valid create mode 100644 result/relaxng/tutor9_11_1 create mode 100644 result/relaxng/tutor9_11_1.err create mode 100644 result/relaxng/tutor9_11_err create mode 100644 result/relaxng/tutor9_11_valid create mode 100644 result/relaxng/tutor9_12_1 create mode 100644 result/relaxng/tutor9_12_1.err create mode 100644 result/relaxng/tutor9_12_err create mode 100644 result/relaxng/tutor9_12_valid create mode 100644 result/relaxng/tutor9_1_1 create mode 100644 result/relaxng/tutor9_1_1.err create mode 100644 result/relaxng/tutor9_1_err create mode 100644 result/relaxng/tutor9_1_valid create mode 100644 result/relaxng/tutor9_2_1 create mode 100644 result/relaxng/tutor9_2_1.err create mode 100644 result/relaxng/tutor9_2_2 create mode 100644 result/relaxng/tutor9_2_2.err create mode 100644 result/relaxng/tutor9_2_err create mode 100644 result/relaxng/tutor9_2_valid create mode 100644 result/relaxng/tutor9_3_1 create mode 100644 result/relaxng/tutor9_3_1.err create mode 100644 result/relaxng/tutor9_3_2 create mode 100644 result/relaxng/tutor9_3_2.err create mode 100644 result/relaxng/tutor9_3_err create mode 100644 result/relaxng/tutor9_3_valid create mode 100644 result/relaxng/tutor9_4_1 create mode 100644 result/relaxng/tutor9_4_1.err create mode 100644 result/relaxng/tutor9_4_2 create mode 100644 result/relaxng/tutor9_4_2.err create mode 100644 result/relaxng/tutor9_4_err create mode 100644 result/relaxng/tutor9_4_valid create mode 100644 result/relaxng/tutor9_5_1 create mode 100644 result/relaxng/tutor9_5_1.err create mode 100644 result/relaxng/tutor9_5_2 create mode 100644 result/relaxng/tutor9_5_2.err create mode 100644 result/relaxng/tutor9_5_3 create mode 100644 result/relaxng/tutor9_5_3.err create mode 100644 result/relaxng/tutor9_5_err create mode 100644 result/relaxng/tutor9_5_valid create mode 100644 result/relaxng/tutor9_6.rng create mode 100644 result/relaxng/tutor9_6_1 create mode 100644 result/relaxng/tutor9_6_1.err create mode 100644 result/relaxng/tutor9_6_2 create mode 100644 result/relaxng/tutor9_6_2.err create mode 100644 result/relaxng/tutor9_6_3 create mode 100644 result/relaxng/tutor9_6_3.err create mode 100644 result/relaxng/tutor9_6_err create mode 100644 result/relaxng/tutor9_6_valid create mode 100644 result/relaxng/tutor9_7_1 create mode 100644 result/relaxng/tutor9_7_1.err create mode 100644 result/relaxng/tutor9_7_err create mode 100644 result/relaxng/tutor9_7_valid create mode 100644 result/relaxng/tutor9_8_1 create mode 100644 result/relaxng/tutor9_8_1.err create mode 100644 result/relaxng/tutor9_8_err create mode 100644 result/relaxng/tutor9_8_valid create mode 100644 result/relaxng/tutor9_9_1 create mode 100644 result/relaxng/tutor9_9_1.err create mode 100644 result/relaxng/tutor9_9_err create mode 100644 result/relaxng/tutor9_9_valid create mode 100644 result/relaxng/tutorA_err create mode 100644 result/relaxng/tutorA_valid create mode 100644 result/schemas/570702_0_0 create mode 100644 result/schemas/570702_0_0.err create mode 100644 result/schemas/579746_0_0 create mode 100644 result/schemas/579746_0_0.err create mode 100644 result/schemas/579746_0_1 create mode 100644 result/schemas/579746_0_1.err create mode 100644 result/schemas/579746_0_2 create mode 100644 result/schemas/579746_0_2.err create mode 100644 result/schemas/579746_0_3 create mode 100644 result/schemas/579746_0_3.err create mode 100644 result/schemas/579746_0_4 create mode 100644 result/schemas/579746_0_4.err create mode 100644 result/schemas/579746_0_5 create mode 100644 result/schemas/579746_0_5.err create mode 100644 result/schemas/579746_1_0 create mode 100644 result/schemas/579746_1_0.err create mode 100644 result/schemas/579746_1_1 create mode 100644 result/schemas/579746_1_1.err create mode 100644 result/schemas/579746_1_2 create mode 100644 result/schemas/579746_1_2.err create mode 100644 result/schemas/579746_1_3 create mode 100644 result/schemas/579746_1_3.err create mode 100644 result/schemas/579746_1_4 create mode 100644 result/schemas/579746_1_4.err create mode 100644 result/schemas/579746_1_5 create mode 100644 result/schemas/579746_1_5.err create mode 100644 result/schemas/582887_0_0 create mode 100644 result/schemas/582887_0_0.err create mode 100644 result/schemas/582906-1_0_0 create mode 100644 result/schemas/582906-1_0_0.err create mode 100644 result/schemas/582906-2_0_0 create mode 100644 result/schemas/582906-2_0_0.err create mode 100644 result/schemas/all1_0_0 create mode 100644 result/schemas/all1_0_0.err create mode 100644 result/schemas/all_0_0 create mode 100644 result/schemas/all_0_0.err create mode 100644 result/schemas/all_0_1 create mode 100644 result/schemas/all_0_1.err create mode 100644 result/schemas/all_0_2 create mode 100644 result/schemas/all_0_2.err create mode 100644 result/schemas/all_0_3 create mode 100644 result/schemas/all_0_3.err create mode 100644 result/schemas/all_0_4 create mode 100644 result/schemas/all_0_4.err create mode 100644 result/schemas/all_0_5 create mode 100644 result/schemas/all_0_5.err create mode 100644 result/schemas/all_0_6 create mode 100644 result/schemas/all_0_6.err create mode 100644 result/schemas/all_0_7 create mode 100644 result/schemas/all_0_7.err create mode 100644 result/schemas/all_1_0 create mode 100644 result/schemas/all_1_0.err create mode 100644 result/schemas/all_1_1 create mode 100644 result/schemas/all_1_1.err create mode 100644 result/schemas/all_1_2 create mode 100644 result/schemas/all_1_2.err create mode 100644 result/schemas/all_1_3 create mode 100644 result/schemas/all_1_3.err create mode 100644 result/schemas/all_1_4 create mode 100644 result/schemas/all_1_4.err create mode 100644 result/schemas/all_1_5 create mode 100644 result/schemas/all_1_5.err create mode 100644 result/schemas/all_1_6 create mode 100644 result/schemas/all_1_6.err create mode 100644 result/schemas/all_1_7 create mode 100644 result/schemas/all_1_7.err create mode 100644 result/schemas/all_2_0 create mode 100644 result/schemas/all_2_0.err create mode 100644 result/schemas/all_2_1 create mode 100644 result/schemas/all_2_1.err create mode 100644 result/schemas/all_2_2 create mode 100644 result/schemas/all_2_2.err create mode 100644 result/schemas/all_2_3 create mode 100644 result/schemas/all_2_3.err create mode 100644 result/schemas/all_2_4 create mode 100644 result/schemas/all_2_4.err create mode 100644 result/schemas/all_2_5 create mode 100644 result/schemas/all_2_5.err create mode 100644 result/schemas/all_2_6 create mode 100644 result/schemas/all_2_6.err create mode 100644 result/schemas/all_2_7 create mode 100644 result/schemas/all_2_7.err create mode 100644 result/schemas/allsg_0_0 create mode 100644 result/schemas/allsg_0_0.err create mode 100644 result/schemas/allsg_0_1 create mode 100644 result/schemas/allsg_0_1.err create mode 100644 result/schemas/allsg_0_2 create mode 100644 result/schemas/allsg_0_2.err create mode 100644 result/schemas/allsg_0_3 create mode 100644 result/schemas/allsg_0_3.err create mode 100644 result/schemas/allsg_0_4 create mode 100644 result/schemas/allsg_0_4.err create mode 100644 result/schemas/allsg_0_5 create mode 100644 result/schemas/allsg_0_5.err create mode 100644 result/schemas/annot-err_0_0 create mode 100644 result/schemas/annot-err_0_0.err create mode 100644 result/schemas/any1_0_0 create mode 100644 result/schemas/any1_0_0.err create mode 100644 result/schemas/any2_0_0 create mode 100644 result/schemas/any2_0_0.err create mode 100644 result/schemas/any3_0_0 create mode 100644 result/schemas/any3_0_0.err create mode 100644 result/schemas/any4_0_0 create mode 100644 result/schemas/any4_0_0.err create mode 100644 result/schemas/any5_0_0 create mode 100644 result/schemas/any5_0_0.err create mode 100644 result/schemas/any5_0_1 create mode 100644 result/schemas/any5_0_1.err create mode 100644 result/schemas/any5_0_2 create mode 100644 result/schemas/any5_0_2.err create mode 100644 result/schemas/any5_0_3 create mode 100644 result/schemas/any5_0_3.err create mode 100644 result/schemas/any5_0_4 create mode 100644 result/schemas/any5_0_4.err create mode 100644 result/schemas/any5_0_5 create mode 100644 result/schemas/any5_0_5.err create mode 100644 result/schemas/any5_0_6 create mode 100644 result/schemas/any5_0_6.err create mode 100644 result/schemas/any5_1_0 create mode 100644 result/schemas/any5_1_0.err create mode 100644 result/schemas/any5_1_1 create mode 100644 result/schemas/any5_1_1.err create mode 100644 result/schemas/any5_1_2 create mode 100644 result/schemas/any5_1_2.err create mode 100644 result/schemas/any5_1_3 create mode 100644 result/schemas/any5_1_3.err create mode 100644 result/schemas/any5_1_4 create mode 100644 result/schemas/any5_1_4.err create mode 100644 result/schemas/any5_1_5 create mode 100644 result/schemas/any5_1_5.err create mode 100644 result/schemas/any5_1_6 create mode 100644 result/schemas/any5_1_6.err create mode 100644 result/schemas/any6_1_0 create mode 100644 result/schemas/any6_1_0.err create mode 100644 result/schemas/any6_2_0 create mode 100644 result/schemas/any6_2_0.err create mode 100644 result/schemas/any7_1_0 create mode 100644 result/schemas/any7_1_0.err create mode 100644 result/schemas/any7_1_1 create mode 100644 result/schemas/any7_1_1.err create mode 100644 result/schemas/any7_1_2 create mode 100644 result/schemas/any7_1_2.err create mode 100644 result/schemas/any7_2_0 create mode 100644 result/schemas/any7_2_0.err create mode 100644 result/schemas/any7_2_1 create mode 100644 result/schemas/any7_2_1.err create mode 100644 result/schemas/any7_2_2 create mode 100644 result/schemas/any7_2_2.err create mode 100644 result/schemas/any8_1_0 create mode 100644 result/schemas/any8_1_0.err create mode 100644 result/schemas/anyAttr-derive-errors1_0_0 create mode 100644 result/schemas/anyAttr-derive-errors1_0_0.err create mode 100644 result/schemas/anyAttr-derive1_0_0 create mode 100644 result/schemas/anyAttr-derive1_0_0.err create mode 100644 result/schemas/anyAttr-derive2_0_0 create mode 100644 result/schemas/anyAttr-derive2_0_0.err create mode 100644 result/schemas/anyAttr-processContents-err1_0_0 create mode 100644 result/schemas/anyAttr-processContents-err1_0_0.err create mode 100644 result/schemas/anyAttr-processContents1_0_0 create mode 100644 result/schemas/anyAttr-processContents1_0_0.err create mode 100644 result/schemas/anyAttr1_0_0 create mode 100644 result/schemas/anyAttr1_0_0.err create mode 100644 result/schemas/attr0_0_0 create mode 100644 result/schemas/attr0_0_0.err create mode 100644 result/schemas/attruse_0_0 create mode 100644 result/schemas/attruse_0_0.err create mode 100644 result/schemas/attruse_0_1 create mode 100644 result/schemas/attruse_0_1.err create mode 100644 result/schemas/attruse_0_2 create mode 100644 result/schemas/attruse_0_2.err create mode 100644 result/schemas/bug141312_0_0 create mode 100644 result/schemas/bug141312_0_0.err create mode 100644 result/schemas/bug141333_0_0 create mode 100644 result/schemas/bug141333_0_0.err create mode 100644 result/schemas/bug143951_0_0 create mode 100644 result/schemas/bug143951_0_0.err create mode 100644 result/schemas/bug145246_0_0 create mode 100644 result/schemas/bug145246_0_0.err create mode 100644 result/schemas/bug152470_1_1 create mode 100644 result/schemas/bug152470_1_1.err create mode 100644 result/schemas/bug167754_0_0 create mode 100644 result/schemas/bug167754_0_0.err create mode 100644 result/schemas/bug303566_1_1 create mode 100644 result/schemas/bug303566_1_1.err create mode 100644 result/schemas/bug306806_1_0 create mode 100644 result/schemas/bug306806_1_0.err create mode 100644 result/schemas/bug309338_1_0 create mode 100644 result/schemas/bug309338_1_0.err create mode 100644 result/schemas/bug310264_0_0 create mode 100644 result/schemas/bug310264_0_0.err create mode 100644 result/schemas/bug312957_1_0 create mode 100644 result/schemas/bug312957_1_0.err create mode 100644 result/schemas/bug313982_0_0 create mode 100644 result/schemas/bug313982_0_0.err create mode 100644 result/schemas/bug321475_1_0 create mode 100644 result/schemas/bug321475_1_0.err create mode 100644 result/schemas/bug322411_1_0 create mode 100644 result/schemas/bug322411_1_0.err create mode 100644 result/schemas/bug323510_1_0 create mode 100644 result/schemas/bug323510_1_0.err create mode 100644 result/schemas/bug455953_0_0 create mode 100644 result/schemas/bug455953_0_0.err create mode 100644 result/schemas/changelog093_1_0 create mode 100644 result/schemas/changelog093_1_0.err create mode 100644 result/schemas/choice_0_0 create mode 100644 result/schemas/choice_0_0.err create mode 100644 result/schemas/choice_0_1 create mode 100644 result/schemas/choice_0_1.err create mode 100644 result/schemas/choice_0_2 create mode 100644 result/schemas/choice_0_2.err create mode 100644 result/schemas/choice_0_3 create mode 100644 result/schemas/choice_0_3.err create mode 100644 result/schemas/choice_0_4 create mode 100644 result/schemas/choice_0_4.err create mode 100644 result/schemas/choice_0_5 create mode 100644 result/schemas/choice_0_5.err create mode 100644 result/schemas/choice_0_6 create mode 100644 result/schemas/choice_0_6.err create mode 100644 result/schemas/choice_1_0 create mode 100644 result/schemas/choice_1_0.err create mode 100644 result/schemas/choice_1_1 create mode 100644 result/schemas/choice_1_1.err create mode 100644 result/schemas/choice_1_2 create mode 100644 result/schemas/choice_1_2.err create mode 100644 result/schemas/choice_1_3 create mode 100644 result/schemas/choice_1_3.err create mode 100644 result/schemas/choice_1_4 create mode 100644 result/schemas/choice_1_4.err create mode 100644 result/schemas/choice_1_5 create mode 100644 result/schemas/choice_1_5.err create mode 100644 result/schemas/choice_1_6 create mode 100644 result/schemas/choice_1_6.err create mode 100644 result/schemas/choice_2_0 create mode 100644 result/schemas/choice_2_0.err create mode 100644 result/schemas/choice_2_1 create mode 100644 result/schemas/choice_2_1.err create mode 100644 result/schemas/choice_2_2 create mode 100644 result/schemas/choice_2_2.err create mode 100644 result/schemas/choice_2_3 create mode 100644 result/schemas/choice_2_3.err create mode 100644 result/schemas/choice_2_4 create mode 100644 result/schemas/choice_2_4.err create mode 100644 result/schemas/choice_2_5 create mode 100644 result/schemas/choice_2_5.err create mode 100644 result/schemas/choice_2_6 create mode 100644 result/schemas/choice_2_6.err create mode 100644 result/schemas/complex-type-extension_0_0 create mode 100644 result/schemas/complex-type-extension_0_0.err create mode 100644 result/schemas/cos-ct-extends-1-3_0_0 create mode 100644 result/schemas/cos-ct-extends-1-3_0_0.err create mode 100644 result/schemas/cos-st-restricts-1-2-err_0_0 create mode 100644 result/schemas/cos-st-restricts-1-2-err_0_0.err create mode 100644 result/schemas/ct-sc-nobase_0_0 create mode 100644 result/schemas/ct-sc-nobase_0_0.err create mode 100644 result/schemas/date_0_0 create mode 100644 result/schemas/date_0_0.err create mode 100644 result/schemas/decimal-1_1_0 create mode 100644 result/schemas/decimal-1_1_0.err create mode 100644 result/schemas/decimal-2_1_0 create mode 100644 result/schemas/decimal-2_1_0.err create mode 100644 result/schemas/decimal-3_1_0 create mode 100644 result/schemas/decimal-3_1_0.err create mode 100644 result/schemas/derivation-ok-extension-err_0_0 create mode 100644 result/schemas/derivation-ok-extension-err_0_0.err create mode 100644 result/schemas/derivation-ok-extension_0_0 create mode 100644 result/schemas/derivation-ok-extension_0_0.err create mode 100644 result/schemas/derivation-ok-restriction-2-1-1_0_0 create mode 100644 result/schemas/derivation-ok-restriction-2-1-1_0_0.err create mode 100644 result/schemas/derivation-ok-restriction-4-1-err_0_0 create mode 100644 result/schemas/derivation-ok-restriction-4-1-err_0_0.err create mode 100644 result/schemas/derivation-restriction-anyAttr_0_0 create mode 100644 result/schemas/derivation-restriction-anyAttr_0_0.err create mode 100644 result/schemas/deter0_0_0 create mode 100644 result/schemas/deter0_0_0.err create mode 100644 result/schemas/dur_0_0 create mode 100644 result/schemas/dur_0_0.err create mode 100644 result/schemas/elem0_0_0 create mode 100644 result/schemas/elem0_0_0.err create mode 100644 result/schemas/element-err_0_0 create mode 100644 result/schemas/element-err_0_0.err create mode 100644 result/schemas/element-minmax-err_0_0 create mode 100644 result/schemas/element-minmax-err_0_0.err create mode 100644 result/schemas/empty-value_1_0 create mode 100644 result/schemas/empty-value_1_0.err create mode 100644 result/schemas/empty-value_1_1 create mode 100644 result/schemas/empty-value_1_1.err create mode 100644 result/schemas/empty_0_0 create mode 100644 result/schemas/empty_0_0.err create mode 100644 result/schemas/empty_1_0 create mode 100644 result/schemas/empty_1_0.err create mode 100644 result/schemas/extension0_0_0 create mode 100644 result/schemas/extension0_0_0.err create mode 100644 result/schemas/extension1_0_0 create mode 100644 result/schemas/extension1_0_0.err create mode 100644 result/schemas/extension1_0_1 create mode 100644 result/schemas/extension1_0_1.err create mode 100644 result/schemas/extension1_0_2 create mode 100644 result/schemas/extension1_0_2.err create mode 100644 result/schemas/extension2_1_0 create mode 100644 result/schemas/extension2_1_0.err create mode 100644 result/schemas/facet-unionST-err1_0_0 create mode 100644 result/schemas/facet-unionST-err1_0_0.err create mode 100644 result/schemas/facet-whiteSpace_0_0 create mode 100644 result/schemas/facet-whiteSpace_0_0.err create mode 100644 result/schemas/group0_0_0 create mode 100644 result/schemas/group0_0_0.err create mode 100644 result/schemas/hexbinary_0_0 create mode 100644 result/schemas/hexbinary_0_0.err create mode 100644 result/schemas/hexbinary_0_1 create mode 100644 result/schemas/hexbinary_0_1.err create mode 100644 result/schemas/idc-keyref-err1_1_0 create mode 100644 result/schemas/idc-keyref-err1_1_0.err create mode 100644 result/schemas/import0_0_0 create mode 100644 result/schemas/import0_0_0.err create mode 100644 result/schemas/import1_0_0 create mode 100644 result/schemas/import1_0_0.err create mode 100644 result/schemas/import2_0_0 create mode 100644 result/schemas/import2_0_0.err create mode 100644 result/schemas/include1_0_0 create mode 100644 result/schemas/include1_0_0.err create mode 100644 result/schemas/include2_0_0 create mode 100644 result/schemas/include2_0_0.err create mode 100644 result/schemas/include3_0_0 create mode 100644 result/schemas/include3_0_0.err create mode 100644 result/schemas/item_0_0 create mode 100644 result/schemas/item_0_0.err create mode 100644 result/schemas/item_1_0 create mode 100644 result/schemas/item_1_0.err create mode 100644 result/schemas/length1_0_0 create mode 100644 result/schemas/length1_0_0.err create mode 100644 result/schemas/length2_0_0 create mode 100644 result/schemas/length2_0_0.err create mode 100644 result/schemas/length3_0_0 create mode 100644 result/schemas/length3_0_0.err create mode 100644 result/schemas/list0_0_0 create mode 100644 result/schemas/list0_0_0.err create mode 100644 result/schemas/list0_0_1 create mode 100644 result/schemas/list0_0_1.err create mode 100644 result/schemas/list0_0_2 create mode 100644 result/schemas/list0_0_2.err create mode 100644 result/schemas/list0_1_0 create mode 100644 result/schemas/list0_1_0.err create mode 100644 result/schemas/list0_1_1 create mode 100644 result/schemas/list0_1_1.err create mode 100644 result/schemas/list0_1_2 create mode 100644 result/schemas/list0_1_2.err create mode 100644 result/schemas/mixed0_0_0 create mode 100644 result/schemas/mixed0_0_0.err create mode 100644 result/schemas/mixed1_0_0 create mode 100644 result/schemas/mixed1_0_0.err create mode 100644 result/schemas/ns0_0_0 create mode 100644 result/schemas/ns0_0_0.err create mode 100644 result/schemas/ns0_0_1 create mode 100644 result/schemas/ns0_0_1.err create mode 100644 result/schemas/ns0_0_2 create mode 100644 result/schemas/ns0_0_2.err create mode 100644 result/schemas/ns0_0_3 create mode 100644 result/schemas/ns0_0_3.err create mode 100644 result/schemas/ns0_0_4 create mode 100644 result/schemas/ns0_0_4.err create mode 100644 result/schemas/ns0_1_0 create mode 100644 result/schemas/ns0_1_0.err create mode 100644 result/schemas/ns0_1_1 create mode 100644 result/schemas/ns0_1_1.err create mode 100644 result/schemas/ns0_1_2 create mode 100644 result/schemas/ns0_1_2.err create mode 100644 result/schemas/ns0_1_3 create mode 100644 result/schemas/ns0_1_3.err create mode 100644 result/schemas/ns0_1_4 create mode 100644 result/schemas/ns0_1_4.err create mode 100644 result/schemas/ns1_0_0 create mode 100644 result/schemas/ns1_0_0.err create mode 100644 result/schemas/ns2_0_0 create mode 100644 result/schemas/ns2_0_0.err create mode 100644 result/schemas/nvdcve_0_0 create mode 100644 result/schemas/nvdcve_0_0.err create mode 100644 result/schemas/po0_0_0 create mode 100644 result/schemas/po0_0_0.err create mode 100644 result/schemas/po1_0_0 create mode 100644 result/schemas/po1_0_0.err create mode 100644 result/schemas/poschargrp0_0_0 create mode 100644 result/schemas/poschargrp0_0_0.err create mode 100644 result/schemas/regexp-char-ref_0_0 create mode 100644 result/schemas/regexp-char-ref_1_0 create mode 100644 result/schemas/restrict-CT-attr-ref_0_0 create mode 100644 result/schemas/restrict-CT-attr-ref_0_0.err create mode 100644 result/schemas/restriction-attr1_0_0 create mode 100644 result/schemas/restriction-attr1_0_0.err create mode 100644 result/schemas/restriction-enum-1_1_0 create mode 100644 result/schemas/restriction-enum-1_1_0.err create mode 100644 result/schemas/restriction0_0_0 create mode 100644 result/schemas/restriction0_0_0.err create mode 100644 result/schemas/scc-no-xmlns_0_0 create mode 100644 result/schemas/scc-no-xmlns_0_0.err create mode 100644 result/schemas/scc-no-xsi_0_0 create mode 100644 result/schemas/scc-no-xsi_0_0.err create mode 100644 result/schemas/seq-dubl-elem1_0_0 create mode 100644 result/schemas/seq-dubl-elem1_0_0.err create mode 100644 result/schemas/seq0_0_0 create mode 100644 result/schemas/seq0_0_0.err create mode 100644 result/schemas/src-attribute1_0_0 create mode 100644 result/schemas/src-attribute1_0_0.err create mode 100644 result/schemas/src-attribute2_0_0 create mode 100644 result/schemas/src-attribute2_0_0.err create mode 100644 result/schemas/src-attribute3-1_0_0 create mode 100644 result/schemas/src-attribute3-1_0_0.err create mode 100644 result/schemas/src-attribute3-2-form_0_0 create mode 100644 result/schemas/src-attribute3-2-form_0_0.err create mode 100644 result/schemas/src-attribute3-2-st_0_0 create mode 100644 result/schemas/src-attribute3-2-st_0_0.err create mode 100644 result/schemas/src-attribute3-2-type_0_0 create mode 100644 result/schemas/src-attribute3-2-type_0_0.err create mode 100644 result/schemas/src-attribute4_0_0 create mode 100644 result/schemas/src-attribute4_0_0.err create mode 100644 result/schemas/src-element1_0_0 create mode 100644 result/schemas/src-element1_0_0.err create mode 100644 result/schemas/src-element2-1_0_0 create mode 100644 result/schemas/src-element2-1_0_0.err create mode 100644 result/schemas/src-element2-2_0_0 create mode 100644 result/schemas/src-element2-2_0_0.err create mode 100644 result/schemas/src-element3_0_0 create mode 100644 result/schemas/src-element3_0_0.err create mode 100644 result/schemas/subst-group-1_0_1 create mode 100644 result/schemas/subst-group-1_0_1.err create mode 100644 result/schemas/union2_1_1 create mode 100644 result/schemas/union2_1_1.err create mode 100644 result/schemas/union_0_0 create mode 100644 result/schemas/union_0_0.err create mode 100644 result/schemas/vdv-first0_0_0 create mode 100644 result/schemas/vdv-first0_0_0.err create mode 100644 result/schemas/vdv-first1_0_0 create mode 100644 result/schemas/vdv-first1_0_0.err create mode 100644 result/schemas/vdv-first2_0_0 create mode 100644 result/schemas/vdv-first2_0_0.err create mode 100644 result/schemas/vdv-first3_0_0 create mode 100644 result/schemas/vdv-first3_0_0.err create mode 100644 result/schemas/vdv-first4_0_0 create mode 100644 result/schemas/vdv-first4_0_0.err create mode 100644 result/schemas/vdv-first4_0_1 create mode 100644 result/schemas/vdv-first4_0_1.err create mode 100644 result/schemas/vdv-first4_0_2 create mode 100644 result/schemas/vdv-first4_0_2.err create mode 100644 result/schemas/vdv-first5_0_0 create mode 100644 result/schemas/vdv-first5_0_0.err create mode 100644 result/schemas/xsd-list-itemType_0_0 create mode 100644 result/schemas/xsd-list-itemType_0_0.err create mode 100644 result/schemas/xsd-simpleType-varieties_0_0 create mode 100644 result/schemas/xsd-simpleType-varieties_0_0.err create mode 100644 result/schematron/zvon10_0 create mode 100644 result/schematron/zvon10_0.err create mode 100644 result/schematron/zvon10_1 create mode 100644 result/schematron/zvon10_1.err create mode 100644 result/schematron/zvon11_0 create mode 100644 result/schematron/zvon11_0.err create mode 100644 result/schematron/zvon11_1 create mode 100644 result/schematron/zvon11_1.err create mode 100644 result/schematron/zvon11_2 create mode 100644 result/schematron/zvon11_2.err create mode 100644 result/schematron/zvon11_3 create mode 100644 result/schematron/zvon11_3.err create mode 100644 result/schematron/zvon12_0 create mode 100644 result/schematron/zvon12_0.err create mode 100644 result/schematron/zvon12_1 create mode 100644 result/schematron/zvon12_1.err create mode 100644 result/schematron/zvon12_2 create mode 100644 result/schematron/zvon12_2.err create mode 100644 result/schematron/zvon13_0 create mode 100644 result/schematron/zvon13_0.err create mode 100644 result/schematron/zvon13_1 create mode 100644 result/schematron/zvon13_1.err create mode 100644 result/schematron/zvon13_2 create mode 100644 result/schematron/zvon13_2.err create mode 100644 result/schematron/zvon14_0 create mode 100644 result/schematron/zvon14_0.err create mode 100644 result/schematron/zvon15_0 create mode 100644 result/schematron/zvon15_0.err create mode 100644 result/schematron/zvon1_0 create mode 100644 result/schematron/zvon1_0.err create mode 100644 result/schematron/zvon1_1 create mode 100644 result/schematron/zvon1_1.err create mode 100644 result/schematron/zvon2_0 create mode 100644 result/schematron/zvon2_0.err create mode 100644 result/schematron/zvon2_1 create mode 100644 result/schematron/zvon2_1.err create mode 100644 result/schematron/zvon2_2 create mode 100644 result/schematron/zvon2_2.err create mode 100644 result/schematron/zvon3_0 create mode 100644 result/schematron/zvon3_0.err create mode 100644 result/schematron/zvon4_0 create mode 100644 result/schematron/zvon4_0.err create mode 100644 result/schematron/zvon4_1 create mode 100644 result/schematron/zvon4_1.err create mode 100644 result/schematron/zvon5_0 create mode 100644 result/schematron/zvon5_0.err create mode 100644 result/schematron/zvon5_1 create mode 100644 result/schematron/zvon5_1.err create mode 100644 result/schematron/zvon5_2 create mode 100644 result/schematron/zvon5_2.err create mode 100644 result/schematron/zvon6_0 create mode 100644 result/schematron/zvon6_0.err create mode 100644 result/schematron/zvon6_1 create mode 100644 result/schematron/zvon6_1.err create mode 100644 result/schematron/zvon6_2 create mode 100644 result/schematron/zvon6_2.err create mode 100644 result/schematron/zvon7_0 create mode 100644 result/schematron/zvon7_0.err create mode 100644 result/schematron/zvon7_1 create mode 100644 result/schematron/zvon7_1.err create mode 100644 result/schematron/zvon7_2 create mode 100644 result/schematron/zvon7_2.err create mode 100644 result/schematron/zvon7_3 create mode 100644 result/schematron/zvon7_3.err create mode 100644 result/schematron/zvon7_4 create mode 100644 result/schematron/zvon7_4.err create mode 100644 result/schematron/zvon8_0 create mode 100644 result/schematron/zvon8_0.err create mode 100644 result/schematron/zvon8_1 create mode 100644 result/schematron/zvon8_1.err create mode 100644 result/schematron/zvon8_2 create mode 100644 result/schematron/zvon8_2.err create mode 100644 result/schematron/zvon9_0 create mode 100644 result/schematron/zvon9_0.err create mode 100644 result/schematron/zvon9_1 create mode 100644 result/schematron/zvon9_1.err create mode 100644 result/schematron/zvon9_2 create mode 100644 result/schematron/zvon9_2.err create mode 100644 result/scripts/base create mode 100644 result/scripts/base.err create mode 100644 result/scripts/base2 create mode 100644 result/scripts/base2.err create mode 100644 result/scripts/set1 create mode 100644 result/scripts/set1.err create mode 100644 result/scripts/set3 create mode 100644 result/scripts/set3.err create mode 100644 result/scripts/set4 create mode 100644 result/scripts/set4.err create mode 100644 result/slashdot.rdf create mode 100644 result/slashdot.rdf.rde create mode 100644 result/slashdot.rdf.rdr create mode 100644 result/slashdot.rdf.sax create mode 100644 result/slashdot.rdf.sax2 create mode 100644 result/slashdot.xml create mode 100644 result/slashdot.xml.rde create mode 100644 result/slashdot.xml.rdr create mode 100644 result/slashdot.xml.sax create mode 100644 result/slashdot.xml.sax2 create mode 100644 result/slashdot16.xml create mode 100644 result/slashdot16.xml.rde create mode 100644 result/slashdot16.xml.rdr create mode 100644 result/slashdot16.xml.sax create mode 100644 result/slashdot16.xml.sax2 create mode 100644 result/svg1 create mode 100644 result/svg1.rde create mode 100644 result/svg1.rdr create mode 100644 result/svg1.sax create mode 100644 result/svg1.sax2 create mode 100644 result/svg2 create mode 100644 result/svg2.rde create mode 100644 result/svg2.rdr create mode 100644 result/svg2.sax create mode 100644 result/svg2.sax2 create mode 100644 result/svg3 create mode 100644 result/svg3.rde create mode 100644 result/svg3.rdr create mode 100644 result/svg3.sax create mode 100644 result/svg3.sax2 create mode 100644 result/title.xml create mode 100644 result/title.xml.rde create mode 100644 result/title.xml.rdr create mode 100644 result/title.xml.sax create mode 100644 result/title.xml.sax2 create mode 100644 result/tstblanks.xml create mode 100644 result/tstblanks.xml.rde create mode 100644 result/tstblanks.xml.rdr create mode 100644 result/tstblanks.xml.sax create mode 100644 result/tstblanks.xml.sax2 create mode 100644 result/utf16bebom.xml create mode 100644 result/utf16bebom.xml.rde create mode 100644 result/utf16bebom.xml.rdr create mode 100644 result/utf16bebom.xml.sax create mode 100644 result/utf16bebom.xml.sax2 create mode 100644 result/utf16bom.xml create mode 100644 result/utf16bom.xml.rde create mode 100644 result/utf16bom.xml.rdr create mode 100644 result/utf16bom.xml.sax create mode 100644 result/utf16bom.xml.sax2 create mode 100644 result/utf16lebom.xml create mode 100644 result/utf16lebom.xml.rde create mode 100644 result/utf16lebom.xml.rdr create mode 100644 result/utf16lebom.xml.sax create mode 100644 result/utf16lebom.xml.sax2 create mode 100644 result/utf8bom.xml create mode 100644 result/utf8bom.xml.rde create mode 100644 result/utf8bom.xml.rdr create mode 100644 result/utf8bom.xml.sax create mode 100644 result/utf8bom.xml.sax2 create mode 100644 result/valid/127772.xml create mode 100644 result/valid/127772.xml.err create mode 100644 result/valid/REC-xml-19980210.xml create mode 100644 result/valid/REC-xml-19980210.xml.err create mode 100644 result/valid/UTF16Entity.xml create mode 100644 result/valid/UTF16Entity.xml.err create mode 100644 result/valid/dia.xml create mode 100644 result/valid/dia.xml.err create mode 100644 result/valid/id1.xml create mode 100644 result/valid/id1.xml.err create mode 100644 result/valid/id2.xml create mode 100644 result/valid/id2.xml.err create mode 100644 result/valid/id3.xml create mode 100644 result/valid/id3.xml.err create mode 100644 result/valid/index.xml create mode 100644 result/valid/index.xml.err create mode 100644 result/valid/mixed_ns.xml create mode 100644 result/valid/mixed_ns.xml.err create mode 100644 result/valid/notes.xml create mode 100644 result/valid/notes.xml.err create mode 100644 result/valid/ns.xml create mode 100644 result/valid/ns.xml.err create mode 100644 result/valid/ns2.xml create mode 100644 result/valid/ns2.xml.err create mode 100644 result/valid/objednavka.xml create mode 100644 result/valid/objednavka.xml.err create mode 100644 result/valid/rss.xml create mode 100644 result/valid/rss.xml.err create mode 100644 result/valid/t10.xml create mode 100644 result/valid/t10.xml.err create mode 100644 result/valid/t11.xml create mode 100644 result/valid/t11.xml.err create mode 100644 result/valid/t4.dtd create mode 100644 result/valid/t4.dtd.err create mode 100644 result/valid/t4.xml create mode 100644 result/valid/t4.xml.err create mode 100644 result/valid/t4a.dtd create mode 100644 result/valid/t4a.dtd.err create mode 100644 result/valid/t4a.xml create mode 100644 result/valid/t4a.xml.err create mode 100644 result/valid/t6.dtd create mode 100644 result/valid/t6.dtd.err create mode 100644 result/valid/t6.xml create mode 100644 result/valid/t6.xml.err create mode 100644 result/valid/t8.xml create mode 100644 result/valid/t8.xml.err create mode 100644 result/valid/t8a.xml create mode 100644 result/valid/t8a.xml.err create mode 100644 result/valid/t9.xml create mode 100644 result/valid/t9.xml.err create mode 100644 result/valid/t9a.xml create mode 100644 result/valid/t9a.xml.err create mode 100644 result/valid/xhtml1.xhtml create mode 100644 result/valid/xhtml1.xhtml.err create mode 100644 result/valid/xlink.xml create mode 100644 result/valid/xlink.xml.err create mode 100644 result/wap.xml create mode 100644 result/wap.xml.rde create mode 100644 result/wap.xml.rdr create mode 100644 result/wap.xml.sax create mode 100644 result/wap.xml.sax2 create mode 100644 result/winblanks.xml create mode 100644 result/winblanks.xml.rde create mode 100644 result/winblanks.xml.rdr create mode 100644 result/winblanks.xml.sax create mode 100644 result/winblanks.xml.sax2 create mode 100644 result/wml.xml create mode 100644 result/wml.xml.rde create mode 100644 result/wml.xml.rdr create mode 100644 result/wml.xml.sax create mode 100644 result/wml.xml.sax2 create mode 100644 result/xhtml1 create mode 100644 result/xhtml1.rde create mode 100644 result/xhtml1.rdr create mode 100644 result/xhtml1.sax create mode 100644 result/xhtml1.sax2 create mode 100644 result/xhtmlcomp create mode 100644 result/xhtmlcomp.rde create mode 100644 result/xhtmlcomp.rdr create mode 100644 result/xhtmlcomp.sax create mode 100644 result/xhtmlcomp.sax2 create mode 100644 result/xml1 create mode 100644 result/xml1.rde create mode 100644 result/xml1.rdr create mode 100644 result/xml1.sax create mode 100644 result/xml1.sax2 create mode 100644 result/xml2 create mode 100644 result/xml2.rde create mode 100644 result/xml2.rdr create mode 100644 result/xml2.sax create mode 100644 result/xml2.sax2 create mode 100644 result/xmlid/id_err1.xml create mode 100644 result/xmlid/id_err1.xml.err create mode 100644 result/xmlid/id_err2.xml create mode 100644 result/xmlid/id_err2.xml.err create mode 100644 result/xmlid/id_tst1.xml create mode 100644 result/xmlid/id_tst1.xml.err create mode 100644 result/xmlid/id_tst2.xml create mode 100644 result/xmlid/id_tst2.xml.err create mode 100644 result/xmlid/id_tst3.xml create mode 100644 result/xmlid/id_tst3.xml.err create mode 100644 result/xmlid/id_tst4.xml create mode 100644 result/xmlid/id_tst4.xml.err create mode 100644 save.h create mode 100644 test/HTML/53867.html create mode 100644 test/HTML/Down.html create mode 100644 test/HTML/attrents.html create mode 100644 test/HTML/autoclose.html create mode 100644 test/HTML/autoclose2.html create mode 100644 test/HTML/autoclose3.html create mode 100644 test/HTML/cf_128.html create mode 100644 test/HTML/doc2.htm create mode 100644 test/HTML/doc3.htm create mode 100644 test/HTML/entities.html create mode 100644 test/HTML/entities2.html create mode 100644 test/HTML/fp40.htm create mode 100644 test/HTML/html5_enc.html create mode 100644 test/HTML/liclose.html create mode 100644 test/HTML/lt.html create mode 100644 test/HTML/noscript.html create mode 100644 test/HTML/pre.html create mode 100644 test/HTML/python.html create mode 100644 test/HTML/reg1.html create mode 100644 test/HTML/reg2.html create mode 100644 test/HTML/reg3.html create mode 100644 test/HTML/reg4.html create mode 100644 test/HTML/repeat.html create mode 100644 test/HTML/script.html create mode 100644 test/HTML/script2.html create mode 100644 test/HTML/test2.html create mode 100644 test/HTML/test3.html create mode 100644 test/HTML/utf8bug.html create mode 100644 test/HTML/wired.html create mode 100755 test/SVG/4rects.xml create mode 100755 test/SVG/a-valid.xml create mode 100755 test/SVG/a-wf.xml create mode 100755 test/SVG/bike.xml create mode 100755 test/SVG/circle.xml create mode 100755 test/SVG/defs.xml create mode 100755 test/SVG/desc.xml create mode 100755 test/SVG/ellipse.xml create mode 100755 test/SVG/flower2.xml create mode 100755 test/SVG/gradient.xml create mode 100755 test/SVG/group01.xml create mode 100755 test/SVG/group02.xml create mode 100755 test/SVG/group03.xml create mode 100755 test/SVG/image-valid.xml create mode 100755 test/SVG/image-wf.xml create mode 100755 test/SVG/lin-gradient.xml create mode 100755 test/SVG/marker.xml create mode 100755 test/SVG/mask.xml create mode 100755 test/SVG/mathswitch.xml create mode 100755 test/SVG/parentns.xml create mode 100755 test/SVG/path01.xml create mode 100755 test/SVG/path02.xml create mode 100755 test/SVG/patternfill.xml create mode 100755 test/SVG/polyline.xml create mode 100755 test/SVG/private.xml create mode 100755 test/SVG/rad-gradient.xml create mode 100755 test/SVG/rectangle.xml create mode 100755 test/SVG/richdesc.xml create mode 100755 test/SVG/script.xml create mode 100755 test/SVG/structure01.xml create mode 100755 test/SVG/style.xml create mode 100755 test/SVG/switch.xml create mode 100755 test/SVG/symbol-use.xml create mode 100755 test/SVG/template.xml create mode 100755 test/SVG/text01.xml create mode 100755 test/SVG/text02.xml create mode 100755 test/SVG/text03.xml create mode 100755 test/SVG/toap01.xml create mode 100755 test/SVG/toap02.xml create mode 100755 test/SVG/transform.xml create mode 100755 test/SVG/trivial.xml create mode 100755 test/SVG/twin-gradients.xml create mode 100755 test/SVG/v-template.xml create mode 100755 test/SVG/viewport-nest.xml create mode 100755 test/SVG/viewport-transform.xml create mode 100755 test/SVG/viewport.xml create mode 100755 test/SVG/wf-template.xml create mode 100644 test/URI/smith.uri create mode 100644 test/URI/uri.data create mode 100644 test/VC/AttributeDefaultLegal create mode 100644 test/VC/AttributeNmtokens create mode 100644 test/VC/DuplicateType create mode 100644 test/VC/ElementValid create mode 100644 test/VC/ElementValid2 create mode 100644 test/VC/ElementValid3 create mode 100644 test/VC/ElementValid4 create mode 100644 test/VC/ElementValid5 create mode 100644 test/VC/ElementValid6 create mode 100644 test/VC/ElementValid7 create mode 100644 test/VC/ElementValid8 create mode 100644 test/VC/Enumeration create mode 100644 test/VC/NS1 create mode 100644 test/VC/NS2 create mode 100644 test/VC/NS3 create mode 100644 test/VC/OneID create mode 100644 test/VC/OneID2 create mode 100644 test/VC/OneID3 create mode 100644 test/VC/PENesting create mode 100644 test/VC/PENesting2 create mode 100644 test/VC/UniqueElementTypeDeclaration create mode 100644 test/VC/UniqueElementTypeDeclaration2 create mode 100644 test/VC/dtds/a.dtd create mode 100644 test/VC/dtds/doc.dtd create mode 100644 test/VCM/21.xml create mode 100644 test/VCM/AttributeNmtokens.xml create mode 100644 test/VCM/v1.xml create mode 100644 test/VCM/v10.xml create mode 100644 test/VCM/v11.xml create mode 100644 test/VCM/v12.xml create mode 100644 test/VCM/v13.xml create mode 100644 test/VCM/v14.xml create mode 100644 test/VCM/v15.xml create mode 100644 test/VCM/v16.xml create mode 100644 test/VCM/v17.xml create mode 100644 test/VCM/v18.xml create mode 100644 test/VCM/v19.xml create mode 100644 test/VCM/v2.xml create mode 100644 test/VCM/v20.xml create mode 100644 test/VCM/v21.xml create mode 100644 test/VCM/v22.xml create mode 100644 test/VCM/v23.xml create mode 100644 test/VCM/v24.xml create mode 100644 test/VCM/v3.xml create mode 100644 test/VCM/v4.xml create mode 100644 test/VCM/v5.xml create mode 100644 test/VCM/v6.xml create mode 100644 test/VCM/v7.xml create mode 100644 test/VCM/v8.xml create mode 100644 test/VCM/v9.xml create mode 100644 test/WFC/ElemTypeMatch create mode 100644 test/WFC/EntityDeclared create mode 100644 test/WFC/EntityDeclared2 create mode 100644 test/WFC/EntityDeclared3 create mode 100644 test/WFC/EntityDeclared4 create mode 100644 test/WFC/EntityDeclared5 create mode 100644 test/WFC/LegalCharacter create mode 100644 test/WFC/NoExternalEntityRef create mode 100644 test/WFC/NoLtInAttValue create mode 100644 test/WFC/NoRecursion create mode 100644 test/WFC/PEintsubset create mode 100644 test/WFC/UniqueAttSpec create mode 100644 test/WFC/UniqueAttSpec2 create mode 100644 test/XInclude/docs/docids.xml create mode 100644 test/XInclude/docs/fallback.xml create mode 100644 test/XInclude/docs/fallback2.xml create mode 100644 test/XInclude/docs/include.xml create mode 100644 test/XInclude/docs/nodes.xml create mode 100644 test/XInclude/docs/nodes2.xml create mode 100644 test/XInclude/docs/nodes3.xml create mode 100644 test/XInclude/docs/recursive.xml create mode 100644 test/XInclude/docs/tstencoding.xml create mode 100644 test/XInclude/docs/txtinclude.xml create mode 100644 test/XInclude/ents/ids.xml create mode 100644 test/XInclude/ents/inc.txt create mode 100644 test/XInclude/ents/isolatin.txt create mode 100644 test/XInclude/ents/something.txt create mode 100644 test/XInclude/ents/something.xml create mode 100644 test/XInclude/ents/sub-inc.ent create mode 100644 test/XPath/docs/chapters create mode 100644 test/XPath/docs/id create mode 100644 test/XPath/docs/lang create mode 100644 test/XPath/docs/mixed create mode 100644 test/XPath/docs/nodes create mode 100644 test/XPath/docs/simple create mode 100644 test/XPath/docs/str create mode 100644 test/XPath/docs/usr1 create mode 100644 test/XPath/docs/vid create mode 100644 test/XPath/expr/base create mode 100644 test/XPath/expr/compare create mode 100644 test/XPath/expr/equality create mode 100644 test/XPath/expr/floats create mode 100644 test/XPath/expr/functions create mode 100644 test/XPath/expr/strings create mode 100644 test/XPath/tests/chaptersbase create mode 100644 test/XPath/tests/chaptersprefol create mode 100644 test/XPath/tests/idsimple create mode 100644 test/XPath/tests/langsimple create mode 100644 test/XPath/tests/mixedpat create mode 100644 test/XPath/tests/nodespat create mode 100644 test/XPath/tests/simpleabbr create mode 100644 test/XPath/tests/simplebase create mode 100644 test/XPath/tests/usr1check create mode 100644 test/XPath/tests/vidbase create mode 100644 test/XPath/xptr/chapterschildseq create mode 100644 test/XPath/xptr/chaptersparts create mode 100644 test/XPath/xptr/chaptersrange create mode 100644 test/XPath/xptr/strpoint create mode 100644 test/XPath/xptr/strrange create mode 100644 test/XPath/xptr/strrange2 create mode 100644 test/XPath/xptr/strrange3 create mode 100644 test/XPath/xptr/vidbase create mode 100644 test/XPath/xptr/vidchildseq create mode 100644 test/XPath/xptr/vidparts create mode 100644 test/att1 create mode 100644 test/att10 create mode 100644 test/att11 create mode 100644 test/att2 create mode 100644 test/att3 create mode 100644 test/att4 create mode 100644 test/att5 create mode 100644 test/att6 create mode 100644 test/att7 create mode 100644 test/att8 create mode 100644 test/att9 create mode 100644 test/attrib.xml create mode 100644 test/automata/a create mode 100644 test/automata/aba create mode 100644 test/automata/abaa create mode 100644 test/automata/abba create mode 100644 test/automata/po create mode 100644 test/badcomment.xml create mode 100644 test/bigentname.xml create mode 100644 test/bigname.xml create mode 100644 test/bigname2.xml create mode 100755 test/c14n/1-1-without-comments/doc.dtd create mode 100755 test/c14n/1-1-without-comments/example-1.xml create mode 100755 test/c14n/1-1-without-comments/example-2.xml create mode 100755 test/c14n/1-1-without-comments/example-3.xml create mode 100755 test/c14n/1-1-without-comments/example-4.xml create mode 100755 test/c14n/1-1-without-comments/example-5.xml create mode 100755 test/c14n/1-1-without-comments/example-6.xml create mode 100755 test/c14n/1-1-without-comments/example-7.xml create mode 100755 test/c14n/1-1-without-comments/example-7.xpath create mode 100755 test/c14n/1-1-without-comments/example-8.xml create mode 100755 test/c14n/1-1-without-comments/example-8.xpath create mode 100755 test/c14n/1-1-without-comments/world.txt create mode 100644 test/c14n/1-1-without-comments/xmlbase-c14n11spec-102.xml create mode 100644 test/c14n/1-1-without-comments/xmlbase-c14n11spec-102.xpath create mode 100644 test/c14n/1-1-without-comments/xmlbase-c14n11spec2-102.xml create mode 100644 test/c14n/1-1-without-comments/xmlbase-c14n11spec2-102.xpath create mode 100644 test/c14n/1-1-without-comments/xmlbase-c14n11spec3-102.xml create mode 100644 test/c14n/1-1-without-comments/xmlbase-c14n11spec3-102.xpath create mode 100755 test/c14n/1-1-without-comments/xmlbase-prop-1.xml create mode 100755 test/c14n/1-1-without-comments/xmlbase-prop-1.xpath create mode 100755 test/c14n/1-1-without-comments/xmlbase-prop-2.xml create mode 100755 test/c14n/1-1-without-comments/xmlbase-prop-2.xpath create mode 100755 test/c14n/1-1-without-comments/xmlbase-prop-3.xml create mode 100755 test/c14n/1-1-without-comments/xmlbase-prop-3.xpath create mode 100755 test/c14n/1-1-without-comments/xmlbase-prop-4.xml create mode 100755 test/c14n/1-1-without-comments/xmlbase-prop-4.xpath create mode 100755 test/c14n/1-1-without-comments/xmlbase-prop-5.xml create mode 100755 test/c14n/1-1-without-comments/xmlbase-prop-5.xpath create mode 100755 test/c14n/1-1-without-comments/xmlbase-prop-6.xml create mode 100755 test/c14n/1-1-without-comments/xmlbase-prop-6.xpath create mode 100755 test/c14n/1-1-without-comments/xmlbase-prop-7.xml create mode 100755 test/c14n/1-1-without-comments/xmlbase-prop-7.xpath create mode 100644 test/c14n/1-1-without-comments/xmlid-prop-1.xml create mode 100755 test/c14n/1-1-without-comments/xmlid-prop-1.xpath create mode 100644 test/c14n/1-1-without-comments/xmlid-prop-2.xml create mode 100755 test/c14n/1-1-without-comments/xmlid-prop-2.xpath create mode 100644 test/c14n/1-1-without-comments/xmllang-prop-1.xml create mode 100755 test/c14n/1-1-without-comments/xmllang-prop-1.xpath create mode 100644 test/c14n/1-1-without-comments/xmllang-prop-2.xml create mode 100755 test/c14n/1-1-without-comments/xmllang-prop-2.xpath create mode 100644 test/c14n/1-1-without-comments/xmllang-prop-3.xml create mode 100755 test/c14n/1-1-without-comments/xmllang-prop-3.xpath create mode 100644 test/c14n/1-1-without-comments/xmllang-prop-4.xml create mode 100755 test/c14n/1-1-without-comments/xmllang-prop-4.xpath create mode 100644 test/c14n/1-1-without-comments/xmlspace-prop-1.xml create mode 100755 test/c14n/1-1-without-comments/xmlspace-prop-1.xpath create mode 100644 test/c14n/1-1-without-comments/xmlspace-prop-2.xml create mode 100755 test/c14n/1-1-without-comments/xmlspace-prop-2.xpath create mode 100644 test/c14n/1-1-without-comments/xmlspace-prop-3.xml create mode 100755 test/c14n/1-1-without-comments/xmlspace-prop-3.xpath create mode 100644 test/c14n/1-1-without-comments/xmlspace-prop-4.xml create mode 100755 test/c14n/1-1-without-comments/xmlspace-prop-4.xpath create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-09.xml create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-09.xpath create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-10.xml create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-10.xpath create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-11.xml create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-11.xpath create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-12.xml create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-12.xpath create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-13.xml create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-13.xpath create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-14.xml create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-14.xpath create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-15.xml create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-15.xpath create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-16.xml create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-16.xpath create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-17.xml create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-17.xpath create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-18.ns create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-18.xml create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-18.xpath create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-19.ns create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-19.xml create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-19.xpath create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-20.ns create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-20.xml create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-20.xpath create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-21.ns create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-21.xml create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-21.xpath create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-22.ns create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-22.xml create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-22.xpath create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-23.ns create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-23.xml create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-23.xpath create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-24.ns create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-24.xml create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-24.xpath create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-25.ns create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-25.xml create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-25.xpath create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-26.ns create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-26.xml create mode 100644 test/c14n/exc-without-comments/merlin-c14n-two-26.xpath create mode 100644 test/c14n/exc-without-comments/test-0.xml create mode 100644 test/c14n/exc-without-comments/test-0.xpath create mode 100644 test/c14n/exc-without-comments/test-1.ns create mode 100644 test/c14n/exc-without-comments/test-1.xml create mode 100644 test/c14n/exc-without-comments/test-1.xpath create mode 100644 test/c14n/exc-without-comments/test-2.xml create mode 100644 test/c14n/exc-without-comments/test-2.xpath create mode 100644 test/c14n/with-comments/doc.dtd create mode 100644 test/c14n/with-comments/example-1.xml create mode 100644 test/c14n/with-comments/example-2.xml create mode 100644 test/c14n/with-comments/example-3.xml create mode 100644 test/c14n/with-comments/example-4.xml create mode 100644 test/c14n/with-comments/example-5.xml create mode 100644 test/c14n/with-comments/example-6.xml create mode 100644 test/c14n/with-comments/example-7.xml create mode 100644 test/c14n/with-comments/example-7.xpath create mode 100644 test/c14n/with-comments/world.txt create mode 100644 test/c14n/without-comments/doc.dtd create mode 100644 test/c14n/without-comments/example-1.xml create mode 100644 test/c14n/without-comments/example-2.xml create mode 100644 test/c14n/without-comments/example-3.xml create mode 100644 test/c14n/without-comments/example-4.xml create mode 100644 test/c14n/without-comments/example-5.xml create mode 100644 test/c14n/without-comments/example-6.xml create mode 100644 test/c14n/without-comments/example-7.xml create mode 100644 test/c14n/without-comments/example-7.xpath create mode 100644 test/c14n/without-comments/merlin-c14n-two-00.xml create mode 100644 test/c14n/without-comments/merlin-c14n-two-00.xpath create mode 100644 test/c14n/without-comments/merlin-c14n-two-01.xml create mode 100644 test/c14n/without-comments/merlin-c14n-two-01.xpath create mode 100644 test/c14n/without-comments/merlin-c14n-two-02.xml create mode 100644 test/c14n/without-comments/merlin-c14n-two-02.xpath create mode 100644 test/c14n/without-comments/merlin-c14n-two-03.xml create mode 100644 test/c14n/without-comments/merlin-c14n-two-03.xpath create mode 100644 test/c14n/without-comments/merlin-c14n-two-04.xml create mode 100644 test/c14n/without-comments/merlin-c14n-two-04.xpath create mode 100644 test/c14n/without-comments/merlin-c14n-two-05.xml create mode 100644 test/c14n/without-comments/merlin-c14n-two-05.xpath create mode 100644 test/c14n/without-comments/merlin-c14n-two-06.xml create mode 100644 test/c14n/without-comments/merlin-c14n-two-06.xpath create mode 100644 test/c14n/without-comments/merlin-c14n-two-07.xml create mode 100644 test/c14n/without-comments/merlin-c14n-two-07.xpath create mode 100644 test/c14n/without-comments/merlin-c14n-two-08.xml create mode 100644 test/c14n/without-comments/merlin-c14n-two-08.xpath create mode 100644 test/c14n/without-comments/test-0.xml create mode 100644 test/c14n/without-comments/test-0.xpath create mode 100644 test/c14n/without-comments/test-1.xml create mode 100644 test/c14n/without-comments/test-1.xpath create mode 100644 test/c14n/without-comments/test-2.xml create mode 100644 test/c14n/without-comments/test-2.xpath create mode 100644 test/c14n/without-comments/test-3.xml create mode 100644 test/c14n/without-comments/test-3.xpath create mode 100644 test/c14n/without-comments/world.txt create mode 100644 test/catalogs/catal.script create mode 100644 test/catalogs/catal.sgml create mode 100644 test/catalogs/catal1.sgml create mode 100644 test/catalogs/catal2.sgml create mode 100644 test/catalogs/catal3.sgml create mode 100644 test/catalogs/docbook.script create mode 100644 test/catalogs/docbook.xml create mode 100644 test/catalogs/registry.script create mode 100644 test/catalogs/registry.xml create mode 100644 test/catalogs/stylesheet.xml create mode 100644 test/catalogs/whites.script create mode 100644 test/catalogs/whites.sgml create mode 100644 test/catalogs/whitex.script create mode 100644 test/catalogs/whitex.xml create mode 100644 test/cdata create mode 100644 test/cdata2 create mode 100644 test/comment.xml create mode 100644 test/comment2.xml create mode 100644 test/comment3.xml create mode 100644 test/comment4.xml create mode 100644 test/comment5.xml create mode 100644 test/comment6.xml create mode 100644 test/dav1 create mode 100644 test/dav10 create mode 100644 test/dav11 create mode 100644 test/dav12 create mode 100644 test/dav13 create mode 100644 test/dav15 create mode 100644 test/dav16 create mode 100644 test/dav17 create mode 100644 test/dav18 create mode 100644 test/dav19 create mode 100644 test/dav2 create mode 100644 test/dav3 create mode 100644 test/dav4 create mode 100644 test/dav5 create mode 100644 test/dav6 create mode 100644 test/dav7 create mode 100644 test/dav8 create mode 100644 test/dav9 create mode 100644 test/defattr.xml create mode 100644 test/defattr2.xml create mode 100644 test/dia1 create mode 100644 test/dia2 create mode 100644 test/dtd1 create mode 100644 test/dtd10 create mode 100644 test/dtd11 create mode 100644 test/dtd12 create mode 100644 test/dtd13 create mode 100644 test/dtd2 create mode 100644 test/dtd3 create mode 100644 test/dtd4 create mode 100644 test/dtd5 create mode 100644 test/dtd6 create mode 100644 test/dtd7 create mode 100644 test/dtd8 create mode 100644 test/dtd9 create mode 100644 test/dtds/eve.dtd create mode 100644 test/ebcdic_566012.xml create mode 100644 test/emptycdata.xml create mode 100644 test/ent1 create mode 100644 test/ent10 create mode 100644 test/ent11 create mode 100644 test/ent12 create mode 100644 test/ent13 create mode 100644 test/ent2 create mode 100644 test/ent3 create mode 100644 test/ent4 create mode 100644 test/ent5 create mode 100644 test/ent6 create mode 100644 test/ent7 create mode 100644 test/ent8 create mode 100644 test/ent9 create mode 100644 test/errors/attr1.xml create mode 100644 test/errors/attr2.xml create mode 100644 test/errors/attr3.xml create mode 100644 test/errors/attr4.xml create mode 100644 test/errors/cdata.xml create mode 100644 test/errors/charref1.xml create mode 100644 test/errors/comment1.xml create mode 100644 test/errors/content1.xml create mode 100644 test/errors/dtd13 create mode 100644 test/errors/extparsedent.xml create mode 100644 test/errors/name.xml create mode 100644 test/errors/name2.xml create mode 100644 test/eve.xml create mode 100644 test/expr/base create mode 100644 test/intsubset.xml create mode 100644 test/intsubset2.xml create mode 100644 test/isolat1 create mode 100644 test/isolat2 create mode 100644 test/isolat3 create mode 100644 test/namespaces/err_0.xml create mode 100644 test/namespaces/err_1.xml create mode 100644 test/namespaces/err_10.xml create mode 100644 test/namespaces/err_11.xml create mode 100644 test/namespaces/err_2.xml create mode 100644 test/namespaces/err_3.xml create mode 100644 test/namespaces/err_4.xml create mode 100644 test/namespaces/err_5.xml create mode 100644 test/namespaces/err_6.xml create mode 100644 test/namespaces/err_7.xml create mode 100644 test/namespaces/err_8.xml create mode 100644 test/namespaces/err_9.xml create mode 100644 test/namespaces/reconcile/tests-to-c.xsl create mode 100644 test/namespaces/reconcile/tests.xml create mode 100644 test/ns create mode 100644 test/ns2 create mode 100644 test/ns3 create mode 100644 test/ns4 create mode 100644 test/ns5 create mode 100644 test/ns6 create mode 100644 test/ns7 create mode 100644 test/nsclean.xml create mode 100644 test/p3p create mode 100644 test/pattern/conj.pat create mode 100644 test/pattern/conj.xml create mode 100644 test/pattern/multiple.pat create mode 100644 test/pattern/multiple.xml create mode 100644 test/pattern/namespaces.pat create mode 100644 test/pattern/namespaces.xml create mode 100644 test/pattern/simple.pat create mode 100644 test/pattern/simple.xml create mode 100644 test/pi.xml create mode 100644 test/pi2.xml create mode 100644 test/rdf1 create mode 100644 test/rdf2 create mode 100644 test/recurse/good.xml create mode 100644 test/recurse/goodattr.xml create mode 100644 test/recurse/lol1.xml create mode 100644 test/recurse/lol2.xml create mode 100644 test/recurse/lol3.dtd create mode 100644 test/recurse/lol3.xml create mode 100644 test/recurse/lol4.patch create mode 100644 test/recurse/lol4.xml create mode 100644 test/recurse/lol5.xml create mode 100644 test/recurse/lol6.xml create mode 100644 test/regexp/branch create mode 100644 test/regexp/bug316338 create mode 100644 test/regexp/bug420596 create mode 100644 test/regexp/content create mode 100644 test/regexp/hard create mode 100644 test/regexp/ncname create mode 100644 test/regexp/ranges create mode 100644 test/regexp/ranges2 create mode 100644 test/regexp/xpath create mode 100644 test/relaxng/302836.rng create mode 100644 test/relaxng/302836_0.xml create mode 100644 test/relaxng/307377.rng create mode 100644 test/relaxng/307377_0.xml create mode 100644 test/relaxng/307377_1.xml create mode 100644 test/relaxng/307377_2.xml create mode 100644 test/relaxng/492317.rng create mode 100644 test/relaxng/492317_0.xml create mode 100644 test/relaxng/492317_1.xml create mode 100644 test/relaxng/492317_2.xml create mode 100644 test/relaxng/558452.rng create mode 100644 test/relaxng/558452_0.xml create mode 100644 test/relaxng/558452_1.xml create mode 100644 test/relaxng/558452_2.xml create mode 100644 test/relaxng/558452_3.xml create mode 100644 test/relaxng/558452_4.xml create mode 100644 test/relaxng/595792-ext.rng create mode 100644 test/relaxng/595792.rng create mode 100644 test/relaxng/595792_0.xml create mode 100644 test/relaxng/OASIS/spectest.xml create mode 100644 test/relaxng/OpenDocumentSub.rng create mode 100644 test/relaxng/OpenDocumentSub_0.xml create mode 100644 test/relaxng/addressBook.rng create mode 100644 test/relaxng/choice0.rng create mode 100644 test/relaxng/choice0_0.xml create mode 100644 test/relaxng/choice0_1.xml create mode 100644 test/relaxng/choice0_2.xml create mode 100644 test/relaxng/choice0_3.xml create mode 100644 test/relaxng/choice0_4.xml create mode 100644 test/relaxng/choice0_5.xml create mode 100644 test/relaxng/choice0_6.xml create mode 100644 test/relaxng/choice0_7.xml create mode 100644 test/relaxng/choice0_8.xml create mode 100644 test/relaxng/compare0.rng create mode 100644 test/relaxng/compare0_0.xml create mode 100644 test/relaxng/comps.rng create mode 100644 test/relaxng/comps_0.xml create mode 100644 test/relaxng/demo.rng create mode 100644 test/relaxng/demo.xml create mode 100644 test/relaxng/demo2.rng create mode 100644 test/relaxng/demo3.rng create mode 100644 test/relaxng/docbook.rng create mode 100644 test/relaxng/docbook_0.xml create mode 100644 test/relaxng/empty0.rng create mode 100644 test/relaxng/empty0_0.xml create mode 100644 test/relaxng/empty1.rng create mode 100644 test/relaxng/empty1_0.xml create mode 100644 test/relaxng/empty1_1.xml create mode 100644 test/relaxng/inline.rng create mode 100644 test/relaxng/inline2.rng create mode 100644 test/relaxng/inline3.rng create mode 100644 test/relaxng/interleave0_0.rng create mode 100644 test/relaxng/interleave1_0.rng create mode 100644 test/relaxng/libvirt.rng create mode 100644 test/relaxng/libvirt_0.xml create mode 100644 test/relaxng/list.rng create mode 100644 test/relaxng/list_0.xml create mode 100644 test/relaxng/list_1.xml create mode 100644 test/relaxng/pattern1.rng create mode 100644 test/relaxng/pattern2.rng create mode 100644 test/relaxng/proofsystem.rng create mode 100644 test/relaxng/rngbug-001.ext create mode 100644 test/relaxng/rngbug-001.rng create mode 100644 test/relaxng/rngbug-001.xml create mode 100644 test/relaxng/spec.rng create mode 100644 test/relaxng/spec1.rng create mode 100644 test/relaxng/spec1_1.xml create mode 100644 test/relaxng/spec_0.xml create mode 100644 test/relaxng/table.rng create mode 100644 test/relaxng/testsuite.xml create mode 100644 test/relaxng/tutor10_1.rng create mode 100644 test/relaxng/tutor10_10.rng create mode 100644 test/relaxng/tutor10_10_1.xml create mode 100644 test/relaxng/tutor10_1_1.xml create mode 100644 test/relaxng/tutor10_1_2.xml create mode 100644 test/relaxng/tutor10_1_3.xml create mode 100644 test/relaxng/tutor10_1_4.xml create mode 100644 test/relaxng/tutor10_1_5.xml create mode 100644 test/relaxng/tutor10_1_6.xml create mode 100644 test/relaxng/tutor10_2.rng create mode 100644 test/relaxng/tutor10_2_1.xml create mode 100644 test/relaxng/tutor10_2_2.xml create mode 100644 test/relaxng/tutor10_2_3.xml create mode 100644 test/relaxng/tutor10_2_4.xml create mode 100644 test/relaxng/tutor10_3.rng create mode 100644 test/relaxng/tutor10_3_1.xml create mode 100644 test/relaxng/tutor10_4.rng create mode 100644 test/relaxng/tutor10_4_1.xml create mode 100644 test/relaxng/tutor10_5.rng create mode 100644 test/relaxng/tutor10_5_1.xml create mode 100644 test/relaxng/tutor10_6.rng create mode 100644 test/relaxng/tutor10_6_1.xml create mode 100644 test/relaxng/tutor10_7.rng create mode 100644 test/relaxng/tutor10_7_1.xml create mode 100644 test/relaxng/tutor10_7_2.xml create mode 100644 test/relaxng/tutor10_7_3.xml create mode 100644 test/relaxng/tutor10_8.rng create mode 100644 test/relaxng/tutor10_8_1.xml create mode 100644 test/relaxng/tutor10_8_2.xml create mode 100644 test/relaxng/tutor10_8_3.xml create mode 100644 test/relaxng/tutor10_9.rng create mode 100644 test/relaxng/tutor10_9_1.xml create mode 100644 test/relaxng/tutor11_1.rng create mode 100644 test/relaxng/tutor11_1_1.xml create mode 100644 test/relaxng/tutor11_1_2.xml create mode 100644 test/relaxng/tutor11_1_3.xml create mode 100644 test/relaxng/tutor11_2.rng create mode 100644 test/relaxng/tutor11_2_1.xml create mode 100644 test/relaxng/tutor11_2_2.xml create mode 100644 test/relaxng/tutor11_2_3.xml create mode 100644 test/relaxng/tutor11_3.rng create mode 100644 test/relaxng/tutor11_3_1.xml create mode 100644 test/relaxng/tutor11_4.rng create mode 100644 test/relaxng/tutor11_4_1.xml create mode 100644 test/relaxng/tutor12_1.rng create mode 100644 test/relaxng/tutor12_1_1.xml create mode 100644 test/relaxng/tutor13_1.rng create mode 100644 test/relaxng/tutor13_1_1.xml create mode 100644 test/relaxng/tutor14_1.rng create mode 100644 test/relaxng/tutor1_1.rng create mode 100644 test/relaxng/tutor1_1_1.xml create mode 100644 test/relaxng/tutor1_2.rng create mode 100644 test/relaxng/tutor1_2_1.xml create mode 100644 test/relaxng/tutor1_3.rng create mode 100644 test/relaxng/tutor1_3_1.xml create mode 100644 test/relaxng/tutor1_4.rng create mode 100644 test/relaxng/tutor1_4_1.xml create mode 100644 test/relaxng/tutor2_1.rng create mode 100644 test/relaxng/tutor2_1_1.xml create mode 100644 test/relaxng/tutor3_1.rng create mode 100644 test/relaxng/tutor3_1_1.xml create mode 100644 test/relaxng/tutor3_1_2.xml create mode 100644 test/relaxng/tutor3_2.rng create mode 100644 test/relaxng/tutor3_2_1.xml create mode 100644 test/relaxng/tutor3_3.rng create mode 100644 test/relaxng/tutor3_3_1.xml create mode 100644 test/relaxng/tutor3_4.rng create mode 100644 test/relaxng/tutor3_4_1.xml create mode 100644 test/relaxng/tutor3_5.rng create mode 100644 test/relaxng/tutor3_5_1.xml create mode 100644 test/relaxng/tutor3_5_2.xml create mode 100644 test/relaxng/tutor3_6.rng create mode 100644 test/relaxng/tutor3_6_1.xml create mode 100644 test/relaxng/tutor3_7.rng create mode 100644 test/relaxng/tutor3_7_1.xml create mode 100644 test/relaxng/tutor3_8.rng create mode 100644 test/relaxng/tutor3_8_1.xml create mode 100644 test/relaxng/tutor3_9.rng create mode 100644 test/relaxng/tutor3_9_1.xml create mode 100644 test/relaxng/tutor4_1.rng create mode 100644 test/relaxng/tutor4_1_1.xml create mode 100644 test/relaxng/tutor4_2.rng create mode 100644 test/relaxng/tutor4_2_1.xml create mode 100644 test/relaxng/tutor4_3.rng create mode 100644 test/relaxng/tutor4_3_1.xml create mode 100644 test/relaxng/tutor4_3_2.xml create mode 100644 test/relaxng/tutor4_3_3.xml create mode 100644 test/relaxng/tutor4_3_4.xml create mode 100644 test/relaxng/tutor4_3_5.xml create mode 100644 test/relaxng/tutor4_3_6.xml create mode 100644 test/relaxng/tutor4_4.rng create mode 100644 test/relaxng/tutor4_4_1.xml create mode 100644 test/relaxng/tutor5_1.rng create mode 100644 test/relaxng/tutor5_1_1.xml create mode 100644 test/relaxng/tutor5_2.rng create mode 100644 test/relaxng/tutor5_2_1.xml create mode 100644 test/relaxng/tutor5_3.rng create mode 100644 test/relaxng/tutor5_3_1.xml create mode 100644 test/relaxng/tutor5_4.rng create mode 100644 test/relaxng/tutor5_4_1.xml create mode 100644 test/relaxng/tutor5_5.rng create mode 100644 test/relaxng/tutor6_1.rng create mode 100644 test/relaxng/tutor6_1_1.xml create mode 100644 test/relaxng/tutor6_1_2.xml create mode 100644 test/relaxng/tutor6_1_3.xml create mode 100644 test/relaxng/tutor6_1_4.xml create mode 100644 test/relaxng/tutor6_1_5.xml create mode 100644 test/relaxng/tutor6_2.rng create mode 100644 test/relaxng/tutor6_2_1.xml create mode 100644 test/relaxng/tutor6_2_2.xml create mode 100644 test/relaxng/tutor6_2_3.xml create mode 100644 test/relaxng/tutor6_2_4.xml create mode 100644 test/relaxng/tutor6_3.rng create mode 100644 test/relaxng/tutor6_3_1.xml create mode 100644 test/relaxng/tutor7_1.rng create mode 100644 test/relaxng/tutor7_1_1.xml create mode 100644 test/relaxng/tutor7_1_2.xml create mode 100644 test/relaxng/tutor7_1_3.xml create mode 100644 test/relaxng/tutor7_1_4.xml create mode 100644 test/relaxng/tutor7_2.rng create mode 100644 test/relaxng/tutor7_2_1.xml create mode 100644 test/relaxng/tutor7_2_2.xml create mode 100644 test/relaxng/tutor7_2_3.xml create mode 100644 test/relaxng/tutor7_2_4.xml create mode 100644 test/relaxng/tutor7_3.rng create mode 100644 test/relaxng/tutor7_3_1.xml create mode 100644 test/relaxng/tutor7_3_2.xml create mode 100644 test/relaxng/tutor7_3_3.xml create mode 100644 test/relaxng/tutor7_3_4.xml create mode 100644 test/relaxng/tutor7_3_5.xml create mode 100644 test/relaxng/tutor8_1.rng create mode 100644 test/relaxng/tutor8_1_1.xml create mode 100644 test/relaxng/tutor8_1_2.xml create mode 100644 test/relaxng/tutor8_2.rng create mode 100644 test/relaxng/tutor8_2_1.xml create mode 100644 test/relaxng/tutor8_2_2.xml create mode 100644 test/relaxng/tutor8_2_3.xml create mode 100644 test/relaxng/tutor8_2_4.xml create mode 100644 test/relaxng/tutor8_2_5.xml create mode 100644 test/relaxng/tutor8_2_6.xml create mode 100644 test/relaxng/tutor8_3.rng create mode 100644 test/relaxng/tutor8_3_1.xml create mode 100644 test/relaxng/tutor9_1.rng create mode 100644 test/relaxng/tutor9_10.rng create mode 100644 test/relaxng/tutor9_10_1.xml create mode 100644 test/relaxng/tutor9_11.rng create mode 100644 test/relaxng/tutor9_11_1.xml create mode 100644 test/relaxng/tutor9_12.rng create mode 100644 test/relaxng/tutor9_12_1.xml create mode 100644 test/relaxng/tutor9_1_1.xml create mode 100644 test/relaxng/tutor9_2.rng create mode 100644 test/relaxng/tutor9_2_1.xml create mode 100644 test/relaxng/tutor9_2_2.xml create mode 100644 test/relaxng/tutor9_3.rng create mode 100644 test/relaxng/tutor9_3_1.xml create mode 100644 test/relaxng/tutor9_3_2.xml create mode 100644 test/relaxng/tutor9_4.rng create mode 100644 test/relaxng/tutor9_4_1.xml create mode 100644 test/relaxng/tutor9_4_2.xml create mode 100644 test/relaxng/tutor9_5.rng create mode 100644 test/relaxng/tutor9_5_1.xml create mode 100644 test/relaxng/tutor9_5_2.xml create mode 100644 test/relaxng/tutor9_5_3.xml create mode 100644 test/relaxng/tutor9_6.rng create mode 100644 test/relaxng/tutor9_6_1.xml create mode 100644 test/relaxng/tutor9_6_2.xml create mode 100644 test/relaxng/tutor9_6_3.xml create mode 100644 test/relaxng/tutor9_7.rng create mode 100644 test/relaxng/tutor9_7_1.xml create mode 100644 test/relaxng/tutor9_8.rng create mode 100644 test/relaxng/tutor9_8_1.xml create mode 100644 test/relaxng/tutor9_9.rng create mode 100644 test/relaxng/tutor9_9_1.xml create mode 100644 test/relaxng/tutorA.rng create mode 100644 test/schemas/570702_0.xml create mode 100644 test/schemas/570702_0.xsd create mode 100644 test/schemas/579746_0.xml create mode 100644 test/schemas/579746_0.xsd create mode 100644 test/schemas/579746_1.xml create mode 100644 test/schemas/579746_1.xsd create mode 100644 test/schemas/579746_2.xml create mode 100644 test/schemas/579746_3.xml create mode 100644 test/schemas/579746_4.xml create mode 100644 test/schemas/579746_5.xml create mode 100644 test/schemas/582887-attribute.xsd create mode 100644 test/schemas/582887-common.xsd create mode 100644 test/schemas/582887-element.xsd create mode 100644 test/schemas/582887_0.xml create mode 100644 test/schemas/582887_0.xsd create mode 100644 test/schemas/582906-1-common.xsd create mode 100644 test/schemas/582906-1-prog1.xsd create mode 100644 test/schemas/582906-1-prog2-include.xsd create mode 100644 test/schemas/582906-1-prog2.xsd create mode 100644 test/schemas/582906-1_0.xml create mode 100644 test/schemas/582906-1_0.xsd create mode 100644 test/schemas/582906-2-common.xsd create mode 100644 test/schemas/582906-2-prog1.xsd create mode 100644 test/schemas/582906-2-prog2-include.xsd create mode 100644 test/schemas/582906-2-prog2.xsd create mode 100644 test/schemas/582906-2_0.xml create mode 100644 test/schemas/582906-2_0.xsd create mode 100644 test/schemas/all.xsd create mode 100644 test/schemas/all1_0.xml create mode 100644 test/schemas/all1_0.xsd create mode 100644 test/schemas/all_0.xml create mode 100644 test/schemas/all_0.xsd create mode 100644 test/schemas/all_1.xml create mode 100644 test/schemas/all_1.xsd create mode 100644 test/schemas/all_2.xml create mode 100644 test/schemas/all_2.xsd create mode 100644 test/schemas/all_3.xml create mode 100644 test/schemas/all_4.xml create mode 100644 test/schemas/all_5.xml create mode 100644 test/schemas/all_6.xml create mode 100644 test/schemas/all_7.xml create mode 100644 test/schemas/allsg_0.xml create mode 100644 test/schemas/allsg_0.xsd create mode 100644 test/schemas/allsg_1.xml create mode 100644 test/schemas/allsg_2.xml create mode 100644 test/schemas/allsg_3.xml create mode 100644 test/schemas/allsg_4.xml create mode 100644 test/schemas/allsg_5.xml create mode 100644 test/schemas/annot-err_0.xml create mode 100644 test/schemas/annot-err_0.xsd create mode 100644 test/schemas/any1_0.xml create mode 100644 test/schemas/any1_0.xsd create mode 100644 test/schemas/any2_0.xml create mode 100644 test/schemas/any2_0.xsd create mode 100644 test/schemas/any3_0.xml create mode 100644 test/schemas/any3_0.xsd create mode 100644 test/schemas/any4_0.xml create mode 100644 test/schemas/any4_0.xsd create mode 100644 test/schemas/any5_0.xml create mode 100644 test/schemas/any5_0.xsd create mode 100644 test/schemas/any5_1.xml create mode 100644 test/schemas/any5_1.xsd create mode 100644 test/schemas/any5_2.xml create mode 100644 test/schemas/any5_3.xml create mode 100644 test/schemas/any5_4.xml create mode 100644 test/schemas/any5_5.xml create mode 100644 test/schemas/any5_6.xml create mode 100755 test/schemas/any6_0.xml create mode 100644 test/schemas/any6_1.xsd create mode 100644 test/schemas/any6_2.xsd create mode 100755 test/schemas/any7_0.xml create mode 100755 test/schemas/any7_1.xml create mode 100755 test/schemas/any7_1.xsd create mode 100644 test/schemas/any7_2.xml create mode 100755 test/schemas/any7_2.xsd create mode 100644 test/schemas/any8_0.xml create mode 100644 test/schemas/any8_1.xsd create mode 100644 test/schemas/anyAttr-derive-errors1_0.xml create mode 100644 test/schemas/anyAttr-derive-errors1_0.xsd create mode 100644 test/schemas/anyAttr-derive1_0.xml create mode 100644 test/schemas/anyAttr-derive1_0.xsd create mode 100644 test/schemas/anyAttr-derive2_0.xml create mode 100644 test/schemas/anyAttr-derive2_0.xsd create mode 100644 test/schemas/anyAttr-errors1_0.xml create mode 100644 test/schemas/anyAttr-processContents-err1_0.xml create mode 100644 test/schemas/anyAttr-processContents-err1_0.xsd create mode 100644 test/schemas/anyAttr-processContents1_0.xml create mode 100644 test/schemas/anyAttr-processContents1_0.xsd create mode 100644 test/schemas/anyAttr.importA.1_0.xsd create mode 100644 test/schemas/anyAttr.importB.1_0.xsd create mode 100644 test/schemas/anyAttr1_0.xml create mode 100644 test/schemas/anyAttr1_0.xsd create mode 100644 test/schemas/attr0_0.xml create mode 100644 test/schemas/attr0_0.xsd create mode 100644 test/schemas/attruse_0_0.xml create mode 100644 test/schemas/attruse_0_0.xsd create mode 100644 test/schemas/attruse_0_1.xml create mode 100644 test/schemas/attruse_0_2.xml create mode 100644 test/schemas/bug141312_0.xml create mode 100644 test/schemas/bug141312_0.xsd create mode 100644 test/schemas/bug141333.xml create mode 100644 test/schemas/bug141333.xsd create mode 100644 test/schemas/bug141333_0.xml create mode 100644 test/schemas/bug141333_0.xsd create mode 100644 test/schemas/bug143951.imp create mode 100644 test/schemas/bug143951_0.xml create mode 100644 test/schemas/bug143951_0.xsd create mode 100644 test/schemas/bug145246.xsd.imp create mode 100644 test/schemas/bug145246_0.xml create mode 100644 test/schemas/bug145246_0.xsd create mode 100755 test/schemas/bug152470_1.xml create mode 100755 test/schemas/bug152470_1.xsd create mode 100644 test/schemas/bug167754_0.xml create mode 100644 test/schemas/bug167754_0.xsd create mode 100644 test/schemas/bug303566_1.xml create mode 100644 test/schemas/bug303566_1.xsd create mode 100644 test/schemas/bug306806_0.xml create mode 100644 test/schemas/bug306806_1.xsd create mode 100644 test/schemas/bug309338_0.xml create mode 100644 test/schemas/bug309338_1.xsd create mode 100644 test/schemas/bug310264_0.xml create mode 100644 test/schemas/bug310264_0.xsd create mode 100644 test/schemas/bug312957_0.xml create mode 100644 test/schemas/bug312957_1.xsd create mode 100644 test/schemas/bug313982_0.xml create mode 100644 test/schemas/bug313982_0.xsd create mode 100644 test/schemas/bug321475_0.xml create mode 100644 test/schemas/bug321475_1.xsd create mode 100644 test/schemas/bug322411_0.xml create mode 100644 test/schemas/bug322411_1.xsd create mode 100644 test/schemas/bug323510_0.xml create mode 100644 test/schemas/bug323510_1.xsd create mode 100644 test/schemas/bug455953_0.xml create mode 100644 test/schemas/bug455953_0.xsd create mode 100644 test/schemas/changelog093_0.xml create mode 100644 test/schemas/changelog093_1.xsd create mode 100644 test/schemas/choice_0.xml create mode 100644 test/schemas/choice_0.xsd create mode 100644 test/schemas/choice_1.xml create mode 100644 test/schemas/choice_1.xsd create mode 100644 test/schemas/choice_2.xml create mode 100644 test/schemas/choice_2.xsd create mode 100644 test/schemas/choice_3.xml create mode 100644 test/schemas/choice_4.xml create mode 100644 test/schemas/choice_5.xml create mode 100644 test/schemas/choice_6.xml create mode 100644 test/schemas/complex-type-extension_0.xml create mode 100644 test/schemas/complex-type-extension_0.xsd create mode 100644 test/schemas/cos-ct-extends-1-3_0.xml create mode 100644 test/schemas/cos-ct-extends-1-3_0.xsd create mode 100644 test/schemas/cos-st-restricts-1-2-err_0.xml create mode 100644 test/schemas/cos-st-restricts-1-2-err_0.xsd create mode 100644 test/schemas/ct-sc-nobase_0.xml create mode 100644 test/schemas/ct-sc-nobase_0.xsd create mode 100644 test/schemas/date_0.xml create mode 100644 test/schemas/date_0.xsd create mode 100644 test/schemas/decimal-1.xml create mode 100644 test/schemas/decimal-1.xsd create mode 100644 test/schemas/decimal-1_0.xml create mode 100644 test/schemas/decimal-1_1.xsd create mode 100644 test/schemas/decimal-2_0.xml create mode 100644 test/schemas/decimal-2_1.xsd create mode 100644 test/schemas/decimal-3_0.xml create mode 100644 test/schemas/decimal-3_1.xsd create mode 100644 test/schemas/derivation-ok-extension-err_0.xml create mode 100644 test/schemas/derivation-ok-extension-err_0.xsd create mode 100644 test/schemas/derivation-ok-extension_0.xml create mode 100644 test/schemas/derivation-ok-extension_0.xsd create mode 100644 test/schemas/derivation-ok-restriction-2-1-1_0.xml create mode 100644 test/schemas/derivation-ok-restriction-2-1-1_0.xsd create mode 100644 test/schemas/derivation-ok-restriction-4-1-err_0.xml create mode 100644 test/schemas/derivation-ok-restriction-4-1-err_0.xsd create mode 100644 test/schemas/derivation-restriction-anyAttr_0.xml create mode 100644 test/schemas/derivation-restriction-anyAttr_0.xsd create mode 100644 test/schemas/derivation-restriction-anyType.xml create mode 100644 test/schemas/derivation-restriction-anyType.xsd create mode 100644 test/schemas/deter0_0.xml create mode 100644 test/schemas/deter0_0.xsd create mode 100644 test/schemas/dur_0.xml create mode 100644 test/schemas/dur_0.xsd create mode 100644 test/schemas/elem0_0.xml create mode 100644 test/schemas/elem0_0.xsd create mode 100644 test/schemas/element-err_0.xml create mode 100644 test/schemas/element-err_0.xsd create mode 100644 test/schemas/element-minmax-err_0.xml create mode 100644 test/schemas/element-minmax-err_0.xsd create mode 100644 test/schemas/empty-value_0.xml create mode 100644 test/schemas/empty-value_1.xml create mode 100644 test/schemas/empty-value_1.xsd create mode 100644 test/schemas/empty_0.xml create mode 100644 test/schemas/empty_0.xsd create mode 100644 test/schemas/empty_1.xsd create mode 100644 test/schemas/extension0_0.xml create mode 100644 test/schemas/extension0_0.xsd create mode 100644 test/schemas/extension1_0.xml create mode 100644 test/schemas/extension1_0.xsd create mode 100644 test/schemas/extension1_1.xml create mode 100644 test/schemas/extension1_2.xml create mode 100644 test/schemas/extension2_0.xml create mode 100644 test/schemas/extension2_1.xsd create mode 100644 test/schemas/facet-unionST-err1_0.xml create mode 100644 test/schemas/facet-unionST-err1_0.xsd create mode 100644 test/schemas/facet-whiteSpace_0.xml create mode 100644 test/schemas/facet-whiteSpace_0.xsd create mode 100644 test/schemas/group0_0.xml create mode 100644 test/schemas/group0_0.xsd create mode 100644 test/schemas/hexbinary_0.xml create mode 100644 test/schemas/hexbinary_0.xsd create mode 100644 test/schemas/hexbinary_1.xml create mode 100644 test/schemas/idc-keyref-err1_0.xml create mode 100644 test/schemas/idc-keyref-err1_1.xsd create mode 100644 test/schemas/import-455953.xsd create mode 100755 test/schemas/import-bad-1_0.imp create mode 100644 test/schemas/import0_0.imp create mode 100644 test/schemas/import0_0.xml create mode 100644 test/schemas/import0_0.xsd create mode 100644 test/schemas/import1_0.imp create mode 100644 test/schemas/import1_0.xml create mode 100644 test/schemas/import1_0.xsd create mode 100644 test/schemas/import1_0b.imp create mode 100644 test/schemas/import2_0.imp create mode 100644 test/schemas/import2_0.xml create mode 100644 test/schemas/import2_0.xsd create mode 100644 test/schemas/include1_0.inc create mode 100644 test/schemas/include1_0.xml create mode 100644 test/schemas/include1_0.xsd create mode 100644 test/schemas/include2_0.inc create mode 100644 test/schemas/include2_0.xml create mode 100644 test/schemas/include2_0.xsd create mode 100644 test/schemas/include3_0.inc create mode 100644 test/schemas/include3_0.xml create mode 100644 test/schemas/include3_0.xsd create mode 100644 test/schemas/item_0.xml create mode 100644 test/schemas/item_0.xsd create mode 100644 test/schemas/item_1.xsd create mode 100644 test/schemas/length1_0.xml create mode 100644 test/schemas/length1_0.xsd create mode 100644 test/schemas/length2_0.xml create mode 100644 test/schemas/length2_0.xsd create mode 100644 test/schemas/length3_0.xml create mode 100644 test/schemas/length3_0.xsd create mode 100644 test/schemas/list0_0.xml create mode 100644 test/schemas/list0_0.xsd create mode 100644 test/schemas/list0_1.xml create mode 100644 test/schemas/list0_1.xsd create mode 100644 test/schemas/list0_2.xml create mode 100644 test/schemas/mixed0_0.xml create mode 100644 test/schemas/mixed0_0.xsd create mode 100644 test/schemas/mixed1_0.xml create mode 100644 test/schemas/mixed1_0.xsd create mode 100644 test/schemas/ns0_0.xml create mode 100644 test/schemas/ns0_0.xsd create mode 100644 test/schemas/ns0_1.xml create mode 100644 test/schemas/ns0_1.xsd create mode 100644 test/schemas/ns0_2.xml create mode 100644 test/schemas/ns0_3.xml create mode 100644 test/schemas/ns0_4.xml create mode 100644 test/schemas/ns1_0.xml create mode 100644 test/schemas/ns1_0.xsd create mode 100644 test/schemas/ns2_0.xml create mode 100644 test/schemas/ns2_0.xsd create mode 100644 test/schemas/nvdcve_0.xml create mode 100644 test/schemas/nvdcve_0.xsd create mode 100644 test/schemas/po0_0.xml create mode 100644 test/schemas/po0_0.xsd create mode 100644 test/schemas/po1_0.xml create mode 100644 test/schemas/po1_0.xsd create mode 100644 test/schemas/poschargrp0_0.xml create mode 100644 test/schemas/poschargrp0_0.xsd create mode 100644 test/schemas/regexp-char-ref_0.xml create mode 100644 test/schemas/regexp-char-ref_0.xsd create mode 100644 test/schemas/regexp-char-ref_1.xsd create mode 100644 test/schemas/restrict-CT-attr-ref_0.xml create mode 100644 test/schemas/restrict-CT-attr-ref_0.xsd create mode 100644 test/schemas/restriction-attr1_0.xml create mode 100644 test/schemas/restriction-attr1_0.xsd create mode 100644 test/schemas/restriction-enum-1_0.xml create mode 100644 test/schemas/restriction-enum-1_1.xsd create mode 100644 test/schemas/restriction0_0.xml create mode 100644 test/schemas/restriction0_0.xsd create mode 100644 test/schemas/scc-no-xmlns_0.xml create mode 100644 test/schemas/scc-no-xmlns_0.xsd create mode 100644 test/schemas/scc-no-xsi_0.xml create mode 100644 test/schemas/scc-no-xsi_0.xsd create mode 100644 test/schemas/seq-dubl-elem1_0.xml create mode 100644 test/schemas/seq-dubl-elem1_0.xsd create mode 100644 test/schemas/seq0_0.xml create mode 100644 test/schemas/seq0_0.xsd create mode 100644 test/schemas/src-attribute1_0.xml create mode 100644 test/schemas/src-attribute1_0.xsd create mode 100644 test/schemas/src-attribute2_0.xml create mode 100644 test/schemas/src-attribute2_0.xsd create mode 100644 test/schemas/src-attribute3-1_0.xml create mode 100644 test/schemas/src-attribute3-1_0.xsd create mode 100644 test/schemas/src-attribute3-2-form_0.xml create mode 100644 test/schemas/src-attribute3-2-form_0.xsd create mode 100644 test/schemas/src-attribute3-2-st_0.xml create mode 100644 test/schemas/src-attribute3-2-st_0.xsd create mode 100644 test/schemas/src-attribute3-2-type_0.xml create mode 100644 test/schemas/src-attribute3-2-type_0.xsd create mode 100644 test/schemas/src-attribute4_0.xml create mode 100644 test/schemas/src-attribute4_0.xsd create mode 100644 test/schemas/src-element1_0.xml create mode 100644 test/schemas/src-element1_0.xsd create mode 100644 test/schemas/src-element2-1_0.xml create mode 100644 test/schemas/src-element2-1_0.xsd create mode 100644 test/schemas/src-element2-2_0.xml create mode 100644 test/schemas/src-element2-2_0.xsd create mode 100644 test/schemas/src-element3_0.xml create mode 100644 test/schemas/src-element3_0.xsd create mode 100644 test/schemas/subst-group-1_0.xsd create mode 100644 test/schemas/subst-group-1_1.xml create mode 100644 test/schemas/union2_1.xml create mode 100644 test/schemas/union2_1.xsd create mode 100644 test/schemas/union_0_0.xml create mode 100644 test/schemas/union_0_0.xsd create mode 100644 test/schemas/vdv-complexTypes.xsd create mode 100644 test/schemas/vdv-first0_0.xml create mode 100644 test/schemas/vdv-first0_0.xsd create mode 100644 test/schemas/vdv-first1_0.xml create mode 100644 test/schemas/vdv-first1_0.xsd create mode 100644 test/schemas/vdv-first2_0.xml create mode 100644 test/schemas/vdv-first2_0.xsd create mode 100644 test/schemas/vdv-first3_0.xml create mode 100644 test/schemas/vdv-first3_0.xsd create mode 100644 test/schemas/vdv-first4_0.xml create mode 100755 test/schemas/vdv-first4_0.xsd create mode 100644 test/schemas/vdv-first4_1.xml create mode 100644 test/schemas/vdv-first4_2.xml create mode 100644 test/schemas/vdv-first5_0.xml create mode 100644 test/schemas/vdv-first5_0.xsd create mode 100644 test/schemas/vdv-simpleTypes.xsd create mode 100644 test/schemas/xml.xsd create mode 100644 test/schemas/xsd-list-itemType_0.xml create mode 100644 test/schemas/xsd-list-itemType_0.xsd create mode 100644 test/schemas/xsd-simpleType-varieties_0.xml create mode 100644 test/schemas/xsd-simpleType-varieties_0.xsd create mode 100644 test/schematron/zvon1.sct create mode 100644 test/schematron/zvon10.sct create mode 100644 test/schematron/zvon10_0.xml create mode 100644 test/schematron/zvon10_1.xml create mode 100644 test/schematron/zvon11.sct create mode 100644 test/schematron/zvon11_0.xml create mode 100644 test/schematron/zvon11_1.xml create mode 100644 test/schematron/zvon11_2.xml create mode 100644 test/schematron/zvon11_3.xml create mode 100644 test/schematron/zvon12.sct create mode 100644 test/schematron/zvon12_0.xml create mode 100644 test/schematron/zvon12_1.xml create mode 100644 test/schematron/zvon12_2.xml create mode 100644 test/schematron/zvon13.sct create mode 100644 test/schematron/zvon13_0.xml create mode 100644 test/schematron/zvon13_1.xml create mode 100644 test/schematron/zvon13_2.xml create mode 100644 test/schematron/zvon14.sct create mode 100644 test/schematron/zvon14_0.xml create mode 100644 test/schematron/zvon15.sct create mode 100644 test/schematron/zvon15_0.xml create mode 100644 test/schematron/zvon1_0.xml create mode 100644 test/schematron/zvon1_1.xml create mode 100644 test/schematron/zvon2.sct create mode 100644 test/schematron/zvon2_0.xml create mode 100644 test/schematron/zvon2_1.xml create mode 100644 test/schematron/zvon2_2.xml create mode 100644 test/schematron/zvon3.sct create mode 100644 test/schematron/zvon3_0.xml create mode 100644 test/schematron/zvon4.sct create mode 100644 test/schematron/zvon4_0.xml create mode 100644 test/schematron/zvon4_1.xml create mode 100644 test/schematron/zvon5.sct create mode 100644 test/schematron/zvon5_0.xml create mode 100644 test/schematron/zvon5_1.xml create mode 100644 test/schematron/zvon5_2.xml create mode 100644 test/schematron/zvon6.sct create mode 100644 test/schematron/zvon6_0.xml create mode 100644 test/schematron/zvon6_1.xml create mode 100644 test/schematron/zvon6_2.xml create mode 100644 test/schematron/zvon7.sct create mode 100644 test/schematron/zvon7_0.xml create mode 100644 test/schematron/zvon7_1.xml create mode 100644 test/schematron/zvon7_2.xml create mode 100644 test/schematron/zvon7_3.xml create mode 100644 test/schematron/zvon7_4.xml create mode 100644 test/schematron/zvon8.sct create mode 100644 test/schematron/zvon8_0.xml create mode 100644 test/schematron/zvon8_1.xml create mode 100644 test/schematron/zvon8_2.xml create mode 100644 test/schematron/zvon9.sct create mode 100644 test/schematron/zvon9_0.xml create mode 100644 test/schematron/zvon9_1.xml create mode 100644 test/schematron/zvon9_2.xml create mode 100644 test/scripts/base.script create mode 100644 test/scripts/base.xml create mode 100644 test/scripts/base2.script create mode 100644 test/scripts/base2.xml create mode 100644 test/scripts/set1.script create mode 100644 test/scripts/set1.xml create mode 100644 test/scripts/set3.script create mode 100644 test/scripts/set3.xml create mode 100644 test/scripts/set4.script create mode 100644 test/scripts/set4.xml create mode 100644 test/slashdot.rdf create mode 100644 test/slashdot.xml create mode 100644 test/slashdot16.xml create mode 100644 test/svg1 create mode 100644 test/svg2 create mode 100644 test/svg3 create mode 100644 test/threads/a.example.org.xml create mode 100644 test/threads/a/a.dtd create mode 100644 test/threads/abc.dtd create mode 100644 test/threads/abc.xml create mode 100644 test/threads/acb.dtd create mode 100644 test/threads/acb.xml create mode 100644 test/threads/b.example.org.xml create mode 100644 test/threads/b/b.dtd create mode 100644 test/threads/bac.dtd create mode 100644 test/threads/bac.xml create mode 100644 test/threads/bca.dtd create mode 100644 test/threads/bca.xml create mode 100644 test/threads/c.example.org.xml create mode 100644 test/threads/c/c.dtd create mode 100644 test/threads/cab.dtd create mode 100644 test/threads/cab.xml create mode 100644 test/threads/cba.dtd create mode 100644 test/threads/cba.xml create mode 100644 test/threads/complex.xml create mode 100644 test/threads/example.org.xml create mode 100644 test/threads/invalid.xml create mode 100644 test/title.xml create mode 100644 test/tstblanks.xml create mode 100644 test/utf16bebom.xml create mode 100644 test/utf16bom.xml create mode 100644 test/utf16lebom.xml create mode 100644 test/utf8bom.xml create mode 100644 test/valid/127772.xml create mode 100644 test/valid/REC-xml-19980210.xml create mode 100644 test/valid/UTF16Entity.xml create mode 100644 test/valid/dia.xml create mode 100644 test/valid/dtds/127772.dtd create mode 100644 test/valid/dtds/NewsMLv1.0.dtd create mode 100644 test/valid/dtds/destfoo.ent create mode 100644 test/valid/dtds/external.ent create mode 100644 test/valid/dtds/external2.ent create mode 100644 test/valid/dtds/nitf-2-5.dtd create mode 100644 test/valid/dtds/notes.dtd create mode 100644 test/valid/dtds/objednavka.dtd create mode 100755 test/valid/dtds/spec.dtd create mode 100644 test/valid/dtds/utf16b.ent create mode 100644 test/valid/dtds/utf16l.ent create mode 100644 test/valid/dtds/xhtml-lat1.ent create mode 100644 test/valid/dtds/xhtml-special.ent create mode 100644 test/valid/dtds/xhtml-symbol.ent create mode 100644 test/valid/dtds/xhtml.cat create mode 100644 test/valid/dtds/xhtml1-frameset.dtd create mode 100644 test/valid/dtds/xhtml1-strict.dtd create mode 100644 test/valid/dtds/xhtml1-transitional.dtd create mode 100644 test/valid/dtds/xhtml1.dcl create mode 100644 test/valid/dtds/xmlspec.dtd create mode 100644 test/valid/id1.xml create mode 100644 test/valid/id2.xml create mode 100644 test/valid/id3.xml create mode 100644 test/valid/index.xml create mode 100644 test/valid/mixed_ns.xml create mode 100644 test/valid/notes.xml create mode 100644 test/valid/ns.xml create mode 100644 test/valid/ns2.xml create mode 100644 test/valid/objednavka.xml create mode 100644 test/valid/rss.xml create mode 100644 test/valid/t10.xml create mode 100644 test/valid/t11.xml create mode 100644 test/valid/t4.dtd create mode 100644 test/valid/t4.xml create mode 100644 test/valid/t4a.dtd create mode 100644 test/valid/t4a.xml create mode 100644 test/valid/t6.dtd create mode 100644 test/valid/t6.xml create mode 100644 test/valid/t8.xml create mode 100644 test/valid/t8a.xml create mode 100644 test/valid/t9.xml create mode 100644 test/valid/t9a.xml create mode 100644 test/valid/xhtml1.xhtml create mode 100644 test/valid/xlink.xml create mode 100644 test/wap.xml create mode 100644 test/warning/ent8 create mode 100644 test/warning/ent9 create mode 100644 test/winblanks.xml create mode 100644 test/wml.xml create mode 100644 test/xhtml1 create mode 100644 test/xhtmlcomp create mode 100644 test/xml1 create mode 100644 test/xml2 create mode 100644 test/xmlid/id_err1.xml create mode 100644 test/xmlid/id_err2.xml create mode 100644 test/xmlid/id_tst1.xml create mode 100644 test/xmlid/id_tst2.xml create mode 100644 test/xmlid/id_tst3.xml create mode 100644 test/xmlid/id_tst4.xml create mode 100644 test/xsdtest/xsdtest.xml create mode 100644 test/xsdtest/xsdtest.xsl create mode 100644 test/xsdtest/xsdtestsuite.xml create mode 100644 testlimits.c create mode 100644 timsort.h delete mode 100644 win32/.cvsignore (limited to 'testRegexp.c') diff --git a/DOCBparser.c b/DOCBparser.c index 3573743..f12511b 100644 --- a/DOCBparser.c +++ b/DOCBparser.c @@ -53,7 +53,7 @@ docbEncodeEntities(unsigned char *out ATTRIBUTE_UNUSED, /** * docbParseDocument: * @ctxt: an SGML parser context - * + * * parse an SGML document (and build a tree if using the standard SAX * interface). * @@ -163,12 +163,12 @@ docbCreatePushParserCtxt(docbSAXHandlerPtr sax ATTRIBUTE_UNUSED, * @cur: a pointer to an array of xmlChar * @encoding: a free form C string describing the SGML document encoding, or NULL * @sax: the SAX handler block - * @userData: if using SAX, this pointer will be provided on callbacks. + * @userData: if using SAX, this pointer will be provided on callbacks. * * parse an SGML in-memory document and build a tree. * It use the given SAX function block to handle the parsing callback. * If sax is NULL, fallback to the default DOM tree building routines. - * + * * Returns the resulting document tree */ @@ -196,7 +196,7 @@ docbSAXParseDoc(xmlChar * cur ATTRIBUTE_UNUSED, * @encoding: a free form C string describing the SGML document encoding, or NULL * * parse an SGML in-memory document and build a tree. - * + * * Returns the resulting document tree */ @@ -221,7 +221,7 @@ docbParseDoc(xmlChar * cur ATTRIBUTE_UNUSED, * @filename: the filename * @encoding: the SGML document encoding, or NULL * - * Create a parser context for a file content. + * Create a parser context for a file content. * Automatic support for ZLIB/Compress compressed document is provided * by default if found at compile-time. * @@ -247,7 +247,7 @@ docbCreateFileParserCtxt(const char *filename ATTRIBUTE_UNUSED, * @filename: the filename * @encoding: a free form C string describing the SGML document encoding, or NULL * @sax: the SAX handler block - * @userData: if using SAX, this pointer will be provided on callbacks. + * @userData: if using SAX, this pointer will be provided on callbacks. * * parse an SGML file and build a tree. Automatic support for ZLIB/Compress * compressed document is provided by default if found at compile-time. diff --git a/HTMLparser.c b/HTMLparser.c index 66ff17b..a533f37 100644 --- a/HTMLparser.c +++ b/HTMLparser.c @@ -44,6 +44,9 @@ #include #include +#include "buf.h" +#include "enc.h" + #define HTML_MAX_NAMELEN 1000 #define HTML_PARSER_BIG_BUFFER_SIZE 1000 #define HTML_PARSER_BUFFER_SIZE 100 @@ -1082,7 +1085,7 @@ static const char * const htmlStartClose[] = { "div", "p", "head", NULL, "noscript", "p", NULL, "center", "font", "b", "i", "p", "head", NULL, -"a", "a", NULL, +"a", "a", "head", NULL, "caption", "p", NULL, "colgroup", "caption", "colgroup", "col", "p", NULL, "col", "caption", "col", "p", NULL, @@ -1100,6 +1103,43 @@ static const char * const htmlStartClose[] = { "option", "option", NULL, "fieldset", "legend", "p", "head", "h1", "h2", "h3", "h4", "h5", "h6", "pre", "listing", "xmp", "a", NULL, +/* most tags in in FONTSTYLE, PHRASE and SPECIAL should close */ +"tt", "head", NULL, +"i", "head", NULL, +"b", "head", NULL, +"u", "head", NULL, +"s", "head", NULL, +"strike", "head", NULL, +"big", "head", NULL, +"small", "head", NULL, + +"em", "head", NULL, +"strong", "head", NULL, +"dfn", "head", NULL, +"code", "head", NULL, +"samp", "head", NULL, +"kbd", "head", NULL, +"var", "head", NULL, +"cite", "head", NULL, +"abbr", "head", NULL, +"acronym", "head", NULL, + +/* "a" */ +"img", "head", NULL, +/* "applet" */ +/* "embed" */ +/* "object" */ +"font", "head", NULL, +/* "basefont" */ +"br", "head", NULL, +/* "script" */ +"map", "head", NULL, +"q", "head", NULL, +"sub", "head", NULL, +"sup", "head", NULL, +"span", "head", NULL, +"bdo", "head", NULL, +"iframe", "head", NULL, NULL }; @@ -2941,9 +2981,14 @@ htmlParseCharData(htmlParserCtxtPtr ctxt) { */ if ((ctxt->sax != NULL) && (!ctxt->disableSAX)) { if (areBlanks(ctxt, buf, nbchar)) { - if (ctxt->sax->ignorableWhitespace != NULL) - ctxt->sax->ignorableWhitespace(ctxt->userData, - buf, nbchar); + if (ctxt->keepBlanks) { + if (ctxt->sax->characters != NULL) + ctxt->sax->characters(ctxt->userData, buf, nbchar); + } else { + if (ctxt->sax->ignorableWhitespace != NULL) + ctxt->sax->ignorableWhitespace(ctxt->userData, + buf, nbchar); + } } else { htmlCheckParagraph(ctxt); if (ctxt->sax->characters != NULL) @@ -2974,8 +3019,14 @@ htmlParseCharData(htmlParserCtxtPtr ctxt) { */ if ((ctxt->sax != NULL) && (!ctxt->disableSAX)) { if (areBlanks(ctxt, buf, nbchar)) { - if (ctxt->sax->ignorableWhitespace != NULL) - ctxt->sax->ignorableWhitespace(ctxt->userData, buf, nbchar); + if (ctxt->keepBlanks) { + if (ctxt->sax->characters != NULL) + ctxt->sax->characters(ctxt->userData, buf, nbchar); + } else { + if (ctxt->sax->ignorableWhitespace != NULL) + ctxt->sax->ignorableWhitespace(ctxt->userData, + buf, nbchar); + } } else { htmlCheckParagraph(ctxt); if (ctxt->sax->characters != NULL) @@ -3509,19 +3560,14 @@ htmlCheckEncodingDirect(htmlParserCtxtPtr ctxt, const xmlChar *encoding) { * convert as much as possible to the parser reading buffer. */ processed = ctxt->input->cur - ctxt->input->base; - xmlBufferShrink(ctxt->input->buf->buffer, processed); - nbchars = xmlCharEncInFunc(ctxt->input->buf->encoder, - ctxt->input->buf->buffer, - ctxt->input->buf->raw); + xmlBufShrink(ctxt->input->buf->buffer, processed); + nbchars = xmlCharEncInput(ctxt->input->buf); if (nbchars < 0) { htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING, "htmlCheckEncoding: encoder error\n", NULL, NULL); } - ctxt->input->base = - ctxt->input->cur = ctxt->input->buf->buffer->content; - ctxt->input->end = - &ctxt->input->base[ctxt->input->buf->buffer->use]; + xmlBufResetInput(ctxt->input->buf->buffer, ctxt->input); } } } @@ -4906,9 +4952,7 @@ htmlCreateMemoryParserCtxt(const char *buffer, int size) { input->filename = NULL; input->buf = buf; - input->base = input->buf->buffer->content; - input->cur = input->buf->buffer->content; - input->end = &input->buf->buffer->content[input->buf->buffer->use]; + xmlBufResetInput(buf->buffer, input); inputPush(ctxt, input); return(ctxt); @@ -5025,8 +5069,8 @@ htmlParseLookupSequence(htmlParserCtxtPtr ctxt, xmlChar first, buf = in->base; len = in->length; } else { - buf = in->buf->buffer->content; - len = in->buf->buffer->use; + buf = xmlBufContent(in->buf->buffer); + len = xmlBufUse(in->buf->buffer); } /* take into account the sequence length */ @@ -5118,13 +5162,13 @@ htmlParseLookupSequence(htmlParserCtxtPtr ctxt, xmlChar first, * @stop: Array of chars, which stop the lookup. * @stopLen: Length of stop-Array * - * Try to find if any char of the stop-Array is available in the input + * Try to find if any char of the stop-Array is available in the input * stream. * This function has a side effect of (possibly) incrementing ctxt->checkIndex * to avoid rescanning sequences of bytes, it DOES change the state of the * parser, do not use liberally. * - * Returns the index to the current parsing point if a stopChar + * Returns the index to the current parsing point if a stopChar * is available, -1 otherwise. */ static int @@ -5152,8 +5196,8 @@ htmlParseLookupChars(htmlParserCtxtPtr ctxt, const xmlChar * stop, buf = in->base; len = in->length; } else { - buf = in->buf->buffer->content; - len = in->buf->buffer->use; + buf = xmlBufContent(in->buf->buffer); + len = xmlBufUse(in->buf->buffer); } for (; base < len; base++) { @@ -5264,7 +5308,7 @@ htmlParseTryOrFinish(htmlParserCtxtPtr ctxt, int terminate) { if (in->buf == NULL) avail = in->length - (in->cur - in->base); else - avail = in->buf->buffer->use - (in->cur - in->base); + avail = xmlBufUse(in->buf->buffer) - (in->cur - in->base); if ((avail == 0) && (terminate)) { htmlAutoCloseOnEnd(ctxt); if ((ctxt->nameNr == 0) && (ctxt->instate != XML_PARSER_EOF)) { @@ -5300,7 +5344,7 @@ htmlParseTryOrFinish(htmlParserCtxtPtr ctxt, int terminate) { if (in->buf == NULL) avail = in->length - (in->cur - in->base); else - avail = in->buf->buffer->use - (in->cur - in->base); + avail = xmlBufUse(in->buf->buffer) - (in->cur - in->base); } if ((ctxt->sax) && (ctxt->sax->setDocumentLocator)) ctxt->sax->setDocumentLocator(ctxt->userData, @@ -5342,7 +5386,7 @@ htmlParseTryOrFinish(htmlParserCtxtPtr ctxt, int terminate) { if (in->buf == NULL) avail = in->length - (in->cur - in->base); else - avail = in->buf->buffer->use - (in->cur - in->base); + avail = xmlBufUse(in->buf->buffer) - (in->cur - in->base); /* * no chars in buffer */ @@ -5415,7 +5459,7 @@ htmlParseTryOrFinish(htmlParserCtxtPtr ctxt, int terminate) { if (in->buf == NULL) avail = in->length - (in->cur - in->base); else - avail = in->buf->buffer->use - (in->cur - in->base); + avail = xmlBufUse(in->buf->buffer) - (in->cur - in->base); if (avail < 2) goto done; cur = in->cur[0]; @@ -5456,7 +5500,7 @@ htmlParseTryOrFinish(htmlParserCtxtPtr ctxt, int terminate) { if (in->buf == NULL) avail = in->length - (in->cur - in->base); else - avail = in->buf->buffer->use - (in->cur - in->base); + avail = xmlBufUse(in->buf->buffer) - (in->cur - in->base); if (avail < 1) goto done; cur = in->cur[0]; @@ -5654,9 +5698,15 @@ htmlParseTryOrFinish(htmlParserCtxtPtr ctxt, int terminate) { if ((cur != '<') && (cur != '&')) { if (ctxt->sax != NULL) { if (IS_BLANK_CH(cur)) { - if (ctxt->sax->ignorableWhitespace != NULL) - ctxt->sax->ignorableWhitespace( - ctxt->userData, &cur, 1); + if (ctxt->keepBlanks) { + if (ctxt->sax->characters != NULL) + ctxt->sax->characters( + ctxt->userData, &cur, 1); + } else { + if (ctxt->sax->ignorableWhitespace != NULL) + ctxt->sax->ignorableWhitespace( + ctxt->userData, &cur, 1); + } } else { htmlCheckParagraph(ctxt); if (ctxt->sax->characters != NULL) @@ -5979,8 +6029,8 @@ htmlParseChunk(htmlParserCtxtPtr ctxt, const char *chunk, int size, } if ((size > 0) && (chunk != NULL) && (ctxt->input != NULL) && (ctxt->input->buf != NULL) && (ctxt->instate != XML_PARSER_EOF)) { - int base = ctxt->input->base - ctxt->input->buf->buffer->content; - int cur = ctxt->input->cur - ctxt->input->base; + size_t base = xmlBufGetInputBase(ctxt->input->buf->buffer, ctxt->input); + size_t cur = ctxt->input->cur - ctxt->input->base; int res; res = xmlParserInputBufferPush(ctxt->input->buf, size, chunk); @@ -5989,10 +6039,7 @@ htmlParseChunk(htmlParserCtxtPtr ctxt, const char *chunk, int size, ctxt->disableSAX = 1; return (XML_PARSER_EOF); } - ctxt->input->base = ctxt->input->buf->buffer->content + base; - ctxt->input->cur = ctxt->input->base + cur; - ctxt->input->end = - &ctxt->input->buf->buffer->content[ctxt->input->buf->buffer->use]; + xmlBufSetInputBaseCur(ctxt->input->buf->buffer, ctxt->input, base, cur); #ifdef DEBUG_PUSH xmlGenericError(xmlGenericErrorContext, "HPP: pushed %d\n", size); #endif @@ -6008,7 +6055,7 @@ htmlParseChunk(htmlParserCtxtPtr ctxt, const char *chunk, int size, (in->raw != NULL)) { int nbchars; - nbchars = xmlCharEncInFunc(in->encoder, in->buffer, in->raw); + nbchars = xmlCharEncInput(in); if (nbchars < 0) { htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING, "encoder error\n", NULL, NULL); @@ -6107,24 +6154,18 @@ htmlCreatePushParserCtxt(htmlSAXHandlerPtr sax, void *user_data, inputStream->filename = (char *) xmlCanonicPath((const xmlChar *) filename); inputStream->buf = buf; - inputStream->base = inputStream->buf->buffer->content; - inputStream->cur = inputStream->buf->buffer->content; - inputStream->end = - &inputStream->buf->buffer->content[inputStream->buf->buffer->use]; + xmlBufResetInput(buf->buffer, inputStream); inputPush(ctxt, inputStream); if ((size > 0) && (chunk != NULL) && (ctxt->input != NULL) && (ctxt->input->buf != NULL)) { - int base = ctxt->input->base - ctxt->input->buf->buffer->content; - int cur = ctxt->input->cur - ctxt->input->base; + size_t base = xmlBufGetInputBase(ctxt->input->buf->buffer, ctxt->input); + size_t cur = ctxt->input->cur - ctxt->input->base; xmlParserInputBufferPush(ctxt->input->buf, size, chunk); - ctxt->input->base = ctxt->input->buf->buffer->content + base; - ctxt->input->cur = ctxt->input->base + cur; - ctxt->input->end = - &ctxt->input->buf->buffer->content[ctxt->input->buf->buffer->use]; + xmlBufSetInputBaseCur(ctxt->input->buf->buffer, ctxt->input, base, cur); #ifdef DEBUG_PUSH xmlGenericError(xmlGenericErrorContext, "HPP: pushed %d\n", size); #endif diff --git a/HTMLtree.c b/HTMLtree.c index 5d0893b..4d8e354 100644 --- a/HTMLtree.c +++ b/HTMLtree.c @@ -30,16 +30,18 @@ #include #include +#include "buf.h" + /************************************************************************ * * - * Getting/Setting encoding meta tags * + * Getting/Setting encoding meta tags * * * ************************************************************************/ /** * htmlGetMetaEncoding: * @doc: the document - * + * * Encoding definition lookup in the Meta tags * * Returns the current encoding as flagged in the HTML source @@ -126,17 +128,17 @@ found_meta: found_content: encoding = xmlStrstr(content, BAD_CAST"charset="); - if (encoding == NULL) + if (encoding == NULL) encoding = xmlStrstr(content, BAD_CAST"Charset="); - if (encoding == NULL) + if (encoding == NULL) encoding = xmlStrstr(content, BAD_CAST"CHARSET="); if (encoding != NULL) { encoding += 8; } else { encoding = xmlStrstr(content, BAD_CAST"charset ="); - if (encoding == NULL) + if (encoding == NULL) encoding = xmlStrstr(content, BAD_CAST"Charset ="); - if (encoding == NULL) + if (encoding == NULL) encoding = xmlStrstr(content, BAD_CAST"CHARSET ="); if (encoding != NULL) encoding += 9; @@ -314,7 +316,7 @@ static const char* htmlBooleanAttrs[] = { * @name: the name of the attribute to check * * Determine if a given attribute is a boolean attribute. - * + * * returns: false if the attribute is not boolean, true otherwise. */ int @@ -338,7 +340,7 @@ xmlOutputBufferPtr xmlAllocOutputBufferInternal(xmlCharEncodingHandlerPtr encoder); /************************************************************************ * * - * Output error handlers * + * Output error handlers * * * ************************************************************************/ /** @@ -387,17 +389,13 @@ htmlSaveErr(int code, xmlNodePtr node, const char *extra) /************************************************************************ * * - * Dumping HTML tree content to a simple buffer * + * Dumping HTML tree content to a simple buffer * * * ************************************************************************/ -static int -htmlNodeDumpFormat(xmlBufferPtr buf, xmlDocPtr doc, xmlNodePtr cur, - int format); - /** - * htmlNodeDumpFormat: - * @buf: the HTML buffer output + * htmlBufNodeDumpFormat: + * @buf: the xmlBufPtr output * @doc: the document * @cur: the current node * @format: should formatting spaces been added @@ -406,10 +404,10 @@ htmlNodeDumpFormat(xmlBufferPtr buf, xmlDocPtr doc, xmlNodePtr cur, * * Returns the number of byte written or -1 in case of error */ -static int -htmlNodeDumpFormat(xmlBufferPtr buf, xmlDocPtr doc, xmlNodePtr cur, +static size_t +htmlBufNodeDumpFormat(xmlBufPtr buf, xmlDocPtr doc, xmlNodePtr cur, int format) { - unsigned int use; + size_t use; int ret; xmlOutputBufferPtr outbuf; @@ -432,10 +430,10 @@ htmlNodeDumpFormat(xmlBufferPtr buf, xmlDocPtr doc, xmlNodePtr cur, outbuf->context = NULL; outbuf->written = 0; - use = buf->use; + use = xmlBufUse(buf); htmlNodeDumpFormatOutput(outbuf, doc, cur, NULL, format); xmlFree(outbuf); - ret = buf->use - use; + ret = xmlBufUse(buf) - use; return (ret); } @@ -452,9 +450,24 @@ htmlNodeDumpFormat(xmlBufferPtr buf, xmlDocPtr doc, xmlNodePtr cur, */ int htmlNodeDump(xmlBufferPtr buf, xmlDocPtr doc, xmlNodePtr cur) { + xmlBufPtr buffer; + size_t ret; + + if ((buf == NULL) || (cur == NULL)) + return(-1); + xmlInitParser(); + buffer = xmlBufFromBuffer(buf); + if (buffer == NULL) + return(-1); + + ret = htmlBufNodeDumpFormat(buffer, doc, cur, 1); + + xmlBufBackToBuffer(buffer); - return(htmlNodeDumpFormat(buf, doc, cur, 1)); + if (ret > INT_MAX) + return(-1); + return((int) ret); } /** @@ -499,7 +512,7 @@ htmlNodeDumpFileFormat(FILE *out, xmlDocPtr doc, if (handler == NULL) handler = xmlFindCharEncodingHandler("ascii"); - /* + /* * save the content to a temp buffer. */ buf = xmlOutputBufferCreateFile(out, handler); @@ -595,11 +608,11 @@ htmlDocDumpMemoryFormat(xmlDocPtr cur, xmlChar**mem, int *size, int format) { xmlOutputBufferFlush(buf); if (buf->conv != NULL) { - *size = buf->conv->use; - *mem = xmlStrndup(buf->conv->content, *size); + *size = xmlBufUse(buf->conv); + *mem = xmlStrndup(xmlBufContent(buf->conv), *size); } else { - *size = buf->buffer->use; - *mem = xmlStrndup(buf->buffer->content, *size); + *size = xmlBufUse(buf->buffer); + *mem = xmlStrndup(xmlBufContent(buf->buffer), *size); } (void)xmlOutputBufferClose(buf); } @@ -621,7 +634,7 @@ htmlDocDumpMemory(xmlDocPtr cur, xmlChar**mem, int *size) { /************************************************************************ * * - * Dumping HTML tree content to an I/O output buffer * + * Dumping HTML tree content to an I/O output buffer * * * ************************************************************************/ @@ -632,7 +645,7 @@ void xmlNsListDumpOutput(xmlOutputBufferPtr buf, xmlNsPtr cur); * @buf: the HTML buffer output * @doc: the document * @encoding: the encoding string - * + * * TODO: check whether encoding is needed * * Dump the HTML document DTD, if any. @@ -650,14 +663,14 @@ htmlDtdDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc, xmlOutputBufferWriteString(buf, (const char *)cur->name); if (cur->ExternalID != NULL) { xmlOutputBufferWriteString(buf, " PUBLIC "); - xmlBufferWriteQuotedString(buf->buffer, cur->ExternalID); + xmlBufWriteQuotedString(buf->buffer, cur->ExternalID); if (cur->SystemID != NULL) { xmlOutputBufferWriteString(buf, " "); - xmlBufferWriteQuotedString(buf->buffer, cur->SystemID); - } + xmlBufWriteQuotedString(buf->buffer, cur->SystemID); + } } else if (cur->SystemID != NULL) { xmlOutputBufferWriteString(buf, " SYSTEM "); - xmlBufferWriteQuotedString(buf->buffer, cur->SystemID); + xmlBufWriteQuotedString(buf->buffer, cur->SystemID); } xmlOutputBufferWriteString(buf, ">\n"); } @@ -677,9 +690,10 @@ htmlAttrDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc, xmlAttrPtr cur, xmlChar *value; /* - * TODO: The html output method should not escape a & character - * occurring in an attribute value immediately followed by - * a { character (see Section B.7.1 of the HTML 4.0 Recommendation). + * The html output method should not escape a & character + * occurring in an attribute value immediately followed by + * a { character (see Section B.7.1 of the HTML 4.0 Recommendation). + * This is implemented in xmlEncodeEntitiesReentrant */ if (cur == NULL) { @@ -707,15 +721,19 @@ htmlAttrDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc, xmlAttrPtr cur, while (IS_BLANK_CH(*tmp)) tmp++; - escaped = xmlURIEscapeStr(tmp, BAD_CAST"@/:=?;#%&,+"); + /* + * the < and > have already been escaped at the entity level + * And doing so here breaks server side includes + */ + escaped = xmlURIEscapeStr(tmp, BAD_CAST"@/:=?;#%&,+<>"); if (escaped != NULL) { - xmlBufferWriteQuotedString(buf->buffer, escaped); + xmlBufWriteQuotedString(buf->buffer, escaped); xmlFree(escaped); } else { - xmlBufferWriteQuotedString(buf->buffer, value); + xmlBufWriteQuotedString(buf->buffer, value); } } else { - xmlBufferWriteQuotedString(buf->buffer, value); + xmlBufWriteQuotedString(buf->buffer, value); } xmlFree(value); } else { @@ -1105,7 +1123,7 @@ htmlSaveFile(const char *filename, xmlDocPtr cur) { if ((cur == NULL) || (filename == NULL)) return(-1); - + xmlInitParser(); encoding = (const char *) htmlGetMetaEncoding(cur); @@ -1136,7 +1154,7 @@ htmlSaveFile(const char *filename, xmlDocPtr cur) { if (handler == NULL) handler = xmlFindCharEncodingHandler("ascii"); - /* + /* * save the content to a temp buffer. */ buf = xmlOutputBufferCreateFilename(filename, handler, cur->compression); @@ -1156,7 +1174,7 @@ htmlSaveFile(const char *filename, xmlDocPtr cur) { * @encoding: the document encoding * * Dump an HTML document to a file using a given encoding. - * + * * returns: the number of byte written or -1 in case of failure. */ int @@ -1200,7 +1218,7 @@ htmlSaveFileFormat(const char *filename, xmlDocPtr cur, if (handler == NULL) handler = xmlFindCharEncodingHandler("ascii"); - /* + /* * save the content to a temp buffer. */ buf = xmlOutputBufferCreateFilename(filename, handler, 0); @@ -1220,7 +1238,7 @@ htmlSaveFileFormat(const char *filename, xmlDocPtr cur, * * Dump an HTML document to a file using a given encoding * and formatting returns/spaces are added. - * + * * returns: the number of byte written or -1 in case of failure. */ int diff --git a/INSTALL b/INSTALL index 7d1c323..a1e89e1 100644 --- a/INSTALL +++ b/INSTALL @@ -1,8 +1,8 @@ Installation Instructions ************************* -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, -2006, 2007, 2008, 2009 Free Software Foundation, Inc. +Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, +Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright @@ -226,6 +226,11 @@ order to use an ANSI C compiler: and if that doesn't work, install pre-built binaries of GCC for HP-UX. + HP-UX `make' updates targets which have the same time stamps as +their prerequisites, which makes it generally unusable when shipped +generated files such as `configure' are involved. Use GNU `make' +instead. + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended diff --git a/Makefile.am b/Makefile.am index f82cefa..a4a9f87 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2,23 +2,25 @@ ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = include . doc example xstc @PYTHON_SUBDIR@ +SUBDIRS = include . doc example xstc $(PYTHON_SUBDIR) DIST_SUBDIRS = include . doc example python xstc -INCLUDES = -I$(top_builddir)/include -I@srcdir@/include @THREAD_CFLAGS@ @Z_CFLAGS@ @LZMA_CFLAGS@ +AM_CPPFLAGS = -I$(top_builddir)/include -I$(srcdir)/include + +AM_CFLAGS = $(THREAD_CFLAGS) $(Z_CFLAGS) $(LZMA_CFLAGS) noinst_PROGRAMS=testSchemas testRelax testSAX testHTML testXPath testURI \ testThreads testC14N testAutomata testRegexp \ testReader testapi testModule runtest runsuite testchar \ - testdict runxmlconf testrecurse + testdict runxmlconf testrecurse testlimits bin_PROGRAMS = xmllint xmlcatalog bin_SCRIPTS=xml2-config lib_LTLIBRARIES = libxml2.la -libxml2_la_LIBADD = @THREAD_LIBS@ @Z_LIBS@ @LZMA_LIBS@ $(ICONV_LIBS) @M_LIBS@ @WIN32_EXTRA_LIBADD@ +libxml2_la_LIBADD = $(ICU_LIBS) $(THREAD_LIBS) $(Z_LIBS) $(LZMA_LIBS) $(ICONV_LIBS) $(M_LIBS) $(WIN32_EXTRA_LIBADD) if USE_VERSION_SCRIPT LIBXML2_VERSION_SCRIPT = $(VERSION_SCRIPT_FLAGS)$(srcdir)/libxml2.syms @@ -26,35 +28,37 @@ else LIBXML2_VERSION_SCRIPT = endif -libxml2_la_LDFLAGS = @CYGWIN_EXTRA_LDFLAGS@ @WIN32_EXTRA_LDFLAGS@ \ - $(LIBXML2_VERSION_SCRIPT) \ - -version-info @LIBXML_VERSION_INFO@ \ - @MODULE_PLATFORM_LIBS@ +libxml2_la_LDFLAGS = $(CYGWIN_EXTRA_LDFLAGS) $(WIN32_EXTRA_LDFLAGS) \ + $(LIBXML2_VERSION_SCRIPT) \ + -version-info $(LIBXML_VERSION_INFO) \ + $(MODULE_PLATFORM_LIBS) + +if WITH_SAX1_SOURCES +docb_sources = DOCBparser.c +else +docb_sources = +endif if WITH_TRIO_SOURCES -libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c \ - parser.c tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c \ - valid.c xlink.c HTMLparser.c HTMLtree.c debugXML.c xpath.c \ - xpointer.c xinclude.c nanohttp.c nanoftp.c DOCBparser.c \ - catalog.c globals.c threads.c c14n.c xmlstring.c \ - xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \ - triostr.c trio.c xmlreader.c relaxng.c dict.c SAX2.c \ - xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c \ - xmlmodule.c schematron.c xzlib.c +trio_sources = triostr.c trio.c else +trio_sources = +endif + libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c \ parser.c tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c \ valid.c xlink.c HTMLparser.c HTMLtree.c debugXML.c xpath.c \ - xpointer.c xinclude.c nanohttp.c nanoftp.c DOCBparser.c \ - catalog.c globals.c threads.c c14n.c xmlstring.c \ + xpointer.c xinclude.c nanohttp.c nanoftp.c \ + $(docb_sources) \ + catalog.c globals.c threads.c c14n.c xmlstring.c buf.c \ xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \ + $(trio_sources) \ xmlreader.c relaxng.c dict.c SAX2.c \ xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c \ xmlmodule.c schematron.c xzlib.c -endif DEPS = $(top_builddir)/libxml2.la -LDADDS = @STATIC_BINARIES@ $(top_builddir)/libxml2.la @THREAD_LIBS@ @Z_LIBS@ @LZMA_LIBS@ $(ICONV_LIBS) @M_LIBS@ @WIN32_EXTRA_LIBADD@ +LDADDS = $(STATIC_BINARIES) $(top_builddir)/libxml2.la $(THREAD_LIBS) $(Z_LIBS) $(LZMA_LIBS) $(ICONV_LIBS) $(M_LIBS) $(WIN32_EXTRA_LIBADD) man_MANS = xml2-config.1 libxml.3 @@ -65,32 +69,37 @@ m4data_DATA = libxml.m4 runtest_SOURCES=runtest.c runtest_LDFLAGS = runtest_DEPENDENCIES = $(DEPS) -runtest_LDADD= @BASE_THREAD_LIBS@ @RDL_LIBS@ $(LDADDS) +runtest_LDADD= $(BASE_THREAD_LIBS) $(RDL_LIBS) $(LDADDS) testrecurse_SOURCES=testrecurse.c testrecurse_LDFLAGS = testrecurse_DEPENDENCIES = $(DEPS) -testrecurse_LDADD= @BASE_THREAD_LIBS@ @RDL_LIBS@ $(LDADDS) +testrecurse_LDADD= $(BASE_THREAD_LIBS) $(RDL_LIBS) $(LDADDS) + +testlimits_SOURCES=testlimits.c +testlimits_LDFLAGS = +testlimits_DEPENDENCIES = $(DEPS) +testlimits_LDADD= $(BASE_THREAD_LIBS) $(RDL_LIBS) $(LDADDS) testchar_SOURCES=testchar.c testchar_LDFLAGS = testchar_DEPENDENCIES = $(DEPS) -testchar_LDADD= @RDL_LIBS@ $(LDADDS) +testchar_LDADD= $(RDL_LIBS) $(LDADDS) testdict_SOURCES=testdict.c testdict_LDFLAGS = testdict_DEPENDENCIES = $(DEPS) -testdict_LDADD= @RDL_LIBS@ $(LDADDS) +testdict_LDADD= $(RDL_LIBS) $(LDADDS) runsuite_SOURCES=runsuite.c runsuite_LDFLAGS = runsuite_DEPENDENCIES = $(DEPS) -runsuite_LDADD= @RDL_LIBS@ $(LDADDS) +runsuite_LDADD= $(RDL_LIBS) $(LDADDS) xmllint_SOURCES=xmllint.c xmllint_LDFLAGS = xmllint_DEPENDENCIES = $(DEPS) -xmllint_LDADD= @RDL_LIBS@ $(LDADDS) +xmllint_LDADD= $(RDL_LIBS) $(LDADDS) testSAX_SOURCES=testSAX.c testSAX_LDFLAGS = @@ -105,7 +114,7 @@ testHTML_LDADD= $(LDADDS) xmlcatalog_SOURCES=xmlcatalog.c xmlcatalog_LDFLAGS = xmlcatalog_DEPENDENCIES = $(DEPS) -xmlcatalog_LDADD= @RDL_LIBS@ $(LDADDS) +xmlcatalog_LDADD = $(RDL_LIBS) $(LDADDS) testXPath_SOURCES=testXPath.c testXPath_LDFLAGS = @@ -117,10 +126,14 @@ testC14N_LDFLAGS = testC14N_DEPENDENCIES = $(DEPS) testC14N_LDADD= $(LDADDS) -testThreads_SOURCES=testThreads@THREADS_W32@.c +if THREADS_W32 +testThreads_SOURCES = testThreadsWin32.c +else +testThreads_SOURCES = testThreads.c +endif testThreads_LDFLAGS = testThreads_DEPENDENCIES = $(DEPS) -testThreads_LDADD= @BASE_THREAD_LIBS@ $(LDADDS) +testThreads_LDADD= $(BASE_THREAD_LIBS) $(LDADDS) testURI_SOURCES=testURI.c testURI_LDFLAGS = @@ -172,6 +185,8 @@ testapi.c: $(srcdir)/gentest.py -@(if [ "$(PYTHON)" != "" ] ; then \ $(PYTHON) $(srcdir)/gentest.py $(srcdir) ; fi ) +BUILT_SOURCES = testapi.c + testapi_SOURCES=testapi.c testapi_LDFLAGS = testapi_DEPENDENCIES = $(DEPS) @@ -188,28 +203,25 @@ runxmlconf_LDADD= $(LDADDS) #testOOM_LDADD= $(LDADDS) runtests: + [ -d test ] || $(LN_S) $(srcdir)/test . + [ -d result ] || $(LN_S) $(srcdir)/result . $(CHECKER) ./runtest$(EXEEXT) && $(CHECKER) ./testrecurse$(EXEEXT) &&$(CHECKER) ./testapi$(EXEEXT) && $(CHECKER) ./testchar$(EXEEXT)&& $(CHECKER) ./testdict$(EXEEXT) && $(CHECKER) ./runxmlconf$(EXEEXT) - @(if [ "@PYTHON_SUBDIR@" != "" ] ; then cd python ; \ - $(MAKE) MAKEFLAGS+=--silent tests ; fi) + @(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; \ + $(MAKE) tests ; fi) check: all runtests -check-valgrind: all +check-valgrind valgrind: all @echo '## Running the regression tests under Valgrind' @echo '## Go get a cup of coffee it is gonna take a while ...' - $(MAKE) CHECKER='valgrind -q' check + $(MAKE) CHECKER='valgrind -q' runtests testall : tests SVGtests SAXtests -tests: XMLtests XMLenttests NStests IDtests Errtests APItests @READER_TEST@ @TEST_SAX@ @TEST_PUSH@ @TEST_HTML@ @TEST_PHTML@ @TEST_VALID@ URItests @TEST_PATTERN@ @TEST_XPATH@ @TEST_XPTR@ @TEST_XINCLUDE@ @TEST_C14N@ @TEST_DEBUG@ @TEST_CATALOG@ @TEST_REGEXPS@ @TEST_SCHEMAS@ @TEST_SCHEMATRON@ @TEST_THREADS@ Timingtests @TEST_VTIME@ @PYTHON_TESTS@ @TEST_MODULES@ - @(if [ "@PYTHON_SUBDIR@" != "" ] ; then cd python ; \ - $(MAKE) MAKEFLAGS+=--silent tests ; fi) - @(cd doc/examples ; $(MAKE) MAKEFLAGS+=--silent tests) - -valgrind: - @echo '## Running the regression tests under Valgrind' - @echo '## Go get a cup of coffee it is gonna take a while ...' - $(MAKE) CHECKER='valgrind -q' tests +tests: XMLtests XMLenttests NStests IDtests Errtests APItests $(READER_TEST) $(TEST_SAX) $(TEST_PUSH) $(TEST_HTML) $(TEST_PHTML) $(TEST_VALID) URItests $(TEST_PATTERN) $(TEST_XPATH) $(TEST_XPTR) $(TEST_XINCLUDE) $(TEST_C14N) $(TEST_DEBUG) $(TEST_CATALOG) $(TEST_REGEXPS) $(TEST_SCHEMAS) $(TEST_SCHEMATRON) $(TEST_THREADS) Timingtests $(TEST_VTIME) $(PYTHON_TESTS) $(TEST_MODULES) + @(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; \ + $(MAKE) tests ; fi) + @(cd doc/examples ; $(MAKE) tests) APItests: testapi$(EXEEXT) @echo "## Running the API regression tests this may take a little while" @@ -1115,7 +1127,7 @@ SchemasPythonTests: echo "## It is normal to see 11 errors reported" ; \ $(CHECKER) $(PYTHON) $(srcdir)/check-xsddata-test-suite.py ; \ fi) - @(if [ -x $(PYTHON) -a -d xstc ] ; then cd xstc ; $(MAKE) CHECKER="$(CHECKER)" MAKEFLAGS+=--silent pytests ; fi) + @(if [ -x $(PYTHON) -a -d xstc ] ; then cd xstc ; $(MAKE) CHECKER="$(CHECKER)" pytests ; fi) Patterntests: xmllint$(EXEEXT) @(echo > .memdump) @@ -1147,8 +1159,8 @@ ModuleTests: testModule$(EXEEXT) testdso.la cleanup: -@(find . -name .\#\* -exec rm {} \;) - -@(find . -name \*.gcda -o *.gcno -exec rm {} \;) - -@(find . -name \*.orig -o -name \*.rej -o -name \*.old -exec rm {} \;) + -@(find . -name \*.gcda -o -name \*.gcno -exec rm -f {} \;) + -@(find . -name \*.orig -o -name \*.rej -o -name \*.old -exec rm -f {} \;) dist-hook: cleanup libxml2.spec -cp libxml2.spec $(distdir) @@ -1183,7 +1195,8 @@ xml2Conf.sh: xml2Conf.sh.in Makefile < $(srcdir)/xml2Conf.sh.in > xml2Conf.tmp \ && mv xml2Conf.tmp xml2Conf.sh -CLEANFILES=xml2Conf.sh *.gcda *.gcno +CLEANFILES = runxmlconf.log test.out xml2Conf.sh *.gcda *.gcno *.res +DISTCLEANFILES = COPYING missing.lst confexecdir=$(libdir) confexec_DATA = xml2Conf.sh @@ -1195,10 +1208,10 @@ EXTRA_DIST = xml2-config.in xml2Conf.sh.in libxml.spec.in libxml2.spec \ example/Makefile.am example/gjobread.c example/gjobs.xml \ $(man_MANS) libxml-2.0.pc.in libxml-2.0-uninstalled.pc.in \ trionan.c trionan.h triostr.c triostr.h trio.c trio.h \ - triop.h triodef.h libxml.h elfgcchack.h xzlib.h \ - testThreadsWin32.c genUnicode.py TODO_SCHEMAS \ + triop.h triodef.h libxml.h elfgcchack.h xzlib.h buf.h \ + enc.h save.h testThreadsWin32.c genUnicode.py TODO_SCHEMAS \ dbgen.pl dbgenattr.pl regressions.py regressions.xml \ - README.tests Makefile.tests libxml2.syms \ + README.tests Makefile.tests libxml2.syms timsort.h \ $(CVS_EXTRA_DIST) @@ -1213,13 +1226,13 @@ DOC_MODULE=libxml2-$(VERSION) EXAMPLES_DIR=$(BASE_DIR)/$(DOC_MODULE)/examples install-data-local: - @MKDIR_P@ $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE) - -@INSTALL@ -m 0644 $(srcdir)/Copyright $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE) - @MKDIR_P@ $(DESTDIR)$(EXAMPLES_DIR) - -@INSTALL@ -m 0644 $(srcdir)/xmllint.c $(DESTDIR)$(EXAMPLES_DIR) - -@INSTALL@ -m 0644 $(srcdir)/testSAX.c $(DESTDIR)$(EXAMPLES_DIR) - -@INSTALL@ -m 0644 $(srcdir)/testHTML.c $(DESTDIR)$(EXAMPLES_DIR) - -@INSTALL@ -m 0644 $(srcdir)/testXPath.c $(DESTDIR)$(EXAMPLES_DIR) + $(MKDIR_P) $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE) + -$(INSTALL) -m 0644 $(srcdir)/Copyright $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE) + $(MKDIR_P) $(DESTDIR)$(EXAMPLES_DIR) + -$(INSTALL) -m 0644 $(srcdir)/xmllint.c $(DESTDIR)$(EXAMPLES_DIR) + -$(INSTALL) -m 0644 $(srcdir)/testSAX.c $(DESTDIR)$(EXAMPLES_DIR) + -$(INSTALL) -m 0644 $(srcdir)/testHTML.c $(DESTDIR)$(EXAMPLES_DIR) + -$(INSTALL) -m 0644 $(srcdir)/testXPath.c $(DESTDIR)$(EXAMPLES_DIR) uninstall-local: rm -f $(DESTDIR)$(EXAMPLES_DIR)/testXPath.c diff --git a/Makefile.in b/Makefile.in index 6e88cc9..63d8228 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -43,7 +43,7 @@ noinst_PROGRAMS = testSchemas$(EXEEXT) testRelax$(EXEEXT) \ testAutomata$(EXEEXT) testRegexp$(EXEEXT) testReader$(EXEEXT) \ testapi$(EXEEXT) testModule$(EXEEXT) runtest$(EXEEXT) \ runsuite$(EXEEXT) testchar$(EXEEXT) testdict$(EXEEXT) \ - runxmlconf$(EXEEXT) testrecurse$(EXEEXT) + runxmlconf$(EXEEXT) testrecurse$(EXEEXT) testlimits$(EXEEXT) bin_PROGRAMS = xmllint$(EXEEXT) xmlcatalog$(EXEEXT) subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ @@ -88,57 +88,46 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \ "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(confexecdir)" \ "$(DESTDIR)$(m4datadir)" "$(DESTDIR)$(pkgconfigdir)" LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = -libxml2_la_DEPENDENCIES = $(am__DEPENDENCIES_1) +libxml2_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am__libxml2_la_SOURCES_DIST = SAX.c entities.c encoding.c error.c \ parserInternals.c parser.c tree.c hash.c list.c xmlIO.c \ xmlmemory.c uri.c valid.c xlink.c HTMLparser.c HTMLtree.c \ debugXML.c xpath.c xpointer.c xinclude.c nanohttp.c nanoftp.c \ DOCBparser.c catalog.c globals.c threads.c c14n.c xmlstring.c \ - xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \ - xmlreader.c relaxng.c dict.c SAX2.c xmlwriter.c legacy.c \ - chvalid.c pattern.c xmlsave.c xmlmodule.c schematron.c xzlib.c \ - triostr.c trio.c -@WITH_TRIO_SOURCES_FALSE@am_libxml2_la_OBJECTS = SAX.lo entities.lo \ -@WITH_TRIO_SOURCES_FALSE@ encoding.lo error.lo \ -@WITH_TRIO_SOURCES_FALSE@ parserInternals.lo parser.lo tree.lo \ -@WITH_TRIO_SOURCES_FALSE@ hash.lo list.lo xmlIO.lo xmlmemory.lo \ -@WITH_TRIO_SOURCES_FALSE@ uri.lo valid.lo xlink.lo \ -@WITH_TRIO_SOURCES_FALSE@ HTMLparser.lo HTMLtree.lo debugXML.lo \ -@WITH_TRIO_SOURCES_FALSE@ xpath.lo xpointer.lo xinclude.lo \ -@WITH_TRIO_SOURCES_FALSE@ nanohttp.lo nanoftp.lo DOCBparser.lo \ -@WITH_TRIO_SOURCES_FALSE@ catalog.lo globals.lo threads.lo \ -@WITH_TRIO_SOURCES_FALSE@ c14n.lo xmlstring.lo xmlregexp.lo \ -@WITH_TRIO_SOURCES_FALSE@ xmlschemas.lo xmlschemastypes.lo \ -@WITH_TRIO_SOURCES_FALSE@ xmlunicode.lo xmlreader.lo relaxng.lo \ -@WITH_TRIO_SOURCES_FALSE@ dict.lo SAX2.lo xmlwriter.lo \ -@WITH_TRIO_SOURCES_FALSE@ legacy.lo chvalid.lo pattern.lo \ -@WITH_TRIO_SOURCES_FALSE@ xmlsave.lo xmlmodule.lo schematron.lo \ -@WITH_TRIO_SOURCES_FALSE@ xzlib.lo -@WITH_TRIO_SOURCES_TRUE@am_libxml2_la_OBJECTS = SAX.lo entities.lo \ -@WITH_TRIO_SOURCES_TRUE@ encoding.lo error.lo \ -@WITH_TRIO_SOURCES_TRUE@ parserInternals.lo parser.lo tree.lo \ -@WITH_TRIO_SOURCES_TRUE@ hash.lo list.lo xmlIO.lo xmlmemory.lo \ -@WITH_TRIO_SOURCES_TRUE@ uri.lo valid.lo xlink.lo HTMLparser.lo \ -@WITH_TRIO_SOURCES_TRUE@ HTMLtree.lo debugXML.lo xpath.lo \ -@WITH_TRIO_SOURCES_TRUE@ xpointer.lo xinclude.lo nanohttp.lo \ -@WITH_TRIO_SOURCES_TRUE@ nanoftp.lo DOCBparser.lo catalog.lo \ -@WITH_TRIO_SOURCES_TRUE@ globals.lo threads.lo c14n.lo \ -@WITH_TRIO_SOURCES_TRUE@ xmlstring.lo xmlregexp.lo \ -@WITH_TRIO_SOURCES_TRUE@ xmlschemas.lo xmlschemastypes.lo \ -@WITH_TRIO_SOURCES_TRUE@ xmlunicode.lo triostr.lo trio.lo \ -@WITH_TRIO_SOURCES_TRUE@ xmlreader.lo relaxng.lo dict.lo \ -@WITH_TRIO_SOURCES_TRUE@ SAX2.lo xmlwriter.lo legacy.lo \ -@WITH_TRIO_SOURCES_TRUE@ chvalid.lo pattern.lo xmlsave.lo \ -@WITH_TRIO_SOURCES_TRUE@ xmlmodule.lo schematron.lo xzlib.lo + buf.c xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \ + triostr.c trio.c xmlreader.c relaxng.c dict.c SAX2.c \ + xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c xmlmodule.c \ + schematron.c xzlib.c +@WITH_SAX1_SOURCES_TRUE@am__objects_1 = DOCBparser.lo +@WITH_TRIO_SOURCES_TRUE@am__objects_2 = triostr.lo trio.lo +am_libxml2_la_OBJECTS = SAX.lo entities.lo encoding.lo error.lo \ + parserInternals.lo parser.lo tree.lo hash.lo list.lo xmlIO.lo \ + xmlmemory.lo uri.lo valid.lo xlink.lo HTMLparser.lo \ + HTMLtree.lo debugXML.lo xpath.lo xpointer.lo xinclude.lo \ + nanohttp.lo nanoftp.lo $(am__objects_1) catalog.lo globals.lo \ + threads.lo c14n.lo xmlstring.lo buf.lo xmlregexp.lo \ + xmlschemas.lo xmlschemastypes.lo xmlunicode.lo \ + $(am__objects_2) xmlreader.lo relaxng.lo dict.lo SAX2.lo \ + xmlwriter.lo legacy.lo chvalid.lo pattern.lo xmlsave.lo \ + xmlmodule.lo schematron.lo xzlib.lo libxml2_la_OBJECTS = $(am_libxml2_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libxml2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ @@ -152,7 +141,10 @@ testdso_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) am_runsuite_OBJECTS = runsuite.$(OBJEXT) runsuite_OBJECTS = $(am_runsuite_OBJECTS) -am__DEPENDENCIES_2 = $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) +am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) $(top_builddir)/libxml2.la \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) runsuite_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(runsuite_LDFLAGS) $(LDFLAGS) -o $@ @@ -211,7 +203,9 @@ testSchemas_OBJECTS = $(am_testSchemas_OBJECTS) testSchemas_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(testSchemas_LDFLAGS) $(LDFLAGS) -o $@ -am_testThreads_OBJECTS = testThreads@THREADS_W32@.$(OBJEXT) +am__testThreads_SOURCES_DIST = testThreads.c testThreadsWin32.c +@THREADS_W32_FALSE@am_testThreads_OBJECTS = testThreads.$(OBJEXT) +@THREADS_W32_TRUE@am_testThreads_OBJECTS = testThreadsWin32.$(OBJEXT) testThreads_OBJECTS = $(am_testThreads_OBJECTS) testThreads_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ @@ -241,6 +235,11 @@ testdict_OBJECTS = $(am_testdict_OBJECTS) testdict_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(testdict_LDFLAGS) $(LDFLAGS) -o $@ +am_testlimits_OBJECTS = testlimits.$(OBJEXT) +testlimits_OBJECTS = $(am_testlimits_OBJECTS) +testlimits_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(testlimits_LDFLAGS) $(LDFLAGS) -o $@ am_testrecurse_OBJECTS = testrecurse.$(OBJEXT) testrecurse_OBJECTS = $(am_testrecurse_OBJECTS) testrecurse_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ @@ -267,21 +266,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libxml2_la_SOURCES) $(testdso_la_SOURCES) \ $(runsuite_SOURCES) $(runtest_SOURCES) $(runxmlconf_SOURCES) \ @@ -291,16 +290,17 @@ SOURCES = $(libxml2_la_SOURCES) $(testdso_la_SOURCES) \ $(testRelax_SOURCES) $(testSAX_SOURCES) $(testSchemas_SOURCES) \ $(testThreads_SOURCES) $(testURI_SOURCES) $(testXPath_SOURCES) \ $(testapi_SOURCES) $(testchar_SOURCES) $(testdict_SOURCES) \ - $(testrecurse_SOURCES) $(xmlcatalog_SOURCES) \ - $(xmllint_SOURCES) + $(testlimits_SOURCES) $(testrecurse_SOURCES) \ + $(xmlcatalog_SOURCES) $(xmllint_SOURCES) DIST_SOURCES = $(am__libxml2_la_SOURCES_DIST) $(testdso_la_SOURCES) \ $(runsuite_SOURCES) $(runtest_SOURCES) $(runxmlconf_SOURCES) \ $(testAutomata_SOURCES) $(testC14N_SOURCES) \ $(testHTML_SOURCES) $(testModule_SOURCES) \ $(testReader_SOURCES) $(testRegexp_SOURCES) \ $(testRelax_SOURCES) $(testSAX_SOURCES) $(testSchemas_SOURCES) \ - $(testThreads_SOURCES) $(testURI_SOURCES) $(testXPath_SOURCES) \ - $(testapi_SOURCES) $(testchar_SOURCES) $(testdict_SOURCES) \ + $(am__testThreads_SOURCES_DIST) $(testURI_SOURCES) \ + $(testXPath_SOURCES) $(testapi_SOURCES) $(testchar_SOURCES) \ + $(testdict_SOURCES) $(testlimits_SOURCES) \ $(testrecurse_SOURCES) $(xmlcatalog_SOURCES) \ $(xmllint_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ @@ -326,9 +326,11 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ - { test ! -d "$(distdir)" \ - || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr "$(distdir)"; }; } + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ @@ -357,12 +359,13 @@ am__relativize = \ DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -399,6 +402,7 @@ HTML_DIR = @HTML_DIR@ HTML_OBJ = @HTML_OBJ@ HTTP_OBJ = @HTTP_OBJ@ ICONV_LIBS = @ICONV_LIBS@ +ICU_LIBS = @ICU_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -479,7 +483,6 @@ TEST_VTIME = @TEST_VTIME@ TEST_XINCLUDE = @TEST_XINCLUDE@ TEST_XPATH = @TEST_XPATH@ TEST_XPTR = @TEST_XPTR@ -THREADS_W32 = @THREADS_W32@ THREAD_CFLAGS = @THREAD_CFLAGS@ THREAD_LIBS = @THREAD_LIBS@ VERSION = @VERSION@ @@ -586,68 +589,69 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = include . doc example xstc @PYTHON_SUBDIR@ +SUBDIRS = include . doc example xstc $(PYTHON_SUBDIR) DIST_SUBDIRS = include . doc example python xstc -INCLUDES = -I$(top_builddir)/include -I@srcdir@/include @THREAD_CFLAGS@ @Z_CFLAGS@ @LZMA_CFLAGS@ +AM_CPPFLAGS = -I$(top_builddir)/include -I$(srcdir)/include +AM_CFLAGS = $(THREAD_CFLAGS) $(Z_CFLAGS) $(LZMA_CFLAGS) bin_SCRIPTS = xml2-config lib_LTLIBRARIES = libxml2.la -libxml2_la_LIBADD = @THREAD_LIBS@ @Z_LIBS@ @LZMA_LIBS@ $(ICONV_LIBS) @M_LIBS@ @WIN32_EXTRA_LIBADD@ +libxml2_la_LIBADD = $(ICU_LIBS) $(THREAD_LIBS) $(Z_LIBS) $(LZMA_LIBS) $(ICONV_LIBS) $(M_LIBS) $(WIN32_EXTRA_LIBADD) @USE_VERSION_SCRIPT_FALSE@LIBXML2_VERSION_SCRIPT = @USE_VERSION_SCRIPT_TRUE@LIBXML2_VERSION_SCRIPT = $(VERSION_SCRIPT_FLAGS)$(srcdir)/libxml2.syms -libxml2_la_LDFLAGS = @CYGWIN_EXTRA_LDFLAGS@ @WIN32_EXTRA_LDFLAGS@ \ - $(LIBXML2_VERSION_SCRIPT) \ - -version-info @LIBXML_VERSION_INFO@ \ - @MODULE_PLATFORM_LIBS@ - -@WITH_TRIO_SOURCES_FALSE@libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c \ -@WITH_TRIO_SOURCES_FALSE@ parser.c tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c \ -@WITH_TRIO_SOURCES_FALSE@ valid.c xlink.c HTMLparser.c HTMLtree.c debugXML.c xpath.c \ -@WITH_TRIO_SOURCES_FALSE@ xpointer.c xinclude.c nanohttp.c nanoftp.c DOCBparser.c \ -@WITH_TRIO_SOURCES_FALSE@ catalog.c globals.c threads.c c14n.c xmlstring.c \ -@WITH_TRIO_SOURCES_FALSE@ xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \ -@WITH_TRIO_SOURCES_FALSE@ xmlreader.c relaxng.c dict.c SAX2.c \ -@WITH_TRIO_SOURCES_FALSE@ xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c \ -@WITH_TRIO_SOURCES_FALSE@ xmlmodule.c schematron.c xzlib.c - -@WITH_TRIO_SOURCES_TRUE@libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c \ -@WITH_TRIO_SOURCES_TRUE@ parser.c tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c \ -@WITH_TRIO_SOURCES_TRUE@ valid.c xlink.c HTMLparser.c HTMLtree.c debugXML.c xpath.c \ -@WITH_TRIO_SOURCES_TRUE@ xpointer.c xinclude.c nanohttp.c nanoftp.c DOCBparser.c \ -@WITH_TRIO_SOURCES_TRUE@ catalog.c globals.c threads.c c14n.c xmlstring.c \ -@WITH_TRIO_SOURCES_TRUE@ xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \ -@WITH_TRIO_SOURCES_TRUE@ triostr.c trio.c xmlreader.c relaxng.c dict.c SAX2.c \ -@WITH_TRIO_SOURCES_TRUE@ xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c \ -@WITH_TRIO_SOURCES_TRUE@ xmlmodule.c schematron.c xzlib.c +libxml2_la_LDFLAGS = $(CYGWIN_EXTRA_LDFLAGS) $(WIN32_EXTRA_LDFLAGS) \ + $(LIBXML2_VERSION_SCRIPT) \ + -version-info $(LIBXML_VERSION_INFO) \ + $(MODULE_PLATFORM_LIBS) + +@WITH_SAX1_SOURCES_FALSE@docb_sources = +@WITH_SAX1_SOURCES_TRUE@docb_sources = DOCBparser.c +@WITH_TRIO_SOURCES_FALSE@trio_sources = +@WITH_TRIO_SOURCES_TRUE@trio_sources = triostr.c trio.c +libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c \ + parser.c tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c \ + valid.c xlink.c HTMLparser.c HTMLtree.c debugXML.c xpath.c \ + xpointer.c xinclude.c nanohttp.c nanoftp.c \ + $(docb_sources) \ + catalog.c globals.c threads.c c14n.c xmlstring.c buf.c \ + xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \ + $(trio_sources) \ + xmlreader.c relaxng.c dict.c SAX2.c \ + xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c \ + xmlmodule.c schematron.c xzlib.c DEPS = $(top_builddir)/libxml2.la -LDADDS = @STATIC_BINARIES@ $(top_builddir)/libxml2.la @THREAD_LIBS@ @Z_LIBS@ @LZMA_LIBS@ $(ICONV_LIBS) @M_LIBS@ @WIN32_EXTRA_LIBADD@ +LDADDS = $(STATIC_BINARIES) $(top_builddir)/libxml2.la $(THREAD_LIBS) $(Z_LIBS) $(LZMA_LIBS) $(ICONV_LIBS) $(M_LIBS) $(WIN32_EXTRA_LIBADD) man_MANS = xml2-config.1 libxml.3 m4datadir = $(datadir)/aclocal m4data_DATA = libxml.m4 runtest_SOURCES = runtest.c runtest_LDFLAGS = runtest_DEPENDENCIES = $(DEPS) -runtest_LDADD = @BASE_THREAD_LIBS@ @RDL_LIBS@ $(LDADDS) +runtest_LDADD = $(BASE_THREAD_LIBS) $(RDL_LIBS) $(LDADDS) testrecurse_SOURCES = testrecurse.c testrecurse_LDFLAGS = testrecurse_DEPENDENCIES = $(DEPS) -testrecurse_LDADD = @BASE_THREAD_LIBS@ @RDL_LIBS@ $(LDADDS) +testrecurse_LDADD = $(BASE_THREAD_LIBS) $(RDL_LIBS) $(LDADDS) +testlimits_SOURCES = testlimits.c +testlimits_LDFLAGS = +testlimits_DEPENDENCIES = $(DEPS) +testlimits_LDADD = $(BASE_THREAD_LIBS) $(RDL_LIBS) $(LDADDS) testchar_SOURCES = testchar.c testchar_LDFLAGS = testchar_DEPENDENCIES = $(DEPS) -testchar_LDADD = @RDL_LIBS@ $(LDADDS) +testchar_LDADD = $(RDL_LIBS) $(LDADDS) testdict_SOURCES = testdict.c testdict_LDFLAGS = testdict_DEPENDENCIES = $(DEPS) -testdict_LDADD = @RDL_LIBS@ $(LDADDS) +testdict_LDADD = $(RDL_LIBS) $(LDADDS) runsuite_SOURCES = runsuite.c runsuite_LDFLAGS = runsuite_DEPENDENCIES = $(DEPS) -runsuite_LDADD = @RDL_LIBS@ $(LDADDS) +runsuite_LDADD = $(RDL_LIBS) $(LDADDS) xmllint_SOURCES = xmllint.c xmllint_LDFLAGS = xmllint_DEPENDENCIES = $(DEPS) -xmllint_LDADD = @RDL_LIBS@ $(LDADDS) +xmllint_LDADD = $(RDL_LIBS) $(LDADDS) testSAX_SOURCES = testSAX.c testSAX_LDFLAGS = testSAX_DEPENDENCIES = $(DEPS) @@ -659,7 +663,7 @@ testHTML_LDADD = $(LDADDS) xmlcatalog_SOURCES = xmlcatalog.c xmlcatalog_LDFLAGS = xmlcatalog_DEPENDENCIES = $(DEPS) -xmlcatalog_LDADD = @RDL_LIBS@ $(LDADDS) +xmlcatalog_LDADD = $(RDL_LIBS) $(LDADDS) testXPath_SOURCES = testXPath.c testXPath_LDFLAGS = testXPath_DEPENDENCIES = $(DEPS) @@ -668,10 +672,11 @@ testC14N_SOURCES = testC14N.c testC14N_LDFLAGS = testC14N_DEPENDENCIES = $(DEPS) testC14N_LDADD = $(LDADDS) -testThreads_SOURCES = testThreads@THREADS_W32@.c +@THREADS_W32_FALSE@testThreads_SOURCES = testThreads.c +@THREADS_W32_TRUE@testThreads_SOURCES = testThreadsWin32.c testThreads_LDFLAGS = testThreads_DEPENDENCIES = $(DEPS) -testThreads_LDADD = @BASE_THREAD_LIBS@ $(LDADDS) +testThreads_LDADD = $(BASE_THREAD_LIBS) $(LDADDS) testURI_SOURCES = testURI.c testURI_LDFLAGS = testURI_DEPENDENCIES = $(DEPS) @@ -703,6 +708,7 @@ testModule_LDADD = $(LDADDS) noinst_LTLIBRARIES = testdso.la testdso_la_SOURCES = testdso.c testdso_la_LDFLAGS = -module -no-undefined -avoid-version -rpath $(libdir) +BUILT_SOURCES = testapi.c testapi_SOURCES = testapi.c testapi_LDFLAGS = testapi_DEPENDENCIES = $(DEPS) @@ -711,7 +717,8 @@ runxmlconf_SOURCES = runxmlconf.c runxmlconf_LDFLAGS = runxmlconf_DEPENDENCIES = $(DEPS) runxmlconf_LDADD = $(LDADDS) -CLEANFILES = xml2Conf.sh *.gcda *.gcno +CLEANFILES = runxmlconf.log test.out xml2Conf.sh *.gcda *.gcno *.res +DISTCLEANFILES = COPYING missing.lst confexecdir = $(libdir) confexec_DATA = xml2Conf.sh CVS_EXTRA_DIST = @@ -722,10 +729,10 @@ EXTRA_DIST = xml2-config.in xml2Conf.sh.in libxml.spec.in libxml2.spec \ example/Makefile.am example/gjobread.c example/gjobs.xml \ $(man_MANS) libxml-2.0.pc.in libxml-2.0-uninstalled.pc.in \ trionan.c trionan.h triostr.c triostr.h trio.c trio.h \ - triop.h triodef.h libxml.h elfgcchack.h xzlib.h \ - testThreadsWin32.c genUnicode.py TODO_SCHEMAS \ + triop.h triodef.h libxml.h elfgcchack.h xzlib.h buf.h \ + enc.h save.h testThreadsWin32.c genUnicode.py TODO_SCHEMAS \ dbgen.pl dbgenattr.pl regressions.py regressions.xml \ - README.tests Makefile.tests libxml2.syms \ + README.tests Makefile.tests libxml2.syms timsort.h \ $(CVS_EXTRA_DIST) pkgconfigdir = $(libdir)/pkgconfig @@ -744,12 +751,12 @@ EXAMPLES_DIR = $(BASE_DIR)/$(DOC_MODULE)/examples # LCOV = /usr/bin/lcov GENHTML = /usr/bin/genhtml -all: config.h +all: $(BUILT_SOURCES) config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj -am--refresh: +am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ @@ -785,10 +792,8 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): config.h: stamp-h1 - @if test ! -f $@; then \ - rm -f stamp-h1; \ - $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ - else :; fi + @if test ! -f $@; then rm -f stamp-h1; else :; fi + @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 @@ -848,9 +853,9 @@ clean-noinstLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libxml2.la: $(libxml2_la_OBJECTS) $(libxml2_la_DEPENDENCIES) +libxml2.la: $(libxml2_la_OBJECTS) $(libxml2_la_DEPENDENCIES) $(EXTRA_libxml2_la_DEPENDENCIES) $(AM_V_CCLD)$(libxml2_la_LINK) -rpath $(libdir) $(libxml2_la_OBJECTS) $(libxml2_la_LIBADD) $(LIBS) -testdso.la: $(testdso_la_OBJECTS) $(testdso_la_DEPENDENCIES) +testdso.la: $(testdso_la_OBJECTS) $(testdso_la_DEPENDENCIES) $(EXTRA_testdso_la_DEPENDENCIES) $(AM_V_CCLD)$(testdso_la_LINK) $(testdso_la_OBJECTS) $(testdso_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @@ -904,67 +909,70 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -runsuite$(EXEEXT): $(runsuite_OBJECTS) $(runsuite_DEPENDENCIES) +runsuite$(EXEEXT): $(runsuite_OBJECTS) $(runsuite_DEPENDENCIES) $(EXTRA_runsuite_DEPENDENCIES) @rm -f runsuite$(EXEEXT) $(AM_V_CCLD)$(runsuite_LINK) $(runsuite_OBJECTS) $(runsuite_LDADD) $(LIBS) -runtest$(EXEEXT): $(runtest_OBJECTS) $(runtest_DEPENDENCIES) +runtest$(EXEEXT): $(runtest_OBJECTS) $(runtest_DEPENDENCIES) $(EXTRA_runtest_DEPENDENCIES) @rm -f runtest$(EXEEXT) $(AM_V_CCLD)$(runtest_LINK) $(runtest_OBJECTS) $(runtest_LDADD) $(LIBS) -runxmlconf$(EXEEXT): $(runxmlconf_OBJECTS) $(runxmlconf_DEPENDENCIES) +runxmlconf$(EXEEXT): $(runxmlconf_OBJECTS) $(runxmlconf_DEPENDENCIES) $(EXTRA_runxmlconf_DEPENDENCIES) @rm -f runxmlconf$(EXEEXT) $(AM_V_CCLD)$(runxmlconf_LINK) $(runxmlconf_OBJECTS) $(runxmlconf_LDADD) $(LIBS) -testAutomata$(EXEEXT): $(testAutomata_OBJECTS) $(testAutomata_DEPENDENCIES) +testAutomata$(EXEEXT): $(testAutomata_OBJECTS) $(testAutomata_DEPENDENCIES) $(EXTRA_testAutomata_DEPENDENCIES) @rm -f testAutomata$(EXEEXT) $(AM_V_CCLD)$(testAutomata_LINK) $(testAutomata_OBJECTS) $(testAutomata_LDADD) $(LIBS) -testC14N$(EXEEXT): $(testC14N_OBJECTS) $(testC14N_DEPENDENCIES) +testC14N$(EXEEXT): $(testC14N_OBJECTS) $(testC14N_DEPENDENCIES) $(EXTRA_testC14N_DEPENDENCIES) @rm -f testC14N$(EXEEXT) $(AM_V_CCLD)$(testC14N_LINK) $(testC14N_OBJECTS) $(testC14N_LDADD) $(LIBS) -testHTML$(EXEEXT): $(testHTML_OBJECTS) $(testHTML_DEPENDENCIES) +testHTML$(EXEEXT): $(testHTML_OBJECTS) $(testHTML_DEPENDENCIES) $(EXTRA_testHTML_DEPENDENCIES) @rm -f testHTML$(EXEEXT) $(AM_V_CCLD)$(testHTML_LINK) $(testHTML_OBJECTS) $(testHTML_LDADD) $(LIBS) -testModule$(EXEEXT): $(testModule_OBJECTS) $(testModule_DEPENDENCIES) +testModule$(EXEEXT): $(testModule_OBJECTS) $(testModule_DEPENDENCIES) $(EXTRA_testModule_DEPENDENCIES) @rm -f testModule$(EXEEXT) $(AM_V_CCLD)$(testModule_LINK) $(testModule_OBJECTS) $(testModule_LDADD) $(LIBS) -testReader$(EXEEXT): $(testReader_OBJECTS) $(testReader_DEPENDENCIES) +testReader$(EXEEXT): $(testReader_OBJECTS) $(testReader_DEPENDENCIES) $(EXTRA_testReader_DEPENDENCIES) @rm -f testReader$(EXEEXT) $(AM_V_CCLD)$(testReader_LINK) $(testReader_OBJECTS) $(testReader_LDADD) $(LIBS) -testRegexp$(EXEEXT): $(testRegexp_OBJECTS) $(testRegexp_DEPENDENCIES) +testRegexp$(EXEEXT): $(testRegexp_OBJECTS) $(testRegexp_DEPENDENCIES) $(EXTRA_testRegexp_DEPENDENCIES) @rm -f testRegexp$(EXEEXT) $(AM_V_CCLD)$(testRegexp_LINK) $(testRegexp_OBJECTS) $(testRegexp_LDADD) $(LIBS) -testRelax$(EXEEXT): $(testRelax_OBJECTS) $(testRelax_DEPENDENCIES) +testRelax$(EXEEXT): $(testRelax_OBJECTS) $(testRelax_DEPENDENCIES) $(EXTRA_testRelax_DEPENDENCIES) @rm -f testRelax$(EXEEXT) $(AM_V_CCLD)$(testRelax_LINK) $(testRelax_OBJECTS) $(testRelax_LDADD) $(LIBS) -testSAX$(EXEEXT): $(testSAX_OBJECTS) $(testSAX_DEPENDENCIES) +testSAX$(EXEEXT): $(testSAX_OBJECTS) $(testSAX_DEPENDENCIES) $(EXTRA_testSAX_DEPENDENCIES) @rm -f testSAX$(EXEEXT) $(AM_V_CCLD)$(testSAX_LINK) $(testSAX_OBJECTS) $(testSAX_LDADD) $(LIBS) -testSchemas$(EXEEXT): $(testSchemas_OBJECTS) $(testSchemas_DEPENDENCIES) +testSchemas$(EXEEXT): $(testSchemas_OBJECTS) $(testSchemas_DEPENDENCIES) $(EXTRA_testSchemas_DEPENDENCIES) @rm -f testSchemas$(EXEEXT) $(AM_V_CCLD)$(testSchemas_LINK) $(testSchemas_OBJECTS) $(testSchemas_LDADD) $(LIBS) -testThreads$(EXEEXT): $(testThreads_OBJECTS) $(testThreads_DEPENDENCIES) +testThreads$(EXEEXT): $(testThreads_OBJECTS) $(testThreads_DEPENDENCIES) $(EXTRA_testThreads_DEPENDENCIES) @rm -f testThreads$(EXEEXT) $(AM_V_CCLD)$(testThreads_LINK) $(testThreads_OBJECTS) $(testThreads_LDADD) $(LIBS) -testURI$(EXEEXT): $(testURI_OBJECTS) $(testURI_DEPENDENCIES) +testURI$(EXEEXT): $(testURI_OBJECTS) $(testURI_DEPENDENCIES) $(EXTRA_testURI_DEPENDENCIES) @rm -f testURI$(EXEEXT) $(AM_V_CCLD)$(testURI_LINK) $(testURI_OBJECTS) $(testURI_LDADD) $(LIBS) -testXPath$(EXEEXT): $(testXPath_OBJECTS) $(testXPath_DEPENDENCIES) +testXPath$(EXEEXT): $(testXPath_OBJECTS) $(testXPath_DEPENDENCIES) $(EXTRA_testXPath_DEPENDENCIES) @rm -f testXPath$(EXEEXT) $(AM_V_CCLD)$(testXPath_LINK) $(testXPath_OBJECTS) $(testXPath_LDADD) $(LIBS) -testapi$(EXEEXT): $(testapi_OBJECTS) $(testapi_DEPENDENCIES) +testapi$(EXEEXT): $(testapi_OBJECTS) $(testapi_DEPENDENCIES) $(EXTRA_testapi_DEPENDENCIES) @rm -f testapi$(EXEEXT) $(AM_V_CCLD)$(testapi_LINK) $(testapi_OBJECTS) $(testapi_LDADD) $(LIBS) -testchar$(EXEEXT): $(testchar_OBJECTS) $(testchar_DEPENDENCIES) +testchar$(EXEEXT): $(testchar_OBJECTS) $(testchar_DEPENDENCIES) $(EXTRA_testchar_DEPENDENCIES) @rm -f testchar$(EXEEXT) $(AM_V_CCLD)$(testchar_LINK) $(testchar_OBJECTS) $(testchar_LDADD) $(LIBS) -testdict$(EXEEXT): $(testdict_OBJECTS) $(testdict_DEPENDENCIES) +testdict$(EXEEXT): $(testdict_OBJECTS) $(testdict_DEPENDENCIES) $(EXTRA_testdict_DEPENDENCIES) @rm -f testdict$(EXEEXT) $(AM_V_CCLD)$(testdict_LINK) $(testdict_OBJECTS) $(testdict_LDADD) $(LIBS) -testrecurse$(EXEEXT): $(testrecurse_OBJECTS) $(testrecurse_DEPENDENCIES) +testlimits$(EXEEXT): $(testlimits_OBJECTS) $(testlimits_DEPENDENCIES) $(EXTRA_testlimits_DEPENDENCIES) + @rm -f testlimits$(EXEEXT) + $(AM_V_CCLD)$(testlimits_LINK) $(testlimits_OBJECTS) $(testlimits_LDADD) $(LIBS) +testrecurse$(EXEEXT): $(testrecurse_OBJECTS) $(testrecurse_DEPENDENCIES) $(EXTRA_testrecurse_DEPENDENCIES) @rm -f testrecurse$(EXEEXT) $(AM_V_CCLD)$(testrecurse_LINK) $(testrecurse_OBJECTS) $(testrecurse_LDADD) $(LIBS) -xmlcatalog$(EXEEXT): $(xmlcatalog_OBJECTS) $(xmlcatalog_DEPENDENCIES) +xmlcatalog$(EXEEXT): $(xmlcatalog_OBJECTS) $(xmlcatalog_DEPENDENCIES) $(EXTRA_xmlcatalog_DEPENDENCIES) @rm -f xmlcatalog$(EXEEXT) $(AM_V_CCLD)$(xmlcatalog_LINK) $(xmlcatalog_OBJECTS) $(xmlcatalog_LDADD) $(LIBS) -xmllint$(EXEEXT): $(xmllint_OBJECTS) $(xmllint_DEPENDENCIES) +xmllint$(EXEEXT): $(xmllint_OBJECTS) $(xmllint_DEPENDENCIES) $(EXTRA_xmllint_DEPENDENCIES) @rm -f xmllint$(EXEEXT) $(AM_V_CCLD)$(xmllint_LINK) $(xmllint_OBJECTS) $(xmllint_LDADD) $(LIBS) install-binSCRIPTS: $(bin_SCRIPTS) @@ -998,9 +1006,7 @@ uninstall-binSCRIPTS: @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files + dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -1013,6 +1019,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HTMLtree.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SAX.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SAX2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/buf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c14n.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/catalog.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chvalid.Plo@am__quote@ @@ -1044,13 +1051,15 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testRelax.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testSAX.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testSchemas.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testThreads@THREADS_W32@.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testThreads.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testThreadsWin32.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testURI.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testXPath.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testapi.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testchar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testdict.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testdso.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testlimits.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testrecurse.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tree.Plo@am__quote@ @@ -1080,26 +1089,23 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -1144,9 +1150,7 @@ uninstall-man1: sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - test -z "$$files" || { \ - echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(man1dir)" && rm -f $$files; } + dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) install-man3: $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man3dir)" || $(MKDIR_P) "$(DESTDIR)$(man3dir)" @@ -1182,9 +1186,7 @@ uninstall-man3: sed -n '/\.3[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - test -z "$$files" || { \ - echo " ( cd '$(DESTDIR)$(man3dir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(man3dir)" && rm -f $$files; } + dir='$(DESTDIR)$(man3dir)'; $(am__uninstall_files_from_dir) install-confexecDATA: $(confexec_DATA) @$(NORMAL_INSTALL) test -z "$(confexecdir)" || $(MKDIR_P) "$(DESTDIR)$(confexecdir)" @@ -1202,9 +1204,7 @@ uninstall-confexecDATA: @$(NORMAL_UNINSTALL) @list='$(confexec_DATA)'; test -n "$(confexecdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(confexecdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(confexecdir)" && rm -f $$files + dir='$(DESTDIR)$(confexecdir)'; $(am__uninstall_files_from_dir) install-m4dataDATA: $(m4data_DATA) @$(NORMAL_INSTALL) test -z "$(m4datadir)" || $(MKDIR_P) "$(DESTDIR)$(m4datadir)" @@ -1222,9 +1222,7 @@ uninstall-m4dataDATA: @$(NORMAL_UNINSTALL) @list='$(m4data_DATA)'; test -n "$(m4datadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(m4datadir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(m4datadir)" && rm -f $$files + dir='$(DESTDIR)$(m4datadir)'; $(am__uninstall_files_from_dir) install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" @@ -1242,9 +1240,7 @@ uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files + dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. @@ -1469,7 +1465,11 @@ dist-gzip: distdir $(am__remove_distdir) dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__remove_distdir) dist-lzma: distdir @@ -1477,7 +1477,7 @@ dist-lzma: distdir $(am__remove_distdir) dist-xz: distdir - tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir @@ -1508,6 +1508,8 @@ distcheck: dist bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ @@ -1517,7 +1519,7 @@ distcheck: dist *.zip*) \ unzip $(distdir).zip ;;\ esac - chmod -R a-w $(distdir); chmod a+w $(distdir) + chmod -R a-w $(distdir); chmod u+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) @@ -1527,6 +1529,7 @@ distcheck: dist && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ @@ -1555,8 +1558,16 @@ distcheck: dist list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: - @$(am__cd) '$(distuninstallcheck_dir)' \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ @@ -1573,7 +1584,8 @@ distcleancheck: distclean $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am -check: check-recursive +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(MANS) $(DATA) \ config.h install-binPROGRAMS: install-libLTLIBRARIES @@ -1583,7 +1595,8 @@ installdirs-am: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(confexecdir)" "$(DESTDIR)$(m4datadir)" "$(DESTDIR)$(pkgconfigdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done -install: install-recursive +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive @@ -1593,10 +1606,15 @@ install-am: all-am installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -1605,10 +1623,12 @@ clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ @@ -1691,34 +1711,35 @@ uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \ uninstall-man: uninstall-man1 uninstall-man3 -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ - ctags-recursive install-am install-strip tags-recursive +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ + ctags-recursive install install-am install-strip \ + tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstLTLIBRARIES clean-noinstPROGRAMS ctags \ ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-hook \ - dist-lzma dist-shar dist-tarZ dist-xz dist-zip distcheck \ - distclean distclean-compile distclean-generic distclean-hdr \ - distclean-libtool distclean-tags distcleancheck distdir \ - distuninstallcheck dvi dvi-am html html-am info info-am \ - install install-am install-binPROGRAMS install-binSCRIPTS \ - install-confexecDATA install-data install-data-am \ - install-data-local install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-libLTLIBRARIES install-m4dataDATA \ - install-man install-man1 install-man3 install-pdf \ - install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-binPROGRAMS \ - uninstall-binSCRIPTS uninstall-confexecDATA \ - uninstall-libLTLIBRARIES uninstall-local uninstall-m4dataDATA \ - uninstall-man uninstall-man1 uninstall-man3 \ - uninstall-pkgconfigDATA + dist-lzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ + distcheck distclean distclean-compile distclean-generic \ + distclean-hdr distclean-libtool distclean-tags distcleancheck \ + distdir distuninstallcheck dvi dvi-am html html-am info \ + info-am install install-am install-binPROGRAMS \ + install-binSCRIPTS install-confexecDATA install-data \ + install-data-am install-data-local install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-libLTLIBRARIES \ + install-m4dataDATA install-man install-man1 install-man3 \ + install-pdf install-pdf-am install-pkgconfigDATA install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-recursive uninstall uninstall-am \ + uninstall-binPROGRAMS uninstall-binSCRIPTS \ + uninstall-confexecDATA uninstall-libLTLIBRARIES \ + uninstall-local uninstall-m4dataDATA uninstall-man \ + uninstall-man1 uninstall-man3 uninstall-pkgconfigDATA # that one forces the rebuild when "make rebuild" is run on doc/ @@ -1738,28 +1759,25 @@ testapi.c: $(srcdir)/gentest.py #testOOM_LDADD= $(LDADDS) runtests: + [ -d test ] || $(LN_S) $(srcdir)/test . + [ -d result ] || $(LN_S) $(srcdir)/result . $(CHECKER) ./runtest$(EXEEXT) && $(CHECKER) ./testrecurse$(EXEEXT) &&$(CHECKER) ./testapi$(EXEEXT) && $(CHECKER) ./testchar$(EXEEXT)&& $(CHECKER) ./testdict$(EXEEXT) && $(CHECKER) ./runxmlconf$(EXEEXT) - @(if [ "@PYTHON_SUBDIR@" != "" ] ; then cd python ; \ - $(MAKE) MAKEFLAGS+=--silent tests ; fi) + @(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; \ + $(MAKE) tests ; fi) check: all runtests -check-valgrind: all +check-valgrind valgrind: all @echo '## Running the regression tests under Valgrind' @echo '## Go get a cup of coffee it is gonna take a while ...' - $(MAKE) CHECKER='valgrind -q' check + $(MAKE) CHECKER='valgrind -q' runtests testall : tests SVGtests SAXtests -tests: XMLtests XMLenttests NStests IDtests Errtests APItests @READER_TEST@ @TEST_SAX@ @TEST_PUSH@ @TEST_HTML@ @TEST_PHTML@ @TEST_VALID@ URItests @TEST_PATTERN@ @TEST_XPATH@ @TEST_XPTR@ @TEST_XINCLUDE@ @TEST_C14N@ @TEST_DEBUG@ @TEST_CATALOG@ @TEST_REGEXPS@ @TEST_SCHEMAS@ @TEST_SCHEMATRON@ @TEST_THREADS@ Timingtests @TEST_VTIME@ @PYTHON_TESTS@ @TEST_MODULES@ - @(if [ "@PYTHON_SUBDIR@" != "" ] ; then cd python ; \ - $(MAKE) MAKEFLAGS+=--silent tests ; fi) - @(cd doc/examples ; $(MAKE) MAKEFLAGS+=--silent tests) - -valgrind: - @echo '## Running the regression tests under Valgrind' - @echo '## Go get a cup of coffee it is gonna take a while ...' - $(MAKE) CHECKER='valgrind -q' tests +tests: XMLtests XMLenttests NStests IDtests Errtests APItests $(READER_TEST) $(TEST_SAX) $(TEST_PUSH) $(TEST_HTML) $(TEST_PHTML) $(TEST_VALID) URItests $(TEST_PATTERN) $(TEST_XPATH) $(TEST_XPTR) $(TEST_XINCLUDE) $(TEST_C14N) $(TEST_DEBUG) $(TEST_CATALOG) $(TEST_REGEXPS) $(TEST_SCHEMAS) $(TEST_SCHEMATRON) $(TEST_THREADS) Timingtests $(TEST_VTIME) $(PYTHON_TESTS) $(TEST_MODULES) + @(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; \ + $(MAKE) tests ; fi) + @(cd doc/examples ; $(MAKE) tests) APItests: testapi$(EXEEXT) @echo "## Running the API regression tests this may take a little while" @@ -2665,7 +2683,7 @@ SchemasPythonTests: echo "## It is normal to see 11 errors reported" ; \ $(CHECKER) $(PYTHON) $(srcdir)/check-xsddata-test-suite.py ; \ fi) - @(if [ -x $(PYTHON) -a -d xstc ] ; then cd xstc ; $(MAKE) CHECKER="$(CHECKER)" MAKEFLAGS+=--silent pytests ; fi) + @(if [ -x $(PYTHON) -a -d xstc ] ; then cd xstc ; $(MAKE) CHECKER="$(CHECKER)" pytests ; fi) Patterntests: xmllint$(EXEEXT) @(echo > .memdump) @@ -2697,8 +2715,8 @@ ModuleTests: testModule$(EXEEXT) testdso.la cleanup: -@(find . -name .\#\* -exec rm {} \;) - -@(find . -name \*.gcda -o *.gcno -exec rm {} \;) - -@(find . -name \*.orig -o -name \*.rej -o -name \*.old -exec rm {} \;) + -@(find . -name \*.gcda -o -name \*.gcno -exec rm -f {} \;) + -@(find . -name \*.orig -o -name \*.rej -o -name \*.old -exec rm -f {} \;) dist-hook: cleanup libxml2.spec -cp libxml2.spec $(distdir) @@ -2728,13 +2746,13 @@ xml2Conf.sh: xml2Conf.sh.in Makefile && mv xml2Conf.tmp xml2Conf.sh install-data-local: - @MKDIR_P@ $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE) - -@INSTALL@ -m 0644 $(srcdir)/Copyright $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE) - @MKDIR_P@ $(DESTDIR)$(EXAMPLES_DIR) - -@INSTALL@ -m 0644 $(srcdir)/xmllint.c $(DESTDIR)$(EXAMPLES_DIR) - -@INSTALL@ -m 0644 $(srcdir)/testSAX.c $(DESTDIR)$(EXAMPLES_DIR) - -@INSTALL@ -m 0644 $(srcdir)/testHTML.c $(DESTDIR)$(EXAMPLES_DIR) - -@INSTALL@ -m 0644 $(srcdir)/testXPath.c $(DESTDIR)$(EXAMPLES_DIR) + $(MKDIR_P) $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE) + -$(INSTALL) -m 0644 $(srcdir)/Copyright $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE) + $(MKDIR_P) $(DESTDIR)$(EXAMPLES_DIR) + -$(INSTALL) -m 0644 $(srcdir)/xmllint.c $(DESTDIR)$(EXAMPLES_DIR) + -$(INSTALL) -m 0644 $(srcdir)/testSAX.c $(DESTDIR)$(EXAMPLES_DIR) + -$(INSTALL) -m 0644 $(srcdir)/testHTML.c $(DESTDIR)$(EXAMPLES_DIR) + -$(INSTALL) -m 0644 $(srcdir)/testXPath.c $(DESTDIR)$(EXAMPLES_DIR) uninstall-local: rm -f $(DESTDIR)$(EXAMPLES_DIR)/testXPath.c diff --git a/SAX.c b/SAX.c index 8e5d460..292af57 100644 --- a/SAX.c +++ b/SAX.c @@ -41,7 +41,7 @@ void initxmlDefaultSAXHandler(xmlSAXHandlerV1 *hdlr, int warning) { - + if(hdlr->initialized == 1) return; diff --git a/SAX2.c b/SAX2.c index 126a79f..a24abc8 100644 --- a/SAX2.c +++ b/SAX2.c @@ -45,7 +45,7 @@ *> values "system" and "public". I have made the default be "system" to *> match yours. */ -#define TODO \ +#define TODO \ xmlGenericError(xmlGenericErrorContext, \ "Unimplemented block at %s:%d\n", \ __FILE__, __LINE__); @@ -57,12 +57,29 @@ */ static void xmlSAX2ErrMemory(xmlParserCtxtPtr ctxt, const char *msg) { + xmlStructuredErrorFunc schannel = NULL; + const char *str1 = "out of memory\n"; + if (ctxt != NULL) { - if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL)) - ctxt->sax->error(ctxt->userData, "%s: out of memory\n", msg); + ctxt->errNo = XML_ERR_NO_MEMORY; + if ((ctxt->sax != NULL) && (ctxt->sax->initialized == XML_SAX2_MAGIC)) + schannel = ctxt->sax->serror; + __xmlRaiseError(schannel, + ctxt->vctxt.error, ctxt->vctxt.userData, + ctxt, NULL, XML_FROM_PARSER, XML_ERR_NO_MEMORY, + XML_ERR_ERROR, NULL, 0, (const char *) str1, + NULL, NULL, 0, 0, + msg, (const char *) str1, NULL); ctxt->errNo = XML_ERR_NO_MEMORY; ctxt->instate = XML_PARSER_EOF; ctxt->disableSAX = 1; + } else { + __xmlRaiseError(schannel, + NULL, NULL, + ctxt, NULL, XML_FROM_PARSER, XML_ERR_NO_MEMORY, + XML_ERR_ERROR, NULL, 0, (const char *) str1, + NULL, NULL, 0, 0, + msg, (const char *) str1, NULL); } } @@ -126,7 +143,7 @@ xmlFatalErrMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error, if (ctxt != NULL) ctxt->errNo = error; __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_PARSER, error, - XML_ERR_FATAL, NULL, 0, + XML_ERR_FATAL, NULL, 0, (const char *) str1, (const char *) str2, NULL, 0, 0, msg, str1, str2); if (ctxt != NULL) { @@ -157,7 +174,7 @@ xmlWarnMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error, if (ctxt != NULL) ctxt->errNo = error; __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_PARSER, error, - XML_ERR_WARNING, NULL, 0, + XML_ERR_WARNING, NULL, 0, (const char *) str1, NULL, NULL, 0, 0, msg, str1); } @@ -182,7 +199,7 @@ xmlNsErrMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error, if (ctxt != NULL) ctxt->errNo = error; __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_NAMESPACE, error, - XML_ERR_ERROR, NULL, 0, + XML_ERR_ERROR, NULL, 0, (const char *) str1, (const char *) str2, NULL, 0, 0, msg, str1, str2); } @@ -206,7 +223,7 @@ xmlNsWarnMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error, if (ctxt != NULL) ctxt->errNo = error; __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_NAMESPACE, error, - XML_ERR_WARNING, NULL, 0, + XML_ERR_WARNING, NULL, 0, (const char *) str1, (const char *) str2, NULL, 0, 0, msg, str1, str2); } @@ -240,7 +257,7 @@ xmlSAX2GetSystemId(void *ctx) { xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; if ((ctx == NULL) || (ctxt->input == NULL)) return(NULL); - return((const xmlChar *) ctxt->input->filename); + return((const xmlChar *) ctxt->input->filename); } /** @@ -355,7 +372,7 @@ xmlSAX2InternalSubset(void *ctx, const xmlChar *name, xmlFreeDtd(dtd); ctxt->myDoc->intSubset = NULL; } - ctxt->myDoc->intSubset = + ctxt->myDoc->intSubset = xmlCreateIntSubset(ctxt->myDoc, name, ExternalID, SystemID); if (ctxt->myDoc->intSubset == NULL) xmlSAX2ErrMemory(ctxt, "xmlSAX2InternalSubset"); @@ -621,8 +638,8 @@ xmlSAX2GetParameterEntity(void *ctx, const xmlChar *name) /** * xmlSAX2EntityDecl: * @ctx: the user data (XML parser context) - * @name: the entity name - * @type: the entity type + * @name: the entity name + * @type: the entity type * @publicId: The public ID of the entity * @systemId: The system ID of the entity * @content: the entity value (without processing). @@ -657,7 +674,7 @@ xmlSAX2EntityDecl(void *ctx, const xmlChar *name, int type, base = ctxt->input->filename; if (base == NULL) base = ctxt->directory; - + URI = xmlBuildURI(systemId, (const xmlChar *) base); ent->URI = URI; } @@ -666,7 +683,7 @@ xmlSAX2EntityDecl(void *ctx, const xmlChar *name, int type, systemId, content); if ((ent == NULL) && (ctxt->pedantic) && (ctxt->sax != NULL) && (ctxt->sax->warning != NULL)) - ctxt->sax->warning(ctxt->userData, + ctxt->sax->warning(ctxt->userData, "Entity(%s) already defined in the external subset\n", name); if ((ent != NULL) && (ent->URI == NULL) && (systemId != NULL)) { xmlChar *URI; @@ -676,7 +693,7 @@ xmlSAX2EntityDecl(void *ctx, const xmlChar *name, int type, base = ctxt->input->filename; if (base == NULL) base = ctxt->directory; - + URI = xmlBuildURI(systemId, (const xmlChar *) base); ent->URI = URI; } @@ -691,8 +708,8 @@ xmlSAX2EntityDecl(void *ctx, const xmlChar *name, int type, * xmlSAX2AttributeDecl: * @ctx: the user data (XML parser context) * @elem: the name of the element - * @fullname: the attribute name - * @type: the attribute type + * @fullname: the attribute name + * @type: the attribute type * @def: the type of default value * @defaultValue: the attribute default value * @tree: the tree of enumerated value set @@ -735,7 +752,7 @@ xmlSAX2AttributeDecl(void *ctx, const xmlChar *elem, const xmlChar *fullname, (xmlAttributeDefault) def, defaultValue, tree); else if (ctxt->inSubset == 2) attr = xmlAddAttributeDecl(&ctxt->vctxt, ctxt->myDoc->extSubset, elem, - name, prefix, (xmlAttributeType) type, + name, prefix, (xmlAttributeType) type, (xmlAttributeDefault) def, defaultValue, tree); else { xmlFatalErrMsg(ctxt, XML_ERR_INTERNAL_ERROR, @@ -761,8 +778,8 @@ xmlSAX2AttributeDecl(void *ctx, const xmlChar *elem, const xmlChar *fullname, /** * xmlSAX2ElementDecl: * @ctx: the user data (XML parser context) - * @name: the element name - * @type: the element type + * @name: the element name + * @type: the element type * @content: the element value tree * * An element definition has been parsed @@ -883,7 +900,7 @@ xmlSAX2UnparsedEntityDecl(void *ctx, const xmlChar *name, publicId, systemId, notationName); if ((ent == NULL) && (ctxt->pedantic) && (ctxt->sax != NULL) && (ctxt->sax->warning != NULL)) - ctxt->sax->warning(ctxt->userData, + ctxt->sax->warning(ctxt->userData, "Entity(%s) already defined in the internal subset\n", name); if ((ent != NULL) && (ent->URI == NULL) && (systemId != NULL)) { xmlChar *URI; @@ -893,7 +910,7 @@ xmlSAX2UnparsedEntityDecl(void *ctx, const xmlChar *name, base = ctxt->input->filename; if (base == NULL) base = ctxt->directory; - + URI = xmlBuildURI(systemId, (const xmlChar *) base); ent->URI = URI; } @@ -903,7 +920,7 @@ xmlSAX2UnparsedEntityDecl(void *ctx, const xmlChar *name, publicId, systemId, notationName); if ((ent == NULL) && (ctxt->pedantic) && (ctxt->sax != NULL) && (ctxt->sax->warning != NULL)) - ctxt->sax->warning(ctxt->userData, + ctxt->sax->warning(ctxt->userData, "Entity(%s) already defined in the external subset\n", name); if ((ent != NULL) && (ent->URI == NULL) && (systemId != NULL)) { xmlChar *URI; @@ -913,7 +930,7 @@ xmlSAX2UnparsedEntityDecl(void *ctx, const xmlChar *name, base = ctxt->input->filename; if (base == NULL) base = ctxt->directory; - + URI = xmlBuildURI(systemId, (const xmlChar *) base); ent->URI = URI; } @@ -1157,12 +1174,12 @@ xmlSAX2AttributeInternal(void *ctx, const xmlChar *fullname, uri = xmlParseURI((const char *)val); if (uri == NULL) { if ((ctxt->sax != NULL) && (ctxt->sax->warning != NULL)) - ctxt->sax->warning(ctxt->userData, + ctxt->sax->warning(ctxt->userData, "xmlns: %s not a valid URI\n", val); } else { if (uri->scheme == NULL) { if ((ctxt->sax != NULL) && (ctxt->sax->warning != NULL)) - ctxt->sax->warning(ctxt->userData, + ctxt->sax->warning(ctxt->userData, "xmlns: URI %s is not absolute\n", val); } xmlFreeURI(uri); @@ -1182,7 +1199,7 @@ xmlSAX2AttributeInternal(void *ctx, const xmlChar *fullname, ctxt->valid &= xmlValidateOneNamespace(&ctxt->vctxt, ctxt->myDoc, ctxt->node, prefix, nsret, val); #endif /* LIBXML_VALID_ENABLED */ - if (name != NULL) + if (name != NULL) xmlFree(name); if (nval != NULL) xmlFree(nval); @@ -1204,7 +1221,7 @@ xmlSAX2AttributeInternal(void *ctx, const xmlChar *fullname, if (val == NULL) { xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElement"); xmlFree(ns); - if (name != NULL) + if (name != NULL) xmlFree(name); return; } @@ -1245,7 +1262,7 @@ xmlSAX2AttributeInternal(void *ctx, const xmlChar *fullname, ctxt->valid &= xmlValidateOneNamespace(&ctxt->vctxt, ctxt->myDoc, ctxt->node, prefix, nsret, value); #endif /* LIBXML_VALID_ENABLED */ - if (name != NULL) + if (name != NULL) xmlFree(name); if (nval != NULL) xmlFree(nval); @@ -1311,7 +1328,7 @@ xmlSAX2AttributeInternal(void *ctx, const xmlChar *fullname, #ifdef LIBXML_VALID_ENABLED if ((!ctxt->html) && ctxt->validate && ctxt->wellFormed && ctxt->myDoc && ctxt->myDoc->intSubset) { - + /* * If we don't substitute entities, the validation should be * done on a value with replaced entities anyway. @@ -1323,7 +1340,7 @@ xmlSAX2AttributeInternal(void *ctx, const xmlChar *fullname, val = xmlStringDecodeEntities(ctxt, value, XML_SUBSTITUTE_REF, 0,0,0); ctxt->depth--; - + if (val == NULL) ctxt->valid &= xmlValidateOneAttribute(&ctxt->vctxt, ctxt->myDoc, ctxt->node, ret, value); @@ -1380,7 +1397,7 @@ xmlSAX2AttributeInternal(void *ctx, const xmlChar *fullname, error: if (nval != NULL) xmlFree(nval); - if (ns != NULL) + if (ns != NULL) xmlFree(ns); } @@ -1479,7 +1496,7 @@ process_external_subset: * - this is a namespace prefix * - the user required for completion in the tree * like XSLT - * - there isn't already an attribute definition + * - there isn't already an attribute definition * in the internal subset overriding it. */ if (((attr->prefix != NULL) && @@ -1568,17 +1585,17 @@ xmlSAX2StartElement(void *ctx, const xmlChar *fullname, const xmlChar **atts) /* * First check on validity: */ - if (ctxt->validate && (ctxt->myDoc->extSubset == NULL) && + if (ctxt->validate && (ctxt->myDoc->extSubset == NULL) && ((ctxt->myDoc->intSubset == NULL) || - ((ctxt->myDoc->intSubset->notations == NULL) && + ((ctxt->myDoc->intSubset->notations == NULL) && (ctxt->myDoc->intSubset->elements == NULL) && - (ctxt->myDoc->intSubset->attributes == NULL) && + (ctxt->myDoc->intSubset->attributes == NULL) && (ctxt->myDoc->intSubset->entities == NULL)))) { xmlErrValid(ctxt, XML_ERR_NO_DTD, "Validation failed: no DTD found !", NULL, NULL); ctxt->validate = 0; } - + /* * Split the full name into a namespace prefix and the tag name @@ -1766,7 +1783,7 @@ xmlSAX2EndElement(void *ctx, const xmlChar *name ATTRIBUTE_UNUSED) else xmlGenericError(xmlGenericErrorContext, "SAX.xmlSAX2EndElement(%s)\n", name); #endif - + /* Capture end position and add node */ if (cur != NULL && ctxt->record_info) { ctxt->nodeInfo->end_pos = ctxt->input->cur - ctxt->input->base; @@ -1783,7 +1800,7 @@ xmlSAX2EndElement(void *ctx, const xmlChar *name ATTRIBUTE_UNUSED) cur); #endif /* LIBXML_VALID_ENABLED */ - + /* * end of parsing of this node. */ @@ -1799,8 +1816,8 @@ xmlSAX2EndElement(void *ctx, const xmlChar *name ATTRIBUTE_UNUSED) * @ctxt: the parser context * @str: the input string * @len: the string length - * - * Remove the entities from an attribute value + * + * Callback for a text node * * Returns the newly allocated string or NULL if not needed or error */ @@ -1833,7 +1850,7 @@ xmlSAX2TextNode(xmlParserCtxtPtr ctxt, const xmlChar *str, int len) { if ((len < (int) (2 * sizeof(void *))) && (ctxt->options & XML_PARSE_COMPACT)) { - /* store the string in the node overrithing properties and nsDef */ + /* store the string in the node overriding properties and nsDef */ xmlChar *tmp = (xmlChar *) &(ret->properties); memcpy(tmp, str, len); tmp[len] = 0; @@ -1865,8 +1882,17 @@ skip: } else ret->content = (xmlChar *) intern; - if (ctxt->input != NULL) - ret->line = ctxt->input->line; + if (ctxt->linenumbers) { + if (ctxt->input != NULL) { + if (ctxt->input->line < 65535) + ret->line = (short) ctxt->input->line; + else { + ret->line = 65535; + if (ctxt->options & XML_PARSE_BIG_LINES) + ret->psvi = (void *) (long) ctxt->input->line; + } + } + } if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue)) xmlRegisterNodeDefaultValue(ret); @@ -1879,7 +1905,7 @@ skip: * @ctxt: the parser context * @str: the input string * @len: the string length - * + * * Remove the entities from an attribute value * * Returns the newly allocated string or NULL if not needed or error @@ -1945,7 +1971,7 @@ xmlSAX2AttributeNs(xmlParserCtxtPtr ctxt, memset(ret, 0, sizeof(xmlAttr)); ret->type = XML_ATTRIBUTE_NODE; - ret->parent = ctxt->node; + ret->parent = ctxt->node; ret->doc = ctxt->myDoc; ret->ns = namespace; @@ -1969,7 +1995,7 @@ xmlSAX2AttributeNs(xmlParserCtxtPtr ctxt, xmlRegisterNodeDefaultValue((xmlNodePtr)ret); } else { if (ctxt->dictNames) - ret = xmlNewNsPropEatName(ctxt->node, namespace, + ret = xmlNewNsPropEatName(ctxt->node, namespace, (xmlChar *) localname, NULL); else ret = xmlNewNsProp(ctxt->node, namespace, localname, NULL); @@ -2055,7 +2081,7 @@ xmlSAX2AttributeNs(xmlParserCtxtPtr ctxt, xmlChar *nvalnorm; xmlChar fn[50]; xmlChar *fullname; - + fullname = xmlBuildQName(localname, prefix, fn, 50); if (fullname != NULL) { ctxt->vctxt.valid = 1; @@ -2170,11 +2196,11 @@ xmlSAX2StartElementNs(void *ctx, /* * First check on validity: */ - if (ctxt->validate && (ctxt->myDoc->extSubset == NULL) && + if (ctxt->validate && (ctxt->myDoc->extSubset == NULL) && ((ctxt->myDoc->intSubset == NULL) || - ((ctxt->myDoc->intSubset->notations == NULL) && + ((ctxt->myDoc->intSubset->notations == NULL) && (ctxt->myDoc->intSubset->elements == NULL) && - (ctxt->myDoc->intSubset->attributes == NULL) && + (ctxt->myDoc->intSubset->attributes == NULL) && (ctxt->myDoc->intSubset->entities == NULL)))) { xmlErrValid(ctxt, XML_ERR_NO_DTD, "Validation failed: no DTD found !", NULL, NULL); @@ -2221,12 +2247,12 @@ xmlSAX2StartElementNs(void *ctx, xmlRegisterNodeDefaultValue(ret); } else { if (ctxt->dictNames) - ret = xmlNewDocNodeEatName(ctxt->myDoc, NULL, + ret = xmlNewDocNodeEatName(ctxt->myDoc, NULL, (xmlChar *) localname, NULL); else if (lname == NULL) ret = xmlNewDocNode(ctxt->myDoc, NULL, localname, NULL); else - ret = xmlNewDocNodeEatName(ctxt->myDoc, NULL, + ret = xmlNewDocNodeEatName(ctxt->myDoc, NULL, (xmlChar *) lname, NULL); if (ret == NULL) { xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElementNs"); @@ -2431,7 +2457,7 @@ xmlSAX2EndElementNs(void *ctx, * @ctx: the user data (XML parser context) * @name: The entity name * - * called when an entity xmlSAX2Reference is detected. + * called when an entity xmlSAX2Reference is detected. */ void xmlSAX2Reference(void *ctx, const xmlChar *name) @@ -2536,7 +2562,7 @@ xmlSAX2Characters(void *ctx, const xmlChar *ch, int len) xmlSAX2ErrMemory(ctxt, "xmlSAX2Characters: huge text node"); return; } - if ((size_t)ctxt->nodelen > SIZE_T_MAX - (size_t)len || + if ((size_t)ctxt->nodelen > SIZE_T_MAX - (size_t)len || (size_t)ctxt->nodemem + (size_t)len > SIZE_T_MAX / 2) { xmlSAX2ErrMemory(ctxt, "xmlSAX2Characters overflow prevented"); return; diff --git a/acinclude.m4 b/acinclude.m4 index 4ff672e..7ad8630 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -2,8 +2,8 @@ dnl Like AC_TRY_EVAL but also errors out if the compiler generates dnl _any_ output. Some compilers might issue warnings which we want dnl to catch. AC_DEFUN([AC_TRY_EVAL2], -[{ (eval echo configure:__oline__: \"[$]$1\") 1>&AC_FD_CC; dnl -(eval [$]$1) 2>&AC_FD_CC; _out=`eval [$]$1 2>&1` && test "x$_out" = x; }]) +[{ (eval echo configure:__oline__: \"[$]$1\") 1>&AS_MESSAGE_LOG_FD; dnl +(eval [$]$1) 2>&AS_MESSAGE_LOG_FD; _out=`eval [$]$1 2>&1` && test "x$_out" = x; }]) dnl Like AC_TRY_COMPILE but calls AC_TRY_EVAL2 instead of AC_TRY_EVAL AC_DEFUN([AC_TRY_COMPILE2], @@ -19,8 +19,8 @@ if AC_TRY_EVAL2(ac_compile); then ifelse([$3], , :, [rm -rf conftest* $3]) else - echo "configure: failed program was:" >&AC_FD_CC - cat conftest.$ac_ext >&AC_FD_CC + echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD ifelse([$4], , , [ rm -rf conftest* $4 ])dnl diff --git a/aclocal.m4 b/aclocal.m4 index fcf3076..78c9ca9 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,7 +1,8 @@ -# generated automatically by aclocal 1.11.1 -*- Autoconf -*- +# generated automatically by aclocal 1.11.3 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, +# Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -19,12 +20,15 @@ You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) -# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software +# Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been @@ -34,7 +38,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.11.1], [], +m4_if([$1], [1.11.3], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -50,19 +54,21 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.11.1])dnl +[AM_AUTOMAKE_VERSION([1.11.3])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. @@ -144,14 +150,14 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 -# Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, +# 2010, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 10 +# serial 12 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, @@ -191,6 +197,7 @@ AC_CACHE_CHECK([dependency style of $depcc], # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -255,7 +262,7 @@ AC_CACHE_CHECK([dependency style of $depcc], break fi ;; - msvisualcpp | msvcmsys) + msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. @@ -320,10 +327,13 @@ AC_DEFUN([AM_DEP_TRACK], if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' + am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- @@ -406,18 +416,6 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 8 - -# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. -AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) - # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, @@ -557,12 +555,15 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, +# Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. @@ -694,12 +695,15 @@ else fi ]) -# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, +# Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. @@ -722,13 +726,14 @@ esac # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. +# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software +# Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 4 +# serial 5 # _AM_MANGLE_OPTION(NAME) # ----------------------- @@ -736,13 +741,13 @@ AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) -# ------------------------------ +# -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) -# ---------------------------------- +# ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) @@ -818,13 +823,13 @@ Check your system clock]) fi AC_MSG_RESULT(yes)]) -# Copyright (C) 2009 Free Software Foundation, Inc. +# Copyright (C) 2009, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 +# serial 2 # AM_SILENT_RULES([DEFAULT]) # -------------------------- @@ -839,18 +844,50 @@ yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac +dnl +dnl A few `make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using `$V' instead of `$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't @@ -873,13 +910,13 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006, 2008 Free Software Foundation, Inc. +# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 2 +# serial 3 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- @@ -888,13 +925,13 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])]) AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- +# -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -916,10 +953,11 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. -AM_MISSING_PROG([AMTAR], [tar]) +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) m4_if([$1], [v7], - [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) diff --git a/buf.c b/buf.c new file mode 100644 index 0000000..fa0c3f6 --- /dev/null +++ b/buf.c @@ -0,0 +1,1301 @@ +/* + * buf.c: memory buffers for libxml2 + * + * new buffer structures and entry points to simplify the maintainance + * of libxml2 and ensure we keep good control over memory allocations + * and stay 64 bits clean. + * The new entry point use the xmlBufPtr opaque structure and + * xmlBuf...() counterparts to the old xmlBuf...() functions + * + * See Copyright for the status of this software. + * + * daniel@veillard.com + */ + +#define IN_LIBXML +#include "libxml.h" + +#include /* for memset() only ! */ +#include +#ifdef HAVE_CTYPE_H +#include +#endif +#ifdef HAVE_STDLIB_H +#include +#endif + +#include +#include +#include +#include "buf.h" + +#define WITH_BUFFER_COMPAT + +/** + * xmlBuf: + * + * A buffer structure. The base of the structure is somehow compatible + * with struct _xmlBuffer to limit risks on application which accessed + * directly the input->buf->buffer structures. + */ + +struct _xmlBuf { + xmlChar *content; /* The buffer content UTF8 */ + unsigned int compat_use; /* for binary compatibility */ + unsigned int compat_size; /* for binary compatibility */ + xmlBufferAllocationScheme alloc; /* The realloc method */ + xmlChar *contentIO; /* in IO mode we may have a different base */ + size_t use; /* The buffer size used */ + size_t size; /* The buffer size */ + xmlBufferPtr buffer; /* wrapper for an old buffer */ + int error; /* an error code if a failure occured */ +}; + +#ifdef WITH_BUFFER_COMPAT +/* + * Macro for compatibility with xmlBuffer to be used after an xmlBuf + * is updated. This makes sure the compat fields are updated too. + */ +#define UPDATE_COMPAT(buf) \ + if (buf->size < INT_MAX) buf->compat_size = buf->size; \ + else buf->compat_size = INT_MAX; \ + if (buf->use < INT_MAX) buf->compat_use = buf->use; \ + else buf->compat_use = INT_MAX; + +/* + * Macro for compatibility with xmlBuffer to be used in all the xmlBuf + * entry points, it checks that the compat fields have not been modified + * by direct call to xmlBuffer function from code compiled before 2.9.0 . + */ +#define CHECK_COMPAT(buf) \ + if (buf->size != (size_t) buf->compat_size) \ + if (buf->compat_size < INT_MAX) \ + buf->size = buf->compat_size; \ + if (buf->use != (size_t) buf->compat_use) \ + if (buf->compat_use < INT_MAX) \ + buf->use = buf->compat_use; + +#else /* ! WITH_BUFFER_COMPAT */ +#define UPDATE_COMPAT(buf) +#define CHECK_COMPAT(buf) +#endif /* WITH_BUFFER_COMPAT */ + +/** + * xmlBufMemoryError: + * @extra: extra informations + * + * Handle an out of memory condition + * To be improved... + */ +static void +xmlBufMemoryError(xmlBufPtr buf, const char *extra) +{ + __xmlSimpleError(XML_FROM_BUFFER, XML_ERR_NO_MEMORY, NULL, NULL, extra); + if ((buf) && (buf->error == 0)) + buf->error = XML_ERR_NO_MEMORY; +} + +/** + * xmlBufOverflowError: + * @extra: extra informations + * + * Handle a buffer overflow error + * To be improved... + */ +static void +xmlBufOverflowError(xmlBufPtr buf, const char *extra) +{ + __xmlSimpleError(XML_FROM_BUFFER, XML_BUF_OVERFLOW, NULL, NULL, extra); + if ((buf) && (buf->error == 0)) + buf->error = XML_BUF_OVERFLOW; +} + + +/** + * xmlBufCreate: + * + * routine to create an XML buffer. + * returns the new structure. + */ +xmlBufPtr +xmlBufCreate(void) { + xmlBufPtr ret; + + ret = (xmlBufPtr) xmlMalloc(sizeof(xmlBuf)); + if (ret == NULL) { + xmlBufMemoryError(NULL, "creating buffer"); + return(NULL); + } + ret->compat_use = 0; + ret->use = 0; + ret->error = 0; + ret->buffer = NULL; + ret->size = xmlDefaultBufferSize; + ret->compat_size = xmlDefaultBufferSize; + ret->alloc = xmlBufferAllocScheme; + ret->content = (xmlChar *) xmlMallocAtomic(ret->size * sizeof(xmlChar)); + if (ret->content == NULL) { + xmlBufMemoryError(ret, "creating buffer"); + xmlFree(ret); + return(NULL); + } + ret->content[0] = 0; + ret->contentIO = NULL; + return(ret); +} + +/** + * xmlBufCreateSize: + * @size: initial size of buffer + * + * routine to create an XML buffer. + * returns the new structure. + */ +xmlBufPtr +xmlBufCreateSize(size_t size) { + xmlBufPtr ret; + + ret = (xmlBufPtr) xmlMalloc(sizeof(xmlBuf)); + if (ret == NULL) { + xmlBufMemoryError(NULL, "creating buffer"); + return(NULL); + } + ret->compat_use = 0; + ret->use = 0; + ret->error = 0; + ret->buffer = NULL; + ret->alloc = xmlBufferAllocScheme; + ret->size = (size ? size+2 : 0); /* +1 for ending null */ + ret->compat_size = (int) ret->size; + if (ret->size){ + ret->content = (xmlChar *) xmlMallocAtomic(ret->size * sizeof(xmlChar)); + if (ret->content == NULL) { + xmlBufMemoryError(ret, "creating buffer"); + xmlFree(ret); + return(NULL); + } + ret->content[0] = 0; + } else + ret->content = NULL; + ret->contentIO = NULL; + return(ret); +} + +/** + * xmlBufDetach: + * @buf: the buffer + * + * Remove the string contained in a buffer and give it back to the + * caller. The buffer is reset to an empty content. + * This doesn't work with immutable buffers as they can't be reset. + * + * Returns the previous string contained by the buffer. + */ +xmlChar * +xmlBufDetach(xmlBufPtr buf) { + xmlChar *ret; + + if (buf == NULL) + return(NULL); + if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) + return(NULL); + if (buf->buffer != NULL) + return(NULL); + if (buf->error) + return(NULL); + + ret = buf->content; + buf->content = NULL; + buf->size = 0; + buf->use = 0; + buf->compat_use = 0; + buf->compat_size = 0; + + return ret; +} + + +/** + * xmlBufCreateStatic: + * @mem: the memory area + * @size: the size in byte + * + * routine to create an XML buffer from an immutable memory area. + * The area won't be modified nor copied, and is expected to be + * present until the end of the buffer lifetime. + * + * returns the new structure. + */ +xmlBufPtr +xmlBufCreateStatic(void *mem, size_t size) { + xmlBufPtr ret; + + if ((mem == NULL) || (size == 0)) + return(NULL); + + ret = (xmlBufPtr) xmlMalloc(sizeof(xmlBuf)); + if (ret == NULL) { + xmlBufMemoryError(NULL, "creating buffer"); + return(NULL); + } + if (size < INT_MAX) { + ret->compat_use = size; + ret->compat_size = size; + } else { + ret->compat_use = INT_MAX; + ret->compat_size = INT_MAX; + } + ret->use = size; + ret->size = size; + ret->alloc = XML_BUFFER_ALLOC_IMMUTABLE; + ret->content = (xmlChar *) mem; + ret->error = 0; + ret->buffer = NULL; + return(ret); +} + +/** + * xmlBufGetAllocationScheme: + * @buf: the buffer + * + * Get the buffer allocation scheme + * + * Returns the scheme or -1 in case of error + */ +int +xmlBufGetAllocationScheme(xmlBufPtr buf) { + if (buf == NULL) { +#ifdef DEBUG_BUFFER + xmlGenericError(xmlGenericErrorContext, + "xmlBufGetAllocationScheme: buf == NULL\n"); +#endif + return(-1); + } + return(buf->alloc); +} + +/** + * xmlBufSetAllocationScheme: + * @buf: the buffer to tune + * @scheme: allocation scheme to use + * + * Sets the allocation scheme for this buffer + * + * returns 0 in case of success and -1 in case of failure + */ +int +xmlBufSetAllocationScheme(xmlBufPtr buf, + xmlBufferAllocationScheme scheme) { + if ((buf == NULL) || (buf->error != 0)) { +#ifdef DEBUG_BUFFER + xmlGenericError(xmlGenericErrorContext, + "xmlBufSetAllocationScheme: buf == NULL or in error\n"); +#endif + return(-1); + } + if ((buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) || + (buf->alloc == XML_BUFFER_ALLOC_IO)) + return(-1); + if ((scheme == XML_BUFFER_ALLOC_DOUBLEIT) || + (scheme == XML_BUFFER_ALLOC_EXACT) || + (scheme == XML_BUFFER_ALLOC_HYBRID) || + (scheme == XML_BUFFER_ALLOC_IMMUTABLE)) { + buf->alloc = scheme; + if (buf->buffer) + buf->buffer->alloc = scheme; + return(0); + } + /* + * Switching a buffer ALLOC_IO has the side effect of initializing + * the contentIO field with the current content + */ + if (scheme == XML_BUFFER_ALLOC_IO) { + buf->alloc = XML_BUFFER_ALLOC_IO; + buf->contentIO = buf->content; + } + return(-1); +} + +/** + * xmlBufFree: + * @buf: the buffer to free + * + * Frees an XML buffer. It frees both the content and the structure which + * encapsulate it. + */ +void +xmlBufFree(xmlBufPtr buf) { + if (buf == NULL) { +#ifdef DEBUG_BUFFER + xmlGenericError(xmlGenericErrorContext, + "xmlBufFree: buf == NULL\n"); +#endif + return; + } + + if ((buf->alloc == XML_BUFFER_ALLOC_IO) && + (buf->contentIO != NULL)) { + xmlFree(buf->contentIO); + } else if ((buf->content != NULL) && + (buf->alloc != XML_BUFFER_ALLOC_IMMUTABLE)) { + xmlFree(buf->content); + } + xmlFree(buf); +} + +/** + * xmlBufEmpty: + * @buf: the buffer + * + * empty a buffer. + */ +void +xmlBufEmpty(xmlBufPtr buf) { + if ((buf == NULL) || (buf->error != 0)) return; + if (buf->content == NULL) return; + CHECK_COMPAT(buf) + buf->use = 0; + if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) { + buf->content = BAD_CAST ""; + } else if ((buf->alloc == XML_BUFFER_ALLOC_IO) && + (buf->contentIO != NULL)) { + size_t start_buf = buf->content - buf->contentIO; + + buf->size += start_buf; + buf->content = buf->contentIO; + buf->content[0] = 0; + } else { + buf->content[0] = 0; + } + UPDATE_COMPAT(buf) +} + +/** + * xmlBufShrink: + * @buf: the buffer to dump + * @len: the number of xmlChar to remove + * + * Remove the beginning of an XML buffer. + * NOTE that this routine behaviour differs from xmlBufferShrink() + * as it will return 0 on error instead of -1 due to size_t being + * used as the return type. + * + * Returns the number of byte removed or 0 in case of failure + */ +size_t +xmlBufShrink(xmlBufPtr buf, size_t len) { + if ((buf == NULL) || (buf->error != 0)) return(0); + CHECK_COMPAT(buf) + if (len == 0) return(0); + if (len > buf->use) return(0); + + buf->use -= len; + if ((buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) || + ((buf->alloc == XML_BUFFER_ALLOC_IO) && (buf->contentIO != NULL))) { + /* + * we just move the content pointer, but also make sure + * the perceived buffer size has shrinked accordingly + */ + buf->content += len; + buf->size -= len; + + /* + * sometimes though it maybe be better to really shrink + * on IO buffers + */ + if ((buf->alloc == XML_BUFFER_ALLOC_IO) && (buf->contentIO != NULL)) { + size_t start_buf = buf->content - buf->contentIO; + if (start_buf >= buf->size) { + memmove(buf->contentIO, &buf->content[0], buf->use); + buf->content = buf->contentIO; + buf->content[buf->use] = 0; + buf->size += start_buf; + } + } + } else { + memmove(buf->content, &buf->content[len], buf->use); + buf->content[buf->use] = 0; + } + UPDATE_COMPAT(buf) + return(len); +} + +/** + * xmlBufGrowInternal: + * @buf: the buffer + * @len: the minimum free size to allocate + * + * Grow the available space of an XML buffer, @len is the target value + * Error checking should be done on buf->error since using the return + * value doesn't work that well + * + * Returns 0 in case of error or the length made available otherwise + */ +static size_t +xmlBufGrowInternal(xmlBufPtr buf, size_t len) { + size_t size; + xmlChar *newbuf; + + if ((buf == NULL) || (buf->error != 0)) return(0); + CHECK_COMPAT(buf) + + if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) return(0); + if (buf->use + len < buf->size) + return(buf->size - buf->use); + + /* + * Windows has a BIG problem on realloc timing, so we try to double + * the buffer size (if that's enough) (bug 146697) + * Apparently BSD too, and it's probably best for linux too + * On an embedded system this may be something to change + */ +#if 1 + if (buf->size > (size_t) len) + size = buf->size * 2; + else + size = buf->use + len + 100; +#else + size = buf->use + len + 100; +#endif + + if ((buf->alloc == XML_BUFFER_ALLOC_IO) && (buf->contentIO != NULL)) { + size_t start_buf = buf->content - buf->contentIO; + + newbuf = (xmlChar *) xmlRealloc(buf->contentIO, start_buf + size); + if (newbuf == NULL) { + xmlBufMemoryError(buf, "growing buffer"); + return(0); + } + buf->contentIO = newbuf; + buf->content = newbuf + start_buf; + } else { + newbuf = (xmlChar *) xmlRealloc(buf->content, size); + if (newbuf == NULL) { + xmlBufMemoryError(buf, "growing buffer"); + return(0); + } + buf->content = newbuf; + } + buf->size = size; + UPDATE_COMPAT(buf) + return(buf->size - buf->use); +} + +/** + * xmlBufGrow: + * @buf: the buffer + * @len: the minimum free size to allocate + * + * Grow the available space of an XML buffer, @len is the target value + * This is been kept compatible with xmlBufferGrow() as much as possible + * + * Returns -1 in case of error or the length made available otherwise + */ +int +xmlBufGrow(xmlBufPtr buf, int len) { + size_t ret; + + if ((buf == NULL) || (len < 0)) return(-1); + if (len == 0) + return(0); + ret = xmlBufGrowInternal(buf, len); + if (buf->error != 0) + return(-1); + return((int) ret); +} + +/** + * xmlBufInflate: + * @buf: the buffer + * @len: the minimum extra free size to allocate + * + * Grow the available space of an XML buffer, adding at least @len bytes + * + * Returns 0 if successful or -1 in case of error + */ +int +xmlBufInflate(xmlBufPtr buf, size_t len) { + if (buf == NULL) return(-1); + xmlBufGrowInternal(buf, len + buf->size); + if (buf->error) + return(-1); + return(0); +} + +/** + * xmlBufDump: + * @file: the file output + * @buf: the buffer to dump + * + * Dumps an XML buffer to a FILE *. + * Returns the number of #xmlChar written + */ +size_t +xmlBufDump(FILE *file, xmlBufPtr buf) { + size_t ret; + + if ((buf == NULL) || (buf->error != 0)) { +#ifdef DEBUG_BUFFER + xmlGenericError(xmlGenericErrorContext, + "xmlBufDump: buf == NULL or in error\n"); +#endif + return(0); + } + if (buf->content == NULL) { +#ifdef DEBUG_BUFFER + xmlGenericError(xmlGenericErrorContext, + "xmlBufDump: buf->content == NULL\n"); +#endif + return(0); + } + CHECK_COMPAT(buf) + if (file == NULL) + file = stdout; + ret = fwrite(buf->content, sizeof(xmlChar), buf->use, file); + return(ret); +} + +/** + * xmlBufContent: + * @buf: the buffer + * + * Function to extract the content of a buffer + * + * Returns the internal content + */ + +xmlChar * +xmlBufContent(const xmlBufPtr buf) +{ + if ((!buf) || (buf->error)) + return NULL; + + return(buf->content); +} + +/** + * xmlBufEnd: + * @buf: the buffer + * + * Function to extract the end of the content of a buffer + * + * Returns the end of the internal content or NULL in case of error + */ + +xmlChar * +xmlBufEnd(const xmlBufPtr buf) +{ + if ((!buf) || (buf->error)) + return NULL; + CHECK_COMPAT(buf) + + return(&buf->content[buf->use]); +} + +/** + * xmlBufAddLen: + * @buf: the buffer + * @len: the size which were added at the end + * + * Sometime data may be added at the end of the buffer without + * using the xmlBuf APIs that is used to expand the used space + * and set the zero terminating at the end of the buffer + * + * Returns -1 in case of error and 0 otherwise + */ +int +xmlBufAddLen(xmlBufPtr buf, size_t len) { + if ((buf == NULL) || (buf->error)) + return(-1); + CHECK_COMPAT(buf) + if (len > (buf->size - buf->use)) + return(-1); + buf->use += len; + UPDATE_COMPAT(buf) + if (buf->size > buf->use) + buf->content[buf->use] = 0; + else + return(-1); + return(0); +} + +/** + * xmlBufErase: + * @buf: the buffer + * @len: the size to erase at the end + * + * Sometime data need to be erased at the end of the buffer + * + * Returns -1 in case of error and 0 otherwise + */ +int +xmlBufErase(xmlBufPtr buf, size_t len) { + if ((buf == NULL) || (buf->error)) + return(-1); + CHECK_COMPAT(buf) + if (len > buf->use) + return(-1); + buf->use -= len; + buf->content[buf->use] = 0; + UPDATE_COMPAT(buf) + return(0); +} + +/** + * xmlBufLength: + * @buf: the buffer + * + * Function to get the length of a buffer + * + * Returns the length of data in the internal content + */ + +size_t +xmlBufLength(const xmlBufPtr buf) +{ + if ((!buf) || (buf->error)) + return 0; + CHECK_COMPAT(buf) + + return(buf->use); +} + +/** + * xmlBufUse: + * @buf: the buffer + * + * Function to get the length of a buffer + * + * Returns the length of data in the internal content + */ + +size_t +xmlBufUse(const xmlBufPtr buf) +{ + if ((!buf) || (buf->error)) + return 0; + CHECK_COMPAT(buf) + + return(buf->use); +} + +/** + * xmlBufAvail: + * @buf: the buffer + * + * Function to find how much free space is allocated but not + * used in the buffer. It does not account for the terminating zero + * usually needed + * + * Returns the amount or 0 if none or an error occured + */ + +size_t +xmlBufAvail(const xmlBufPtr buf) +{ + if ((!buf) || (buf->error)) + return 0; + CHECK_COMPAT(buf) + + return(buf->size - buf->use); +} + +/** + * xmlBufIsEmpty: + * @buf: the buffer + * + * Tell if a buffer is empty + * + * Returns 0 if no, 1 if yes and -1 in case of error + */ +int +xmlBufIsEmpty(const xmlBufPtr buf) +{ + if ((!buf) || (buf->error)) + return(-1); + CHECK_COMPAT(buf) + + return(buf->use == 0); +} + +/** + * xmlBufResize: + * @buf: the buffer to resize + * @size: the desired size + * + * Resize a buffer to accommodate minimum size of @size. + * + * Returns 0 in case of problems, 1 otherwise + */ +int +xmlBufResize(xmlBufPtr buf, size_t size) +{ + unsigned int newSize; + xmlChar* rebuf = NULL; + size_t start_buf; + + if ((buf == NULL) || (buf->error)) + return(0); + CHECK_COMPAT(buf) + + if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) return(0); + + /* Don't resize if we don't have to */ + if (size < buf->size) + return 1; + + /* figure out new size */ + switch (buf->alloc){ + case XML_BUFFER_ALLOC_IO: + case XML_BUFFER_ALLOC_DOUBLEIT: + /*take care of empty case*/ + newSize = (buf->size ? buf->size*2 : size + 10); + while (size > newSize) { + if (newSize > UINT_MAX / 2) { + xmlBufMemoryError(buf, "growing buffer"); + return 0; + } + newSize *= 2; + } + break; + case XML_BUFFER_ALLOC_EXACT: + newSize = size+10; + break; + case XML_BUFFER_ALLOC_HYBRID: + if (buf->use < BASE_BUFFER_SIZE) + newSize = size; + else { + newSize = buf->size * 2; + while (size > newSize) { + if (newSize > UINT_MAX / 2) { + xmlBufMemoryError(buf, "growing buffer"); + return 0; + } + newSize *= 2; + } + } + break; + + default: + newSize = size+10; + break; + } + + if ((buf->alloc == XML_BUFFER_ALLOC_IO) && (buf->contentIO != NULL)) { + start_buf = buf->content - buf->contentIO; + + if (start_buf > newSize) { + /* move data back to start */ + memmove(buf->contentIO, buf->content, buf->use); + buf->content = buf->contentIO; + buf->content[buf->use] = 0; + buf->size += start_buf; + } else { + rebuf = (xmlChar *) xmlRealloc(buf->contentIO, start_buf + newSize); + if (rebuf == NULL) { + xmlBufMemoryError(buf, "growing buffer"); + return 0; + } + buf->contentIO = rebuf; + buf->content = rebuf + start_buf; + } + } else { + if (buf->content == NULL) { + rebuf = (xmlChar *) xmlMallocAtomic(newSize); + } else if (buf->size - buf->use < 100) { + rebuf = (xmlChar *) xmlRealloc(buf->content, newSize); + } else { + /* + * if we are reallocating a buffer far from being full, it's + * better to make a new allocation and copy only the used range + * and free the old one. + */ + rebuf = (xmlChar *) xmlMallocAtomic(newSize); + if (rebuf != NULL) { + memcpy(rebuf, buf->content, buf->use); + xmlFree(buf->content); + rebuf[buf->use] = 0; + } + } + if (rebuf == NULL) { + xmlBufMemoryError(buf, "growing buffer"); + return 0; + } + buf->content = rebuf; + } + buf->size = newSize; + UPDATE_COMPAT(buf) + + return 1; +} + +/** + * xmlBufAdd: + * @buf: the buffer to dump + * @str: the #xmlChar string + * @len: the number of #xmlChar to add + * + * Add a string range to an XML buffer. if len == -1, the length of + * str is recomputed. + * + * Returns 0 successful, a positive error code number otherwise + * and -1 in case of internal or API error. + */ +int +xmlBufAdd(xmlBufPtr buf, const xmlChar *str, int len) { + unsigned int needSize; + + if ((str == NULL) || (buf == NULL) || (buf->error)) + return -1; + CHECK_COMPAT(buf) + + if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) return -1; + if (len < -1) { +#ifdef DEBUG_BUFFER + xmlGenericError(xmlGenericErrorContext, + "xmlBufAdd: len < 0\n"); +#endif + return -1; + } + if (len == 0) return 0; + + if (len < 0) + len = xmlStrlen(str); + + if (len < 0) return -1; + if (len == 0) return 0; + + needSize = buf->use + len + 2; + if (needSize > buf->size){ + if (!xmlBufResize(buf, needSize)){ + xmlBufMemoryError(buf, "growing buffer"); + return XML_ERR_NO_MEMORY; + } + } + + memmove(&buf->content[buf->use], str, len*sizeof(xmlChar)); + buf->use += len; + buf->content[buf->use] = 0; + UPDATE_COMPAT(buf) + return 0; +} + +/** + * xmlBufAddHead: + * @buf: the buffer + * @str: the #xmlChar string + * @len: the number of #xmlChar to add + * + * Add a string range to the beginning of an XML buffer. + * if len == -1, the length of @str is recomputed. + * + * Returns 0 successful, a positive error code number otherwise + * and -1 in case of internal or API error. + */ +int +xmlBufAddHead(xmlBufPtr buf, const xmlChar *str, int len) { + unsigned int needSize; + + if ((buf == NULL) || (buf->error)) + return(-1); + CHECK_COMPAT(buf) + if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) return -1; + if (str == NULL) { +#ifdef DEBUG_BUFFER + xmlGenericError(xmlGenericErrorContext, + "xmlBufAddHead: str == NULL\n"); +#endif + return -1; + } + if (len < -1) { +#ifdef DEBUG_BUFFER + xmlGenericError(xmlGenericErrorContext, + "xmlBufAddHead: len < 0\n"); +#endif + return -1; + } + if (len == 0) return 0; + + if (len < 0) + len = xmlStrlen(str); + + if (len <= 0) return -1; + + if ((buf->alloc == XML_BUFFER_ALLOC_IO) && (buf->contentIO != NULL)) { + size_t start_buf = buf->content - buf->contentIO; + + if (start_buf > (unsigned int) len) { + /* + * We can add it in the space previously shrinked + */ + buf->content -= len; + memmove(&buf->content[0], str, len); + buf->use += len; + buf->size += len; + UPDATE_COMPAT(buf) + return(0); + } + } + needSize = buf->use + len + 2; + if (needSize > buf->size){ + if (!xmlBufResize(buf, needSize)){ + xmlBufMemoryError(buf, "growing buffer"); + return XML_ERR_NO_MEMORY; + } + } + + memmove(&buf->content[len], &buf->content[0], buf->use); + memmove(&buf->content[0], str, len); + buf->use += len; + buf->content[buf->use] = 0; + UPDATE_COMPAT(buf) + return 0; +} + +/** + * xmlBufCat: + * @buf: the buffer to add to + * @str: the #xmlChar string + * + * Append a zero terminated string to an XML buffer. + * + * Returns 0 successful, a positive error code number otherwise + * and -1 in case of internal or API error. + */ +int +xmlBufCat(xmlBufPtr buf, const xmlChar *str) { + if ((buf == NULL) || (buf->error)) + return(-1); + CHECK_COMPAT(buf) + if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) return -1; + if (str == NULL) return -1; + return xmlBufAdd(buf, str, -1); +} + +/** + * xmlBufCCat: + * @buf: the buffer to dump + * @str: the C char string + * + * Append a zero terminated C string to an XML buffer. + * + * Returns 0 successful, a positive error code number otherwise + * and -1 in case of internal or API error. + */ +int +xmlBufCCat(xmlBufPtr buf, const char *str) { + const char *cur; + + if ((buf == NULL) || (buf->error)) + return(-1); + CHECK_COMPAT(buf) + if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) return -1; + if (str == NULL) { +#ifdef DEBUG_BUFFER + xmlGenericError(xmlGenericErrorContext, + "xmlBufCCat: str == NULL\n"); +#endif + return -1; + } + for (cur = str;*cur != 0;cur++) { + if (buf->use + 10 >= buf->size) { + if (!xmlBufResize(buf, buf->use+10)){ + xmlBufMemoryError(buf, "growing buffer"); + return XML_ERR_NO_MEMORY; + } + } + buf->content[buf->use++] = *cur; + } + buf->content[buf->use] = 0; + UPDATE_COMPAT(buf) + return 0; +} + +/** + * xmlBufWriteCHAR: + * @buf: the XML buffer + * @string: the string to add + * + * routine which manages and grows an output buffer. This one adds + * xmlChars at the end of the buffer. + * + * Returns 0 if successful, a positive error code number otherwise + * and -1 in case of internal or API error. + */ +int +xmlBufWriteCHAR(xmlBufPtr buf, const xmlChar *string) { + if ((buf == NULL) || (buf->error)) + return(-1); + CHECK_COMPAT(buf) + if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) + return(-1); + return(xmlBufCat(buf, string)); +} + +/** + * xmlBufWriteChar: + * @buf: the XML buffer output + * @string: the string to add + * + * routine which manage and grows an output buffer. This one add + * C chars at the end of the array. + * + * Returns 0 if successful, a positive error code number otherwise + * and -1 in case of internal or API error. + */ +int +xmlBufWriteChar(xmlBufPtr buf, const char *string) { + if ((buf == NULL) || (buf->error)) + return(-1); + CHECK_COMPAT(buf) + if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) + return(-1); + return(xmlBufCCat(buf, string)); +} + + +/** + * xmlBufWriteQuotedString: + * @buf: the XML buffer output + * @string: the string to add + * + * routine which manage and grows an output buffer. This one writes + * a quoted or double quoted #xmlChar string, checking first if it holds + * quote or double-quotes internally + * + * Returns 0 if successful, a positive error code number otherwise + * and -1 in case of internal or API error. + */ +int +xmlBufWriteQuotedString(xmlBufPtr buf, const xmlChar *string) { + const xmlChar *cur, *base; + if ((buf == NULL) || (buf->error)) + return(-1); + CHECK_COMPAT(buf) + if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) + return(-1); + if (xmlStrchr(string, '\"')) { + if (xmlStrchr(string, '\'')) { +#ifdef DEBUG_BUFFER + xmlGenericError(xmlGenericErrorContext, + "xmlBufWriteQuotedString: string contains quote and double-quotes !\n"); +#endif + xmlBufCCat(buf, "\""); + base = cur = string; + while(*cur != 0){ + if(*cur == '"'){ + if (base != cur) + xmlBufAdd(buf, base, cur - base); + xmlBufAdd(buf, BAD_CAST """, 6); + cur++; + base = cur; + } + else { + cur++; + } + } + if (base != cur) + xmlBufAdd(buf, base, cur - base); + xmlBufCCat(buf, "\""); + } + else{ + xmlBufCCat(buf, "\'"); + xmlBufCat(buf, string); + xmlBufCCat(buf, "\'"); + } + } else { + xmlBufCCat(buf, "\""); + xmlBufCat(buf, string); + xmlBufCCat(buf, "\""); + } + return(0); +} + +/** + * xmlBufFromBuffer: + * @buffer: incoming old buffer to convert to a new one + * + * Helper routine to switch from the old buffer structures in use + * in various APIs. It creates a wrapper xmlBufPtr which will be + * used for internal processing until the xmlBufBackToBuffer() is + * issued. + * + * Returns a new xmlBufPtr unless the call failed and NULL is returned + */ +xmlBufPtr +xmlBufFromBuffer(xmlBufferPtr buffer) { + xmlBufPtr ret; + + if (buffer == NULL) + return(NULL); + + ret = (xmlBufPtr) xmlMalloc(sizeof(xmlBuf)); + if (ret == NULL) { + xmlBufMemoryError(NULL, "creating buffer"); + return(NULL); + } + ret->use = buffer->use; + ret->size = buffer->size; + ret->compat_use = buffer->use; + ret->compat_size = buffer->size; + ret->error = 0; + ret->buffer = buffer; + ret->alloc = buffer->alloc; + ret->content = buffer->content; + ret->contentIO = buffer->contentIO; + + return(ret); +} + +/** + * xmlBufBackToBuffer: + * @buf: new buffer wrapping the old one + * + * Function to be called once internal processing had been done to + * update back the buffer provided by the user. This can lead to + * a failure in case the size accumulated in the xmlBuf is larger + * than what an xmlBuffer can support on 64 bits (INT_MAX) + * The xmlBufPtr @buf wrapper is deallocated by this call in any case. + * + * Returns the old xmlBufferPtr unless the call failed and NULL is returned + */ +xmlBufferPtr +xmlBufBackToBuffer(xmlBufPtr buf) { + xmlBufferPtr ret; + + if ((buf == NULL) || (buf->error)) + return(NULL); + CHECK_COMPAT(buf) + if (buf->buffer == NULL) { + xmlBufFree(buf); + return(NULL); + } + + ret = buf->buffer; + /* + * What to do in case of error in the buffer ??? + */ + if (buf->use > INT_MAX) { + /* + * Worse case, we really allocated and used more than the + * maximum allowed memory for an xmlBuffer on this architecture. + * Keep the buffer but provide a truncated size value. + */ + xmlBufOverflowError(buf, "Used size too big for xmlBuffer"); + ret->use = INT_MAX; + ret->size = INT_MAX; + } else if (buf->size > INT_MAX) { + /* + * milder case, we allocated more than the maximum allowed memory + * for an xmlBuffer on this architecture, but used less than the + * limit. + * Keep the buffer but provide a truncated size value. + */ + xmlBufOverflowError(buf, "Allocated size too big for xmlBuffer"); + ret->size = INT_MAX; + } + ret->use = (int) buf->use; + ret->size = (int) buf->size; + ret->alloc = buf->alloc; + ret->content = buf->content; + ret->contentIO = buf->contentIO; + xmlFree(buf); + return(ret); +} + +/** + * xmlBufMergeBuffer: + * @buf: an xmlBufPtr + * @buffer: the buffer to consume into @buf + * + * The content of @buffer is appended to @buf and @buffer is freed + * + * Returns -1 in case of error, 0 otherwise, in any case @buffer is freed + */ +int +xmlBufMergeBuffer(xmlBufPtr buf, xmlBufferPtr buffer) { + int ret = 0; + + if ((buf == NULL) || (buf->error)) { + xmlBufferFree(buffer); + return(-1); + } + CHECK_COMPAT(buf) + if ((buffer != NULL) && (buffer->content != NULL) && + (buffer->use > 0)) { + ret = xmlBufAdd(buf, buffer->content, buffer->use); + } + xmlBufferFree(buffer); + return(ret); +} + +/** + * xmlBufResetInput: + * @buf: an xmlBufPtr + * @input: an xmlParserInputPtr + * + * Update the input to use the current set of pointers from the buffer. + * + * Returns -1 in case of error, 0 otherwise + */ +int +xmlBufResetInput(xmlBufPtr buf, xmlParserInputPtr input) { + if ((input == NULL) || (buf == NULL) || (buf->error)) + return(-1); + CHECK_COMPAT(buf) + input->base = input->cur = buf->content; + input->end = &buf->content[buf->use]; + return(0); +} + +/** + * xmlBufGetInputBase: + * @buf: an xmlBufPtr + * @input: an xmlParserInputPtr + * + * Get the base of the @input relative to the beginning of the buffer + * + * Returns the size_t corresponding to the displacement + */ +size_t +xmlBufGetInputBase(xmlBufPtr buf, xmlParserInputPtr input) { + size_t base; + + if ((input == NULL) || (buf == NULL) || (buf->error)) + return(-1); + CHECK_COMPAT(buf) + base = input->base - buf->content; + /* + * We could do some pointer arythmetic checks but that's probably + * sufficient. + */ + if (base > buf->size) { + xmlBufOverflowError(buf, "Input reference outside of the buffer"); + base = 0; + } + return(base); +} + +/** + * xmlBufSetInputBaseCur: + * @buf: an xmlBufPtr + * @input: an xmlParserInputPtr + * @base: the base value relative to the beginning of the buffer + * @cur: the cur value relative to the beginning of the buffer + * + * Update the input to use the base and cur relative to the buffer + * after a possible reallocation of its content + * + * Returns -1 in case of error, 0 otherwise + */ +int +xmlBufSetInputBaseCur(xmlBufPtr buf, xmlParserInputPtr input, + size_t base, size_t cur) { + if ((input == NULL) || (buf == NULL) || (buf->error)) + return(-1); + CHECK_COMPAT(buf) + input->base = &buf->content[base]; + input->cur = input->base + cur; + input->end = &buf->content[buf->use]; + return(0); +} diff --git a/buf.h b/buf.h new file mode 100644 index 0000000..e8c7715 --- /dev/null +++ b/buf.h @@ -0,0 +1,72 @@ +/* + * Summary: Internal Interfaces for memory buffers in libxml2 + * Description: this module describes most of the new xmlBuf buffer + * entry points, those are private routines, with a + * few exceptions exported in tree.h. This was added + * in 2.9.0. + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_BUF_H__ +#define __XML_BUF_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +xmlBufPtr xmlBufCreate(void); +xmlBufPtr xmlBufCreateSize(size_t size); +xmlBufPtr xmlBufCreateStatic(void *mem, size_t size); + +int xmlBufSetAllocationScheme(xmlBufPtr buf, + xmlBufferAllocationScheme scheme); +int xmlBufGetAllocationScheme(xmlBufPtr buf); + +void xmlBufFree(xmlBufPtr buf); +void xmlBufEmpty(xmlBufPtr buf); + +/* size_t xmlBufShrink(xmlBufPtr buf, size_t len); */ +int xmlBufGrow(xmlBufPtr buf, int len); +int xmlBufInflate(xmlBufPtr buf, size_t len); +int xmlBufResize(xmlBufPtr buf, size_t len); + +int xmlBufAdd(xmlBufPtr buf, const xmlChar *str, int len); +int xmlBufAddHead(xmlBufPtr buf, const xmlChar *str, int len); +int xmlBufCat(xmlBufPtr buf, const xmlChar *str); +int xmlBufCCat(xmlBufPtr buf, const char *str); +int xmlBufWriteCHAR(xmlBufPtr buf, const xmlChar *string); +int xmlBufWriteChar(xmlBufPtr buf, const char *string); +int xmlBufWriteQuotedString(xmlBufPtr buf, const xmlChar *string); + +size_t xmlBufAvail(const xmlBufPtr buf); +size_t xmlBufLength(const xmlBufPtr buf); +/* size_t xmlBufUse(const xmlBufPtr buf); */ +int xmlBufIsEmpty(const xmlBufPtr buf); +int xmlBufAddLen(xmlBufPtr buf, size_t len); +int xmlBufErase(xmlBufPtr buf, size_t len); + +/* const xmlChar * xmlBufContent(const xmlBufPtr buf); */ +/* const xmlChar * xmlBufEnd(const xmlBufPtr buf); */ + +xmlChar * xmlBufDetach(xmlBufPtr buf); + +size_t xmlBufDump(FILE *file, xmlBufPtr buf); + +xmlBufPtr xmlBufFromBuffer(xmlBufferPtr buffer); +xmlBufferPtr xmlBufBackToBuffer(xmlBufPtr buf); +int xmlBufMergeBuffer(xmlBufPtr buf, xmlBufferPtr buffer); + +int xmlBufResetInput(xmlBufPtr buf, xmlParserInputPtr input); +size_t xmlBufGetInputBase(xmlBufPtr buf, xmlParserInputPtr input); +int xmlBufSetInputBaseCur(xmlBufPtr buf, xmlParserInputPtr input, + size_t base, size_t cur); +#ifdef __cplusplus +} +#endif +#endif /* __XML_BUF_H__ */ + diff --git a/c14n.c b/c14n.c index 9c3cad2..afd95b3 100644 --- a/c14n.c +++ b/c14n.c @@ -1,12 +1,12 @@ /* - * "Canonical XML" implementation + * "Canonical XML" implementation * http://www.w3.org/TR/xml-c14n - * + * * "Exclusive XML Canonicalization" implementation * http://www.w3.org/TR/xml-exc-c14n * * See Copyright for the status of this software. - * + * * Author: Aleksey Sanin */ #define IN_LIBXML @@ -27,6 +27,8 @@ #include #include +#include "buf.h" + /************************************************************************ * * * Some declaration better left private ATM * @@ -44,7 +46,7 @@ typedef struct _xmlC14NVisibleNsStack { int nsPrevStart; /* the begginning of the stack for previous visible node */ int nsPrevEnd; /* the end of the stack for previous visible node */ int nsMax; /* size of the array as allocated */ - xmlNsPtr *nsTab; /* array of ns in no particular order */ + xmlNsPtr *nsTab; /* array of ns in no particular order */ xmlNodePtr *nodeTab; /* array of nodes in no particular order */ } xmlC14NVisibleNsStack, *xmlC14NVisibleNsStackPtr; @@ -52,7 +54,7 @@ typedef struct _xmlC14NCtx { /* input parameters */ xmlDocPtr doc; xmlC14NIsVisibleCallback is_visible_callback; - void* user_data; + void* user_data; int with_comments; xmlOutputBufferPtr buf; @@ -60,7 +62,7 @@ typedef struct _xmlC14NCtx { xmlC14NPosition pos; int parent_is_doc; xmlC14NVisibleNsStackPtr ns_rendered; - + /* C14N mode */ xmlC14NMode mode; @@ -73,17 +75,17 @@ typedef struct _xmlC14NCtx { static xmlC14NVisibleNsStackPtr xmlC14NVisibleNsStackCreate (void); static void xmlC14NVisibleNsStackDestroy (xmlC14NVisibleNsStackPtr cur); -static void xmlC14NVisibleNsStackAdd (xmlC14NVisibleNsStackPtr cur, +static void xmlC14NVisibleNsStackAdd (xmlC14NVisibleNsStackPtr cur, xmlNsPtr ns, xmlNodePtr node); -static void xmlC14NVisibleNsStackSave (xmlC14NVisibleNsStackPtr cur, +static void xmlC14NVisibleNsStackSave (xmlC14NVisibleNsStackPtr cur, xmlC14NVisibleNsStackPtr state); -static void xmlC14NVisibleNsStackRestore (xmlC14NVisibleNsStackPtr cur, +static void xmlC14NVisibleNsStackRestore (xmlC14NVisibleNsStackPtr cur, xmlC14NVisibleNsStackPtr state); -static void xmlC14NVisibleNsStackShift (xmlC14NVisibleNsStackPtr cur); -static int xmlC14NVisibleNsStackFind (xmlC14NVisibleNsStackPtr cur, +static void xmlC14NVisibleNsStackShift (xmlC14NVisibleNsStackPtr cur); +static int xmlC14NVisibleNsStackFind (xmlC14NVisibleNsStackPtr cur, xmlNsPtr ns); -static int xmlExcC14NVisibleNsStackFind (xmlC14NVisibleNsStackPtr cur, +static int xmlExcC14NVisibleNsStackFind (xmlC14NVisibleNsStackPtr cur, xmlNsPtr ns, xmlC14NCtxPtr ctx); @@ -105,26 +107,26 @@ typedef enum { static xmlChar *xmlC11NNormalizeString(const xmlChar * input, xmlC14NNormalizationMode mode); -#define xmlC11NNormalizeAttr( a ) \ +#define xmlC11NNormalizeAttr( a ) \ xmlC11NNormalizeString((a), XMLC14N_NORMALIZE_ATTR) -#define xmlC11NNormalizeComment( a ) \ +#define xmlC11NNormalizeComment( a ) \ xmlC11NNormalizeString((a), XMLC14N_NORMALIZE_COMMENT) -#define xmlC11NNormalizePI( a ) \ +#define xmlC11NNormalizePI( a ) \ xmlC11NNormalizeString((a), XMLC14N_NORMALIZE_PI) -#define xmlC11NNormalizeText( a ) \ +#define xmlC11NNormalizeText( a ) \ xmlC11NNormalizeString((a), XMLC14N_NORMALIZE_TEXT) -#define xmlC14NIsVisible( ctx, node, parent ) \ +#define xmlC14NIsVisible( ctx, node, parent ) \ (((ctx)->is_visible_callback != NULL) ? \ (ctx)->is_visible_callback((ctx)->user_data, \ (xmlNodePtr)(node), (xmlNodePtr)(parent)) : 1) -#define xmlC14NIsExclusive( ctx ) \ +#define xmlC14NIsExclusive( ctx ) \ ( (ctx)->mode == XML_C14N_EXCLUSIVE_1_0 ) /************************************************************************ * * - * Some factorized error routines * + * Some factorized error routines * * * ************************************************************************/ @@ -249,25 +251,25 @@ xmlC14NErr(xmlC14NCtxPtr ctxt, xmlNodePtr node, int error, ************************************************************************/ #define XML_NAMESPACES_DEFAULT 16 -static int +static int xmlC14NIsNodeInNodeset(xmlNodeSetPtr nodes, xmlNodePtr node, xmlNodePtr parent) { if((nodes != NULL) && (node != NULL)) { if(node->type != XML_NAMESPACE_DECL) { return(xmlXPathNodeSetContains(nodes, node)); } else { xmlNs ns; - - memcpy(&ns, node, sizeof(ns)); - + + memcpy(&ns, node, sizeof(ns)); + /* this is a libxml hack! check xpath.c for details */ if((parent != NULL) && (parent->type == XML_ATTRIBUTE_NODE)) { ns.next = (xmlNsPtr)parent->parent; } else { - ns.next = (xmlNsPtr)parent; + ns.next = (xmlNsPtr)parent; } - /* - * If the input is an XPath node-set, then the node-set must explicitly + /* + * If the input is an XPath node-set, then the node-set must explicitly * contain every node to be rendered to the canonical form. */ return(xmlXPathNodeSetContains(nodes, (xmlNodePtr)&ns)); @@ -305,12 +307,12 @@ xmlC14NVisibleNsStackDestroy(xmlC14NVisibleNsStackPtr cur) { } memset(cur, 0, sizeof(xmlC14NVisibleNsStack)); xmlFree(cur); - + } -static void +static void xmlC14NVisibleNsStackAdd(xmlC14NVisibleNsStackPtr cur, xmlNsPtr ns, xmlNodePtr node) { - if((cur == NULL) || + if((cur == NULL) || ((cur->nsTab == NULL) && (cur->nodeTab != NULL)) || ((cur->nsTab != NULL) && (cur->nodeTab == NULL))) { xmlC14NErrParam("adding namespace to stack"); @@ -328,9 +330,9 @@ xmlC14NVisibleNsStackAdd(xmlC14NVisibleNsStackPtr cur, xmlNsPtr ns, xmlNodePtr n memset(cur->nodeTab, 0 , XML_NAMESPACES_DEFAULT * sizeof(xmlNodePtr)); cur->nsMax = XML_NAMESPACES_DEFAULT; } else if(cur->nsMax == cur->nsCurEnd) { - void *tmp; + void *tmp; int tmpSize; - + tmpSize = 2 * cur->nsMax; tmp = xmlRealloc(cur->nsTab, tmpSize * sizeof(xmlNsPtr)); if (tmp == NULL) { @@ -360,7 +362,7 @@ xmlC14NVisibleNsStackSave(xmlC14NVisibleNsStackPtr cur, xmlC14NVisibleNsStackPtr xmlC14NErrParam("saving namespaces stack"); return; } - + state->nsCurEnd = cur->nsCurEnd; state->nsPrevStart = cur->nsPrevStart; state->nsPrevEnd = cur->nsPrevEnd; @@ -377,7 +379,7 @@ xmlC14NVisibleNsStackRestore(xmlC14NVisibleNsStackPtr cur, xmlC14NVisibleNsStack cur->nsPrevEnd = state->nsPrevEnd; } -static void +static void xmlC14NVisibleNsStackShift(xmlC14NVisibleNsStackPtr cur) { if(cur == NULL) { xmlC14NErrParam("shifting namespaces stack"); @@ -400,7 +402,7 @@ xmlC14NStrEqual(const xmlChar *str1, const xmlChar *str2) { /** * xmlC14NVisibleNsStackFind: - * @ctx: the C14N context + * @ctx: the C14N context * @ns: the namespace to check * * Checks whether the given namespace was already rendered or not @@ -414,14 +416,14 @@ xmlC14NVisibleNsStackFind(xmlC14NVisibleNsStackPtr cur, xmlNsPtr ns) const xmlChar *prefix; const xmlChar *href; int has_empty_ns; - + if(cur == NULL) { xmlC14NErrParam("searching namespaces stack (c14n)"); return (0); } /* - * if the default namespace xmlns="" is not defined yet then + * if the default namespace xmlns="" is not defined yet then * we do not want to print it out */ prefix = ((ns == NULL) || (ns->prefix == NULL)) ? BAD_CAST "" : ns->prefix; @@ -432,7 +434,7 @@ xmlC14NVisibleNsStackFind(xmlC14NVisibleNsStackPtr cur, xmlNsPtr ns) int start = (has_empty_ns) ? 0 : cur->nsPrevStart; for (i = cur->nsCurEnd - 1; i >= start; --i) { xmlNsPtr ns1 = cur->nsTab[i]; - + if(xmlC14NStrEqual(prefix, (ns1 != NULL) ? ns1->prefix : NULL)) { return(xmlC14NStrEqual(href, (ns1 != NULL) ? ns1->href : NULL)); } @@ -441,20 +443,20 @@ xmlC14NVisibleNsStackFind(xmlC14NVisibleNsStackPtr cur, xmlNsPtr ns) return(has_empty_ns); } -static int +static int xmlExcC14NVisibleNsStackFind(xmlC14NVisibleNsStackPtr cur, xmlNsPtr ns, xmlC14NCtxPtr ctx) { int i; const xmlChar *prefix; const xmlChar *href; int has_empty_ns; - + if(cur == NULL) { xmlC14NErrParam("searching namespaces stack (exc c14n)"); return (0); } /* - * if the default namespace xmlns="" is not defined yet then + * if the default namespace xmlns="" is not defined yet then * we do not want to print it out */ prefix = ((ns == NULL) || (ns->prefix == NULL)) ? BAD_CAST "" : ns->prefix; @@ -465,10 +467,10 @@ xmlExcC14NVisibleNsStackFind(xmlC14NVisibleNsStackPtr cur, xmlNsPtr ns, xmlC14NC int start = 0; for (i = cur->nsCurEnd - 1; i >= start; --i) { xmlNsPtr ns1 = cur->nsTab[i]; - + if(xmlC14NStrEqual(prefix, (ns1 != NULL) ? ns1->prefix : NULL)) { if(xmlC14NStrEqual(href, (ns1 != NULL) ? ns1->href : NULL)) { - return(xmlC14NIsVisible(ctx, ns1, cur->nodeTab[i])); + return(xmlC14NIsVisible(ctx, ns1, cur->nodeTab[i])); } else { return(0); } @@ -483,8 +485,8 @@ xmlExcC14NVisibleNsStackFind(xmlC14NVisibleNsStackPtr cur, xmlNsPtr ns, xmlC14NC /** * xmlC14NIsXmlNs: - * @ns: the namespace to check - * + * @ns: the namespace to check + * * Checks whether the given namespace is a default "xml:" namespace * with href="http://www.w3.org/XML/1998/namespace" * @@ -504,7 +506,7 @@ xmlC14NIsXmlNs(xmlNsPtr ns) /** * xmlC14NNsCompare: * @ns1: the pointer to first namespace - * @ns2: the pointer to second namespace + * @ns2: the pointer to second namespace * * Compares the namespaces by names (prefixes). * @@ -527,7 +529,7 @@ xmlC14NNsCompare(xmlNsPtr ns1, xmlNsPtr ns2) /** * xmlC14NPrintNamespaces: * @ns: the pointer to namespace - * @ctx: the C14N context + * @ctx: the C14N context * * Prints the given namespace to the output buffer from C14N context. * @@ -558,39 +560,39 @@ xmlC14NPrintNamespaces(const xmlNsPtr ns, xmlC14NCtxPtr ctx) /** * xmlC14NProcessNamespacesAxis: - * @ctx: the C14N context + * @ctx: the C14N context * @node: the current node * * Prints out canonical namespace axis of the current node to the - * buffer from C14N context as follows + * buffer from C14N context as follows * * Canonical XML v 1.0 (http://www.w3.org/TR/xml-c14n) * * Namespace Axis - * Consider a list L containing only namespace nodes in the - * axis and in the node-set in lexicographic order (ascending). To begin - * processing L, if the first node is not the default namespace node (a node - * with no namespace URI and no local name), then generate a space followed + * Consider a list L containing only namespace nodes in the + * axis and in the node-set in lexicographic order (ascending). To begin + * processing L, if the first node is not the default namespace node (a node + * with no namespace URI and no local name), then generate a space followed * by xmlns="" if and only if the following conditions are met: * - the element E that owns the axis is in the node-set - * - The nearest ancestor element of E in the node-set has a default - * namespace node in the node-set (default namespace nodes always + * - The nearest ancestor element of E in the node-set has a default + * namespace node in the node-set (default namespace nodes always * have non-empty values in XPath) - * The latter condition eliminates unnecessary occurrences of xmlns="" in - * the canonical form since an element only receives an xmlns="" if its - * default namespace is empty and if it has an immediate parent in the - * canonical form that has a non-empty default namespace. To finish - * processing L, simply process every namespace node in L, except omit - * namespace node with local name xml, which defines the xml prefix, + * The latter condition eliminates unnecessary occurrences of xmlns="" in + * the canonical form since an element only receives an xmlns="" if its + * default namespace is empty and if it has an immediate parent in the + * canonical form that has a non-empty default namespace. To finish + * processing L, simply process every namespace node in L, except omit + * namespace node with local name xml, which defines the xml prefix, * if its string value is http://www.w3.org/XML/1998/namespace. * * Exclusive XML Canonicalization v 1.0 (http://www.w3.org/TR/xml-exc-c14n) - * Canonical XML applied to a document subset requires the search of the - * ancestor nodes of each orphan element node for attributes in the xml - * namespace, such as xml:lang and xml:space. These are copied into the - * element node except if a declaration of the same attribute is already - * in the attribute axis of the element (whether or not it is included in - * the document subset). This search and copying are omitted from the + * Canonical XML applied to a document subset requires the search of the + * ancestor nodes of each orphan element node for attributes in the xml + * namespace, such as xml:lang and xml:space. These are copied into the + * element node except if a declaration of the same attribute is already + * in the attribute axis of the element (whether or not it is included in + * the document subset). This search and copying are omitted from the * Exclusive XML Canonicalization method. * * Returns 0 on success or -1 on fail. @@ -603,7 +605,7 @@ xmlC14NProcessNamespacesAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible) xmlListPtr list; int already_rendered; int has_empty_ns = 0; - + if ((ctx == NULL) || (cur == NULL) || (cur->type != XML_ELEMENT_NODE)) { xmlC14NErrParam("processing namespaces axis (c14n)"); return (-1); @@ -622,29 +624,29 @@ xmlC14NProcessNamespacesAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible) for(n = cur; n != NULL; n = n->parent) { for(ns = n->nsDef; ns != NULL; ns = ns->next) { tmp = xmlSearchNs(cur->doc, cur, ns->prefix); - + if((tmp == ns) && !xmlC14NIsXmlNs(ns) && xmlC14NIsVisible(ctx, ns, cur)) { already_rendered = xmlC14NVisibleNsStackFind(ctx->ns_rendered, ns); if(visible) { - xmlC14NVisibleNsStackAdd(ctx->ns_rendered, ns, cur); + xmlC14NVisibleNsStackAdd(ctx->ns_rendered, ns, cur); } if(!already_rendered) { - xmlListInsert(list, ns); + xmlListInsert(list, ns); } - if(xmlStrlen(ns->prefix) == 0) { + if(xmlStrlen(ns->prefix) == 0) { has_empty_ns = 1; } } } } - + /** - * if the first node is not the default namespace node (a node with no - * namespace URI and no local name), then generate a space followed by + * if the first node is not the default namespace node (a node with no + * namespace URI and no local name), then generate a space followed by * xmlns="" if and only if the following conditions are met: * - the element E that owns the axis is in the node-set - * - the nearest ancestor element of E in the node-set has a default - * namespace node in the node-set (default namespace nodes always + * - the nearest ancestor element of E in the node-set has a default + * namespace node in the node-set (default namespace nodes always * have non-empty values in XPath) */ if(visible && !has_empty_ns) { @@ -652,17 +654,17 @@ xmlC14NProcessNamespacesAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible) memset(&ns_default, 0, sizeof(ns_default)); if(!xmlC14NVisibleNsStackFind(ctx->ns_rendered, &ns_default)) { - xmlC14NPrintNamespaces(&ns_default, ctx); + xmlC14NPrintNamespaces(&ns_default, ctx); } } - - - /* - * print out all elements from list + + + /* + * print out all elements from list */ xmlListWalk(list, (xmlListWalker) xmlC14NPrintNamespaces, (const void *) ctx); - /* + /* * Cleanup */ xmlListDelete(list); @@ -672,28 +674,28 @@ xmlC14NProcessNamespacesAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible) /** * xmlExcC14NProcessNamespacesAxis: - * @ctx: the C14N context + * @ctx: the C14N context * @node: the current node * * Prints out exclusive canonical namespace axis of the current node to the - * buffer from C14N context as follows + * buffer from C14N context as follows * * Exclusive XML Canonicalization * http://www.w3.org/TR/xml-exc-c14n * - * If the element node is in the XPath subset then output the node in - * accordance with Canonical XML except for namespace nodes which are + * If the element node is in the XPath subset then output the node in + * accordance with Canonical XML except for namespace nodes which are * rendered as follows: * * 1. Render each namespace node iff: - * * it is visibly utilized by the immediate parent element or one of + * * it is visibly utilized by the immediate parent element or one of * its attributes, or is present in InclusiveNamespaces PrefixList, and - * * its prefix and value do not appear in ns_rendered. ns_rendered is - * obtained by popping the state stack in order to obtain a list of - * prefixes and their values which have already been rendered by + * * its prefix and value do not appear in ns_rendered. ns_rendered is + * obtained by popping the state stack in order to obtain a list of + * prefixes and their values which have already been rendered by * an output ancestor of the namespace node's parent element. - * 2. Append the rendered namespace node to the list ns_rendered of namespace - * nodes rendered by output ancestors. Push ns_rendered on state stack and + * 2. Append the rendered namespace node to the list ns_rendered of namespace + * nodes rendered by output ancestors. Push ns_rendered on state stack and * recurse. * 3. After the recursion returns, pop thestate stack. * @@ -710,7 +712,7 @@ xmlExcC14NProcessNamespacesAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible) int has_empty_ns = 0; int has_visibly_utilized_empty_ns = 0; int has_empty_ns_in_inclusive_list = 0; - + if ((ctx == NULL) || (cur == NULL) || (cur->type != XML_ELEMENT_NODE)) { xmlC14NErrParam("processing namespaces axis (exc c14n)"); return (-1); @@ -731,15 +733,15 @@ xmlExcC14NProcessNamespacesAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible) return (-1); } - /* + /* * process inclusive namespaces: - * All namespace nodes appearing on inclusive ns list are + * All namespace nodes appearing on inclusive ns list are * handled as provided in Canonical XML */ if(ctx->inclusive_ns_prefixes != NULL) { - xmlChar *prefix; + xmlChar *prefix; int i; - + for (i = 0; ctx->inclusive_ns_prefixes[i] != NULL; ++i) { prefix = ctx->inclusive_ns_prefixes[i]; /* @@ -750,23 +752,23 @@ xmlExcC14NProcessNamespacesAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible) prefix = NULL; has_empty_ns_in_inclusive_list = 1; } - - ns = xmlSearchNs(cur->doc, cur, prefix); + + ns = xmlSearchNs(cur->doc, cur, prefix); if((ns != NULL) && !xmlC14NIsXmlNs(ns) && xmlC14NIsVisible(ctx, ns, cur)) { already_rendered = xmlC14NVisibleNsStackFind(ctx->ns_rendered, ns); if(visible) { - xmlC14NVisibleNsStackAdd(ctx->ns_rendered, ns, cur); + xmlC14NVisibleNsStackAdd(ctx->ns_rendered, ns, cur); } if(!already_rendered) { - xmlListInsert(list, ns); + xmlListInsert(list, ns); } - if(xmlStrlen(ns->prefix) == 0) { + if(xmlStrlen(ns->prefix) == 0) { has_empty_ns = 1; } } } } - + /* add node namespace */ if(cur->ns != NULL) { ns = cur->ns; @@ -775,32 +777,32 @@ xmlExcC14NProcessNamespacesAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible) has_visibly_utilized_empty_ns = 1; } if((ns != NULL) && !xmlC14NIsXmlNs(ns)) { - if(visible && xmlC14NIsVisible(ctx, ns, cur)) { + if(visible && xmlC14NIsVisible(ctx, ns, cur)) { if(!xmlExcC14NVisibleNsStackFind(ctx->ns_rendered, ns, ctx)) { xmlListInsert(list, ns); } } if(visible) { - xmlC14NVisibleNsStackAdd(ctx->ns_rendered, ns, cur); + xmlC14NVisibleNsStackAdd(ctx->ns_rendered, ns, cur); } if(xmlStrlen(ns->prefix) == 0) { has_empty_ns = 1; } } - - + + /* add attributes */ for(attr = cur->properties; attr != NULL; attr = attr->next) { - /* + /* * we need to check that attribute is visible and has non - * default namespace (XML Namespaces: "default namespaces - * do not apply directly to attributes") + * default namespace (XML Namespaces: "default namespaces + * do not apply directly to attributes") */ if((attr->ns != NULL) && !xmlC14NIsXmlNs(attr->ns) && xmlC14NIsVisible(ctx, attr, cur)) { already_rendered = xmlExcC14NVisibleNsStackFind(ctx->ns_rendered, attr->ns, ctx); - xmlC14NVisibleNsStackAdd(ctx->ns_rendered, attr->ns, cur); + xmlC14NVisibleNsStackAdd(ctx->ns_rendered, attr->ns, cur); if(!already_rendered && visible) { - xmlListInsert(list, attr->ns); + xmlListInsert(list, attr->ns); } if(xmlStrlen(attr->ns->prefix) == 0) { has_empty_ns = 1; @@ -813,33 +815,33 @@ xmlExcC14NProcessNamespacesAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible) /* * Process xmlns="" */ - if(visible && has_visibly_utilized_empty_ns && + if(visible && has_visibly_utilized_empty_ns && !has_empty_ns && !has_empty_ns_in_inclusive_list) { static xmlNs ns_default; memset(&ns_default, 0, sizeof(ns_default)); - + already_rendered = xmlExcC14NVisibleNsStackFind(ctx->ns_rendered, &ns_default, ctx); if(!already_rendered) { - xmlC14NPrintNamespaces(&ns_default, ctx); + xmlC14NPrintNamespaces(&ns_default, ctx); } } else if(visible && !has_empty_ns && has_empty_ns_in_inclusive_list) { static xmlNs ns_default; memset(&ns_default, 0, sizeof(ns_default)); if(!xmlC14NVisibleNsStackFind(ctx->ns_rendered, &ns_default)) { - xmlC14NPrintNamespaces(&ns_default, ctx); + xmlC14NPrintNamespaces(&ns_default, ctx); } } - - /* - * print out all elements from list + + /* + * print out all elements from list */ xmlListWalk(list, (xmlListWalker) xmlC14NPrintNamespaces, (const void *) ctx); - /* + /* * Cleanup */ xmlListDelete(list); @@ -849,8 +851,8 @@ xmlExcC14NProcessNamespacesAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible) /** * xmlC14NIsXmlAttr: - * @attr: the attr to check - * + * @attr: the attr to check + * * Checks whether the given attribute is a default "xml:" namespace * with href="http://www.w3.org/XML/1998/namespace" * @@ -861,7 +863,7 @@ xmlExcC14NProcessNamespacesAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible) static int xmlC14NIsXmlAttr(xmlAttrPtr attr) { - return ((attr->ns != NULL) && + return ((attr->ns != NULL) && (xmlC14NIsXmlNs(attr->ns) != 0)); } @@ -869,7 +871,7 @@ xmlC14NIsXmlAttr(xmlAttrPtr attr) /** * xmlC14NAttrsCompare: * @attr1: the pointer tls o first attr - * @attr2: the pointer to second attr + * @attr2: the pointer to second attr * * Prints the given attribute to the output buffer from C14N context. * @@ -893,7 +895,7 @@ xmlC14NAttrsCompare(xmlAttrPtr attr1, xmlAttrPtr attr2) return (xmlStrcmp(attr1->name, attr2->name)); } - /* + /* * Attributes in the default namespace are first * because the default namespace is not applied to * unqualified attributes @@ -918,10 +920,10 @@ xmlC14NAttrsCompare(xmlAttrPtr attr1, xmlAttrPtr attr2) /** * xmlC14NPrintAttrs: * @attr: the pointer to attr - * @ctx: the C14N context + * @ctx: the C14N context * * Prints out canonical attribute urrent node to the - * buffer from C14N context as follows + * buffer from C14N context as follows * * Canonical XML v 1.0 (http://www.w3.org/TR/xml-c14n) * @@ -968,7 +970,7 @@ xmlC14NPrintAttrs(const xmlAttrPtr attr, xmlC14NCtxPtr ctx) * xmlC14NFindHiddenParentAttr: * * Finds an attribute in a hidden parent node. - * + * * Returns a pointer to the attribute node (if found) or NULL otherwise. */ static xmlAttrPtr @@ -996,7 +998,7 @@ xmlC14NFindHiddenParentAttr(xmlC14NCtxPtr ctx, xmlNodePtr cur, const xmlChar * n */ static xmlAttrPtr xmlC14NFixupBaseAttr(xmlC14NCtxPtr ctx, xmlAttrPtr xml_base_attr) -{ +{ xmlChar * res = NULL; xmlNodePtr cur; xmlAttrPtr attr; @@ -1028,9 +1030,9 @@ xmlC14NFixupBaseAttr(xmlC14NCtxPtr ctx, xmlAttrPtr xml_base_attr) xmlC14NErrInternal("processing xml:base attribute - can't get attr value"); return (NULL); - } + } - /* we need to add '/' if our current base uri ends with '..' or '.' + /* we need to add '/' if our current base uri ends with '..' or '.' to ensure that we are forced to go "up" all the time */ tmp_str_len = xmlStrlen(tmp_str); if(tmp_str_len > 1 && tmp_str[tmp_str_len - 2] == '.') { @@ -1047,7 +1049,7 @@ xmlC14NFixupBaseAttr(xmlC14NCtxPtr ctx, xmlAttrPtr xml_base_attr) } /* build uri */ - tmp_str2 = xmlBuildURI(res, tmp_str); + tmp_str2 = xmlBuildURI(res, tmp_str); if(tmp_str2 == NULL) { xmlFree(tmp_str); xmlFree(res); @@ -1080,7 +1082,7 @@ xmlC14NFixupBaseAttr(xmlC14NCtxPtr ctx, xmlAttrPtr xml_base_attr) xmlC14NErrInternal("processing xml:base attribute - can't construct attribute"); return (NULL); } - + /* done */ xmlFree(res); return (attr); @@ -1088,33 +1090,33 @@ xmlC14NFixupBaseAttr(xmlC14NCtxPtr ctx, xmlAttrPtr xml_base_attr) /** * xmlC14NProcessAttrsAxis: - * @ctx: the C14N context + * @ctx: the C14N context * @cur: the current node * @parent_visible: the visibility of parent node * @all_parents_visible: the visibility of all parent nodes * * Prints out canonical attribute axis of the current node to the - * buffer from C14N context as follows + * buffer from C14N context as follows * * Canonical XML v 1.0 (http://www.w3.org/TR/xml-c14n) * - * Attribute Axis - * In lexicographic order (ascending), process each node that + * Attribute Axis + * In lexicographic order (ascending), process each node that * is in the element's attribute axis and in the node-set. - * - * The processing of an element node E MUST be modified slightly - * when an XPath node-set is given as input and the element's + * + * The processing of an element node E MUST be modified slightly + * when an XPath node-set is given as input and the element's * parent is omitted from the node-set. * * * Exclusive XML Canonicalization v 1.0 (http://www.w3.org/TR/xml-exc-c14n) * - * Canonical XML applied to a document subset requires the search of the - * ancestor nodes of each orphan element node for attributes in the xml - * namespace, such as xml:lang and xml:space. These are copied into the - * element node except if a declaration of the same attribute is already - * in the attribute axis of the element (whether or not it is included in - * the document subset). This search and copying are omitted from the + * Canonical XML applied to a document subset requires the search of the + * ancestor nodes of each orphan element node for attributes in the xml + * namespace, such as xml:lang and xml:space. These are copied into the + * element node except if a declaration of the same attribute is already + * in the attribute axis of the element (whether or not it is included in + * the document subset). This search and copying are omitted from the * Exclusive XML Canonicalization method. * * Returns 0 on success or -1 on fail. @@ -1123,9 +1125,9 @@ static int xmlC14NProcessAttrsAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int parent_visible) { xmlAttrPtr attr; - xmlListPtr list; + xmlListPtr list; xmlAttrPtr attrs_to_delete = NULL; - + /* special processing for 1.1 spec */ xmlAttrPtr xml_base_attr = NULL; xmlAttrPtr xml_lang_attr = NULL; @@ -1147,19 +1149,19 @@ xmlC14NProcessAttrsAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int parent_visible) switch(ctx->mode) { case XML_C14N_1_0: - /* The processing of an element node E MUST be modified slightly when an XPath node-set is - * given as input and the element's parent is omitted from the node-set. The method for processing - * the attribute axis of an element E in the node-set is enhanced. All element nodes along E's - * ancestor axis are examined for nearest occurrences of attributes in the xml namespace, such - * as xml:lang and xml:space (whether or not they are in the node-set). From this list of attributes, - * remove any that are in E's attribute axis (whether or not they are in the node-set). Then, - * lexicographically merge this attribute list with the nodes of E's attribute axis that are in - * the node-set. The result of visiting the attribute axis is computed by processing the attribute - * nodes in this merged attribute list. + /* The processing of an element node E MUST be modified slightly when an XPath node-set is + * given as input and the element's parent is omitted from the node-set. The method for processing + * the attribute axis of an element E in the node-set is enhanced. All element nodes along E's + * ancestor axis are examined for nearest occurrences of attributes in the xml namespace, such + * as xml:lang and xml:space (whether or not they are in the node-set). From this list of attributes, + * remove any that are in E's attribute axis (whether or not they are in the node-set). Then, + * lexicographically merge this attribute list with the nodes of E's attribute axis that are in + * the node-set. The result of visiting the attribute axis is computed by processing the attribute + * nodes in this merged attribute list. */ - - /* - * Add all visible attributes from current node. + + /* + * Add all visible attributes from current node. */ attr = cur->properties; while (attr != NULL) { @@ -1170,16 +1172,16 @@ xmlC14NProcessAttrsAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int parent_visible) attr = attr->next; } - /* + /* * Handle xml attributes */ - if (parent_visible && (cur->parent != NULL) && - (!xmlC14NIsVisible(ctx, cur->parent, cur->parent->parent))) + if (parent_visible && (cur->parent != NULL) && + (!xmlC14NIsVisible(ctx, cur->parent, cur->parent->parent))) { xmlNodePtr tmp; /* - * If XPath node-set is not specified then the parent is always + * If XPath node-set is not specified then the parent is always * visible! */ tmp = cur->parent; @@ -1200,12 +1202,12 @@ xmlC14NProcessAttrsAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int parent_visible) /* done */ break; case XML_C14N_EXCLUSIVE_1_0: - /* attributes in the XML namespace, such as xml:lang and xml:space - * are not imported into orphan nodes of the document subset + /* attributes in the XML namespace, such as xml:lang and xml:space + * are not imported into orphan nodes of the document subset */ - /* - * Add all visible attributes from current node. + /* + * Add all visible attributes from current node. */ attr = cur->properties; while (attr != NULL) { @@ -1219,36 +1221,36 @@ xmlC14NProcessAttrsAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int parent_visible) /* do nothing special for xml attributes */ break; case XML_C14N_1_1: - /* The processing of an element node E MUST be modified slightly when an XPath node-set is - * given as input and some of the element's ancestors are omitted from the node-set. + /* The processing of an element node E MUST be modified slightly when an XPath node-set is + * given as input and some of the element's ancestors are omitted from the node-set. * - * Simple inheritable attributes are attributes that have a value that requires at most a simple - * redeclaration. This redeclaration is done by supplying a new value in the child axis. The - * redeclaration of a simple inheritable attribute A contained in one of E's ancestors is done - * by supplying a value to an attribute Ae inside E with the same name. Simple inheritable attributes + * Simple inheritable attributes are attributes that have a value that requires at most a simple + * redeclaration. This redeclaration is done by supplying a new value in the child axis. The + * redeclaration of a simple inheritable attribute A contained in one of E's ancestors is done + * by supplying a value to an attribute Ae inside E with the same name. Simple inheritable attributes * are xml:lang and xml:space. - * - * The method for processing the attribute axis of an element E in the node-set is hence enhanced. - * All element nodes along E's ancestor axis are examined for the nearest occurrences of simple - * inheritable attributes in the xml namespace, such as xml:lang and xml:space (whether or not they - * are in the node-set). From this list of attributes, any simple inheritable attributes that are - * already in E's attribute axis (whether or not they are in the node-set) are removed. Then, - * lexicographically merge this attribute list with the nodes of E's attribute axis that are in - * the node-set. The result of visiting the attribute axis is computed by processing the attribute + * + * The method for processing the attribute axis of an element E in the node-set is hence enhanced. + * All element nodes along E's ancestor axis are examined for the nearest occurrences of simple + * inheritable attributes in the xml namespace, such as xml:lang and xml:space (whether or not they + * are in the node-set). From this list of attributes, any simple inheritable attributes that are + * already in E's attribute axis (whether or not they are in the node-set) are removed. Then, + * lexicographically merge this attribute list with the nodes of E's attribute axis that are in + * the node-set. The result of visiting the attribute axis is computed by processing the attribute * nodes in this merged attribute list. - * - * The xml:id attribute is not a simple inheritable attribute and no processing of these attributes is + * + * The xml:id attribute is not a simple inheritable attribute and no processing of these attributes is * performed. - * - * The xml:base attribute is not a simple inheritable attribute and requires special processing beyond + * + * The xml:base attribute is not a simple inheritable attribute and requires special processing beyond * a simple redeclaration. - * - * Attributes in the XML namespace other than xml:base, xml:id, xml:lang, and xml:space MUST be processed + * + * Attributes in the XML namespace other than xml:base, xml:id, xml:lang, and xml:space MUST be processed * as ordinary attributes. */ - /* - * Add all visible attributes from current node. + /* + * Add all visible attributes from current node. */ attr = cur->properties; while (attr != NULL) { @@ -1265,7 +1267,7 @@ xmlC14NProcessAttrsAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int parent_visible) if((!matched) && (xml_lang_attr == NULL) && xmlStrEqual(attr->name, BAD_CAST "lang")) { xml_lang_attr = attr; matched = 1; - } + } if((!matched) && (xml_space_attr == NULL) && xmlStrEqual(attr->name, BAD_CAST "space")) { xml_space_attr = attr; matched = 1; @@ -1282,11 +1284,11 @@ xmlC14NProcessAttrsAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int parent_visible) xmlListInsert(list, attr); } } - + /* move to the next one */ attr = attr->next; } - + /* special processing for XML attribute kiks in only when we have invisible parents */ if ((parent_visible)) { @@ -1311,7 +1313,7 @@ xmlC14NProcessAttrsAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int parent_visible) } if(xml_base_attr != NULL) { xml_base_attr = xmlC14NFixupBaseAttr(ctx, xml_base_attr); - if(xml_base_attr != NULL) { + if(xml_base_attr != NULL) { xmlListInsert(list, xml_base_attr); /* note that we MUST delete returned attr node ourselves! */ @@ -1325,12 +1327,12 @@ xmlC14NProcessAttrsAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int parent_visible) break; } - /* - * print out all elements from list + /* + * print out all elements from list */ xmlListWalk(list, (xmlListWalker) xmlC14NPrintAttrs, (const void *) ctx); - /* + /* * Cleanup */ xmlFreePropList(attrs_to_delete); @@ -1338,7 +1340,7 @@ xmlC14NProcessAttrsAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur, int parent_visible) return (0); } -/** +/** * xmlC14NCheckForRelativeNamespaces: * @ctx: the C14N context * @cur: the current element node @@ -1388,23 +1390,23 @@ xmlC14NCheckForRelativeNamespaces(xmlC14NCtxPtr ctx, xmlNodePtr cur) /** * xmlC14NProcessElementNode: - * @ctx: the pointer to C14N context object + * @ctx: the pointer to C14N context object * @cur: the node to process * @visible: this node is visible * @all_parents_visible: whether all the parents of this node are visible - * + * * Canonical XML v 1.0 (http://www.w3.org/TR/xml-c14n) * * Element Nodes - * If the element is not in the node-set, then the result is obtained - * by processing the namespace axis, then the attribute axis, then - * processing the child nodes of the element that are in the node-set - * (in document order). If the element is in the node-set, then the result - * is an open angle bracket (<), the element QName, the result of - * processing the namespace axis, the result of processing the attribute - * axis, a close angle bracket (>), the result of processing the child - * nodes of the element that are in the node-set (in document order), an - * open angle bracket, a forward slash (/), the element QName, and a close + * If the element is not in the node-set, then the result is obtained + * by processing the namespace axis, then the attribute axis, then + * processing the child nodes of the element that are in the node-set + * (in document order). If the element is in the node-set, then the result + * is an open angle bracket (<), the element QName, the result of + * processing the namespace axis, the result of processing the attribute + * axis, a close angle bracket (>), the result of processing the child + * nodes of the element that are in the node-set (in document order), an + * open angle bracket, a forward slash (/), the element QName, and a close * angle bracket. * * Returns non-negative value on success or negative value on fail @@ -1421,7 +1423,7 @@ xmlC14NProcessElementNode(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible) return (-1); } - /* + /* * Check relative relative namespaces: * implementations of XML canonicalization MUST report an operation * failure on documents containing relative namespace URIs. @@ -1432,13 +1434,13 @@ xmlC14NProcessElementNode(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible) } - /* + /* * Save ns_rendered stack position */ memset(&state, 0, sizeof(state)); xmlC14NVisibleNsStackSave(ctx->ns_rendered, &state); - if (visible) { + if (visible) { if (ctx->parent_is_doc) { /* save this flag into the stack */ parent_is_doc = ctx->parent_is_doc; @@ -1468,14 +1470,14 @@ xmlC14NProcessElementNode(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible) if(visible) { xmlC14NVisibleNsStackShift(ctx->ns_rendered); } - + ret = xmlC14NProcessAttrsAxis(ctx, cur, visible); if (ret < 0) { xmlC14NErrInternal("processing attributes axis"); - return (-1); + return (-1); } - if (visible) { + if (visible) { xmlOutputBufferWriteString(ctx->buf, ">"); } if (cur->children != NULL) { @@ -1501,7 +1503,7 @@ xmlC14NProcessElementNode(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible) } } - /* + /* * Restore ns_rendered stack position */ xmlC14NVisibleNsStackRestore(ctx->ns_rendered, &state); @@ -1510,9 +1512,9 @@ xmlC14NProcessElementNode(xmlC14NCtxPtr ctx, xmlNodePtr cur, int visible) /** * xmlC14NProcessNode: - * @ctx: the pointer to C14N context object + * @ctx: the pointer to C14N context object * @cur: the node to process - * + * * Processes the given node * * Returns non-negative value on success or negative value on fail @@ -1537,9 +1539,9 @@ xmlC14NProcessNode(xmlC14NCtxPtr ctx, xmlNodePtr cur) case XML_TEXT_NODE: /* * Text Nodes - * the string value, except all ampersands are replaced - * by &, all open angle brackets (<) are replaced by <, all closing - * angle brackets (>) are replaced by >, and all #xD characters are + * the string value, except all ampersands are replaced + * by &, all open angle brackets (<) are replaced by <, all closing + * angle brackets (>) are replaced by >, and all #xD characters are * replaced by . */ /* cdata sections are processed as text nodes */ @@ -1559,16 +1561,16 @@ xmlC14NProcessNode(xmlC14NCtxPtr ctx, xmlNodePtr cur) } break; case XML_PI_NODE: - /* - * Processing Instruction (PI) Nodes- - * The opening PI symbol (). If the string value is empty, - * then the leading space is not added. Also, a trailing #xA is - * rendered after the closing PI symbol for PI children of the - * root node with a lesser document order than the document - * element, and a leading #xA is rendered before the opening PI - * symbol of PI children of the root node with a greater document + /* + * Processing Instruction (PI) Nodes- + * The opening PI symbol (). If the string value is empty, + * then the leading space is not added. Also, a trailing #xA is + * rendered after the closing PI symbol for PI children of the + * root node with a lesser document order than the document + * element, and a leading #xA is rendered before the opening PI + * symbol of PI children of the root node with a greater document * order than the document element. */ if (visible) { @@ -1607,17 +1609,17 @@ xmlC14NProcessNode(xmlC14NCtxPtr ctx, xmlNodePtr cur) case XML_COMMENT_NODE: /* * Comment Nodes - * Nothing if generating canonical XML without comments. For - * canonical XML with comments, generate the opening comment - * symbol (). Also, a trailing #xA is rendered - * after the closing comment symbol for comment children of the - * root node with a lesser document order than the document - * element, and a leading #xA is rendered before the opening - * comment symbol of comment children of the root node with a - * greater document order than the document element. (Comment - * children of the root node represent comments outside of the - * top-level document element and outside of the document type + * Nothing if generating canonical XML without comments. For + * canonical XML with comments, generate the opening comment + * symbol (). Also, a trailing #xA is rendered + * after the closing comment symbol for comment children of the + * root node with a lesser document order than the document + * element, and a leading #xA is rendered before the opening + * comment symbol of comment children of the root node with a + * greater document order than the document element. (Comment + * children of the root node represent comments outside of the + * top-level document element and outside of the document type * declaration). */ if (visible && ctx->with_comments) { @@ -1687,8 +1689,8 @@ xmlC14NProcessNode(xmlC14NCtxPtr ctx, xmlNodePtr cur) case XML_XINCLUDE_START: case XML_XINCLUDE_END: #endif - /* - * should be ignored according to "W3C Canonical XML" + /* + * should be ignored according to "W3C Canonical XML" */ break; default: @@ -1701,9 +1703,9 @@ xmlC14NProcessNode(xmlC14NCtxPtr ctx, xmlNodePtr cur) /** * xmlC14NProcessNodeList: - * @ctx: the pointer to C14N context object + * @ctx: the pointer to C14N context object * @cur: the node to start from - * + * * Processes all nodes in the row starting from cur. * * Returns non-negative value on success or negative value on fail @@ -1728,7 +1730,7 @@ xmlC14NProcessNodeList(xmlC14NCtxPtr ctx, xmlNodePtr cur) /** * xmlC14NFreeCtx: * @ctx: the pointer to C14N context object - * + * * Cleanups the C14N context object. */ @@ -1748,27 +1750,27 @@ xmlC14NFreeCtx(xmlC14NCtxPtr ctx) /** * xmlC14NNewCtx: - * @doc: the XML document for canonization - * @is_visible_callback:the function to use to determine is node visible + * @doc: the XML document for canonization + * @is_visible_callback:the function to use to determine is node visible * or not - * @user_data: the first parameter for @is_visible_callback function + * @user_data: the first parameter for @is_visible_callback function * (in most cases, it is nodes set) * @mode: the c14n mode (see @xmlC14NMode) - * @inclusive_ns_prefixe the list of inclusive namespace prefixes + * @inclusive_ns_prefixe the list of inclusive namespace prefixes * ended with a NULL or NULL if there is no - * inclusive namespaces (only for ` + * inclusive namespaces (only for ` * canonicalization) - * @with_comments: include comments in the result (!=0) or not (==0) - * @buf: the output buffer to store canonical XML; this + * @with_comments: include comments in the result (!=0) or not (==0) + * @buf: the output buffer to store canonical XML; this * buffer MUST have encoder==NULL because C14N requires * UTF-8 output - * + * * Creates new C14N context object to store C14N parameters. * * Returns pointer to newly created object (success) or NULL (fail) */ static xmlC14NCtxPtr -xmlC14NNewCtx(xmlDocPtr doc, +xmlC14NNewCtx(xmlDocPtr doc, xmlC14NIsVisibleCallback is_visible_callback, void* user_data, xmlC14NMode mode, xmlChar ** inclusive_ns_prefixes, int with_comments, xmlOutputBufferPtr buf) @@ -1840,28 +1842,28 @@ xmlC14NNewCtx(xmlDocPtr doc, /** * xmlC14NExecute: - * @doc: the XML document for canonization - * @is_visible_callback:the function to use to determine is node visible + * @doc: the XML document for canonization + * @is_visible_callback:the function to use to determine is node visible * or not - * @user_data: the first parameter for @is_visible_callback function + * @user_data: the first parameter for @is_visible_callback function * (in most cases, it is nodes set) * @mode: the c14n mode (see @xmlC14NMode) - * @inclusive_ns_prefixes: the list of inclusive namespace prefixes + * @inclusive_ns_prefixes: the list of inclusive namespace prefixes * ended with a NULL or NULL if there is no - * inclusive namespaces (only for exclusive + * inclusive namespaces (only for exclusive * canonicalization, ignored otherwise) - * @with_comments: include comments in the result (!=0) or not (==0) - * @buf: the output buffer to store canonical XML; this + * @with_comments: include comments in the result (!=0) or not (==0) + * @buf: the output buffer to store canonical XML; this * buffer MUST have encoder==NULL because C14N requires * UTF-8 output - * + * * Dumps the canonized image of given XML document into the provided buffer. * For details see "Canonical XML" (http://www.w3.org/TR/xml-c14n) or * "Exclusive XML Canonicalization" (http://www.w3.org/TR/xml-exc-c14n) * - * Returns non-negative value on success or a negative value on fail + * Returns non-negative value on success or a negative value on fail */ -int +int xmlC14NExecute(xmlDocPtr doc, xmlC14NIsVisibleCallback is_visible_callback, void* user_data, int mode, xmlChar **inclusive_ns_prefixes, int with_comments, xmlOutputBufferPtr buf) { @@ -1875,15 +1877,15 @@ xmlC14NExecute(xmlDocPtr doc, xmlC14NIsVisibleCallback is_visible_callback, return (-1); } - /* for backward compatibility, we have to have "mode" as "int" + /* for backward compatibility, we have to have "mode" as "int" and here we check that user gives valid value */ switch(mode) { case XML_C14N_1_0: case XML_C14N_EXCLUSIVE_1_0: - case XML_C14N_1_1: + case XML_C14N_1_1: c14n_mode = (xmlC14NMode)mode; break; - default: + default: xmlC14NErrParam("invalid mode for executing c14n"); return (-1); } @@ -1897,7 +1899,7 @@ xmlC14NExecute(xmlDocPtr doc, xmlC14NIsVisibleCallback is_visible_callback, return (-1); } - ctx = xmlC14NNewCtx(doc, is_visible_callback, user_data, + ctx = xmlC14NNewCtx(doc, is_visible_callback, user_data, c14n_mode, inclusive_ns_prefixes, with_comments, buf); if (ctx == NULL) { @@ -1908,12 +1910,12 @@ xmlC14NExecute(xmlDocPtr doc, xmlC14NIsVisibleCallback is_visible_callback, - /* + /* * Root Node - * The root node is the parent of the top-level document element. The - * result of processing each of its child nodes that is in the node-set - * in document order. The root node does not generate a byte order mark, - * XML declaration, nor anything from within the document type + * The root node is the parent of the top-level document element. The + * result of processing each of its child nodes that is in the node-set + * in document order. The root node does not generate a byte order mark, + * XML declaration, nor anything from within the document type * declaration. */ if (doc->children != NULL) { @@ -1935,7 +1937,7 @@ xmlC14NExecute(xmlDocPtr doc, xmlC14NIsVisibleCallback is_visible_callback, return (-1); } - /* + /* * Cleanup */ xmlC14NFreeCtx(ctx); @@ -1944,30 +1946,30 @@ xmlC14NExecute(xmlDocPtr doc, xmlC14NIsVisibleCallback is_visible_callback, /** * xmlC14NDocSaveTo: - * @doc: the XML document for canonization - * @nodes: the nodes set to be included in the canonized image - * or NULL if all document nodes should be included + * @doc: the XML document for canonization + * @nodes: the nodes set to be included in the canonized image + * or NULL if all document nodes should be included * @mode: the c14n mode (see @xmlC14NMode) - * @inclusive_ns_prefixes: the list of inclusive namespace prefixes + * @inclusive_ns_prefixes: the list of inclusive namespace prefixes * ended with a NULL or NULL if there is no - * inclusive namespaces (only for exclusive + * inclusive namespaces (only for exclusive * canonicalization, ignored otherwise) - * @with_comments: include comments in the result (!=0) or not (==0) - * @buf: the output buffer to store canonical XML; this + * @with_comments: include comments in the result (!=0) or not (==0) + * @buf: the output buffer to store canonical XML; this * buffer MUST have encoder==NULL because C14N requires * UTF-8 output - * + * * Dumps the canonized image of given XML document into the provided buffer. * For details see "Canonical XML" (http://www.w3.org/TR/xml-c14n) or * "Exclusive XML Canonicalization" (http://www.w3.org/TR/xml-exc-c14n) * - * Returns non-negative value on success or a negative value on fail + * Returns non-negative value on success or a negative value on fail */ int xmlC14NDocSaveTo(xmlDocPtr doc, xmlNodeSetPtr nodes, int mode, xmlChar ** inclusive_ns_prefixes, int with_comments, xmlOutputBufferPtr buf) { - return(xmlC14NExecute(doc, + return(xmlC14NExecute(doc, (xmlC14NIsVisibleCallback)xmlC14NIsNodeInNodeset, nodes, mode, @@ -1979,24 +1981,24 @@ xmlC14NDocSaveTo(xmlDocPtr doc, xmlNodeSetPtr nodes, /** * xmlC14NDocDumpMemory: - * @doc: the XML document for canonization - * @nodes: the nodes set to be included in the canonized image - * or NULL if all document nodes should be included + * @doc: the XML document for canonization + * @nodes: the nodes set to be included in the canonized image + * or NULL if all document nodes should be included * @mode: the c14n mode (see @xmlC14NMode) - * @inclusive_ns_prefixes: the list of inclusive namespace prefixes + * @inclusive_ns_prefixes: the list of inclusive namespace prefixes * ended with a NULL or NULL if there is no - * inclusive namespaces (only for exclusive + * inclusive namespaces (only for exclusive * canonicalization, ignored otherwise) - * @with_comments: include comments in the result (!=0) or not (==0) - * @doc_txt_ptr: the memory pointer for allocated canonical XML text; + * @with_comments: include comments in the result (!=0) or not (==0) + * @doc_txt_ptr: the memory pointer for allocated canonical XML text; * the caller of this functions is responsible for calling - * xmlFree() to free allocated memory - * + * xmlFree() to free allocated memory + * * Dumps the canonized image of given XML document into memory. * For details see "Canonical XML" (http://www.w3.org/TR/xml-c14n) or * "Exclusive XML Canonicalization" (http://www.w3.org/TR/xml-exc-c14n) * - * Returns the number of bytes written on success or a negative value on fail + * Returns the number of bytes written on success or a negative value on fail */ int xmlC14NDocDumpMemory(xmlDocPtr doc, xmlNodeSetPtr nodes, @@ -2014,7 +2016,7 @@ xmlC14NDocDumpMemory(xmlDocPtr doc, xmlNodeSetPtr nodes, *doc_txt_ptr = NULL; /* - * create memory buffer with UTF8 (default) encoding + * create memory buffer with UTF8 (default) encoding */ buf = xmlAllocOutputBuffer(NULL); if (buf == NULL) { @@ -2033,9 +2035,9 @@ xmlC14NDocDumpMemory(xmlDocPtr doc, xmlNodeSetPtr nodes, return (-1); } - ret = buf->buffer->use; + ret = xmlBufUse(buf->buffer); if (ret > 0) { - *doc_txt_ptr = xmlStrndup(buf->buffer->content, ret); + *doc_txt_ptr = xmlStrndup(xmlBufContent(buf->buffer), ret); } (void) xmlOutputBufferClose(buf); @@ -2048,26 +2050,26 @@ xmlC14NDocDumpMemory(xmlDocPtr doc, xmlNodeSetPtr nodes, /** * xmlC14NDocSave: - * @doc: the XML document for canonization - * @nodes: the nodes set to be included in the canonized image - * or NULL if all document nodes should be included + * @doc: the XML document for canonization + * @nodes: the nodes set to be included in the canonized image + * or NULL if all document nodes should be included * @mode: the c14n mode (see @xmlC14NMode) - * @inclusive_ns_prefixes: the list of inclusive namespace prefixes + * @inclusive_ns_prefixes: the list of inclusive namespace prefixes * ended with a NULL or NULL if there is no - * inclusive namespaces (only for exclusive + * inclusive namespaces (only for exclusive * canonicalization, ignored otherwise) - * @with_comments: include comments in the result (!=0) or not (==0) - * @filename: the filename to store canonical XML image - * @compression: the compression level (zlib requred): + * @with_comments: include comments in the result (!=0) or not (==0) + * @filename: the filename to store canonical XML image + * @compression: the compression level (zlib requred): * -1 - libxml default, - * 0 - uncompressed, + * 0 - uncompressed, * >0 - compression level - * + * * Dumps the canonized image of given XML document into the file. * For details see "Canonical XML" (http://www.w3.org/TR/xml-c14n) or * "Exclusive XML Canonicalization" (http://www.w3.org/TR/xml-exc-c14n) * - * Returns the number of bytes written success or a negative value on fail + * Returns the number of bytes written success or a negative value on fail */ int xmlC14NDocSave(xmlDocPtr doc, xmlNodeSetPtr nodes, @@ -2086,7 +2088,7 @@ xmlC14NDocSave(xmlDocPtr doc, xmlNodeSetPtr nodes, compression = xmlGetCompressMode(); #endif - /* + /* * save the content to a temp buffer, use default UTF8 encoding. */ buf = xmlOutputBufferCreateFilename(filename, NULL, compression); @@ -2106,8 +2108,8 @@ xmlC14NDocSave(xmlDocPtr doc, xmlNodeSetPtr nodes, return (-1); } - /* - * get the numbers of bytes written + /* + * get the numbers of bytes written */ ret = xmlOutputBufferClose(buf); return (ret); @@ -2121,14 +2123,14 @@ xmlC14NDocSave(xmlDocPtr doc, xmlNodeSetPtr nodes, #define growBufferReentrant() { \ buffer_size *= 2; \ buffer = (xmlChar *) \ - xmlRealloc(buffer, buffer_size * sizeof(xmlChar)); \ + xmlRealloc(buffer, buffer_size * sizeof(xmlChar)); \ if (buffer == NULL) { \ xmlC14NErrMemory("growing buffer"); \ return(NULL); \ } \ } -/** +/** * xmlC11NNormalizeString: * @input: the input string * @mode: the normalization mode (attribute, comment, PI or text) diff --git a/catalog.c b/catalog.c index fb586c1..61cce03 100644 --- a/catalog.c +++ b/catalog.c @@ -1,5 +1,5 @@ /** - * catalog.c: set of generic Catalog related routines + * catalog.c: set of generic Catalog related routines * * Reference: SGML Open Technical Resolution TR9401:1997. * http://www.jclark.com/sp/catalog.htm @@ -41,6 +41,8 @@ #include #include +#include "buf.h" + #define MAX_DELEGATE 50 #define MAX_CATAL_DEPTH 50 @@ -60,7 +62,7 @@ *> values "system" and "public". I have made the default be "system" to *> match yours. */ -#define TODO \ +#define TODO \ xmlGenericError(xmlGenericErrorContext, \ "Unimplemented block at %s:%d\n", \ __FILE__, __LINE__); @@ -206,7 +208,7 @@ static int xmlCatalogInitialized = 0; /************************************************************************ * * - * Catalog error handlers * + * Catalog error handlers * * * ************************************************************************/ @@ -259,9 +261,9 @@ xmlCatalogErr(xmlCatalogEntryPtr catal, xmlNodePtr node, int error, * @name: name of the entry * @value: value of the entry * @prefer: the PUBLIC vs. SYSTEM current preference value - * @group: for members of a group, the group entry + * @group: for members of a group, the group entry * - * create a new Catalog entry, this type is shared both by XML and + * create a new Catalog entry, this type is shared both by XML and * SGML catalogs, but the acceptable types values differs. * * Returns the xmlCatalogEntryPtr or NULL in case of error @@ -399,7 +401,7 @@ xmlFreeCatalogHashEntryList(xmlCatalogEntryPtr catal) { * @type: type of catalog * @prefer: the PUBLIC vs. SYSTEM current preference value * - * create a new Catalog, this type is shared both by XML and + * create a new Catalog, this type is shared both by XML and * SGML catalogs, but the acceptable types values differs. * * Returns the xmlCatalogPtr or NULL in case of error @@ -567,7 +569,7 @@ static void xmlDumpXMLCatalogNode(xmlCatalogEntryPtr catal, xmlNodePtr catalog, xns = xmlSearchNsByHref(doc, node, XML_XML_NAMESPACE); if (xns != NULL) xmlSetNsProp(node, xns, BAD_CAST "base", - cur->value); + cur->value); } switch (cur->prefer) { case XML_CATA_PREFER_NONE: @@ -685,7 +687,7 @@ BAD_CAST "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"); xmlAddChild((xmlNodePtr) doc, catalog); xmlDumpXMLCatalogNode(catal, catalog, doc, ns, NULL); - + /* * reserialize it */ @@ -822,7 +824,7 @@ xmlCatalogUnWrapURN(const xmlChar *urn) { if (xmlStrncmp(urn, BAD_CAST XML_URN_PUBID, sizeof(XML_URN_PUBID) - 1)) return(NULL); urn += sizeof(XML_URN_PUBID) - 1; - + while (*urn != 0) { if (i > sizeof(result) - 4) break; @@ -912,10 +914,7 @@ xmlParseCatalogFile(const char *filename) { inputStream->filename = (char *) xmlCanonicPath((const xmlChar *)filename); inputStream->buf = buf; - inputStream->base = inputStream->buf->buffer->content; - inputStream->cur = inputStream->buf->buffer->content; - inputStream->end = - &inputStream->buf->buffer->content[inputStream->buf->buffer->use]; + xmlBufResetInput(buf->buffer, inputStream); inputPush(ctxt, inputStream); if ((ctxt->directory == NULL) && (directory == NULL)) @@ -938,7 +937,7 @@ xmlParseCatalogFile(const char *filename) { ctxt->myDoc = NULL; } xmlFreeParserCtxt(ctxt); - + return(ret); } @@ -1328,7 +1327,7 @@ xmlParseXMLCatalogNodeList(xmlNodePtr cur, xmlCatalogPrefer prefer, * * Parses the catalog file to extract the XML tree and then analyze the * tree to build a list of Catalog entries corresponding to this catalog - * + * * Returns the resulting Catalog entries list */ static xmlCatalogEntryPtr @@ -1396,14 +1395,14 @@ xmlParseXMLCatalogFile(xmlCatalogPrefer prefer, const xmlChar *filename) { * @catal: an existing but incomplete catalog entry * * Fetch and parse the subcatalog referenced by an entry - * + * * Returns 0 in case of success, -1 otherwise */ static int xmlFetchXMLCatalogFile(xmlCatalogEntryPtr catal) { xmlCatalogEntryPtr doc; - if (catal == NULL) + if (catal == NULL) return(-1); if (catal->URL == NULL) return(-1); @@ -1495,7 +1494,7 @@ xmlAddXMLCatalog(xmlCatalogEntryPtr catal, const xmlChar *type, xmlCatalogEntryType typ; int doregister = 0; - if ((catal == NULL) || + if ((catal == NULL) || ((catal->type != XML_CATA_CATALOG) && (catal->type != XML_CATA_BROKEN_CATALOG))) return(-1); @@ -1571,7 +1570,7 @@ xmlDelXMLCatalog(xmlCatalogEntryPtr catal, const xmlChar *value) { xmlCatalogEntryPtr cur; int ret = 0; - if ((catal == NULL) || + if ((catal == NULL) || ((catal->type != XML_CATA_CATALOG) && (catal->type != XML_CATA_BROKEN_CATALOG))) return(-1); @@ -1786,7 +1785,7 @@ xmlCatalogXMLResolve(xmlCatalogEntryPtr catal, const xmlChar *pubID, } if (nbList < MAX_DELEGATE) delegates[nbList++] = cur->URL; - + if (cur->children == NULL) { xmlFetchXMLCatalogFile(cur); } @@ -1999,7 +1998,7 @@ xmlCatalogListXMLResolve(xmlCatalogEntryPtr catal, const xmlChar *pubID, xmlChar *ret = NULL; xmlChar *urnID = NULL; xmlChar *normid; - + if (catal == NULL) return(NULL); if ((pubID == NULL) && (sysID == NULL)) @@ -2008,7 +2007,7 @@ xmlCatalogListXMLResolve(xmlCatalogEntryPtr catal, const xmlChar *pubID, normid = xmlCatalogNormalizePublic(pubID); if (normid != NULL) pubID = (*normid != 0 ? normid : NULL); - + if (!xmlStrncmp(pubID, BAD_CAST XML_URN_PUBID, sizeof(XML_URN_PUBID) - 1)) { urnID = xmlCatalogUnWrapURN(pubID); if (xmlDebugCatalogs) { @@ -2088,7 +2087,7 @@ static xmlChar * xmlCatalogListXMLResolveURI(xmlCatalogEntryPtr catal, const xmlChar *URI) { xmlChar *ret = NULL; xmlChar *urnID = NULL; - + if (catal == NULL) return(NULL); if (URI == NULL) @@ -2148,7 +2147,7 @@ xmlCatalogListXMLResolveURI(xmlCatalogEntryPtr catal, const xmlChar *URI) { */ static const xmlChar * xmlParseSGMLCatalogComment(const xmlChar *cur) { - if ((cur[0] != '-') || (cur[1] != '-')) + if ((cur[0] != '-') || (cur[1] != '-')) return(cur); SKIP(2); while ((cur[0] != 0) && ((cur[0] != '-') || ((cur[1] != '-')))) @@ -2683,7 +2682,7 @@ xmlLoadACatalog(const char *filename) first = content; - + while ((*first != 0) && (*first != '-') && (*first != '<') && (!(((*first >= 'A') && (*first <= 'Z')) || ((*first >= 'a') && (*first <= 'z'))))) @@ -2778,7 +2777,7 @@ xmlACatalogResolveSystem(xmlCatalogPtr catal, const xmlChar *sysID) { if ((sysID == NULL) || (catal == NULL)) return(NULL); - + if (xmlDebugCatalogs) xmlGenericError(xmlGenericErrorContext, "Resolve sysID %s\n", sysID); @@ -2813,7 +2812,7 @@ xmlACatalogResolvePublic(xmlCatalogPtr catal, const xmlChar *pubID) { if ((pubID == NULL) || (catal == NULL)) return(NULL); - + if (xmlDebugCatalogs) xmlGenericError(xmlGenericErrorContext, "Resolve pubID %s\n", pubID); @@ -2932,7 +2931,7 @@ xmlACatalogDump(xmlCatalogPtr catal, FILE *out) { } else { xmlHashScan(catal->sgml, (xmlHashScanner) xmlCatalogDumpEntry, out); - } + } } #endif /* LIBXML_OUTPUT_ENABLED */ @@ -2940,7 +2939,7 @@ xmlACatalogDump(xmlCatalogPtr catal, FILE *out) { * xmlACatalogAdd: * @catal: a Catalog * @type: the type of record to add to the catalog - * @orig: the system, public or prefix to match + * @orig: the system, public or prefix to match * @replace: the replacement value for the match * * Add an entry in the catalog, it may overwrite existing but @@ -2999,7 +2998,7 @@ xmlACatalogRemove(xmlCatalogPtr catal, const xmlChar *value) { (xmlHashDeallocator) xmlFreeCatalogEntry); if (res == 0) res = 1; - } + } return(res); } @@ -3058,7 +3057,7 @@ xmlCatalogIsEmpty(xmlCatalogPtr catal) { return(1); if (res < 0) return(-1); - } + } return(0); } @@ -3081,7 +3080,7 @@ xmlInitializeCatalogData(void) { if (xmlCatalogInitialized != 0) return; - if (getenv("XML_DEBUG_CATALOG")) + if (getenv("XML_DEBUG_CATALOG")) xmlDebugCatalogs = 1; xmlCatalogMutex = xmlNewRMutex(); @@ -3102,7 +3101,7 @@ xmlInitializeCatalog(void) { xmlInitializeCatalogData(); xmlRMutexLock(xmlCatalogMutex); - if (getenv("XML_DEBUG_CATALOG")) + if (getenv("XML_DEBUG_CATALOG")) xmlDebugCatalogs = 1; if (xmlDefaultCatalog == NULL) { @@ -3125,7 +3124,7 @@ xmlInitializeCatalog(void) { unsigned long len = GetModuleFileNameA(hmodule, buf, 255); if (len != 0) { char* p = &(buf[len]); - while (*p != '\\' && p > buf) + while (*p != '\\' && p > buf) p--; if (p != buf) { xmlChar* uri; @@ -3144,15 +3143,15 @@ xmlInitializeCatalog(void) { catalogs = XML_XML_DEFAULT_CATALOG; #endif - catal = xmlCreateNewCatalog(XML_XML_CATALOG_TYPE, + catal = xmlCreateNewCatalog(XML_XML_CATALOG_TYPE, xmlCatalogDefaultPrefer); if (catal != NULL) { - /* the XML_CATALOG_FILES envvar is allowed to contain a + /* the XML_CATALOG_FILES envvar is allowed to contain a space-separated list of entries. */ cur = catalogs; nextent = &catal->xml; while (*cur != '\0') { - while (xmlIsBlank_ch(*cur)) + while (xmlIsBlank_ch(*cur)) cur++; if (*cur != 0) { paths = cur; @@ -3277,7 +3276,7 @@ xmlCatalogCleanup(void) { xmlGenericError(xmlGenericErrorContext, "Catalogs cleanup\n"); if (xmlCatalogXMLFiles != NULL) - xmlHashFree(xmlCatalogXMLFiles, + xmlHashFree(xmlCatalogXMLFiles, (xmlHashDeallocator)xmlFreeCatalogHashEntryList); xmlCatalogXMLFiles = NULL; if (xmlDefaultCatalog != NULL) @@ -3392,7 +3391,7 @@ xmlCatalogDump(FILE *out) { /** * xmlCatalogAdd: * @type: the type of record to add to the catalog - * @orig: the system, public or prefix to match + * @orig: the system, public or prefix to match * @replace: the replacement value for the match * * Add an entry in the catalog, it may overwrite existing but @@ -3423,7 +3422,7 @@ xmlCatalogAdd(const xmlChar *type, const xmlChar *orig, const xmlChar *replace) xmlRMutexUnlock(xmlCatalogMutex); return(0); - } + } res = xmlACatalogAdd(xmlDefaultCatalog, type, orig, replace); xmlRMutexUnlock(xmlCatalogMutex); @@ -3611,7 +3610,7 @@ xmlCatalogFreeLocal(void *catalogs) { * * Returns the updated list */ -void * +void * xmlCatalogAddLocal(void *catalogs, const xmlChar *URL) { xmlCatalogEntryPtr catal, add; @@ -3631,7 +3630,7 @@ xmlCatalogAddLocal(void *catalogs, const xmlChar *URL) { return(catalogs); catal = (xmlCatalogEntryPtr) catalogs; - if (catal == NULL) + if (catal == NULL) return((void *) add); while (catal->next != NULL) @@ -3646,7 +3645,7 @@ xmlCatalogAddLocal(void *catalogs, const xmlChar *URL) { * @pubID: the public ID string * @sysID: the system ID string * - * Do a complete resolution lookup of an External Identifier using a + * Do a complete resolution lookup of an External Identifier using a * document's private catalog list * * Returns the URI of the resource or NULL if not found, it must be freed @@ -3691,7 +3690,7 @@ xmlCatalogLocalResolve(void *catalogs, const xmlChar *pubID, * @catalogs: a document's list of catalogs * @URI: the URI * - * Do a complete resolution lookup of an URI using a + * Do a complete resolution lookup of an URI using a * document's private catalog list * * Returns the URI of the resource or NULL if not found, it must be freed @@ -3752,7 +3751,7 @@ xmlCatalogGetSystem(const xmlChar *sysID) { if (sysID == NULL) return(NULL); - + /* * Check first the XML catalogs */ @@ -3796,7 +3795,7 @@ xmlCatalogGetPublic(const xmlChar *pubID) { if (pubID == NULL) return(NULL); - + /* * Check first the XML catalogs */ diff --git a/chvalid.c b/chvalid.c old mode 100755 new mode 100644 index 00dd962..06e8db0 --- a/chvalid.c +++ b/chvalid.c @@ -46,109 +46,109 @@ const unsigned char xmlIsPubidChar_tab[256] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; -static const xmlChSRange xmlIsBaseChar_srng[] = { {0x100, 0x131}, - {0x134, 0x13e}, {0x141, 0x148}, {0x14a, 0x17e}, {0x180, 0x1c3}, - {0x1cd, 0x1f0}, {0x1f4, 0x1f5}, {0x1fa, 0x217}, {0x250, 0x2a8}, - {0x2bb, 0x2c1}, {0x386, 0x386}, {0x388, 0x38a}, {0x38c, 0x38c}, - {0x38e, 0x3a1}, {0x3a3, 0x3ce}, {0x3d0, 0x3d6}, {0x3da, 0x3da}, - {0x3dc, 0x3dc}, {0x3de, 0x3de}, {0x3e0, 0x3e0}, {0x3e2, 0x3f3}, - {0x401, 0x40c}, {0x40e, 0x44f}, {0x451, 0x45c}, {0x45e, 0x481}, - {0x490, 0x4c4}, {0x4c7, 0x4c8}, {0x4cb, 0x4cc}, {0x4d0, 0x4eb}, - {0x4ee, 0x4f5}, {0x4f8, 0x4f9}, {0x531, 0x556}, {0x559, 0x559}, - {0x561, 0x586}, {0x5d0, 0x5ea}, {0x5f0, 0x5f2}, {0x621, 0x63a}, - {0x641, 0x64a}, {0x671, 0x6b7}, {0x6ba, 0x6be}, {0x6c0, 0x6ce}, - {0x6d0, 0x6d3}, {0x6d5, 0x6d5}, {0x6e5, 0x6e6}, {0x905, 0x939}, - {0x93d, 0x93d}, {0x958, 0x961}, {0x985, 0x98c}, {0x98f, 0x990}, - {0x993, 0x9a8}, {0x9aa, 0x9b0}, {0x9b2, 0x9b2}, {0x9b6, 0x9b9}, - {0x9dc, 0x9dd}, {0x9df, 0x9e1}, {0x9f0, 0x9f1}, {0xa05, 0xa0a}, - {0xa0f, 0xa10}, {0xa13, 0xa28}, {0xa2a, 0xa30}, {0xa32, 0xa33}, - {0xa35, 0xa36}, {0xa38, 0xa39}, {0xa59, 0xa5c}, {0xa5e, 0xa5e}, - {0xa72, 0xa74}, {0xa85, 0xa8b}, {0xa8d, 0xa8d}, {0xa8f, 0xa91}, - {0xa93, 0xaa8}, {0xaaa, 0xab0}, {0xab2, 0xab3}, {0xab5, 0xab9}, - {0xabd, 0xabd}, {0xae0, 0xae0}, {0xb05, 0xb0c}, {0xb0f, 0xb10}, - {0xb13, 0xb28}, {0xb2a, 0xb30}, {0xb32, 0xb33}, {0xb36, 0xb39}, - {0xb3d, 0xb3d}, {0xb5c, 0xb5d}, {0xb5f, 0xb61}, {0xb85, 0xb8a}, - {0xb8e, 0xb90}, {0xb92, 0xb95}, {0xb99, 0xb9a}, {0xb9c, 0xb9c}, - {0xb9e, 0xb9f}, {0xba3, 0xba4}, {0xba8, 0xbaa}, {0xbae, 0xbb5}, - {0xbb7, 0xbb9}, {0xc05, 0xc0c}, {0xc0e, 0xc10}, {0xc12, 0xc28}, - {0xc2a, 0xc33}, {0xc35, 0xc39}, {0xc60, 0xc61}, {0xc85, 0xc8c}, - {0xc8e, 0xc90}, {0xc92, 0xca8}, {0xcaa, 0xcb3}, {0xcb5, 0xcb9}, - {0xcde, 0xcde}, {0xce0, 0xce1}, {0xd05, 0xd0c}, {0xd0e, 0xd10}, - {0xd12, 0xd28}, {0xd2a, 0xd39}, {0xd60, 0xd61}, {0xe01, 0xe2e}, - {0xe30, 0xe30}, {0xe32, 0xe33}, {0xe40, 0xe45}, {0xe81, 0xe82}, - {0xe84, 0xe84}, {0xe87, 0xe88}, {0xe8a, 0xe8a}, {0xe8d, 0xe8d}, - {0xe94, 0xe97}, {0xe99, 0xe9f}, {0xea1, 0xea3}, {0xea5, 0xea5}, - {0xea7, 0xea7}, {0xeaa, 0xeab}, {0xead, 0xeae}, {0xeb0, 0xeb0}, - {0xeb2, 0xeb3}, {0xebd, 0xebd}, {0xec0, 0xec4}, {0xf40, 0xf47}, - {0xf49, 0xf69}, {0x10a0, 0x10c5}, {0x10d0, 0x10f6}, {0x1100, 0x1100}, - {0x1102, 0x1103}, {0x1105, 0x1107}, {0x1109, 0x1109}, {0x110b, 0x110c}, - {0x110e, 0x1112}, {0x113c, 0x113c}, {0x113e, 0x113e}, {0x1140, 0x1140}, - {0x114c, 0x114c}, {0x114e, 0x114e}, {0x1150, 0x1150}, {0x1154, 0x1155}, - {0x1159, 0x1159}, {0x115f, 0x1161}, {0x1163, 0x1163}, {0x1165, 0x1165}, - {0x1167, 0x1167}, {0x1169, 0x1169}, {0x116d, 0x116e}, {0x1172, 0x1173}, - {0x1175, 0x1175}, {0x119e, 0x119e}, {0x11a8, 0x11a8}, {0x11ab, 0x11ab}, - {0x11ae, 0x11af}, {0x11b7, 0x11b8}, {0x11ba, 0x11ba}, {0x11bc, 0x11c2}, - {0x11eb, 0x11eb}, {0x11f0, 0x11f0}, {0x11f9, 0x11f9}, {0x1e00, 0x1e9b}, - {0x1ea0, 0x1ef9}, {0x1f00, 0x1f15}, {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, - {0x1f48, 0x1f4d}, {0x1f50, 0x1f57}, {0x1f59, 0x1f59}, {0x1f5b, 0x1f5b}, - {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc}, - {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4}, {0x1fc6, 0x1fcc}, {0x1fd0, 0x1fd3}, - {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc}, - {0x2126, 0x2126}, {0x212a, 0x212b}, {0x212e, 0x212e}, {0x2180, 0x2182}, +static const xmlChSRange xmlIsBaseChar_srng[] = { {0x100, 0x131}, + {0x134, 0x13e}, {0x141, 0x148}, {0x14a, 0x17e}, {0x180, 0x1c3}, + {0x1cd, 0x1f0}, {0x1f4, 0x1f5}, {0x1fa, 0x217}, {0x250, 0x2a8}, + {0x2bb, 0x2c1}, {0x386, 0x386}, {0x388, 0x38a}, {0x38c, 0x38c}, + {0x38e, 0x3a1}, {0x3a3, 0x3ce}, {0x3d0, 0x3d6}, {0x3da, 0x3da}, + {0x3dc, 0x3dc}, {0x3de, 0x3de}, {0x3e0, 0x3e0}, {0x3e2, 0x3f3}, + {0x401, 0x40c}, {0x40e, 0x44f}, {0x451, 0x45c}, {0x45e, 0x481}, + {0x490, 0x4c4}, {0x4c7, 0x4c8}, {0x4cb, 0x4cc}, {0x4d0, 0x4eb}, + {0x4ee, 0x4f5}, {0x4f8, 0x4f9}, {0x531, 0x556}, {0x559, 0x559}, + {0x561, 0x586}, {0x5d0, 0x5ea}, {0x5f0, 0x5f2}, {0x621, 0x63a}, + {0x641, 0x64a}, {0x671, 0x6b7}, {0x6ba, 0x6be}, {0x6c0, 0x6ce}, + {0x6d0, 0x6d3}, {0x6d5, 0x6d5}, {0x6e5, 0x6e6}, {0x905, 0x939}, + {0x93d, 0x93d}, {0x958, 0x961}, {0x985, 0x98c}, {0x98f, 0x990}, + {0x993, 0x9a8}, {0x9aa, 0x9b0}, {0x9b2, 0x9b2}, {0x9b6, 0x9b9}, + {0x9dc, 0x9dd}, {0x9df, 0x9e1}, {0x9f0, 0x9f1}, {0xa05, 0xa0a}, + {0xa0f, 0xa10}, {0xa13, 0xa28}, {0xa2a, 0xa30}, {0xa32, 0xa33}, + {0xa35, 0xa36}, {0xa38, 0xa39}, {0xa59, 0xa5c}, {0xa5e, 0xa5e}, + {0xa72, 0xa74}, {0xa85, 0xa8b}, {0xa8d, 0xa8d}, {0xa8f, 0xa91}, + {0xa93, 0xaa8}, {0xaaa, 0xab0}, {0xab2, 0xab3}, {0xab5, 0xab9}, + {0xabd, 0xabd}, {0xae0, 0xae0}, {0xb05, 0xb0c}, {0xb0f, 0xb10}, + {0xb13, 0xb28}, {0xb2a, 0xb30}, {0xb32, 0xb33}, {0xb36, 0xb39}, + {0xb3d, 0xb3d}, {0xb5c, 0xb5d}, {0xb5f, 0xb61}, {0xb85, 0xb8a}, + {0xb8e, 0xb90}, {0xb92, 0xb95}, {0xb99, 0xb9a}, {0xb9c, 0xb9c}, + {0xb9e, 0xb9f}, {0xba3, 0xba4}, {0xba8, 0xbaa}, {0xbae, 0xbb5}, + {0xbb7, 0xbb9}, {0xc05, 0xc0c}, {0xc0e, 0xc10}, {0xc12, 0xc28}, + {0xc2a, 0xc33}, {0xc35, 0xc39}, {0xc60, 0xc61}, {0xc85, 0xc8c}, + {0xc8e, 0xc90}, {0xc92, 0xca8}, {0xcaa, 0xcb3}, {0xcb5, 0xcb9}, + {0xcde, 0xcde}, {0xce0, 0xce1}, {0xd05, 0xd0c}, {0xd0e, 0xd10}, + {0xd12, 0xd28}, {0xd2a, 0xd39}, {0xd60, 0xd61}, {0xe01, 0xe2e}, + {0xe30, 0xe30}, {0xe32, 0xe33}, {0xe40, 0xe45}, {0xe81, 0xe82}, + {0xe84, 0xe84}, {0xe87, 0xe88}, {0xe8a, 0xe8a}, {0xe8d, 0xe8d}, + {0xe94, 0xe97}, {0xe99, 0xe9f}, {0xea1, 0xea3}, {0xea5, 0xea5}, + {0xea7, 0xea7}, {0xeaa, 0xeab}, {0xead, 0xeae}, {0xeb0, 0xeb0}, + {0xeb2, 0xeb3}, {0xebd, 0xebd}, {0xec0, 0xec4}, {0xf40, 0xf47}, + {0xf49, 0xf69}, {0x10a0, 0x10c5}, {0x10d0, 0x10f6}, {0x1100, 0x1100}, + {0x1102, 0x1103}, {0x1105, 0x1107}, {0x1109, 0x1109}, {0x110b, 0x110c}, + {0x110e, 0x1112}, {0x113c, 0x113c}, {0x113e, 0x113e}, {0x1140, 0x1140}, + {0x114c, 0x114c}, {0x114e, 0x114e}, {0x1150, 0x1150}, {0x1154, 0x1155}, + {0x1159, 0x1159}, {0x115f, 0x1161}, {0x1163, 0x1163}, {0x1165, 0x1165}, + {0x1167, 0x1167}, {0x1169, 0x1169}, {0x116d, 0x116e}, {0x1172, 0x1173}, + {0x1175, 0x1175}, {0x119e, 0x119e}, {0x11a8, 0x11a8}, {0x11ab, 0x11ab}, + {0x11ae, 0x11af}, {0x11b7, 0x11b8}, {0x11ba, 0x11ba}, {0x11bc, 0x11c2}, + {0x11eb, 0x11eb}, {0x11f0, 0x11f0}, {0x11f9, 0x11f9}, {0x1e00, 0x1e9b}, + {0x1ea0, 0x1ef9}, {0x1f00, 0x1f15}, {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, + {0x1f48, 0x1f4d}, {0x1f50, 0x1f57}, {0x1f59, 0x1f59}, {0x1f5b, 0x1f5b}, + {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc}, + {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4}, {0x1fc6, 0x1fcc}, {0x1fd0, 0x1fd3}, + {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc}, + {0x2126, 0x2126}, {0x212a, 0x212b}, {0x212e, 0x212e}, {0x2180, 0x2182}, {0x3041, 0x3094}, {0x30a1, 0x30fa}, {0x3105, 0x312c}, {0xac00, 0xd7a3}}; const xmlChRangeGroup xmlIsBaseCharGroup = {197, 0, xmlIsBaseChar_srng, (xmlChLRangePtr)0}; -static const xmlChSRange xmlIsChar_srng[] = { {0x100, 0xd7ff}, +static const xmlChSRange xmlIsChar_srng[] = { {0x100, 0xd7ff}, {0xe000, 0xfffd}}; static const xmlChLRange xmlIsChar_lrng[] = { {0x10000, 0x10ffff}}; const xmlChRangeGroup xmlIsCharGroup = {2, 1, xmlIsChar_srng, xmlIsChar_lrng}; -static const xmlChSRange xmlIsCombining_srng[] = { {0x300, 0x345}, - {0x360, 0x361}, {0x483, 0x486}, {0x591, 0x5a1}, {0x5a3, 0x5b9}, - {0x5bb, 0x5bd}, {0x5bf, 0x5bf}, {0x5c1, 0x5c2}, {0x5c4, 0x5c4}, - {0x64b, 0x652}, {0x670, 0x670}, {0x6d6, 0x6dc}, {0x6dd, 0x6df}, - {0x6e0, 0x6e4}, {0x6e7, 0x6e8}, {0x6ea, 0x6ed}, {0x901, 0x903}, - {0x93c, 0x93c}, {0x93e, 0x94c}, {0x94d, 0x94d}, {0x951, 0x954}, - {0x962, 0x963}, {0x981, 0x983}, {0x9bc, 0x9bc}, {0x9be, 0x9be}, - {0x9bf, 0x9bf}, {0x9c0, 0x9c4}, {0x9c7, 0x9c8}, {0x9cb, 0x9cd}, - {0x9d7, 0x9d7}, {0x9e2, 0x9e3}, {0xa02, 0xa02}, {0xa3c, 0xa3c}, - {0xa3e, 0xa3e}, {0xa3f, 0xa3f}, {0xa40, 0xa42}, {0xa47, 0xa48}, - {0xa4b, 0xa4d}, {0xa70, 0xa71}, {0xa81, 0xa83}, {0xabc, 0xabc}, - {0xabe, 0xac5}, {0xac7, 0xac9}, {0xacb, 0xacd}, {0xb01, 0xb03}, - {0xb3c, 0xb3c}, {0xb3e, 0xb43}, {0xb47, 0xb48}, {0xb4b, 0xb4d}, - {0xb56, 0xb57}, {0xb82, 0xb83}, {0xbbe, 0xbc2}, {0xbc6, 0xbc8}, - {0xbca, 0xbcd}, {0xbd7, 0xbd7}, {0xc01, 0xc03}, {0xc3e, 0xc44}, - {0xc46, 0xc48}, {0xc4a, 0xc4d}, {0xc55, 0xc56}, {0xc82, 0xc83}, - {0xcbe, 0xcc4}, {0xcc6, 0xcc8}, {0xcca, 0xccd}, {0xcd5, 0xcd6}, - {0xd02, 0xd03}, {0xd3e, 0xd43}, {0xd46, 0xd48}, {0xd4a, 0xd4d}, - {0xd57, 0xd57}, {0xe31, 0xe31}, {0xe34, 0xe3a}, {0xe47, 0xe4e}, - {0xeb1, 0xeb1}, {0xeb4, 0xeb9}, {0xebb, 0xebc}, {0xec8, 0xecd}, - {0xf18, 0xf19}, {0xf35, 0xf35}, {0xf37, 0xf37}, {0xf39, 0xf39}, - {0xf3e, 0xf3e}, {0xf3f, 0xf3f}, {0xf71, 0xf84}, {0xf86, 0xf8b}, - {0xf90, 0xf95}, {0xf97, 0xf97}, {0xf99, 0xfad}, {0xfb1, 0xfb7}, - {0xfb9, 0xfb9}, {0x20d0, 0x20dc}, {0x20e1, 0x20e1}, {0x302a, 0x302f}, +static const xmlChSRange xmlIsCombining_srng[] = { {0x300, 0x345}, + {0x360, 0x361}, {0x483, 0x486}, {0x591, 0x5a1}, {0x5a3, 0x5b9}, + {0x5bb, 0x5bd}, {0x5bf, 0x5bf}, {0x5c1, 0x5c2}, {0x5c4, 0x5c4}, + {0x64b, 0x652}, {0x670, 0x670}, {0x6d6, 0x6dc}, {0x6dd, 0x6df}, + {0x6e0, 0x6e4}, {0x6e7, 0x6e8}, {0x6ea, 0x6ed}, {0x901, 0x903}, + {0x93c, 0x93c}, {0x93e, 0x94c}, {0x94d, 0x94d}, {0x951, 0x954}, + {0x962, 0x963}, {0x981, 0x983}, {0x9bc, 0x9bc}, {0x9be, 0x9be}, + {0x9bf, 0x9bf}, {0x9c0, 0x9c4}, {0x9c7, 0x9c8}, {0x9cb, 0x9cd}, + {0x9d7, 0x9d7}, {0x9e2, 0x9e3}, {0xa02, 0xa02}, {0xa3c, 0xa3c}, + {0xa3e, 0xa3e}, {0xa3f, 0xa3f}, {0xa40, 0xa42}, {0xa47, 0xa48}, + {0xa4b, 0xa4d}, {0xa70, 0xa71}, {0xa81, 0xa83}, {0xabc, 0xabc}, + {0xabe, 0xac5}, {0xac7, 0xac9}, {0xacb, 0xacd}, {0xb01, 0xb03}, + {0xb3c, 0xb3c}, {0xb3e, 0xb43}, {0xb47, 0xb48}, {0xb4b, 0xb4d}, + {0xb56, 0xb57}, {0xb82, 0xb83}, {0xbbe, 0xbc2}, {0xbc6, 0xbc8}, + {0xbca, 0xbcd}, {0xbd7, 0xbd7}, {0xc01, 0xc03}, {0xc3e, 0xc44}, + {0xc46, 0xc48}, {0xc4a, 0xc4d}, {0xc55, 0xc56}, {0xc82, 0xc83}, + {0xcbe, 0xcc4}, {0xcc6, 0xcc8}, {0xcca, 0xccd}, {0xcd5, 0xcd6}, + {0xd02, 0xd03}, {0xd3e, 0xd43}, {0xd46, 0xd48}, {0xd4a, 0xd4d}, + {0xd57, 0xd57}, {0xe31, 0xe31}, {0xe34, 0xe3a}, {0xe47, 0xe4e}, + {0xeb1, 0xeb1}, {0xeb4, 0xeb9}, {0xebb, 0xebc}, {0xec8, 0xecd}, + {0xf18, 0xf19}, {0xf35, 0xf35}, {0xf37, 0xf37}, {0xf39, 0xf39}, + {0xf3e, 0xf3e}, {0xf3f, 0xf3f}, {0xf71, 0xf84}, {0xf86, 0xf8b}, + {0xf90, 0xf95}, {0xf97, 0xf97}, {0xf99, 0xfad}, {0xfb1, 0xfb7}, + {0xfb9, 0xfb9}, {0x20d0, 0x20dc}, {0x20e1, 0x20e1}, {0x302a, 0x302f}, {0x3099, 0x3099}, {0x309a, 0x309a}}; const xmlChRangeGroup xmlIsCombiningGroup = {95, 0, xmlIsCombining_srng, (xmlChLRangePtr)0}; -static const xmlChSRange xmlIsDigit_srng[] = { {0x660, 0x669}, - {0x6f0, 0x6f9}, {0x966, 0x96f}, {0x9e6, 0x9ef}, {0xa66, 0xa6f}, - {0xae6, 0xaef}, {0xb66, 0xb6f}, {0xbe7, 0xbef}, {0xc66, 0xc6f}, - {0xce6, 0xcef}, {0xd66, 0xd6f}, {0xe50, 0xe59}, {0xed0, 0xed9}, +static const xmlChSRange xmlIsDigit_srng[] = { {0x660, 0x669}, + {0x6f0, 0x6f9}, {0x966, 0x96f}, {0x9e6, 0x9ef}, {0xa66, 0xa6f}, + {0xae6, 0xaef}, {0xb66, 0xb6f}, {0xbe7, 0xbef}, {0xc66, 0xc6f}, + {0xce6, 0xcef}, {0xd66, 0xd6f}, {0xe50, 0xe59}, {0xed0, 0xed9}, {0xf20, 0xf29}}; const xmlChRangeGroup xmlIsDigitGroup = {14, 0, xmlIsDigit_srng, (xmlChLRangePtr)0}; -static const xmlChSRange xmlIsExtender_srng[] = { {0x2d0, 0x2d0}, - {0x2d1, 0x2d1}, {0x387, 0x387}, {0x640, 0x640}, {0xe46, 0xe46}, - {0xec6, 0xec6}, {0x3005, 0x3005}, {0x3031, 0x3035}, {0x309d, 0x309e}, +static const xmlChSRange xmlIsExtender_srng[] = { {0x2d0, 0x2d0}, + {0x2d1, 0x2d1}, {0x387, 0x387}, {0x640, 0x640}, {0xe46, 0xe46}, + {0xec6, 0xec6}, {0x3005, 0x3005}, {0x3031, 0x3035}, {0x309d, 0x309e}, {0x30fc, 0x30fe}}; const xmlChRangeGroup xmlIsExtenderGroup = {10, 0, xmlIsExtender_srng, (xmlChLRangePtr)0}; -static const xmlChSRange xmlIsIdeographic_srng[] = { {0x3007, 0x3007}, +static const xmlChSRange xmlIsIdeographic_srng[] = { {0x3007, 0x3007}, {0x3021, 0x3029}, {0x4e00, 0x9fa5}}; const xmlChRangeGroup xmlIsIdeographicGroup = {3, 0, xmlIsIdeographic_srng, (xmlChLRangePtr)0}; diff --git a/config.guess b/config.guess index dc84c68..49ba16f 100755 --- a/config.guess +++ b/config.guess @@ -1,10 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -# Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011, 2012 Free Software Foundation, Inc. -timestamp='2009-11-20' +timestamp='2012-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -56,8 +56,9 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -144,7 +145,7 @@ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward @@ -180,7 +181,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in fi ;; *) - os=netbsd + os=netbsd ;; esac # The OS release @@ -223,7 +224,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on @@ -269,7 +270,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit ;; + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead @@ -295,7 +299,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in echo s390-ibm-zvmoe exit ;; *:OS400:*:*) - echo powerpc-ibm-os400 + echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} @@ -394,23 +398,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit ;; + exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; @@ -480,8 +484,8 @@ EOF echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ @@ -494,7 +498,7 @@ EOF else echo i586-dg-dgux${UNAME_RELEASE} fi - exit ;; + exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; @@ -551,7 +555,7 @@ EOF echo rs6000-ibm-aix3.2 fi exit ;; - *:AIX:*:[456]) + *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 @@ -594,52 +598,52 @@ EOF 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac + esac ;; + esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + sed 's/^ //' << EOF >$dummy.c - #define _HPUX_SOURCE - #include - #include + #define _HPUX_SOURCE + #include + #include - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa @@ -730,22 +734,22 @@ EOF exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd - exit ;; + exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit ;; + exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd - exit ;; + exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd - exit ;; + exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd - exit ;; + exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; @@ -769,14 +773,14 @@ EOF exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} @@ -788,13 +792,12 @@ EOF echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) - case ${UNAME_MACHINE} in - pc98) - echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) @@ -803,15 +806,18 @@ EOF *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; + i*:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) - case ${UNAME_MACHINE} in + case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; @@ -866,7 +872,7 @@ EOF EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; - esac + esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} @@ -878,20 +884,29 @@ EOF then echo ${UNAME_MACHINE}-unknown-linux-gnu else - echo ${UNAME_MACHINE}-unknown-linux-gnueabi + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabihf + fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) - echo cris-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; frv:Linux:*:*) - echo frv-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu @@ -933,7 +948,7 @@ EOF test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) - echo or32-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu @@ -959,7 +974,7 @@ EOF echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu @@ -967,14 +982,17 @@ EOF sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -983,11 +1001,11 @@ EOF echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. + # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) @@ -1019,7 +1037,7 @@ EOF fi exit ;; i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. + # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; @@ -1047,13 +1065,13 @@ EOF exit ;; pc:*:*:*) # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i586. + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp - exit ;; + exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; @@ -1088,8 +1106,8 @@ EOF /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ @@ -1132,10 +1150,10 @@ EOF echo ns32k-sni-sysv fi exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm @@ -1161,11 +1179,11 @@ EOF exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + echo mips-nec-sysv${UNAME_RELEASE} else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv${UNAME_RELEASE} fi - exit ;; + exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; @@ -1230,6 +1248,9 @@ EOF *:QNX:*:4*) echo i386-pc-qnx exit ;; + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; @@ -1275,13 +1296,13 @@ EOF echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} + echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` + UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; @@ -1321,11 +1342,11 @@ main () #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 - "4" + "4" #else - "" + "" #endif - ); exit (0); + ); exit (0); #endif #endif diff --git a/config.h.in b/config.h.in index 4b080ba..a564b6c 100644 --- a/config.h.in +++ b/config.h.in @@ -69,6 +69,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H +/* Define to 1 if you have the `isascii' function. */ +#undef HAVE_ISASCII + /* Define if isinf is there */ #undef HAVE_ISINF @@ -111,6 +114,17 @@ /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H +/* Define to 1 if you have the `mmap' function. */ +#undef HAVE_MMAP + +/* Define to 1 if you have the `munmap' function. */ +#undef HAVE_MUNMAP + +/* mmap() is no good without munmap() */ +#if defined(HAVE_MMAP) && !defined(HAVE_MUNMAP) +# undef /**/ HAVE_MMAP +#endif + /* Define to 1 if you have the header file. */ #undef HAVE_NAN_H @@ -132,6 +146,9 @@ /* Define if is there */ #undef HAVE_PTHREAD_H +/* Define to 1 if you have the `putenv' function. */ +#undef HAVE_PUTENV + /* Define to 1 if you have the `rand' function. */ #undef HAVE_RAND @@ -291,8 +308,17 @@ /* Determine what socket length (socklen_t) data type is */ #undef XML_SOCKLEN_T +/* Define for Solaris 2.5.1 so the uint32_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +#undef _UINT32_T + /* Using the Win32 Socket implementation */ #undef _WINSOCKAPI_ /* ss_family is not defined here, use __ss_family instead */ #undef ss_family + +/* Define to the type of an unsigned integer type of width exactly 32 bits if + such a type exists and the standard includes do not define it. */ +#undef uint32_t diff --git a/config.sub b/config.sub index 2a55a50..d6b6b3c 100755 --- a/config.sub +++ b/config.sub @@ -1,10 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -# Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011, 2012 Free Software Foundation, Inc. -timestamp='2009-11-20' +timestamp='2012-01-01' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -75,8 +75,9 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -123,8 +124,9 @@ esac # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ - uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os @@ -156,8 +158,8 @@ case $os in os= basic_machine=$1 ;; - -bluegene*) - os=-cnk + -bluegene*) + os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= @@ -173,10 +175,10 @@ case $os in os=-chorusos basic_machine=$1 ;; - -chorusrdb) - os=-chorusrdb + -chorusrdb) + os=-chorusrdb basic_machine=$1 - ;; + ;; -hiux*) os=-hiuxwe2 ;; @@ -249,13 +251,17 @@ case $basic_machine in | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ + | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ + | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ @@ -281,29 +287,39 @@ case $basic_machine in | moxie \ | mt \ | msp430 \ + | nds32 | nds32le | nds32be \ | nios | nios2 \ | ns16k | ns32k \ + | open8 \ | or32 \ | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ - | rx \ + | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ - | v850 | v850e \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ - | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ + | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; m6811 | m68hc11 | m6812 | m68hc12 | picochip) - # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; @@ -313,6 +329,18 @@ case $basic_machine in basic_machine=mt-unknown ;; + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. @@ -332,16 +360,19 @@ case $basic_machine in | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ + | be32-* | be64-* \ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ + | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ @@ -367,25 +398,29 @@ case $basic_machine in | mmix-* \ | mt-* \ | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ - | romp-* | rs6000-* | rx-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ | tron-* \ | ubicom32-* \ - | v850-* | v850e-* | vax-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) @@ -410,7 +445,7 @@ case $basic_machine in basic_machine=a29k-amd os=-udi ;; - abacus) + abacus) basic_machine=abacus-unknown ;; adobe68k) @@ -480,11 +515,20 @@ case $basic_machine in basic_machine=powerpc-ibm os=-cnk ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; c90) basic_machine=c90-cray os=-unicos ;; - cegcc) + cegcc) basic_machine=arm-unknown os=-cegcc ;; @@ -516,7 +560,7 @@ case $basic_machine in basic_machine=craynv-cray os=-unicosmp ;; - cr16) + cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; @@ -674,7 +718,6 @@ case $basic_machine in i370-ibm* | ibm*) basic_machine=i370-ibm ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 @@ -732,7 +775,7 @@ case $basic_machine in basic_machine=ns32k-utek os=-sysv ;; - microblaze) + microblaze) basic_machine=microblaze-xilinx ;; mingw32) @@ -771,10 +814,18 @@ case $basic_machine in ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; + msys) + basic_machine=i386-pc + os=-msys + ;; mvs) basic_machine=i370-ibm os=-mvs ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; ncr3000) basic_machine=i486-ncr os=-sysv4 @@ -839,6 +890,12 @@ case $basic_machine in np1) basic_machine=np1-gould ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; nsr-tandem) basic_machine=nsr-tandem ;; @@ -921,9 +978,10 @@ case $basic_machine in ;; power) basic_machine=power-ibm ;; - ppc) basic_machine=powerpc-unknown + ppc | ppcbe) basic_machine=powerpc-unknown ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown @@ -1017,6 +1075,9 @@ case $basic_machine in basic_machine=i860-stratus os=-sysv4 ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; sun2) basic_machine=m68000-sun ;; @@ -1073,20 +1134,8 @@ case $basic_machine in basic_machine=t90-cray os=-unicos ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; tile*) - basic_machine=tile-unknown + basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) @@ -1156,6 +1205,9 @@ case $basic_machine in xps | xps100) basic_machine=xps100-honeywell ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; ymp) basic_machine=ymp-cray os=-unicos @@ -1253,11 +1305,11 @@ esac if [ x"$os" != x"" ] then case $os in - # First match some system type aliases - # that might get confused with valid system types. + # First match some system type aliases + # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. - -auroraux) - os=-auroraux + -auroraux) + os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` @@ -1293,8 +1345,9 @@ case $os in | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ @@ -1341,7 +1394,7 @@ case $os in -opened*) os=-openedition ;; - -os400*) + -os400*) os=-os400 ;; -wince*) @@ -1390,7 +1443,7 @@ case $os in -sinix*) os=-sysv4 ;; - -tpf*) + -tpf*) os=-tpf ;; -triton*) @@ -1435,6 +1488,8 @@ case $os in -dicos*) os=-dicos ;; + -nacl*) + ;; -none) ;; *) @@ -1457,10 +1512,10 @@ else # system, and we'll never get to this point. case $basic_machine in - score-*) + score-*) os=-elf ;; - spu-*) + spu-*) os=-elf ;; *-acorn) @@ -1472,8 +1527,17 @@ case $basic_machine in arm*-semi) os=-aout ;; - c4x-* | tic4x-*) - os=-coff + c4x-* | tic4x-*) + os=-coff + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff ;; # This must come before the *-dec entry. pdp10-*) @@ -1493,14 +1557,11 @@ case $basic_machine in ;; m68000-sun) os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 ;; m68*-cisco) os=-aout ;; - mep-*) + mep-*) os=-elf ;; mips*-cisco) @@ -1527,7 +1588,7 @@ case $basic_machine in *-ibm) os=-aix ;; - *-knuth) + *-knuth) os=-mmixware ;; *-wec) diff --git a/configure b/configure index e152273..dab3f3a 100755 --- a/configure +++ b/configure @@ -645,6 +645,7 @@ WITH_SCHEMAS TEST_SCHEMATRON WITH_SCHEMATRON WITH_ISO8859X +ICU_LIBS WITH_ICU WITH_ICONV WITH_OUTPUT @@ -675,6 +676,8 @@ WITH_HTML TEST_PUSH WITH_PUSH TEST_SAX +WITH_SAX1_SOURCES_FALSE +WITH_SAX1_SOURCES_TRUE WITH_SAX1 TEST_PATTERN WITH_PATTERN @@ -687,7 +690,8 @@ WITH_HTTP FTP_OBJ WITH_FTP WITH_TREE -THREADS_W32 +THREADS_W32_FALSE +THREADS_W32_TRUE TEST_THREADS THREAD_CFLAGS WITH_THREADS @@ -728,7 +732,8 @@ MANIFEST_TOOL RANLIB ac_ct_AR AR -LN_S +DLLTOOL +OBJDUMP NM ac_ct_DUMPBIN DUMPBIN @@ -738,9 +743,6 @@ EGREP GREP SED LIBTOOL -OBJDUMP -DLLTOOL -AS XSLTPROC XMLLINT WGET @@ -749,9 +751,11 @@ TAR MV RM CPP +LN_S am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE +am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE @@ -767,6 +771,8 @@ CFLAGS CC AM_BACKSLASH AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V am__untar am__tar AMTAR @@ -1534,13 +1540,13 @@ Optional Features: --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) - --enable-rebuild-docs[=yes/no] rebuild some generated docs [default=yes] + --enable-rebuild-docs[=yes/no] rebuild some generated docs [default=no] --enable-ipv6[=yes/no] enables compilation of IPv6 code [default=yes] Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-pic try to use only PIC/non-PIC objects [default=use + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot=DIR Search for dependent libraries within DIR @@ -2025,6 +2031,59 @@ fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel + +# ac_fn_c_find_uintX_t LINENO BITS VAR +# ------------------------------------ +# Finds an unsigned integer type with width BITS, setting cache variable VAR +# accordingly. +ac_fn_c_find_uintX_t () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 +$as_echo_n "checking for uint$2_t... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + # Order is important - never check a type that is potentially smaller + # than half of the expected target width. + for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ + 'unsigned long long int' 'unsigned short int' 'unsigned char'; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + case $ac_type in #( + uint$2_t) : + eval "$3=yes" ;; #( + *) : + eval "$3=\$ac_type" ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if eval test \"x\$"$3"\" = x"no"; then : + +else + break +fi + done +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_find_uintX_t cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. @@ -2377,6 +2436,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu + ac_config_headers="$ac_config_headers config.h" @@ -2482,7 +2542,7 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac LIBXML_MAJOR_VERSION=2 -LIBXML_MINOR_VERSION=8 +LIBXML_MINOR_VERSION=9 LIBXML_MICRO_VERSION=0 LIBXML_MICRO_VERSION_SUFFIX= LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION$LIBXML_MICRO_VERSION_SUFFIX @@ -2992,11 +3052,11 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. -# Always define AMTAR for backward compatibility. - -AMTAR=${AMTAR-"${am_missing_run}tar"} +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' -am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' @@ -3016,6 +3076,33 @@ yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=0;; esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi AM_BACKSLASH='\' @@ -3860,6 +3947,7 @@ fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' + am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= @@ -3884,6 +3972,7 @@ else # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -3943,7 +4032,7 @@ else break fi ;; - msvisualcpp | msvcmsys) + msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. @@ -3999,6 +4088,17 @@ fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -4425,309 +4525,6 @@ fi -enable_win32_dll=yes - -case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. -set dummy ${ac_tool_prefix}as; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AS+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AS"; then - ac_cv_prog_AS="$AS" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AS="${ac_tool_prefix}as" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AS=$ac_cv_prog_AS -if test -n "$AS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 -$as_echo "$AS" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_AS"; then - ac_ct_AS=$AS - # Extract the first word of "as", so it can be a program name with args. -set dummy as; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AS+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AS"; then - ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_AS="as" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_AS=$ac_cv_prog_ac_ct_AS -if test -n "$ac_ct_AS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 -$as_echo "$ac_ct_AS" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_AS" = x; then - AS="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - AS=$ac_ct_AS - fi -else - AS="$ac_cv_prog_AS" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DLLTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DLLTOOL=$ac_cv_prog_DLLTOOL -if test -n "$DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -$as_echo "$DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DLLTOOL"; then - ac_ct_DLLTOOL=$DLLTOOL - # Extract the first word of "dlltool", so it can be a program name with args. -set dummy dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DLLTOOL"; then - ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_DLLTOOL="dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -if test -n "$ac_ct_DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -$as_echo "$ac_ct_DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DLLTOOL" = x; then - DLLTOOL="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DLLTOOL=$ac_ct_DLLTOOL - fi -else - DLLTOOL="$ac_cv_prog_DLLTOOL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. -set dummy ${ac_tool_prefix}objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OBJDUMP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OBJDUMP=$ac_cv_prog_OBJDUMP -if test -n "$OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 -$as_echo "$OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OBJDUMP"; then - ac_ct_OBJDUMP=$OBJDUMP - # Extract the first word of "objdump", so it can be a program name with args. -set dummy objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OBJDUMP"; then - ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_OBJDUMP="objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -if test -n "$ac_ct_OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 -$as_echo "$ac_ct_OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OBJDUMP" = x; then - OBJDUMP="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OBJDUMP=$ac_ct_OBJDUMP - fi -else - OBJDUMP="$ac_cv_prog_OBJDUMP" -fi - - ;; -esac - -test -z "$AS" && AS=as - - - - - -test -z "$DLLTOOL" && DLLTOOL=dlltool - - - - - -test -z "$OBJDUMP" && OBJDUMP=objdump - - - - - - - case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 @@ -4736,8 +4533,8 @@ esac -macro_version='2.4' -macro_revision='1.3293' +macro_version='2.4.2' +macro_revision='1.3337' @@ -5434,17 +5231,6 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } -fi - # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } @@ -5511,6 +5297,11 @@ else lt_cv_sys_max_cmd_len=196608 ;; + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not @@ -5550,7 +5341,7 @@ else # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do @@ -5854,6 +5645,9 @@ test -z "$OBJDUMP" && OBJDUMP=objdump + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if ${lt_cv_deplibs_check_method+:} false; then : @@ -5976,7 +5770,7 @@ irix5* | irix6* | nonstopux*) lt_cv_deplibs_check_method=pass_all ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; @@ -6198,6 +5992,9 @@ test -z "$DLLTOOL" && DLLTOOL=dlltool + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : @@ -6614,13 +6411,13 @@ old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in @@ -6767,6 +6564,7 @@ for ac_symprfx in "" "_"; do # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ @@ -7155,7 +6953,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; } CFLAGS="$SAVE_CFLAGS" fi ;; -sparc*-*solaris*) +*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 @@ -7166,7 +6964,20 @@ sparc*-*solaris*) case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" @@ -7806,7 +7617,13 @@ else $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? - if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 @@ -7817,6 +7634,7 @@ else fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : @@ -7849,6 +7667,7 @@ rm -f core conftest.err conftest.$ac_objext \ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : @@ -7870,7 +7689,9 @@ _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? - if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&5 @@ -8070,6 +7891,8 @@ done enable_dlopen=no + enable_win32_dll=no + # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : @@ -8136,7 +7959,22 @@ fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : - withval=$with_pic; pic_mode="$withval" + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac else pic_mode=default fi @@ -8209,6 +8047,10 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + @@ -8673,7 +8515,9 @@ lt_prog_compiler_static= case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' - lt_prog_compiler_pic='-Xcompiler -fPIC' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi ;; esac else @@ -8764,18 +8608,33 @@ lt_prog_compiler_static= ;; *) case `$CC -V 2>&1 | sed 5q` in - *Sun\ F* | *Sun*Fortran*) + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; esac ;; esac @@ -9137,7 +8996,6 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported @@ -9387,8 +9245,7 @@ _LT_EOF xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ @@ -9767,6 +9624,7 @@ fi # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' @@ -9812,6 +9670,7 @@ fi hardcode_shlibpath_var=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + else whole_archive_flag_spec='' fi @@ -9840,10 +9699,6 @@ fi hardcode_shlibpath_var=no ;; - freebsd1*) - ld_shlibs=no - ;; - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little @@ -9856,7 +9711,7 @@ fi ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) + freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes @@ -9895,7 +9750,6 @@ fi fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes @@ -10513,11 +10367,6 @@ esac - - - - - @@ -10613,7 +10462,7 @@ need_version=unknown case $host_os in aix3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH @@ -10622,7 +10471,7 @@ aix3*) ;; aix[4-9]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes @@ -10687,7 +10536,7 @@ beos*) ;; bsdi[45]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' @@ -10826,7 +10675,7 @@ darwin* | rhapsody*) ;; dgux*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' @@ -10834,10 +10683,6 @@ dgux*) shlibpath_var=LD_LIBRARY_PATH ;; -freebsd1*) - dynamic_linker=no - ;; - freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. @@ -10845,7 +10690,7 @@ freebsd* | dragonfly*) objformat=`/usr/bin/objformat` else case $host_os in - freebsd[123]*) objformat=aout ;; + freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi @@ -10863,7 +10708,7 @@ freebsd* | dragonfly*) esac shlibpath_var=LD_LIBRARY_PATH case $host_os in - freebsd2*) + freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) @@ -10883,17 +10728,18 @@ freebsd* | dragonfly*) ;; gnu*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" @@ -10954,7 +10800,7 @@ hpux9* | hpux10* | hpux11*) ;; interix[3-9]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' @@ -10970,7 +10816,7 @@ irix5* | irix6* | nonstopux*) nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; @@ -11007,9 +10853,9 @@ linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -11095,7 +10941,7 @@ netbsd*) ;; newsos6) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes @@ -11164,7 +11010,7 @@ rdos*) ;; solaris*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -11189,7 +11035,7 @@ sunos4*) ;; sysv4 | sysv4.3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -11213,7 +11059,7 @@ sysv4 | sysv4.3*) sysv4*MP*) if test -d /usr/nec ;then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH @@ -11244,7 +11090,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -11254,7 +11100,7 @@ tpf*) ;; uts4*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -12036,6 +11882,8 @@ CC="$lt_save_CC" + + ac_config_commands="$ac_config_commands libtool" @@ -12066,7 +11914,7 @@ fi _cppflags="${CPPFLAGS}" -_ldflags="${LDFLAGS}" +_libs="${LIBS}" # Check whether --with-c14n was given. @@ -12213,7 +12061,7 @@ if test "${with_readline+set}" = set; then : if test "$withval" != "no" -a "$withval" != "yes"; then RDL_DIR=$withval CPPFLAGS="${CPPFLAGS} -I$withval/include" - LDFLAGS="${LDFLAGS} -L$withval/lib" + LIBS="${LIBS} -L$withval/lib" fi fi @@ -12309,7 +12157,7 @@ if test "${with_zlib+set}" = set; then : if test "$withval" != "no" -a "$withval" != "yes"; then Z_DIR=$withval CPPFLAGS="${CPPFLAGS} -I$withval/include" - LDFLAGS="${LDFLAGS} -L$withval/lib" + LIBS="${LIBS} -L$withval/lib" fi fi @@ -12321,7 +12169,7 @@ if test "${with_lzma+set}" = set; then : if test "$withval" != "no" -a "$withval" != "yes"; then LZMA_DIR=$withval CPPFLAGS="${CPPFLAGS} -I$withval/include" - LDFLAGS="${LDFLAGS} -L$withval/lib" + LIBS="${LIBS} -L$withval/lib" fi fi @@ -12338,7 +12186,10 @@ if test "${enable_rebuild_docs+set}" = set; then : enableval=$enable_rebuild_docs; fi - if test "$enable_rebuild_docs" = "no"; then +if test "$enable_rebuild_docs" = "yes" -a "$srcdir" != "."; then + as_fn_error $? "cannot rebuild docs when builddir != srcdir" "$LINENO" 5 +fi + if test "$enable_rebuild_docs" = "yes" -o "$USER" = "veillard"; then REBUILD_DOCS_TRUE= REBUILD_DOCS_FALSE='#' else @@ -12661,7 +12512,7 @@ fi CPPFLAGS=${_cppflags} -LDFLAGS=${_ldflags} +LIBS=${_libs} echo Checking headers @@ -13374,6 +13225,24 @@ done +echo Checking types + +ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t" +case $ac_cv_c_uint32_t in #( + no|yes) ;; #( + *) + +$as_echo "#define _UINT32_T 1" >>confdefs.h + + +cat >>confdefs.h <<_ACEOF +#define uint32_t $ac_cv_c_uint32_t +_ACEOF +;; + esac + + + echo Checking libraries for ac_func in strftime @@ -13491,6 +13360,20 @@ _ACEOF fi done +for ac_func in isascii mmap munmap putenv +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5 $as_echo_n "checking for va_copy... " >&6; } @@ -13722,7 +13605,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for type of socket length (socklen_t)" >&5 $as_echo_n "checking for type of socket length (socklen_t)... " >&6; } cat > conftest.$ac_ext < @@ -13733,7 +13616,7 @@ int main(void) { (void)getsockopt (1, 1, 1, NULL, (socklen_t *)NULL) ; return 0; } EOF -if { (eval echo configure:13736: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then +if { (eval echo configure:13619: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then rm -rf conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: socklen_t *" >&5 @@ -13745,7 +13628,7 @@ else rm -rf conftest* cat > conftest.$ac_ext < @@ -13756,7 +13639,7 @@ int main(void) { (void)getsockopt (1, 1, 1, NULL, (size_t *)NULL) ; return 0; } EOF -if { (eval echo configure:13759: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then +if { (eval echo configure:13642: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then rm -rf conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: size_t *" >&5 @@ -13768,7 +13651,7 @@ else rm -rf conftest* cat > conftest.$ac_ext < @@ -13779,7 +13662,7 @@ int main(void) { (void)getsockopt (1, 1, 1, NULL, (int *)NULL) ; return 0; } EOF -if { (eval echo configure:13782: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then +if { (eval echo configure:13665: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then rm -rf conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: int *" >&5 @@ -13824,8 +13707,8 @@ if test $enable_ipv6 = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include - #include +# include +# include int main () @@ -13859,8 +13742,8 @@ $as_echo_n "checking struct sockaddr::ss_family... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include - #include +# include +# include int main () @@ -13888,8 +13771,8 @@ $as_echo_n "checking broken struct sockaddr::ss_family... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include - #include +# include +# include int main () @@ -14543,7 +14426,7 @@ else case $host_os in *mingw32*) if test "$with_threads" != "pthread" && test "$with_threads" != "no"; then WITH_THREADS="1" - THREADS_W32="Win32" + THREADS_W32="1" THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_WIN32_THREADS" fi ;; @@ -14650,6 +14533,13 @@ fi + if test -n "$THREADS_W32"; then + THREADS_W32_TRUE= + THREADS_W32_FALSE='#' +else + THREADS_W32_TRUE='#' + THREADS_W32_FALSE= +fi if test "$with_history" = "yes" ; then @@ -14897,6 +14787,14 @@ else TEST_SAX=SAXtests fi + if test "${WITH_TRIO}" = "1"; then + WITH_SAX1_SOURCES_TRUE= + WITH_SAX1_SOURCES_FALSE='#' +else + WITH_SAX1_SOURCES_TRUE='#' + WITH_SAX1_SOURCES_FALSE= +fi + if test "$with_push" = "no" ; then @@ -15196,14 +15094,14 @@ XML_LIBTOOLLIBS="libxml2.la" WITH_ICU=0 +ICU_LIBS="" if test "$with_icu" != "yes" ; then echo Disabling ICU support else ICU_CONFIG=icu-config if ${ICU_CONFIG} --cflags >/dev/null 2>&1 then - ICU_LIBS=`icu-config --ldflags` - LDFLAGS="$LDFLAGS $ICU_LIBS" + ICU_LIBS=`${ICU_CONFIG} --ldflags` WITH_ICU=1 echo Enabling ICU support else @@ -15212,6 +15110,7 @@ else fi + WITH_ISO8859X=1 if test "$WITH_ICONV" != "1" ; then if test "$with_iso8859x" = "no" ; then @@ -15379,7 +15278,7 @@ RELDATE=`date +'%a %b %e %Y'` rm -f COPYING.LIB COPYING -ln -s Copyright COPYING +ln -s $srcdir/Copyright COPYING # keep on one line for cygwin c.f. #130896 ac_config_files="$ac_config_files libxml2.spec:libxml.spec.in Makefile include/Makefile include/libxml/Makefile doc/Makefile doc/examples/Makefile doc/devhelp/Makefile example/Makefile python/Makefile python/tests/Makefile xstc/Makefile include/libxml/xmlversion.h xml2-config libxml-2.0.pc libxml-2.0-uninstalled.pc python/setup.py" @@ -15525,6 +15424,14 @@ if test -z "${WITH_TRIO_SOURCES_TRUE}" && test -z "${WITH_TRIO_SOURCES_FALSE}"; as_fn_error $? "conditional \"WITH_TRIO_SOURCES\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${THREADS_W32_TRUE}" && test -z "${THREADS_W32_FALSE}"; then + as_fn_error $? "conditional \"THREADS_W32\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${WITH_SAX1_SOURCES_TRUE}" && test -z "${WITH_SAX1_SOURCES_FALSE}"; then + as_fn_error $? "conditional \"WITH_SAX1_SOURCES\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 @@ -16129,9 +16036,6 @@ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' -AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' -DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' @@ -16140,6 +16044,7 @@ pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' @@ -16164,10 +16069,12 @@ lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_q lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' @@ -16220,7 +16127,6 @@ with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' @@ -16274,11 +16180,9 @@ _LTECHO_EOF' } # Quote evaled strings. -for var in AS \ -DLLTOOL \ -OBJDUMP \ -SHELL \ +for var in SHELL \ ECHO \ +PATH_SEPARATOR \ SED \ GREP \ EGREP \ @@ -16289,10 +16193,12 @@ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ +OBJDUMP \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ +DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ @@ -16327,7 +16233,6 @@ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ -hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ @@ -17138,8 +17043,8 @@ $as_echo X"$file" | # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -# Inc. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. @@ -17171,15 +17076,6 @@ available_tags="" # ### BEGIN LIBTOOL CONFIG -# Assembler program. -AS=$lt_AS - -# DLL creation program. -DLLTOOL=$lt_DLLTOOL - -# Object dumper program. -OBJDUMP=$lt_OBJDUMP - # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision @@ -17202,6 +17098,9 @@ SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + # The host system. host_alias=$host_alias host=$host @@ -17257,6 +17156,9 @@ to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method @@ -17269,6 +17171,9 @@ file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd @@ -17497,10 +17402,6 @@ no_undefined_flag=$lt_no_undefined_flag # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec -# If ld is used when linking, flag to hardcode \$libdir into a binary -# during linking. This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld - # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator diff --git a/configure.in b/configure.in index 0fb4983..3d5f48b 100644 --- a/configure.in +++ b/configure.in @@ -1,12 +1,13 @@ dnl Process this file with autoconf to produce a configure script. -AC_PREREQ(2.59) -AC_INIT(entities.c) -AM_CONFIG_HEADER(config.h) +AC_PREREQ([2.68]) +AC_INIT +AC_CONFIG_SRCDIR([entities.c]) +AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR([m4]) AC_CANONICAL_HOST LIBXML_MAJOR_VERSION=2 -LIBXML_MINOR_VERSION=8 +LIBXML_MINOR_VERSION=9 LIBXML_MICRO_VERSION=0 LIBXML_MICRO_VERSION_SUFFIX= LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION$LIBXML_MICRO_VERSION_SUFFIX @@ -58,6 +59,7 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) dnl Checks for programs. AC_PROG_CC AC_PROG_INSTALL +AC_PROG_LN_S AC_PROG_MKDIR_P AC_PROG_CPP AC_PATH_PROG(RM, rm, /bin/rm) @@ -68,8 +70,7 @@ AC_PATH_PROG(WGET, wget, /usr/bin/wget) AC_PATH_PROG(XMLLINT, xmllint, /usr/bin/xmllint) AC_PATH_PROG(XSLTPROC, xsltproc, /usr/bin/xsltproc) -AC_LIBTOOL_WIN32_DLL -AM_PROG_LIBTOOL +LT_INIT dnl dnl if the system support linker version scripts for symbol versioning @@ -97,7 +98,7 @@ dnl dnl zlib option might change flags, so we save them initially dnl _cppflags="${CPPFLAGS}" -_ldflags="${LDFLAGS}" +_libs="${LIBS}" AC_ARG_WITH(c14n, [ --with-c14n add the Canonicalization support (on)]) @@ -116,11 +117,11 @@ AC_ARG_WITH(history, AC_ARG_WITH(html, [ --with-html add the HTML support (on)]) dnl Specific dir for HTML output ? -AC_ARG_WITH(html-dir, AC_HELP_STRING([--with-html-dir=path], +AC_ARG_WITH(html-dir, AS_HELP_STRING([--with-html-dir=path], [path to base html directory, default $datadir/doc/html]), [HTML_DIR=$withval], [HTML_DIR='$(datadir)/doc']) -AC_ARG_WITH(html-subdir, AC_HELP_STRING([--with-html-subdir=path], +AC_ARG_WITH(html-subdir, AS_HELP_STRING([--with-html-subdir=path], [directory used under html-dir, default $PACKAGE-$VERSION/html]), [test "x$withval" != "x" && HTML_DIR="$HTML_DIR/$withval"], [HTML_DIR="$HTML_DIR/\$(PACKAGE)-\$(VERSION)/html"]) @@ -154,7 +155,7 @@ AC_ARG_WITH(readline, if test "$withval" != "no" -a "$withval" != "yes"; then RDL_DIR=$withval CPPFLAGS="${CPPFLAGS} -I$withval/include" - LDFLAGS="${LDFLAGS} -L$withval/lib" + LIBS="${LIBS} -L$withval/lib" fi ]) AC_ARG_WITH(regexps, @@ -190,7 +191,7 @@ AC_ARG_WITH(zlib, if test "$withval" != "no" -a "$withval" != "yes"; then Z_DIR=$withval CPPFLAGS="${CPPFLAGS} -I$withval/include" - LDFLAGS="${LDFLAGS} -L$withval/lib" + LIBS="${LIBS} -L$withval/lib" fi ]) AC_ARG_WITH(lzma, @@ -198,15 +199,18 @@ AC_ARG_WITH(lzma, if test "$withval" != "no" -a "$withval" != "yes"; then LZMA_DIR=$withval CPPFLAGS="${CPPFLAGS} -I$withval/include" - LDFLAGS="${LDFLAGS} -L$withval/lib" + LIBS="${LIBS} -L$withval/lib" fi ]) AC_ARG_WITH(coverage, [ --with-coverage build for code coverage with GCC (off)]) AC_ARG_ENABLE(rebuild-docs, -[ --enable-rebuild-docs[[=yes/no]] rebuild some generated docs [[default=yes]]]) -AM_CONDITIONAL([REBUILD_DOCS], [test "$enable_rebuild_docs" = "no"]) +[ --enable-rebuild-docs[[=yes/no]] rebuild some generated docs [[default=no]]]) +if test "$enable_rebuild_docs" = "yes" -a "$srcdir" != "."; then + AC_MSG_ERROR([cannot rebuild docs when builddir != srcdir]) +fi +AM_CONDITIONAL([REBUILD_DOCS], [test "$enable_rebuild_docs" = "yes" -o "$USER" = "veillard"]) dnl dnl hard dependancies on options @@ -428,7 +432,7 @@ AC_SUBST(LZMA_LIBS) AC_SUBST(WITH_LZMA) CPPFLAGS=${_cppflags} -LDFLAGS=${_ldflags} +LIBS=${_libs} echo Checking headers @@ -500,6 +504,11 @@ AC_CHECK_HEADERS([dl.h]) AC_CHECK_HEADERS([dlfcn.h]) +echo Checking types + +AC_TYPE_UINT32_T + + echo Checking libraries dnl Checks for library functions. @@ -509,11 +518,17 @@ AC_CHECK_FUNCS(finite isnand fp_class class fpclass) AC_CHECK_FUNCS(strftime localtime gettimeofday ftime) AC_CHECK_FUNCS(stat _stat signal) AC_CHECK_FUNCS(rand rand_r srand time) +AC_CHECK_FUNCS(isascii mmap munmap putenv) + +AH_VERBATIM([HAVE_MUNMAP_AFTER],[/* mmap() is no good without munmap() */ +#if defined(HAVE_MMAP) && !defined(HAVE_MUNMAP) +# undef /**/ HAVE_MMAP +#endif]) dnl Checking for va_copy availability AC_MSG_CHECKING([for va_copy]) -AC_TRY_LINK([#include -va_list ap1,ap2;], [va_copy(ap1,ap2);], +AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include +va_list ap1,ap2;]], [[va_copy(ap1,ap2);]])], have_va_copy=yes, have_va_copy=no) AC_MSG_RESULT($have_va_copy) @@ -521,8 +536,8 @@ if test x"$have_va_copy" = x"yes"; then AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available]) else AC_MSG_CHECKING([for __va_copy]) - AC_TRY_LINK([#include - va_list ap1,ap2;], [__va_copy(ap1,ap2);], + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include + va_list ap1,ap2;]], [[__va_copy(ap1,ap2);]])], have___va_copy=yes, have___va_copy=no) AC_MSG_RESULT($have___va_copy) @@ -573,13 +588,13 @@ then fi if test $enable_ipv6 = yes; then have_ipv6=no - AC_TRY_COMPILE([ - #include - #include - ], [ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +# include +# include + ]], [[ struct sockaddr_storage ss; socket(AF_INET6, SOCK_STREAM, 0) - ], + ]])], have_ipv6=yes, have_ipv6=no ) @@ -597,26 +612,26 @@ if test $enable_ipv6 = yes; then dnl present. dnl ******************************************************************** AC_MSG_CHECKING([struct sockaddr::ss_family]) - AC_TRY_COMPILE([ - #include - #include - ], [ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +# include +# include + ]], [[ struct sockaddr_storage ss ; ss.ss_family = 0 ; - ], + ]])], have_ss_family=yes, have_ss_family=no ) AC_MSG_RESULT($have_ss_family) if test x$have_ss_family = xno ; then AC_MSG_CHECKING([broken struct sockaddr::ss_family]) - AC_TRY_COMPILE([ - #include - #include - ], [ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +# include +# include + ]], [[ struct sockaddr_storage ss ; ss.__ss_family = 0 ; - ], + ]])], have_broken_ss_family=yes, have_broken_ss_family=no ) @@ -949,7 +964,7 @@ else case $host_os in *mingw32*) if test "$with_threads" != "pthread" && test "$with_threads" != "no"; then WITH_THREADS="1" - THREADS_W32="Win32" + THREADS_W32="1" THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_WIN32_THREADS" fi ;; @@ -1010,7 +1025,7 @@ AC_SUBST(BASE_THREAD_LIBS) AC_SUBST(WITH_THREADS) AC_SUBST(THREAD_CFLAGS) AC_SUBST(TEST_THREADS) -AC_SUBST(THREADS_W32) +AM_CONDITIONAL([THREADS_W32],[test -n "$THREADS_W32"]) dnl dnl xmllint shell history @@ -1134,6 +1149,7 @@ else TEST_SAX=SAXtests fi AC_SUBST(WITH_SAX1) +AM_CONDITIONAL(WITH_SAX1_SOURCES, test "${WITH_TRIO}" = "1") AC_SUBST(TEST_SAX) if test "$with_push" = "no" ; then @@ -1300,10 +1316,10 @@ else AC_CHECK_HEADER(iconv.h, AC_MSG_CHECKING(for iconv) - AC_TRY_LINK([#include -#include ],[ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include +#include ]],[[ iconv_t cd = iconv_open ("",""); -iconv (cd, NULL, NULL, NULL, NULL);],[ +iconv (cd, NULL, NULL, NULL, NULL);]])],[ AC_MSG_RESULT(yes) WITH_ICONV=1],[ AC_MSG_RESULT(no) @@ -1314,10 +1330,10 @@ iconv (cd, NULL, NULL, NULL, NULL);],[ LDFLAGS="${LDFLAGS} ${ICONV_LIBS}" LIBS="${LIBS} -liconv" - AC_TRY_LINK([#include -#include ],[ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include +#include ]],[[ iconv_t cd = iconv_open ("",""); -iconv (cd, NULL, NULL, NULL, NULL);],[ +iconv (cd, NULL, NULL, NULL, NULL);]])],[ AC_MSG_RESULT(yes) WITH_ICONV=1 ICONV_LIBS="${ICONV_LIBS} -liconv" @@ -1330,7 +1346,7 @@ iconv (cd, NULL, NULL, NULL, NULL);],[ if test "$WITH_ICONV" = "1" ; then AC_MSG_CHECKING([for iconv declaration]) AC_CACHE_VAL(xml_cv_iconv_arg2, [ - AC_TRY_COMPILE([#include + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include #include extern #ifdef __cplusplus @@ -1341,7 +1357,7 @@ size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, si #else size_t iconv(); #endif -], [], xml_cv_iconv_arg2="", xml_cv_iconv_arg2="const")]) +]], [])], xml_cv_iconv_arg2="", xml_cv_iconv_arg2="const")]) xml_cv_iconv_decl="extern size_t iconv (iconv_t cd, $xml_cv_iconv_arg2 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);" AC_MSG_RESULT([${xml_xxx:- @@ -1365,14 +1381,14 @@ XML_LIBTOOLLIBS="libxml2.la" AC_SUBST(WITH_ICONV) WITH_ICU=0 +ICU_LIBS="" if test "$with_icu" != "yes" ; then echo Disabling ICU support else ICU_CONFIG=icu-config if ${ICU_CONFIG} --cflags >/dev/null 2>&1 then - ICU_LIBS=`icu-config --ldflags` - LDFLAGS="$LDFLAGS $ICU_LIBS" + ICU_LIBS=`${ICU_CONFIG} --ldflags` WITH_ICU=1 echo Enabling ICU support else @@ -1380,6 +1396,7 @@ else fi fi AC_SUBST(WITH_ICU) +AC_SUBST(ICU_LIBS) WITH_ISO8859X=1 if test "$WITH_ICONV" != "1" ; then @@ -1550,10 +1567,11 @@ AC_SUBST(RELDATE) AC_SUBST(PYTHON_TESTS) rm -f COPYING.LIB COPYING -ln -s Copyright COPYING +ln -s $srcdir/Copyright COPYING # keep on one line for cygwin c.f. #130896 -AC_OUTPUT(libxml2.spec:libxml.spec.in Makefile include/Makefile include/libxml/Makefile doc/Makefile doc/examples/Makefile doc/devhelp/Makefile example/Makefile python/Makefile python/tests/Makefile xstc/Makefile include/libxml/xmlversion.h xml2-config libxml-2.0.pc libxml-2.0-uninstalled.pc python/setup.py) +AC_CONFIG_FILES([libxml2.spec:libxml.spec.in Makefile include/Makefile include/libxml/Makefile doc/Makefile doc/examples/Makefile doc/devhelp/Makefile example/Makefile python/Makefile python/tests/Makefile xstc/Makefile include/libxml/xmlversion.h xml2-config libxml-2.0.pc libxml-2.0-uninstalled.pc python/setup.py]) +AC_OUTPUT chmod +x xml2-config python/setup.py echo Done configuring diff --git a/debugXML.c b/debugXML.c index 3e9ec7a..3874b19 100644 --- a/debugXML.c +++ b/debugXML.c @@ -85,7 +85,7 @@ xmlCtxtDumpCleanCtxt(xmlDebugCtxtPtr ctxt ATTRIBUTE_UNUSED) * * Check that a given namespace is in scope on a node. * - * Returns 1 if in scope, -1 in case of argument error, + * Returns 1 if in scope, -1 in case of argument error, * -2 if the namespace is not in scope, and -3 if not on * an ancestor node. */ @@ -311,7 +311,7 @@ xmlCtxtGenericNodeCheck(xmlDebugCtxtPtr ctxt, xmlNodePtr node) { (node != (xmlNodePtr) node->parent->properties)) xmlDebugErr(ctxt, XML_CHECK_NO_PREV, "Attr has no prev and not first of attr list\n"); - + } else if ((node->parent != NULL) && (node->parent->children != node)) xmlDebugErr(ctxt, XML_CHECK_NO_PREV, "Node has no prev and not first of parent list\n"); @@ -1068,7 +1068,7 @@ xmlCtxtDumpNode(xmlDebugCtxtPtr ctxt, xmlNodePtr node) return; } xmlCtxtDumpOneNode(ctxt, node); - if ((node->type != XML_NAMESPACE_DECL) && + if ((node->type != XML_NAMESPACE_DECL) && (node->children != NULL) && (node->type != XML_ENTITY_REF_NODE)) { ctxt->depth++; xmlCtxtDumpNodeList(ctxt, node->children); @@ -1603,7 +1603,7 @@ int xmlLsCountNode(xmlNodePtr node) { int ret = 0; xmlNodePtr list = NULL; - + if (node == NULL) return(0); @@ -1644,7 +1644,7 @@ xmlLsCountNode(xmlNodePtr node) { ret = 1; break; } - for (;list != NULL;ret++) + for (;list != NULL;ret++) list = list->next; return(ret); } @@ -1712,11 +1712,11 @@ xmlLsOneNode(FILE *output, xmlNodePtr node) { if (node->type != XML_NAMESPACE_DECL) { if (node->properties != NULL) fprintf(output, "a"); - else + else fprintf(output, "-"); - if (node->nsDef != NULL) + if (node->nsDef != NULL) fprintf(output, "n"); - else + else fprintf(output, "-"); } @@ -1786,7 +1786,7 @@ xmlLsOneNode(FILE *output, xmlNodePtr node) { * xmlBoolToText: * @boolval: a bool to turn into text * - * Convenient way to turn bool into text + * Convenient way to turn bool into text * * Returns a pointer to either "True" or "False" */ @@ -1802,7 +1802,7 @@ xmlBoolToText(int boolval) #ifdef LIBXML_XPATH_ENABLED /**************************************************************** * * - * The XML shell related functions * + * The XML shell related functions * * * ****************************************************************/ @@ -2053,7 +2053,7 @@ xmlShellBase(xmlShellCtxtPtr ctxt, if (node == NULL) { fprintf(ctxt->output, "NULL\n"); return (0); - } + } base = xmlNodeGetBase(node->doc, node); @@ -2280,7 +2280,7 @@ xmlShellDir(xmlShellCtxtPtr ctxt ATTRIBUTE_UNUSED, if (node == NULL) { fprintf(ctxt->output, "NULL\n"); return (0); - } + } if ((node->type == XML_DOCUMENT_NODE) || (node->type == XML_HTML_DOCUMENT_NODE)) { xmlDebugDumpDocumentHead(ctxt->output, (xmlDocPtr) node); @@ -2415,7 +2415,7 @@ xmlShellCat(xmlShellCtxtPtr ctxt, char *arg ATTRIBUTE_UNUSED, if (node == NULL) { fprintf(ctxt->output, "NULL\n"); return (0); - } + } if (ctxt->doc->type == XML_HTML_DOCUMENT_NODE) { #ifdef LIBXML_HTML_ENABLED if (node->type == XML_HTML_DOCUMENT_NODE) @@ -2753,7 +2753,7 @@ xmlShellDu(xmlShellCtxtPtr ctxt, * xmlShellPwd: * @ctxt: the shell context * @buffer: the output buffer - * @node: a node + * @node: a node * @node2: unused * * Implements the XML shell function "pwd" @@ -2798,7 +2798,7 @@ xmlShellPwd(xmlShellCtxtPtr ctxt ATTRIBUTE_UNUSED, char *buffer, * @input: the line reading function * @output: the output FILE*, defaults to stdout if NULL * - * Implements the XML shell + * Implements the XML shell * This allow to load, validate, view, modify and save a document * using a environment similar to a UNIX commandline. */ diff --git a/depcomp b/depcomp index df8eea7..bd0ac08 100755 --- a/depcomp +++ b/depcomp @@ -1,10 +1,10 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2009-04-28.21; # UTC +scriptversion=2011-12-04.11; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free -# Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, +# 2011 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -44,7 +44,7 @@ Environment variables: object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. - tmpdepfile Temporary file to use when outputing dependencies. + tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . @@ -90,10 +90,18 @@ if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 - cygpath_u="sed s,\\\\\\\\,/,g" + cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what @@ -158,10 +166,12 @@ gcc) ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as -## well. +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -405,6 +415,52 @@ tru64) rm -f "$tmpdepfile" ;; +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test "$stat" = 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/ \1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/ / + G + p +}' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. @@ -503,7 +559,9 @@ makedepend) touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation diff --git a/dict.c b/dict.c index 6de2f03..9935a25 100644 --- a/dict.c +++ b/dict.c @@ -19,6 +19,7 @@ #define IN_LIBXML #include "libxml.h" +#include #ifdef HAVE_STDLIB_H #include #endif @@ -93,7 +94,7 @@ typedef xmlDictEntry *xmlDictEntryPtr; struct _xmlDictEntry { struct _xmlDictEntry *next; const xmlChar *name; - int len; + unsigned int len; int valid; unsigned long okey; }; @@ -104,8 +105,8 @@ struct _xmlDictStrings { xmlDictStringsPtr next; xmlChar *free; xmlChar *end; - int size; - int nbStrings; + size_t size; + size_t nbStrings; xmlChar array[1]; }; /* @@ -115,13 +116,15 @@ struct _xmlDict { int ref_counter; struct _xmlDictEntry *dict; - int size; - int nbElems; + size_t size; + unsigned int nbElems; xmlDictStringsPtr strings; struct _xmlDict *subdict; /* used for randomization */ int seed; + /* used to impose a limit on size */ + size_t limit; }; /* @@ -213,17 +216,18 @@ xmlDictCleanup(void) { * xmlDictAddString: * @dict: the dictionnary * @name: the name of the userdata - * @len: the length of the name, if -1 it is recomputed + * @len: the length of the name * * Add the string to the array[s] * * Returns the pointer of the local string, or NULL in case of error. */ static const xmlChar * -xmlDictAddString(xmlDictPtr dict, const xmlChar *name, int namelen) { +xmlDictAddString(xmlDictPtr dict, const xmlChar *name, unsigned int namelen) { xmlDictStringsPtr pool; const xmlChar *ret; - int size = 0; /* + sizeof(_xmlDictStrings) == 1024 */ + size_t size = 0; /* + sizeof(_xmlDictStrings) == 1024 */ + size_t limit = 0; #ifdef DICT_DEBUG_PATTERNS fprintf(stderr, "-"); @@ -233,15 +237,20 @@ xmlDictAddString(xmlDictPtr dict, const xmlChar *name, int namelen) { if (pool->end - pool->free > namelen) goto found_pool; if (pool->size > size) size = pool->size; + limit += pool->size; pool = pool->next; } /* * Not found, need to allocate */ if (pool == NULL) { + if ((dict->limit > 0) && (limit > dict->limit)) { + return(NULL); + } + if (size == 0) size = 1000; else size *= 4; /* exponential growth */ - if (size < 4 * namelen) + if (size < 4 * namelen) size = 4 * namelen; /* just in case ! */ pool = (xmlDictStringsPtr) xmlMalloc(sizeof(xmlDictStrings) + size); if (pool == NULL) @@ -271,19 +280,20 @@ found_pool: * @prefix: the prefix of the userdata * @plen: the prefix length * @name: the name of the userdata - * @len: the length of the name, if -1 it is recomputed + * @len: the length of the name * * Add the QName to the array[s] * * Returns the pointer of the local string, or NULL in case of error. */ static const xmlChar * -xmlDictAddQString(xmlDictPtr dict, const xmlChar *prefix, int plen, - const xmlChar *name, int namelen) +xmlDictAddQString(xmlDictPtr dict, const xmlChar *prefix, unsigned int plen, + const xmlChar *name, unsigned int namelen) { xmlDictStringsPtr pool; const xmlChar *ret; - int size = 0; /* + sizeof(_xmlDictStrings) == 1024 */ + size_t size = 0; /* + sizeof(_xmlDictStrings) == 1024 */ + size_t limit = 0; if (prefix == NULL) return(xmlDictAddString(dict, name, namelen)); @@ -295,12 +305,17 @@ xmlDictAddQString(xmlDictPtr dict, const xmlChar *prefix, int plen, if (pool->end - pool->free > namelen + plen + 1) goto found_pool; if (pool->size > size) size = pool->size; + limit += pool->size; pool = pool->next; } /* * Not found, need to allocate */ if (pool == NULL) { + if ((dict->limit > 0) && (limit > dict->limit)) { + return(NULL); + } + if (size == 0) size = 1000; else size *= 4; /* exponential growth */ if (size < 4 * (namelen + plen + 1)) @@ -517,6 +532,7 @@ xmlDictCreate(void) { dict = xmlMalloc(sizeof(xmlDict)); if (dict) { dict->ref_counter = 1; + dict->limit = 0; dict->size = MIN_DICT_SIZE; dict->nbElems = 0; @@ -594,9 +610,9 @@ xmlDictReference(xmlDictPtr dict) { * Returns 0 in case of success, -1 in case of failure */ static int -xmlDictGrow(xmlDictPtr dict, int size) { +xmlDictGrow(xmlDictPtr dict, size_t size) { unsigned long key, okey; - int oldsize, i; + size_t oldsize, i; xmlDictEntryPtr iter, next; struct _xmlDictEntry *olddict; #ifdef DEBUG_GROW @@ -713,7 +729,7 @@ xmlDictGrow(xmlDictPtr dict, int size) { #ifdef DEBUG_GROW xmlGenericError(xmlGenericErrorContext, - "xmlDictGrow : from %d to %d, %d elems\n", oldsize, size, nbElem); + "xmlDictGrow : from %lu to %lu, %u elems\n", oldsize, size, nbElem); #endif return(ret); @@ -728,7 +744,7 @@ xmlDictGrow(xmlDictPtr dict, int size) { */ void xmlDictFree(xmlDictPtr dict) { - int i; + size_t i; xmlDictEntryPtr iter; xmlDictEntryPtr next; int inside_dict = 0; @@ -797,17 +813,24 @@ xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len) { xmlDictEntryPtr entry; xmlDictEntryPtr insert; const xmlChar *ret; + unsigned int l; if ((dict == NULL) || (name == NULL)) return(NULL); if (len < 0) - len = strlen((const char *) name); + l = strlen((const char *) name); + else + l = len; + + if (((dict->limit > 0) && (l >= dict->limit)) || + (l > INT_MAX / 2)) + return(NULL); /* * Check for duplicate and insertion location. */ - okey = xmlDictComputeKey(dict, name, len); + okey = xmlDictComputeKey(dict, name, l); key = okey % dict->size; if (dict->dict[key].valid == 0) { insert = NULL; @@ -815,25 +838,25 @@ xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len) { for (insert = &(dict->dict[key]); insert->next != NULL; insert = insert->next) { #ifdef __GNUC__ - if ((insert->okey == okey) && (insert->len == len)) { - if (!memcmp(insert->name, name, len)) + if ((insert->okey == okey) && (insert->len == l)) { + if (!memcmp(insert->name, name, l)) return(insert->name); } #else - if ((insert->okey == okey) && (insert->len == len) && - (!xmlStrncmp(insert->name, name, len))) + if ((insert->okey == okey) && (insert->len == l) && + (!xmlStrncmp(insert->name, name, l))) return(insert->name); #endif nbi++; } #ifdef __GNUC__ - if ((insert->okey == okey) && (insert->len == len)) { - if (!memcmp(insert->name, name, len)) + if ((insert->okey == okey) && (insert->len == l)) { + if (!memcmp(insert->name, name, l)) return(insert->name); } #else - if ((insert->okey == okey) && (insert->len == len) && - (!xmlStrncmp(insert->name, name, len))) + if ((insert->okey == okey) && (insert->len == l) && + (!xmlStrncmp(insert->name, name, l))) return(insert->name); #endif } @@ -846,7 +869,7 @@ xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len) { (dict->subdict->size != MIN_DICT_SIZE)) || ((dict->size != MIN_DICT_SIZE) && (dict->subdict->size == MIN_DICT_SIZE))) - skey = xmlDictComputeKey(dict->subdict, name, len); + skey = xmlDictComputeKey(dict->subdict, name, l); else skey = okey; @@ -857,32 +880,32 @@ xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len) { for (tmp = &(dict->subdict->dict[key]); tmp->next != NULL; tmp = tmp->next) { #ifdef __GNUC__ - if ((tmp->okey == skey) && (tmp->len == len)) { - if (!memcmp(tmp->name, name, len)) + if ((tmp->okey == skey) && (tmp->len == l)) { + if (!memcmp(tmp->name, name, l)) return(tmp->name); } #else - if ((tmp->okey == skey) && (tmp->len == len) && - (!xmlStrncmp(tmp->name, name, len))) + if ((tmp->okey == skey) && (tmp->len == l) && + (!xmlStrncmp(tmp->name, name, l))) return(tmp->name); #endif nbi++; } #ifdef __GNUC__ - if ((tmp->okey == skey) && (tmp->len == len)) { - if (!memcmp(tmp->name, name, len)) + if ((tmp->okey == skey) && (tmp->len == l)) { + if (!memcmp(tmp->name, name, l)) return(tmp->name); } #else - if ((tmp->okey == skey) && (tmp->len == len) && - (!xmlStrncmp(tmp->name, name, len))) + if ((tmp->okey == skey) && (tmp->len == l) && + (!xmlStrncmp(tmp->name, name, l))) return(tmp->name); #endif } key = okey % dict->size; } - ret = xmlDictAddString(dict, name, len); + ret = xmlDictAddString(dict, name, l); if (ret == NULL) return(NULL); if (insert == NULL) { @@ -893,13 +916,13 @@ xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len) { return(NULL); } entry->name = ret; - entry->len = len; + entry->len = l; entry->next = NULL; entry->valid = 1; entry->okey = okey; - if (insert != NULL) + if (insert != NULL) insert->next = entry; dict->nbElems++; @@ -928,17 +951,23 @@ const xmlChar * xmlDictExists(xmlDictPtr dict, const xmlChar *name, int len) { unsigned long key, okey, nbi = 0; xmlDictEntryPtr insert; + unsigned int l; if ((dict == NULL) || (name == NULL)) return(NULL); if (len < 0) - len = strlen((const char *) name); + l = strlen((const char *) name); + else + l = len; + if (((dict->limit > 0) && (l >= dict->limit)) || + (l > INT_MAX / 2)) + return(NULL); /* * Check for duplicate and insertion location. */ - okey = xmlDictComputeKey(dict, name, len); + okey = xmlDictComputeKey(dict, name, l); key = okey % dict->size; if (dict->dict[key].valid == 0) { insert = NULL; @@ -946,25 +975,25 @@ xmlDictExists(xmlDictPtr dict, const xmlChar *name, int len) { for (insert = &(dict->dict[key]); insert->next != NULL; insert = insert->next) { #ifdef __GNUC__ - if ((insert->okey == okey) && (insert->len == len)) { - if (!memcmp(insert->name, name, len)) + if ((insert->okey == okey) && (insert->len == l)) { + if (!memcmp(insert->name, name, l)) return(insert->name); } #else - if ((insert->okey == okey) && (insert->len == len) && - (!xmlStrncmp(insert->name, name, len))) + if ((insert->okey == okey) && (insert->len == l) && + (!xmlStrncmp(insert->name, name, l))) return(insert->name); #endif nbi++; } #ifdef __GNUC__ - if ((insert->okey == okey) && (insert->len == len)) { - if (!memcmp(insert->name, name, len)) + if ((insert->okey == okey) && (insert->len == l)) { + if (!memcmp(insert->name, name, l)) return(insert->name); } #else - if ((insert->okey == okey) && (insert->len == len) && - (!xmlStrncmp(insert->name, name, len))) + if ((insert->okey == okey) && (insert->len == l) && + (!xmlStrncmp(insert->name, name, l))) return(insert->name); #endif } @@ -977,7 +1006,7 @@ xmlDictExists(xmlDictPtr dict, const xmlChar *name, int len) { (dict->subdict->size != MIN_DICT_SIZE)) || ((dict->size != MIN_DICT_SIZE) && (dict->subdict->size == MIN_DICT_SIZE))) - skey = xmlDictComputeKey(dict->subdict, name, len); + skey = xmlDictComputeKey(dict->subdict, name, l); else skey = okey; @@ -988,25 +1017,25 @@ xmlDictExists(xmlDictPtr dict, const xmlChar *name, int len) { for (tmp = &(dict->subdict->dict[key]); tmp->next != NULL; tmp = tmp->next) { #ifdef __GNUC__ - if ((tmp->okey == skey) && (tmp->len == len)) { - if (!memcmp(tmp->name, name, len)) + if ((tmp->okey == skey) && (tmp->len == l)) { + if (!memcmp(tmp->name, name, l)) return(tmp->name); } #else - if ((tmp->okey == skey) && (tmp->len == len) && - (!xmlStrncmp(tmp->name, name, len))) + if ((tmp->okey == skey) && (tmp->len == l) && + (!xmlStrncmp(tmp->name, name, l))) return(tmp->name); #endif nbi++; } #ifdef __GNUC__ - if ((tmp->okey == skey) && (tmp->len == len)) { - if (!memcmp(tmp->name, name, len)) + if ((tmp->okey == skey) && (tmp->len == l)) { + if (!memcmp(tmp->name, name, l)) return(tmp->name); } #else - if ((tmp->okey == skey) && (tmp->len == len) && - (!xmlStrncmp(tmp->name, name, len))) + if ((tmp->okey == skey) && (tmp->len == l) && + (!xmlStrncmp(tmp->name, name, l))) return(tmp->name); #endif } @@ -1032,7 +1061,7 @@ xmlDictQLookup(xmlDictPtr dict, const xmlChar *prefix, const xmlChar *name) { xmlDictEntryPtr entry; xmlDictEntryPtr insert; const xmlChar *ret; - int len, plen, l; + unsigned int len, plen, l; if ((dict == NULL) || (name == NULL)) return(NULL); @@ -1108,7 +1137,7 @@ xmlDictQLookup(xmlDictPtr dict, const xmlChar *prefix, const xmlChar *name) { entry->valid = 1; entry->okey = okey; - if (insert != NULL) + if (insert != NULL) insert->next = entry; dict->nbElems++; @@ -1166,6 +1195,50 @@ xmlDictSize(xmlDictPtr dict) { return(dict->nbElems); } +/** + * xmlDictSetLimit: + * @dict: the dictionnary + * @limit: the limit in bytes + * + * Set a size limit for the dictionary + * Added in 2.9.0 + * + * Returns the previous limit of the dictionary or 0 + */ +size_t +xmlDictSetLimit(xmlDictPtr dict, size_t limit) { + size_t ret; + + if (dict == NULL) + return(0); + ret = dict->limit; + dict->limit = limit; + return(ret); +} + +/** + * xmlDictGetUsage: + * @dict: the dictionnary + * + * Get how much memory is used by a dictionary for strings + * Added in 2.9.0 + * + * Returns the amount of strings allocated + */ +size_t +xmlDictGetUsage(xmlDictPtr dict) { + xmlDictStringsPtr pool; + size_t limit = 0; + + if (dict == NULL) + return(0); + pool = dict->strings; + while (pool != NULL) { + limit += pool->size; + pool = pool->next; + } + return(limit); +} #define bottom_dict #include "elfgcchack.h" diff --git a/doc/APIchunk0.html b/doc/APIchunk0.html index 25f473e..c90e042 100644 --- a/doc/APIchunk0.html +++ b/doc/APIchunk0.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -46,6 +46,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      ANY
      xmlIsMixedElement
      xmlParseElementContentDecl
      APIs
      LIBXML_LEGACY_ENABLED
      +xmlSchemaValidateSetFilename
      ARRAY
      xmlStrlen
      xmlUTF8Strsize
      ASCII
      UTF8ToHtml
      @@ -55,6 +56,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlDelEncodingAlias
      xmlEncodeEntitiesReentrant
      xmlGetEncodingAlias
      +xmlModuleOpen
      +xmlModuleSymbol
      xmlNewCharEncodingHandler
      xmlParseCharEncoding
      ATTLIST
      xmlTextWriterStartDTDAttlist
      @@ -95,6 +98,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlHashUpdateEntry
      xmlHashUpdateEntry2
      xmlHashUpdateEntry3
      +
      Added
      xmlDictGetUsage
      +xmlDictSetLimit
      Additional
      _htmlElemDesc
      xmlCleanupGlobals
      xmlInitGlobals
      @@ -117,6 +122,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaNewStringValue
      Allocates
      xmlDOMWrapNewCtxt
      Allows
      xmlCatalogSetDefaultPrefer
      +xmlSchemaValidateSetLocator
      AlphabeticPresentationForms
      xmlUCSIsAlphabeticPresentationForms
      Also
      xmlCheckUTF8
      xmlParseAttribute
      @@ -271,8 +277,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk1.html b/doc/APIchunk1.html index 51d331e..7947196 100644 --- a/doc/APIchunk1.html +++ b/doc/APIchunk1.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -358,8 +358,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk10.html b/doc/APIchunk10.html index 116605d..4c9f892 100644 --- a/doc/APIchunk10.html +++ b/doc/APIchunk10.html @@ -7,7 +7,7 @@ H1 {font-family: Verdana,Arial,Helvetica} H2 {font-family: Verdana,Arial,Helvetica} H3 {font-family: Verdana,Arial,Helvetica} A:link, A:visited, A:active { text-decoration: underline } -API Alphabetic Index Z-a for libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      The XML C parser and toolkit of Gnome

      API Alphabetic Index Z-a for libxml2

      Developer Menu
      API Indexes
      Related links

      A-B +API Alphabetic Index Y-a for libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      The XML C parser and toolkit of Gnome

      API Alphabetic Index Y-a for libxml2

      Developer Menu
      API Indexes
      Related links

      A-B C-C D-E F-I @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -37,7 +37,11 @@ A:link, A:visited, A:active { text-decoration: underline } w-w x-x y-z -

      Letter Z:

      ZLIB
      docbCreateFileParserCtxt
      +

      Letter Y:

      YES
      htmlNodeStatus
      +
      YiRadicals
      xmlUCSIsYiRadicals
      +
      YiSyllables
      xmlUCSIsYiSyllables
      +
      YijingHexagramSymbols
      xmlUCSIsYijingHexagramSymbols
      +

      Letter Z:

      ZLIB
      docbCreateFileParserCtxt
      docbParseFile
      docbSAXParseFile
      htmlCreateFileParserCtxt
      @@ -149,7 +153,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlTextReaderSchemaValidateCtxt
      xmlTextReaderSetSchema
      activates
      xmlXPathContextSetCache
      -
      activation
      xmlGetLineNo
      acts
      xmlGetProp
      actual
      xmlGetUTF8Char
      xmlSchemaValidateLengthFacet
      @@ -251,6 +254,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAddPrevSibling
      xmlAddSibling
      affect
      xmlKeepBlanksDefault
      +
      affected
      xmlSchemaValidityLocatorFunc
      affiliation
      _xmlSchemaElement
      afraid
      xmlEncodeEntities
      after
      UTF8ToHtml
      @@ -287,8 +291,10 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchematronValidateDoc
      xmlShellValidate
      xmlValidateDtd
      -
      aggregate
      xmlNodeBufGetContent
      +
      aggregate
      xmlBufGetNodeContent
      +xmlNodeBufGetContent
      xmlNodeGetContent
      +
      ahead
      XML_MAX_LOOKUP_LIMIT
      algebraic
      xmlExpExpDerive
      alias
      xmlAddEncodingAlias
      xmlDelEncodingAlias
      @@ -351,7 +357,10 @@ A:link, A:visited, A:active { text-decoration: underline } xmlValidateName
      xmlValidateQName
      allowable
      xmlSkipBlankChars
      -
      allowed
      XML_MAX_TEXT_LENGTH
      +
      allowed
      XML_MAX_DICTIONARY_LIMIT
      +XML_MAX_LOOKUP_LIMIT
      +XML_MAX_NAME_LENGTH
      +XML_MAX_TEXT_LENGTH
      _htmlElemDesc
      _xmlElement
      _xmlSchemaWildcard
      @@ -360,6 +369,7 @@ A:link, A:visited, A:active { text-decoration: underline } htmlNodeStatus
      xmlAutomataNewAllTrans
      xmlAutomataNewCounterTrans
      +xmlBufNodeDump
      xmlIsLetter
      xmlNodeAddContent
      xmlNodeAddContentLen
      @@ -399,7 +409,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParseCharEncoding
      xmlParseNotationType
      xmlParserInputGrow
      -xmlParserInputRead
      xmlReallocFunc
      xmlReplaceNode
      xmlXPathNodeSetAddUnique
      @@ -431,10 +440,12 @@ A:link, A:visited, A:active { text-decoration: underline }
      amd
      xmlCatalogIsEmpty
      amount
      INPUT_CHUNK
      _xmlParserInputBuffer
      +xmlDictGetUsage
      xmlMemDisplayLast
      xmlMemUsed
      xmlParserInputBufferGrow
      xmlParserInputBufferRead
      +xmlParserInputGrow
      amp
      xmlParseEntityRef
      xmlParseSDDecl
      xmlParserHandleReference
      @@ -623,7 +634,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlStrncatNew
      automaton
      _xmlSchemaType
      autoreference
      _xmlDoc
      -
      avoid
      xmlCleanupParser
      +
      avoid
      XML_MAX_LOOKUP_LIMIT
      +xmlCleanupParser
      xmlCleanupThreads
      xmlGetBufferAllocationScheme
      avoiding
      xmlTextReaderNext
      @@ -638,8 +650,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk11.html b/doc/APIchunk11.html index a594514..c1336cb 100644 --- a/doc/APIchunk11.html +++ b/doc/APIchunk11.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -49,6 +49,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlPreviousElementSibling
      xmlRelaxNGDump
      xmlSetEntityReferenceFunc
      +
      bad
      XML_MAX_LOOKUP_LIMIT
      badly
      xmlParseExternalID
      bahaviour
      xmlTextReaderNormalization
      balanced
      xmlParseBalancedChunkMemory
      @@ -100,7 +101,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCleanupThreads
      xmlCurrentChar
      xmlGcMemSetup
      -xmlGetLineNo
      xmlInitParser
      xmlMemSetup
      xmlTextReaderRelaxNGSetSchema
      @@ -113,7 +113,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlValidGetValidElements
      xmlXPathNextPreceding
      xmlXPathStringFunction
      -
      beginning
      xmlBufferAddHead
      +
      beginning
      xmlBufShrink
      +xmlBufferAddHead
      xmlBufferShrink
      xmlByteConsumed
      xmlListInsert
      @@ -127,16 +128,21 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCurrentChar
      xmlKeepBlanksDefault
      xmlSubstituteEntitiesDefault
      -
      behaviour
      htmlNodeDump
      +
      behaviour
      XML_MAX_LOOKUP_LIMIT
      +htmlNodeDump
      htmlNodeDumpFile
      htmlNodeDumpFileFormat
      htmlNodeDumpFormatOutput
      htmlNodeDumpOutput
      resolveEntity
      resolveEntitySAXFunc
      +xmlBufNodeDump
      +xmlBufShrink
      xmlElemDump
      xmlFreeNode
      xmlFreeNodeList
      +xmlModuleOpen
      +xmlModuleSymbol
      xmlNodeDump
      xmlNodeDumpOutput
      xmlNodeGetSpacePreserve
      @@ -171,6 +177,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlTextWriterWriteBinHex
      bindings
      _xmlSchema
      bit
      xmlStrEqual
      +
      bits
      xmlGetLineNo
      blanks
      xmlKeepBlanksDefault
      xmlSkipBlankChars
      bloc
      xmlParseBalancedChunkMemory
      @@ -206,7 +213,10 @@ A:link, A:visited, A:active { text-decoration: underline }
      bound
      xmlExpNewRange
      boundaries
      _xmlParserCtxt
      xmlSearchNs
      -
      boundary
      XML_MAX_TEXT_LENGTH
      +
      boundary
      XML_MAX_DICTIONARY_LIMIT
      +XML_MAX_LOOKUP_LIMIT
      +XML_MAX_NAME_LENGTH
      +XML_MAX_TEXT_LENGTH
      xmlParseElementChildrenContentDecl
      xmlParseElementMixedContentDecl
      bracket
      xmlParseCharData
      @@ -249,7 +259,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParserInputBufferPush
      xmlParserInputBufferRead
      xmlTextReaderGetRemainder
      -
      buffers
      xmlBufferDetach
      +
      buffers
      LIBXML2_NEW_BUFFER
      +xmlBufferDetach
      builded
      XML_SCHEMAS_ATTRGROUP_GLOBAL
      XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED
      building
      XML_MAX_TEXT_LENGTH
      @@ -304,8 +315,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk12.html b/doc/APIchunk12.html index 7985825..05a6b80 100644 --- a/doc/APIchunk12.html +++ b/doc/APIchunk12.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -52,7 +52,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCheckFilename
      xmlCleanupParser
      xmlCleanupThreads
      -xmlGetLineNo
      xmlTextReaderCurrentDoc
      xmlXPathAddValues
      xmlXPathDivValues
      @@ -87,10 +86,13 @@ A:link, A:visited, A:active { text-decoration: underline } xmlC14NDocSave
      xmlC14NDocSaveTo
      xmlC14NExecute
      +
      canot
      xmlModuleOpen
      +xmlModuleSymbol
      capable
      xmlCheckUTF8
      caracters
      xmlOutputBufferWriteEscape
      cardinality
      xmlExpParse
      -
      carried
      xmlNewDocProp
      +
      carried
      xmlBufGetNodeContent
      +xmlNewDocProp
      xmlNewNsProp
      xmlNewNsPropEatName
      xmlNewProp
      @@ -139,7 +141,8 @@ A:link, A:visited, A:active { text-decoration: underline }
      ceiling
      xmlXPathCeilingFunction
      certainly
      xmlTextReaderGetRemainder
      chained
      xmlFreeNsList
      -
      change
      htmlSetMetaEncoding
      +
      change
      LIBXML2_NEW_BUFFER
      +htmlSetMetaEncoding
      xmlCtxtResetLastError
      xmlNanoFTPCwd
      xmlParseSDDecl
      @@ -581,6 +584,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParserInputBufferRead
      xmlXPathSubstringFunction
      consist
      xmlXPathNextAncestor
      +
      const
      xmlModuleOpen
      +xmlModuleSymbol
      constant
      XML_SAX2_MAGIC
      xmlByteConsumed
      constraint
      _xmlSchemaAttribute
      @@ -881,6 +886,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlMemGet
      xmlMemUsed
      xmlOutputBufferCreateFilename
      +xmlOutputBufferGetContent
      +xmlOutputBufferGetSize
      xmlSchemaValidateFile
      xmlXPathContextSetCache
      custom
      xmlDOMWrapAdoptNode
      @@ -896,8 +903,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk13.html b/doc/APIchunk13.html index 21eaffe..c5d3e6a 100644 --- a/doc/APIchunk13.html +++ b/doc/APIchunk13.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -242,7 +242,9 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCheckLanguageID
      xmlCreateEntitiesTable
      xmlDecodeEntities
      +xmlNodeDump
      xmlParserHandleReference
      +xmlParserInputRead
      xmlScanName
      depth
      _xmlParserCtxt
      _xmlValidCtxt
      @@ -379,12 +381,16 @@ A:link, A:visited, A:active { text-decoration: underline }
      determinist
      xmlAutomataIsDeterminist
      xmlRegexpIsDeterminist
      dict
      _xmlDoc
      -
      dictionary
      _xmlParserCtxt
      +
      dictionaries
      XML_MAX_NAME_LENGTH
      +
      dictionary
      XML_MAX_DICTIONARY_LIMIT
      +_xmlParserCtxt
      _xmlXPathContext
      xmlDictCleanup
      xmlDictCreate
      xmlDictCreateSub
      +xmlDictGetUsage
      xmlDictReference
      +xmlDictSetLimit
      xmlHashCreateDict
      xmlInitializeDict
      xmlPatterncompile
      @@ -396,10 +402,12 @@ A:link, A:visited, A:active { text-decoration: underline } xmlDictCreateSub
      xmlDictExists
      xmlDictFree
      +xmlDictGetUsage
      xmlDictLookup
      xmlDictOwns
      xmlDictQLookup
      xmlDictReference
      +xmlDictSetLimit
      xmlDictSize
      xmlExpNewCtxt
      did
      XML_SCHEMAS_TYPE_BLOCK_DEFAULT
      @@ -420,7 +428,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlStrQEqual
      differentiate
      xmlXPathOrderDocElems
      differently
      xmlTextReaderGetRemainder
      -
      differs
      xmlNewEntity
      +
      differs
      xmlBufShrink
      +xmlNewEntity
      digit
      xmlXPathStringFunction
      digits
      xmlXPathStringFunction
      dir
      xmlShellDir
      @@ -443,7 +452,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathNextPreceding
      xmlXPathNextPrecedingSibling
      xmlXPathNextSelf
      -
      directly
      xmlNodeBufGetContent
      +
      directly
      xmlBufGetNodeContent
      +xmlNodeBufGetContent
      xmlNodeGetContent
      xmlNormalizeURIPath
      xmlParseAttribute
      @@ -466,6 +476,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParserGetDirectory
      xmlShellList
      disable
      xmlCatalogSetDebug
      +xmlSchemaValidateSetLocator
      disabled
      XML_CAST_FPTR
      _xmlParserCtxt
      xmlParseURIRaw
      @@ -474,8 +485,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      disallowed
      XML_SCHEMAS_ELEM_BLOCK_EXTENSION
      XML_SCHEMAS_ELEM_BLOCK_RESTRICTION
      XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION
      -
      discard
      xmlParserInputRead
      -xmlUnlinkNode
      +
      discard
      xmlUnlinkNode
      discarded
      xmlDeregisterNodeFunc
      discarding
      xmlParseAttValue
      xmlValidCtxtNormalizeAttributeValue
      @@ -532,7 +542,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlInitCharEncodingHandlers
      xmlKeepBlanksDefault
      xmlNodeListGetRawString
      -xmlParserInputRead
      xmlPatternMatch
      xmlRemoveProp
      xmlUTF8Strlen
      @@ -601,7 +610,11 @@ A:link, A:visited, A:active { text-decoration: underline }
      dtds
      getSystemId
      xmlSAX2GetSystemId
      xmlValidateDtdFinal
      -
      dump
      xmlBufferAdd
      +
      due
      xmlBufShrink
      +xmlModuleOpen
      +xmlModuleSymbol
      +
      dump
      xmlBufShrink
      +xmlBufferAdd
      xmlBufferCCat
      xmlBufferDump
      xmlBufferShrink
      @@ -643,8 +656,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk14.html b/doc/APIchunk14.html index ce82237..b30962c 100644 --- a/doc/APIchunk14.html +++ b/doc/APIchunk14.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -55,6 +55,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlLoadCatalogs
      efficiency
      xmlBuildRelativeURI
      either
      xmlBoolToText
      +xmlBufGetNodeContent
      xmlCurrentChar
      xmlLoadACatalog
      xmlNodeBufGetContent
      @@ -170,6 +171,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPtrNewRangePoints
      ends
      _xmlParserNodeInfo
      xmlNanoHTTPClose
      +
      enforced
      XML_MAX_LOOKUP_LIMIT
      engine
      xmlXPathAxisFunc
      xmlXPathFuncLookupFunc
      xmlXPathVariableLookupFunc
      @@ -395,6 +397,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      explicitly
      xmlSAXDefaultVersion
      explored
      xmlXPathAxisFunc
      exposing
      xmlTextReaderRead
      +
      express
      LIBXML2_NEW_BUFFER
      expressing
      xmlPathToURI
      expressions
      LIBXML_EXPR_ENABLED
      LIBXML_REGEXP_ENABLED
      @@ -432,6 +435,8 @@ A:link, A:visited, A:active { text-decoration: underline }
      extlang
      xmlCheckLanguageID
      extract
      XML_GET_CONTENT
      XML_GET_LINE
      +xmlBufContent
      +xmlBufEnd
      xmlBufferContent

      A-B C-C @@ -442,8 +447,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk15.html b/doc/APIchunk15.html index bbf22e5..163d67b 100644 --- a/doc/APIchunk15.html +++ b/doc/APIchunk15.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -38,6 +38,7 @@ A:link, A:visited, A:active { text-decoration: underline } x-x y-z

      Letter f:

      fTP
      xmlNanoFTPConnectTo
      +
      face
      XML_MAX_NAME_LENGTH
      facet
      XML_SCHEMAS_FACET_COLLAPSE
      XML_SCHEMAS_FACET_PRESERVE
      XML_SCHEMAS_FACET_REPLACE
      @@ -114,7 +115,9 @@ A:link, A:visited, A:active { text-decoration: underline }
      fatal
      fatalErrorSAXFunc
      fatalError
      fatalErrorSAXFunc
      favor
      xmlNewElementContent
      -
      feature
      XML_MAX_TEXT_LENGTH
      +
      feature
      XML_MAX_DICTIONARY_LIMIT
      +XML_MAX_NAME_LENGTH
      +XML_MAX_TEXT_LENGTH
      xmlGetFeature
      xmlGetFeaturesList
      xmlHasFeature
      @@ -177,6 +180,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_SCHEMAS_FINAL_DEFAULT_UNION
      find
      xmlGetThreadId
      xmlIsXHTML
      +xmlSchemaValidityLocatorFunc
      finding
      xmlNanoFTPScanProxy
      xmlNanoFTPUpdateURL
      xmlNanoHTTPScanProxy
      @@ -233,6 +237,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      flow
      xmlScanName
      xmlSchemaSAXPlug
      xmlSchemaSAXUnplug
      +xmlSchemaValidateSetLocator
      xmlSchemaValidateStream
      flushed
      xmlTextWriterEndDocument
      flushes
      xmlOutputBufferClose
      @@ -305,6 +310,7 @@ A:link, A:visited, A:active { text-decoration: underline } htmlNodeDumpOutput
      htmlSaveFileEnc
      htmlSaveFileFormat
      +xmlBufNodeDump
      xmlDocDumpFormatMemory
      xmlDocDumpFormatMemoryEnc
      xmlDocFormatDump
      @@ -424,8 +430,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk16.html b/doc/APIchunk16.html index 0912b93..20e90a7 100644 --- a/doc/APIchunk16.html +++ b/doc/APIchunk16.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -110,6 +110,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      get
      _xmlSAXHandler
      _xmlSAXHandlerV1
      fatalErrorSAXFunc
      +xmlBufUse
      xmlBufferLength
      xmlCatalogGetDefaults
      xmlGetCompressMode
      @@ -178,6 +179,10 @@ A:link, A:visited, A:active { text-decoration: underline }
      grows
      xmlBufferWriteCHAR
      xmlBufferWriteChar
      xmlBufferWriteQuotedString
      +
      guarantee
      xmlModuleOpen
      +xmlModuleSymbol
      +
      guaranteed
      xmlModuleOpen
      +xmlModuleSymbol
      guess
      xmlCleanupParser
      xmlCleanupThreads

      Letter h:

      had
      xmlNewGlobalNs
      @@ -246,6 +251,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNanoHTTPMethodRedir
      xmlNanoHTTPMimeType
      heading
      xmlCharEncodingOutputFunc
      +
      held
      xmlOutputBufferGetContent
      +xmlOutputBufferGetSize
      helper
      XML_SCHEMAS_ELEM_CIRCULAR
      here
      _xmlXPathContext
      htmlNodeStatus
      @@ -285,6 +292,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNanoFTPUpdateURL
      hour
      ftpListCallback
      how
      _xmlError
      +xmlDictGetUsage
      href
      XINCLUDE_HREF
      href==NULL
      xmlNewNs
      hrefs
      xlinkExtendedLinkFunk
      @@ -342,8 +350,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk17.html b/doc/APIchunk17.html index 6936af2..070f8ce 100644 --- a/doc/APIchunk17.html +++ b/doc/APIchunk17.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -42,6 +42,7 @@ A:link, A:visited, A:active { text-decoration: underline } LIBXML_ISO8859X_ENABLED
      icu
      LIBXML_ICU_ENABLED
      identify
      xmlParseAttributeType
      +
      identitier
      XML_MAX_NAME_LENGTH
      identity-constraint
      _xmlSchema
      _xmlSchemaElement
      ignorable
      ignorableWhitespace
      @@ -59,7 +60,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlC14NDocSave
      xmlC14NDocSaveTo
      xmlC14NExecute
      -
      imbrication
      xmlNodeDump
      +
      imbrication
      xmlBufNodeDump
      +xmlNodeDump
      xmlNodeDumpOutput
      img
      xmlBuildRelativeURI
      immediately
      xmlCheckVersion
      @@ -191,7 +193,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathDebugDumpObject
      indentation?
      xmlTextWriterSetIndent
      indented
      xmlSaveFormatFile
      -
      indenting
      xmlDocDumpFormatMemory
      +
      indenting
      xmlBufNodeDump
      +xmlDocDumpFormatMemory
      xmlDocDumpFormatMemoryEnc
      xmlDocFormatDump
      xmlNodeDump
      @@ -218,7 +221,6 @@ A:link, A:visited, A:active { text-decoration: underline } LIBXML_ATTR_FORMAT
      xmlParseExternalID
      xmlParserInputGrow
      -xmlParserInputRead
      xmlRegExecPushString
      xmlRegExecPushString2
      xmlURIUnescapeString
      @@ -302,7 +304,10 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNewTextReader
      xmlRelaxNGGetParserErrors
      xmlSchemaGetParserErrors
      +xmlSchemaValidateSetFilename
      +xmlSchemaValidateSetLocator
      xmlSchemaValidateStream
      +xmlSchemaValidityLocatorFunc
      xmlTextReaderByteConsumed
      xmlXPathOrderDocElems
      informations
      _xmlAttr
      @@ -329,6 +334,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSAX2StartElementNs
      xmlSchemaGetValidErrors
      xmlSchemaSetValidErrors
      +xmlSchemaValidityLocatorFunc
      xmlShellDir
      xmlXIncludeProcessNode
      informative
      _xmlError
      @@ -417,6 +423,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAddChild
      xmlAddNextSibling
      xmlAddPrevSibling
      +xmlBufShrink
      xmlCopyElementContent
      xmlDocSetRootElement
      xmlFreeElementContent
      @@ -429,6 +436,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlIsIdeographic
      xmlIsPubidChar
      xmlKeepBlanksDefault
      +xmlNodeDump
      xmlRegisterHTTPPostCallbacks
      xmlSaveDoc
      xmlSaveTree
      @@ -497,17 +505,20 @@ A:link, A:visited, A:active { text-decoration: underline }
      interprestation
      xmlXPathFunction
      interpreter
      xmlXPathAxisFunc
      intersection
      xmlXPathIntersection
      +
      introduced
      LIBXML2_NEW_BUFFER
      +
      ints
      xmlGetLineNo
      invalid
      XML_SCHEMAS_TYPE_INTERNAL_INVALID
      xmlParseSDDecl
      xmlReconciliateNs
      xmlValidateDtdFinal
      invited
      xmlValidGetValidElements
      -
      invoking
      xmlGetLineNo
      isinf
      xmlXPathIsInf
      isn
      xmlRegisterCharEncodingHandler
      isnan
      xmlXPathIsNaN
      issue
      xmlEncodeEntities
      issued
      xlinkIsLink
      +
      issues
      xmlModuleOpen
      +xmlModuleSymbol
      item
      XML_SCHEMAS_TYPE_BLOCK_DEFAULT
      XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE
      XML_SCHEMAS_TYPE_MARKED
      @@ -545,8 +556,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk18.html b/doc/APIchunk18.html index 5de97d8..c7eb589 100644 --- a/doc/APIchunk18.html +++ b/doc/APIchunk18.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -199,6 +199,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      less-than
      xmlNewTextChild
      level
      XML_SCHEMAS_ELEM_TOPLEVEL
      _xmlDoc
      +xmlBufNodeDump
      xmlC14NDocSave
      xmlCatalogSetDebug
      xmlCleanupMemory
      @@ -299,15 +300,22 @@ A:link, A:visited, A:active { text-decoration: underline } xmlValidityErrorFunc
      xmlValidityWarningFunc
      likely
      xmlGetThreadId
      -
      limit
      _xmlXPathParserContext
      +
      limit
      XML_MAX_NAME_LENGTH
      +_xmlXPathParserContext
      xmlCharEncFirstLine
      xmlDecodeEntities
      +xmlDictSetLimit
      xmlPatternMaxDepth
      -
      limitation
      XML_MAX_TEXT_LENGTH
      +
      limitation
      XML_MAX_DICTIONARY_LIMIT
      +XML_MAX_NAME_LENGTH
      +XML_MAX_TEXT_LENGTH
      +xmlGetLineNo
      limited
      _htmlElemDesc
      +xmlNodeDump
      linear
      htmlEntityLookup
      htmlEntityValueLookup
      xmlExpExpDerive
      +
      lines
      xmlGetLineNo
      linked
      _xmlSchemaAttributeLink
      _xmlSchemaFacetLink
      _xmlSchemaTypeLink
      @@ -372,6 +380,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCanonicPath
      xmlPathToURI
      xmlSAX2SetDocumentLocator
      +xmlSchemaValidateSetLocator
      +xmlSchemaValidityLocatorFunc
      xmlTextReaderErrorFunc
      xmlTextReaderLocatorBaseURI
      xmlTextReaderLocatorLineNumber
      @@ -429,8 +439,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk19.html b/doc/APIchunk19.html index 0f302d0..23f434e 100644 --- a/doc/APIchunk19.html +++ b/doc/APIchunk19.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -97,7 +97,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlStringLenDecodeEntities
      marking
      xmlParseCharData
      marks
      xmlParseCharData
      -
      markup
      xmlParseMarkupDecl
      +
      markup
      XML_MAX_NAME_LENGTH
      +xmlParseMarkupDecl
      xmlParseSDDecl
      xmlTextReaderReadInnerXml
      xmlTextReaderReadOuterXml
      @@ -289,6 +290,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlDOMWrapRemoveNode
      month
      ftpListCallback
      more
      XML_MAX_NAMELEN
      +XML_MAX_NAME_LENGTH
      xmlExpGetLanguage
      xmlExpGetStart
      xmlParseAttributeType
      @@ -308,7 +310,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlGetFeaturesList
      move
      xmlDOMWrapAdoptNode
      moved
      xmlTextReaderMoveToElement
      -
      much
      xmlReconciliateNs
      +
      much
      xmlDictGetUsage
      +xmlReconciliateNs
      multi-threaded
      xmlSetGenericErrorFunc
      xmlSetStructuredErrorFunc
      multi-threading
      xmlCleanupGlobals
      @@ -346,8 +349,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk2.html b/doc/APIchunk2.html index 5c70d09..7fba0b5 100644 --- a/doc/APIchunk2.html +++ b/doc/APIchunk2.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -208,7 +208,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParseEntityValue
      xmlValidateAttributeValue
      xmlValidateDtdFinal
      -
      ENTITY_REF
      xmlNodeBufGetContent
      +
      ENTITY_REF
      xmlBufGetNodeContent
      +xmlNodeBufGetContent
      xmlNodeGetContent
      ENTITY_REFs
      xmlNewChild
      xmlNodeListGetRawString
      @@ -287,6 +288,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      EntitiesTable
      htmlEntityLookup
      htmlEntityValueLookup
      Entity
      _xmlEntity
      +xmlBufGetNodeContent
      xmlNewEntityInputStream
      xmlNodeBufGetContent
      xmlNodeGetBase
      @@ -389,8 +391,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk20.html b/doc/APIchunk20.html index 72ed431..0317066 100644 --- a/doc/APIchunk20.html +++ b/doc/APIchunk20.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -306,8 +306,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk21.html b/doc/APIchunk21.html index 2f98a8c..9c03080 100644 --- a/doc/APIchunk21.html +++ b/doc/APIchunk21.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -231,7 +231,9 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathValueFlipSign
      opposite
      xmlCleanupParser
      optimized
      xmlXPathNodeSetAddUnique
      -
      option
      XML_MAX_TEXT_LENGTH
      +
      option
      XML_MAX_DICTIONARY_LIMIT
      +XML_MAX_NAME_LENGTH
      +XML_MAX_TEXT_LENGTH
      xmlDOMWrapAdoptNode
      xmlDOMWrapCloneNode
      xmlDOMWrapReconcileNamespaces
      @@ -322,6 +324,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlLockLibrary
      xmlParseEntity
      xmlSAXParseEntity
      +xmlSchemaValidityLocatorFunc
      xmlSetGenericErrorFunc
      xmlSetStructuredErrorFunc
      xmlTextReaderNormalization
      @@ -337,11 +340,15 @@ A:link, A:visited, A:active { text-decoration: underline }
      outside
      xmlReconciliateNs
      over
      xmlExpCtxtNbCons
      overflow
      _xmlParserInput
      -
      override
      XML_MAX_TEXT_LENGTH
      +
      override
      XML_MAX_DICTIONARY_LIMIT
      +XML_MAX_NAME_LENGTH
      +XML_MAX_TEXT_LENGTH
      resolveEntity
      resolveEntitySAXFunc
      xmlCatalogAdd
      +xmlGetLineNo
      xmlSAX2ResolveEntity
      +
      overriding
      XML_MAX_NAME_LENGTH
      overwrite
      xmlACatalogAdd
      xmlCatalogAdd
      overwritten
      xmlAddEncodingAlias
      @@ -369,8 +376,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk22.html b/doc/APIchunk22.html index 94d0248..bf76a9c 100644 --- a/doc/APIchunk22.html +++ b/doc/APIchunk22.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -189,7 +189,6 @@ A:link, A:visited, A:active { text-decoration: underline }
      pnetlib-doc
      xmlTextReaderNodeType
      pointed
      xmlPopInput
      pointers
      xmlParserInputGrow
      -xmlParserInputRead
      xmlReconciliateNs
      xmlRegExecErrInfo
      xmlRegExecNextValues
      @@ -208,6 +207,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNanoHTTPScanProxy
      portability
      INVALID_SOCKET
      SOCKET
      +xmlModuleOpen
      +xmlModuleSymbol
      portable
      xmlXPathIsInf
      xmlXPathIsNaN
      pos
      xmlUTF8Strsub
      @@ -331,7 +332,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNodeGetSpacePreserve
      xmlNodeSetSpacePreserve
      xmlParserInputGrow
      -xmlParserInputRead
      xmlTextReaderPreserve
      xmlTextReaderPreservePattern
      preserved
      HTML_PRESERVE_NODE
      @@ -355,6 +355,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCatalogSetDebug
      xmlCatalogSetDefaultPrefer
      xmlDeregisterNodeDefault
      +xmlDictSetLimit
      xmlKeepBlanksDefault
      xmlLineNumbersDefault
      xmlPedanticParserDefault
      @@ -373,6 +374,7 @@ A:link, A:visited, A:active { text-decoration: underline } htmlNodeDumpFileFormat
      htmlNodeDumpFormatOutput
      htmlNodeDumpOutput
      +xmlBufNodeDump
      xmlElemDump
      xmlNodeDump
      xmlNodeDumpOutput
      @@ -508,6 +510,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      provenance
      xmlEntityReferenceFunc
      provide
      INVALID_SOCKET
      SOCKET
      +xmlBufNodeDump
      xmlDocDumpFormatMemory
      xmlDocDumpFormatMemoryEnc
      xmlDocFormatDump
      @@ -517,6 +520,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlOutputMatchCallback
      xmlSaveFormatFile
      xmlSaveFormatFileEnc
      +xmlSchemaValidateSetFilename
      +xmlSchemaValidateSetLocator
      xmlSchemaValidateStream
      xmlUTF8Strloc
      xmlUTF8Strpos
      @@ -570,8 +575,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk23.html b/doc/APIchunk23.html index c7e04e3..2908b82 100644 --- a/doc/APIchunk23.html +++ b/doc/APIchunk23.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -59,8 +59,10 @@ A:link, A:visited, A:active { text-decoration: underline }
      quote
      docbEncodeEntities
      htmlEncodeEntities
      xmlBufferWriteQuotedString
      +xmlTextWriterSetQuoteChar
      quoted
      xmlBufferWriteQuotedString
      quotes
      xmlParseQuotedString
      +
      quoting
      xmlTextWriterSetQuoteChar

      Letter r:

      raise
      XP_ERROR
      XP_ERROR0
      raised
      _xmlError
      @@ -190,6 +192,7 @@ A:link, A:visited, A:active { text-decoration: underline } htmlNodeDumpFormatOutput
      htmlNodeDumpOutput
      htmlParseElement
      +xmlBufNodeDump
      xmlCopyDoc
      xmlCopyEnumeration
      xmlCopyNode
      @@ -244,7 +247,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlGetParameterEntity
      referred
      xmlParseAttribute
      xmlParseCharRef
      -
      refresh
      xmlParserInputRead
      refs
      _xmlDoc
      _xmlParserCtxt
      refuse
      xmlNewNs
      @@ -335,6 +337,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlHashRemoveEntry2
      xmlHashRemoveEntry3
      remove
      xmlACatalogRemove
      +xmlBufShrink
      xmlBufferShrink
      xmlCatalogRemove
      xmlDecodeEntities
      @@ -352,6 +355,7 @@ A:link, A:visited, A:active { text-decoration: underline } nodePop
      valuePop
      xmlACatalogRemove
      +xmlBufShrink
      xmlBufferShrink
      xmlCatalogRemove
      xmlCheckLanguageID
      @@ -403,6 +407,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathNormalizeFunction
      reporting
      INPUT_CHUNK
      _xmlXPathContext
      +xmlSchemaValidateSetFilename
      xmlStructuredErrorFunc
      reports
      docbCreatePushParserCtxt
      htmlCreatePushParserCtxt
      @@ -447,7 +452,6 @@ A:link, A:visited, A:active { text-decoration: underline }
      requires
      _htmlElemDesc
      xmlC14NDocSaveTo
      xmlC14NExecute
      -xmlGetLineNo
      xmlRelaxNGValidatePushElement
      requred
      xmlC14NDocSave
      reserved
      xmlCheckLanguageID
      @@ -628,6 +632,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      running
      xmlKeepBlanksDefault
      runtime
      LIBXML_DEBUG_RUNTIME
      XML_MAX_NAMELEN
      +XML_MAX_NAME_LENGTH
      xmlMemDisplayLast

      A-B C-C @@ -638,8 +643,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk24.html b/doc/APIchunk24.html index 9067279..cd45121 100644 --- a/doc/APIchunk24.html +++ b/doc/APIchunk24.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -43,7 +43,9 @@ A:link, A:visited, A:active { text-decoration: underline } xmlInitializeDict
      xmlLoadCatalog
      xmlLoadCatalogs
      -

      safety
      XML_MAX_TEXT_LENGTH
      +
      safety
      XML_MAX_DICTIONARY_LIMIT
      +XML_MAX_NAME_LENGTH
      +XML_MAX_TEXT_LENGTH
      same
      HTML_COMMENT_NODE
      HTML_ENTITY_REF_NODE
      HTML_PI_NODE
      @@ -135,6 +137,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaValidateFacetWhtsp
      xmlSchemaValidateFile
      xmlSchemaValidateStream
      +xmlSchemaValidityLocatorFunc
      xmlSchematronNewMemParserCtxt
      xmlTextReaderRelaxNGValidate
      xmlTextReaderRelaxNGValidateCtxt
      @@ -384,6 +387,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParseExternalID
      xmlPreviousElementSibling
      xmlRelaxNGNewDocParserCtxt
      +xmlSchemaValidateSetLocator
      single
      IS_DIGIT_CH
      XML_MAX_TEXT_LENGTH
      xmlCurrentChar
      @@ -407,6 +411,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      singleton
      xmlCheckLanguageID
      site1
      xmlBuildRelativeURI
      site2
      xmlBuildRelativeURI
      +
      size_t
      xmlBufShrink
      sizes
      xmlGetBufferAllocationScheme
      xmlSetBufferAllocationScheme
      skip
      xmlSkipBlankChars
      @@ -453,6 +458,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXIncludeProcessTree
      xmlXIncludeProcessTreeFlags
      xmlXIncludeProcessTreeFlagsData
      +
      somehow
      xmlNodeDump
      sometimes
      xmlCheckLanguageID
      xmlCleanupParser
      xmlCleanupThreads
      @@ -688,6 +694,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlExpGetLanguage
      xmlExpGetStart
      xmlGetFeature
      +xmlGetLineNo
      xmlInputReadCallback
      xmlOutputBufferWrite
      xmlOutputBufferWriteEscape
      @@ -703,6 +710,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSAXParseFileWithData
      xmlSAXParseMemoryWithData
      xmlXPathOrderDocElems
      +
      stores
      xmlBufNodeDump
      str
      htmlParseEntityRef
      xmlBufferAdd
      strcasecmp
      xmlStrcasecmp
      @@ -735,6 +743,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      stringi
      xmlXPathSubstringAfterFunction
      strings
      _xmlParserCtxt
      xmlDictCreateSub
      +xmlDictGetUsage
      xmlExpGetLanguage
      xmlExpGetStart
      xmlExpParse
      @@ -776,6 +785,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlFreeNsList
      xmlLoadACatalog
      xmlNewRMutex
      +xmlNodeDump
      xmlRegFreeExecCtxt
      struture
      xmlRelaxNGParse
      xmlSchemaParse
      @@ -808,6 +818,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_SUBSTITUTE_NONE
      XML_SUBSTITUTE_PEREF
      XML_SUBSTITUTE_REF
      +xmlBufGetNodeContent
      xmlNodeBufGetContent
      xmlNodeGetContent
      xmlParseEntityValue
      @@ -966,8 +977,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk25.html b/doc/APIchunk25.html index dc8dc79..de57ec4 100644 --- a/doc/APIchunk25.html +++ b/doc/APIchunk25.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -117,6 +117,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNodeListGetRawString
      xmlNodeListGetString
      xmlParseEntityRef
      +xmlUnlinkNode
      xmlXPathAddValues
      xmlXPathDivValues
      xmlXPathIdFunction
      @@ -144,6 +145,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlStrQEqual
      xmlStrcat
      xmlStrdup
      +xmlUnlinkNode
      third
      xmlHashAddEntry3
      xmlHashLookup3
      xmlHashQLookup3
      @@ -158,6 +160,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      those
      xmlCheckLanguageID
      xmlKeepBlanksDefault
      xmlParseSDDecl
      +xmlSchemaValidateSetLocator
      xmlSearchNs
      xmlXPathSubstringFunction
      though
      xmlDocDumpMemory
      @@ -217,6 +220,7 @@ A:link, A:visited, A:active { text-decoration: underline } htmlNodeDumpFileFormat
      htmlNodeDumpFormatOutput
      htmlNodeDumpOutput
      +xmlBufNodeDump
      xmlCheckLanguageID
      xmlCopyDoc
      xmlElemDump
      @@ -365,7 +369,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNanoHTTPMethodRedir
      xmlNanoHTTPOpen
      xmlNanoHTTPOpenRedir
      -xmlParserInputRead
      xmlReconciliateNs
      xmlURIEscape
      xmlValidateRoot
      @@ -425,8 +428,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk26.html b/doc/APIchunk26.html index 646acdb..50e814f 100644 --- a/doc/APIchunk26.html +++ b/doc/APIchunk26.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -62,6 +62,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNodeAddContentLen
      xmlURIUnescapeString
      unescaping
      xmlParseURIRaw
      +
      unfriendly
      XML_MAX_LOOKUP_LIMIT
      +XML_MAX_NAME_LENGTH
      unicode
      htmlEntityValueLookup
      xmlIsLetter
      unimplemented
      htmlCtxtUseOptions
      @@ -111,6 +113,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAddSibling
      xmlNewEntity
      xmlReplaceNode
      +xmlUnlinkNode
      unload
      xmlModuleClose
      xmlModuleFree
      unloaded
      xmlModuleClose
      @@ -185,10 +188,12 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSplitQName2
      upon
      checkNamespace
      xlinkNodeDetectFunc
      -
      upper
      xmlExpNewRange
      +
      upper
      XML_MAX_LOOKUP_LIMIT
      +xmlExpNewRange
      xmlIsRef
      uri
      xmlNormalizeWindowsPath
      -
      usage
      xmlGetBufferAllocationScheme
      +
      usage
      XML_MAX_NAME_LENGTH
      +xmlGetBufferAllocationScheme
      xmlSetBufferAllocationScheme
      used:
      XML_DEFAULT_VERSION
      used?
      _xmlSchemaAttribute
      @@ -239,6 +244,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlRelaxNGValidatePushElement
      xmlSetGenericErrorFunc
      xmlSetStructuredErrorFunc
      +
      validator
      xmlSchemaValidityLocatorFunc
      validity
      _xmlParserCtxt
      _xmlValidCtxt
      xlinkIsLink
      @@ -301,8 +307,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk27.html b/doc/APIchunk27.html index 7123c06..cabaa27 100644 --- a/doc/APIchunk27.html +++ b/doc/APIchunk27.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -132,6 +132,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      what
      xmlCatalogGetDefaults
      xmlCatalogSetDefaults
      xmlParseNamespace
      +xmlSchemaValidityLocatorFunc
      xmlTextReaderGetRemainder
      xmlTextWriterWriteRawLen
      where
      _htmlElemDesc
      @@ -188,6 +189,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAutomataNewOnceTrans
      xmlAutomataNewOnceTrans2
      xmlTextReaderLookupNamespace
      +
      why
      xmlModuleOpen
      +xmlModuleSymbol
      wierd
      xmlBuildRelativeURI
      wildcard
      XML_SCHEMAS_ATTRGROUP_GLOBAL
      XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED
      @@ -255,6 +258,8 @@ A:link, A:visited, A:active { text-decoration: underline }
      words
      xmlXPathNormalizeFunction
      xmlXPathStringLengthFunction
      work
      xmlBufferDetach
      +xmlModuleOpen
      +xmlModuleSymbol
      xmlNodeGetBase
      xmlPatternStreamable
      xmlRemoveProp
      @@ -270,6 +275,8 @@ A:link, A:visited, A:active { text-decoration: underline }
      worthwhile
      xmlBuildRelativeURI
      would
      _xmlError
      htmlAutoCloseTag
      +xmlModuleOpen
      +xmlModuleSymbol
      xmlTextReaderGetRemainder
      wrapper
      xmlDOMWrapAcquireNsFunction
      xmlDOMWrapReconcileNamespaces
      @@ -318,8 +325,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk28.html b/doc/APIchunk28.html index 5653024..a009f5f 100644 --- a/doc/APIchunk28.html +++ b/doc/APIchunk28.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -107,12 +107,16 @@ A:link, A:visited, A:active { text-decoration: underline }
      xmlAttributePtr
      xmlGetDtdAttrDesc
      xmlGetDtdQAttrDesc
      xmlAttributeTablePtr
      xmlCopyAttributeTable
      +
      xmlBufNodeDump
      xmlNodeDump
      +
      xmlBufPtr
      xmlBufGetNodeContent
      xmlBuffer
      xmlCharEncFirstLine
      xmlCharEncInFunc
      xmlCharEncOutFunc
      +xmlNodeDump
      xmlOutputBufferCreateBuffer
      xmlBufferPtr
      xmlNewTextWriterMemory
      xmlOutputBufferCreateBuffer
      +
      xmlBufferShrink
      xmlBufShrink
      xmlBuildURI
      xmlBuildRelativeURI
      xmlBytesConsumed
      xmlTextReaderByteConsumed
      xmlCatalogAllow
      xmlCatalogGetDefaults
      @@ -129,8 +133,6 @@ A:link, A:visited, A:active { text-decoration: underline }
      xmlCharEncodingOutputFunc
      xmlNewCharEncodingHandler
      xmlChars
      _xmlParserInput
      xmlBufferWriteCHAR
      -xmlParserInputGrow
      -xmlParserInputRead
      xmlCleanupParser
      xmlCleanupParser
      xmlCleanupThreads
      xmlCleanupThreads
      xmlCopyDocElementContent
      xmlCopyElementContent
      @@ -216,7 +218,8 @@ A:link, A:visited, A:active { text-decoration: underline }
      xmlHashTablePtr
      xmlHashCreate
      xmlHashCreateDict
      xmlIDPtr
      xmlAddID
      -
      xmlIndentTreeOutput
      xmlDocDumpFormatMemory
      +
      xmlIndentTreeOutput
      xmlBufNodeDump
      +xmlDocDumpFormatMemory
      xmlDocDumpFormatMemoryEnc
      xmlDocFormatDump
      xmlNodeDump
      @@ -248,14 +251,14 @@ A:link, A:visited, A:active { text-decoration: underline }
      xmlIsMainThread
      xmlIsMainThread
      xmlIsPubidCharQ
      xmlIsPubidChar
      xmlIsPubidChar_ch
      xmlIsPubidChar
      -
      xmlKeepBlanksDefault
      xmlDocDumpFormatMemory
      +
      xmlKeepBlanksDefault
      xmlBufNodeDump
      +xmlDocDumpFormatMemory
      xmlDocDumpFormatMemoryEnc
      xmlDocFormatDump
      xmlNodeDump
      xmlNodeDumpOutput
      xmlSaveFormatFile
      xmlSaveFormatFileEnc
      -
      xmlLineNumbersDefault
      xmlGetLineNo
      xmlListWalk
      xmlListWalker
      xmlLoadExtDtdDefaultValue
      XML_COMPLETE_ATTRS
      XML_DETECT_IDS
      @@ -311,10 +314,13 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCopyNamespaceList
      xmlDOMWrapAcquireNsFunction
      xmlGetNsList
      +
      xmlOutputBuffer
      LIBXML2_NEW_BUFFER
      xmlOutputBufferClose
      xmlSaveFileTo
      xmlSaveFormatFileTo
      xmlOutputBufferPtr
      xmlNewTextWriter
      xmlOutputBufferCreateFilenameFunc
      +xmlOutputBufferGetContent
      +xmlOutputBufferGetSize
      xmlOutputCloseCallback
      xmlRegisterOutputCallbacks
      xmlOutputMatchCallback
      xmlRegisterOutputCallbacks
      xmlOutputOpenCallback
      xmlRegisterOutputCallbacks
      @@ -338,6 +344,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParseChunk
      xmlParserFindNodeInfoIndex
      xmlParserFindNodeInfoIndex
      xmlParserHandleReference
      xmlScanName
      +
      xmlParserInputBuffer
      LIBXML2_NEW_BUFFER
      xmlParserInputBufferPtr
      xmlNewTextReader
      xmlParserInputBufferCreateFilenameFunc
      xmlTextReaderGetRemainder
      @@ -533,8 +540,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk29.html b/doc/APIchunk29.html index d293408..2aaa21b 100644 --- a/doc/APIchunk29.html +++ b/doc/APIchunk29.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -107,8 +107,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk3.html b/doc/APIchunk3.html index 946863a..515118a 100644 --- a/doc/APIchunk3.html +++ b/doc/APIchunk3.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -57,7 +57,8 @@ A:link, A:visited, A:active { text-decoration: underline }
      False
      xmlBoolToText
      Fetch
      xmlNanoFTPGet
      File
      xmlTextReaderGetRemainder
      -
      Fills
      xmlNodeBufGetContent
      +
      Fills
      xmlBufGetNodeContent
      +xmlNodeBufGetContent
      Find
      xmlExpGetLanguage
      xmlExpGetStart
      xmlGetRefs
      @@ -120,7 +121,10 @@ A:link, A:visited, A:active { text-decoration: underline } xmlDOMWrapFreeCtxt
      xmlNanoFTPFreeCtxt
      Front-end
      xmlCharEncFirstLine
      -
      Function
      xmlBufferContent
      +
      Function
      xmlBufContent
      +xmlBufEnd
      +xmlBufUse
      +xmlBufferContent
      xmlBufferLength
      xmlSetGenericErrorFunc
      xmlSetStructuredErrorFunc
      @@ -140,7 +144,9 @@ A:link, A:visited, A:active { text-decoration: underline }
      GeometricShapes
      xmlUCSIsGeometricShapes
      Georgian
      xmlUCSIsGeorgian
      Gets
      xmlTextReaderReadState
      -
      Gives
      xmlSchemaGetBuiltInType
      +
      Gives
      xmlOutputBufferGetContent
      +xmlOutputBufferGetSize
      +xmlSchemaGetBuiltInType
      Global
      _xmlDoc
      Gothic
      xmlUCSIsGothic
      Greek
      xmlUCSIsGreek
      @@ -316,6 +322,10 @@ A:link, A:visited, A:active { text-decoration: underline }
      Intended
      xmlSnprintfElementContent
      Internal
      _xmlDOMWrapCtxt
      xmlParseMarkupDecl
      +
      Introduced
      XML_MAX_DICTIONARY_LIMIT
      +XML_MAX_LOOKUP_LIMIT
      +XML_MAX_NAME_LENGTH
      +XML_MAX_TEXT_LENGTH
      Irregular
      xmlCheckLanguageID

      A-B C-C @@ -326,8 +336,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk4.html b/doc/APIchunk4.html index 8220fff..cbafa23 100644 --- a/doc/APIchunk4.html +++ b/doc/APIchunk4.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -134,7 +134,10 @@ A:link, A:visited, A:active { text-decoration: underline }
      MathematicalOperators
      xmlUCSIsMathematicalOperators
      Max
      _xmlParserCtxt
      _xmlValidCtxt
      -
      Maximum
      XML_MAX_TEXT_LENGTH
      +
      Maximum
      XML_MAX_DICTIONARY_LIMIT
      +XML_MAX_LOOKUP_LIMIT
      +XML_MAX_NAME_LENGTH
      +XML_MAX_TEXT_LENGTH
      May
      xmlURIEscape
      Memory
      xmlDocDumpFormatMemoryEnc
      xmlDocDumpMemoryEnc
      @@ -193,7 +196,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaGetCanonValue
      xmlSchemaNewNOTATIONValue
      xmlValidateDtdFinal
      -
      NOTE
      xmlCtxtReadFd
      +
      NOTE
      xmlBufShrink
      +xmlCtxtReadFd
      xmlParseExternalID
      xmlParseNotationDecl
      xmlReadFd
      @@ -207,6 +211,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlDOMWrapRemoveNode
      xmlGetProp
      xmlInitCharEncodingHandlers
      +xmlModuleOpen
      +xmlModuleSymbol
      xmlNewChild
      xmlNewDocNode
      xmlNewDocNodeEatName
      @@ -320,8 +326,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk5.html b/doc/APIchunk5.html index fcbe54a..e4c9550 100644 --- a/doc/APIchunk5.html +++ b/doc/APIchunk5.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -268,8 +268,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk6.html b/doc/APIchunk6.html index 315c8bd..346e7e5 100644 --- a/doc/APIchunk6.html +++ b/doc/APIchunk6.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -82,7 +82,8 @@ A:link, A:visited, A:active { text-decoration: underline }
      Raises
      xmlXPathSetArityError
      xmlXPathSetError
      xmlXPathSetTypeError
      -
      Read
      xmlFileRead
      +
      Read
      xmlBufGetNodeContent
      +xmlFileRead
      xmlGetFeature
      xmlGetUTF8Char
      xmlIOFTPRead
      @@ -201,6 +202,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlRelaxNGNewParserCtxt
      xmlRelaxNGNewValidCtxt
      Remove
      xmlACatalogRemove
      +xmlBufShrink
      xmlBufferDetach
      xmlBufferShrink
      xmlCatalogRemove
      @@ -268,8 +270,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk7.html b/doc/APIchunk7.html index 452b9a7..c556bb2 100644 --- a/doc/APIchunk7.html +++ b/doc/APIchunk7.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -187,6 +187,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathNodeTrailingSorted
      xmlXPathTrailing
      xmlXPathTrailingSorted
      +
      Setting
      xmlSchemaValidateSetLocator
      Setup
      xmlNanoFTPProxy
      xmlReaderNewDoc
      xmlReaderNewFd
      @@ -229,7 +230,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlTextReaderErrorFunc
      Similarly
      xmlParseEntityRef
      Simply
      xmlCreateURI
      -
      Since
      xmlStrcat
      +
      Since
      xmlNodeDump
      +xmlStrcat
      xmlStrdup
      xmlTextReaderNormalization
      Single
      xmlCheckLanguageID
      @@ -303,8 +305,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk8.html b/doc/APIchunk8.html index 8fca400..934e39d 100644 --- a/doc/APIchunk8.html +++ b/doc/APIchunk8.html @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -41,6 +41,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAddChildList
      xmlAddPrevSibling
      xmlAddSibling
      +xmlBufGetNodeContent
      xmlNewTextChild
      xmlNodeBufGetContent
      xmlNodeGetContent
      @@ -152,6 +153,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCatalogGetSystem
      xmlCatalogResolvePublic
      xmlCatalogResolveSystem
      +xmlGetLineNo
      xmlIsXHTML
      xmlNanoFTPGetConnection
      xmlValidateAttributeDecl
      @@ -281,8 +283,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIchunk9.html b/doc/APIchunk9.html index 5cb56e3..8c4ac1f 100644 --- a/doc/APIchunk9.html +++ b/doc/APIchunk9.html @@ -7,7 +7,7 @@ H1 {font-family: Verdana,Arial,Helvetica} H2 {font-family: Verdana,Arial,Helvetica} H3 {font-family: Verdana,Arial,Helvetica} A:link, A:visited, A:active { text-decoration: underline } -API Alphabetic Index V-Y for libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      The XML C parser and toolkit of Gnome

      API Alphabetic Index V-Y for libxml2

      Developer Menu
      API Indexes
      Related links

      A-B +API Alphabetic Index V-X for libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      The XML C parser and toolkit of Gnome

      API Alphabetic Index V-X for libxml2

      Developer Menu
      API Indexes
      Related links

      A-B C-C D-E F-I @@ -16,8 +16,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d @@ -132,6 +132,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      With
      xmlParseAttribute
      xmlParseEndTag
      xmlParseStartTag
      +
      Workaround
      xmlSchemaValidateSetFilename
      Working
      xmlParseNamespace
      Wrap
      xmlXPathWrapNodeSet
      xmlXPtrWrapLocationSet
      @@ -195,7 +196,10 @@ A:link, A:visited, A:active { text-decoration: underline }
      XML_ELEMENT_TYPE_xxx
      xmlParseElementContentDecl
      XML_ENTITY_DECL
      _xmlEntity
      XML_ERR_OK
      xmlParseInNodeContext
      -
      XML_PARSE_HUGE
      XML_MAX_TEXT_LENGTH
      +
      XML_PARSE_BIG_LINES
      xmlGetLineNo
      +
      XML_PARSE_HUGE
      XML_MAX_DICTIONARY_LIMIT
      +XML_MAX_NAME_LENGTH
      +XML_MAX_TEXT_LENGTH
      XML_SCHEMAS_ELEM_GLOBAL
      XML_SCHEMAS_ELEM_TOPLEVEL
      XML_SCHEMAS_FACET_PRESERVE
      _xmlSchemaFacet
      XML_SCHEMAS_STRING
      xmlSchemaNewStringValue
      @@ -236,10 +240,6 @@ A:link, A:visited, A:active { text-decoration: underline } XINCLUDE_OLD_NS
      Xml
      xmlTextReaderNodeType
      XmlNodeType
      xmlTextReaderNodeType
      -

      Letter Y:

      YES
      htmlNodeStatus
      -
      YiRadicals
      xmlUCSIsYiRadicals
      -
      YiSyllables
      xmlUCSIsYiSyllables
      -
      YijingHexagramSymbols
      xmlUCSIsYijingHexagramSymbols

      A-B C-C D-E @@ -249,8 +249,8 @@ A:link, A:visited, A:active { text-decoration: underline } Q-R S-S T-U -V-Y -Z-a +V-X +Y-a b-b c-c d-d diff --git a/doc/APIconstructors.html b/doc/APIconstructors.html index 35bb017..c6c4475 100644 --- a/doc/APIconstructors.html +++ b/doc/APIconstructors.html @@ -24,6 +24,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlDictLookup
      xmlDictQLookup
      xmlEncodeEntities
      +xmlOutputBufferGetContent
      xmlParseAttribute
      xmlParseEncodingDecl
      xmlParseName
      @@ -91,6 +92,12 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSaveTree
      xmlTextReaderByteConsumed
      xmlXPathOrderDocElems
      +

      Type size_t:

      xmlBufNodeDump
      +xmlBufShrink
      +xmlBufUse
      +xmlDictGetUsage
      +xmlDictSetLimit
      +xmlOutputBufferGetSize

      Type unsigned long:

      xmlChildElementCount
      xmlParserFindNodeInfoIndex
      xmlSchemaGetFacetValueAsULong
      @@ -173,6 +180,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlACatalogResolvePublic
      xmlACatalogResolveSystem
      xmlACatalogResolveURI
      +xmlBufContent
      +xmlBufEnd
      xmlBufferDetach
      xmlBuildQName
      xmlBuildRelativeURI
      diff --git a/doc/APIfiles.html b/doc/APIfiles.html index 3911d92..498f6e4 100644 --- a/doc/APIfiles.html +++ b/doc/APIfiles.html @@ -331,11 +331,13 @@ A:link, A:visited, A:active { text-decoration: underline } xmlDictCreateSub
      xmlDictExists
      xmlDictFree
      +xmlDictGetUsage
      xmlDictLookup
      xmlDictOwns
      xmlDictPtr
      xmlDictQLookup
      xmlDictReference
      +xmlDictSetLimit
      xmlDictSize
      xmlInitializeDict

      Module encoding:

      UTF8Toisolat1
      @@ -610,6 +612,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_PARSER_START
      XML_PARSER_START_TAG
      XML_PARSER_SYSTEM_LITERAL
      +XML_PARSE_BIG_LINES
      XML_PARSE_COMPACT
      XML_PARSE_DOM
      XML_PARSE_DTDATTR
      @@ -816,7 +819,10 @@ A:link, A:visited, A:active { text-decoration: underline } MOVETO_ENDTAG
      MOVETO_STARTTAG
      SKIP_EOL
      +XML_MAX_DICTIONARY_LIMIT
      +XML_MAX_LOOKUP_LIMIT
      XML_MAX_NAMELEN
      +XML_MAX_NAME_LENGTH
      XML_MAX_TEXT_LENGTH
      XML_SUBSTITUTE_BOTH
      XML_SUBSTITUTE_NONE
      @@ -1286,6 +1292,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlRMutexUnlock
      xmlUnlockLibrary

      Module tree:

      BASE_BUFFER_SIZE
      +LIBXML2_NEW_BUFFER
      XML_ATTRIBUTE_CDATA
      XML_ATTRIBUTE_DECL
      XML_ATTRIBUTE_ENTITIES
      @@ -1378,6 +1385,14 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAttributeDefault
      xmlAttributePtr
      xmlAttributeType
      +xmlBuf
      +xmlBufContent
      +xmlBufEnd
      +xmlBufGetNodeContent
      +xmlBufNodeDump
      +xmlBufPtr
      +xmlBufShrink
      +xmlBufUse
      xmlBuffer
      xmlBufferAdd
      xmlBufferAddHead
      @@ -1771,6 +1786,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlOutputBufferCreateFilename
      xmlOutputBufferCreateIO
      xmlOutputBufferFlush
      +xmlOutputBufferGetContent
      +xmlOutputBufferGetSize
      xmlOutputBufferWrite
      xmlOutputBufferWriteEscape
      xmlOutputBufferWriteString
      @@ -1817,7 +1834,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAutomataStatePtr
      xmlFreeAutomata
      xmlNewAutomata
      -

      Module xmlerror:

      XML_C14N_CREATE_CTXT
      +

      Module xmlerror:

      XML_BUF_OVERFLOW
      +XML_C14N_CREATE_CTXT
      XML_C14N_CREATE_STACK
      XML_C14N_INVALID_NODE
      XML_C14N_RELATIVE_NAMESPACE
      @@ -1828,7 +1846,6 @@ A:link, A:visited, A:active { text-decoration: underline } XML_CATALOG_NOT_CATALOG
      XML_CATALOG_PREFER_VALUE
      XML_CATALOG_RECURSION
      -XML_CHECK_
      XML_CHECK_ENTITY_TYPE
      XML_CHECK_FOUND_ATTRIBUTE
      XML_CHECK_FOUND_CDATA
      @@ -1867,7 +1884,6 @@ A:link, A:visited, A:active { text-decoration: underline } XML_CHECK_WRONG_NEXT
      XML_CHECK_WRONG_PARENT
      XML_CHECK_WRONG_PREV
      -XML_CHECK_X
      XML_DTD_ATTRIBUTE_DEFAULT
      XML_DTD_ATTRIBUTE_REDEFINED
      XML_DTD_ATTRIBUTE_VALUE
      @@ -1973,6 +1989,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_ERR_MIXED_NOT_FINISHED
      XML_ERR_MIXED_NOT_STARTED
      XML_ERR_NAME_REQUIRED
      +XML_ERR_NAME_TOO_LONG
      XML_ERR_NMTOKEN_REQUIRED
      XML_ERR_NONE
      XML_ERR_NOTATION_NOT_FINISHED
      @@ -2015,6 +2032,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_ERR_WARNING
      XML_ERR_XMLDECL_NOT_FINISHED
      XML_ERR_XMLDECL_NOT_STARTED
      +XML_FROM_BUFFER
      XML_FROM_C14N
      XML_FROM_CATALOG
      XML_FROM_CHECK
      @@ -2038,6 +2056,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_FROM_SCHEMASV
      XML_FROM_SCHEMATRONV
      XML_FROM_TREE
      +XML_FROM_URI
      XML_FROM_VALID
      XML_FROM_WRITER
      XML_FROM_XINCLUDE
      @@ -2906,8 +2925,11 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaValidateDoc
      xmlSchemaValidateFile
      xmlSchemaValidateOneElement
      +xmlSchemaValidateSetFilename
      +xmlSchemaValidateSetLocator
      xmlSchemaValidateStream
      xmlSchemaValidityErrorFunc
      +xmlSchemaValidityLocatorFunc
      xmlSchemaValidityWarningFunc

      Module xmlschemastypes:

      XML_SCHEMA_WHITESPACE_COLLAPSE
      XML_SCHEMA_WHITESPACE_PRESERVE
      @@ -3215,6 +3237,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlTextWriterPtr
      xmlTextWriterSetIndent
      xmlTextWriterSetIndentString
      +xmlTextWriterSetQuoteChar
      xmlTextWriterStartAttribute
      xmlTextWriterStartAttributeNS
      xmlTextWriterStartCDATA
      @@ -3281,6 +3304,7 @@ A:link, A:visited, A:active { text-decoration: underline } XPATH_ENCODING_ERROR
      XPATH_EXPRESSION_OK
      XPATH_EXPR_ERROR
      +XPATH_FORBID_VARIABLE_ERROR
      XPATH_INVALID_ARITY
      XPATH_INVALID_CHAR_ERROR
      XPATH_INVALID_CTXT
      diff --git a/doc/APIfunctions.html b/doc/APIfunctions.html index dbe89e8..68eeb14 100644 --- a/doc/APIfunctions.html +++ b/doc/APIfunctions.html @@ -81,6 +81,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlOutputMatchCallback
      xmlOutputOpenCallback

      Type const char **:

      xmlGetFeaturesList
      +xmlSchemaValidityLocatorFunc

      Type const htmlElemDesc *:

      htmlAttrAllowed
      htmlElementAllowedHere
      htmlElementStatusHere
      @@ -108,6 +109,9 @@ A:link, A:visited, A:active { text-decoration: underline }

      Type const xlinkTitle:

      xlinkSimpleLinkFunk

      Type const xlinkTitle *:

      xlinkExtendedLinkFunk
      xlinkExtendedLinkSetFunk
      +

      Type const xmlBufPtr:

      xmlBufContent
      +xmlBufEnd
      +xmlBufUse

      Type const xmlBufferPtr:

      xmlBufferContent
      xmlBufferLength

      Type const xmlChRangeGroup *:

      xmlCharInRange
      @@ -581,8 +585,10 @@ A:link, A:visited, A:active { text-decoration: underline } xmlStringCurrentChar
      xmlValidGetPotentialChildren

      Type long:

      xmlMemDisplayLast
      -

      Type size_t:

      xmlBufferCreateSize
      +

      Type size_t:

      xmlBufShrink
      +xmlBufferCreateSize
      xmlBufferCreateStatic
      +xmlDictSetLimit
      xmlMallocAtomicLoc
      xmlMallocFunc
      xmlMallocLoc
      @@ -616,6 +622,7 @@ A:link, A:visited, A:active { text-decoration: underline }

      Type unsigned long *:

      xmlSchemaValidateLengthFacet
      xmlSchemaValidateLengthFacetWhtsp
      xmlSchemaValidateListSimpleTypeFacet
      +xmlSchemaValidityLocatorFunc

      Type va_list:

      xmlStrVPrintf
      xmlTextWriterWriteVFormatAttribute
      xmlTextWriterWriteVFormatAttributeNS
      @@ -853,8 +860,10 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaSetParserStructuredErrors
      xmlSchemaSetValidErrors
      xmlSchemaSetValidStructuredErrors
      +xmlSchemaValidateSetLocator
      xmlSchemaValidateStream
      xmlSchemaValidityErrorFunc
      +xmlSchemaValidityLocatorFunc
      xmlSchemaValidityWarningFunc
      xmlSchematronSetValidStructuredErrors
      xmlSchematronValidityErrorFunc
      @@ -941,6 +950,9 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAutomataNewTransition
      xmlAutomataNewTransition2
      xmlAutomataSetFinalState
      +

      Type xmlBufPtr:

      xmlBufGetNodeContent
      +xmlBufNodeDump
      +xmlBufShrink

      Type xmlBufferAllocationScheme:

      xmlBufferSetAllocationScheme
      xmlSetBufferAllocationScheme
      xmlThrDefBufferAllocScheme
      @@ -995,6 +1007,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlStrchr
      xmlStringDecodeEntities
      xmlStringLenDecodeEntities
      +xmlTextWriterSetQuoteChar

      Type xmlChar *:

      checkNamespace
      docbParseDoc
      docbSAXParseDoc
      @@ -1085,10 +1098,12 @@ A:link, A:visited, A:active { text-decoration: underline }

      Type xmlDictPtr:

      xmlDictCreateSub
      xmlDictExists
      xmlDictFree
      +xmlDictGetUsage
      xmlDictLookup
      xmlDictOwns
      xmlDictQLookup
      xmlDictReference
      +xmlDictSetLimit
      xmlDictSize
      xmlExpNewCtxt
      xmlHashCreateDict
      @@ -1111,6 +1126,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAddID
      xmlAddRef
      xmlAttrSerializeTxtContent
      +xmlBufNodeDump
      xmlC14NDocDumpMemory
      xmlC14NDocSave
      xmlC14NDocSaveTo
      @@ -1437,6 +1453,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAddNextSibling
      xmlAddPrevSibling
      xmlAddSibling
      +xmlBufGetNodeContent
      +xmlBufNodeDump
      xmlC14NIsVisibleCallback
      xmlChildElementCount
      xmlCopyProp
      @@ -1655,6 +1673,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNodeDumpOutput
      xmlOutputBufferClose
      xmlOutputBufferFlush
      +xmlOutputBufferGetContent
      +xmlOutputBufferGetSize
      xmlOutputBufferWrite
      xmlOutputBufferWriteEscape
      xmlOutputBufferWriteString
      @@ -1950,12 +1970,15 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaValidateDoc
      xmlSchemaValidateFile
      xmlSchemaValidateOneElement
      +xmlSchemaValidateSetFilename
      +xmlSchemaValidateSetLocator
      xmlSchemaValidateStream
      xmlTextReaderSchemaValidateCtxt

      Type xmlSchemaValidityErrorFunc:

      xmlSchemaSetParserErrors
      xmlSchemaSetValidErrors

      Type xmlSchemaValidityErrorFunc *:

      xmlSchemaGetParserErrors
      xmlSchemaGetValidErrors
      +

      Type xmlSchemaValidityLocatorFunc:

      xmlSchemaValidateSetLocator

      Type xmlSchemaValidityWarningFunc:

      xmlSchemaSetParserErrors
      xmlSchemaSetValidErrors

      Type xmlSchemaValidityWarningFunc *:

      xmlSchemaGetParserErrors
      @@ -2098,6 +2121,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlTextWriterFullEndElement
      xmlTextWriterSetIndent
      xmlTextWriterSetIndentString
      +xmlTextWriterSetQuoteChar
      xmlTextWriterStartAttribute
      xmlTextWriterStartAttributeNS
      xmlTextWriterStartCDATA
      diff --git a/doc/APIsymbols.html b/doc/APIsymbols.html index 49a8737..fa9f4c8 100644 --- a/doc/APIsymbols.html +++ b/doc/APIsymbols.html @@ -61,7 +61,8 @@ A:link, A:visited, A:active { text-decoration: underline } IS_LETTER_CH
      IS_PUBIDCHAR
      IS_PUBIDCHAR_CH
      -

      Letter L:

      LIBXML_ATTR_ALLOC_SIZE
      +

      Letter L:

      LIBXML2_NEW_BUFFER
      +LIBXML_ATTR_ALLOC_SIZE
      LIBXML_ATTR_FORMAT
      LIBXML_AUTOMATA_ENABLED
      LIBXML_C14N_ENABLED
      @@ -157,6 +158,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_BUFFER_ALLOC_HYBRID
      XML_BUFFER_ALLOC_IMMUTABLE
      XML_BUFFER_ALLOC_IO
      +XML_BUF_OVERFLOW
      XML_C14N_1_0
      XML_C14N_1_1
      XML_C14N_CREATE_CTXT
      @@ -206,7 +208,6 @@ A:link, A:visited, A:active { text-decoration: underline } XML_CHAR_ENCODING_UTF16BE
      XML_CHAR_ENCODING_UTF16LE
      XML_CHAR_ENCODING_UTF8
      -XML_CHECK_
      XML_CHECK_ENTITY_TYPE
      XML_CHECK_FOUND_ATTRIBUTE
      XML_CHECK_FOUND_CDATA
      @@ -245,7 +246,6 @@ A:link, A:visited, A:active { text-decoration: underline } XML_CHECK_WRONG_NEXT
      XML_CHECK_WRONG_PARENT
      XML_CHECK_WRONG_PREV
      -XML_CHECK_X
      XML_COMMENT_NODE
      XML_COMPLETE_ATTRS
      XML_CTXT_FINISH_DTD_0
      @@ -388,6 +388,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_ERR_MIXED_NOT_FINISHED
      XML_ERR_MIXED_NOT_STARTED
      XML_ERR_NAME_REQUIRED
      +XML_ERR_NAME_TOO_LONG
      XML_ERR_NMTOKEN_REQUIRED
      XML_ERR_NONE
      XML_ERR_NOTATION_NOT_FINISHED
      @@ -439,6 +440,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_EXTERNAL_GENERAL_PARSED_ENTITY
      XML_EXTERNAL_GENERAL_UNPARSED_ENTITY
      XML_EXTERNAL_PARAMETER_ENTITY
      +XML_FROM_BUFFER
      XML_FROM_C14N
      XML_FROM_CATALOG
      XML_FROM_CHECK
      @@ -462,6 +464,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_FROM_SCHEMASV
      XML_FROM_SCHEMATRONV
      XML_FROM_TREE
      +XML_FROM_URI
      XML_FROM_VALID
      XML_FROM_WRITER
      XML_FROM_XINCLUDE
      @@ -546,7 +549,10 @@ A:link, A:visited, A:active { text-decoration: underline } XML_IO_UNKNOWN
      XML_IO_WRITE
      XML_LOCAL_NAMESPACE
      +XML_MAX_DICTIONARY_LIMIT
      +XML_MAX_LOOKUP_LIMIT
      XML_MAX_NAMELEN
      +XML_MAX_NAME_LENGTH
      XML_MAX_TEXT_LENGTH
      XML_MODULE_CLOSE
      XML_MODULE_LAZY
      @@ -586,6 +592,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_PARSER_SUBST_ENTITIES
      XML_PARSER_SYSTEM_LITERAL
      XML_PARSER_VALIDATE
      +XML_PARSE_BIG_LINES
      XML_PARSE_COMPACT
      XML_PARSE_DOM
      XML_PARSE_DTDATTR
      @@ -1420,6 +1427,7 @@ A:link, A:visited, A:active { text-decoration: underline } XPATH_ENCODING_ERROR
      XPATH_EXPRESSION_OK
      XPATH_EXPR_ERROR
      +XPATH_FORBID_VARIABLE_ERROR
      XPATH_INVALID_ARITY
      XPATH_INVALID_CHAR_ERROR
      XPATH_INVALID_CTXT
      @@ -1761,6 +1769,14 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAutomataState
      xmlAutomataStatePtr
      xmlBoolToText
      +xmlBuf
      +xmlBufContent
      +xmlBufEnd
      +xmlBufGetNodeContent
      +xmlBufNodeDump
      +xmlBufPtr
      +xmlBufShrink
      +xmlBufUse
      xmlBuffer
      xmlBufferAdd
      xmlBufferAddHead
      @@ -1934,11 +1950,13 @@ A:link, A:visited, A:active { text-decoration: underline } xmlDictCreateSub
      xmlDictExists
      xmlDictFree
      +xmlDictGetUsage
      xmlDictLookup
      xmlDictOwns
      xmlDictPtr
      xmlDictQLookup
      xmlDictReference
      +xmlDictSetLimit
      xmlDictSize
      xmlDllMain
      xmlDoValidityCheckingDefaultValue
      @@ -2414,6 +2432,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlOutputBufferCreateFilenameValue
      xmlOutputBufferCreateIO
      xmlOutputBufferFlush
      +xmlOutputBufferGetContent
      +xmlOutputBufferGetSize
      xmlOutputBufferPtr
      xmlOutputBufferWrite
      xmlOutputBufferWriteEscape
      @@ -2812,8 +2832,11 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSchemaValidateListSimpleTypeFacet
      xmlSchemaValidateOneElement
      xmlSchemaValidatePredefinedType
      +xmlSchemaValidateSetFilename
      +xmlSchemaValidateSetLocator
      xmlSchemaValidateStream
      xmlSchemaValidityErrorFunc
      +xmlSchemaValidityLocatorFunc
      xmlSchemaValidityWarningFunc
      xmlSchemaValueAppend
      xmlSchemaValueGetAsBoolean
      @@ -3021,6 +3044,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlTextWriterPtr
      xmlTextWriterSetIndent
      xmlTextWriterSetIndentString
      +xmlTextWriterSetQuoteChar
      xmlTextWriterStartAttribute
      xmlTextWriterStartAttributeNS
      xmlTextWriterStartCDATA
      diff --git a/doc/Makefile.am b/doc/Makefile.am index dd39f69..08c0b45 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,5 +1,5 @@ ## Process this file with automake to produce Makefile.in -SUBDIRS=devhelp examples +SUBDIRS = . devhelp examples # The top-level SGML file. DOC_MAIN_XML_FILE=gnome-xml.xml @@ -16,21 +16,229 @@ PAGES= architecture.html bugs.html contribs.html docs.html DOM.html \ tree.html xmldtd.html XMLinfo.html XSLT.html APIPAGES=APIconstructors.html APIfiles.html APIfunctions.html \ APIsymbols.html APIchunk0.html -EXTRA_DIST=xmlcatalog_man.xml tutorial/*.html tutorial/*.c tutorial/*.pdf \ - tutorial/images/*.png tutorial/images/callouts/*.png \ - API*.html *.1 *.xsl *.html *.gif w3c.png html/*.html \ - html/*.png libxml2-api.xml index.py search.php \ - apibuild.py libxml2.xsa xmllint.xml xmlcatalog_man.xml \ - README.docs symbols.xml +if REBUILD_DOCS +EXTRA_DIST_wc = xmlcatalog_man.xml $(wildcard tutorial/*.html) \ + $(wildcard tutorial/*.c) $(wildcard tutorial/*.pdf) \ + $(wildcard tutorial/images/*.png) \ + $(wildcard tutorial/images/callouts/*.png) $(wildcard API*.html) \ + $(wildcard *.1) $(wildcard *.xsl) $(wildcard *.html) \ + $(wildcard *.gif) w3c.png $(wildcard html/*.html) \ + $(wildcard html/*.png) libxml2-api.xml index.py search.php \ + apibuild.py libxml2.xsa xmllint.xml xmlcatalog_man.xml \ + README.docs symbols.xml +endif + +# Expanded form of EXTRA_DIST_wc +# +EXTRA_DIST = \ + APIchunk0.html \ + APIchunk1.html \ + APIchunk2.html \ + APIchunk3.html \ + APIchunk4.html \ + APIchunk5.html \ + APIchunk6.html \ + APIchunk7.html \ + APIchunk8.html \ + APIchunk9.html \ + APIchunk10.html \ + APIchunk11.html \ + APIchunk12.html \ + APIchunk13.html \ + APIchunk14.html \ + APIchunk15.html \ + APIchunk16.html \ + APIchunk17.html \ + APIchunk18.html \ + APIchunk19.html \ + APIchunk20.html \ + APIchunk21.html \ + APIchunk22.html \ + APIchunk23.html \ + APIchunk24.html \ + APIchunk25.html \ + APIchunk26.html \ + APIchunk27.html \ + APIchunk28.html \ + APIchunk29.html \ + APIconstructors.html \ + APIfiles.html \ + APIfunctions.html \ + APIsymbols.html \ + ChangeLog.xsl \ + DOM.gif \ + DOM.html \ + FAQ.html \ + Libxml2-Logo-180x168.gif \ + Libxml2-Logo-90x34.gif \ + README.docs \ + XMLinfo.html \ + XSLT.html \ + api.xsl \ + apibuild.py \ + architecture.html \ + bugs.html \ + catalog.gif \ + catalog.html \ + checkapisym.xsl \ + contribs.html \ + docs.html \ + downloads.html \ + elfgcchack.xsl \ + encoding.html \ + entities.html \ + example.html \ + guidelines.html \ + help.html \ + html/book1.html \ + html/home.png \ + html/index.html \ + html/left.png \ + html/libxml-DOCBparser.html \ + html/libxml-HTMLparser.html \ + html/libxml-HTMLtree.html \ + html/libxml-SAX.html \ + html/libxml-SAX2.html \ + html/libxml-c14n.html \ + html/libxml-catalog.html \ + html/libxml-chvalid.html \ + html/libxml-debugXML.html \ + html/libxml-dict.html \ + html/libxml-encoding.html \ + html/libxml-entities.html \ + html/libxml-globals.html \ + html/libxml-hash.html \ + html/libxml-lib.html \ + html/libxml-list.html \ + html/libxml-nanoftp.html \ + html/libxml-nanohttp.html \ + html/libxml-parser.html \ + html/libxml-parserInternals.html \ + html/libxml-pattern.html \ + html/libxml-relaxng.html \ + html/libxml-schemasInternals.html \ + html/libxml-schematron.html \ + html/libxml-threads.html \ + html/libxml-tree.html \ + html/libxml-uri.html \ + html/libxml-valid.html \ + html/libxml-xinclude.html \ + html/libxml-xlink.html \ + html/libxml-xmlIO.html \ + html/libxml-xmlautomata.html \ + html/libxml-xmlerror.html \ + html/libxml-xmlexports.html \ + html/libxml-xmlmemory.html \ + html/libxml-xmlmodule.html \ + html/libxml-xmlreader.html \ + html/libxml-xmlregexp.html \ + html/libxml-xmlsave.html \ + html/libxml-xmlschemas.html \ + html/libxml-xmlschemastypes.html \ + html/libxml-xmlstring.html \ + html/libxml-xmlunicode.html \ + html/libxml-xmlversion.html \ + html/libxml-xmlwriter.html \ + html/libxml-xpath.html \ + html/libxml-xpathInternals.html \ + html/libxml-xpointer.html \ + html/right.png \ + html/up.png \ + index.html \ + index.py \ + interface.html \ + intro.html \ + library.html \ + libxml.gif \ + libxml2-api.xml \ + libxml2.xsa \ + namespaces.html \ + newapi.xsl \ + news.html \ + news.xsl \ + python.html \ + redhat.gif \ + search.php \ + searches.html \ + searches.xsl \ + site.xsl \ + smallfootonly.gif \ + structure.gif \ + symbols.xml \ + syms.xsl \ + threads.html \ + tree.html \ + tutorial/apa.html \ + tutorial/apb.html \ + tutorial/apc.html \ + tutorial/apd.html \ + tutorial/ape.html \ + tutorial/apf.html \ + tutorial/apg.html \ + tutorial/aph.html \ + tutorial/api.html \ + tutorial/ar01s02.html \ + tutorial/ar01s03.html \ + tutorial/ar01s04.html \ + tutorial/ar01s05.html \ + tutorial/ar01s06.html \ + tutorial/ar01s07.html \ + tutorial/ar01s08.html \ + tutorial/ar01s09.html \ + tutorial/images/blank.png \ + tutorial/images/callouts/1.png \ + tutorial/images/callouts/10.png \ + tutorial/images/callouts/2.png \ + tutorial/images/callouts/3.png \ + tutorial/images/callouts/4.png \ + tutorial/images/callouts/5.png \ + tutorial/images/callouts/6.png \ + tutorial/images/callouts/7.png \ + tutorial/images/callouts/8.png \ + tutorial/images/callouts/9.png \ + tutorial/images/caution.png \ + tutorial/images/draft.png \ + tutorial/images/home.png \ + tutorial/images/important.png \ + tutorial/images/next.png \ + tutorial/images/note.png \ + tutorial/images/prev.png \ + tutorial/images/tip.png \ + tutorial/images/toc-blank.png \ + tutorial/images/toc-minus.png \ + tutorial/images/toc-plus.png \ + tutorial/images/up.png \ + tutorial/images/warning.png \ + tutorial/includeaddattribute.c \ + tutorial/includeaddkeyword.c \ + tutorial/includeconvert.c \ + tutorial/includegetattribute.c \ + tutorial/includekeyword.c \ + tutorial/includexpath.c \ + tutorial/index.html \ + tutorial/ix01.html \ + tutorial/xmltutorial.pdf \ + upgrade.html \ + w3c.png \ + wiki.xsl \ + xml.html \ + xmlcatalog.1 \ + xmlcatalog_man.html \ + xmlcatalog_man.xml \ + xmldtd.html \ + xmlio.html \ + xmllint.1 \ + xmllint.html \ + xmllint.xml \ + xmlmem.html \ + xmlreader.html \ + xsa.xsl man_MANS = xmllint.1 xmlcatalog.1 if REBUILD_DOCS -all: web $(top_builddir)/NEWS libxml2.xsa $(man_MANS) -else -all: -endif +docs: web $(top_builddir)/NEWS libxml2.xsa $(man_MANS) api: libxml2-api.xml libxml2-refs.xml $(APIPAGES) $(srcdir)/html/index.html $(WIN32_DIR)/libxml2.def.src ../elfgcchack.h $(srcdir)/site.xsl @@ -48,25 +256,25 @@ web: $(PAGES) $(PAGES): xml.html $(srcdir)/site.xsl -@(if [ -x $(XSLTPROC) ] ; then \ echo "Rebuilding the HTML Web pages from xml.html" ; \ - $(XSLTPROC) --nonet --html $(top_srcdir)/doc/site.xsl $(top_srcdir)/doc/xml.html > index.html ; fi ); + $(XSLTPROC) --nonet --html --path $(srcdir) $(srcdir)/site.xsl $(srcdir)/xml.html > index.html ; fi ); -@(if [ -x $(XMLLINT) ] ; then \ echo "Validating the HTML Web pages" ; \ $(XMLLINT) --nonet --valid --noout $(PAGES) ; fi ); -$(top_builddir)/NEWS: $(top_srcdir)/doc/news.xsl $(top_srcdir)/doc/news.html +$(top_builddir)/NEWS: $(srcdir)/news.xsl $(srcdir)/news.html -@(if [ -x $(XSLTPROC) ] ; then \ - $(XSLTPROC) --nonet $(top_srcdir)/doc/news.xsl $(top_srcdir)/doc/news.html > $(top_builddir)/NEWS ; fi ); + $(XSLTPROC) --nonet $(srcdir)/news.xsl $(srcdir)/news.html > $(top_builddir)/NEWS ; fi ); -libxml2.xsa: $(top_srcdir)/doc/xsa.xsl $(top_srcdir)/doc/news.html +libxml2.xsa: $(srcdir)/xsa.xsl $(srcdir)/news.html -@(if [ -x $(XSLTPROC) ] ; then \ echo "Rebuilding the NEWS file" ; \ - $(XSLTPROC) --nonet $(top_srcdir)/doc/xsa.xsl $(top_srcdir)/doc/news.html > libxml2.xsa ; fi ); + $(XSLTPROC) --nonet $(srcdir)/xsa.xsl $(srcdir)/news.html > libxml2.xsa ; fi ); -$(APIPAGES): libxml2-api.xml libxml2-refs.xml $(top_srcdir)/doc/site.xsl $(top_srcdir)/doc/api.xsl +$(APIPAGES): libxml2-api.xml libxml2-refs.xml $(srcdir)/site.xsl $(srcdir)/api.xsl -@(if [ -x $(XSLTPROC) ] ; then \ echo "Rebuilding the HTML API pages from libxml2-refs.xml" ; \ - $(XSLTPROC) --nonet --html $(top_srcdir)/doc/api.xsl \ - $(top_srcdir)/doc/xml.html ; fi ); + $(XSLTPROC) --nonet --html $(srcdir)/api.xsl \ + $(srcdir)/xml.html ; fi ); -@(if [ -x $(XMLLINT) ] ; then \ echo "Validating the HTML API pages" ; \ $(XMLLINT) --nonet --valid --noout API*.html ; fi ); @@ -74,7 +282,7 @@ $(APIPAGES): libxml2-api.xml libxml2-refs.xml $(top_srcdir)/doc/site.xsl $(top_s $(srcdir)/html/index.html: libxml2-api.xml $(srcdir)/newapi.xsl -@(if [ -x $(XSLTPROC) ] ; then \ echo "Rebuilding the HTML pages from the XML API" ; \ - $(XSLTPROC) --nonet $(srcdir)/newapi.xsl libxml2-api.xml ; fi ) + $(XSLTPROC) --nonet $(srcdir)/newapi.xsl $(srcdir)/libxml2-api.xml ; fi ) -@(if [ -x $(XMLLINT) ] ; then \ echo "Validating the resulting XHTML pages" ; \ $(XMLLINT) --nonet --valid --noout html/*.html ; fi ); @@ -82,17 +290,23 @@ $(srcdir)/html/index.html: libxml2-api.xml $(srcdir)/newapi.xsl wiki: libxml2-api.xml $(srcdir)/wiki.xsl -@(if [ -x $(XSLTPROC) ] ; then \ echo "Rebuilding the wiki HTML pages from the XML API" ; \ - $(XSLTPROC) --nonet $(srcdir)/wiki.xsl libxml2-api.xml; fi ) + $(XSLTPROC) --nonet $(srcdir)/wiki.xsl $(srcdir)/libxml2-api.xml; fi ) $(WIN32_DIR)/libxml2.def.src: libxml2-api.xml -@(if [ -x $(XSLTPROC) ] ; then \ $(XSLTPROC) -o $(WIN32_DIR)/libxml2.def.src \ --nonet $(WIN32_DIR)/defgen.xsl libxml2-api.xml ; fi ) -libxml2-api.xml libxml2-refs.xml ../libxml2.syms: apibuild.py symbols.xml syms.xsl checkapisym.xsl ../include/libxml/*.h ../*.c - -(./apibuild.py) - ($(XSLTPROC) checkapisym.xsl libxml2-api.xml) - ($(XSLTPROC) -o ../libxml2.syms syms.xsl symbols.xml) +source_file_deps = \ + $(filter-out %/xmlversion.h, $(wildcard $(top_srcdir)/include/libxml/*.h)) \ + $(top_srcdir)/include/libxml/xmlversion.h.in \ + $(wildcard $(top_srcdir)/*.c) + +libxml2-api.xml libxml2-refs.xml ../libxml2.syms: apibuild.py symbols.xml syms.xsl checkapisym.xsl $(source_file_deps) + test -f $(top_srcdir)/include/libxml/xmlversion.h + (cd $(srcdir) && ./apibuild.py) + ($(XSLTPROC) $(srcdir)/checkapisym.xsl $(srcdir)/libxml2-api.xml) + ($(XSLTPROC) -o ../libxml2.syms $(srcdir)/syms.xsl $(srcdir)/symbols.xml) -@(cd .. ; $(MAKE) rebuild_testapi) @@ -102,28 +316,35 @@ xmllint.1: xmllint.xml xmlcatalog.1: xmlcatalog_man.xml -@($(XSLTPROC) --nonet xmlcatalog_man.xml) +check-extra-dist: + for f in $(EXTRA_DIST_wc) ; do echo $$f; done | sort -u >tmp.EXTRA_DIST_wc + for f in $(EXTRA_DIST) ; do echo $$f; done | sort >tmp.EXTRA_DIST + diff -u tmp.EXTRA_DIST_wc tmp.EXTRA_DIST + rm -f tmp.EXTRA_DIST_wc tmp.EXTRA_DIST +endif + clean-local: rm -f *~ *.bak *.hierarchy *.signals *-unused.txt maintainer-clean-local: clean-local rm -rf libxml-decl-list.txt libxml-decl.txt -rebuild: api all +rebuild: api docs install-data-local: - @MKDIR_P@ $(DESTDIR)$(HTML_DIR) - -@INSTALL@ -m 0644 $(srcdir)/xml.html $(srcdir)/encoding.html $(srcdir)/FAQ.html $(srcdir)/structure.gif $(srcdir)/DOM.gif $(srcdir)/smallfootonly.gif $(srcdir)/redhat.gif $(srcdir)/libxml.gif $(srcdir)/w3c.png $(srcdir)/Libxml2-Logo-180x168.gif $(srcdir)/Libxml2-Logo-90x34.gif $(DESTDIR)$(HTML_DIR) - @MKDIR_P@ $(DESTDIR)$(HTML_DIR)/html - -@INSTALL@ -m 0644 $(srcdir)/html/*.html $(DESTDIR)$(HTML_DIR)/html - -@INSTALL@ -m 0644 $(srcdir)/html/*.png $(DESTDIR)$(HTML_DIR)/html - @MKDIR_P@ $(DESTDIR)$(HTML_DIR)/tutorial - -@INSTALL@ -m 0644 $(srcdir)/tutorial/*.* \ + $(MKDIR_P) $(DESTDIR)$(HTML_DIR) + -$(INSTALL) -m 0644 $(srcdir)/xml.html $(srcdir)/encoding.html $(srcdir)/FAQ.html $(srcdir)/structure.gif $(srcdir)/DOM.gif $(srcdir)/smallfootonly.gif $(srcdir)/redhat.gif $(srcdir)/libxml.gif $(srcdir)/w3c.png $(srcdir)/Libxml2-Logo-180x168.gif $(srcdir)/Libxml2-Logo-90x34.gif $(DESTDIR)$(HTML_DIR) + $(MKDIR_P) $(DESTDIR)$(HTML_DIR)/html + -$(INSTALL) -m 0644 $(srcdir)/html/*.html $(DESTDIR)$(HTML_DIR)/html + -$(INSTALL) -m 0644 $(srcdir)/html/*.png $(DESTDIR)$(HTML_DIR)/html + $(MKDIR_P) $(DESTDIR)$(HTML_DIR)/tutorial + -$(INSTALL) -m 0644 $(srcdir)/tutorial/*.* \ $(DESTDIR)$(HTML_DIR)/tutorial - @MKDIR_P@ $(DESTDIR)$(HTML_DIR)/tutorial/images - -@INSTALL@ -m 0644 $(srcdir)/tutorial/images/*.* \ + $(MKDIR_P) $(DESTDIR)$(HTML_DIR)/tutorial/images + -$(INSTALL) -m 0644 $(srcdir)/tutorial/images/*.* \ $(DESTDIR)$(HTML_DIR)/tutorial/images - @MKDIR_P@ $(DESTDIR)$(HTML_DIR)/tutorial/images/callouts - -@INSTALL@ -m 0644 $(srcdir)/tutorial/images/callouts/*.* \ + $(MKDIR_P) $(DESTDIR)$(HTML_DIR)/tutorial/images/callouts + -$(INSTALL) -m 0644 $(srcdir)/tutorial/images/callouts/*.* \ $(DESTDIR)$(HTML_DIR)/tutorial/images/callouts -.PHONY : html xml templates scan +.PHONY: docs api web wiki rebuild diff --git a/doc/Makefile.in b/doc/Makefile.in index ebeca2a..92e08cd 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -46,11 +46,11 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -82,6 +82,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" NROFF = nroff @@ -124,7 +130,6 @@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -161,6 +166,7 @@ HTML_DIR = @HTML_DIR@ HTML_OBJ = @HTML_OBJ@ HTTP_OBJ = @HTTP_OBJ@ ICONV_LIBS = @ICONV_LIBS@ +ICU_LIBS = @ICU_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -241,7 +247,6 @@ TEST_VTIME = @TEST_VTIME@ TEST_XINCLUDE = @TEST_XINCLUDE@ TEST_XPATH = @TEST_XPATH@ TEST_XPTR = @TEST_XPTR@ -THREADS_W32 = @THREADS_W32@ THREAD_CFLAGS = @THREAD_CFLAGS@ THREAD_LIBS = @THREAD_LIBS@ VERSION = @VERSION@ @@ -347,7 +352,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = devhelp examples +SUBDIRS = . devhelp examples # The top-level SGML file. DOC_MAIN_XML_FILE = gnome-xml.xml @@ -365,14 +370,229 @@ PAGES = architecture.html bugs.html contribs.html docs.html DOM.html \ APIPAGES = APIconstructors.html APIfiles.html APIfunctions.html \ APIsymbols.html APIchunk0.html -EXTRA_DIST = xmlcatalog_man.xml tutorial/*.html tutorial/*.c tutorial/*.pdf \ - tutorial/images/*.png tutorial/images/callouts/*.png \ - API*.html *.1 *.xsl *.html *.gif w3c.png html/*.html \ - html/*.png libxml2-api.xml index.py search.php \ - apibuild.py libxml2.xsa xmllint.xml xmlcatalog_man.xml \ - README.docs symbols.xml +@REBUILD_DOCS_TRUE@EXTRA_DIST_wc = xmlcatalog_man.xml $(wildcard tutorial/*.html) \ +@REBUILD_DOCS_TRUE@ $(wildcard tutorial/*.c) $(wildcard tutorial/*.pdf) \ +@REBUILD_DOCS_TRUE@ $(wildcard tutorial/images/*.png) \ +@REBUILD_DOCS_TRUE@ $(wildcard tutorial/images/callouts/*.png) $(wildcard API*.html) \ +@REBUILD_DOCS_TRUE@ $(wildcard *.1) $(wildcard *.xsl) $(wildcard *.html) \ +@REBUILD_DOCS_TRUE@ $(wildcard *.gif) w3c.png $(wildcard html/*.html) \ +@REBUILD_DOCS_TRUE@ $(wildcard html/*.png) libxml2-api.xml index.py search.php \ +@REBUILD_DOCS_TRUE@ apibuild.py libxml2.xsa xmllint.xml xmlcatalog_man.xml \ +@REBUILD_DOCS_TRUE@ README.docs symbols.xml + + +# Expanded form of EXTRA_DIST_wc +# +EXTRA_DIST = \ + APIchunk0.html \ + APIchunk1.html \ + APIchunk2.html \ + APIchunk3.html \ + APIchunk4.html \ + APIchunk5.html \ + APIchunk6.html \ + APIchunk7.html \ + APIchunk8.html \ + APIchunk9.html \ + APIchunk10.html \ + APIchunk11.html \ + APIchunk12.html \ + APIchunk13.html \ + APIchunk14.html \ + APIchunk15.html \ + APIchunk16.html \ + APIchunk17.html \ + APIchunk18.html \ + APIchunk19.html \ + APIchunk20.html \ + APIchunk21.html \ + APIchunk22.html \ + APIchunk23.html \ + APIchunk24.html \ + APIchunk25.html \ + APIchunk26.html \ + APIchunk27.html \ + APIchunk28.html \ + APIchunk29.html \ + APIconstructors.html \ + APIfiles.html \ + APIfunctions.html \ + APIsymbols.html \ + ChangeLog.xsl \ + DOM.gif \ + DOM.html \ + FAQ.html \ + Libxml2-Logo-180x168.gif \ + Libxml2-Logo-90x34.gif \ + README.docs \ + XMLinfo.html \ + XSLT.html \ + api.xsl \ + apibuild.py \ + architecture.html \ + bugs.html \ + catalog.gif \ + catalog.html \ + checkapisym.xsl \ + contribs.html \ + docs.html \ + downloads.html \ + elfgcchack.xsl \ + encoding.html \ + entities.html \ + example.html \ + guidelines.html \ + help.html \ + html/book1.html \ + html/home.png \ + html/index.html \ + html/left.png \ + html/libxml-DOCBparser.html \ + html/libxml-HTMLparser.html \ + html/libxml-HTMLtree.html \ + html/libxml-SAX.html \ + html/libxml-SAX2.html \ + html/libxml-c14n.html \ + html/libxml-catalog.html \ + html/libxml-chvalid.html \ + html/libxml-debugXML.html \ + html/libxml-dict.html \ + html/libxml-encoding.html \ + html/libxml-entities.html \ + html/libxml-globals.html \ + html/libxml-hash.html \ + html/libxml-lib.html \ + html/libxml-list.html \ + html/libxml-nanoftp.html \ + html/libxml-nanohttp.html \ + html/libxml-parser.html \ + html/libxml-parserInternals.html \ + html/libxml-pattern.html \ + html/libxml-relaxng.html \ + html/libxml-schemasInternals.html \ + html/libxml-schematron.html \ + html/libxml-threads.html \ + html/libxml-tree.html \ + html/libxml-uri.html \ + html/libxml-valid.html \ + html/libxml-xinclude.html \ + html/libxml-xlink.html \ + html/libxml-xmlIO.html \ + html/libxml-xmlautomata.html \ + html/libxml-xmlerror.html \ + html/libxml-xmlexports.html \ + html/libxml-xmlmemory.html \ + html/libxml-xmlmodule.html \ + html/libxml-xmlreader.html \ + html/libxml-xmlregexp.html \ + html/libxml-xmlsave.html \ + html/libxml-xmlschemas.html \ + html/libxml-xmlschemastypes.html \ + html/libxml-xmlstring.html \ + html/libxml-xmlunicode.html \ + html/libxml-xmlversion.html \ + html/libxml-xmlwriter.html \ + html/libxml-xpath.html \ + html/libxml-xpathInternals.html \ + html/libxml-xpointer.html \ + html/right.png \ + html/up.png \ + index.html \ + index.py \ + interface.html \ + intro.html \ + library.html \ + libxml.gif \ + libxml2-api.xml \ + libxml2.xsa \ + namespaces.html \ + newapi.xsl \ + news.html \ + news.xsl \ + python.html \ + redhat.gif \ + search.php \ + searches.html \ + searches.xsl \ + site.xsl \ + smallfootonly.gif \ + structure.gif \ + symbols.xml \ + syms.xsl \ + threads.html \ + tree.html \ + tutorial/apa.html \ + tutorial/apb.html \ + tutorial/apc.html \ + tutorial/apd.html \ + tutorial/ape.html \ + tutorial/apf.html \ + tutorial/apg.html \ + tutorial/aph.html \ + tutorial/api.html \ + tutorial/ar01s02.html \ + tutorial/ar01s03.html \ + tutorial/ar01s04.html \ + tutorial/ar01s05.html \ + tutorial/ar01s06.html \ + tutorial/ar01s07.html \ + tutorial/ar01s08.html \ + tutorial/ar01s09.html \ + tutorial/images/blank.png \ + tutorial/images/callouts/1.png \ + tutorial/images/callouts/10.png \ + tutorial/images/callouts/2.png \ + tutorial/images/callouts/3.png \ + tutorial/images/callouts/4.png \ + tutorial/images/callouts/5.png \ + tutorial/images/callouts/6.png \ + tutorial/images/callouts/7.png \ + tutorial/images/callouts/8.png \ + tutorial/images/callouts/9.png \ + tutorial/images/caution.png \ + tutorial/images/draft.png \ + tutorial/images/home.png \ + tutorial/images/important.png \ + tutorial/images/next.png \ + tutorial/images/note.png \ + tutorial/images/prev.png \ + tutorial/images/tip.png \ + tutorial/images/toc-blank.png \ + tutorial/images/toc-minus.png \ + tutorial/images/toc-plus.png \ + tutorial/images/up.png \ + tutorial/images/warning.png \ + tutorial/includeaddattribute.c \ + tutorial/includeaddkeyword.c \ + tutorial/includeconvert.c \ + tutorial/includegetattribute.c \ + tutorial/includekeyword.c \ + tutorial/includexpath.c \ + tutorial/index.html \ + tutorial/ix01.html \ + tutorial/xmltutorial.pdf \ + upgrade.html \ + w3c.png \ + wiki.xsl \ + xml.html \ + xmlcatalog.1 \ + xmlcatalog_man.html \ + xmlcatalog_man.xml \ + xmldtd.html \ + xmlio.html \ + xmllint.1 \ + xmllint.html \ + xmllint.xml \ + xmlmem.html \ + xmlreader.html \ + xsa.xsl man_MANS = xmllint.1 xmlcatalog.1 +@REBUILD_DOCS_TRUE@source_file_deps = \ +@REBUILD_DOCS_TRUE@ $(filter-out %/xmlversion.h, $(wildcard $(top_srcdir)/include/libxml/*.h)) \ +@REBUILD_DOCS_TRUE@ $(top_srcdir)/include/libxml/xmlversion.h.in \ +@REBUILD_DOCS_TRUE@ $(wildcard $(top_srcdir)/*.c) + all: all-recursive .SUFFIXES: @@ -447,9 +667,7 @@ uninstall-man1: sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - test -z "$$files" || { \ - echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(man1dir)" && rm -f $$files; } + dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. @@ -675,10 +893,15 @@ install-am: all-am installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -778,77 +1001,83 @@ uninstall-man: uninstall-man1 uninstall uninstall-am uninstall-man uninstall-man1 -@REBUILD_DOCS_TRUE@all: web $(top_builddir)/NEWS libxml2.xsa $(man_MANS) -@REBUILD_DOCS_FALSE@all: - -api: libxml2-api.xml libxml2-refs.xml $(APIPAGES) $(srcdir)/html/index.html $(WIN32_DIR)/libxml2.def.src ../elfgcchack.h $(srcdir)/site.xsl - -web: $(PAGES) - -../elfgcchack.h: $(srcdir)/elfgcchack.xsl $(srcdir)/libxml2-api.xml - -@(if [ -x $(XSLTPROC) ] ; then \ - echo "Rebuilding the elfgcchack.h header" ; \ - $(XSLTPROC) --nonet $(srcdir)/elfgcchack.xsl $(srcdir)/libxml2-api.xml > elfgcchack.h ; \ - if [ "`diff -q elfgcchack.h ../elfgcchack.h`" ] ; then \ - echo "updating ../elfgcchack.h"; \ - cp elfgcchack.h ../elfgcchack.h; \ - fi ; rm -f elfgcchack.h ; fi ); - -$(PAGES): xml.html $(srcdir)/site.xsl - -@(if [ -x $(XSLTPROC) ] ; then \ - echo "Rebuilding the HTML Web pages from xml.html" ; \ - $(XSLTPROC) --nonet --html $(top_srcdir)/doc/site.xsl $(top_srcdir)/doc/xml.html > index.html ; fi ); - -@(if [ -x $(XMLLINT) ] ; then \ - echo "Validating the HTML Web pages" ; \ - $(XMLLINT) --nonet --valid --noout $(PAGES) ; fi ); - -$(top_builddir)/NEWS: $(top_srcdir)/doc/news.xsl $(top_srcdir)/doc/news.html - -@(if [ -x $(XSLTPROC) ] ; then \ - $(XSLTPROC) --nonet $(top_srcdir)/doc/news.xsl $(top_srcdir)/doc/news.html > $(top_builddir)/NEWS ; fi ); - -libxml2.xsa: $(top_srcdir)/doc/xsa.xsl $(top_srcdir)/doc/news.html - -@(if [ -x $(XSLTPROC) ] ; then \ - echo "Rebuilding the NEWS file" ; \ - $(XSLTPROC) --nonet $(top_srcdir)/doc/xsa.xsl $(top_srcdir)/doc/news.html > libxml2.xsa ; fi ); - -$(APIPAGES): libxml2-api.xml libxml2-refs.xml $(top_srcdir)/doc/site.xsl $(top_srcdir)/doc/api.xsl - -@(if [ -x $(XSLTPROC) ] ; then \ - echo "Rebuilding the HTML API pages from libxml2-refs.xml" ; \ - $(XSLTPROC) --nonet --html $(top_srcdir)/doc/api.xsl \ - $(top_srcdir)/doc/xml.html ; fi ); - -@(if [ -x $(XMLLINT) ] ; then \ - echo "Validating the HTML API pages" ; \ - $(XMLLINT) --nonet --valid --noout API*.html ; fi ); - -$(srcdir)/html/index.html: libxml2-api.xml $(srcdir)/newapi.xsl - -@(if [ -x $(XSLTPROC) ] ; then \ - echo "Rebuilding the HTML pages from the XML API" ; \ - $(XSLTPROC) --nonet $(srcdir)/newapi.xsl libxml2-api.xml ; fi ) - -@(if [ -x $(XMLLINT) ] ; then \ - echo "Validating the resulting XHTML pages" ; \ - $(XMLLINT) --nonet --valid --noout html/*.html ; fi ); - -wiki: libxml2-api.xml $(srcdir)/wiki.xsl - -@(if [ -x $(XSLTPROC) ] ; then \ - echo "Rebuilding the wiki HTML pages from the XML API" ; \ - $(XSLTPROC) --nonet $(srcdir)/wiki.xsl libxml2-api.xml; fi ) - -$(WIN32_DIR)/libxml2.def.src: libxml2-api.xml - -@(if [ -x $(XSLTPROC) ] ; then \ - $(XSLTPROC) -o $(WIN32_DIR)/libxml2.def.src \ - --nonet $(WIN32_DIR)/defgen.xsl libxml2-api.xml ; fi ) - -libxml2-api.xml libxml2-refs.xml ../libxml2.syms: apibuild.py symbols.xml syms.xsl checkapisym.xsl ../include/libxml/*.h ../*.c - -(./apibuild.py) - ($(XSLTPROC) checkapisym.xsl libxml2-api.xml) - ($(XSLTPROC) -o ../libxml2.syms syms.xsl symbols.xml) - -@(cd .. ; $(MAKE) rebuild_testapi) - -xmllint.1: xmllint.xml - -@($(XSLTPROC) --nonet xmllint.xml) - -xmlcatalog.1: xmlcatalog_man.xml - -@($(XSLTPROC) --nonet xmlcatalog_man.xml) +@REBUILD_DOCS_TRUE@docs: web $(top_builddir)/NEWS libxml2.xsa $(man_MANS) + +@REBUILD_DOCS_TRUE@api: libxml2-api.xml libxml2-refs.xml $(APIPAGES) $(srcdir)/html/index.html $(WIN32_DIR)/libxml2.def.src ../elfgcchack.h $(srcdir)/site.xsl + +@REBUILD_DOCS_TRUE@web: $(PAGES) + +@REBUILD_DOCS_TRUE@../elfgcchack.h: $(srcdir)/elfgcchack.xsl $(srcdir)/libxml2-api.xml +@REBUILD_DOCS_TRUE@ -@(if [ -x $(XSLTPROC) ] ; then \ +@REBUILD_DOCS_TRUE@ echo "Rebuilding the elfgcchack.h header" ; \ +@REBUILD_DOCS_TRUE@ $(XSLTPROC) --nonet $(srcdir)/elfgcchack.xsl $(srcdir)/libxml2-api.xml > elfgcchack.h ; \ +@REBUILD_DOCS_TRUE@ if [ "`diff -q elfgcchack.h ../elfgcchack.h`" ] ; then \ +@REBUILD_DOCS_TRUE@ echo "updating ../elfgcchack.h"; \ +@REBUILD_DOCS_TRUE@ cp elfgcchack.h ../elfgcchack.h; \ +@REBUILD_DOCS_TRUE@ fi ; rm -f elfgcchack.h ; fi ); + +@REBUILD_DOCS_TRUE@$(PAGES): xml.html $(srcdir)/site.xsl +@REBUILD_DOCS_TRUE@ -@(if [ -x $(XSLTPROC) ] ; then \ +@REBUILD_DOCS_TRUE@ echo "Rebuilding the HTML Web pages from xml.html" ; \ +@REBUILD_DOCS_TRUE@ $(XSLTPROC) --nonet --html --path $(srcdir) $(srcdir)/site.xsl $(srcdir)/xml.html > index.html ; fi ); +@REBUILD_DOCS_TRUE@ -@(if [ -x $(XMLLINT) ] ; then \ +@REBUILD_DOCS_TRUE@ echo "Validating the HTML Web pages" ; \ +@REBUILD_DOCS_TRUE@ $(XMLLINT) --nonet --valid --noout $(PAGES) ; fi ); + +@REBUILD_DOCS_TRUE@$(top_builddir)/NEWS: $(srcdir)/news.xsl $(srcdir)/news.html +@REBUILD_DOCS_TRUE@ -@(if [ -x $(XSLTPROC) ] ; then \ +@REBUILD_DOCS_TRUE@ $(XSLTPROC) --nonet $(srcdir)/news.xsl $(srcdir)/news.html > $(top_builddir)/NEWS ; fi ); + +@REBUILD_DOCS_TRUE@libxml2.xsa: $(srcdir)/xsa.xsl $(srcdir)/news.html +@REBUILD_DOCS_TRUE@ -@(if [ -x $(XSLTPROC) ] ; then \ +@REBUILD_DOCS_TRUE@ echo "Rebuilding the NEWS file" ; \ +@REBUILD_DOCS_TRUE@ $(XSLTPROC) --nonet $(srcdir)/xsa.xsl $(srcdir)/news.html > libxml2.xsa ; fi ); + +@REBUILD_DOCS_TRUE@$(APIPAGES): libxml2-api.xml libxml2-refs.xml $(srcdir)/site.xsl $(srcdir)/api.xsl +@REBUILD_DOCS_TRUE@ -@(if [ -x $(XSLTPROC) ] ; then \ +@REBUILD_DOCS_TRUE@ echo "Rebuilding the HTML API pages from libxml2-refs.xml" ; \ +@REBUILD_DOCS_TRUE@ $(XSLTPROC) --nonet --html $(srcdir)/api.xsl \ +@REBUILD_DOCS_TRUE@ $(srcdir)/xml.html ; fi ); +@REBUILD_DOCS_TRUE@ -@(if [ -x $(XMLLINT) ] ; then \ +@REBUILD_DOCS_TRUE@ echo "Validating the HTML API pages" ; \ +@REBUILD_DOCS_TRUE@ $(XMLLINT) --nonet --valid --noout API*.html ; fi ); + +@REBUILD_DOCS_TRUE@$(srcdir)/html/index.html: libxml2-api.xml $(srcdir)/newapi.xsl +@REBUILD_DOCS_TRUE@ -@(if [ -x $(XSLTPROC) ] ; then \ +@REBUILD_DOCS_TRUE@ echo "Rebuilding the HTML pages from the XML API" ; \ +@REBUILD_DOCS_TRUE@ $(XSLTPROC) --nonet $(srcdir)/newapi.xsl $(srcdir)/libxml2-api.xml ; fi ) +@REBUILD_DOCS_TRUE@ -@(if [ -x $(XMLLINT) ] ; then \ +@REBUILD_DOCS_TRUE@ echo "Validating the resulting XHTML pages" ; \ +@REBUILD_DOCS_TRUE@ $(XMLLINT) --nonet --valid --noout html/*.html ; fi ); + +@REBUILD_DOCS_TRUE@wiki: libxml2-api.xml $(srcdir)/wiki.xsl +@REBUILD_DOCS_TRUE@ -@(if [ -x $(XSLTPROC) ] ; then \ +@REBUILD_DOCS_TRUE@ echo "Rebuilding the wiki HTML pages from the XML API" ; \ +@REBUILD_DOCS_TRUE@ $(XSLTPROC) --nonet $(srcdir)/wiki.xsl $(srcdir)/libxml2-api.xml; fi ) + +@REBUILD_DOCS_TRUE@$(WIN32_DIR)/libxml2.def.src: libxml2-api.xml +@REBUILD_DOCS_TRUE@ -@(if [ -x $(XSLTPROC) ] ; then \ +@REBUILD_DOCS_TRUE@ $(XSLTPROC) -o $(WIN32_DIR)/libxml2.def.src \ +@REBUILD_DOCS_TRUE@ --nonet $(WIN32_DIR)/defgen.xsl libxml2-api.xml ; fi ) + +@REBUILD_DOCS_TRUE@libxml2-api.xml libxml2-refs.xml ../libxml2.syms: apibuild.py symbols.xml syms.xsl checkapisym.xsl $(source_file_deps) +@REBUILD_DOCS_TRUE@ test -f $(top_srcdir)/include/libxml/xmlversion.h +@REBUILD_DOCS_TRUE@ (cd $(srcdir) && ./apibuild.py) +@REBUILD_DOCS_TRUE@ ($(XSLTPROC) $(srcdir)/checkapisym.xsl $(srcdir)/libxml2-api.xml) +@REBUILD_DOCS_TRUE@ ($(XSLTPROC) -o ../libxml2.syms $(srcdir)/syms.xsl $(srcdir)/symbols.xml) +@REBUILD_DOCS_TRUE@ -@(cd .. ; $(MAKE) rebuild_testapi) + +@REBUILD_DOCS_TRUE@xmllint.1: xmllint.xml +@REBUILD_DOCS_TRUE@ -@($(XSLTPROC) --nonet xmllint.xml) + +@REBUILD_DOCS_TRUE@xmlcatalog.1: xmlcatalog_man.xml +@REBUILD_DOCS_TRUE@ -@($(XSLTPROC) --nonet xmlcatalog_man.xml) + +@REBUILD_DOCS_TRUE@check-extra-dist: +@REBUILD_DOCS_TRUE@ for f in $(EXTRA_DIST_wc) ; do echo $$f; done | sort -u >tmp.EXTRA_DIST_wc +@REBUILD_DOCS_TRUE@ for f in $(EXTRA_DIST) ; do echo $$f; done | sort >tmp.EXTRA_DIST +@REBUILD_DOCS_TRUE@ diff -u tmp.EXTRA_DIST_wc tmp.EXTRA_DIST +@REBUILD_DOCS_TRUE@ rm -f tmp.EXTRA_DIST_wc tmp.EXTRA_DIST clean-local: rm -f *~ *.bak *.hierarchy *.signals *-unused.txt @@ -856,25 +1085,25 @@ clean-local: maintainer-clean-local: clean-local rm -rf libxml-decl-list.txt libxml-decl.txt -rebuild: api all +rebuild: api docs install-data-local: - @MKDIR_P@ $(DESTDIR)$(HTML_DIR) - -@INSTALL@ -m 0644 $(srcdir)/xml.html $(srcdir)/encoding.html $(srcdir)/FAQ.html $(srcdir)/structure.gif $(srcdir)/DOM.gif $(srcdir)/smallfootonly.gif $(srcdir)/redhat.gif $(srcdir)/libxml.gif $(srcdir)/w3c.png $(srcdir)/Libxml2-Logo-180x168.gif $(srcdir)/Libxml2-Logo-90x34.gif $(DESTDIR)$(HTML_DIR) - @MKDIR_P@ $(DESTDIR)$(HTML_DIR)/html - -@INSTALL@ -m 0644 $(srcdir)/html/*.html $(DESTDIR)$(HTML_DIR)/html - -@INSTALL@ -m 0644 $(srcdir)/html/*.png $(DESTDIR)$(HTML_DIR)/html - @MKDIR_P@ $(DESTDIR)$(HTML_DIR)/tutorial - -@INSTALL@ -m 0644 $(srcdir)/tutorial/*.* \ + $(MKDIR_P) $(DESTDIR)$(HTML_DIR) + -$(INSTALL) -m 0644 $(srcdir)/xml.html $(srcdir)/encoding.html $(srcdir)/FAQ.html $(srcdir)/structure.gif $(srcdir)/DOM.gif $(srcdir)/smallfootonly.gif $(srcdir)/redhat.gif $(srcdir)/libxml.gif $(srcdir)/w3c.png $(srcdir)/Libxml2-Logo-180x168.gif $(srcdir)/Libxml2-Logo-90x34.gif $(DESTDIR)$(HTML_DIR) + $(MKDIR_P) $(DESTDIR)$(HTML_DIR)/html + -$(INSTALL) -m 0644 $(srcdir)/html/*.html $(DESTDIR)$(HTML_DIR)/html + -$(INSTALL) -m 0644 $(srcdir)/html/*.png $(DESTDIR)$(HTML_DIR)/html + $(MKDIR_P) $(DESTDIR)$(HTML_DIR)/tutorial + -$(INSTALL) -m 0644 $(srcdir)/tutorial/*.* \ $(DESTDIR)$(HTML_DIR)/tutorial - @MKDIR_P@ $(DESTDIR)$(HTML_DIR)/tutorial/images - -@INSTALL@ -m 0644 $(srcdir)/tutorial/images/*.* \ + $(MKDIR_P) $(DESTDIR)$(HTML_DIR)/tutorial/images + -$(INSTALL) -m 0644 $(srcdir)/tutorial/images/*.* \ $(DESTDIR)$(HTML_DIR)/tutorial/images - @MKDIR_P@ $(DESTDIR)$(HTML_DIR)/tutorial/images/callouts - -@INSTALL@ -m 0644 $(srcdir)/tutorial/images/callouts/*.* \ + $(MKDIR_P) $(DESTDIR)$(HTML_DIR)/tutorial/images/callouts + -$(INSTALL) -m 0644 $(srcdir)/tutorial/images/callouts/*.* \ $(DESTDIR)$(HTML_DIR)/tutorial/images/callouts -.PHONY : html xml templates scan +.PHONY: docs api web wiki rebuild # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/doc/apibuild.py b/doc/apibuild.py index c2dff84..25f0210 100755 --- a/doc/apibuild.py +++ b/doc/apibuild.py @@ -52,7 +52,11 @@ ignored_files = { "test.c": "not part of the library", "testdso.c": "test for dynamid shared libraries", "testrecurse.c": "test for entities recursions", - "xzlib.h": "Internal API only", + "xzlib.h": "Internal API only 2.8.0", + "buf.h": "Internal API only 2.9.0", + "enc.h": "Internal API only 2.9.0", + "/save.h": "Internal API only 2.9.0", + "timsort.h": "Internal header only for xpath.c 2.9.0", } ignored_words = { @@ -1678,7 +1682,8 @@ class docBuilder: skip = 0 for excl in self.excludes: if string.find(file, excl) != -1: - skip = 1; + print "Skipping %s" % file + skip = 1 break if skip == 0: self.modules[file] = None; @@ -1687,7 +1692,8 @@ class docBuilder: skip = 0 for excl in self.excludes: if string.find(file, excl) != -1: - skip = 1; + print "Skipping %s" % file + skip = 1 break if skip == 0: self.headers[file] = None; diff --git a/doc/devhelp/Makefile.am b/doc/devhelp/Makefile.am index 36852f9..dad7975 100644 --- a/doc/devhelp/Makefile.am +++ b/doc/devhelp/Makefile.am @@ -1,5 +1,15 @@ -DEVHELP_DIR=$(datadir)/gtk-doc/html/libxml2 -HTML_FILES=index.html general.html $(HTML_MODULES) +devhelpdir = $(datadir)/gtk-doc/html/libxml2 + +dist_devhelp_DATA = \ + libxml2.devhelp \ + $(HTML_FILES) \ + $(EXTRA_FORMAT) + +HTML_FILES = \ + general.html \ + index.html \ + $(HTML_MODULES) + HTML_MODULES= \ libxml2-c14n.html \ libxml2-catalog.html \ @@ -56,18 +66,14 @@ EXTRA_FORMAT= \ up.png \ style.css -EXTRA_DIST=devhelp.xsl html.xsl libxml2.devhelp $(HTML_FILES) $(EXTRA_FORMAT) +EXTRA_DIST = devhelp.xsl html.xsl -all: libxml2.devhelp $(HTML_FILES) +if REBUILD_DOCS +rebuild: libxml2.devhelp $(HTML_FILES) +.PHONY: rebuild libxml2.devhelp $(HTML_FILES): devhelp.xsl html.xsl $(top_srcdir)/doc/libxml2-api.xml - -@(echo Rebuilding devhelp files) -@(if [ -x $(XSLTPROC) ] ; then \ - $(XSLTPROC) --nonet -o $(srcdir)/libxml2.devhelp devhelp.xsl $(top_srcdir)/doc/libxml2-api.xml ; fi ); - -install-data-local: - -@MKDIR_P@ $(DESTDIR)$(DEVHELP_DIR) - -@INSTALL@ -m 0644 $(srcdir)/libxml2.devhelp $(DESTDIR)$(DEVHELP_DIR) - -@INSTALL@ -m 0644 $(EXTRA_FORMAT:%=$(srcdir)/%) $(DESTDIR)$(DEVHELP_DIR) - -@INSTALL@ -m 0644 $(HTML_FILES:%=$(srcdir)/%) $(DESTDIR)$(DEVHELP_DIR) - + echo Rebuilding devhelp files ; \ + $(XSLTPROC) --nonet -o $(srcdir)/libxml2.devhelp $(srcdir)/devhelp.xsl $(top_srcdir)/doc/libxml2-api.xml ; fi ); +endif diff --git a/doc/devhelp/Makefile.in b/doc/devhelp/Makefile.in index 2c87ff3..711f2cd 100644 --- a/doc/devhelp/Makefile.in +++ b/doc/devhelp/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -14,6 +14,7 @@ # PARTICULAR PURPOSE. @SET_MAKE@ + VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ @@ -34,7 +35,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/devhelp -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(dist_devhelp_DATA) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -46,20 +48,48 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(devhelpdir)" +DATA = $(dist_devhelp_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -96,6 +126,7 @@ HTML_DIR = @HTML_DIR@ HTML_OBJ = @HTML_OBJ@ HTTP_OBJ = @HTTP_OBJ@ ICONV_LIBS = @ICONV_LIBS@ +ICU_LIBS = @ICU_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -176,7 +207,6 @@ TEST_VTIME = @TEST_VTIME@ TEST_XINCLUDE = @TEST_XINCLUDE@ TEST_XPATH = @TEST_XPATH@ TEST_XPTR = @TEST_XPTR@ -THREADS_W32 = @THREADS_W32@ THREAD_CFLAGS = @THREAD_CFLAGS@ THREAD_LIBS = @THREAD_LIBS@ VERSION = @VERSION@ @@ -282,8 +312,17 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -DEVHELP_DIR = $(datadir)/gtk-doc/html/libxml2 -HTML_FILES = index.html general.html $(HTML_MODULES) +devhelpdir = $(datadir)/gtk-doc/html/libxml2 +dist_devhelp_DATA = \ + libxml2.devhelp \ + $(HTML_FILES) \ + $(EXTRA_FORMAT) + +HTML_FILES = \ + general.html \ + index.html \ + $(HTML_MODULES) + HTML_MODULES = \ libxml2-c14n.html \ libxml2-catalog.html \ @@ -340,7 +379,7 @@ EXTRA_FORMAT = \ up.png \ style.css -EXTRA_DIST = devhelp.xsl html.xsl libxml2.devhelp $(HTML_FILES) $(EXTRA_FORMAT) +EXTRA_DIST = devhelp.xsl html.xsl all: all-am .SUFFIXES: @@ -380,6 +419,24 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs +install-dist_devhelpDATA: $(dist_devhelp_DATA) + @$(NORMAL_INSTALL) + test -z "$(devhelpdir)" || $(MKDIR_P) "$(DESTDIR)$(devhelpdir)" + @list='$(dist_devhelp_DATA)'; test -n "$(devhelpdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(devhelpdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(devhelpdir)" || exit $$?; \ + done + +uninstall-dist_devhelpDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_devhelp_DATA)'; test -n "$(devhelpdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(devhelpdir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: @@ -419,8 +476,11 @@ distdir: $(DISTFILES) done check-am: all-am check: check-am -all-am: Makefile +all-am: Makefile $(DATA) installdirs: + for dir in "$(DESTDIR)$(devhelpdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done install: install-am install-exec: install-exec-am install-data: install-data-am @@ -431,10 +491,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -466,7 +531,7 @@ info: info-am info-am: -install-data-am: install-data-local +install-data-am: install-dist_devhelpDATA install-dvi: install-dvi-am @@ -510,35 +575,30 @@ ps: ps-am ps-am: -uninstall-am: +uninstall-am: uninstall-dist_devhelpDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-data-local install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am - - -all: libxml2.devhelp $(HTML_FILES) - -libxml2.devhelp $(HTML_FILES): devhelp.xsl html.xsl $(top_srcdir)/doc/libxml2-api.xml - -@(echo Rebuilding devhelp files) - -@(if [ -x $(XSLTPROC) ] ; then \ - $(XSLTPROC) --nonet -o $(srcdir)/libxml2.devhelp devhelp.xsl $(top_srcdir)/doc/libxml2-api.xml ; fi ); - -install-data-local: - -@MKDIR_P@ $(DESTDIR)$(DEVHELP_DIR) - -@INSTALL@ -m 0644 $(srcdir)/libxml2.devhelp $(DESTDIR)$(DEVHELP_DIR) - -@INSTALL@ -m 0644 $(EXTRA_FORMAT:%=$(srcdir)/%) $(DESTDIR)$(DEVHELP_DIR) - -@INSTALL@ -m 0644 $(HTML_FILES:%=$(srcdir)/%) $(DESTDIR)$(DEVHELP_DIR) + install-data install-data-am install-dist_devhelpDATA \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am uninstall uninstall-am uninstall-dist_devhelpDATA + + +@REBUILD_DOCS_TRUE@rebuild: libxml2.devhelp $(HTML_FILES) +@REBUILD_DOCS_TRUE@.PHONY: rebuild + +@REBUILD_DOCS_TRUE@libxml2.devhelp $(HTML_FILES): devhelp.xsl html.xsl $(top_srcdir)/doc/libxml2-api.xml +@REBUILD_DOCS_TRUE@ -@(if [ -x $(XSLTPROC) ] ; then \ +@REBUILD_DOCS_TRUE@ echo Rebuilding devhelp files ; \ +@REBUILD_DOCS_TRUE@ $(XSLTPROC) --nonet -o $(srcdir)/libxml2.devhelp $(srcdir)/devhelp.xsl $(top_srcdir)/doc/libxml2-api.xml ; fi ); # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/doc/devhelp/general.html b/doc/devhelp/general.html index 6122ffe..68f9380 100644 --- a/doc/devhelp/general.html +++ b/doc/devhelp/general.html @@ -33,6 +33,6 @@

      libxml2 API Modules

      -

      DOCBparser - old DocBook SGML parser
      HTMLparser - interface for an HTML 4.0 non-verifying parser
      HTMLtree - specific APIs to process HTML tree, especially serialization
      SAX - Old SAX version 1 handler, deprecated
      SAX2 - SAX2 parser interface used to build the DOM tree
      c14n - Provide Canonical XML and Exclusive XML Canonicalization
      catalog - interfaces to the Catalog handling system
      chvalid - Unicode character range checking
      debugXML - Tree debugging APIs
      dict - string dictionnary
      encoding - interface for the encoding conversion functions
      entities - interface for the XML entities handling
      globals - interface for all global variables of the library
      hash - Chained hash tables
      list - lists interfaces
      nanoftp - minimal FTP implementation
      nanohttp - minimal HTTP implementation
      parser - the core parser module
      parserInternals - internals routines exported by the parser.
      pattern - pattern expression handling
      relaxng - implementation of the Relax-NG validation
      schemasInternals - internal interfaces for XML Schemas
      schematron - XML Schemastron implementation
      threads - interfaces for thread handling
      tree - interfaces for tree manipulation
      uri - library of generic URI related routines
      valid - The DTD validation
      xinclude - implementation of XInclude
      xlink - unfinished XLink detection module
      xmlIO - interface for the I/O interfaces used by the parser
      xmlautomata - API to build regexp automata
      xmlerror - error handling
      xmlexports - macros for marking symbols as exportable/importable.
      xmlmemory - interface for the memory allocator
      xmlmodule - dynamic module loading
      xmlreader - the XMLReader implementation
      xmlregexp - regular expressions handling
      xmlsave - the XML document serializer
      xmlschemas - incomplete XML Schemas structure implementation
      xmlschemastypes - implementation of XML Schema Datatypes
      xmlstring - set of routines to process strings
      xmlunicode - Unicode character APIs
      xmlversion - compile-time version informations
      xmlwriter - text writing API for XML
      xpath - XML Path Language implementation
      xpathInternals - internal interfaces for XML Path Language implementation
      xpointer - API to handle XML Pointers

      +

      DOCBparser - old DocBook SGML parser
      HTMLparser - interface for an HTML 4.0 non-verifying parser
      HTMLtree - specific APIs to process HTML tree, especially serialization
      SAX - Old SAX version 1 handler, deprecated
      SAX2 - SAX2 parser interface used to build the DOM tree
      c14n - Provide Canonical XML and Exclusive XML Canonicalization
      catalog - interfaces to the Catalog handling system
      chvalid - Unicode character range checking
      debugXML - Tree debugging APIs
      dict - string dictionnary
      encoding - interface for the encoding conversion functions
      entities - interface for the XML entities handling
      globals - interface for all global variables of the library
      hash - Chained hash tables
      list - lists interfaces
      nanoftp - minimal FTP implementation
      nanohttp - minimal HTTP implementation
      parser - the core parser module
      parserInternals - internals routines and limits exported by the parser.
      pattern - pattern expression handling
      relaxng - implementation of the Relax-NG validation
      schemasInternals - internal interfaces for XML Schemas
      schematron - XML Schemastron implementation
      threads - interfaces for thread handling
      tree - interfaces for tree manipulation
      uri - library of generic URI related routines
      valid - The DTD validation
      xinclude - implementation of XInclude
      xlink - unfinished XLink detection module
      xmlIO - interface for the I/O interfaces used by the parser
      xmlautomata - API to build regexp automata
      xmlerror - error handling
      xmlexports - macros for marking symbols as exportable/importable.
      xmlmemory - interface for the memory allocator
      xmlmodule - dynamic module loading
      xmlreader - the XMLReader implementation
      xmlregexp - regular expressions handling
      xmlsave - the XML document serializer
      xmlschemas - incomplete XML Schemas structure implementation
      xmlschemastypes - implementation of XML Schema Datatypes
      xmlstring - set of routines to process strings
      xmlunicode - Unicode character APIs
      xmlversion - compile-time version informations
      xmlwriter - text writing API for XML
      xpath - XML Path Language implementation
      xpathInternals - internal interfaces for XML Path Language implementation
      xpointer - API to handle XML Pointers

      diff --git a/doc/devhelp/libxml2-dict.html b/doc/devhelp/libxml2-dict.html index 818121d..dd42a01 100644 --- a/doc/devhelp/libxml2-dict.html +++ b/doc/devhelp/libxml2-dict.html @@ -45,10 +45,12 @@

      Synopsis

      typedef struct _xmlDict xmlDict;
       typedef xmlDict * xmlDictPtr;
      +size_t	xmlDictGetUsage			(xmlDictPtr dict);
       int	xmlDictReference		(xmlDictPtr dict);
       void	xmlDictCleanup			(void);
       int	xmlDictSize			(xmlDictPtr dict);
       const xmlChar *	xmlDictExists		(xmlDictPtr dict, 
      const xmlChar * name,
      int len); +size_t xmlDictSetLimit (xmlDictPtr dict,
      size_t limit); int xmlDictOwns (xmlDictPtr dict,
      const xmlChar * str); const xmlChar * xmlDictQLookup (xmlDictPtr dict,
      const xmlChar * prefix,
      const xmlChar * name); int xmlInitializeDict (void); @@ -93,6 +95,10 @@ The content of this structure is not made public by the API.

      xmlDictFree ()

      void	xmlDictFree			(xmlDictPtr dict)

      Free the hash @dict and its contents. The userdata is deallocated with @f if provided.

      dict:the dictionnary
      +
      +

      xmlDictGetUsage ()

      size_t	xmlDictGetUsage			(xmlDictPtr dict)
      +

      Get how much memory is used by a dictionary for strings Added in 2.9.0

      +
      dict:the dictionnary
      Returns:the amount of strings allocated

      xmlDictLookup ()

      const xmlChar *	xmlDictLookup		(xmlDictPtr dict, 
      const xmlChar * name,
      int len)

      Add the @name to the dictionnary @dict if not present.

      @@ -109,6 +115,10 @@ The content of this structure is not made public by the API.

      xmlDictReference ()

      int	xmlDictReference		(xmlDictPtr dict)

      Increment the reference counter of a dictionary

      dict:the dictionnary
      Returns:0 in case of success and -1 in case of error
      +
      +

      xmlDictSetLimit ()

      size_t	xmlDictSetLimit			(xmlDictPtr dict, 
      size_t limit)
      +

      Set a size limit for the dictionary Added in 2.9.0

      +
      dict:the dictionnary
      limit:the limit in bytes
      Returns:the previous limit of the dictionary or 0

      xmlDictSize ()

      int	xmlDictSize			(xmlDictPtr dict)

      Query the number of elements installed in the hash @dict.

      diff --git a/doc/devhelp/libxml2-parser.html b/doc/devhelp/libxml2-parser.html index 6c66e5f..357c14a 100644 --- a/doc/devhelp/libxml2-parser.html +++ b/doc/devhelp/libxml2-parser.html @@ -309,7 +309,8 @@ void xmlSetExternalEntityLoader (XML_PARSE_NOBASEFIX = 262144 /* do not fixup XINCLUDE xml:base uris */ XML_PARSE_HUGE = 524288 /* relax any hardcoded limit from the parser */ XML_PARSE_OLDSAX = 1048576 /* parse using SAX2 interface before 2.7.0 */ - XML_PARSE_IGNORE_ENC = 2097152 /* ignore internal document encoding hint */ + XML_PARSE_IGNORE_ENC = 2097152 /* ignore internal document encoding hint */ + XML_PARSE_BIG_LINES = 4194304 /* Store big lines numbers in text PSVI field */ };

      @@ -661,11 +662,11 @@ void xmlSetExternalEntityLoader (

      xmlParserInputGrow ()

      int	xmlParserInputGrow		(xmlParserInputPtr in, 
      int len)

      This function increase the input for the parser. It tries to preserve pointers to the input buffer, and keep already read data

      -
      in:an XML parser input
      len:an indicative size for the lookahead
      Returns:the number of xmlChars read, or -1 in case of error, 0 indicate the end of this entity
      +
      in:an XML parser input
      len:an indicative size for the lookahead
      Returns:the amount of char read, or -1 in case of error, 0 indicate the end of this entity

      xmlParserInputRead ()

      int	xmlParserInputRead		(xmlParserInputPtr in, 
      int len)
      -

      This function refresh the input for the parser. It doesn't try to preserve pointers to the input buffer, and discard already read data

      -
      in:an XML parser input
      len:an indicative size for the lookahead
      Returns:the number of xmlChars read, or -1 in case of error, 0 indicate the end of this entity
      +

      This function was internal and is deprecated.

      +
      in:an XML parser input
      len:an indicative size for the lookahead
      Returns:-1 as this is an error to use it.

      xmlPedanticParserDefault ()

      int	xmlPedanticParserDefault	(int val)

      Set and return the previous value for enabling pedantic warnings.

      diff --git a/doc/devhelp/libxml2-parserInternals.html b/doc/devhelp/libxml2-parserInternals.html index d56ab17..915ad5b 100644 --- a/doc/devhelp/libxml2-parserInternals.html +++ b/doc/devhelp/libxml2-parserInternals.html @@ -2,7 +2,7 @@ - parserInternals: internals routines exported by the parser. + parserInternals: internals routines and limits exported by the parser. @@ -38,7 +38,7 @@

      parserInternals

      -

      parserInternals - internals routines exported by the parser.

      +

      parserInternals - internals routines and limits exported by the parser.

      this module exports a number of internal parsing routines they are not really all intended for applications but can prove useful doing low level processing.

      Author(s): Daniel Veillard

      @@ -55,14 +55,17 @@ #define IS_LETTER(c); #define IS_IDEOGRAPHIC(c); #define MOVETO_STARTTAG(p); +#define XML_MAX_NAME_LENGTH; #define IS_ASCII_LETTER(c); #define IS_DIGIT(c); +#define XML_MAX_DICTIONARY_LIMIT; #define XML_SUBSTITUTE_PEREF; #define MOVETO_ENDTAG(p); #define SKIP_EOL(p); #define IS_EXTENDER_CH(c); #define IS_BLANK_CH(c); #define IS_LETTER_CH(c); +#define XML_MAX_LOOKUP_LIMIT; #define XML_MAX_TEXT_LENGTH; #define XML_SUBSTITUTE_NONE; #define IS_COMBINING(c); @@ -261,14 +264,26 @@ void xmlParseEntityDecl (

      Macro SKIP_EOL

      #define SKIP_EOL(p);
       

      Skips the end of line chars.

      p:and UTF8 string pointer
      +
      +
      +

      Macro XML_MAX_DICTIONARY_LIMIT

      #define XML_MAX_DICTIONARY_LIMIT;
      +

      Maximum size allowed by the parser for a dictionary by default This is not a limitation of the parser but a safety boundary feature, use XML_PARSE_HUGE option to override it. Introduced in 2.9.0

      +
      +
      +

      Macro XML_MAX_LOOKUP_LIMIT

      #define XML_MAX_LOOKUP_LIMIT;
      +

      Maximum size allowed by the parser for ahead lookup This is an upper boundary enforced by the parser to avoid bad behaviour on "unfriendly' content Introduced in 2.9.0


      Macro XML_MAX_NAMELEN

      #define XML_MAX_NAMELEN;
       

      Identifiers can be longer, but this will be more costly at runtime.

      +
      +
      +

      Macro XML_MAX_NAME_LENGTH

      #define XML_MAX_NAME_LENGTH;
      +

      Maximum size allowed for a markup identitier This is not a limitation of the parser but a safety boundary feature, use XML_PARSE_HUGE option to override it. Note that with the use of parsing dictionaries overriding the limit may result in more runtime memory usage in face of "unfriendly' content Introduced in 2.9.0


      Macro XML_MAX_TEXT_LENGTH

      #define XML_MAX_TEXT_LENGTH;
      -

      Maximum size allowed for a single text node when building a tree. This is not a limitation of the parser but a safety boundary feature, use XML_PARSE_HUGE option to override it.

      +

      Maximum size allowed for a single text node when building a tree. This is not a limitation of the parser but a safety boundary feature, use XML_PARSE_HUGE option to override it. Introduced in 2.9.0


      Macro XML_SUBSTITUTE_BOTH

      #define XML_SUBSTITUTE_BOTH;
      diff --git a/doc/devhelp/libxml2-tree.html b/doc/devhelp/libxml2-tree.html
      index af1f654..ca76d03 100644
      --- a/doc/devhelp/libxml2-tree.html
      +++ b/doc/devhelp/libxml2-tree.html
      @@ -44,15 +44,16 @@
           

      Synopsis

      #define XML_LOCAL_NAMESPACE;
      -#define XML_XML_NAMESPACE;
      +#define BASE_BUFFER_SIZE;
       #define XML_XML_ID;
       #define xmlRootNode;
       #define XML_GET_LINE;
       #define XML_GET_CONTENT;
       #define xmlChildrenNode;
      -#define BASE_BUFFER_SIZE;
      +#define XML_XML_NAMESPACE;
      +#define LIBXML2_NEW_BUFFER;
       typedef struct _xmlNs xmlNs;
      -typedef xmlBuffer * xmlBufferPtr;
      +typedef struct _xmlElementContent xmlElementContent;
       typedef xmlEnumeration * xmlEnumerationPtr;
       typedef struct _xmlBuffer xmlBuffer;
       typedef xmlParserInput * xmlParserInputPtr;
      @@ -63,7 +64,7 @@ typedef xmlElementType xmlBufferAllocationScheme;
       typedef struct _xmlNode xmlNode;
       typedef xmlDoc * xmlDocPtr;
      -typedef struct _xmlElementContent xmlElementContent;
      +typedef xmlBuffer * xmlBufferPtr;
       typedef xmlDOMWrapCtxt * xmlDOMWrapCtxtPtr;
       typedef xmlRef * xmlRefPtr;
       typedef struct _xmlParserInputBuffer xmlParserInputBuffer;
      @@ -73,6 +74,7 @@ typedef xmlNode * 
       typedef struct _xmlParserCtxt xmlParserCtxt;
       typedef xmlDtd * xmlDtdPtr;
       typedef enum xmlAttributeDefault;
      +typedef struct _xmlBuf xmlBuf;
       typedef struct _xmlNotation xmlNotation;
       typedef enum xmlElementType;
       typedef struct _xmlEntity xmlEntity;
      @@ -81,6 +83,7 @@ typedef xmlAttribute * xmlElementTypeVal;
       typedef xmlNotation * xmlNotationPtr;
       typedef xmlElement * xmlElementPtr;
      +typedef xmlBuf * xmlBufPtr;
       typedef enum xmlElementContentOccur;
       typedef xmlAttr * xmlAttrPtr;
       typedef struct _xmlDoc xmlDoc;
      @@ -104,8 +107,9 @@ typedef xmlOutputBuffer * xmlSAXHandler * xmlSAXHandlerPtr;
       xmlNodePtr	xmlDocCopyNode		(const xmlNodePtr node, 
      xmlDocPtr doc,
      int extended); xmlNodePtr xmlNewDocRawNode (xmlDocPtr doc,
      xmlNsPtr ns,
      const xmlChar * name,
      const xmlChar * content); -xmlChar * xmlGetProp (xmlNodePtr node,
      const xmlChar * name); +xmlChar * xmlBufContent (const xmlBufPtr buf); xmlAttrPtr xmlNewNsPropEatName (xmlNodePtr node,
      xmlNsPtr ns,
      xmlChar * name,
      const xmlChar * value); +xmlNodePtr xmlStringGetNodeList (xmlDocPtr doc,
      const xmlChar * value); xmlNodePtr xmlNewCDataBlock (xmlDocPtr doc,
      const xmlChar * content,
      int len); void xmlBufferWriteCHAR (xmlBufferPtr buf,
      const xmlChar * string); xmlChar * xmlNodeGetBase (xmlDocPtr doc,
      xmlNodePtr cur); @@ -117,15 +121,16 @@ int xmlSaveFormatFileEnc (const char * file xmlBufferPtr xmlBufferCreate (void); xmlNodePtr xmlNewDocFragment (xmlDocPtr doc); xmlNodePtr xmlDocGetRootElement (xmlDocPtr doc); -xmlNodePtr xmlStringGetNodeList (xmlDocPtr doc,
      const xmlChar * value); +xmlChar * xmlGetProp (xmlNodePtr node,
      const xmlChar * name); int xmlValidateName (const xmlChar * value,
      int space); -void xmlSetBufferAllocationScheme (xmlBufferAllocationScheme scheme); +xmlChar * xmlBufEnd (const xmlBufPtr buf); int xmlValidateQName (const xmlChar * value,
      int space); xmlAttrPtr xmlHasNsProp (xmlNodePtr node,
      const xmlChar * name,
      const xmlChar * nameSpace); xmlNodePtr xmlAddPrevSibling (xmlNodePtr cur,
      xmlNodePtr elem); int xmlBufferAddHead (xmlBufferPtr buf,
      const xmlChar * str,
      int len); xmlNodePtr xmlNewPI (const xmlChar * name,
      const xmlChar * content); void xmlDocDumpFormatMemoryEnc (xmlDocPtr out_doc,
      xmlChar ** doc_txt_ptr,
      int * doc_txt_len,
      const char * txt_encoding,
      int format); +xmlAttrPtr xmlSetProp (xmlNodePtr node,
      const xmlChar * name,
      const xmlChar * value); unsigned long xmlChildElementCount (xmlNodePtr parent); void xmlElemDump (FILE * f,
      xmlDocPtr doc,
      xmlNodePtr cur); int xmlSaveFormatFileTo (xmlOutputBufferPtr buf,
      xmlDocPtr cur,
      const char * encoding,
      int format); @@ -171,6 +176,7 @@ int xmlBufferDump (FILE * file,
      xmlDocPtr xmlCopyDoc (xmlDocPtr doc,
      int recursive); xmlDOMWrapCtxtPtr xmlDOMWrapNewCtxt (void); void xmlDocDumpMemoryEnc (xmlDocPtr out_doc,
      xmlChar ** doc_txt_ptr,
      int * doc_txt_len,
      const char * txt_encoding); +int xmlBufGetNodeContent (xmlBufPtr buf,
      xmlNodePtr cur); xmlNodePtr xmlTextMerge (xmlNodePtr first,
      xmlNodePtr second); void xmlDocDumpMemory (xmlDocPtr cur,
      xmlChar ** mem,
      int * size); xmlNodePtr xmlNewDocPI (xmlDocPtr doc,
      const xmlChar * name,
      const xmlChar * content); @@ -194,6 +200,7 @@ void xmlSetDocCompressMode (xmlUnlinkNode (xmlNodePtr cur); const xmlChar * xmlSplitQName3 (const xmlChar * name,
      int * len); typedef xmlNsPtr xmlDOMWrapAcquireNsFunction (xmlDOMWrapCtxtPtr ctxt,
      xmlNodePtr node,
      const xmlChar * nsName,
      const xmlChar * nsPrefix); +size_t xmlBufUse (const xmlBufPtr buf); xmlNodePtr xmlDocSetRootElement (xmlDocPtr doc,
      xmlNodePtr root); long xmlGetLineNo (xmlNodePtr node); const xmlChar * xmlBufferContent (const xmlBufferPtr buf); @@ -201,6 +208,7 @@ int xmlRemoveProp (xmlNodePtr xmlLastElementChild (xmlNodePtr parent); xmlChar * xmlNodeGetLang (xmlNodePtr cur); int xmlGetDocCompressMode (xmlDocPtr doc); +size_t xmlBufNodeDump (xmlBufPtr buf,
      xmlDocPtr doc,
      xmlNodePtr cur,
      int level,
      int format); xmlChar * xmlGetNsProp (xmlNodePtr node,
      const xmlChar * name,
      const xmlChar * nameSpace); xmlAttrPtr xmlNewDocProp (xmlDocPtr doc,
      const xmlChar * name,
      const xmlChar * value); void xmlFreeNode (xmlNodePtr cur); @@ -245,12 +253,13 @@ int xmlBufferCCat (xmlNsPtr * xmlGetNsList (xmlDocPtr doc,
      xmlNodePtr node); int xmlBufferGrow (xmlBufferPtr buf,
      unsigned int len); int xmlNodeIsText (xmlNodePtr node); -xmlAttrPtr xmlSetProp (xmlNodePtr node,
      const xmlChar * name,
      const xmlChar * value); +void xmlSetBufferAllocationScheme (xmlBufferAllocationScheme scheme); int xmlIsXHTML (const xmlChar * systemID,
      const xmlChar * publicID); void xmlNodeSetLang (xmlNodePtr cur,
      const xmlChar * lang); void xmlFreeDtd (xmlDtdPtr cur); void xmlFreeNodeList (xmlNodePtr cur); void xmlFreeDoc (xmlDocPtr cur); +size_t xmlBufShrink (xmlBufPtr buf,
      size_t len); xmlNodePtr xmlNewDocNode (xmlDocPtr doc,
      xmlNsPtr ns,
      const xmlChar * name,
      const xmlChar * content); int xmlSaveFileEnc (const char * filename,
      xmlDocPtr cur,
      const char * encoding); xmlAttrPtr xmlSetNsProp (xmlNodePtr node,
      xmlNsPtr ns,
      const xmlChar * name,
      const xmlChar * value); @@ -271,6 +280,10 @@ void xmlFreeNsList (

      Macro BASE_BUFFER_SIZE

      #define BASE_BUFFER_SIZE;
       

      default buffer size 4000.

      +
      +
      +

      Macro LIBXML2_NEW_BUFFER

      #define LIBXML2_NEW_BUFFER;
      +

      Macro used to express that the API use the new buffers for xmlParserInputBuffer and xmlOutputBuffer. The change was introduced in 2.9.0.


      Macro XML_GET_CONTENT

      #define XML_GET_CONTENT;
      @@ -369,6 +382,16 @@ void	xmlFreeNsList			(XML_ATTRIBUTE_NOTATION = 10
       };
       

      +

      +
      +

      Structure xmlBuf

      struct _xmlBuf {
      +The content of this structure is not made public by the API.
      +} xmlBuf;
      +

      +

      +
      +

      Typedef xmlBufPtr

      xmlBuf * xmlBufPtr;
      +

      A pointer to a buffer structure, the actual structure internals are not public


      Structure xmlBuffer

      struct _xmlBuffer {
      @@ -688,8 +711,8 @@ void	xmlFreeNsList			(xmlOutputWriteCallback	writecallback
           xmlOutputCloseCallback	closecallback
           xmlCharEncodingHandlerPtr	encoder	: I18N conversions to UTF-8
      -    xmlBufferPtr	buffer	: Local buffer encoded in UTF-8 or ISOLatin
      -    xmlBufferPtr	conv	: if encoder != NULL buffer for output
      +    xmlBufPtr	buffer	: Local buffer encoded in UTF-8 or ISOLatin
      +    xmlBufPtr	conv	: if encoder != NULL buffer for output
           int	written	: total number of byte written
           int	error
       } xmlOutputBuffer;
      @@ -822,8 +845,8 @@ void	xmlFreeNsList			(xmlInputReadCallback	readcallback
           xmlInputCloseCallback	closecallback
           xmlCharEncodingHandlerPtr	encoder	: I18N conversions to UTF-8
      -    xmlBufferPtr	buffer	: Local buffer encoded in UTF-8
      -    xmlBufferPtr	raw	: if encoder != NULL buffer for raw input
      +    xmlBufPtr	buffer	: Local buffer encoded in UTF-8
      +    xmlBufPtr	raw	: if encoder != NULL buffer for raw input
           int	compressed	: -1=unknown, 0=not compressed, 1=compressed
           int	error
           unsigned long	rawconsumed	: amount consumed from raw
      @@ -934,6 +957,30 @@ void	xmlFreeNsList			(

      xmlAttrSerializeTxtContent ()

      void	xmlAttrSerializeTxtContent	(xmlBufferPtr buf, 
      xmlDocPtr doc,
      xmlAttrPtr attr,
      const xmlChar * string)

      Serialize text attribute values to an xml simple buffer

      buf:the XML buffer output
      doc:the document
      attr:the attribute node
      string:the text content
      +
      +

      xmlBufContent ()

      xmlChar *	xmlBufContent		(const xmlBufPtr buf)
      +

      Function to extract the content of a buffer

      +
      buf:the buffer
      Returns:the internal content
      +
      +

      xmlBufEnd ()

      xmlChar *	xmlBufEnd		(const xmlBufPtr buf)
      +

      Function to extract the end of the content of a buffer

      +
      buf:the buffer
      Returns:the end of the internal content or NULL in case of error
      +
      +

      xmlBufGetNodeContent ()

      int	xmlBufGetNodeContent		(xmlBufPtr buf, 
      xmlNodePtr cur)
      +

      Read the value of a node @cur, this can be either the text carried directly by this node if it's a TEXT node or the aggregate string of the values carried by this node child's (TEXT and ENTITY_REF). Entity references are substituted. Fills up the buffer @buffer with this value

      +
      buf:a buffer xmlBufPtr
      cur:the node being read
      Returns:0 in case of success and -1 in case of error.
      +
      +

      xmlBufNodeDump ()

      size_t	xmlBufNodeDump			(xmlBufPtr buf, 
      xmlDocPtr doc,
      xmlNodePtr cur,
      int level,
      int format)
      +

      Dump an XML node, recursive behaviour,children are printed too. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called

      +
      buf:the XML buffer output
      doc:the document
      cur:the current node
      level:the imbrication level for indenting
      format:is formatting allowed
      Returns:the number of bytes written to the buffer, in case of error 0 is returned or @buf stores the error
      +
      +

      xmlBufShrink ()

      size_t	xmlBufShrink			(xmlBufPtr buf, 
      size_t len)
      +

      Remove the beginning of an XML buffer. NOTE that this routine behaviour differs from xmlBufferShrink() as it will return 0 on error instead of -1 due to size_t being used as the return type.

      +
      buf:the buffer to dump
      len:the number of xmlChar to remove
      Returns:the number of byte removed or 0 in case of failure
      +
      +

      xmlBufUse ()

      size_t	xmlBufUse			(const xmlBufPtr buf)
      +

      Function to get the length of a buffer

      +
      buf:the buffer
      Returns:the length of data in the internal content

      xmlBufferAdd ()

      int	xmlBufferAdd			(xmlBufferPtr buf, 
      const xmlChar * str,
      int len)

      Add a string range to an XML buffer. if len == -1, the length of str is recomputed.

      @@ -1184,7 +1231,7 @@ void xmlFreeNsList (
      parent:the parent node
      Returns:the last child or NULL if none.

      xmlGetLineNo ()

      long	xmlGetLineNo			(xmlNodePtr node)
      -

      Get line number of @node. This requires activation of this option before invoking the parser by calling xmlLineNumbersDefault(1)

      +

      Get line number of @node. Try to override the limitation of lines being store in 16 bits ints if XML_PARSE_BIG_LINES parser option was used

      node:valid node
      Returns:the line number if successful, -1 otherwise


      xmlNodeDump ()

      int	xmlNodeDump			(xmlBufferPtr buf, 
      xmlDocPtr doc,
      xmlNodePtr cur,
      int level,
      int format)
      -

      Dump an XML node, recursive behaviour,children are printed too. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called

      +

      Dump an XML node, recursive behaviour,children are printed too. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called Since this is using xmlBuffer structures it is limited to 2GB and somehow deprecated, use xmlBufNodeDump() instead.

      buf:the XML buffer output
      doc:the document
      cur:the current node
      level:the imbrication level for indenting
      format:is formatting allowed
      Returns:the number of bytes written to the buffer or -1 in case of error


      xmlUnlinkNode ()

      void	xmlUnlinkNode			(xmlNodePtr cur)
      -

      Unlink a node from it's current context, the node is not freed If one need to free the node, use xmlFreeNode() routine after the unlink to discard it.

      +

      Unlink a node from it's current context, the node is not freed If one need to free the node, use xmlFreeNode() routine after the unlink to discard it. Note that namespace nodes can't be unlinked as they do not have pointer to their parent.

      cur:the node

      xmlUnsetNsProp ()

      int	xmlUnsetNsProp			(xmlNodePtr node, 
      xmlNsPtr ns,
      const xmlChar * name)
      diff --git a/doc/devhelp/libxml2-xmlIO.html b/doc/devhelp/libxml2-xmlIO.html index 8c41d1d..5bccc27 100644 --- a/doc/devhelp/libxml2-xmlIO.html +++ b/doc/devhelp/libxml2-xmlIO.html @@ -82,9 +82,11 @@ void * xmlIOHTTPOpen (const char * filename); xmlChar * xmlNormalizeWindowsPath (const xmlChar * path); typedef int xmlInputReadCallback (void * context,
      char * buffer,
      int len); xmlParserInputBufferPtr xmlParserInputBufferCreateStatic (const char * mem,
      int size,
      xmlCharEncoding enc); +const xmlChar * xmlOutputBufferGetContent (xmlOutputBufferPtr out); int xmlIOHTTPClose (void * context); int xmlOutputBufferWriteEscape (xmlOutputBufferPtr out,
      const xmlChar * str,
      xmlCharEncodingOutputFunc escaping); xmlOutputBufferPtr xmlOutputBufferCreateFilename (const char * URI,
      xmlCharEncodingHandlerPtr encoder,
      int compression); +size_t xmlOutputBufferGetSize (xmlOutputBufferPtr out); void xmlCleanupOutputCallbacks (void); typedef void * xmlInputOpenCallback (char const * filename); int xmlParserInputBufferRead (xmlParserInputBufferPtr in,
      int len); @@ -254,6 +256,14 @@ void * xmlIOHTTPOpenW (const char * post_uri,

      xmlOutputBufferFlush ()

      int	xmlOutputBufferFlush		(xmlOutputBufferPtr out)

      flushes the output I/O channel

      out:a buffered output
      Returns:the number of byte written or -1 in case of error.
      +
      +

      xmlOutputBufferGetContent ()

      const xmlChar *	xmlOutputBufferGetContent	(xmlOutputBufferPtr out)
      +

      Gives a pointer to the data currently held in the output buffer

      +
      out:an xmlOutputBufferPtr
      Returns:a pointer to the data or NULL in case of error
      +
      +

      xmlOutputBufferGetSize ()

      size_t	xmlOutputBufferGetSize		(xmlOutputBufferPtr out)
      +

      Gives the length of the data currently held in the output buffer

      +
      out:an xmlOutputBufferPtr
      Returns:0 in case or error or no data is held, the size otherwise

      xmlOutputBufferWrite ()

      int	xmlOutputBufferWrite		(xmlOutputBufferPtr out, 
      int len,
      const char * buf)

      Write the content of the array in the output I/O buffer This routine handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.

      diff --git a/doc/devhelp/libxml2-xmlerror.html b/doc/devhelp/libxml2-xmlerror.html index cf445dd..4ebaa60 100644 --- a/doc/devhelp/libxml2-xmlerror.html +++ b/doc/devhelp/libxml2-xmlerror.html @@ -120,7 +120,9 @@ void xmlResetError (XML_FROM_WRITER = 25 /* The xmlwriter module */ XML_FROM_MODULE = 26 /* The dynamically loaded module modul */ XML_FROM_I18N = 27 /* The module handling character conversion */ - XML_FROM_SCHEMATRONV = 28 /* The Schematron validator module */ + XML_FROM_SCHEMATRONV = 28 /* The Schematron validator module */ + XML_FROM_BUFFER = 29 /* The buffers module */ + XML_FROM_URI = 30 /* The URI module */ };

      @@ -249,6 +251,7 @@ void xmlResetError (XML_WAR_ENTITY_REDEFINED = 107 /* 107 */ XML_ERR_UNKNOWN_VERSION = 108 /* 108 */ XML_ERR_VERSION_MISMATCH = 109 /* 109 */ + XML_ERR_NAME_TOO_LONG = 110 /* 110 */ XML_NS_ERR_XML_NAMESPACE = 200 XML_NS_ERR_UNDEFINED_NAMESPACE = 201 /* 201 */ XML_NS_ERR_QNAME = 202 /* 202 */ @@ -870,8 +873,7 @@ void xmlResetError (XML_I18N_EXCESS_HANDLER = 6002 /* 6002 */ XML_I18N_CONV_FAILED = 6003 /* 6003 */ XML_I18N_NO_OUTPUT = 6004 /* 6004 */ - XML_CHECK_ = 6005 /* 5033 */ - XML_CHECK_X = 6006 /* 503 */ + XML_BUF_OVERFLOW = 7000 };

      diff --git a/doc/devhelp/libxml2-xmlmodule.html b/doc/devhelp/libxml2-xmlmodule.html index 554cd91..08bb4ef 100644 --- a/doc/devhelp/libxml2-xmlmodule.html +++ b/doc/devhelp/libxml2-xmlmodule.html @@ -84,11 +84,11 @@ The content of this structure is not made public by the API.

      module:the module handle
      Returns:0 in case of success, -1 in case of argument error

      xmlModuleOpen ()

      xmlModulePtr	xmlModuleOpen		(const char * name, 
      int options)
      -

      Opens a module/shared library given its name or path TODO: options are not yet implemented.

      +

      Opens a module/shared library given its name or path NOTE: that due to portability issues, behaviour can only be guaranteed with @name using ASCII. We canot guarantee that an UTF-8 string would work, which is why name is a const char * and not a const xmlChar * . TODO: options are not yet implemented.

      name:the module name
      options:a set of xmlModuleOption
      Returns:a handle for the module or NULL in case of error

      xmlModuleSymbol ()

      int	xmlModuleSymbol			(xmlModulePtr module, 
      const char * name,
      void ** symbol)
      -

      Lookup for a symbol address in the given module

      +

      Lookup for a symbol address in the given module NOTE: that due to portability issues, behaviour can only be guaranteed with @name using ASCII. We canot guarantee that an UTF-8 string would work, which is why name is a const char * and not a const xmlChar * .

      module:the module
      name:the name of the symbol
      symbol:the resulting symbol address
      Returns:0 if the symbol was found, or -1 in case of error

      diff --git a/doc/devhelp/libxml2-xmlschemas.html b/doc/devhelp/libxml2-xmlschemas.html index cc49dfa..533c114 100644 --- a/doc/devhelp/libxml2-xmlschemas.html +++ b/doc/devhelp/libxml2-xmlschemas.html @@ -57,12 +57,14 @@ typedef struct _xmlSchemaValidCtxt xmlSchemaValidC int xmlSchemaSAXUnplug (xmlSchemaSAXPlugPtr plug); xmlSchemaPtr xmlSchemaParse (xmlSchemaParserCtxtPtr ctxt); void xmlSchemaFreeParserCtxt (xmlSchemaParserCtxtPtr ctxt); +void xmlSchemaValidateSetFilename (xmlSchemaValidCtxtPtr vctxt,
      const char * filename); xmlSchemaParserCtxtPtr xmlSchemaNewParserCtxt (const char * URL); int xmlSchemaIsValid (xmlSchemaValidCtxtPtr ctxt); typedef void xmlSchemaValidityErrorFunc (void * ctx,
      const char * msg,
      ... ...); xmlSchemaSAXPlugPtr xmlSchemaSAXPlug (xmlSchemaValidCtxtPtr ctxt,
      xmlSAXHandlerPtr * sax,
      void ** user_data); int xmlSchemaValidateStream (xmlSchemaValidCtxtPtr ctxt,
      xmlParserInputBufferPtr input,
      xmlCharEncoding enc,
      xmlSAXHandlerPtr sax,
      void * user_data); int xmlSchemaGetParserErrors (xmlSchemaParserCtxtPtr ctxt,
      xmlSchemaValidityErrorFunc * err,
      xmlSchemaValidityWarningFunc * warn,
      void ** ctx); +void xmlSchemaValidateSetLocator (xmlSchemaValidCtxtPtr vctxt,
      xmlSchemaValidityLocatorFunc f,
      void * ctxt); int xmlSchemaValidateOneElement (xmlSchemaValidCtxtPtr ctxt,
      xmlNodePtr elem); void xmlSchemaSetValidStructuredErrors (xmlSchemaValidCtxtPtr ctxt,
      xmlStructuredErrorFunc serror,
      void * ctx); void xmlSchemaSetValidErrors (xmlSchemaValidCtxtPtr ctxt,
      xmlSchemaValidityErrorFunc err,
      xmlSchemaValidityWarningFunc warn,
      void * ctx); @@ -71,6 +73,7 @@ int xmlSchemaValidateFile (xmlSchemaValidateDoc (xmlSchemaValidCtxtPtr ctxt,
      xmlDocPtr doc); void xmlSchemaFree (xmlSchemaPtr schema); xmlSchemaParserCtxtPtr xmlSchemaNewMemParserCtxt (const char * buffer,
      int size); +typedef int xmlSchemaValidityLocatorFunc (void * ctx,
      const char ** file,
      unsigned long * line); int xmlSchemaGetValidErrors (xmlSchemaValidCtxtPtr ctxt,
      xmlSchemaValidityErrorFunc * err,
      xmlSchemaValidityWarningFunc * warn,
      void ** ctx); int xmlSchemaSetValidOptions (xmlSchemaValidCtxtPtr ctxt,
      int options); void xmlSchemaSetParserErrors (xmlSchemaParserCtxtPtr ctxt,
      xmlSchemaValidityErrorFunc err,
      xmlSchemaValidityWarningFunc warn,
      void * ctx); @@ -188,6 +191,10 @@ The content of this structure is not made public by the API. +
      +

      Function type xmlSchemaValidityWarningFunc

      void	xmlSchemaValidityWarningFunc	(void * ctx, 
      const char * msg,
      ... ...)

      Signature of a warning callback from an XSD validation

      @@ -288,6 +295,14 @@ The content of this structure is not made public by the API.

      xmlSchemaValidateOneElement ()

      int	xmlSchemaValidateOneElement	(xmlSchemaValidCtxtPtr ctxt, 
      xmlNodePtr elem)

      Validate a branch of a tree, starting with the given @elem.

      ctxt:a schema validation context
      elem:an element node
      Returns:0 if the element and its subtree is valid, a positive error code number otherwise and -1 in case of an internal or API error.
      +
      +

      xmlSchemaValidateSetFilename ()

      void	xmlSchemaValidateSetFilename	(xmlSchemaValidCtxtPtr vctxt, 
      const char * filename)
      +

      Workaround to provide file error reporting information when this is not provided by current APIs

      +
      vctxt:the schema validation context
      filename:the file name
      +
      +

      xmlSchemaValidateSetLocator ()

      void	xmlSchemaValidateSetLocator	(xmlSchemaValidCtxtPtr vctxt, 
      xmlSchemaValidityLocatorFunc f,
      void * ctxt)
      +

      Allows to set a locator function to the validation context, which will be used to provide file and line information since those are not provided as part of the SAX validation flow Setting @f to NULL disable the locator.

      +
      vctxt:a schema validation context
      f:the locator function pointer
      ctxt:the locator context

      xmlSchemaValidateStream ()

      int	xmlSchemaValidateStream		(xmlSchemaValidCtxtPtr ctxt, 
      xmlParserInputBufferPtr input,
      xmlCharEncoding enc,
      xmlSAXHandlerPtr sax,
      void * user_data)

      Validate an input based on a flow of SAX event from the parser and forward the events to the @sax handler with the provided @user_data the user provided @sax handler must be a SAX2 one.

      diff --git a/doc/devhelp/libxml2-xmlwriter.html b/doc/devhelp/libxml2-xmlwriter.html index 358c9e6..7c2be92 100644 --- a/doc/devhelp/libxml2-xmlwriter.html +++ b/doc/devhelp/libxml2-xmlwriter.html @@ -51,7 +51,7 @@ int xmlTextWriterStartDocument (xmlTextWriterEndPI (xmlTextWriterPtr writer); int xmlTextWriterWriteBase64 (xmlTextWriterPtr writer,
      const char * data,
      int start,
      int len); int xmlTextWriterSetIndentString (xmlTextWriterPtr writer,
      const xmlChar * str); -void xmlFreeTextWriter (xmlTextWriterPtr writer); +int xmlTextWriterStartAttribute (xmlTextWriterPtr writer,
      const xmlChar * name); int xmlTextWriterEndComment (xmlTextWriterPtr writer); int xmlTextWriterWriteRawLen (xmlTextWriterPtr writer,
      const xmlChar * content,
      int len); int xmlTextWriterWriteDTDExternalEntityContents (xmlTextWriterPtr writer,
      const xmlChar * pubid,
      const xmlChar * sysid,
      const xmlChar * ndataid); @@ -73,7 +73,7 @@ int xmlTextWriterEndCDATA (xmlTextWriterStartElementNS (xmlTextWriterPtr writer,
      const xmlChar * prefix,
      const xmlChar * name,
      const xmlChar * namespaceURI); int xmlTextWriterEndDTDEntity (xmlTextWriterPtr writer); xmlTextWriterPtr xmlNewTextWriter (xmlOutputBufferPtr out); -int xmlTextWriterStartAttribute (xmlTextWriterPtr writer,
      const xmlChar * name); +void xmlFreeTextWriter (xmlTextWriterPtr writer); int xmlTextWriterWriteVFormatDTDAttlist (xmlTextWriterPtr writer,
      const xmlChar * name,
      const char * format,
      va_list argptr); int xmlTextWriterStartPI (xmlTextWriterPtr writer,
      const xmlChar * target); int xmlTextWriterStartElement (xmlTextWriterPtr writer,
      const xmlChar * name); @@ -99,8 +99,9 @@ int xmlTextWriterWriteDTDInternal int xmlTextWriterWriteVFormatElementNS (xmlTextWriterPtr writer,
      const xmlChar * prefix,
      const xmlChar * name,
      const xmlChar * namespaceURI,
      const char * format,
      va_list argptr); int xmlTextWriterWriteDTDNotation (xmlTextWriterPtr writer,
      const xmlChar * name,
      const xmlChar * pubid,
      const xmlChar * sysid); int xmlTextWriterWriteFormatElement (xmlTextWriterPtr writer,
      const xmlChar * name,
      const char * format,
      ... ...); -int xmlTextWriterWriteElementNS (xmlTextWriterPtr writer,
      const xmlChar * prefix,
      const xmlChar * name,
      const xmlChar * namespaceURI,
      const xmlChar * content); +int xmlTextWriterSetQuoteChar (xmlTextWriterPtr writer,
      xmlChar quotechar); int xmlTextWriterWriteString (xmlTextWriterPtr writer,
      const xmlChar * content); +int xmlTextWriterWriteElementNS (xmlTextWriterPtr writer,
      const xmlChar * prefix,
      const xmlChar * name,
      const xmlChar * namespaceURI,
      const xmlChar * content); int xmlTextWriterFullEndElement (xmlTextWriterPtr writer); int xmlTextWriterWriteVFormatAttributeNS (xmlTextWriterPtr writer,
      const xmlChar * prefix,
      const xmlChar * name,
      const xmlChar * namespaceURI,
      const char * format,
      va_list argptr); int xmlTextWriterFlush (xmlTextWriterPtr writer); @@ -235,6 +236,10 @@ The content of this structure is not made public by the API.

      xmlTextWriterSetIndentString ()

      int	xmlTextWriterSetIndentString	(xmlTextWriterPtr writer, 
      const xmlChar * str)

      Set string indentation.

      writer:the xmlTextWriterPtr
      str:the xmlChar string
      Returns:-1 on error or 0 otherwise.
      +
      +

      xmlTextWriterSetQuoteChar ()

      int	xmlTextWriterSetQuoteChar	(xmlTextWriterPtr writer, 
      xmlChar quotechar)
      +

      Set the character used for quoting attributes.

      +
      writer:the xmlTextWriterPtr
      quotechar:the quote character
      Returns:-1 on error or 0 otherwise.

      xmlTextWriterStartAttribute ()

      int	xmlTextWriterStartAttribute	(xmlTextWriterPtr writer, 
      const xmlChar * name)

      Start an xml attribute.

      diff --git a/doc/devhelp/libxml2-xpath.html b/doc/devhelp/libxml2-xpath.html index 7efa7bc..d2a0afc 100644 --- a/doc/devhelp/libxml2-xpath.html +++ b/doc/devhelp/libxml2-xpath.html @@ -246,6 +246,7 @@ The content of this structure is not made public by the API. XPATH_INVALID_CHAR_ERROR = 21 XPATH_INVALID_CTXT = 22 XPATH_STACK_ERROR = 23 + XPATH_FORBID_VARIABLE_ERROR = 24 };

      diff --git a/doc/devhelp/libxml2-xpathInternals.html b/doc/devhelp/libxml2-xpathInternals.html index 6200688..0597343 100644 --- a/doc/devhelp/libxml2-xpathInternals.html +++ b/doc/devhelp/libxml2-xpathInternals.html @@ -153,7 +153,7 @@ void xmlXPathModValues (xmlXPathObjectPtr xmlXPathWrapString (xmlChar * val); void xmlXPathLangFunction (xmlXPathParserContextPtr ctxt,
      int nargs); int xmlXPathRegisterFuncNS (xmlXPathContextPtr ctxt,
      const xmlChar * name,
      const xmlChar * ns_uri,
      xmlXPathFunction f); -void xmlXPathNodeSetAddNs (xmlNodeSetPtr cur,
      xmlNodePtr node,
      xmlNsPtr ns); +int xmlXPathNodeSetAddNs (xmlNodeSetPtr cur,
      xmlNodePtr node,
      xmlNsPtr ns); void xmlXPathLocalNameFunction (xmlXPathParserContextPtr ctxt,
      int nargs); xmlNodeSetPtr xmlXPathDifference (xmlNodeSetPtr nodes1,
      xmlNodeSetPtr nodes2); xmlNodeSetPtr xmlXPathLeadingSorted (xmlNodeSetPtr nodes1,
      xmlNodeSetPtr nodes2); @@ -171,8 +171,8 @@ void xmlXPathSubstringAfterFunctionxmlXPathObjectPtr xmlXPathWrapCString (char * val); void xmlXPathFreeParserContext (xmlXPathParserContextPtr ctxt); xmlNodeSetPtr xmlXPathNodeTrailing (xmlNodeSetPtr nodes,
      xmlNodePtr node); -void xmlXPathNodeSetAdd (xmlNodeSetPtr cur,
      xmlNodePtr val); -void xmlXPathNodeSetAddUnique (xmlNodeSetPtr cur,
      xmlNodePtr val); +int xmlXPathNodeSetAdd (xmlNodeSetPtr cur,
      xmlNodePtr val); +int xmlXPathNodeSetAddUnique (xmlNodeSetPtr cur,
      xmlNodePtr val); xmlXPathObjectPtr xmlXPathNewValueTree (xmlNodePtr val); xmlNodeSetPtr xmlXPathDistinct (xmlNodeSetPtr nodes); xmlXPathObjectPtr xmlXPathVariableLookup (xmlXPathContextPtr ctxt,
      const xmlChar * name); @@ -549,17 +549,17 @@ void xmlXPathDebugDumpObject (FILE * out

      Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set)

      nodes:a node-set, sorted by document order
      node:a node
      Returns:the nodes in @nodes that precede @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn't contain @node

      -

      xmlXPathNodeSetAdd ()

      void	xmlXPathNodeSetAdd		(xmlNodeSetPtr cur, 
      xmlNodePtr val)
      +

      xmlXPathNodeSetAdd ()

      int	xmlXPathNodeSetAdd		(xmlNodeSetPtr cur, 
      xmlNodePtr val)

      add a new xmlNodePtr to an existing NodeSet

      -
      cur:the initial node set
      val:a new xmlNodePtr
      +
      cur:the initial node set
      val:a new xmlNodePtr
      Returns:0 in case of success, and -1 in case of error

      -

      xmlXPathNodeSetAddNs ()

      void	xmlXPathNodeSetAddNs		(xmlNodeSetPtr cur, 
      xmlNodePtr node,
      xmlNsPtr ns)
      +

      xmlXPathNodeSetAddNs ()

      int	xmlXPathNodeSetAddNs		(xmlNodeSetPtr cur, 
      xmlNodePtr node,
      xmlNsPtr ns)

      add a new namespace node to an existing NodeSet

      -
      cur:the initial node set
      node:the hosting node
      ns:a the namespace node
      +
      cur:the initial node set
      node:the hosting node
      ns:a the namespace node
      Returns:0 in case of success and -1 in case of error

      -

      xmlXPathNodeSetAddUnique ()

      void	xmlXPathNodeSetAddUnique	(xmlNodeSetPtr cur, 
      xmlNodePtr val)
      +

      xmlXPathNodeSetAddUnique ()

      int	xmlXPathNodeSetAddUnique	(xmlNodeSetPtr cur, 
      xmlNodePtr val)

      add a new xmlNodePtr to an existing NodeSet, optimized version when we are sure the node is not already in the set.

      -
      cur:the initial node set
      val:a new xmlNodePtr
      +
      cur:the initial node set
      val:a new xmlNodePtr
      Returns:0 in case of success and -1 in case of failure

      xmlXPathNodeSetContains ()

      int	xmlXPathNodeSetContains		(xmlNodeSetPtr cur, 
      xmlNodePtr val)

      checks whether @cur contains @val

      diff --git a/doc/devhelp/libxml2.devhelp b/doc/devhelp/libxml2.devhelp index e564951..3005571 100644 --- a/doc/devhelp/libxml2.devhelp +++ b/doc/devhelp/libxml2.devhelp @@ -91,6 +91,7 @@ + @@ -164,7 +165,10 @@ + + + @@ -351,6 +355,7 @@ + @@ -397,7 +402,6 @@ - @@ -436,7 +440,6 @@ - @@ -574,6 +577,7 @@ + @@ -625,6 +629,7 @@ + @@ -648,6 +653,7 @@ + @@ -767,6 +773,7 @@ + @@ -1509,6 +1516,7 @@ + @@ -1573,6 +1581,7 @@ + @@ -1710,6 +1719,7 @@ + @@ -1868,6 +1878,7 @@ + @@ -2097,6 +2108,12 @@ + + + + + + @@ -2238,10 +2255,12 @@ + + @@ -2602,6 +2621,8 @@ + + @@ -2897,6 +2918,8 @@ + + @@ -3069,6 +3092,7 @@ + diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am index bdac7bb..57af9c2 100644 --- a/doc/examples/Makefile.am +++ b/doc/examples/Makefile.am @@ -1,134 +1,135 @@ -# Beware this is autogenerated by index.py -INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I@srcdir@/include @THREAD_CFLAGS@ @Z_CFLAGS@ -DEPS = $(top_builddir)/libxml2.la -LDADDS = @STATIC_BINARIES@ $(top_builddir)/libxml2.la @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) -lm @WIN32_EXTRA_LIBADD@ +## +## This file is auto-generated by index.py +## DO NOT EDIT !!! +## +AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include -I$(srcdir)/include +AM_CFLAGS = $(THREAD_CFLAGS) $(Z_CFLAGS) +LDADD = $(RDL_LIBS) $(STATIC_BINARIES) $(top_builddir)/libxml2.la $(THREAD_LIBS) $(Z_LIBS) $(ICONV_LIBS) -lm $(WIN32_EXTRA_LIBADD) + +CLEANFILES = *.tmp + +if REBUILD_DOCS rebuild: examples.xml index.html +.PHONY: rebuild -examples.xml: index.py *.c - -@($(srcdir)/index.py) +examples.xml: index.py $(noinst_PROGRAMS:=.c) + cd $(srcdir) && $(PYTHON) index.py + $(MAKE) Makefile index.html: examples.xml examples.xsl - -@(xsltproc examples.xsl examples.xml && echo "Rebuilt web page" && xmllint --valid --noout index.html) + cd $(srcdir) && xsltproc examples.xsl examples.xml && echo "Rebuilt web page" + -cd $(srcdir) && xmllint --valid --noout index.html +endif install-data-local: - @MKDIR_P@ $(DESTDIR)$(HTML_DIR) - -@INSTALL@ -m 0644 $(srcdir)/*.html $(srcdir)/*.c $(srcdir)/*.xml $(srcdir)/*.xsl $(srcdir)/*.res $(DESTDIR)$(HTML_DIR) - -EXTRA_DIST=examples.xsl index.py examples.xml writer.xml test3.xml tst.xml test1.xml test2.xml io2.res xpath2.res tree1.res reader4.res io1.res tree2.res reader3.res xpath1.res reader1.res - -noinst_PROGRAMS=xpath2 reader1 reader4 parse2 reader2 parse3 reader3 tree2 parse4 io2 testWriter io1 xpath1 parse1 tree1 - -xpath2_SOURCES=xpath2.c -xpath2_LDFLAGS= -xpath2_DEPENDENCIES= $(DEPS) -xpath2_LDADD= @RDL_LIBS@ $(LDADDS) - -reader1_SOURCES=reader1.c -reader1_LDFLAGS= -reader1_DEPENDENCIES= $(DEPS) -reader1_LDADD= @RDL_LIBS@ $(LDADDS) - -reader4_SOURCES=reader4.c -reader4_LDFLAGS= -reader4_DEPENDENCIES= $(DEPS) -reader4_LDADD= @RDL_LIBS@ $(LDADDS) - -parse2_SOURCES=parse2.c -parse2_LDFLAGS= -parse2_DEPENDENCIES= $(DEPS) -parse2_LDADD= @RDL_LIBS@ $(LDADDS) - -reader2_SOURCES=reader2.c -reader2_LDFLAGS= -reader2_DEPENDENCIES= $(DEPS) -reader2_LDADD= @RDL_LIBS@ $(LDADDS) - -parse3_SOURCES=parse3.c -parse3_LDFLAGS= -parse3_DEPENDENCIES= $(DEPS) -parse3_LDADD= @RDL_LIBS@ $(LDADDS) - -reader3_SOURCES=reader3.c -reader3_LDFLAGS= -reader3_DEPENDENCIES= $(DEPS) -reader3_LDADD= @RDL_LIBS@ $(LDADDS) - -tree2_SOURCES=tree2.c -tree2_LDFLAGS= -tree2_DEPENDENCIES= $(DEPS) -tree2_LDADD= @RDL_LIBS@ $(LDADDS) - -parse4_SOURCES=parse4.c -parse4_LDFLAGS= -parse4_DEPENDENCIES= $(DEPS) -parse4_LDADD= @RDL_LIBS@ $(LDADDS) - -io2_SOURCES=io2.c -io2_LDFLAGS= -io2_DEPENDENCIES= $(DEPS) -io2_LDADD= @RDL_LIBS@ $(LDADDS) - -testWriter_SOURCES=testWriter.c -testWriter_LDFLAGS= -testWriter_DEPENDENCIES= $(DEPS) -testWriter_LDADD= @RDL_LIBS@ $(LDADDS) - -io1_SOURCES=io1.c -io1_LDFLAGS= -io1_DEPENDENCIES= $(DEPS) -io1_LDADD= @RDL_LIBS@ $(LDADDS) - -xpath1_SOURCES=xpath1.c -xpath1_LDFLAGS= -xpath1_DEPENDENCIES= $(DEPS) -xpath1_LDADD= @RDL_LIBS@ $(LDADDS) - -parse1_SOURCES=parse1.c -parse1_LDFLAGS= -parse1_DEPENDENCIES= $(DEPS) -parse1_LDADD= @RDL_LIBS@ $(LDADDS) - -tree1_SOURCES=tree1.c -tree1_LDFLAGS= -tree1_DEPENDENCIES= $(DEPS) -tree1_LDADD= @RDL_LIBS@ $(LDADDS) + $(MKDIR_P) $(DESTDIR)$(HTML_DIR) + -$(INSTALL) -m 0644 $(srcdir)/*.html $(srcdir)/*.c $(srcdir)/*.xml $(srcdir)/*.xsl $(srcdir)/*.res $(DESTDIR)$(HTML_DIR) + +clean-local: + test -f Makefile.am || rm -f test?.xml + +EXTRA_DIST = \ + examples.xml \ + examples.xsl \ + index.html \ + index.py \ + io1.res \ + io2.res \ + reader1.res \ + reader3.res \ + reader4.res \ + test1.xml \ + test2.xml \ + test3.xml \ + tree1.res \ + tree2.res \ + tst.xml \ + writer.xml \ + xpath1.res \ + xpath2.res + +noinst_PROGRAMS = \ + io1 \ + io2 \ + parse1 \ + parse2 \ + parse3 \ + parse4 \ + reader1 \ + reader2 \ + reader3 \ + reader4 \ + testWriter \ + tree1 \ + tree2 \ + xpath1 \ + xpath2 + +io1_SOURCES = io1.c + +io2_SOURCES = io2.c + +parse1_SOURCES = parse1.c + +parse2_SOURCES = parse2.c + +parse3_SOURCES = parse3.c + +parse4_SOURCES = parse4.c + +reader1_SOURCES = reader1.c + +reader2_SOURCES = reader2.c + +reader3_SOURCES = reader3.c + +reader4_SOURCES = reader4.c + +testWriter_SOURCES = testWriter.c + +tree1_SOURCES = tree1.c + +tree2_SOURCES = tree2.c + +xpath1_SOURCES = xpath1.c + +xpath2_SOURCES = xpath2.c valgrind: $(MAKE) CHECKER='valgrind' tests tests: $(noinst_PROGRAMS) + test -f Makefile.am || test -f test1.xml || $(LN_S) $(srcdir)/test?.xml . @(echo '## examples regression tests') @(echo > .memdump) - @($(CHECKER) ./xpath2 test3.xml '//discarded' discarded > xpath2.tmp ; diff xpath2.tmp xpath2.res ; rm xpath2.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./reader1 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./reader4 test1.xml test2.xml test3.xml > reader4.tmp ; diff reader4.tmp reader4.res ; rm reader4.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./parse2 test2.xml) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./reader2 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./parse3) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./reader3 > reader3.tmp ; diff reader3.tmp reader3.res ; rm reader3.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./tree2 > tree2.tmp ; diff tree2.tmp tree2.res ; rm tree2.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./parse4 test3.xml) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./io2 > io2.tmp ; diff io2.tmp io2.res ; rm -f io2.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./testWriter ; for i in 1 2 3 4 ; do diff writer.xml writer$$i.res ; done ; rm writer*.res) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./io1 > io1.tmp ; diff io1.tmp io1.res ; rm -f io1.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ././xpath1 test3.xml '//child2' > xpath1.tmp ; diff xpath1.tmp xpath1.res ; rm xpath1.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./parse1 test1.xml) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./tree1 test2.xml > tree1.tmp ; diff tree1.tmp tree1.res ; rm tree1.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - - + $(CHECKER) ./io1 > io1.tmp && diff io1.tmp $(srcdir)/io1.res + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./io2 > io2.tmp && diff io2.tmp $(srcdir)/io2.res + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./parse1 test1.xml + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./parse2 test2.xml + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./parse3 + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./parse4 test3.xml + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./reader1 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./reader2 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./reader3 > reader3.tmp && diff reader3.tmp $(srcdir)/reader3.res + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./reader4 test1.xml test2.xml test3.xml > reader4.tmp && diff reader4.tmp $(srcdir)/reader4.res + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./testWriter && for i in 1 2 3 4 ; do diff $(srcdir)/writer.xml writer$$i.tmp || break ; done + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./tree1 test2.xml > tree1.tmp && diff tree1.tmp $(srcdir)/tree1.res + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./tree2 > tree2.tmp && diff tree2.tmp $(srcdir)/tree2.res + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./xpath1 test3.xml '//child2' > xpath1.tmp && diff xpath1.tmp $(srcdir)/xpath1.res + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./xpath2 test3.xml '//discarded' discarded > xpath2.tmp && diff xpath2.tmp $(srcdir)/xpath2.res + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 diff --git a/doc/examples/Makefile.in b/doc/examples/Makefile.in index 9d08434..dc0cbd7 100644 --- a/doc/examples/Makefile.in +++ b/doc/examples/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -34,11 +34,11 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -noinst_PROGRAMS = xpath2$(EXEEXT) reader1$(EXEEXT) reader4$(EXEEXT) \ - parse2$(EXEEXT) reader2$(EXEEXT) parse3$(EXEEXT) \ - reader3$(EXEEXT) tree2$(EXEEXT) parse4$(EXEEXT) io2$(EXEEXT) \ - testWriter$(EXEEXT) io1$(EXEEXT) xpath1$(EXEEXT) \ - parse1$(EXEEXT) tree1$(EXEEXT) +noinst_PROGRAMS = io1$(EXEEXT) io2$(EXEEXT) parse1$(EXEEXT) \ + parse2$(EXEEXT) parse3$(EXEEXT) parse4$(EXEEXT) \ + reader1$(EXEEXT) reader2$(EXEEXT) reader3$(EXEEXT) \ + reader4$(EXEEXT) testWriter$(EXEEXT) tree1$(EXEEXT) \ + tree2$(EXEEXT) xpath1$(EXEEXT) xpath2$(EXEEXT) subdir = doc/examples DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -55,84 +55,113 @@ CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) am_io1_OBJECTS = io1.$(OBJEXT) io1_OBJECTS = $(am_io1_OBJECTS) +io1_LDADD = $(LDADD) am__DEPENDENCIES_1 = -am__DEPENDENCIES_2 = $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +io1_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -io1_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(io1_LDFLAGS) $(LDFLAGS) -o $@ am_io2_OBJECTS = io2.$(OBJEXT) io2_OBJECTS = $(am_io2_OBJECTS) -io2_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(io2_LDFLAGS) $(LDFLAGS) -o $@ +io2_LDADD = $(LDADD) +io2_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am_parse1_OBJECTS = parse1.$(OBJEXT) parse1_OBJECTS = $(am_parse1_OBJECTS) -parse1_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(parse1_LDFLAGS) $(LDFLAGS) -o $@ +parse1_LDADD = $(LDADD) +parse1_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am_parse2_OBJECTS = parse2.$(OBJEXT) parse2_OBJECTS = $(am_parse2_OBJECTS) -parse2_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(parse2_LDFLAGS) $(LDFLAGS) -o $@ +parse2_LDADD = $(LDADD) +parse2_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am_parse3_OBJECTS = parse3.$(OBJEXT) parse3_OBJECTS = $(am_parse3_OBJECTS) -parse3_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(parse3_LDFLAGS) $(LDFLAGS) -o $@ +parse3_LDADD = $(LDADD) +parse3_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am_parse4_OBJECTS = parse4.$(OBJEXT) parse4_OBJECTS = $(am_parse4_OBJECTS) -parse4_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(parse4_LDFLAGS) $(LDFLAGS) -o $@ +parse4_LDADD = $(LDADD) +parse4_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am_reader1_OBJECTS = reader1.$(OBJEXT) reader1_OBJECTS = $(am_reader1_OBJECTS) -reader1_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(reader1_LDFLAGS) $(LDFLAGS) -o $@ +reader1_LDADD = $(LDADD) +reader1_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am_reader2_OBJECTS = reader2.$(OBJEXT) reader2_OBJECTS = $(am_reader2_OBJECTS) -reader2_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(reader2_LDFLAGS) $(LDFLAGS) -o $@ +reader2_LDADD = $(LDADD) +reader2_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am_reader3_OBJECTS = reader3.$(OBJEXT) reader3_OBJECTS = $(am_reader3_OBJECTS) -reader3_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(reader3_LDFLAGS) $(LDFLAGS) -o $@ +reader3_LDADD = $(LDADD) +reader3_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am_reader4_OBJECTS = reader4.$(OBJEXT) reader4_OBJECTS = $(am_reader4_OBJECTS) -reader4_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(reader4_LDFLAGS) $(LDFLAGS) -o $@ +reader4_LDADD = $(LDADD) +reader4_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am_testWriter_OBJECTS = testWriter.$(OBJEXT) testWriter_OBJECTS = $(am_testWriter_OBJECTS) -testWriter_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(testWriter_LDFLAGS) $(LDFLAGS) -o $@ +testWriter_LDADD = $(LDADD) +testWriter_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am_tree1_OBJECTS = tree1.$(OBJEXT) tree1_OBJECTS = $(am_tree1_OBJECTS) -tree1_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(tree1_LDFLAGS) $(LDFLAGS) -o $@ +tree1_LDADD = $(LDADD) +tree1_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am_tree2_OBJECTS = tree2.$(OBJEXT) tree2_OBJECTS = $(am_tree2_OBJECTS) -tree2_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(tree2_LDFLAGS) $(LDFLAGS) -o $@ +tree2_LDADD = $(LDADD) +tree2_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am_xpath1_OBJECTS = xpath1.$(OBJEXT) xpath1_OBJECTS = $(am_xpath1_OBJECTS) -xpath1_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(xpath1_LDFLAGS) $(LDFLAGS) -o $@ +xpath1_LDADD = $(LDADD) +xpath1_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am_xpath2_OBJECTS = xpath2.$(OBJEXT) xpath2_OBJECTS = $(am_xpath2_OBJECTS) -xpath2_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(xpath2_LDFLAGS) $(LDFLAGS) -o $@ +xpath2_LDADD = $(LDADD) +xpath2_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -143,21 +172,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(io1_SOURCES) $(io2_SOURCES) $(parse1_SOURCES) \ $(parse2_SOURCES) $(parse3_SOURCES) $(parse4_SOURCES) \ @@ -176,7 +205,6 @@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -213,6 +241,7 @@ HTML_DIR = @HTML_DIR@ HTML_OBJ = @HTML_OBJ@ HTTP_OBJ = @HTTP_OBJ@ ICONV_LIBS = @ICONV_LIBS@ +ICU_LIBS = @ICU_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -293,7 +322,6 @@ TEST_VTIME = @TEST_VTIME@ TEST_XINCLUDE = @TEST_XINCLUDE@ TEST_XPATH = @TEST_XPATH@ TEST_XPTR = @TEST_XPTR@ -THREADS_W32 = @THREADS_W32@ THREAD_CFLAGS = @THREAD_CFLAGS@ THREAD_LIBS = @THREAD_LIBS@ VERSION = @VERSION@ @@ -399,72 +427,45 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include -I$(srcdir)/include +AM_CFLAGS = $(THREAD_CFLAGS) $(Z_CFLAGS) +LDADD = $(RDL_LIBS) $(STATIC_BINARIES) $(top_builddir)/libxml2.la $(THREAD_LIBS) $(Z_LIBS) $(ICONV_LIBS) -lm $(WIN32_EXTRA_LIBADD) +CLEANFILES = *.tmp +EXTRA_DIST = \ + examples.xml \ + examples.xsl \ + index.html \ + index.py \ + io1.res \ + io2.res \ + reader1.res \ + reader3.res \ + reader4.res \ + test1.xml \ + test2.xml \ + test3.xml \ + tree1.res \ + tree2.res \ + tst.xml \ + writer.xml \ + xpath1.res \ + xpath2.res -# Beware this is autogenerated by index.py -INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I@srcdir@/include @THREAD_CFLAGS@ @Z_CFLAGS@ -DEPS = $(top_builddir)/libxml2.la -LDADDS = @STATIC_BINARIES@ $(top_builddir)/libxml2.la @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) -lm @WIN32_EXTRA_LIBADD@ -EXTRA_DIST = examples.xsl index.py examples.xml writer.xml test3.xml tst.xml test1.xml test2.xml io2.res xpath2.res tree1.res reader4.res io1.res tree2.res reader3.res xpath1.res reader1.res -xpath2_SOURCES = xpath2.c -xpath2_LDFLAGS = -xpath2_DEPENDENCIES = $(DEPS) -xpath2_LDADD = @RDL_LIBS@ $(LDADDS) -reader1_SOURCES = reader1.c -reader1_LDFLAGS = -reader1_DEPENDENCIES = $(DEPS) -reader1_LDADD = @RDL_LIBS@ $(LDADDS) -reader4_SOURCES = reader4.c -reader4_LDFLAGS = -reader4_DEPENDENCIES = $(DEPS) -reader4_LDADD = @RDL_LIBS@ $(LDADDS) +io1_SOURCES = io1.c +io2_SOURCES = io2.c +parse1_SOURCES = parse1.c parse2_SOURCES = parse2.c -parse2_LDFLAGS = -parse2_DEPENDENCIES = $(DEPS) -parse2_LDADD = @RDL_LIBS@ $(LDADDS) -reader2_SOURCES = reader2.c -reader2_LDFLAGS = -reader2_DEPENDENCIES = $(DEPS) -reader2_LDADD = @RDL_LIBS@ $(LDADDS) parse3_SOURCES = parse3.c -parse3_LDFLAGS = -parse3_DEPENDENCIES = $(DEPS) -parse3_LDADD = @RDL_LIBS@ $(LDADDS) -reader3_SOURCES = reader3.c -reader3_LDFLAGS = -reader3_DEPENDENCIES = $(DEPS) -reader3_LDADD = @RDL_LIBS@ $(LDADDS) -tree2_SOURCES = tree2.c -tree2_LDFLAGS = -tree2_DEPENDENCIES = $(DEPS) -tree2_LDADD = @RDL_LIBS@ $(LDADDS) parse4_SOURCES = parse4.c -parse4_LDFLAGS = -parse4_DEPENDENCIES = $(DEPS) -parse4_LDADD = @RDL_LIBS@ $(LDADDS) -io2_SOURCES = io2.c -io2_LDFLAGS = -io2_DEPENDENCIES = $(DEPS) -io2_LDADD = @RDL_LIBS@ $(LDADDS) +reader1_SOURCES = reader1.c +reader2_SOURCES = reader2.c +reader3_SOURCES = reader3.c +reader4_SOURCES = reader4.c testWriter_SOURCES = testWriter.c -testWriter_LDFLAGS = -testWriter_DEPENDENCIES = $(DEPS) -testWriter_LDADD = @RDL_LIBS@ $(LDADDS) -io1_SOURCES = io1.c -io1_LDFLAGS = -io1_DEPENDENCIES = $(DEPS) -io1_LDADD = @RDL_LIBS@ $(LDADDS) -xpath1_SOURCES = xpath1.c -xpath1_LDFLAGS = -xpath1_DEPENDENCIES = $(DEPS) -xpath1_LDADD = @RDL_LIBS@ $(LDADDS) -parse1_SOURCES = parse1.c -parse1_LDFLAGS = -parse1_DEPENDENCIES = $(DEPS) -parse1_LDADD = @RDL_LIBS@ $(LDADDS) tree1_SOURCES = tree1.c -tree1_LDFLAGS = -tree1_DEPENDENCIES = $(DEPS) -tree1_LDADD = @RDL_LIBS@ $(LDADDS) +tree2_SOURCES = tree2.c +xpath1_SOURCES = xpath1.c +xpath2_SOURCES = xpath2.c all: all-am .SUFFIXES: @@ -508,51 +509,51 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -io1$(EXEEXT): $(io1_OBJECTS) $(io1_DEPENDENCIES) +io1$(EXEEXT): $(io1_OBJECTS) $(io1_DEPENDENCIES) $(EXTRA_io1_DEPENDENCIES) @rm -f io1$(EXEEXT) - $(AM_V_CCLD)$(io1_LINK) $(io1_OBJECTS) $(io1_LDADD) $(LIBS) -io2$(EXEEXT): $(io2_OBJECTS) $(io2_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(io1_OBJECTS) $(io1_LDADD) $(LIBS) +io2$(EXEEXT): $(io2_OBJECTS) $(io2_DEPENDENCIES) $(EXTRA_io2_DEPENDENCIES) @rm -f io2$(EXEEXT) - $(AM_V_CCLD)$(io2_LINK) $(io2_OBJECTS) $(io2_LDADD) $(LIBS) -parse1$(EXEEXT): $(parse1_OBJECTS) $(parse1_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(io2_OBJECTS) $(io2_LDADD) $(LIBS) +parse1$(EXEEXT): $(parse1_OBJECTS) $(parse1_DEPENDENCIES) $(EXTRA_parse1_DEPENDENCIES) @rm -f parse1$(EXEEXT) - $(AM_V_CCLD)$(parse1_LINK) $(parse1_OBJECTS) $(parse1_LDADD) $(LIBS) -parse2$(EXEEXT): $(parse2_OBJECTS) $(parse2_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(parse1_OBJECTS) $(parse1_LDADD) $(LIBS) +parse2$(EXEEXT): $(parse2_OBJECTS) $(parse2_DEPENDENCIES) $(EXTRA_parse2_DEPENDENCIES) @rm -f parse2$(EXEEXT) - $(AM_V_CCLD)$(parse2_LINK) $(parse2_OBJECTS) $(parse2_LDADD) $(LIBS) -parse3$(EXEEXT): $(parse3_OBJECTS) $(parse3_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(parse2_OBJECTS) $(parse2_LDADD) $(LIBS) +parse3$(EXEEXT): $(parse3_OBJECTS) $(parse3_DEPENDENCIES) $(EXTRA_parse3_DEPENDENCIES) @rm -f parse3$(EXEEXT) - $(AM_V_CCLD)$(parse3_LINK) $(parse3_OBJECTS) $(parse3_LDADD) $(LIBS) -parse4$(EXEEXT): $(parse4_OBJECTS) $(parse4_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(parse3_OBJECTS) $(parse3_LDADD) $(LIBS) +parse4$(EXEEXT): $(parse4_OBJECTS) $(parse4_DEPENDENCIES) $(EXTRA_parse4_DEPENDENCIES) @rm -f parse4$(EXEEXT) - $(AM_V_CCLD)$(parse4_LINK) $(parse4_OBJECTS) $(parse4_LDADD) $(LIBS) -reader1$(EXEEXT): $(reader1_OBJECTS) $(reader1_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(parse4_OBJECTS) $(parse4_LDADD) $(LIBS) +reader1$(EXEEXT): $(reader1_OBJECTS) $(reader1_DEPENDENCIES) $(EXTRA_reader1_DEPENDENCIES) @rm -f reader1$(EXEEXT) - $(AM_V_CCLD)$(reader1_LINK) $(reader1_OBJECTS) $(reader1_LDADD) $(LIBS) -reader2$(EXEEXT): $(reader2_OBJECTS) $(reader2_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(reader1_OBJECTS) $(reader1_LDADD) $(LIBS) +reader2$(EXEEXT): $(reader2_OBJECTS) $(reader2_DEPENDENCIES) $(EXTRA_reader2_DEPENDENCIES) @rm -f reader2$(EXEEXT) - $(AM_V_CCLD)$(reader2_LINK) $(reader2_OBJECTS) $(reader2_LDADD) $(LIBS) -reader3$(EXEEXT): $(reader3_OBJECTS) $(reader3_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(reader2_OBJECTS) $(reader2_LDADD) $(LIBS) +reader3$(EXEEXT): $(reader3_OBJECTS) $(reader3_DEPENDENCIES) $(EXTRA_reader3_DEPENDENCIES) @rm -f reader3$(EXEEXT) - $(AM_V_CCLD)$(reader3_LINK) $(reader3_OBJECTS) $(reader3_LDADD) $(LIBS) -reader4$(EXEEXT): $(reader4_OBJECTS) $(reader4_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(reader3_OBJECTS) $(reader3_LDADD) $(LIBS) +reader4$(EXEEXT): $(reader4_OBJECTS) $(reader4_DEPENDENCIES) $(EXTRA_reader4_DEPENDENCIES) @rm -f reader4$(EXEEXT) - $(AM_V_CCLD)$(reader4_LINK) $(reader4_OBJECTS) $(reader4_LDADD) $(LIBS) -testWriter$(EXEEXT): $(testWriter_OBJECTS) $(testWriter_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(reader4_OBJECTS) $(reader4_LDADD) $(LIBS) +testWriter$(EXEEXT): $(testWriter_OBJECTS) $(testWriter_DEPENDENCIES) $(EXTRA_testWriter_DEPENDENCIES) @rm -f testWriter$(EXEEXT) - $(AM_V_CCLD)$(testWriter_LINK) $(testWriter_OBJECTS) $(testWriter_LDADD) $(LIBS) -tree1$(EXEEXT): $(tree1_OBJECTS) $(tree1_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(testWriter_OBJECTS) $(testWriter_LDADD) $(LIBS) +tree1$(EXEEXT): $(tree1_OBJECTS) $(tree1_DEPENDENCIES) $(EXTRA_tree1_DEPENDENCIES) @rm -f tree1$(EXEEXT) - $(AM_V_CCLD)$(tree1_LINK) $(tree1_OBJECTS) $(tree1_LDADD) $(LIBS) -tree2$(EXEEXT): $(tree2_OBJECTS) $(tree2_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(tree1_OBJECTS) $(tree1_LDADD) $(LIBS) +tree2$(EXEEXT): $(tree2_OBJECTS) $(tree2_DEPENDENCIES) $(EXTRA_tree2_DEPENDENCIES) @rm -f tree2$(EXEEXT) - $(AM_V_CCLD)$(tree2_LINK) $(tree2_OBJECTS) $(tree2_LDADD) $(LIBS) -xpath1$(EXEEXT): $(xpath1_OBJECTS) $(xpath1_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(tree2_OBJECTS) $(tree2_LDADD) $(LIBS) +xpath1$(EXEEXT): $(xpath1_OBJECTS) $(xpath1_DEPENDENCIES) $(EXTRA_xpath1_DEPENDENCIES) @rm -f xpath1$(EXEEXT) - $(AM_V_CCLD)$(xpath1_LINK) $(xpath1_OBJECTS) $(xpath1_LDADD) $(LIBS) -xpath2$(EXEEXT): $(xpath2_OBJECTS) $(xpath2_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(xpath1_OBJECTS) $(xpath1_LDADD) $(LIBS) +xpath2$(EXEEXT): $(xpath2_OBJECTS) $(xpath2_DEPENDENCIES) $(EXTRA_xpath2_DEPENDENCIES) @rm -f xpath2$(EXEEXT) - $(AM_V_CCLD)$(xpath2_LINK) $(xpath2_OBJECTS) $(xpath2_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(xpath2_OBJECTS) $(xpath2_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -579,26 +580,23 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -702,13 +700,19 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -719,7 +723,7 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ +clean-am: clean-generic clean-libtool clean-local clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am @@ -791,7 +795,7 @@ uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstPROGRAMS ctags distclean \ + clean-libtool clean-local clean-noinstPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ @@ -805,54 +809,61 @@ uninstall-am: tags uninstall uninstall-am -rebuild: examples.xml index.html +@REBUILD_DOCS_TRUE@rebuild: examples.xml index.html +@REBUILD_DOCS_TRUE@.PHONY: rebuild -examples.xml: index.py *.c - -@($(srcdir)/index.py) +@REBUILD_DOCS_TRUE@examples.xml: index.py $(noinst_PROGRAMS:=.c) +@REBUILD_DOCS_TRUE@ cd $(srcdir) && $(PYTHON) index.py +@REBUILD_DOCS_TRUE@ $(MAKE) Makefile -index.html: examples.xml examples.xsl - -@(xsltproc examples.xsl examples.xml && echo "Rebuilt web page" && xmllint --valid --noout index.html) +@REBUILD_DOCS_TRUE@index.html: examples.xml examples.xsl +@REBUILD_DOCS_TRUE@ cd $(srcdir) && xsltproc examples.xsl examples.xml && echo "Rebuilt web page" +@REBUILD_DOCS_TRUE@ -cd $(srcdir) && xmllint --valid --noout index.html install-data-local: - @MKDIR_P@ $(DESTDIR)$(HTML_DIR) - -@INSTALL@ -m 0644 $(srcdir)/*.html $(srcdir)/*.c $(srcdir)/*.xml $(srcdir)/*.xsl $(srcdir)/*.res $(DESTDIR)$(HTML_DIR) + $(MKDIR_P) $(DESTDIR)$(HTML_DIR) + -$(INSTALL) -m 0644 $(srcdir)/*.html $(srcdir)/*.c $(srcdir)/*.xml $(srcdir)/*.xsl $(srcdir)/*.res $(DESTDIR)$(HTML_DIR) + +clean-local: + test -f Makefile.am || rm -f test?.xml valgrind: $(MAKE) CHECKER='valgrind' tests tests: $(noinst_PROGRAMS) + test -f Makefile.am || test -f test1.xml || $(LN_S) $(srcdir)/test?.xml . @(echo '## examples regression tests') @(echo > .memdump) - @($(CHECKER) ./xpath2 test3.xml '//discarded' discarded > xpath2.tmp ; diff xpath2.tmp xpath2.res ; rm xpath2.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./reader1 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./reader4 test1.xml test2.xml test3.xml > reader4.tmp ; diff reader4.tmp reader4.res ; rm reader4.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./parse2 test2.xml) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./reader2 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./parse3) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./reader3 > reader3.tmp ; diff reader3.tmp reader3.res ; rm reader3.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./tree2 > tree2.tmp ; diff tree2.tmp tree2.res ; rm tree2.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./parse4 test3.xml) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./io2 > io2.tmp ; diff io2.tmp io2.res ; rm -f io2.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./testWriter ; for i in 1 2 3 4 ; do diff writer.xml writer$$i.res ; done ; rm writer*.res) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./io1 > io1.tmp ; diff io1.tmp io1.res ; rm -f io1.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ././xpath1 test3.xml '//child2' > xpath1.tmp ; diff xpath1.tmp xpath1.res ; rm xpath1.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./parse1 test1.xml) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) - @($(CHECKER) ./tree1 test2.xml > tree1.tmp ; diff tree1.tmp tree1.res ; rm tree1.tmp) - @(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0) + $(CHECKER) ./io1 > io1.tmp && diff io1.tmp $(srcdir)/io1.res + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./io2 > io2.tmp && diff io2.tmp $(srcdir)/io2.res + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./parse1 test1.xml + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./parse2 test2.xml + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./parse3 + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./parse4 test3.xml + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./reader1 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./reader2 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./reader3 > reader3.tmp && diff reader3.tmp $(srcdir)/reader3.res + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./reader4 test1.xml test2.xml test3.xml > reader4.tmp && diff reader4.tmp $(srcdir)/reader4.res + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./testWriter && for i in 1 2 3 4 ; do diff $(srcdir)/writer.xml writer$$i.tmp || break ; done + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./tree1 test2.xml > tree1.tmp && diff tree1.tmp $(srcdir)/tree1.res + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./tree2 > tree2.tmp && diff tree2.tmp $(srcdir)/tree2.res + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./xpath1 test3.xml '//child2' > xpath1.tmp && diff xpath1.tmp $(srcdir)/xpath1.res + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 + $(CHECKER) ./xpath2 test3.xml '//discarded' discarded > xpath2.tmp && diff xpath2.tmp $(srcdir)/xpath2.res + @grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0 # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/doc/examples/examples.xml b/doc/examples/examples.xml index a237a0e..28929cc 100644 --- a/doc/examples/examples.xml +++ b/doc/examples/examples.xml @@ -1,74 +1,9 @@ - - Parse and validate an XML file with an xmlReader - Demonstrate the use of xmlReaderForFile() to parse an XML file validating the content in the process and activating options like entities substitution, and DTD attributes defaulting. (Note that the XMLReader functions require libxml2 version later than 2.6.) - reader2 <valid_xml_filename> - reader2 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp - Daniel Veillard - see Copyright for the status of this software. -
      xmlReader
      - - <libxml/xmlreader.h> - - - - - - - - - - - - - - - - - - - - - -
      - - Load a document, locate subelements with XPath, modify said elements and save the resulting document. - Shows how to make a full round-trip from a load/edit/save - xpath2 <xml-file> <xpath-expr> <new-value> - xpath2 test3.xml '//discarded' discarded > xpath2.tmp ; diff xpath2.tmp xpath2.res ; rm xpath2.tmp - Aleksey Sanin and Daniel Veillard - see Copyright for the status of this software. -
      XPath
      - - <libxml/parser.h> - <libxml/xpath.h> - <libxml/xpathInternals.h> - <libxml/tree.h> - - - - - - - - - - - - - - - - - - - -
      Evaluate XPath expression and prints result node set. Shows how to evaluate XPath expression and register known namespaces in XPath context. xpath1 <xml-file> <xpath-expr> [<known-ns-list>] - ./xpath1 test3.xml '//child2' > xpath1.tmp ; diff xpath1.tmp xpath1.res ; rm xpath1.tmp + xpath1 test3.xml '//child2' > xpath1.tmp && diff xpath1.tmp $(srcdir)/xpath1.res Aleksey Sanin see Copyright for the status of this software.
      XPath
      @@ -123,34 +58,43 @@
      - - Output to char buffer - Demonstrate the use of xmlDocDumpMemory to output document to a character buffer - io2 - io2 > io2.tmp ; diff io2.tmp io2.res ; rm -f io2.tmp - John Fleck + + Parse and validate an XML file with an xmlReader + Demonstrate the use of xmlReaderForFile() to parse an XML file validating the content in the process and activating options like entities substitution, and DTD attributes defaulting. (Note that the XMLReader functions require libxml2 version later than 2.6.) + reader2 <valid_xml_filename> + reader2 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res + Daniel Veillard see Copyright for the status of this software. -
      InputOutput
      +
      xmlReader
      - <libxml/parser.h> + <libxml/xmlreader.h> - - - - - - - - - + + + + + + + + + + + + + + + + + +
      Creates a tree Shows how to create document, nodes and dump it to stdout or file. tree2 <filename> -Default output: stdout - tree2 > tree2.tmp ; diff tree2.tmp tree2.res ; rm tree2.tmp + tree2 > tree2.tmp && diff tree2.tmp $(srcdir)/tree2.res Lucas Brasilino <brasilino@recife.pe.gov.br> see Copyright for the status of this software
      Tree
      @@ -174,11 +118,113 @@
      + + Example of custom Input/Output + Demonstrate the use of xmlRegisterInputCallbacks to build a custom I/O layer, this is used in an XInclude method context to show how dynamic document can be built in a clean way. + io1 + io1 > io1.tmp && diff io1.tmp $(srcdir)/io1.res + Daniel Veillard + see Copyright for the status of this software. +
      InputOutput
      + + <libxml/parser.h> + <libxml/xmlIO.h> + <libxml/xinclude.h> + <libxml/tree.h> + + + + + + + + + + + + +
      + + Parse an XML document chunk by chunk to a tree and free it + Demonstrate the use of xmlCreatePushParserCtxt() and xmlParseChunk() to read an XML file progressively into a tree and and xmlFreeDoc() to free the resulting tree + parse4 test3.xml + parse4 test3.xml + Daniel Veillard + see Copyright for the status of this software. +
      Parsing
      + + <libxml/tree.h> + <libxml/parser.h> + + + + + + + + + + + + +
      + + Load a document, locate subelements with XPath, modify said elements and save the resulting document. + Shows how to make a full round-trip from a load/edit/save + xpath2 <xml-file> <xpath-expr> <new-value> + xpath2 test3.xml '//discarded' discarded > xpath2.tmp && diff xpath2.tmp $(srcdir)/xpath2.res + Aleksey Sanin and Daniel Veillard + see Copyright for the status of this software. +
      XPath
      + + <libxml/parser.h> + <libxml/xpath.h> + <libxml/xpathInternals.h> + <libxml/tree.h> + + + + + + + + + + + + + + + + +
      + + Output to char buffer + Demonstrate the use of xmlDocDumpMemory to output document to a character buffer + io2 + io2 > io2.tmp && diff io2.tmp $(srcdir)/io2.res + John Fleck + see Copyright for the status of this software. +
      InputOutput
      + + <libxml/parser.h> + + + + + + + + + + + +
      Parse an XML file with an xmlReader Demonstrate the use of xmlReaderForFile() to parse an XML file and dump the informations about the nodes found in the process. (Note that the XMLReader functions require libxml2 version later than 2.6.) reader1 <filename> - reader1 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp + reader1 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res Daniel Veillard see Copyright for the status of this software.
      xmlReader
      @@ -187,14 +233,11 @@ - - - @@ -202,77 +245,29 @@
      - - use various APIs for the xmlWriter - tests a number of APIs for the xmlWriter, especially the various methods to write to a filename, to a memory buffer, to a new document, or to a subtree. It shows how to do encoding string conversions too. The resulting documents are then serialized. - testWriter - testWriter ; for i in 1 2 3 4 ; do diff writer.xml writer$$i.res ; done ; rm writer*.res - Alfred Mickautsch - see Copyright for the status of this software. -
      xmlWriter
      - - <libxml/encoding.h> - <libxml/xmlwriter.h> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - - Parse an XML document chunk by chunk to a tree and free it - Demonstrate the use of xmlCreatePushParserCtxt() and xmlParseChunk() to read an XML file progressively into a tree and and xmlFreeDoc() to free the resulting tree - parse4 test3.xml - parse4 test3.xml - Daniel Veillard + + Navigates a tree to print element names + Parse a file to a tree, use xmlDocGetRootElement() to get the root element, then walk the document and print all the element name in document order. + tree1 filename_or_URL + tree1 test2.xml > tree1.tmp && diff tree1.tmp $(srcdir)/tree1.res + Dodji Seketeli see Copyright for the status of this software. -
      Parsing
      +
      Tree
      <libxml/tree.h> <libxml/parser.h> - - - - - + + +
      Show how to extract subdocuments with xmlReader Demonstrate the use of xmlTextReaderPreservePattern() to parse an XML file with the xmlReader while collecting only some subparts of the document. (Note that the XMLReader functions require libxml2 version later than 2.6.) reader3 - reader3 > reader3.tmp ; diff reader3.tmp reader3.res ; rm reader3.tmp + reader3 > reader3.tmp && diff reader3.tmp $(srcdir)/reader3.res Daniel Veillard see Copyright for the status of this software.
      xmlReader
      @@ -289,25 +284,24 @@
      - - Example of custom Input/Output - Demonstrate the use of xmlRegisterInputCallbacks to build a custom I/O layer, this is used in an XInclude method context to show how dynamic document can be built in a clean way. - io1 - io1 > io1.tmp ; diff io1.tmp io1.res ; rm -f io1.tmp + + Parse and validate an XML file to a tree and free the result + Create a parser context for an XML file, then parse and validate the file, creating a tree, check the validation result and xmlFreeDoc() to free the resulting tree. + parse2 test2.xml + parse2 test2.xml Daniel Veillard see Copyright for the status of this software. -
      InputOutput
      +
      Parsing
      - <libxml/parser.h> - <libxml/xmlIO.h> - <libxml/xinclude.h> <libxml/tree.h> + <libxml/parser.h> - - - - + + + + +
      @@ -326,29 +320,11 @@ - - Navigates a tree to print element names - Parse a file to a tree, use xmlDocGetRootElement() to get the root element, then walk the document and print all the element name in document order. - tree1 filename_or_URL - tree1 test2.xml > tree1.tmp ; diff tree1.tmp tree1.res ; rm tree1.tmp - Dodji Seketeli - see Copyright for the status of this software. -
      Tree
      - - <libxml/tree.h> - <libxml/parser.h> - - - - - - -
      Parse multiple XML files reusing an xmlReader Demonstrate the use of xmlReaderForFile() and xmlReaderNewFile to parse XML files while reusing the reader object and parser context. (Note that the XMLReader functions require libxml2 version later than 2.6.) reader4 <filename> [ filename ... ] - reader4 test1.xml test2.xml test3.xml > reader4.tmp ; diff reader4.tmp reader4.res ; rm reader4.tmp + reader4 test1.xml test2.xml test3.xml > reader4.tmp && diff reader4.tmp $(srcdir)/reader4.res Graham Bennett see Copyright for the status of this software.
      xmlReader
      @@ -364,34 +340,58 @@
      - - Parse and validate an XML file to a tree and free the result - Create a parser context for an XML file, then parse and validate the file, creating a tree, check the validation result and xmlFreeDoc() to free the resulting tree. - parse2 test2.xml - parse2 test2.xml - Daniel Veillard + + use various APIs for the xmlWriter + tests a number of APIs for the xmlWriter, especially the various methods to write to a filename, to a memory buffer, to a new document, or to a subtree. It shows how to do encoding string conversions too. The resulting documents are then serialized. + testWriter + testWriter && for i in 1 2 3 4 ; do diff $(srcdir)/writer.xml writer$$i.tmp || break ; done + Alfred Mickautsch see Copyright for the status of this software. -
      Parsing
      +
      xmlWriter
      - <libxml/tree.h> - <libxml/parser.h> + <libxml/encoding.h> + <libxml/xmlwriter.h> - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      - - + - + + @@ -401,8 +401,8 @@ - + @@ -430,12 +430,12 @@ - - + - + + @@ -447,9 +447,9 @@ + - @@ -458,16 +458,16 @@ - - - + + + - + @@ -479,12 +479,12 @@ - - - + + + @@ -500,34 +500,34 @@ - + - - + - + + - + - + @@ -566,16 +566,16 @@ - + - + @@ -692,28 +692,28 @@ - + - + - + - + - + - + @@ -721,22 +721,22 @@
      - +
      - +
      - +
      diff --git a/doc/examples/index.html b/doc/examples/index.html new file mode 100644 index 0000000..c9314a3 --- /dev/null +++ b/doc/examples/index.html @@ -0,0 +1,14 @@ + + +Libxml2 set of examples
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Libxml2 set of examples

      Examples Menu
      Related links

      The examples are stored per section depending on the main focus + of the example:

      • xmlWriter :

      • InputOutput :

        • io1.c: Example of custom Input/Output
        • io2.c: Output to char buffer
      • Tree :

        • tree2.c: Creates a tree
        • tree1.c: Navigates a tree to print element names
      • XPath :

        • xpath1.c: Evaluate XPath expression and prints result node set.
        • xpath2.c: Load a document, locate subelements with XPath, modify said elements and save the resulting document.
      • Parsing :

        • parse3.c: Parse an XML document in memory to a tree and free it
        • parse4.c: Parse an XML document chunk by chunk to a tree and free it
        • parse2.c: Parse and validate an XML file to a tree and free the result
        • parse1.c: Parse an XML file to a tree and free it
      • xmlReader :

        • reader2.c: Parse and validate an XML file with an xmlReader
        • reader1.c: Parse an XML file with an xmlReader
        • reader3.c: Show how to extract subdocuments with xmlReader
        • reader4.c: Parse multiple XML files reusing an xmlReader

      Getting the compilation options and libraries dependancies needed +to generate binaries from the examples is best done on Linux/Unix by using +the xml2-config script which should have been installed as part of make +install step or when installing the libxml2 development package:

      gcc -o example `xml2-config --cflags` example.c `xml2-config --libs`

      InputOutput Examples

      io1.c: Example of custom Input/Output

      Demonstrate the use of xmlRegisterInputCallbacks to build a custom I/O layer, this is used in an XInclude method context to show how dynamic document can be built in a clean way.

      Includes:

      Uses:

      Usage:

      io1

      Author: Daniel Veillard

      io2.c: Output to char buffer

      Demonstrate the use of xmlDocDumpMemory to output document to a character buffer

      Includes:

      Uses:

      Usage:

      io2

      Author: John Fleck

      Parsing Examples

      parse3.c: Parse an XML document in memory to a tree and free it

      Demonstrate the use of xmlReadMemory() to read an XML file into a tree and and xmlFreeDoc() to free the resulting tree

      Includes:

      Uses:

      Usage:

      parse3

      Author: Daniel Veillard

      parse4.c: Parse an XML document chunk by chunk to a tree and free it

      Demonstrate the use of xmlCreatePushParserCtxt() and xmlParseChunk() to read an XML file progressively into a tree and and xmlFreeDoc() to free the resulting tree

      Includes:

      Uses:

      Usage:

      parse4 test3.xml

      Author: Daniel Veillard

      parse2.c: Parse and validate an XML file to a tree and free the result

      Create a parser context for an XML file, then parse and validate the file, creating a tree, check the validation result and xmlFreeDoc() to free the resulting tree.

      Includes:

      Uses:

      Usage:

      parse2 test2.xml

      Author: Daniel Veillard

      parse1.c: Parse an XML file to a tree and free it

      Demonstrate the use of xmlReadFile() to read an XML file into a tree and and xmlFreeDoc() to free the resulting tree

      Includes:

      Uses:

      Usage:

      parse1 test1.xml

      Author: Daniel Veillard

      Tree Examples

      tree2.c: Creates a tree

      Shows how to create document, nodes and dump it to stdout or file.

      Includes:

      Uses:

      Usage:

      tree2 <filename> -Default output: stdout

      Author: Lucas Brasilino <brasilino@recife.pe.gov.br>

      tree1.c: Navigates a tree to print element names

      Parse a file to a tree, use xmlDocGetRootElement() to get the root element, then walk the document and print all the element name in document order.

      Includes:

      Uses:

      Usage:

      tree1 filename_or_URL

      Author: Dodji Seketeli

      XPath Examples

      xpath1.c: Evaluate XPath expression and prints result node set.

      Shows how to evaluate XPath expression and register known namespaces in XPath context.

      Includes:

      Uses:

      Usage:

      xpath1 <xml-file> <xpath-expr> [<known-ns-list>]

      Author: Aleksey Sanin

      xpath2.c: Load a document, locate subelements with XPath, modify said elements and save the resulting document.

      Shows how to make a full round-trip from a load/edit/save

      Includes:

      Uses:

      Usage:

      xpath2 <xml-file> <xpath-expr> <new-value>

      Author: Aleksey Sanin and Daniel Veillard

      xmlReader Examples

      reader2.c: Parse and validate an XML file with an xmlReader

      Demonstrate the use of xmlReaderForFile() to parse an XML file validating the content in the process and activating options like entities substitution, and DTD attributes defaulting. (Note that the XMLReader functions require libxml2 version later than 2.6.)

      Includes:

      Uses:

      Usage:

      reader2 <valid_xml_filename>

      Author: Daniel Veillard

      reader1.c: Parse an XML file with an xmlReader

      Demonstrate the use of xmlReaderForFile() to parse an XML file and dump the informations about the nodes found in the process. (Note that the XMLReader functions require libxml2 version later than 2.6.)

      Includes:

      Uses:

      Usage:

      reader1 <filename>

      Author: Daniel Veillard

      reader3.c: Show how to extract subdocuments with xmlReader

      Demonstrate the use of xmlTextReaderPreservePattern() to parse an XML file with the xmlReader while collecting only some subparts of the document. (Note that the XMLReader functions require libxml2 version later than 2.6.)

      Includes:

      Uses:

      Usage:

      reader3

      Author: Daniel Veillard

      reader4.c: Parse multiple XML files reusing an xmlReader

      Demonstrate the use of xmlReaderForFile() and xmlReaderNewFile to parse XML files while reusing the reader object and parser context. (Note that the XMLReader functions require libxml2 version later than 2.6.)

      Includes:

      Uses:

      Usage:

      reader4 <filename> [ filename ... ]

      Author: Graham Bennett

      xmlWriter Examples

      testWriter.c: use various APIs for the xmlWriter

      tests a number of APIs for the xmlWriter, especially the various methods to write to a filename, to a memory buffer, to a new document, or to a subtree. It shows how to do encoding string conversions too. The resulting documents are then serialized.

      Includes:

      Uses:

      Usage:

      testWriter

      Author: Alfred Mickautsch

      Daniel Veillard

      diff --git a/doc/examples/index.py b/doc/examples/index.py index 11df6f0..7e0efaa 100755 --- a/doc/examples/index.py +++ b/doc/examples/index.py @@ -13,7 +13,7 @@ sys.path.insert(0, "..") from apibuild import CParser, escape examples = [] -extras = ['examples.xsl', 'index.py'] +extras = ['examples.xsl', 'index.html', 'index.py'] tests = [] sections = {} symbols = {} @@ -177,10 +177,10 @@ def parse(filename, output): type = id.get_type() output.write(" <%s line='%d' name='%s'/>\n" % (type, line, name)) - + output.write(" \n") output.write("
      \n") - + return idx def dump_symbols(output): @@ -220,43 +220,59 @@ def dump_Makefile(): extras.append(file) for file in glob.glob('*.res'): extras.append(file) - Makefile="""# Beware this is autogenerated by index.py -INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I@srcdir@/include @THREAD_CFLAGS@ @Z_CFLAGS@ -DEPS = $(top_builddir)/libxml2.la -LDADDS = @STATIC_BINARIES@ $(top_builddir)/libxml2.la @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) -lm @WIN32_EXTRA_LIBADD@ + Makefile="""## +## This file is auto-generated by index.py +## DO NOT EDIT !!! +## + +AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include -I$(srcdir)/include +AM_CFLAGS = $(THREAD_CFLAGS) $(Z_CFLAGS) +LDADD = $(RDL_LIBS) $(STATIC_BINARIES) $(top_builddir)/libxml2.la $(THREAD_LIBS) $(Z_LIBS) $(ICONV_LIBS) -lm $(WIN32_EXTRA_LIBADD) +CLEANFILES = *.tmp + +if REBUILD_DOCS rebuild: examples.xml index.html +.PHONY: rebuild -examples.xml: index.py *.c - -@($(srcdir)/index.py) +examples.xml: index.py $(noinst_PROGRAMS:=.c) + cd $(srcdir) && $(PYTHON) index.py + $(MAKE) Makefile index.html: examples.xml examples.xsl - -@(xsltproc examples.xsl examples.xml && echo "Rebuilt web page" && xmllint --valid --noout index.html) + cd $(srcdir) && xsltproc examples.xsl examples.xml && echo "Rebuilt web page" + -cd $(srcdir) && xmllint --valid --noout index.html +endif install-data-local: - $(mkinstalldirs) $(DESTDIR)$(HTML_DIR) - -@INSTALL@ -m 0644 $(srcdir)/*.html $(srcdir)/*.c $(srcdir)/*.xml $(srcdir)/*.xsl $(srcdir)/*.res $(DESTDIR)$(HTML_DIR) + $(MKDIR_P) $(DESTDIR)$(HTML_DIR) + -$(INSTALL) -m 0644 $(srcdir)/*.html $(srcdir)/*.c $(srcdir)/*.xml $(srcdir)/*.xsl $(srcdir)/*.res $(DESTDIR)$(HTML_DIR) + +clean-local: + test -f Makefile.am || rm -f test?.xml """ + examples.sort() + extras.sort() + tests.sort() EXTRA_DIST="" for extra in extras: - EXTRA_DIST = EXTRA_DIST + extra + " " - Makefile = Makefile + "EXTRA_DIST=%s\n\n" % (EXTRA_DIST) + EXTRA_DIST = EXTRA_DIST + " \\\n\t" + extra + Makefile = Makefile + "EXTRA_DIST =%s\n\n" % (EXTRA_DIST) noinst_PROGRAMS="" for example in examples: - noinst_PROGRAMS = noinst_PROGRAMS + example + " " - Makefile = Makefile + "noinst_PROGRAMS=%s\n\n" % (noinst_PROGRAMS) + noinst_PROGRAMS = noinst_PROGRAMS + " \\\n\t" + example + Makefile = Makefile + "noinst_PROGRAMS =%s\n\n" % (noinst_PROGRAMS) for example in examples: - Makefile = Makefile + "%s_SOURCES=%s.c\n%s_LDFLAGS=\n%s_DEPENDENCIES= $(DEPS)\n%s_LDADD= @RDL_LIBS@ $(LDADDS)\n\n" % (example, example, example, - example, example) + Makefile = Makefile + "%s_SOURCES = %s.c\n\n" % (example, example) Makefile = Makefile + "valgrind: \n\t$(MAKE) CHECKER='valgrind' tests\n\n" Makefile = Makefile + "tests: $(noinst_PROGRAMS)\n" + Makefile = Makefile + "\ttest -f Makefile.am || test -f test1.xml || $(LN_S) $(srcdir)/test?.xml .\n" Makefile = Makefile + "\t@(echo '## examples regression tests')\n" Makefile = Makefile + "\t@(echo > .memdump)\n" for test in tests: - Makefile = Makefile + "\t@($(CHECKER) %s)\n" % (test) - Makefile = Makefile + '\t@(grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0)\n' - Makefile = Makefile + "\n\n" + Makefile = Makefile + "\t$(CHECKER) %s\n" % (test) + Makefile = Makefile + '\t@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0\n' try: old = open("Makefile.am", "r").read() if old != Makefile: @@ -264,23 +280,23 @@ install-data-local: print "Updated Makefile.am" except: print "Failed to read or save Makefile.am" - # - # Autogenerate the .cvsignore too ... - # - ignore = """.memdump -Makefile.in -Makefile -""" - for example in examples: - ignore = ignore + "%s\n" % (example) - try: - old = open(".cvsignore", "r").read() - if old != ignore: - n = open(".cvsignore", "w").write(ignore) - print "Updated .cvsignore" - except: - print "Failed to read or save .cvsignore" - +# # +# # Autogenerate the .cvsignore too ... DEPRECATED +# # +# ignore = """.memdump +#Makefile.in +#Makefile +#""" +# for example in examples: +# ignore = ignore + "%s\n" % (example) +# try: +# old = open(".cvsignore", "r").read() +# if old != ignore: +# n = open(".cvsignore", "w").write(ignore) +# print "Updated .cvsignore" +# except: +# print "Failed to read or save .cvsignore" + if __name__ == "__main__": load_api() output = open("examples.xml", "w") diff --git a/doc/examples/io1.c b/doc/examples/io1.c index c8a47e3..d077cd8 100644 --- a/doc/examples/io1.c +++ b/doc/examples/io1.c @@ -6,7 +6,7 @@ * XInclude method context to show how dynamic document can * be built in a clean way. * usage: io1 - * test: io1 > io1.tmp ; diff io1.tmp io1.res ; rm -f io1.tmp + * test: io1 > io1.tmp && diff io1.tmp $(srcdir)/io1.res * author: Daniel Veillard * copy: see Copyright for the status of this software. */ diff --git a/doc/examples/io1.res b/doc/examples/io1.res index 4a4c036..adf65c7 100644 --- a/doc/examples/io1.res +++ b/doc/examples/io1.res @@ -1,5 +1,5 @@

      List of people:

      - ab + ab
      diff --git a/doc/examples/io2.c b/doc/examples/io2.c index 814a27e..4676f4a 100644 --- a/doc/examples/io2.c +++ b/doc/examples/io2.c @@ -4,7 +4,7 @@ * purpose: Demonstrate the use of xmlDocDumpMemory * to output document to a character buffer * usage: io2 - * test: io2 > io2.tmp ; diff io2.tmp io2.res ; rm -f io2.tmp + * test: io2 > io2.tmp && diff io2.tmp $(srcdir)/io2.res * author: John Fleck * copy: see Copyright for the status of this software. */ diff --git a/doc/examples/reader1.c b/doc/examples/reader1.c index 90db2a1..e8a005a 100644 --- a/doc/examples/reader1.c +++ b/doc/examples/reader1.c @@ -6,7 +6,7 @@ * (Note that the XMLReader functions require libxml2 version later * than 2.6.) * usage: reader1 - * test: reader1 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp + * test: reader1 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res * author: Daniel Veillard * copy: see Copyright for the status of this software. */ diff --git a/doc/examples/reader2.c b/doc/examples/reader2.c index c32ada5..043b137 100644 --- a/doc/examples/reader2.c +++ b/doc/examples/reader2.c @@ -7,7 +7,7 @@ * (Note that the XMLReader functions require libxml2 version later * than 2.6.) * usage: reader2 - * test: reader2 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp + * test: reader2 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res * author: Daniel Veillard * copy: see Copyright for the status of this software. */ diff --git a/doc/examples/reader3.c b/doc/examples/reader3.c index 51f9d3b..3eeb61f 100644 --- a/doc/examples/reader3.c +++ b/doc/examples/reader3.c @@ -7,7 +7,7 @@ * (Note that the XMLReader functions require libxml2 version later * than 2.6.) * usage: reader3 - * test: reader3 > reader3.tmp ; diff reader3.tmp reader3.res ; rm reader3.tmp + * test: reader3 > reader3.tmp && diff reader3.tmp $(srcdir)/reader3.res * author: Daniel Veillard * copy: see Copyright for the status of this software. */ diff --git a/doc/examples/reader4.c b/doc/examples/reader4.c index ed2726a..1289d0d 100644 --- a/doc/examples/reader4.c +++ b/doc/examples/reader4.c @@ -6,7 +6,7 @@ * and parser context. (Note that the XMLReader functions require * libxml2 version later than 2.6.) * usage: reader4 [ filename ... ] - * test: reader4 test1.xml test2.xml test3.xml > reader4.tmp ; diff reader4.tmp reader4.res ; rm reader4.tmp + * test: reader4 test1.xml test2.xml test3.xml > reader4.tmp && diff reader4.tmp $(srcdir)/reader4.res * author: Graham Bennett * copy: see Copyright for the status of this software. */ diff --git a/doc/examples/testWriter.c b/doc/examples/testWriter.c index 9bf590f..f662f76 100644 --- a/doc/examples/testWriter.c +++ b/doc/examples/testWriter.c @@ -7,7 +7,7 @@ * do encoding string conversions too. The resulting * documents are then serialized. * usage: testWriter - * test: testWriter ; for i in 1 2 3 4 ; do diff writer.xml writer$$i.res ; done ; rm writer*.res + * test: testWriter && for i in 1 2 3 4 ; do diff $(srcdir)/writer.xml writer$$i.tmp || break ; done * author: Alfred Mickautsch * copy: see Copyright for the status of this software. */ @@ -37,16 +37,16 @@ main(void) LIBXML_TEST_VERSION /* first, the file version */ - testXmlwriterFilename("writer1.res"); + testXmlwriterFilename("writer1.tmp"); /* next, the memory version */ - testXmlwriterMemory("writer2.res"); + testXmlwriterMemory("writer2.tmp"); /* next, the DOM version */ - testXmlwriterDoc("writer3.res"); + testXmlwriterDoc("writer3.tmp"); /* next, the tree version */ - testXmlwriterTree("writer4.res"); + testXmlwriterTree("writer4.tmp"); /* * Cleanup function for the XML library. diff --git a/doc/examples/tree1.c b/doc/examples/tree1.c index 8644cf1..e6faefc 100644 --- a/doc/examples/tree1.c +++ b/doc/examples/tree1.c @@ -5,7 +5,7 @@ * get the root element, then walk the document and print * all the element name in document order. * usage: tree1 filename_or_URL - * test: tree1 test2.xml > tree1.tmp ; diff tree1.tmp tree1.res ; rm tree1.tmp + * test: tree1 test2.xml > tree1.tmp && diff tree1.tmp $(srcdir)/tree1.res * author: Dodji Seketeli * copy: see Copyright for the status of this software. */ diff --git a/doc/examples/tree2.c b/doc/examples/tree2.c index c40fc55..1cd1abe 100644 --- a/doc/examples/tree2.c +++ b/doc/examples/tree2.c @@ -3,7 +3,7 @@ * synopsis: Creates a tree * purpose: Shows how to create document, nodes and dump it to stdout or file. * usage: tree2 -Default output: stdout - * test: tree2 > tree2.tmp ; diff tree2.tmp tree2.res ; rm tree2.tmp + * test: tree2 > tree2.tmp && diff tree2.tmp $(srcdir)/tree2.res * author: Lucas Brasilino * copy: see Copyright for the status of this software */ diff --git a/doc/examples/xpath1.c b/doc/examples/xpath1.c index f2f7406..0a31650 100644 --- a/doc/examples/xpath1.c +++ b/doc/examples/xpath1.c @@ -4,7 +4,7 @@ * purpose: Shows how to evaluate XPath expression and register * known namespaces in XPath context. * usage: xpath1 [] - * test: ./xpath1 test3.xml '//child2' > xpath1.tmp ; diff xpath1.tmp xpath1.res ; rm xpath1.tmp + * test: xpath1 test3.xml '//child2' > xpath1.tmp && diff xpath1.tmp $(srcdir)/xpath1.res * author: Aleksey Sanin * copy: see Copyright for the status of this software. */ diff --git a/doc/examples/xpath2.c b/doc/examples/xpath2.c index 6ff4008..f604114 100644 --- a/doc/examples/xpath2.c +++ b/doc/examples/xpath2.c @@ -4,7 +4,7 @@ * said elements and save the resulting document. * purpose: Shows how to make a full round-trip from a load/edit/save * usage: xpath2 - * test: xpath2 test3.xml '//discarded' discarded > xpath2.tmp ; diff xpath2.tmp xpath2.res ; rm xpath2.tmp + * test: xpath2 test3.xml '//discarded' discarded > xpath2.tmp && diff xpath2.tmp $(srcdir)/xpath2.res * author: Aleksey Sanin and Daniel Veillard * copy: see Copyright for the status of this software. */ diff --git a/doc/html/book1.html b/doc/html/book1.html index 6771189..1a58210 100644 --- a/doc/html/book1.html +++ b/doc/html/book1.html @@ -10,4 +10,4 @@ A:link, A:visited, A:active { text-decoration: underline } Reference Manual for libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Reference Manual for libxml2

      API Menu
      API Indexes
      Related links

      Table of Contents

      • DOCBparser: old DocBook SGML parser
      • HTMLparser: interface for an HTML 4.0 non-verifying parser
      • HTMLtree: specific APIs to process HTML tree, especially serialization
      • SAX: Old SAX version 1 handler, deprecated
      • SAX2: SAX2 parser interface used to build the DOM tree
      • c14n: Provide Canonical XML and Exclusive XML Canonicalization
      • catalog: interfaces to the Catalog handling system
      • chvalid: Unicode character range checking
      • debugXML: Tree debugging APIs
      • dict: string dictionnary
      • encoding: interface for the encoding conversion functions
      • entities: interface for the XML entities handling
      • globals: interface for all global variables of the library
      • hash: Chained hash tables
      • list: lists interfaces
      • nanoftp: minimal FTP implementation
      • nanohttp: minimal HTTP implementation
      • parser: the core parser module
      • parserInternals: internals routines exported by the parser.
      • pattern: pattern expression handling
      • relaxng: implementation of the Relax-NG validation
      • schemasInternals: internal interfaces for XML Schemas
      • schematron: XML Schemastron implementation
      • threads: interfaces for thread handling
      • tree: interfaces for tree manipulation
      • uri: library of generic URI related routines
      • valid: The DTD validation
      • xinclude: implementation of XInclude
      • xlink: unfinished XLink detection module
      • xmlIO: interface for the I/O interfaces used by the parser
      • xmlautomata: API to build regexp automata
      • xmlerror: error handling
      • xmlexports: macros for marking symbols as exportable/importable.
      • xmlmemory: interface for the memory allocator
      • xmlmodule: dynamic module loading
      • xmlreader: the XMLReader implementation
      • xmlregexp: regular expressions handling
      • xmlsave: the XML document serializer
      • xmlschemas: incomplete XML Schemas structure implementation
      • xmlschemastypes: implementation of XML Schema Datatypes
      • xmlstring: set of routines to process strings
      • xmlunicode: Unicode character APIs
      • xmlversion: compile-time version informations
      • xmlwriter: text writing API for XML
      • xpath: XML Path Language implementation
      • xpathInternals: internal interfaces for XML Path Language implementation
      • xpointer: API to handle XML Pointers

      Daniel Veillard

      + Reference Manual for libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Reference Manual for libxml2

      API Menu
      API Indexes
      Related links

      Table of Contents

      • DOCBparser: old DocBook SGML parser
      • HTMLparser: interface for an HTML 4.0 non-verifying parser
      • HTMLtree: specific APIs to process HTML tree, especially serialization
      • SAX: Old SAX version 1 handler, deprecated
      • SAX2: SAX2 parser interface used to build the DOM tree
      • c14n: Provide Canonical XML and Exclusive XML Canonicalization
      • catalog: interfaces to the Catalog handling system
      • chvalid: Unicode character range checking
      • debugXML: Tree debugging APIs
      • dict: string dictionnary
      • encoding: interface for the encoding conversion functions
      • entities: interface for the XML entities handling
      • globals: interface for all global variables of the library
      • hash: Chained hash tables
      • list: lists interfaces
      • nanoftp: minimal FTP implementation
      • nanohttp: minimal HTTP implementation
      • parser: the core parser module
      • parserInternals: internals routines and limits exported by the parser.
      • pattern: pattern expression handling
      • relaxng: implementation of the Relax-NG validation
      • schemasInternals: internal interfaces for XML Schemas
      • schematron: XML Schemastron implementation
      • threads: interfaces for thread handling
      • tree: interfaces for tree manipulation
      • uri: library of generic URI related routines
      • valid: The DTD validation
      • xinclude: implementation of XInclude
      • xlink: unfinished XLink detection module
      • xmlIO: interface for the I/O interfaces used by the parser
      • xmlautomata: API to build regexp automata
      • xmlerror: error handling
      • xmlexports: macros for marking symbols as exportable/importable.
      • xmlmemory: interface for the memory allocator
      • xmlmodule: dynamic module loading
      • xmlreader: the XMLReader implementation
      • xmlregexp: regular expressions handling
      • xmlsave: the XML document serializer
      • xmlschemas: incomplete XML Schemas structure implementation
      • xmlschemastypes: implementation of XML Schema Datatypes
      • xmlstring: set of routines to process strings
      • xmlunicode: Unicode character APIs
      • xmlversion: compile-time version informations
      • xmlwriter: text writing API for XML
      • xpath: XML Path Language implementation
      • xpathInternals: internal interfaces for XML Path Language implementation
      • xpointer: API to handle XML Pointers

      Daniel Veillard

      diff --git a/doc/html/index.html b/doc/html/index.html index 6771189..1a58210 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -10,4 +10,4 @@ A:link, A:visited, A:active { text-decoration: underline } Reference Manual for libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Reference Manual for libxml2

      API Menu
      API Indexes
      Related links

      Table of Contents

      • DOCBparser: old DocBook SGML parser
      • HTMLparser: interface for an HTML 4.0 non-verifying parser
      • HTMLtree: specific APIs to process HTML tree, especially serialization
      • SAX: Old SAX version 1 handler, deprecated
      • SAX2: SAX2 parser interface used to build the DOM tree
      • c14n: Provide Canonical XML and Exclusive XML Canonicalization
      • catalog: interfaces to the Catalog handling system
      • chvalid: Unicode character range checking
      • debugXML: Tree debugging APIs
      • dict: string dictionnary
      • encoding: interface for the encoding conversion functions
      • entities: interface for the XML entities handling
      • globals: interface for all global variables of the library
      • hash: Chained hash tables
      • list: lists interfaces
      • nanoftp: minimal FTP implementation
      • nanohttp: minimal HTTP implementation
      • parser: the core parser module
      • parserInternals: internals routines exported by the parser.
      • pattern: pattern expression handling
      • relaxng: implementation of the Relax-NG validation
      • schemasInternals: internal interfaces for XML Schemas
      • schematron: XML Schemastron implementation
      • threads: interfaces for thread handling
      • tree: interfaces for tree manipulation
      • uri: library of generic URI related routines
      • valid: The DTD validation
      • xinclude: implementation of XInclude
      • xlink: unfinished XLink detection module
      • xmlIO: interface for the I/O interfaces used by the parser
      • xmlautomata: API to build regexp automata
      • xmlerror: error handling
      • xmlexports: macros for marking symbols as exportable/importable.
      • xmlmemory: interface for the memory allocator
      • xmlmodule: dynamic module loading
      • xmlreader: the XMLReader implementation
      • xmlregexp: regular expressions handling
      • xmlsave: the XML document serializer
      • xmlschemas: incomplete XML Schemas structure implementation
      • xmlschemastypes: implementation of XML Schema Datatypes
      • xmlstring: set of routines to process strings
      • xmlunicode: Unicode character APIs
      • xmlversion: compile-time version informations
      • xmlwriter: text writing API for XML
      • xpath: XML Path Language implementation
      • xpathInternals: internal interfaces for XML Path Language implementation
      • xpointer: API to handle XML Pointers

      Daniel Veillard

      + Reference Manual for libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Reference Manual for libxml2

      API Menu
      API Indexes
      Related links

      Table of Contents

      • DOCBparser: old DocBook SGML parser
      • HTMLparser: interface for an HTML 4.0 non-verifying parser
      • HTMLtree: specific APIs to process HTML tree, especially serialization
      • SAX: Old SAX version 1 handler, deprecated
      • SAX2: SAX2 parser interface used to build the DOM tree
      • c14n: Provide Canonical XML and Exclusive XML Canonicalization
      • catalog: interfaces to the Catalog handling system
      • chvalid: Unicode character range checking
      • debugXML: Tree debugging APIs
      • dict: string dictionnary
      • encoding: interface for the encoding conversion functions
      • entities: interface for the XML entities handling
      • globals: interface for all global variables of the library
      • hash: Chained hash tables
      • list: lists interfaces
      • nanoftp: minimal FTP implementation
      • nanohttp: minimal HTTP implementation
      • parser: the core parser module
      • parserInternals: internals routines and limits exported by the parser.
      • pattern: pattern expression handling
      • relaxng: implementation of the Relax-NG validation
      • schemasInternals: internal interfaces for XML Schemas
      • schematron: XML Schemastron implementation
      • threads: interfaces for thread handling
      • tree: interfaces for tree manipulation
      • uri: library of generic URI related routines
      • valid: The DTD validation
      • xinclude: implementation of XInclude
      • xlink: unfinished XLink detection module
      • xmlIO: interface for the I/O interfaces used by the parser
      • xmlautomata: API to build regexp automata
      • xmlerror: error handling
      • xmlexports: macros for marking symbols as exportable/importable.
      • xmlmemory: interface for the memory allocator
      • xmlmodule: dynamic module loading
      • xmlreader: the XMLReader implementation
      • xmlregexp: regular expressions handling
      • xmlsave: the XML document serializer
      • xmlschemas: incomplete XML Schemas structure implementation
      • xmlschemastypes: implementation of XML Schema Datatypes
      • xmlstring: set of routines to process strings
      • xmlunicode: Unicode character APIs
      • xmlversion: compile-time version informations
      • xmlwriter: text writing API for XML
      • xpath: XML Path Language implementation
      • xpathInternals: internal interfaces for XML Path Language implementation
      • xpointer: API to handle XML Pointers

      Daniel Veillard

      diff --git a/doc/html/libxml-dict.html b/doc/html/libxml-dict.html index 2de32b0..81afd15 100644 --- a/doc/html/libxml-dict.html +++ b/doc/html/libxml-dict.html @@ -18,10 +18,12 @@ The content of this structure is not made public by the API.
      xmlDictPtr	xmlDictCreateSub	(xmlDictPtr sub)
      const xmlChar *	xmlDictExists		(xmlDictPtr dict, 
      const xmlChar * name,
      int len)
      void	xmlDictFree			(xmlDictPtr dict)
      +
      size_t	xmlDictGetUsage			(xmlDictPtr dict)
      const xmlChar *	xmlDictLookup		(xmlDictPtr dict, 
      const xmlChar * name,
      int len)
      int	xmlDictOwns			(xmlDictPtr dict, 
      const xmlChar * str)
      const xmlChar *	xmlDictQLookup		(xmlDictPtr dict, 
      const xmlChar * prefix,
      const xmlChar * name)
      int	xmlDictReference		(xmlDictPtr dict)
      +
      size_t	xmlDictSetLimit			(xmlDictPtr dict, 
      size_t limit)
      int	xmlDictSize			(xmlDictPtr dict)
      int	xmlInitializeDict		(void)

      Description

      @@ -37,7 +39,9 @@ The content of this structure is not made public by the API.

      Check if the @name exists in the dictionnary @dict.

      dict:the dictionnary
      name:the name of the userdata
      len:the length of the name, if -1 it is recomputed
      Returns:the internal copy of the name or NULL if not found.

      Function: xmlDictFree

      void	xmlDictFree			(xmlDictPtr dict)

      Free the hash @dict and its contents. The userdata is deallocated with @f if provided.

      -
      dict:the dictionnary

      Function: xmlDictLookup

      const xmlChar *	xmlDictLookup		(xmlDictPtr dict, 
      const xmlChar * name,
      int len)
      +
      dict:the dictionnary

      Function: xmlDictGetUsage

      size_t	xmlDictGetUsage			(xmlDictPtr dict)
      +

      Get how much memory is used by a dictionary for strings Added in 2.9.0

      +
      dict:the dictionnary
      Returns:the amount of strings allocated

      Function: xmlDictLookup

      const xmlChar *	xmlDictLookup		(xmlDictPtr dict, 
      const xmlChar * name,
      int len)

      Add the @name to the dictionnary @dict if not present.

      dict:the dictionnary
      name:the name of the userdata
      len:the length of the name, if -1 it is recomputed
      Returns:the internal copy of the name or NULL in case of internal error

      Function: xmlDictOwns

      int	xmlDictOwns			(xmlDictPtr dict, 
      const xmlChar * str)

      check if a string is owned by the disctionary

      @@ -45,7 +49,9 @@ The content of this structure is not made public by the API.

      Add the QName @prefix:@name to the hash @dict if not present.

      dict:the dictionnary
      prefix:the prefix
      name:the name
      Returns:the internal copy of the QName or NULL in case of internal error

      Function: xmlDictReference

      int	xmlDictReference		(xmlDictPtr dict)

      Increment the reference counter of a dictionary

      -
      dict:the dictionnary
      Returns:0 in case of success and -1 in case of error

      Function: xmlDictSize

      int	xmlDictSize			(xmlDictPtr dict)
      +
      dict:the dictionnary
      Returns:0 in case of success and -1 in case of error

      Function: xmlDictSetLimit

      size_t	xmlDictSetLimit			(xmlDictPtr dict, 
      size_t limit)
      +

      Set a size limit for the dictionary Added in 2.9.0

      +
      dict:the dictionnary
      limit:the limit in bytes
      Returns:the previous limit of the dictionary or 0

      Function: xmlDictSize

      int	xmlDictSize			(xmlDictPtr dict)

      Query the number of elements installed in the hash @dict.

      dict:the dictionnary
      Returns:the number of elements in the dictionnary or -1 in case of error

      Function: xmlInitializeDict

      int	xmlInitializeDict		(void)

      Do the dictionary mutex initialization. this function is not thread safe, initialization should preferably be done once at startup

      diff --git a/doc/html/libxml-lib.html b/doc/html/libxml-lib.html index 6771189..1a58210 100644 --- a/doc/html/libxml-lib.html +++ b/doc/html/libxml-lib.html @@ -10,4 +10,4 @@ A:link, A:visited, A:active { text-decoration: underline } Reference Manual for libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Reference Manual for libxml2

      API Menu
      API Indexes
      Related links

      Table of Contents

      • DOCBparser: old DocBook SGML parser
      • HTMLparser: interface for an HTML 4.0 non-verifying parser
      • HTMLtree: specific APIs to process HTML tree, especially serialization
      • SAX: Old SAX version 1 handler, deprecated
      • SAX2: SAX2 parser interface used to build the DOM tree
      • c14n: Provide Canonical XML and Exclusive XML Canonicalization
      • catalog: interfaces to the Catalog handling system
      • chvalid: Unicode character range checking
      • debugXML: Tree debugging APIs
      • dict: string dictionnary
      • encoding: interface for the encoding conversion functions
      • entities: interface for the XML entities handling
      • globals: interface for all global variables of the library
      • hash: Chained hash tables
      • list: lists interfaces
      • nanoftp: minimal FTP implementation
      • nanohttp: minimal HTTP implementation
      • parser: the core parser module
      • parserInternals: internals routines exported by the parser.
      • pattern: pattern expression handling
      • relaxng: implementation of the Relax-NG validation
      • schemasInternals: internal interfaces for XML Schemas
      • schematron: XML Schemastron implementation
      • threads: interfaces for thread handling
      • tree: interfaces for tree manipulation
      • uri: library of generic URI related routines
      • valid: The DTD validation
      • xinclude: implementation of XInclude
      • xlink: unfinished XLink detection module
      • xmlIO: interface for the I/O interfaces used by the parser
      • xmlautomata: API to build regexp automata
      • xmlerror: error handling
      • xmlexports: macros for marking symbols as exportable/importable.
      • xmlmemory: interface for the memory allocator
      • xmlmodule: dynamic module loading
      • xmlreader: the XMLReader implementation
      • xmlregexp: regular expressions handling
      • xmlsave: the XML document serializer
      • xmlschemas: incomplete XML Schemas structure implementation
      • xmlschemastypes: implementation of XML Schema Datatypes
      • xmlstring: set of routines to process strings
      • xmlunicode: Unicode character APIs
      • xmlversion: compile-time version informations
      • xmlwriter: text writing API for XML
      • xpath: XML Path Language implementation
      • xpathInternals: internal interfaces for XML Path Language implementation
      • xpointer: API to handle XML Pointers

      Daniel Veillard

      + Reference Manual for libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Reference Manual for libxml2

      API Menu
      API Indexes
      Related links

      Table of Contents

      • DOCBparser: old DocBook SGML parser
      • HTMLparser: interface for an HTML 4.0 non-verifying parser
      • HTMLtree: specific APIs to process HTML tree, especially serialization
      • SAX: Old SAX version 1 handler, deprecated
      • SAX2: SAX2 parser interface used to build the DOM tree
      • c14n: Provide Canonical XML and Exclusive XML Canonicalization
      • catalog: interfaces to the Catalog handling system
      • chvalid: Unicode character range checking
      • debugXML: Tree debugging APIs
      • dict: string dictionnary
      • encoding: interface for the encoding conversion functions
      • entities: interface for the XML entities handling
      • globals: interface for all global variables of the library
      • hash: Chained hash tables
      • list: lists interfaces
      • nanoftp: minimal FTP implementation
      • nanohttp: minimal HTTP implementation
      • parser: the core parser module
      • parserInternals: internals routines and limits exported by the parser.
      • pattern: pattern expression handling
      • relaxng: implementation of the Relax-NG validation
      • schemasInternals: internal interfaces for XML Schemas
      • schematron: XML Schemastron implementation
      • threads: interfaces for thread handling
      • tree: interfaces for tree manipulation
      • uri: library of generic URI related routines
      • valid: The DTD validation
      • xinclude: implementation of XInclude
      • xlink: unfinished XLink detection module
      • xmlIO: interface for the I/O interfaces used by the parser
      • xmlautomata: API to build regexp automata
      • xmlerror: error handling
      • xmlexports: macros for marking symbols as exportable/importable.
      • xmlmemory: interface for the memory allocator
      • xmlmodule: dynamic module loading
      • xmlreader: the XMLReader implementation
      • xmlregexp: regular expressions handling
      • xmlsave: the XML document serializer
      • xmlschemas: incomplete XML Schemas structure implementation
      • xmlschemastypes: implementation of XML Schema Datatypes
      • xmlstring: set of routines to process strings
      • xmlunicode: Unicode character APIs
      • xmlversion: compile-time version informations
      • xmlwriter: text writing API for XML
      • xpath: XML Path Language implementation
      • xpathInternals: internal interfaces for XML Path Language implementation
      • xpointer: API to handle XML Pointers

      Daniel Veillard

      diff --git a/doc/html/libxml-parser.html b/doc/html/libxml-parser.html index 461b3fb..98123f7 100644 --- a/doc/html/libxml-parser.html +++ b/doc/html/libxml-parser.html @@ -289,6 +289,7 @@ void xmlParserInputDeallocate (XML_PARSE_HUGE = 524288 : relax any hardcoded limit from the parser XML_PARSE_OLDSAX = 1048576 : parse using SAX2 interface before 2.7.0 XML_PARSE_IGNORE_ENC = 2097152 : ignore internal document encoding hint + XML_PARSE_BIG_LINES = 4194304 : Store big lines numbers in text PSVI field }

      Structure xmlSAXHandlerV1

      Structure xmlSAXHandlerV1
      struct _xmlSAXHandlerV1 { internalSubsetSAXFunc internalSubset @@ -507,9 +508,9 @@ void xmlParserInputDeallocate (xmlChar

      Callback for freeing some parser input allocations.

      str:the string to deallocate

      Function: xmlParserInputGrow

      int	xmlParserInputGrow		(xmlParserInputPtr in, 
      int len)

      This function increase the input for the parser. It tries to preserve pointers to the input buffer, and keep already read data

      -
      in:an XML parser input
      len:an indicative size for the lookahead
      Returns:the number of xmlChars read, or -1 in case of error, 0 indicate the end of this entity

      Function: xmlParserInputRead

      int	xmlParserInputRead		(xmlParserInputPtr in, 
      int len)
      -

      This function refresh the input for the parser. It doesn't try to preserve pointers to the input buffer, and discard already read data

      -
      in:an XML parser input
      len:an indicative size for the lookahead
      Returns:the number of xmlChars read, or -1 in case of error, 0 indicate the end of this entity

      Function: xmlPedanticParserDefault

      int	xmlPedanticParserDefault	(int val)
      +
      in:an XML parser input
      len:an indicative size for the lookahead
      Returns:the amount of char read, or -1 in case of error, 0 indicate the end of this entity

      Function: xmlParserInputRead

      int	xmlParserInputRead		(xmlParserInputPtr in, 
      int len)
      +

      This function was internal and is deprecated.

      +
      in:an XML parser input
      len:an indicative size for the lookahead
      Returns:-1 as this is an error to use it.

      Function: xmlPedanticParserDefault

      int	xmlPedanticParserDefault	(int val)

      Set and return the previous value for enabling pedantic warnings.

      val:int 0 or 1
      Returns:the last value for 0 for no substitution, 1 for substitution.

      Function: xmlReadDoc

      xmlDocPtr	xmlReadDoc		(const xmlChar * cur, 
      const char * URL,
      const char * encoding,
      int options)

      parse an XML in-memory document and build a tree.

      diff --git a/doc/html/libxml-parserInternals.html b/doc/html/libxml-parserInternals.html index 681057f..4d1292b 100644 --- a/doc/html/libxml-parserInternals.html +++ b/doc/html/libxml-parserInternals.html @@ -10,7 +10,7 @@ A:link, A:visited, A:active { text-decoration: underline } Module parserInternals from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module parserInternals from libxml2

      API Menu
      API Indexes
      Related links

      this module exports a number of internal parsing routines they are not really all intended for applications but can prove useful doing low level processing.

      Table of Contents

      #define INPUT_CHUNK
      #define IS_ASCII_DIGIT
      #define IS_ASCII_LETTER
      #define IS_BASECHAR
      #define IS_BLANK
      #define IS_BLANK_CH
      #define IS_BYTE_CHAR
      #define IS_CHAR
      #define IS_CHAR_CH
      #define IS_COMBINING
      #define IS_COMBINING_CH
      #define IS_DIGIT
      #define IS_DIGIT_CH
      #define IS_EXTENDER
      #define IS_EXTENDER_CH
      #define IS_IDEOGRAPHIC
      #define IS_LETTER
      #define IS_LETTER_CH
      #define IS_PUBIDCHAR
      #define IS_PUBIDCHAR_CH
      #define MOVETO_ENDTAG
      #define MOVETO_STARTTAG
      #define SKIP_EOL
      #define XML_MAX_NAMELEN
      #define XML_MAX_TEXT_LENGTH
      #define XML_SUBSTITUTE_BOTH
      #define XML_SUBSTITUTE_NONE
      #define XML_SUBSTITUTE_PEREF
      #define XML_SUBSTITUTE_REF
      htmlParserCtxtPtr	htmlCreateFileParserCtxt	(const char * filename, 
      const char * encoding)
      + Module parserInternals from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module parserInternals from libxml2

      API Menu
      API Indexes
      Related links

      this module exports a number of internal parsing routines they are not really all intended for applications but can prove useful doing low level processing.

      Table of Contents

      #define INPUT_CHUNK
      #define IS_ASCII_DIGIT
      #define IS_ASCII_LETTER
      #define IS_BASECHAR
      #define IS_BLANK
      #define IS_BLANK_CH
      #define IS_BYTE_CHAR
      #define IS_CHAR
      #define IS_CHAR_CH
      #define IS_COMBINING
      #define IS_COMBINING_CH
      #define IS_DIGIT
      #define IS_DIGIT_CH
      #define IS_EXTENDER
      #define IS_EXTENDER_CH
      #define IS_IDEOGRAPHIC
      #define IS_LETTER
      #define IS_LETTER_CH
      #define IS_PUBIDCHAR
      #define IS_PUBIDCHAR_CH
      #define MOVETO_ENDTAG
      #define MOVETO_STARTTAG
      #define SKIP_EOL
      #define XML_MAX_DICTIONARY_LIMIT
      #define XML_MAX_LOOKUP_LIMIT
      #define XML_MAX_NAMELEN
      #define XML_MAX_NAME_LENGTH
      #define XML_MAX_TEXT_LENGTH
      #define XML_SUBSTITUTE_BOTH
      #define XML_SUBSTITUTE_NONE
      #define XML_SUBSTITUTE_PEREF
      #define XML_SUBSTITUTE_REF
      htmlParserCtxtPtr	htmlCreateFileParserCtxt	(const char * filename, 
      const char * encoding)
      void	htmlInitAutoClose		(void)
      xmlParserInputPtr	inputPop	(xmlParserCtxtPtr ctxt)
      int	inputPush			(xmlParserCtxtPtr ctxt, 
      xmlParserInputPtr value)
      @@ -127,8 +127,11 @@ void xmlEntityReferenceFunc (Macro: MOVETO_ENDTAG
      #define MOVETO_ENDTAG

      Skips to the next '>' char.

      Macro: MOVETO_STARTTAG

      #define MOVETO_STARTTAG

      Skips to the next '<' char.

      Macro: SKIP_EOL

      #define SKIP_EOL

      Skips the end of line chars.

      +

      Macro: XML_MAX_DICTIONARY_LIMIT

      #define XML_MAX_DICTIONARY_LIMIT

      Maximum size allowed by the parser for a dictionary by default This is not a limitation of the parser but a safety boundary feature, use XML_PARSE_HUGE option to override it. Introduced in 2.9.0

      +

      Macro: XML_MAX_LOOKUP_LIMIT

      #define XML_MAX_LOOKUP_LIMIT

      Maximum size allowed by the parser for ahead lookup This is an upper boundary enforced by the parser to avoid bad behaviour on "unfriendly' content Introduced in 2.9.0

      Macro: XML_MAX_NAMELEN

      #define XML_MAX_NAMELEN

      Identifiers can be longer, but this will be more costly at runtime.

      -

      Macro: XML_MAX_TEXT_LENGTH

      #define XML_MAX_TEXT_LENGTH

      Maximum size allowed for a single text node when building a tree. This is not a limitation of the parser but a safety boundary feature, use XML_PARSE_HUGE option to override it.

      +

      Macro: XML_MAX_NAME_LENGTH

      #define XML_MAX_NAME_LENGTH

      Maximum size allowed for a markup identitier This is not a limitation of the parser but a safety boundary feature, use XML_PARSE_HUGE option to override it. Note that with the use of parsing dictionaries overriding the limit may result in more runtime memory usage in face of "unfriendly' content Introduced in 2.9.0

      +

      Macro: XML_MAX_TEXT_LENGTH

      #define XML_MAX_TEXT_LENGTH

      Maximum size allowed for a single text node when building a tree. This is not a limitation of the parser but a safety boundary feature, use XML_PARSE_HUGE option to override it. Introduced in 2.9.0

      Macro: XML_SUBSTITUTE_BOTH

      #define XML_SUBSTITUTE_BOTH

      Both general and parameter entities need to be substituted.

      Macro: XML_SUBSTITUTE_NONE

      #define XML_SUBSTITUTE_NONE

      If no entities need to be substituted.

      Macro: XML_SUBSTITUTE_PEREF

      #define XML_SUBSTITUTE_PEREF

      Whether parameter entities need to be substituted.

      diff --git a/doc/html/libxml-tree.html b/doc/html/libxml-tree.html index eb7c2bc..25c7a45 100644 --- a/doc/html/libxml-tree.html +++ b/doc/html/libxml-tree.html @@ -10,12 +10,15 @@ A:link, A:visited, A:active { text-decoration: underline } Module tree from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module tree from libxml2

      API Menu
      API Indexes
      Related links
      + ^ +./test/HTML/wired.html:374: HTML parser error : htmlParseEntityRef: no name +a, sans-serif">Rants & + ^ +./test/HTML/wired.html:374: HTML parser error : Opening and ending tag mismatch: td and font +Readers on Apple's G4 ... AOL's passwords ... MS vs. Linux.



      Vignette
      + ^ +./test/HTML/wired.html:407: HTML parser error : htmlParseEntityRef: expecting ';' +ervlet/appservlet?from=/wired/sprint/&template=/security/security.html&SITE= + ^ +./test/HTML/wired.html:407: HTML parser error : htmlParseEntityRef: expecting ';' +ervlet/appservlet?from=/wired/sprint/&template=/security/security.html&SITE= + ^ +./test/HTML/wired.html:408: HTML parser error : htmlParseEntityRef: expecting ';' +wired.com&BANNER=Sprint" style="text-decoration:none">Spri + ^ +./test/HTML/wired.html:408: HTML parser error : Opening and ending tag mismatch: a and font +com&BANNER=Sprint" style="text-decoration:none">Sprint + ^ +./test/HTML/wired.html:408: HTML parser error : End tag : expected '>' +=Sprint" style="text-decoration:none">Sprint + ^ +./test/HTML/wired.html:414: HTML parser error : Opening and ending tag mismatch: td and font + + ^ +./test/HTML/wired.html:414: HTML parser error : Opening and ending tag mismatch: td and font + + ^ +./test/HTML/wired.html:414: HTML parser error : Opening and ending tag mismatch: td and font + + ^ +./test/HTML/wired.html:414: HTML parser error : Opening and ending tag mismatch: td and font + + ^ +./test/HTML/wired.html:414: HTML parser error : Opening and ending tag mismatch: td and font + + ^ +./test/HTML/wired.html:414: HTML parser error : Opening and ending tag mismatch: td and font + + ^ +./test/HTML/wired.html:414: HTML parser error : Opening and ending tag mismatch: td and font + + ^ +./test/HTML/wired.html:432: HTML parser error : htmlParseEntityRef: expecting ';' +href="http://www.lycos.com/news/flash/hitlerbunker.html?v=wn1015&lpv=1">Lycos +
      + + +) +SAX.characters( +, 1) +SAX.endElement(table) +SAX.characters( +, 1) +SAX.comment( end WIRED NEWS header ) +SAX.characters( + +, 2) +SAX.comment( begin upper left side Navigation ) +SAX.characters( + +, 2) +SAX.startElement(table, border='0', cellpadding='3', cellspacing='0', align='LEFT', bgcolor='#FFFFFF') +SAX.characters( + , 3) +SAX.startElement(tr) +SAX.characters( + , 6) +SAX.startElement(td, bgcolor='#FF0000') +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#FFFFFF') +SAX.characters( + , 8) +SAX.startElement(img, src='http://static.wired.com/news/images/spacer.gif', width='147', height='1', border='0') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(b) +SAX.characters(SECTIONS, 8) +SAX.endElement(b) +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( + , 3) +SAX.endElement(tr) +SAX.characters( + +, 2) +SAX.startElement(tr) +SAX.startElement(td, bgcolor='#CCFFCC') +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#000000') +SAX.startElement(a, href='/news/business/0,1367,,00.html') +SAX.characters(Business, 8) +SAX.endElement(a) +SAX.endElement(font) +SAX.endElement(td) +SAX.endElement(tr) +SAX.startElement(tr) +SAX.startElement(td, bgcolor='#99FF99') +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#000000') +SAX.startElement(a, href='/news/culture/0,1284,,00.html') +SAX.characters(Culture, 7) +SAX.endElement(a) +SAX.endElement(font) +SAX.endElement(td) +SAX.endElement(tr) +SAX.startElement(tr) +SAX.startElement(td, bgcolor='#CCFFCC') +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#000000') +SAX.startElement(a, href='/news/technology/0,1282,,00.html') +SAX.characters(Technology, 10) +SAX.endElement(a) +SAX.endElement(font) +SAX.endElement(td) +SAX.endElement(tr) +SAX.startElement(tr) +SAX.startElement(td, bgcolor='#99FF99') +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#000000') +SAX.startElement(a, href='/news/politics/0,1283,,00.html') +SAX.characters(Politics, 8) +SAX.endElement(a) +SAX.endElement(font) +SAX.endElement(td) +SAX.endElement(tr) +SAX.startElement(tr) +SAX.characters( +, 1) +SAX.startElement(td, bgcolor='#FF0000') +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#FFFFFF') +SAX.characters( +, 1) +SAX.startElement(b) +SAX.characters(WIRE SERVICE NEWS, 17) +SAX.endElement(b) +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( +, 1) +SAX.endElement(tr) +SAX.characters( + +, 2) +SAX.startElement(tr) +SAX.characters( +, 1) +SAX.startElement(td, bgcolor='#99FF99') +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#000000') +SAX.startElement(a, href='/news/news/reuters/') +SAX.characters(Top Headlines, 13) +SAX.endElement(a) +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( +, 1) +SAX.endElement(tr) +SAX.characters( + +, 2) +SAX.startElement(tr) +SAX.characters( +, 1) +SAX.startElement(td, bgcolor='#CCFFCC') +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#000000') +SAX.startElement(a, href='/news/news/reuters/sports/') +SAX.characters(Sports, 6) +SAX.endElement(a) +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( +, 1) +SAX.endElement(tr) +SAX.characters( + +, 2) +SAX.startElement(tr) +SAX.characters( +, 1) +SAX.startElement(td, bgcolor='#99FF99') +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#000000') +SAX.startElement(a, href='/news/news/reuters/business/') +SAX.characters(Finance, 7) +SAX.endElement(a) +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( +, 1) +SAX.endElement(tr) +SAX.characters( +, 1) +SAX.comment( End upper left nav ) +SAX.comment( Begin lower Left Nav ) +SAX.characters( + , 5) +SAX.startElement(tr) +SAX.characters( + , 6) +SAX.startElement(td, bgcolor='#FF0000') +SAX.startElement(font, face='Verdana, Arial, Helvetica, sans-serif', color='#FFFFFF') +SAX.characters( + , 8) +SAX.startElement(b) +SAX.startElement(font, size='1') +SAX.characters(FREE DELIVERY, 13) +SAX.endElement(font) +SAX.endElement(b) +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( + , 5) +SAX.endElement(tr) +SAX.characters( + , 5) +SAX.startElement(tr) +SAX.characters( + , 6) +SAX.startElement(td, bgcolor='#99FF99') +SAX.characters( +, 1) +SAX.startElement(table, cellspacing='0', cellpadding='0', border='0') +SAX.characters( + , 3) +SAX.startElement(tr) +SAX.startElement(td, bgcolor='#99FF99') +SAX.characters( + , 4) +SAX.startElement(form, action='http://r.hotwired.com/r/hw_wm_r_nav_nwsltr/http://perl.hotwired.com/massmail/cgiParser.cgi', method='get', target='_top') +SAX.characters( + + , 3) +SAX.startElement(input, type='hidden', name='success_page', value='http://www.hotwired.com/email/signup/wirednews-ascii.html') +SAX.endElement(input) +SAX.characters( + +, 3) +SAX.startElement(input, type='hidden', name='failure_page', value='http://www.hotwired.com/email/signup/wirednews-ascii.html') +SAX.endElement(input) +SAX.characters( + +, 3) +SAX.startElement(input, type='hidden', name='LIST', value='wn_ascii') +SAX.endElement(input) +SAX.characters( +, 1) +SAX.startElement(input, type='hidden', name='SOURCE', value='other') +SAX.endElement(input) +SAX.characters( + , 2) +SAX.startElement(input, type='hidden', name='ACTION', value='subscribe') +SAX.endElement(input) +SAX.characters( + +, 3) +SAX.startElement(input, type='TEXT', name='from', size='10', value='enter email') +SAX.endElement(input) +SAX.characters( , 2) +SAX.characters( +, 1) +SAX.endElement(form) +SAX.endElement(td) +SAX.characters( + , 4) +SAX.startElement(td, valign='top', bgcolor='#99FF99') +SAX.characters( + , 3) +SAX.startElement(input, type='SUBMIT', name='SUBMIT', value='GO') +SAX.endElement(input) +SAX.characters( + + , 5) +SAX.endElement(td) +SAX.characters( + , 2) +SAX.endElement(tr) +SAX.characters( , 4) +SAX.error: Unexpected end tag : form +SAX.characters( +, 1) +SAX.endElement(table) +SAX.endElement(td) +SAX.characters( + , 3) +SAX.endElement(tr) +SAX.characters( + , 3) +SAX.startElement(tr) +SAX.characters( + , 6) +SAX.startElement(td, bgcolor='#FF0000') +SAX.startElement(font, face='Verdana, Arial, Helvetica, sans-serif', color='#FFFFFF') +SAX.characters( + , 8) +SAX.startElement(b) +SAX.startElement(font, size='1') +SAX.characters(STOCKS, 6) +SAX.endElement(font) +SAX.endElement(b) +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( + , 3) +SAX.endElement(tr) +SAX.characters( + , 3) +SAX.startElement(tr) +SAX.characters( + , 6) +SAX.startElement(td, bgcolor='#99FF99') +SAX.startElement(font, face='Verdana, Arial, Helvetica, sans-serif', size='1') +SAX.characters(Get Quote:, 10) +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( + , 3) +SAX.endElement(tr) +SAX.characters( + , 3) +SAX.startElement(tr) +SAX.characters( + , 5) +SAX.startElement(td, bgcolor='#99FF99', marginwidth='0', marginheight='0') +SAX.startElement(form, method='get', action='http://r.wired.com/r/10020/http://stocks.wired.com/stocks_quotes.asp') +SAX.startElement(input, type='TEXT', name='Symbol', size='12') +SAX.endElement(input) +SAX.characters( , 2) +SAX.startElement(input, type='SUBMIT', name='submit', value='GO') +SAX.endElement(input) +SAX.endElement(form) +SAX.endElement(td) +SAX.characters( + , 3) +SAX.endElement(tr) +SAX.characters( +, 1) +SAX.comment( BEGIN BUTTON ADS ) +SAX.characters( + + , 5) +SAX.startElement(tr) +SAX.startElement(td, bgcolor='#CCFFCC') +SAX.characters( +, 1) +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#000000') +SAX.characters(Financial Services, 18) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.startElement(center) +SAX.characters( +, 1) +SAX.startElement(img, src='http://static.wired.com/news/images/spacer.gif', height='3', width='5', alt='') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(img, src='http://static.wired.com/news/images/button_ads_news10.gif', width='143', height='56', border='0', alt='', usemap='#buttons', hspace='0', vspace='0') +SAX.endElement(img) +SAX.characters( +, 1) +SAX.endElement(center) +SAX.characters( + +, 2) +SAX.startElement(map, name='buttons') +SAX.characters( + , 9) +SAX.startElement(area, shape='RECT', alt='Datek', coords='0,0,69,24', href='http://r.wired.com/r/1649/http://ads16.focalink.com/SmartBanner/page/1266.631') +SAX.endElement(area) +SAX.characters( + , 9) +SAX.startElement(area, shape='RECT', alt='Wired Index Fund', coords='73,0,142,24', href='http://r.wired.com/r/227/http://www.gffunds.com/wired') +SAX.endElement(area) +SAX.characters( + , 9) +SAX.startElement(area, shape='RECT', alt='internet.com Index Fund', coords='73,31,142,55', href='http://r.wired.com/r/298/http://www.gffunds.com/isdex/') +SAX.endElement(area) +SAX.characters( + , 9) +SAX.startElement(area, shape='RECT', alt='GetSmart's MortgageFinder', coords='0,31,69,55', href='http://r.wired.com/r/294/http://www.getsmartinc.com/mortgage/HomeBanner?BANNERNAME=www.getsmartinc.com/mwired001m6075x25') +SAX.endElement(area) +SAX.endElement(map) +SAX.characters( + , 9) +SAX.endElement(td) +SAX.characters( + , 3) +SAX.endElement(tr) +SAX.characters( , 1) +SAX.comment( END BUTTON ADS ) +SAX.characters( + + , 6) +SAX.startElement(tr) +SAX.characters( + , 6) +SAX.startElement(td, bgcolor='#99FF99') +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#000000') +SAX.startElement(a, href='http://redirect.wired.com/redir/51/http://stocks.wired.com/') +SAX.characters(Today's Summary, 15) +SAX.endElement(a) +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( + , 3) +SAX.endElement(tr) +SAX.characters( + , 3) +SAX.startElement(tr) +SAX.characters( + , 6) +SAX.startElement(td, bgcolor='#CCFFCC') +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#000000') +SAX.startElement(a, href='http://r.wired.com/r/hb_fin_r_wn_top/http://stocks.wired.com/stocks_indexes_detail.asp?Symbol=$WIRED') +SAX.characters(Wired Index, 11) +SAX.endElement(a) +SAX.characters( | , 3) +SAX.startElement(a, href='http://redirect.wired.com/redir/52/http://stocks.wired.com/stocks_indexes.asp ') +SAX.characters(All Indexes, 11) +SAX.endElement(a) +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( + , 3) +SAX.endElement(tr) +SAX.characters( + , 3) +SAX.startElement(tr) +SAX.characters( + , 6) +SAX.startElement(td, bgcolor='#99FF99') +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#000000') +SAX.startElement(a, href='http://redirect.wired.com/redir/53/http://stocks.wired.com/stocks_portfolios.asp') +SAX.characters(Portfolios, 10) +SAX.endElement(a) +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( + , 3) +SAX.endElement(tr) +SAX.characters( + +, 2) +SAX.comment( BEGIN B&N spot ) +SAX.characters( + +, 2) +SAX.startElement(tr) +SAX.characters( + , 3) +SAX.startElement(td, bgcolor='#FF0000') +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#FFFFFF') +SAX.startElement(b) +SAX.characters(FIND A BOOK, 11) +SAX.endElement(b) +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( +, 1) +SAX.endElement(tr) +SAX.characters( +, 1) +SAX.startElement(tr) +SAX.startElement(td, bgcolor='#CCFFCC') +SAX.characters( +, 1) +SAX.startElement(table, cellspacing='0', cellpadding='0', border='0', width='145') +SAX.characters( + , 17) +SAX.startElement(tr) +SAX.startElement(td, bgcolor='#CCFFCC') +SAX.characters( + , 17) +SAX.startElement(form, action='http://r.wired.com/r/wn_nav_c_bn/http://barnesandnoble.bfast.com/booklink/click') +SAX.characters( +, 1) +SAX.startElement(input, type='hidden', name='sourceid', value='383471') +SAX.endElement(input) +SAX.characters( +, 1) +SAX.startElement(input, type='hidden', name='categoryid', value='categorydropdown') +SAX.endElement(input) +SAX.characters( + , 17) +SAX.startElement(font, size='2') +SAX.characters( + , 17) +SAX.startElement(select, name='Subjects', size='4') +SAX.characters( +, 1) +SAX.startElement(option, value='301') +SAX.characters(Business Top 20 +, 16) +SAX.endElement(option) +SAX.startElement(option, value='500') +SAX.characters(Computers +, 10) +SAX.endElement(option) +SAX.startElement(option, value='503') +SAX.characters(Computer Games +, 15) +SAX.endElement(option) +SAX.startElement(option, value='1604') +SAX.characters(Current Affairs +, 16) +SAX.endElement(option) +SAX.startElement(option, value='511') +SAX.characters(Cyberculture +, 13) +SAX.endElement(option) +SAX.startElement(option, value='510') +SAX.characters(Internet/Web +, 13) +SAX.endElement(option) +SAX.startElement(option, value='303') +SAX.characters(Investing +, 10) +SAX.endElement(option) +SAX.startElement(option, value='1606') +SAX.characters(Law +, 4) +SAX.endElement(option) +SAX.startElement(option, value='513') +SAX.characters(Multimedia + +, 12) +SAX.endElement(option) +SAX.startElement(option, value='1605') +SAX.characters(Newsmakers +, 11) +SAX.endElement(option) +SAX.startElement(option, value='1607') +SAX.characters(Politics/Govt. + + , 17) +SAX.endElement(option) +SAX.startElement(option, value='315') +SAX.characters( Web Business + , 16) +SAX.endElement(option) +SAX.startElement(option, value='2800') +SAX.characters( Bargain Books + , 40) +SAX.endElement(option) +SAX.startElement(option, value='4') +SAX.characters(Other + + + + + + , 14) +SAX.endElement(option) +SAX.endElement(select) +SAX.endElement(font) +SAX.endElement(form) +SAX.endElement(td) +SAX.endElement(tr) +SAX.characters( + , 2) +SAX.startElement(tr, align='left', valign='top') +SAX.characters( + , 17) +SAX.startElement(td, valign='top', bgcolor='#CCFFCC') +SAX.characters( , 1) +SAX.startElement(input, type='submit', value='GO') +SAX.endElement(input) +SAX.characters( + +, 2) +SAX.error: htmlParseEntityRef: expecting ';' +SAX.startElement(img, src='http://barnesandnoble.bfast.com/booklink/serve?sourceid=383471&is_search=Y', border='0', align='top') +SAX.endElement(img) +SAX.characters( +, 1) +SAX.comment( + +) +SAX.characters( +, 1) +SAX.endElement(td) +SAX.characters( + + , 35) +SAX.endElement(tr) +SAX.characters( + , 17) +SAX.startElement(tr, align='left', valign='top') +SAX.characters( + + , 11) +SAX.startElement(td, align='left', valign='top', colspan='2', rowspan='1', bgcolor='#CCFFCC') +SAX.characters( +, 1) +SAX.startElement(p) +SAX.characters( + , 9) +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, ', color='#000000') +SAX.characters(Powered by , 11) +SAX.startElement(a, href='http://r.wired.com/r/wn_nav_c_bn/http://barnesandnoble.bfast.com/booklink/click?sourceid=383471') +SAX.characters(barnesandnoble.com, 18) +SAX.endElement(a) +SAX.characters( + , 2) +SAX.endElement(font) +SAX.characters( +, 1) +SAX.startElement(br, clear='all') +SAX.endElement(br) +SAX.characters( + + +, 3) +SAX.endElement(p) +SAX.endElement(td) +SAX.characters( + , 9) +SAX.endElement(tr) +SAX.characters( , 2) +SAX.error: Unexpected end tag : form +SAX.characters( + , 9) +SAX.endElement(table) +SAX.characters( + +, 2) +SAX.endElement(td) +SAX.endElement(tr) +SAX.characters( + , 2) +SAX.comment( END B&N spot ) +SAX.characters( + +, 7) +SAX.comment( BEGIN MAGAZINE SPOT ) +SAX.characters( + + , 3) +SAX.startElement(tr) +SAX.characters( + , 6) +SAX.startElement(td, bgcolor='#000000') +SAX.startElement(font, color='#FFFFFF', face='Verdana, Arial, Helvetica, sans-serif', size='1') +SAX.startElement(b) +SAX.characters(WIRED + MAGAZINE , 22) +SAX.endElement(b) +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( + , 3) +SAX.endElement(tr) +SAX.characters( +, 1) +SAX.startElement(tr) +SAX.characters( +, 2) +SAX.startElement(td, bgcolor='#FFFF99', align='CENTER') +SAX.characters( +, 1) +SAX.startElement(font, face='verdana, arial, helvetica, sans-serif', size='1') +SAX.characters( +, 1) +SAX.startElement(b) +SAX.characters( +, 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + +, 2) +SAX.startElement(a, href='http://www.wired.com/wired/') +SAX.startElement(img, src='http://static.wired.com/news/images/wiredcover.gif', width='91', height='109', border='0', alt='Wired Magazine') +SAX.endElement(img) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(b) +SAX.characters( + +Issue 7.11 +, 13) +SAX.endElement(font) +SAX.characters( +, 1) +SAX.endElement(td) +SAX.characters( +, 1) +SAX.endElement(tr) +SAX.characters( + +, 2) +SAX.startElement(tr) +SAX.characters( +, 2) +SAX.startElement(td, bgcolor='#FFFF99', align='center') +SAX.characters( +, 1) +SAX.startElement(font, face='verdana, arial, helvetica, sans-serif', size='1') +SAX.characters( + +, 3) +SAX.startElement(a, href='http://www.wired.com/wired/subscribe/special/79WN') +SAX.characters(Subscribe to Wired., 19) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Special offer!, 14) +SAX.endElement(a) +SAX.characters( + + +, 3) +SAX.endElement(font) +SAX.characters( +, 1) +SAX.endElement(td) +SAX.characters( +, 1) +SAX.endElement(tr) +SAX.characters( +, 1) +SAX.comment( END MAGAZINE SPOT ) +SAX.characters( + + , 4) +SAX.startElement(tr) +SAX.characters( + , 5) +SAX.startElement(td, bgcolor='#000000') +SAX.characters( + , 6) +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#FFFFFF') +SAX.startElement(b) +SAX.characters(HOTWIRED, 8) +SAX.endElement(b) +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( + , 3) +SAX.endElement(tr) +SAX.characters( + , 3) +SAX.startElement(tr) +SAX.characters( + , 6) +SAX.startElement(td, bgcolor='#FFFF99') +SAX.characters( , 1) +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#000000') +SAX.characters( +, 1) +SAX.startElement(a, href='http://www.hotwired.com/') +SAX.characters(Frontdoor, 9) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.startElement(a, href='http://www.hotwired.com/webmonkey/') +SAX.characters(Webmonkey, 9) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.startElement(a, href='http://www.hotwired.com/webmonkey/guides/index.html') +SAX.characters(Webmonkey Guides, 16) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.startElement(a, href='http://www.hotwired.com/rgb/') +SAX.characters(RGB Gallery, 11) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.startElement(a, href='http://www.hotwired.com/animation/') +SAX.characters(Animation Express, 17) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.startElement(a, href='http://go.suck.com/su_wnfd') +SAX.characters(Suck.com, 8) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( + , 3) +SAX.endElement(tr) +SAX.characters( + + , 8) +SAX.startElement(tr) +SAX.characters( + , 5) +SAX.startElement(td, bgcolor='#000000') +SAX.characters( + , 6) +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#FFFFFF') +SAX.startElement(b) +SAX.characters(HOTBOT, 6) +SAX.endElement(b) +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( + , 3) +SAX.endElement(tr) +SAX.characters( + , 3) +SAX.startElement(tr) +SAX.characters( + , 6) +SAX.startElement(td, bgcolor='#FFFF99') +SAX.characters( , 1) +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#000000') +SAX.characters( +, 1) +SAX.startElement(a, href='http://redirect.wired.com/redir/54/http://www.hotbot.com/') +SAX.characters(Search, 6) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.startElement(a, href='http://shop.hotbot.com/') +SAX.characters(Shopping, 8) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( + , 3) +SAX.endElement(tr) +SAX.characters( + + , 6) +SAX.startElement(tr) +SAX.startElement(td) +SAX.characters( + , 3) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + , 3) +SAX.startElement(font, face='Verdana, Arial, Helvetica, sans-serif', size='1') +SAX.characters( + , 3) +SAX.startElement(font, face='Verdana, Arial, Helvetica, sans-serif', size='1') +SAX.characters( + Wired News , 14) +SAX.startElement(a, href='/news/who/0,1362,,00.html') +SAX.characters(staff, 5) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + + , 4) +SAX.comment( Wired News is hiring

      ) +SAX.characters( + + , 4) +SAX.startElement(b) +SAX.startElement(a, href='/news/feedback/0,1364,,00.html') +SAX.characters(Contact us, 10) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.characters( + + + , 7) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + + , 6) +SAX.startElement(font, face='Verdana, Arial, Helvetica, sans-serif', size='1') +SAX.characters(Wired News delivered, 21) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(by , 3) +SAX.startElement(a, href='/news/palmpilot/0,1365,,00.html') +SAX.characters(PalmPilot, 9) +SAX.endElement(a) +SAX.characters(,, 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://www.hotwired.com/email/signup/wn_outlook.html') +SAX.characters(Outlook Express, 16) +SAX.endElement(a) +SAX.characters(,, 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://redirect.wired.com/redir/55/http://form.netscape.com/ibd/html/ibd_frameset.html') +SAX.characters(In-Box Direct, 13) +SAX.endElement(a) +SAX.characters(,, 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +or , 4) +SAX.startElement(a, href='/news/pointcast/0,1366,,00.html') +SAX.characters(PointCast, 9) +SAX.endElement(a) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + +, 2) +SAX.comment( TRACKING ) +SAX.characters( +, 1) +SAX.startElement(img, src='http://www.wired.com/special/modx/news.gif', height='1', width='1', alt='') +SAX.endElement(img) +SAX.characters( +, 1) +SAX.error: Opening and ending tag mismatch: td and font +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( + , 3) +SAX.endElement(tr) +SAX.characters( + +, 2) +SAX.endElement(table) +SAX.characters( + +, 2) +SAX.comment( end lower left side Navigation ) +SAX.characters( +, 1) +SAX.comment( CONTENT TABLE ) +SAX.characters( + +, 2) +SAX.startElement(table, border='0', width='447', cellspacing='0', cellpadding='0', bordercolor='#66FF00') +SAX.characters( + , 2) +SAX.startElement(tr) +SAX.characters( + , 3) +SAX.startElement(td, valign='TOP', align='LEFT', rowspan='2') +SAX.characters( + , 4) +SAX.startElement(img, src='http://static.wired.com/news/images/spacer.gif', height='1', width='15', alt='') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + , 3) +SAX.endElement(td) +SAX.characters( + , 3) +SAX.startElement(td, colspan='3', valign='TOP', align='LEFT') +SAX.startElement(img, src='http://static.wired.com/news/images/spacer.gif', height='7', width='432', alt='') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + + +, 3) +SAX.comment( SQL query for Package here ) +SAX.characters( + +, 2) +SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2') +SAX.startElement(b) +SAX.startElement(i) +SAX.characters(Nomad's Land, 12) +SAX.endElement(i) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(img, src='http://static.wired.com/news/images/pix155.gif', height='10', width='155', alt='') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment( IBD_SUBJECT: Homeless, but ID'd, in Seattle ) +SAX.startElement(font, face='Arial, Helvetica, sans-serif', size='5') +SAX.startElement(b) +SAX.startElement(a, href='/news/politics/0,1283,31911,00.html') +SAX.characters(Homeless, but ID'd, in Seattle, 30) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='1', face='Verdana, Arial, Geneva, sans-serif', color='#FF0000') +SAX.characters(8:15 a.m., 9) +SAX.endElement(font) +SAX.characters( , 2) +SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2') +SAX.characters(The city council approves a pl, 180) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='Verdana, Arial, Helvetica, sans-serif', size='1') +SAX.startElement(i) +SAX.startElement(a, href='/news/politics/0,1283,,00.html') +SAX.characters(in, 2) +SAX.characters( , 2) +SAX.characters(Politics, 8) +SAX.endElement(a) +SAX.endElement(i) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(table, bgcolor='#F0F0F0', cellpadding='0', cellspacing='0', border='0', width='147', align='RIGHT') +SAX.characters( + , 2) +SAX.comment( Commentary Frag Begin ) +SAX.characters( + , 9) +SAX.startElement(tr) +SAX.characters( + , 11) +SAX.startElement(td, bgcolor='#000000') +SAX.characters( , 2) +SAX.endElement(td) +SAX.characters( + , 11) +SAX.startElement(td, bgcolor='#000000') +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#FFFFFF') +SAX.startElement(b) +SAX.characters(HITS , 5) +SAX.characters(&, 1) +SAX.characters( MISC., 6) +SAX.endElement(b) +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( + , 9) +SAX.endElement(tr) +SAX.characters( + , 9) +SAX.startElement(tr) +SAX.characters( + , 11) +SAX.startElement(td) +SAX.characters( , 2) +SAX.endElement(td) +SAX.characters( + , 11) +SAX.startElement(td) +SAX.startElement(img, src='http://static.wired.com/news/images/spacer.gif', height='5', width='5', alt='') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + + , 4) +SAX.startElement(font, size='2', face='Arial,Helvetica, sans-serif') +SAX.startElement(b) +SAX.startElement(a, href='/news/commentarySection/0,1292,31664,00.html') +SAX.characters(Calendar of E-Vents, 19) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='2', face='Arial, Helvetica, sans-serif') +SAX.startElement(font, size='1', face='Arial, Geneva, sans-serif', color='#000000') +SAX.characters(Ongoing goings-on. , 19) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='2', face='Arial,Helvetica, sans-serif') +SAX.startElement(b) +SAX.startElement(a, href='/news/commentarySection/0,1292,31926,00.html') +SAX.characters(Rants , 6) +SAX.error: htmlParseEntityRef: no name +SAX.characters(&, 1) +SAX.characters( Raves, 6) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='2', face='Arial, Helvetica, sans-serif') +SAX.startElement(font, size='1', face='Arial, Geneva, sans-serif', color='#000000') +SAX.characters(Readers on Apple's G4 ... AOL', 59) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( , 2) +SAX.error: Opening and ending tag mismatch: td and font +SAX.endElement(font) +SAX.error: Opening and ending tag mismatch: td and font +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( + , 9) +SAX.endElement(tr) +SAX.characters( +, 1) +SAX.comment( Commentary Frag End ) +SAX.characters( +, 1) +SAX.startElement(tr) +SAX.characters( +, 2) +SAX.startElement(td, align='left', bgcolor='#000000') +SAX.characters( , 2) +SAX.endElement(td) +SAX.characters( +, 2) +SAX.startElement(td, bgcolor='#000000') +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#FFFFFF') +SAX.startElement(b) +SAX.characters(CURRENT HOO-HA, 14) +SAX.endElement(b) +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( +, 1) +SAX.endElement(tr) +SAX.characters( + +, 2) +SAX.startElement(tr) +SAX.characters( +, 2) +SAX.startElement(td) +SAX.characters( , 2) +SAX.endElement(td) +SAX.characters( +, 1) +SAX.startElement(td) +SAX.characters( +, 1) +SAX.startElement(img, src='http://static.wired.com/news/images/spacer.gif', height='5', width='5', alt='') +SAX.endElement(img) +SAX.characters( +, 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + +, 2) +SAX.startElement(font, size='2', face='Arial,Helvetica, sans-serif') +SAX.startElement(b) +SAX.startElement(a, href='/news/mp3/0,1285,,00.html') +SAX.characters(MP3 Rocks the Web, 17) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='2', face='Arial, Helvetica, sans-serif') +SAX.startElement(font, size='1', face='Arial, Geneva, sans-serif', color='#000000') +SAX.characters(Download the sound. , 21) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(i) +SAX.characters(Sponsored by , 13) +SAX.startElement(a, href='http://r.hotwired.com/r/wn_fd_mp3_r_mscm_txt/http://webfarm.mediaplex.com/click_thru_request/164-1361b-1052', style='text-decoration:none') +SAX.startElement(font, color='#000000') +SAX.characters(Musicmaker, 10) +SAX.endElement(font) +SAX.endElement(a) +SAX.endElement(i) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + +, 3) +SAX.startElement(font, size='2', face='Arial,Helvetica, sans-serif') +SAX.startElement(b) +SAX.startElement(a, href='/news/wireless/0,1382,,00.html') +SAX.characters(The Wireless World, 18) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='2', face='Arial, Helvetica, sans-serif') +SAX.startElement(font, size='1', face='Arial, Geneva, sans-serif', color='#000000') +SAX.characters(Networking gets unplugged. , 28) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(i) +SAX.characters(Sponsored by , 13) +SAX.startElement(a, href='http://www.ericsson.se/get/internet/default.shtml', style='text-decoration:none') +SAX.startElement(font, color='#000000') +SAX.characters(Ericsson, 8) +SAX.endElement(font) +SAX.endElement(a) +SAX.endElement(i) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + +, 3) +SAX.startElement(font, size='2', face='Arial,Helvetica, sans-serif') +SAX.startElement(b) +SAX.startElement(a, href='/news/digiwood/0,1412,,00.html') +SAX.characters(Digital Hollywood, 17) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='2', face='Arial, Helvetica, sans-serif') +SAX.startElement(font, size='1', face='Arial, Geneva, sans-serif', color='#000000') +SAX.characters(The buzz of tech., 17) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + +, 3) +SAX.startElement(font, size='2', face='Arial,Helvetica, sans-serif') +SAX.startElement(b) +SAX.startElement(a, href='/news/ipo/0,1350,,00.html') +SAX.characters(IPO Outlook, 11) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='2', face='Arial, Helvetica, sans-serif') +SAX.startElement(font, size='1', face='Arial, Geneva, sans-serif', color='#000000') +SAX.characters(Deals in the pipeline. , 24) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(i) +SAX.characters(Sponsored by , 13) +SAX.startElement(a, href='http://r.hotwired.com/r/wn_ipo_r_sun_txt/http://sun.com/ads/smi/brand/hotwired.html', style='text-decoration:none') +SAX.startElement(font, color='#000000') +SAX.characters(Sun, 3) +SAX.endElement(font) +SAX.endElement(a) +SAX.endElement(i) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + +, 3) +SAX.startElement(font, size='2', face='Arial,Helvetica, sans-serif') +SAX.startElement(b) +SAX.startElement(a, href='/news/ebiz/0,1272,,00.html') +SAX.characters(E-Biz, 5) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='2', face='Arial, Helvetica, sans-serif') +SAX.startElement(font, size='1', face='Arial, Geneva, sans-serif', color='#000000') +SAX.characters(Business unusual. , 19) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(i) +SAX.characters(Sponsored by , 13) +SAX.startElement(a, href='http://r.wired.com/r/wn_fd_r_ebiz_ibm_txt/http://www.ibm.com', style='text-decoration:none') +SAX.startElement(font, color='#000000') +SAX.characters(IBM, 3) +SAX.endElement(font) +SAX.endElement(a) +SAX.endElement(i) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + +, 3) +SAX.startElement(font, size='2', face='Arial,Helvetica, sans-serif') +SAX.startElement(b) +SAX.startElement(a, href='/news/medtech/0,1286,,00.html') +SAX.characters(Med-Tech Center, 15) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='2', face='Arial, Helvetica, sans-serif') +SAX.startElement(font, size='1', face='Arial, Geneva, sans-serif', color='#000000') +SAX.characters(From the bleeding edge., 23) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(i) +SAX.characters(Sponsored by WebMD, 18) +SAX.endElement(i) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + +, 3) +SAX.startElement(font, size='2', face='Arial,Helvetica, sans-serif') +SAX.startElement(b) +SAX.startElement(a, href='/news/linux/0,1411,,00.html') +SAX.characters(The Linux Effect, 16) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='2', face='Arial, Helvetica, sans-serif') +SAX.startElement(font, size='1', face='Arial, Geneva, sans-serif', color='#000000') +SAX.characters(Not just for geeks., 19) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( , 1) +SAX.startElement(img, src='http://static.wired.com/news/images/spacer.gif', height='7', width='5', alt='') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + +, 2) +SAX.startElement(font, size='2', face='Arial,Helvetica, sans-serif') +SAX.startElement(b) +SAX.startElement(a, href='/news/exec/0,1370,,00.html') +SAX.characters(Executive Summary, 17) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='1', face='Arial, Helvetica, sans-serif', color='#000000') +SAX.characters(CEOs, COOs, CIOs unite. , 25) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(i) +SAX.characters(Sponsored by , 13) +SAX.startElement(a, href='http://r.wired.com/r/wn_exec_r_vign/http://www.vignette.com/', style='text-decoration:none') +SAX.startElement(font, color='#000000') +SAX.characters(Vignette, 8) +SAX.error: Opening and ending tag mismatch: a and font +SAX.endElement(font) +SAX.endElement(a) +SAX.endElement(i) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + +, 3) +SAX.startElement(font, size='2', face='Arial,Helvetica, sans-serif') +SAX.startElement(b) +SAX.startElement(a, href='/news/school/0,1383,,00.html') +SAX.characters(Making the Grade, 16) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='2', face='Arial, Helvetica, sans-serif') +SAX.startElement(font, size='1', face='Arial, Geneva, sans-serif', color='#000000') +SAX.characters(Reading, writing, and ROM. , 28) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(i) +SAX.characters(Sponsored by , 13) +SAX.startElement(a, href='http://r.hotwired.com/r/wn_sch_r_nav_uop/http://ads25.focalink.com/SmartBanner/page?12630.53', style='text-decoration:none') +SAX.startElement(font, color='#000000') +SAX.characters(U of Phoenix, 12) +SAX.endElement(font) +SAX.endElement(a) +SAX.endElement(i) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + +, 3) +SAX.startElement(font, size='2', face='Arial,Helvetica, sans-serif') +SAX.startElement(b) +SAX.startElement(a, href='/news/infostructure/0,1377,,00.html') +SAX.characters(Infostructure, 13) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='1', face='Arial, Helvetica, sans-serif', color='#000000') +SAX.characters(An IS/IT resource , 18) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(i) +SAX.characters(Sponsored by , 13) +SAX.error: htmlParseEntityRef: expecting ';' +SAX.error: htmlParseEntityRef: expecting ';' +SAX.error: htmlParseEntityRef: expecting ';' +SAX.startElement(a, href='http://r.wired.com/r/wn_is_r_ssec/http://ad.doubleclick.net/clk;653163;3599571;s?http://www.sprintbiz.com/s +ervlet/appservlet?from=/wired/sprint/&template=/security/security.html&SITE= +wired.com&BANNER=Sprint', style='text-decoration:none') +SAX.startElement(font, color='#000000') +SAX.characters(Sprint, 6) +SAX.error: Opening and ending tag mismatch: a and font +SAX.endElement(font) +SAX.endElement(a) +SAX.endElement(i) +SAX.error: End tag : expected '>' +SAX.endElement(font) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + +, 3) +SAX.startElement(font, size='2', face='Arial,Helvetica, sans-serif') +SAX.startElement(b) +SAX.startElement(a, href='/news/y2k/0,1360,,00.html') +SAX.characters(Y2K Watch, 9) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='2', face='Arial, Helvetica, sans-serif') +SAX.startElement(font, size='1', face='Arial, Geneva, sans-serif', color='#000000') +SAX.characters(Tick... Tick... Tick..., 23) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + +, 3) +SAX.startElement(font, face='Arial, Helvetica, sans-serif', size='2') +SAX.startElement(b) +SAX.startElement(i) +SAX.startElement(a, href='/news/special_reports/1,1293,,00.html') +SAX.characters(More Hoo-Ha, 11) +SAX.endElement(a) +SAX.endElement(i) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( , 2) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + +, 2) +SAX.error: Opening and ending tag mismatch: td and font +SAX.endElement(font) +SAX.error: Opening and ending tag mismatch: td and font +SAX.endElement(font) +SAX.error: Opening and ending tag mismatch: td and font +SAX.endElement(font) +SAX.error: Opening and ending tag mismatch: td and font +SAX.endElement(font) +SAX.error: Opening and ending tag mismatch: td and font +SAX.endElement(font) +SAX.error: Opening and ending tag mismatch: td and font +SAX.endElement(font) +SAX.error: Opening and ending tag mismatch: td and font +SAX.endElement(font) +SAX.error: Opening and ending tag mismatch: td and font +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( +, 1) +SAX.endElement(tr) +SAX.characters( +, 1) +SAX.comment( start of Gen News ) +SAX.characters( + , 17) +SAX.startElement(tr) +SAX.characters( + , 20) +SAX.startElement(td, bgcolor='#000000') +SAX.characters( , 2) +SAX.endElement(td) +SAX.characters( + , 11) +SAX.startElement(td, bgcolor='#000000') +SAX.startElement(font, size='1', face='Verdana, Arial, Helvetica, sans-serif', color='#FFFFFF') +SAX.startElement(b) +SAX.characters(MEANWHILE..., 12) +SAX.endElement(b) +SAX.endElement(font) +SAX.endElement(td) +SAX.characters( + , 9) +SAX.endElement(tr) +SAX.characters( + + , 10) +SAX.startElement(tr) +SAX.characters( + , 12) +SAX.startElement(td) +SAX.characters( , 2) +SAX.endElement(td) +SAX.characters( + , 11) +SAX.startElement(td, align='left', valign='top') +SAX.characters( + , 11) +SAX.startElement(img, src='http://static.wired.com/news/images/spacer.gif', height='5', width='5', alt='') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + + +, 3) +SAX.comment( 31942 ) +SAX.characters( +, 1) +SAX.startElement(font, size='2', face='Arial, Helvetica, sans-serif', color='#000000') +SAX.startElement(b) +SAX.characters(Führer Furor, 13) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='1', face='Arial, Geneva, sans-serif', color='#000000') +SAX.startElement(p) +SAX.characters( +Contruction workers in Berli, 637) +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(p) +SAX.startElement(li) +SAX.characters(More from , 10) +SAX.error: htmlParseEntityRef: expecting ';' +SAX.startElement(a, href='http://www.lycos.com/news/flash/hitlerbunker.html?v=wn1015&lpv=1') +SAX.characters(Lycos, 5) +SAX.endElement(a) +SAX.endElement(li) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + , 2) +SAX.endElement(td) +SAX.characters( + , 9) +SAX.endElement(tr) +SAX.characters( +, 1) +SAX.comment( end of Gen News ) +SAX.characters( +, 1) +SAX.endElement(table) +SAX.characters( + + +, 3) +SAX.startElement(font, size='1') +SAX.characters( , 2) +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.characters( + +, 2) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + +, 2) +SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2') +SAX.startElement(b) +SAX.startElement(i) +SAX.characters(Other Top Stories, 17) +SAX.endElement(i) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.startElement(img, src='http://static.wired.com/news/images/pix155.gif', height='10', width='155', alt='') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + +, 2) +SAX.comment( SQL query here ) +SAX.characters( +, 1) +SAX.comment( IBD_SUBJECT:Wall Street Keeps Reeling ) +SAX.startElement(font, face='Arial, Helvetica, sans-serif', size='3') +SAX.startElement(b) +SAX.startElement(a, href='/news/reuters/0,1349,31934,00.html') +SAX.characters(Wall Street Keeps Reeling, 25) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#ff0000', face='Verdana, Arial, Geneva, sans-serif', size='1') +SAX.characters(10:15 a.m., 10) +SAX.endElement(font) +SAX.characters( , 2) +SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2') +SAX.characters(The Dow and Nasdaq suffer size, 180) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='Verdana, Arial, Helvetica, sans-serif', size='1') +SAX.startElement(i) +SAX.startElement(a, href='/news/reuters/0,1349,,00.html') +SAX.characters(in, 2) +SAX.characters( , 2) +SAX.characters(Reuters, 7) +SAX.endElement(a) +SAX.endElement(i) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment( IBD_SUBJECT:The Market's Madness ) +SAX.startElement(font, face='Arial, Helvetica, sans-serif', size='3') +SAX.startElement(b) +SAX.startElement(a, href='/news/reuters/0,1349,31935,00.html') +SAX.characters(The Market's Madness, 20) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#ff0000', face='Verdana, Arial, Geneva, sans-serif', size='1') +SAX.characters(9:10 a.m., 9) +SAX.endElement(font) +SAX.characters( , 2) +SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2') +SAX.characters(The bulls and the bears are in, 128) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='Verdana, Arial, Helvetica, sans-serif', size='1') +SAX.startElement(i) +SAX.startElement(a, href='/news/reuters/0,1349,,00.html') +SAX.characters(in, 2) +SAX.characters( , 2) +SAX.characters(Reuters, 7) +SAX.endElement(a) +SAX.endElement(i) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment( IBD_SUBJECT:'Want a Loan? What's Your Race?' ) +SAX.startElement(font, face='Arial, Helvetica, sans-serif', size='3') +SAX.startElement(b) +SAX.startElement(a, href='/news/politics/0,1283,31533,00.html') +SAX.characters('Want a Loan? What's Your Race, 32) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#ff0000', face='Verdana, Arial, Geneva, sans-serif', size='1') +SAX.characters(3:00 a.m., 9) +SAX.endElement(font) +SAX.characters( , 2) +SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2') +SAX.characters(The Federal Reserve is in the , 184) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='Verdana, Arial, Helvetica, sans-serif', size='1') +SAX.startElement(i) +SAX.startElement(a, href='/news/politics/0,1283,,00.html') +SAX.characters(in, 2) +SAX.characters( , 2) +SAX.characters(Politics, 8) +SAX.endElement(a) +SAX.endElement(i) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment( IBD_SUBJECT:Music Regs: A Bagful of Noise ) +SAX.startElement(font, face='Arial, Helvetica, sans-serif', size='3') +SAX.startElement(b) +SAX.startElement(a, href='/news/business/0,1367,31832,00.html') +SAX.characters(Music Regs: A Bagful of Noise, 29) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#ff0000', face='Verdana, Arial, Geneva, sans-serif', size='1') +SAX.characters(3:00 a.m., 9) +SAX.endElement(font) +SAX.characters( , 2) +SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2') +SAX.characters(The struggle to come up with a, 171) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='Verdana, Arial, Helvetica, sans-serif', size='1') +SAX.startElement(i) +SAX.startElement(a, href='/news/business/0,1367,,00.html') +SAX.characters(in, 2) +SAX.characters( , 2) +SAX.characters(Business, 8) +SAX.endElement(a) +SAX.endElement(i) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment( IBD_SUBJECT:Can't Beat 'Em? Green 'Em ) +SAX.startElement(font, face='Arial, Helvetica, sans-serif', size='3') +SAX.startElement(b) +SAX.startElement(a, href='/news/technology/0,1282,31927,00.html') +SAX.characters(Can't Beat 'Em? Green 'Em, 25) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#ff0000', face='Verdana, Arial, Geneva, sans-serif', size='1') +SAX.characters(3:00 a.m., 9) +SAX.endElement(font) +SAX.characters( , 2) +SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2') +SAX.characters(High-tech companies are notori, 186) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='Verdana, Arial, Helvetica, sans-serif', size='1') +SAX.startElement(i) +SAX.startElement(a, href='/news/technology/0,1282,,00.html') +SAX.characters(in, 2) +SAX.characters( , 2) +SAX.characters(Technology, 10) +SAX.endElement(a) +SAX.endElement(i) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment( IBD_SUBJECT:Y2K Cloud Over MS Office ) +SAX.startElement(font, face='Arial, Helvetica, sans-serif', size='3') +SAX.startElement(b) +SAX.startElement(a, href='/news/business/0,1367,31932,00.html') +SAX.characters(Y2K Cloud Over MS Office, 24) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#ff0000', face='Verdana, Arial, Geneva, sans-serif', size='1') +SAX.characters(3:00 a.m., 9) +SAX.endElement(font) +SAX.characters( , 2) +SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2') +SAX.characters(Windows NT sales remain strong, 165) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='Verdana, Arial, Helvetica, sans-serif', size='1') +SAX.startElement(i) +SAX.startElement(a, href='/news/business/0,1367,,00.html') +SAX.characters(in, 2) +SAX.characters( , 2) +SAX.characters(Business, 8) +SAX.endElement(a) +SAX.endElement(i) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#FF0000', face='Verdana, Arial, Geneva, sans-serif', size='1') +SAX.characters(Med-Tech, 8) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment( IBD_SUBJECT:Biochips for Custom Chemo ) +SAX.startElement(font, face='Arial, Helvetica, sans-serif', size='3') +SAX.startElement(b) +SAX.startElement(a, href='/news/technology/0,1282,31914,00.html') +SAX.characters(Biochips for Custom Chemo, 25) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#ff0000', face='Verdana, Arial, Geneva, sans-serif', size='1') +SAX.characters(3:00 a.m., 9) +SAX.endElement(font) +SAX.characters( , 2) +SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2') +SAX.characters(Different cancer patients need, 207) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='Verdana, Arial, Helvetica, sans-serif', size='1') +SAX.startElement(i) +SAX.startElement(a, href='/news/technology/0,1282,,00.html') +SAX.characters(in, 2) +SAX.characters( , 2) +SAX.characters(Technology, 10) +SAX.endElement(a) +SAX.endElement(i) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment( IBD_SUBJECT:High Stakes in Priceline Suit ) +SAX.startElement(font, face='Arial, Helvetica, sans-serif', size='3') +SAX.startElement(b) +SAX.startElement(a, href='/news/business/0,1367,31916,00.html') +SAX.characters(High Stakes in Priceline Suit, 29) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#ff0000', face='Verdana, Arial, Geneva, sans-serif', size='1') +SAX.characters(3:00 a.m., 9) +SAX.endElement(font) +SAX.characters( , 2) +SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2') +SAX.characters(It's not just another round of, 196) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='Verdana, Arial, Helvetica, sans-serif', size='1') +SAX.startElement(i) +SAX.startElement(a, href='/news/business/0,1367,,00.html') +SAX.characters(in, 2) +SAX.characters( , 2) +SAX.characters(Business, 8) +SAX.endElement(a) +SAX.endElement(i) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment( IBD_SUBJECT:Biodiversity Merges Online ) +SAX.startElement(font, face='Arial, Helvetica, sans-serif', size='3') +SAX.startElement(b) +SAX.startElement(a, href='/news/technology/0,1282,31918,00.html') +SAX.characters(Biodiversity Merges Online, 26) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#ff0000', face='Verdana, Arial, Geneva, sans-serif', size='1') +SAX.characters(3:00 a.m., 9) +SAX.endElement(font) +SAX.characters( , 2) +SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2') +SAX.characters(The far-flung databases on glo, 196) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='Verdana, Arial, Helvetica, sans-serif', size='1') +SAX.startElement(i) +SAX.startElement(a, href='/news/technology/0,1282,,00.html') +SAX.characters(in, 2) +SAX.characters( , 2) +SAX.characters(Technology, 10) +SAX.endElement(a) +SAX.endElement(i) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment( SQL above ) +SAX.characters( + + + +, 12) +SAX.comment(----TRADES-------) +SAX.characters( +, 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='2') +SAX.startElement(b) +SAX.startElement(i) +SAX.characters(Elsewhere Today, 15) +SAX.endElement(i) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.startElement(img, src='http://static.wired.com/news/images/pix155.gif', height='10', width='155', alt='') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + +, 2) +SAX.comment( SQL query here ) +SAX.characters( +, 1) +SAX.startElement(font, face='helvetica, arial', size='3') +SAX.startElement(b) +SAX.startElement(a, href='http://www.thestandard.com/articles/display/0,1449,6975,00.html?home.tf') +SAX.characters(FCC: Hands-Off on Broadband, 27) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='geneva, arial', size='2') +SAX.startElement(cite) +SAX.characters(The Industry Standard, 21) +SAX.endElement(cite) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='helvetica, arial', size='3') +SAX.startElement(b) +SAX.startElement(a, href='http://news.lycos.com/stories/TopNews/19991014RTNEWS-ARMS-TREATY.asp') +SAX.characters(White House Lashes Out on Trea, 32) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='geneva, arial', size='2') +SAX.characters(Lycos, 5) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='helvetica, arial', size='3') +SAX.startElement(b) +SAX.startElement(a, href='http://www.pathfinder.com/time/magazine/articles/0,3266,32207,00.html') +SAX.characters(Steve Jobs at 44, 16) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='geneva, arial', size='2') +SAX.startElement(cite) +SAX.characters(Time, 4) +SAX.endElement(cite) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='helvetica, arial', size='3') +SAX.startElement(b) +SAX.startElement(a, href='http://www.zdnet.com/zdnn/stories/news/0,4586,2353608,00.html') +SAX.characters(Computers May Run on Gas, 24) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='geneva, arial', size='2') +SAX.characters(ZDNN, 4) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='helvetica, arial', size='3') +SAX.startElement(b) +SAX.startElement(a, href='http://www.nytimes.com/library/tech/99/10/biztech/articles/14free.html') +SAX.characters(Much Is Free in the Wired Worl, 31) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='geneva, arial', size='2') +SAX.startElement(cite) +SAX.characters(The New York Times, 18) +SAX.endElement(cite) +SAX.characters( (Registration Required), 24) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='helvetica, arial', size='3') +SAX.startElement(b) +SAX.startElement(a, href='http://www.usatoday.com/life/cyber/nb/nb4.htm') +SAX.characters(Melissa: I'm Baaaack, 20) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='geneva, arial', size='2') +SAX.startElement(cite) +SAX.characters(USA Today, 9) +SAX.endElement(cite) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='helvetica, arial', size='3') +SAX.startElement(b) +SAX.startElement(a, href='http://www.msnbc.com/news/322926.asp') +SAX.characters(Domain Owners Surrender Privac, 31) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='geneva, arial', size='2') +SAX.characters(MSNBC, 5) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='helvetica, arial', size='3') +SAX.startElement(b) +SAX.startElement(a, href='http://www.washingtonpost.com/wp-srv/business/longterm/tech/techthursday/download/download.htm') +SAX.characters(Dividing to Conquer in VC Game, 30) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='geneva, arial', size='2') +SAX.startElement(cite) +SAX.characters(The Washington Post, 19) +SAX.endElement(cite) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='helvetica, arial', size='3') +SAX.startElement(b) +SAX.startElement(a, href='http://www.salon.com/tech/books/1999/10/14/redhat_book/index.html') +SAX.characters(The Red Hat Diaries, 19) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='geneva, arial', size='2') +SAX.characters(Salon, 5) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='helvetica, arial', size='3') +SAX.startElement(b) +SAX.startElement(a, href='http://news.bbc.co.uk/hi/english/sci/tech/newsid_473000/473856.stm') +SAX.characters(Screensaver to Predict Climate, 30) +SAX.endElement(a) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='geneva, arial', size='2') +SAX.characters(BBC News, 8) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment( SQL above ) +SAX.characters( + + + +, 4) +SAX.comment( - - - - - - - - - - - - ) +SAX.characters( + + , 6) +SAX.endElement(td) +SAX.characters( + , 3) +SAX.endElement(tr) +SAX.characters( + + , 4) +SAX.startElement(tr) +SAX.characters( + , 4) +SAX.startElement(td, valign='TOP', align='LEFT') +SAX.characters( + + , 6) +SAX.startElement(img, src='http://static.wired.com/news/images/spacer.gif', height='1', width='280', alt='') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + + , 7) +SAX.comment( FOOTER ) +SAX.characters( + +, 2) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(img, src='http://static.wired.com/news/images/pix155.gif', height='10', width='155', border='0', usemap='#navstrip.map', alt='') +SAX.endElement(img) +SAX.characters( +, 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + +, 2) +SAX.startElement(img, src='http://static.wired.com/news/images/navstrip_off.gif', height='17', width='126', usemap='#navstrip.map', border='0', alt='') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + +, 2) +SAX.startElement(p) +SAX.startElement(font, face='Verdana, Arial, Geneva, sans-serif', size='1') +SAX.characters( +, 1) +SAX.startElement(a, href='http://www.wired.com/news/feedback.html') +SAX.characters(Send us feedback, 16) +SAX.endElement(a) +SAX.characters( +, 1) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.characters( +, 1) +SAX.startElement(a, href='http://www.hotwired.com/jobs/') +SAX.characters(Work at Wired Digital, 21) +SAX.endElement(a) +SAX.characters( +, 1) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.characters( +, 1) +SAX.startElement(a, href='http://home.wired.com/advertising/') +SAX.characters(Advertise with us, 17) +SAX.endElement(a) +SAX.characters( +, 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.startElement(a, href='http://home.wired.com/') +SAX.characters(About Wired Digital, 19) +SAX.endElement(a) +SAX.characters( +, 1) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.characters( +, 1) +SAX.startElement(a, href='http://www.wired.com/home/digital/privacy/') +SAX.characters(Our Privacy Policy, 18) +SAX.endElement(a) +SAX.endElement(font) +SAX.characters( + + +, 3) +SAX.endElement(p) +SAX.startElement(p) +SAX.startElement(font, face='Verdana, Arial, Geneva', size='1') +SAX.startElement(a, href='http://www.wired.com/home/copyright.html') +SAX.characters(Copyright, 9) +SAX.endElement(a) +SAX.characters( , 1) +SAX.characters(©, 2) +SAX.characters( 1994-99 Wired Digital Inc. Al, 48) +SAX.endElement(font) +SAX.characters( + +, 2) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.comment( TRACKING ) +SAX.characters( +, 1) +SAX.startElement(img, src='http://www.wired.com/special/modx/news.gif', height='1', width='1', alt='') +SAX.endElement(img) +SAX.characters( + +, 2) +SAX.startElement(map, name='navstrip.map') +SAX.characters( +, 1) +SAX.startElement(area, shape='rect', coords='0,0,14,16', href='/news') +SAX.endElement(area) +SAX.characters( +, 1) +SAX.startElement(area, shape='rect', coords='15,0 31,16', href='/news/business/') +SAX.endElement(area) +SAX.characters( +, 1) +SAX.startElement(area, shape='rect', coords='32,0,48,16', href='/news/culture/') +SAX.endElement(area) +SAX.characters( +, 1) +SAX.startElement(area, shape='rect', coords='49,0,65,16', href='/news/technology/') +SAX.endElement(area) +SAX.characters( +, 1) +SAX.startElement(area, shape='rect', coords='66,0,83,16', href='/news/politics/') +SAX.endElement(area) +SAX.characters( +, 1) +SAX.endElement(map) +SAX.characters( + , 2) +SAX.endElement(p) +SAX.endElement(td) +SAX.characters( + , 4) +SAX.startElement(td, valign='TOP', align='LEFT') +SAX.characters( + , 5) +SAX.startElement(img, src='http://static.wired.com/news/images/spacer.gif', height='1', width='5', alt='') +SAX.endElement(img) +SAX.characters( + , 4) +SAX.endElement(td) +SAX.characters( + , 4) +SAX.startElement(td, valign='TOP', align='LEFT') +SAX.characters( + , 4) +SAX.endElement(td) +SAX.characters( + , 3) +SAX.endElement(tr) +SAX.characters( +, 1) +SAX.endElement(table) +SAX.characters( + + +, 3) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.endElement(body) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(html) +SAX.ignorableWhitespace( + +, 2) +SAX.endDocument() diff --git a/result/SVG/4rects.xml b/result/SVG/4rects.xml new file mode 100644 index 0000000..dfaa02d --- /dev/null +++ b/result/SVG/4rects.xml @@ -0,0 +1,10 @@ + + + + Four separate rectangles + + + + + + diff --git a/result/SVG/a-valid.xml b/result/SVG/a-valid.xml new file mode 100644 index 0000000..8f4a204 --- /dev/null +++ b/result/SVG/a-valid.xml @@ -0,0 +1,9 @@ + + + + This valid svg document draws a triangle which is a hyperlink + + +

      + + diff --git a/result/SVG/a-wf.xml b/result/SVG/a-wf.xml new file mode 100644 index 0000000..7facfd5 --- /dev/null +++ b/result/SVG/a-wf.xml @@ -0,0 +1,8 @@ + + + This well formed svg document draws a triangle which is a hyperlink + + +

      + + diff --git a/result/SVG/bike-errors.xml b/result/SVG/bike-errors.xml new file mode 100644 index 0000000..e69de29 diff --git a/result/SVG/bike.xml b/result/SVG/bike.xml new file mode 100644 index 0000000..410869d --- /dev/null +++ b/result/SVG/bike.xml @@ -0,0 +1,44 @@ + + + + Kona Lavadome mountain bike + + This picture shows a mountain bike, a human-propelled, + multi-terrain vehicle. While it can be succesfully used on moorland, + forest, roads, and large hills it is not actually suitable for going + up mountains. + + + + + 14/12 gauge double butted spoke + + + + black anodised low torsion hub + + + + twin wall, eyeletted rim + + + + 8 speed, wide ratio gearing + + + + double cross lacing of 32 spokes + + + + + Front wheel + The front wheel provides grip, steering and some shock absorption + + + + + + + + diff --git a/result/SVG/circle.xml b/result/SVG/circle.xml new file mode 100644 index 0000000..ae7d545 --- /dev/null +++ b/result/SVG/circle.xml @@ -0,0 +1,9 @@ + + + + This is a blue circle with a red outline + + + + + diff --git a/result/SVG/defs.xml b/result/SVG/defs.xml new file mode 100644 index 0000000..78c6beb --- /dev/null +++ b/result/SVG/defs.xml @@ -0,0 +1,14 @@ + + + + + + + + + + Defining things for later use + + + diff --git a/result/SVG/desc.xml b/result/SVG/desc.xml new file mode 100644 index 0000000..6fde966 --- /dev/null +++ b/result/SVG/desc.xml @@ -0,0 +1,14 @@ + + + + + + Company sales by region + + + This is a bar chart which shows + company sales by region. + + + + diff --git a/result/SVG/ellipse.xml b/result/SVG/ellipse.xml new file mode 100644 index 0000000..1f72346 --- /dev/null +++ b/result/SVG/ellipse.xml @@ -0,0 +1,9 @@ + + + + This is an ellipse, axis aligned and centered on the origin + + + + + diff --git a/result/SVG/flower2.xml b/result/SVG/flower2.xml new file mode 100644 index 0000000..f6cd2ba --- /dev/null +++ b/result/SVG/flower2.xml @@ -0,0 +1,10 @@ + + + + This sample SVG file draws a flower + + + + + + diff --git a/result/SVG/gradient.xml b/result/SVG/gradient.xml new file mode 100644 index 0000000..4570b76 --- /dev/null +++ b/result/SVG/gradient.xml @@ -0,0 +1,16 @@ + + + + Gradient example + + + + + + + + + + + + diff --git a/result/SVG/group01.xml b/result/SVG/group01.xml new file mode 100644 index 0000000..f39ad88 --- /dev/null +++ b/result/SVG/group01.xml @@ -0,0 +1,14 @@ + + + + Two groups, each of two rectangles + + + + + + + + + + diff --git a/result/SVG/group02.xml b/result/SVG/group02.xml new file mode 100644 index 0000000..85e1f52 --- /dev/null +++ b/result/SVG/group02.xml @@ -0,0 +1,12 @@ + + + + Two named groups + + + + + + + + diff --git a/result/SVG/group03.xml b/result/SVG/group03.xml new file mode 100644 index 0000000..20d75ad --- /dev/null +++ b/result/SVG/group03.xml @@ -0,0 +1,11 @@ + + + + Groups can nest + + + + + + + diff --git a/result/SVG/image-valid.xml b/result/SVG/image-valid.xml new file mode 100644 index 0000000..d45d229 --- /dev/null +++ b/result/SVG/image-valid.xml @@ -0,0 +1,9 @@ + + + + This graphic links to an external image + + + My image + + diff --git a/result/SVG/image-wf.xml b/result/SVG/image-wf.xml new file mode 100644 index 0000000..e11a12f --- /dev/null +++ b/result/SVG/image-wf.xml @@ -0,0 +1,8 @@ + + + This links to an external image + + + My image + + diff --git a/result/SVG/lin-gradient.xml b/result/SVG/lin-gradient.xml new file mode 100644 index 0000000..645bdce --- /dev/null +++ b/result/SVG/lin-gradient.xml @@ -0,0 +1,15 @@ + + + + Linear gradient example + + + + + + + + + + + diff --git a/result/SVG/marker.xml b/result/SVG/marker.xml new file mode 100644 index 0000000..1b41714 --- /dev/null +++ b/result/SVG/marker.xml @@ -0,0 +1,23 @@ + + + + + + + + + An double-headed arrow example using markers + + + + + + + + + + + + + diff --git a/result/SVG/mask.xml b/result/SVG/mask.xml new file mode 100644 index 0000000..1204e06 --- /dev/null +++ b/result/SVG/mask.xml @@ -0,0 +1,12 @@ + + + + Example of using a mask + + + + + + + + diff --git a/result/SVG/mathswitch.xml b/result/SVG/mathswitch.xml new file mode 100644 index 0000000..b291384 --- /dev/null +++ b/result/SVG/mathswitch.xml @@ -0,0 +1,26 @@ + + + This example uses the switch element to provide a + fallback graphical representation of an equation, if + MathML is not supported. + + + + + + + + + + + + Formula goes here + + + diff --git a/result/SVG/parentns.xml b/result/SVG/parentns.xml new file mode 100644 index 0000000..5b2ed46 --- /dev/null +++ b/result/SVG/parentns.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/result/SVG/path01.xml b/result/SVG/path01.xml new file mode 100644 index 0000000..646940b --- /dev/null +++ b/result/SVG/path01.xml @@ -0,0 +1,4 @@ + + + + diff --git a/result/SVG/path02.xml b/result/SVG/path02.xml new file mode 100644 index 0000000..b74f975 --- /dev/null +++ b/result/SVG/path02.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/result/SVG/patternfill.xml b/result/SVG/patternfill.xml new file mode 100644 index 0000000..c520ae8 --- /dev/null +++ b/result/SVG/patternfill.xml @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/result/SVG/polyline.xml b/result/SVG/polyline.xml new file mode 100644 index 0000000..9fa4071 --- /dev/null +++ b/result/SVG/polyline.xml @@ -0,0 +1,8 @@ + + + + A sample polyline, and equivalent path + + + + diff --git a/result/SVG/private.xml b/result/SVG/private.xml new file mode 100644 index 0000000..edfe366 --- /dev/null +++ b/result/SVG/private.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + This chart includes private data in another namespace + + + diff --git a/result/SVG/rad-gradient.xml b/result/SVG/rad-gradient.xml new file mode 100644 index 0000000..d5aadf0 --- /dev/null +++ b/result/SVG/rad-gradient.xml @@ -0,0 +1,16 @@ + + + + Radial gradient example with three gradient stops + + + + + + + + + + + + diff --git a/result/SVG/rectangle.xml b/result/SVG/rectangle.xml new file mode 100644 index 0000000..919cd23 --- /dev/null +++ b/result/SVG/rectangle.xml @@ -0,0 +1,9 @@ + + + + This is a rectangle + + + + + diff --git a/result/SVG/richdesc.xml b/result/SVG/richdesc.xml new file mode 100644 index 0000000..eba1f05 --- /dev/null +++ b/result/SVG/richdesc.xml @@ -0,0 +1,11 @@ + + + + This is an example SVG file + The global description uses markup from the + mydoc namespace. + + + + + diff --git a/result/SVG/script.xml b/result/SVG/script.xml new file mode 100644 index 0000000..c98af0f --- /dev/null +++ b/result/SVG/script.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/result/SVG/structure01.xml b/result/SVG/structure01.xml new file mode 100644 index 0000000..46af5e8 --- /dev/null +++ b/result/SVG/structure01.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/result/SVG/style.xml b/result/SVG/style.xml new file mode 100644 index 0000000..7176912 --- /dev/null +++ b/result/SVG/style.xml @@ -0,0 +1,11 @@ + + + + + + + Here is my title + diff --git a/result/SVG/switch.xml b/result/SVG/switch.xml new file mode 100644 index 0000000..87eb364 --- /dev/null +++ b/result/SVG/switch.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + diff --git a/result/SVG/symbol-use.xml b/result/SVG/symbol-use.xml new file mode 100644 index 0000000..a9b395c --- /dev/null +++ b/result/SVG/symbol-use.xml @@ -0,0 +1,22 @@ + + + + + + + + + Examples of inline and referenced content + + + + + + + + + + + + + diff --git a/result/SVG/template.xml b/result/SVG/template.xml new file mode 100644 index 0000000..607cd91 --- /dev/null +++ b/result/SVG/template.xml @@ -0,0 +1,8 @@ + + + This well formed svg document contains a hyperlink + + +

      + + diff --git a/result/SVG/text01.xml b/result/SVG/text01.xml new file mode 100644 index 0000000..0e2b44b --- /dev/null +++ b/result/SVG/text01.xml @@ -0,0 +1,11 @@ + + + + + XYZ + + ABC + + + + diff --git a/result/SVG/text02.xml b/result/SVG/text02.xml new file mode 100644 index 0000000..9656ea5 --- /dev/null +++ b/result/SVG/text02.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + 123 + + + ABC + + + 456 + + + DEF + + diff --git a/result/SVG/text03.xml b/result/SVG/text03.xml new file mode 100644 index 0000000..be92031 --- /dev/null +++ b/result/SVG/text03.xml @@ -0,0 +1,7 @@ + + + + 123 + 456 + + diff --git a/result/SVG/toap01.xml b/result/SVG/toap01.xml new file mode 100644 index 0000000..fac024c --- /dev/null +++ b/result/SVG/toap01.xml @@ -0,0 +1,8 @@ + + + + Simple text on a path + + + Text on path + diff --git a/result/SVG/toap02.xml b/result/SVG/toap02.xml new file mode 100644 index 0000000..c62aa04 --- /dev/null +++ b/result/SVG/toap02.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + General graphics on a path + + + + + + + + + + + + + + + diff --git a/result/SVG/transform.xml b/result/SVG/transform.xml new file mode 100644 index 0000000..db00dbd --- /dev/null +++ b/result/SVG/transform.xml @@ -0,0 +1,20 @@ + + + + Demonstration of coordinate transforms + + + This prints 12 pixels high. + This prints 12 pixels high. + + + + This prints 24 pixels high. + + This prints 12 pixels high. + + diff --git a/result/SVG/trivial.xml b/result/SVG/trivial.xml new file mode 100644 index 0000000..db12583 --- /dev/null +++ b/result/SVG/trivial.xml @@ -0,0 +1,4 @@ + + + + diff --git a/result/SVG/twin-gradients.xml b/result/SVG/twin-gradients.xml new file mode 100644 index 0000000..5ce25cc --- /dev/null +++ b/result/SVG/twin-gradients.xml @@ -0,0 +1,18 @@ + + + + Gradients apply to leaf nodes + + + + + + + + + + + + + + diff --git a/result/SVG/v-template.xml b/result/SVG/v-template.xml new file mode 100644 index 0000000..20d19fc --- /dev/null +++ b/result/SVG/v-template.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/result/SVG/viewport-nest.xml b/result/SVG/viewport-nest.xml new file mode 100644 index 0000000..b6a19a7 --- /dev/null +++ b/result/SVG/viewport-nest.xml @@ -0,0 +1,12 @@ + + + + This SVG drawing embeds another one, + thus establishing a new viewport + + + + + + diff --git a/result/SVG/viewport-transform.xml b/result/SVG/viewport-transform.xml new file mode 100644 index 0000000..3a95fbd --- /dev/null +++ b/result/SVG/viewport-transform.xml @@ -0,0 +1,36 @@ + + + + Transformation with establishment of a new viewport + + + This prints 12 pixels high. + This prints 12 pixels high. + + + + This prints 24 pixels high. + + This prints 12 pixels high. + + + + + + + This prints 36 pixels high. + This prints 36 pixels high. + + + diff --git a/result/SVG/viewport.xml b/result/SVG/viewport.xml new file mode 100644 index 0000000..22d1ad3 --- /dev/null +++ b/result/SVG/viewport.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/result/SVG/wf-template.xml b/result/SVG/wf-template.xml new file mode 100644 index 0000000..d30d8de --- /dev/null +++ b/result/SVG/wf-template.xml @@ -0,0 +1,4 @@ + + + + diff --git a/result/URI/smith.uri b/result/URI/smith.uri new file mode 100644 index 0000000..d336d54 --- /dev/null +++ b/result/URI/smith.uri @@ -0,0 +1,15 @@ +/bar +bar +bar +bar +baz + +foo/ +foo +foo +../foo./ +../foo/ +/foo +../foo +../../foo +../../../foo diff --git a/result/URI/uri.data b/result/URI/uri.data new file mode 100644 index 0000000..f22b4db --- /dev/null +++ b/result/URI/uri.data @@ -0,0 +1,18 @@ +http://foo.com/path/to/index.html?orig +http://foo.com/path/to/ +http://foo.com/path/to/bar +http://foo.com/path/to/bar#baz +http://foo.com/path/to/bar?baz +http://foo.com/path/to/bar?baz#baz2 +http://foo.com/path/to/index.html?orig#baz +http://foo.com/path/to/index.html?baz +http://foo.com/path/to/index.html?baz#baz2 +http://foo.com/path/up.a.notch.html#wow +http://foo.com/path/up.a.notch.html?wow +http://foo.com/path/up.a.notch.html?wow#wow2 +http://foo.com/root.cgi#OK +http://foo.com/root.cgi?OK +http://foo.com/root.cgi?OK#OK2 +http://elsewhere.com/#deep +http://elsewhere.com/?deep +http://elsewhere.com/?deep#deep2 diff --git a/result/VC/AttributeDefaultLegal b/result/VC/AttributeDefaultLegal new file mode 100644 index 0000000..6b61686 --- /dev/null +++ b/result/VC/AttributeDefaultLegal @@ -0,0 +1,12 @@ +./test/VC/AttributeDefaultLegal:4: validity error : Attribute doc of At: invalid default value + + ^ +./test/VC/AttributeDefaultLegal:6: validity error : Attribute doc of bad: invalid default value + + ^ +./test/VC/AttributeDefaultLegal:8: validity error : Attribute doc of bad2: invalid default value + + ^ +./test/VC/AttributeDefaultLegal:11: element doc: validity error : No declaration for attribute val of element doc + + ^ diff --git a/result/VC/AttributeNmtokens b/result/VC/AttributeNmtokens new file mode 100644 index 0000000..4c19285 --- /dev/null +++ b/result/VC/AttributeNmtokens @@ -0,0 +1,3 @@ +./test/VC/AttributeNmtokens:6: element test: validity error : Syntax of value for attribute attr1 of test is not valid + + ^ diff --git a/result/VC/DuplicateType b/result/VC/DuplicateType new file mode 100644 index 0000000..34e2c20 --- /dev/null +++ b/result/VC/DuplicateType @@ -0,0 +1,3 @@ +./test/VC/DuplicateType:3: validity error : Definition of a has duplicate references of c + + ^ diff --git a/result/VC/ElementValid b/result/VC/ElementValid new file mode 100644 index 0000000..d6b50a7 --- /dev/null +++ b/result/VC/ElementValid @@ -0,0 +1,3 @@ +./test/VC/ElementValid:3: validity error : Validation failed: no DTD found ! + + ^ diff --git a/result/VC/ElementValid2 b/result/VC/ElementValid2 new file mode 100644 index 0000000..db47c89 --- /dev/null +++ b/result/VC/ElementValid2 @@ -0,0 +1,3 @@ +./test/VC/ElementValid2:4: element p: validity error : No declaration for element p +

      + ^ diff --git a/result/VC/ElementValid3 b/result/VC/ElementValid3 new file mode 100644 index 0000000..2fc236d --- /dev/null +++ b/result/VC/ElementValid3 @@ -0,0 +1,3 @@ +./test/VC/ElementValid3:4: element doc: validity error : Element doc was declared EMPTY this one has content +Oops, this element was declared EMPTY + ^ diff --git a/result/VC/ElementValid4 b/result/VC/ElementValid4 new file mode 100644 index 0000000..4791db5 --- /dev/null +++ b/result/VC/ElementValid4 @@ -0,0 +1,3 @@ +./test/VC/ElementValid4:7: element doc: validity error : Element c is not declared in doc list of possible children + This seems Ok but this was not declared + ^ diff --git a/result/VC/ElementValid5 b/result/VC/ElementValid5 new file mode 100644 index 0000000..bd064f6 --- /dev/null +++ b/result/VC/ElementValid5 @@ -0,0 +1,3 @@ +./test/VC/ElementValid5:7: element doc: validity error : Element doc content does not follow the DTD, expecting (a , b* , c+), got (a b c b) + but thiswas not declaredseems + ^ diff --git a/result/VC/ElementValid6 b/result/VC/ElementValid6 new file mode 100644 index 0000000..1cbf8fd --- /dev/null +++ b/result/VC/ElementValid6 @@ -0,0 +1,3 @@ +./test/VC/ElementValid6:7: element doc: validity error : Element doc content does not follow the DTD, expecting (a , b? , c+)?, got (a b) +lacks c + ^ diff --git a/result/VC/ElementValid7 b/result/VC/ElementValid7 new file mode 100644 index 0000000..4ce9dbf --- /dev/null +++ b/result/VC/ElementValid7 @@ -0,0 +1,3 @@ +./test/VC/ElementValid7:7: element doc: validity error : Element doc content does not follow the DTD, expecting ((a | b)* , c+ , a , b? , c , a?), got (a b a c c a) + + ^ diff --git a/result/VC/ElementValid8 b/result/VC/ElementValid8 new file mode 100644 index 0000000..f1b0dad --- /dev/null +++ b/result/VC/ElementValid8 @@ -0,0 +1,3 @@ +./test/VC/ElementValid8:7: validity error : Content model of doc is not determinist: ((a , b) | (a , c)) + doc is non-deterministic + ^ diff --git a/result/VC/Enumeration b/result/VC/Enumeration new file mode 100644 index 0000000..30896fc --- /dev/null +++ b/result/VC/Enumeration @@ -0,0 +1,3 @@ +./test/VC/Enumeration:5: element doc: validity error : Value "v4" for attribute val of doc is not among the enumerated set + + ^ diff --git a/result/VC/NS1 b/result/VC/NS1 new file mode 100644 index 0000000..e69de29 diff --git a/result/VC/NS2 b/result/VC/NS2 new file mode 100644 index 0000000..abd1f88 --- /dev/null +++ b/result/VC/NS2 @@ -0,0 +1,3 @@ +./test/VC/NS2:9: element doc: validity error : No declaration for attribute attr of element doc + + ^ diff --git a/result/VC/NS3 b/result/VC/NS3 new file mode 100644 index 0000000..72c0117 --- /dev/null +++ b/result/VC/NS3 @@ -0,0 +1,9 @@ +./test/VC/NS3:9: element foo: validity error : Value for attribute xmlns of foo is different from default "http://example.com/fooo" +xmlns="http://example.com/foo" xmlns:foo="http://example.com/fo" foo:info="toto" + ^ +./test/VC/NS3:9: element foo: validity error : Value for attribute xmlns of foo must be "http://example.com/fooo" +xmlns="http://example.com/foo" xmlns:foo="http://example.com/fo" foo:info="toto" + ^ +./test/VC/NS3:9: element foo: validity error : Element foo namespace name for default namespace does not match the DTD +mlns="http://example.com/foo" xmlns:foo="http://example.com/fo" foo:info="toto"/ + ^ diff --git a/result/VC/OneID b/result/VC/OneID new file mode 100644 index 0000000..a2c894f --- /dev/null +++ b/result/VC/OneID @@ -0,0 +1,6 @@ +./test/VC/OneID:4: validity error : Element doc has too may ID attributes defined : id + + ^ +./test/VC/OneID:4: validity error : Element doc has 2 ID attribute defined in the internal subset : id + + ^ diff --git a/result/VC/OneID2 b/result/VC/OneID2 new file mode 100644 index 0000000..2af04f1 --- /dev/null +++ b/result/VC/OneID2 @@ -0,0 +1,6 @@ +./test/VC/OneID2:3: validity error : Element doc has too may ID attributes defined : id + + ^ +./test/VC/OneID2:3: validity error : Element doc has 2 ID attribute defined in the internal subset : id + + ^ diff --git a/result/VC/OneID3 b/result/VC/OneID3 new file mode 100644 index 0000000..9accece --- /dev/null +++ b/result/VC/OneID3 @@ -0,0 +1,6 @@ +test/VC/dtds/doc.dtd:2: validity error : Element doc has too may ID attributes defined : val + + ^ +test/VC/dtds/doc.dtd:2: validity error : Element doc has 2 ID attribute defined in the external subset : val + + ^ diff --git a/result/VC/PENesting b/result/VC/PENesting new file mode 100644 index 0000000..966689a --- /dev/null +++ b/result/VC/PENesting @@ -0,0 +1,6 @@ +./test/VC/PENesting:1: parser error : StartTag: invalid element name + "> + ^ +./test/VC/PENesting:1: parser error : Extra content at the end of the document + "> + ^ diff --git a/result/VC/PENesting2 b/result/VC/PENesting2 new file mode 100644 index 0000000..c53ead6 --- /dev/null +++ b/result/VC/PENesting2 @@ -0,0 +1,6 @@ +./test/VC/PENesting2:1: parser error : StartTag: invalid element name + + ^ +./test/VC/PENesting2:1: parser error : Extra content at the end of the document + + ^ diff --git a/result/VC/UniqueElementTypeDeclaration b/result/VC/UniqueElementTypeDeclaration new file mode 100644 index 0000000..8537041 --- /dev/null +++ b/result/VC/UniqueElementTypeDeclaration @@ -0,0 +1,3 @@ +test/VC/dtds/a.dtd:1: validity error : Redefinition of element a + + ^ diff --git a/result/VC/UniqueElementTypeDeclaration2 b/result/VC/UniqueElementTypeDeclaration2 new file mode 100644 index 0000000..c328d92 --- /dev/null +++ b/result/VC/UniqueElementTypeDeclaration2 @@ -0,0 +1,3 @@ +./test/VC/UniqueElementTypeDeclaration2:6: validity error : Redefinition of element a + + ^ diff --git a/result/XInclude/docids.xml b/result/XInclude/docids.xml new file mode 100644 index 0000000..ad8e6e6 --- /dev/null +++ b/result/XInclude/docids.xml @@ -0,0 +1,19 @@ + + + + + +]> + + + + + + + + + + + + diff --git a/result/XInclude/docids.xml.err b/result/XInclude/docids.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/XInclude/docids.xml.rdr b/result/XInclude/docids.xml.rdr new file mode 100644 index 0000000..dedeb67 --- /dev/null +++ b/result/XInclude/docids.xml.rdr @@ -0,0 +1,35 @@ +0 10 book 0 0 +0 1 book 0 0 +1 14 #text 0 1 + +1 1 doc 0 0 +2 14 #text 0 1 + +2 1 isid 1 0 +2 14 #text 0 1 + +2 1 isid 1 0 +2 14 #text 0 1 + +1 15 doc 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 including another XML document with IDs +1 14 #text 0 1 + +1 1 doc 0 0 +2 14 #text 0 1 + +2 1 isid 1 0 +2 14 #text 0 1 + +2 1 isid 1 0 +2 14 #text 0 1 + +2 1 isid 1 0 +2 14 #text 0 1 + +1 15 doc 0 0 +1 14 #text 0 1 + +0 15 book 0 0 diff --git a/result/XInclude/fallback.xml b/result/XInclude/fallback.xml new file mode 100644 index 0000000..d7eed52 --- /dev/null +++ b/result/XInclude/fallback.xml @@ -0,0 +1,5 @@ + + + + Inclusion failed + diff --git a/result/XInclude/fallback.xml.err b/result/XInclude/fallback.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/XInclude/fallback.xml.rdr b/result/XInclude/fallback.xml.rdr new file mode 100644 index 0000000..82072f7 --- /dev/null +++ b/result/XInclude/fallback.xml.rdr @@ -0,0 +1,12 @@ +0 1 x 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 Simple test of a fallback on unavailble URI +1 14 #text 0 1 + +1 1 warning 0 0 +2 3 #text 0 1 Inclusion failed +1 15 warning 0 0 +1 14 #text 0 1 + +0 15 x 0 0 diff --git a/result/XInclude/fallback2.xml b/result/XInclude/fallback2.xml new file mode 100644 index 0000000..d91b0a1 --- /dev/null +++ b/result/XInclude/fallback2.xml @@ -0,0 +1,6 @@ + + + There is no b.xml ... + There is no c.xml ... + + diff --git a/result/XInclude/fallback2.xml.err b/result/XInclude/fallback2.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/XInclude/fallback2.xml.rdr b/result/XInclude/fallback2.xml.rdr new file mode 100644 index 0000000..2fca4f0 --- /dev/null +++ b/result/XInclude/fallback2.xml.rdr @@ -0,0 +1,11 @@ +0 1 a 0 0 +1 14 #text 0 1 + +1 3 #text 0 1 There is no b.xml ... +1 14 #text 0 1 + +1 3 #text 0 1 There is no c.xml ... +1 14 #text 0 1 + + +0 15 a 0 0 diff --git a/result/XInclude/include.xml b/result/XInclude/include.xml new file mode 100644 index 0000000..3a9366d --- /dev/null +++ b/result/XInclude/include.xml @@ -0,0 +1,9 @@ + + + + +

      something

      +

      really

      +

      simple

      + + diff --git a/result/XInclude/include.xml.err b/result/XInclude/include.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/XInclude/include.xml.rdr b/result/XInclude/include.xml.rdr new file mode 100644 index 0000000..66135a4 --- /dev/null +++ b/result/XInclude/include.xml.rdr @@ -0,0 +1,28 @@ +0 1 x 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 Simple test of including another XML document +1 14 #text 0 1 + +1 1 doc 0 0 +2 14 #text 0 1 + +2 1 p 0 0 +3 3 #text 0 1 something +2 15 p 0 0 +2 14 #text 0 1 + +2 1 p 0 0 +3 3 #text 0 1 really +2 15 p 0 0 +2 14 #text 0 1 + +2 1 p 0 0 +3 3 #text 0 1 simple +2 15 p 0 0 +2 14 #text 0 1 + +1 15 doc 0 0 +1 14 #text 0 1 + +0 15 x 0 0 diff --git a/result/XInclude/nodes.xml b/result/XInclude/nodes.xml new file mode 100644 index 0000000..48030d1 --- /dev/null +++ b/result/XInclude/nodes.xml @@ -0,0 +1,5 @@ + + + +

      something

      really

      simple

      +
      diff --git a/result/XInclude/nodes.xml.err b/result/XInclude/nodes.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/XInclude/nodes.xml.rdr b/result/XInclude/nodes.xml.rdr new file mode 100644 index 0000000..0e53878 --- /dev/null +++ b/result/XInclude/nodes.xml.rdr @@ -0,0 +1,18 @@ +0 1 x 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 Simple test of including a set of nodes from an XML document +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 something +1 15 p 0 0 +1 1 p 0 0 +2 3 #text 0 1 really +1 15 p 0 0 +1 1 p 0 0 +2 3 #text 0 1 simple +1 15 p 0 0 +1 14 #text 0 1 + +0 15 x 0 0 diff --git a/result/XInclude/nodes2.xml b/result/XInclude/nodes2.xml new file mode 100644 index 0000000..fac2d82 --- /dev/null +++ b/result/XInclude/nodes2.xml @@ -0,0 +1,5 @@ + + + +

      something

      really

      simple

      +
      diff --git a/result/XInclude/nodes2.xml.err b/result/XInclude/nodes2.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/XInclude/nodes2.xml.rdr b/result/XInclude/nodes2.xml.rdr new file mode 100644 index 0000000..0e53878 --- /dev/null +++ b/result/XInclude/nodes2.xml.rdr @@ -0,0 +1,18 @@ +0 1 x 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 Simple test of including a set of nodes from an XML document +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 something +1 15 p 0 0 +1 1 p 0 0 +2 3 #text 0 1 really +1 15 p 0 0 +1 1 p 0 0 +2 3 #text 0 1 simple +1 15 p 0 0 +1 14 #text 0 1 + +0 15 x 0 0 diff --git a/result/XInclude/nodes3.xml b/result/XInclude/nodes3.xml new file mode 100644 index 0000000..9ab2044 --- /dev/null +++ b/result/XInclude/nodes3.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/result/XInclude/nodes3.xml.err b/result/XInclude/nodes3.xml.err new file mode 100644 index 0000000..fb11525 --- /dev/null +++ b/result/XInclude/nodes3.xml.err @@ -0,0 +1 @@ +./test/XInclude/docs/nodes3.xml:3: element include: XInclude error : Invalid fragment identifier in URI test/XInclude/ents/something.xml#xpointer(//p) use the xpointer attribute diff --git a/result/XInclude/nodes3.xml.rdr b/result/XInclude/nodes3.xml.rdr new file mode 100644 index 0000000..f2ae87b --- /dev/null +++ b/result/XInclude/nodes3.xml.rdr @@ -0,0 +1,10 @@ +0 1 x 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 Simple test of including a set of nodes from an XML document +1 14 #text 0 1 + +1 1 xinclude:include 1 0 +1 14 #text 0 1 + +0 15 x 0 0 diff --git a/result/XInclude/recursive.xml b/result/XInclude/recursive.xml new file mode 100644 index 0000000..4af1738 --- /dev/null +++ b/result/XInclude/recursive.xml @@ -0,0 +1,3 @@ + +is a test + diff --git a/result/XInclude/recursive.xml.err b/result/XInclude/recursive.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/XInclude/recursive.xml.rdr b/result/XInclude/recursive.xml.rdr new file mode 100644 index 0000000..cafce16 --- /dev/null +++ b/result/XInclude/recursive.xml.rdr @@ -0,0 +1,6 @@ +0 1 this 0 0 +1 1 sub-inc 0 0 +2 3 #text 0 1 is a test + +1 15 sub-inc 0 0 +0 15 this 0 0 diff --git a/result/XInclude/tstencoding.xml b/result/XInclude/tstencoding.xml new file mode 100644 index 0000000..a1c5179 --- /dev/null +++ b/result/XInclude/tstencoding.xml @@ -0,0 +1,6 @@ + + + + test with accents in ISO-8859-1: À Á é è + + diff --git a/result/XInclude/tstencoding.xml.err b/result/XInclude/tstencoding.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/XInclude/tstencoding.xml.rdr b/result/XInclude/tstencoding.xml.rdr new file mode 100644 index 0000000..a0cc69b --- /dev/null +++ b/result/XInclude/tstencoding.xml.rdr @@ -0,0 +1,11 @@ +0 1 x 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 Simple test of including another text document +1 14 #text 0 1 + +1 3 #text 0 1 test with accents in ISO-8859-1: À à é è + +1 14 #text 0 1 + +0 15 x 0 0 diff --git a/result/XInclude/txtinclude.xml b/result/XInclude/txtinclude.xml new file mode 100644 index 0000000..0114e4f --- /dev/null +++ b/result/XInclude/txtinclude.xml @@ -0,0 +1,6 @@ + + + + this is some text in ASCII + + diff --git a/result/XInclude/txtinclude.xml.err b/result/XInclude/txtinclude.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/XInclude/txtinclude.xml.rdr b/result/XInclude/txtinclude.xml.rdr new file mode 100644 index 0000000..a4cc3b4 --- /dev/null +++ b/result/XInclude/txtinclude.xml.rdr @@ -0,0 +1,11 @@ +0 1 x 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 Simple test of including another text document +1 14 #text 0 1 + +1 3 #text 0 1 this is some text in ASCII + +1 14 #text 0 1 + +0 15 x 0 0 diff --git a/result/XPath/expr/base b/result/XPath/expr/base new file mode 100644 index 0000000..3552866 --- /dev/null +++ b/result/XPath/expr/base @@ -0,0 +1,20 @@ + +======================== +Expression: 1 +Object is a number : 1 + +======================== +Expression: 1+2 +Object is a number : 3 + +======================== +Expression: 2*3 +Object is a number : 6 + +======================== +Expression: 1+2*3+4 +Object is a number : 11 + +======================== +Expression: (1+2)*(3+4) +Object is a number : 21 diff --git a/result/XPath/expr/compare b/result/XPath/expr/compare new file mode 100644 index 0000000..21a88d0 --- /dev/null +++ b/result/XPath/expr/compare @@ -0,0 +1,184 @@ + +======================== +Expression: 0<0 +Object is a Boolean : false + +======================== +Expression: 0<=0 +Object is a Boolean : true + +======================== +Expression: 0>0 +Object is a Boolean : false + +======================== +Expression: 0>=0 +Object is a Boolean : true + +======================== +Expression: 0<1 +Object is a Boolean : true + +======================== +Expression: 0<=1 +Object is a Boolean : true + +======================== +Expression: 0>1 +Object is a Boolean : false + +======================== +Expression: 0>=1 +Object is a Boolean : false + +======================== +Expression: 1<0 +Object is a Boolean : false + +======================== +Expression: 1<=0 +Object is a Boolean : false + +======================== +Expression: 1>0 +Object is a Boolean : true + +======================== +Expression: 1>=0 +Object is a Boolean : true + +======================== +Expression: 1<1 +Object is a Boolean : false + +======================== +Expression: 1<=1 +Object is a Boolean : true + +======================== +Expression: 1>1 +Object is a Boolean : false + +======================== +Expression: 1>=1 +Object is a Boolean : true + +======================== +Expression: '0'<1 +Object is a Boolean : true + +======================== +Expression: '0'<=1 +Object is a Boolean : true + +======================== +Expression: '0'>1 +Object is a Boolean : false + +======================== +Expression: '0'>=1 +Object is a Boolean : false + +======================== +Expression: 0<'1.2' +Object is a Boolean : true + +======================== +Expression: 0<='1.2' +Object is a Boolean : true + +======================== +Expression: 0>'1.2' +Object is a Boolean : false + +======================== +Expression: 0>='1.2' +Object is a Boolean : false + +======================== +Expression: 0<'-0.2' +Object is a Boolean : false + +======================== +Expression: 0<='-0.2' +Object is a Boolean : false + +======================== +Expression: 0>'-0.2' +Object is a Boolean : true + +======================== +Expression: 0>='-0.2' +Object is a Boolean : true + +======================== +Expression: false()<1 +Object is a Boolean : true + +======================== +Expression: false()<=1 +Object is a Boolean : true + +======================== +Expression: 0>true() +Object is a Boolean : false + +======================== +Expression: 0>=true() +Object is a Boolean : false + +======================== +Expression: 'a' > 'a' +Object is a Boolean : false + +======================== +Expression: 'a' > 'b' +Object is a Boolean : false + +======================== +Expression: 'b' > 'a' +Object is a Boolean : false + +======================== +Expression: 'a' < 'a' +Object is a Boolean : false + +======================== +Expression: 'a' < 'b' +Object is a Boolean : false + +======================== +Expression: 'b' < 'a' +Object is a Boolean : false + +======================== +Expression: 'a' >= 'a' +Object is a Boolean : false + +======================== +Expression: 'a' >= 'b' +Object is a Boolean : false + +======================== +Expression: 'b' >= 'a' +Object is a Boolean : false + +======================== +Expression: 'a' <= 'a' +Object is a Boolean : false + +======================== +Expression: 'a' <= 'b' +Object is a Boolean : false + +======================== +Expression: 'b' <= 'a' +Object is a Boolean : false + +======================== +Expression: 'a' > '0.0' +Object is a Boolean : false + +======================== +Expression: 'a' < '0.0' +Object is a Boolean : false diff --git a/result/XPath/expr/equality b/result/XPath/expr/equality new file mode 100644 index 0000000..44b4c22 --- /dev/null +++ b/result/XPath/expr/equality @@ -0,0 +1,104 @@ + +======================== +Expression: 1=1 +Object is a Boolean : true + +======================== +Expression: 1!=1 +Object is a Boolean : false + +======================== +Expression: 1=0 +Object is a Boolean : false + +======================== +Expression: 1!=0 +Object is a Boolean : true + +======================== +Expression: true()=true() +Object is a Boolean : true + +======================== +Expression: true()!=true() +Object is a Boolean : false + +======================== +Expression: true()=false() +Object is a Boolean : false + +======================== +Expression: false()!=true() +Object is a Boolean : true + +======================== +Expression: 'test'='test' +Object is a Boolean : true + +======================== +Expression: 'test'!='test' +Object is a Boolean : false + +======================== +Expression: 'test2'='test' +Object is a Boolean : false + +======================== +Expression: 'test2'!='test' +Object is a Boolean : true + +======================== +Expression: false()=0 +Object is a Boolean : true + +======================== +Expression: false()!=0 +Object is a Boolean : false + +======================== +Expression: false()=1 +Object is a Boolean : false + +======================== +Expression: false()!=1 +Object is a Boolean : true + +======================== +Expression: 0=true() +Object is a Boolean : false + +======================== +Expression: 0!=true() +Object is a Boolean : true + +======================== +Expression: 1=true() +Object is a Boolean : true + +======================== +Expression: 1!=true() +Object is a Boolean : false + +======================== +Expression: true()='test' +Object is a Boolean : true + +======================== +Expression: false()='test' +Object is a Boolean : false + +======================== +Expression: 'test'!=true() +Object is a Boolean : false + +======================== +Expression: 'test'!=false() +Object is a Boolean : true + +======================== +Expression: 'a'=0.0 +Object is a Boolean : false + +======================== +Expression: 'a'!=0.0 +Object is a Boolean : true diff --git a/result/XPath/expr/floats b/result/XPath/expr/floats new file mode 100644 index 0000000..b6255ce --- /dev/null +++ b/result/XPath/expr/floats @@ -0,0 +1,244 @@ + +======================== +Expression: 1 +Object is a number : 1 + +======================== +Expression: 123 +Object is a number : 123 + +======================== +Expression: 1.23 +Object is a number : 1.23 + +======================== +Expression: 0.123 +Object is a number : 0.123 + +======================== +Expression: 4. +Object is a number : 4 + +======================== +Expression: .4 +Object is a number : 0.4 + +======================== +Expression: 1.23e3 +Object is a number : 1230 + +======================== +Expression: 1.23e-3 +Object is a number : 0.00123 + +======================== +Expression: 1 div 0 +Object is a number : Infinity + +======================== +Expression: -1 div 0 +Object is a number : -Infinity + +======================== +Expression: 0 div 0 +Object is a number : NaN + +======================== +Expression: 1 div -0 +Object is a number : -Infinity + +======================== +Expression: (1 div 0) > 0 +Object is a Boolean : true + +======================== +Expression: (1 div 0) < 0 +Object is a Boolean : false + +======================== +Expression: (-1 div 0) > 0 +Object is a Boolean : false + +======================== +Expression: (-1 div 0) < 0 +Object is a Boolean : true + +======================== +Expression: (0 div 0) > 0 +Object is a Boolean : false + +======================== +Expression: (0 div 0) < 0 +Object is a Boolean : false + +======================== +Expression: (1 div -0) > 0 +Object is a Boolean : false + +======================== +Expression: (1 div -0) < 0 +Object is a Boolean : true + +======================== +Expression: 0 div 0 = 0 div 0 +Object is a Boolean : false + +======================== +Expression: 0 div 0 != 0 div 0 +Object is a Boolean : true + +======================== +Expression: 0 div 0 > 0 div 0 +Object is a Boolean : false + +======================== +Expression: 0 div 0 < 0 div 0 +Object is a Boolean : false + +======================== +Expression: 0 div 0 >= 0 div 0 +Object is a Boolean : false + +======================== +Expression: 0 div 0 <= 0 div 0 +Object is a Boolean : false + +======================== +Expression: 1 div 0 = -1 div 0 +Object is a Boolean : false + +======================== +Expression: 1 div 0 != -1 div 0 +Object is a Boolean : true + +======================== +Expression: 1 div 0 > -1 div 0 +Object is a Boolean : true + +======================== +Expression: 1 div 0 < -1 div 0 +Object is a Boolean : false + +======================== +Expression: 1 div 0 >= -1 div 0 +Object is a Boolean : true + +======================== +Expression: 1 div 0 <= -1 div 0 +Object is a Boolean : false + +======================== +Expression: 1 div 0 = 1 div 0 +Object is a Boolean : true + +======================== +Expression: 1 div 0 != 1 div 0 +Object is a Boolean : false + +======================== +Expression: 1 div 0 > 1 div 0 +Object is a Boolean : false + +======================== +Expression: 1 div 0 < 1 div 0 +Object is a Boolean : false + +======================== +Expression: 1 div 0 >= -1 div 0 +Object is a Boolean : true + +======================== +Expression: 1 div 0 <= -1 div 0 +Object is a Boolean : false + +======================== +Expression: -2 div 0 = -1 div 0 +Object is a Boolean : true + +======================== +Expression: 1 div floor(0.1) +Object is a number : Infinity + +======================== +Expression: 1 div floor(-0.1) +Object is a number : -1 + +======================== +Expression: 1 div floor(-0) +Object is a number : -Infinity + +======================== +Expression: 1 div floor(0) +Object is a number : Infinity + +======================== +Expression: 1 div ceiling(0.1) +Object is a number : 1 + +======================== +Expression: 1 div ceiling(-0.1) +Object is a number : -Infinity + +======================== +Expression: 1 div ceiling(-0) +Object is a number : -Infinity + +======================== +Expression: 1 div ceiling(0) +Object is a number : Infinity + +======================== +Expression: 1 div round(0.1) +Object is a number : Infinity + +======================== +Expression: 1 div round(-0.1) +Object is a number : -Infinity + +======================== +Expression: 1 div round(-0) +Object is a number : -Infinity + +======================== +Expression: 1 div round(0) +Object is a number : Infinity + +======================== +Expression: 1 div number('f') +Object is a number : NaN + +======================== +Expression: number('f') div 1 +Object is a number : NaN + +======================== +Expression: 1 div (1 div 0) +Object is a number : 0 + +======================== +Expression: (1 div 0) div 1 +Object is a number : Infinity + +======================== +Expression: -(1 div 0) div 1 +Object is a number : -Infinity + +======================== +Expression: 5 mod 2 +Object is a number : 1 + +======================== +Expression: 5 mod -2 +Object is a number : 1 + +======================== +Expression: -5 mod 2 +Object is a number : -1 + +======================== +Expression: -5 mod -2 +Object is a number : -1 + +======================== +Expression: 8 mod 3 = 2 +Object is a Boolean : true diff --git a/result/XPath/expr/functions b/result/XPath/expr/functions new file mode 100644 index 0000000..10cc27e --- /dev/null +++ b/result/XPath/expr/functions @@ -0,0 +1,100 @@ + +======================== +Expression: true() +Object is a Boolean : true + +======================== +Expression: false() +Object is a Boolean : false + +======================== +Expression: number("1.5") +Object is a number : 1.5 + +======================== +Expression: number('abc') +Object is a number : NaN + +======================== +Expression: -number('abc') +Object is a number : NaN + +======================== +Expression: floor(0.1) +Object is a number : 0 + +======================== +Expression: floor(-0.1) +Object is a number : -1 + +======================== +Expression: floor(-0) +Object is a number : 0 + +======================== +Expression: floor(0) +Object is a number : 0 + +======================== +Expression: floor(5.2) +Object is a number : 5 + +======================== +Expression: floor(-5.2) +Object is a number : -6 + +======================== +Expression: ceiling(0.1) +Object is a number : 1 + +======================== +Expression: ceiling(-0.1) +Object is a number : 0 + +======================== +Expression: ceiling(-0) +Object is a number : 0 + +======================== +Expression: ceiling(0) +Object is a number : 0 + +======================== +Expression: ceiling(5.2) +Object is a number : 6 + +======================== +Expression: ceiling(-5.2) +Object is a number : -5 + +======================== +Expression: round(0.1) +Object is a number : 0 + +======================== +Expression: round(5.2) +Object is a number : 5 + +======================== +Expression: round(5.5) +Object is a number : 6 + +======================== +Expression: round(5.6) +Object is a number : 6 + +======================== +Expression: round(-0.1) +Object is a number : 0 + +======================== +Expression: round(-5.2) +Object is a number : -5 + +======================== +Expression: round(-5.5) +Object is a number : -5 + +======================== +Expression: round(-5.6) +Object is a number : -6 diff --git a/result/XPath/expr/strings b/result/XPath/expr/strings new file mode 100644 index 0000000..fad7048 --- /dev/null +++ b/result/XPath/expr/strings @@ -0,0 +1,136 @@ + +======================== +Expression: string(5) +Object is a string : 5 + +======================== +Expression: string(0.5) +Object is a string : 0.5 + +======================== +Expression: string(-0.5) +Object is a string : -0.5 + +======================== +Expression: string(true()) +Object is a string : true + +======================== +Expression: string(false()) +Object is a string : false + +======================== +Expression: concat("titi","toto") +Object is a string : tititoto + +======================== +Expression: concat("titi","toto","tata") +Object is a string : tititototata + +======================== +Expression: concat("titi",'toto') +Object is a string : tititoto + +======================== +Expression: concat("titi",'toto',"tata","last") +Object is a string : tititototatalast + +======================== +Expression: starts-with("tititoto","titi") +Object is a Boolean : true + +======================== +Expression: starts-with("tititoto","to") +Object is a Boolean : false + +======================== +Expression: contains("tititototata","titi") +Object is a Boolean : true + +======================== +Expression: contains("tititototata","toto") +Object is a Boolean : true + +======================== +Expression: contains("tititototata","tata") +Object is a Boolean : true + +======================== +Expression: contains("tititototata","tita") +Object is a Boolean : false + +======================== +Expression: substring("12345",2,3) +Object is a string : 234 + +======================== +Expression: substring("12345",2) +Object is a string : 2345 + +======================== +Expression: substring("12345",-4) +Object is a string : 12345 + +======================== +Expression: substring("12345",3.4) +Object is a string : 345 + +======================== +Expression: substring("12345",3.6) +Object is a string : 45 + +======================== +Expression: substring("12345",1.5,2.6) +Object is a string : 234 + +======================== +Expression: substring("12345",2.2,2.2) +Object is a string : 23 + +======================== +Expression: substring("12345",0,3) +Object is a string : 12 + +======================== +Expression: substring("12345",-8,10) +Object is a string : 1 + +======================== +Expression: substring("12345",4,-10) +Object is a string : + +======================== +Expression: substring("12345",0 div 0, 3) +Object is a string : + +======================== +Expression: substring("12345",1, 0 div 0) +Object is a string : + +======================== +Expression: substring("12345",1 div 0, 3) +Object is a string : + +======================== +Expression: substring("12345",3,-1 div 0) +Object is a string : + +======================== +Expression: substring("12345",-42, 1 div 0) +Object is a string : 12345 + +======================== +Expression: substring("12345",-1 div 0, 1 div 0) +Object is a string : + +======================== +Expression: substring("12345",-1 div 0,5) +Object is a string : + +======================== +Expression: string-length("") +Object is a number : 0 + +======================== +Expression: string-length("titi") +Object is a number : 4 diff --git a/result/XPath/tests/chaptersbase b/result/XPath/tests/chaptersbase new file mode 100644 index 0000000..03c6567 --- /dev/null +++ b/result/XPath/tests/chaptersbase @@ -0,0 +1,115 @@ + +======================== +Expression: /child::EXAMPLE +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT EXAMPLE + ATTRIBUTE prop1 + TEXT + content=gnome is great + ATTRIBUTE prop2 + TEXT + content=& linux too + +======================== +Expression: /child::* +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT EXAMPLE + ATTRIBUTE prop1 + TEXT + content=gnome is great + ATTRIBUTE prop2 + TEXT + content=& linux too + +======================== +Expression: /child::EXAMPLE/child::head +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT head + +======================== +Expression: /child::EXAMPLE/child::* +Object is a Node Set : +Set contains 6 nodes: +1 ELEMENT head +2 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter1 +3 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter2 +4 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter3 +5 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter4 +6 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter5 + +======================== +Expression: /child::EXAMPLE/child::head/child::title +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT title + +======================== +Expression: /child::EXAMPLE/child::head/child::title/child::text() +Object is a Node Set : +Set contains 1 nodes: +1 TEXT + content=Welcome to Gnome + +======================== +Expression: /child::EXAMPLE/child::head/node() +Object is a Node Set : +Set contains 3 nodes: +1 TEXT + content= +2 ELEMENT title +3 TEXT + content= + +======================== +Expression: /descendant::title +Object is a Node Set : +Set contains 6 nodes: +1 ELEMENT title +2 ELEMENT title +3 ELEMENT title +4 ELEMENT title +5 ELEMENT title +6 ELEMENT title + +======================== +Expression: /descendant::p/ancestor::chapter +Object is a Node Set : +Set contains 5 nodes: +1 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter1 +2 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter2 +3 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter3 +4 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter4 +5 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter5 diff --git a/result/XPath/tests/chaptersprefol b/result/XPath/tests/chaptersprefol new file mode 100644 index 0000000..a12c937 --- /dev/null +++ b/result/XPath/tests/chaptersprefol @@ -0,0 +1,100 @@ + +======================== +Expression: /following::* +Object is a Node Set : +Set contains 0 nodes: + +======================== +Expression: /preceding::* +Object is a Node Set : +Set contains 0 nodes: + +======================== +Expression: /child::EXAMPLE/preceding::* +Object is a Node Set : +Set contains 0 nodes: + +======================== +Expression: /child::EXAMPLE/following::* +Object is a Node Set : +Set contains 0 nodes: + +======================== +Expression: /child::EXAMPLE/child::chapter[3]/preceding::* +Object is a Node Set : +Set contains 10 nodes: +1 ELEMENT head +2 ELEMENT title +3 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter1 +4 ELEMENT title +5 ELEMENT p +6 ELEMENT image + ATTRIBUTE href + TEXT + content=linus.gif +7 ELEMENT p +8 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter2 +9 ELEMENT title +10 ELEMENT p + +======================== +Expression: /child::EXAMPLE/child::chapter[3]/following::* +Object is a Node Set : +Set contains 6 nodes: +1 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter4 +2 ELEMENT title +3 ELEMENT p +4 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter5 +5 ELEMENT title +6 ELEMENT p + +======================== +Expression: /child::EXAMPLE/child::chapter[1]/image/preceding::* +Object is a Node Set : +Set contains 4 nodes: +1 ELEMENT head +2 ELEMENT title +3 ELEMENT title +4 ELEMENT p + +======================== +Expression: /child::EXAMPLE/child::chapter[1]/image/following::* +Object is a Node Set : +Set contains 13 nodes: +1 ELEMENT p +2 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter2 +3 ELEMENT title +4 ELEMENT p +5 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter3 +6 ELEMENT title +7 ELEMENT p +8 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter4 +9 ELEMENT title +10 ELEMENT p +11 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter5 +12 ELEMENT title +13 ELEMENT p diff --git a/result/XPath/tests/idsimple b/result/XPath/tests/idsimple new file mode 100644 index 0000000..891b52e --- /dev/null +++ b/result/XPath/tests/idsimple @@ -0,0 +1,33 @@ + +======================== +Expression: //*[@id="root"] +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT EXAMPLE + ATTRIBUTE id + TEXT + content=root + ATTRIBUTE prop1 + TEXT + content=gnome is great + ATTRIBUTE prop2 + TEXT + content=& linux too + +======================== +Expression: //*[@id="chapter2"] +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter2 + +======================== +Expression: //*[@id="chapter5"] +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter5 diff --git a/result/XPath/tests/langsimple b/result/XPath/tests/langsimple new file mode 100644 index 0000000..d8d7afd --- /dev/null +++ b/result/XPath/tests/langsimple @@ -0,0 +1,60 @@ + +======================== +Expression: //*[lang('en')] +Object is a Node Set : +Set contains 9 nodes: +1 ELEMENT b + ATTRIBUTE lang + TEXT + content=en +2 ELEMENT x +3 ELEMENT x +4 ELEMENT para + ATTRIBUTE lang + TEXT + content=en +5 ELEMENT div + ATTRIBUTE lang + TEXT + content=en +6 ELEMENT para +7 ELEMENT para + ATTRIBUTE lang + TEXT + content=EN +8 ELEMENT para + ATTRIBUTE lang + TEXT + content=en-us +9 ELEMENT para + ATTRIBUTE lang + TEXT + content=EN-US + +======================== +Expression: //*[lang('en-us')] +Object is a Node Set : +Set contains 2 nodes: +1 ELEMENT para + ATTRIBUTE lang + TEXT + content=en-us +2 ELEMENT para + ATTRIBUTE lang + TEXT + content=EN-US + +======================== +Expression: //*[lang('en-gb')] +Object is a Node Set : +Set contains 0 nodes: + +======================== +Expression: //*[lang('fr')] +Object is a Node Set : +Set contains 0 nodes: + +======================== +Expression: //*[lang('')] +Object is a Node Set : +Set contains 0 nodes: diff --git a/result/XPath/tests/mixedpat b/result/XPath/tests/mixedpat new file mode 100644 index 0000000..3be0c49 --- /dev/null +++ b/result/XPath/tests/mixedpat @@ -0,0 +1,101 @@ + +======================== +Expression: s +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT s + ATTRIBUTE p + TEXT + content=root + +======================== +Expression: s|p1/s +Object is a Node Set : +Set contains 2 nodes: +1 ELEMENT s + ATTRIBUTE p + TEXT + content=root +2 ELEMENT s + ATTRIBUTE p + TEXT + content=p1 + +======================== +Expression: s|/root/p1/s +Object is a Node Set : +Set contains 2 nodes: +1 ELEMENT s + ATTRIBUTE p + TEXT + content=root +2 ELEMENT s + ATTRIBUTE p + TEXT + content=p1 + +======================== +Expression: /root/p1/s|s +Object is a Node Set : +Set contains 2 nodes: +1 ELEMENT s + ATTRIBUTE p + TEXT + content=root +2 ELEMENT s + ATTRIBUTE p + TEXT + content=p1 + +======================== +Expression: //s +Object is a Node Set : +Set contains 3 nodes: +1 ELEMENT s + ATTRIBUTE p + TEXT + content=root +2 ELEMENT s + ATTRIBUTE p + TEXT + content=p1 +3 ELEMENT s + ATTRIBUTE p + TEXT + content=p2 + +======================== +Expression: //s|p1 +Object is a Node Set : +Set contains 4 nodes: +1 ELEMENT s + ATTRIBUTE p + TEXT + content=root +2 ELEMENT p1 +3 ELEMENT s + ATTRIBUTE p + TEXT + content=p1 +4 ELEMENT s + ATTRIBUTE p + TEXT + content=p2 + +======================== +Expression: p1|//s +Object is a Node Set : +Set contains 4 nodes: +1 ELEMENT s + ATTRIBUTE p + TEXT + content=root +2 ELEMENT p1 +3 ELEMENT s + ATTRIBUTE p + TEXT + content=p1 +4 ELEMENT s + ATTRIBUTE p + TEXT + content=p2 diff --git a/result/XPath/tests/nodespat b/result/XPath/tests/nodespat new file mode 100644 index 0000000..1efd87f --- /dev/null +++ b/result/XPath/tests/nodespat @@ -0,0 +1,94 @@ + +======================== +Expression: /. +Object is a Node Set : +Set contains 1 nodes: +1 / + +======================== +Expression: //. +Object is a Node Set : +Set contains 12 nodes: +1 / +2 ELEMENT root +3 ELEMENT foo +4 TEXT + content=txt +5 COMMENT + content=hello +6 CDATA_SECTION + content=data +7 PI target + content=data +8 ELEMENT bar +9 TEXT + content=txt +10 COMMENT + content=hello +11 CDATA_SECTION + content=data +12 PI target + content=data + +======================== +Expression: /root//. +Object is a Node Set : +Set contains 11 nodes: +1 ELEMENT root +2 ELEMENT foo +3 TEXT + content=txt +4 COMMENT + content=hello +5 CDATA_SECTION + content=data +6 PI target + content=data +7 ELEMENT bar +8 TEXT + content=txt +9 COMMENT + content=hello +10 CDATA_SECTION + content=data +11 PI target + content=data + +======================== +Expression: //.//./././/. +Object is a Node Set : +Set contains 12 nodes: +1 / +2 ELEMENT root +3 ELEMENT foo +4 TEXT + content=txt +5 COMMENT + content=hello +6 CDATA_SECTION + content=data +7 PI target + content=data +8 ELEMENT bar +9 TEXT + content=txt +10 COMMENT + content=hello +11 CDATA_SECTION + content=data +12 PI target + content=data + +======================== +Expression: /root//././/bar//. +Object is a Node Set : +Set contains 5 nodes: +1 ELEMENT bar +2 TEXT + content=txt +3 COMMENT + content=hello +4 CDATA_SECTION + content=data +5 PI target + content=data diff --git a/result/XPath/tests/simpleabbr b/result/XPath/tests/simpleabbr new file mode 100644 index 0000000..85da41a --- /dev/null +++ b/result/XPath/tests/simpleabbr @@ -0,0 +1,81 @@ + +======================== +Expression: /EXAMPLE +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT EXAMPLE + ATTRIBUTE prop1 + TEXT + content=gnome is great + ATTRIBUTE prop2 + TEXT + content=& linux too + +======================== +Expression: /EXAMPLE/head +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT head + +======================== +Expression: /EXAMPLE/chapter[1] +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT chapter + +======================== +Expression: //p +Object is a Node Set : +Set contains 2 nodes: +1 ELEMENT p +2 ELEMENT p + +======================== +Expression: //chapter/image +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT image + ATTRIBUTE href + TEXT + content=linus.gif + +======================== +Expression: //p/text() +Object is a Node Set : +Set contains 2 nodes: +1 TEXT + content=bla bla bla ... +2 TEXT + content=... + +======================== +Expression: //p/text()[position()=1] +Object is a Node Set : +Set contains 2 nodes: +1 TEXT + content=bla bla bla ... +2 TEXT + content=... + +======================== +Expression: //p/text()[position()=last()] +Object is a Node Set : +Set contains 2 nodes: +1 TEXT + content=bla bla bla ... +2 TEXT + content=... + +======================== +Expression: (//p/text())[position()=1] +Object is a Node Set : +Set contains 1 nodes: +1 TEXT + content=bla bla bla ... + +======================== +Expression: (//p/text())[position()=last()] +Object is a Node Set : +Set contains 1 nodes: +1 TEXT + content=... diff --git a/result/XPath/tests/simplebase b/result/XPath/tests/simplebase new file mode 100644 index 0000000..38fa144 --- /dev/null +++ b/result/XPath/tests/simplebase @@ -0,0 +1,73 @@ + +======================== +Expression: /child::* +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT EXAMPLE + ATTRIBUTE prop1 + TEXT + content=gnome is great + ATTRIBUTE prop2 + TEXT + content=& linux too + +======================== +Expression: /child::EXAMPLE +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT EXAMPLE + ATTRIBUTE prop1 + TEXT + content=gnome is great + ATTRIBUTE prop2 + TEXT + content=& linux too + +======================== +Expression: /child::EXAMPLE/child::head +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT head + +======================== +Expression: /child::EXAMPLE/child::* +Object is a Node Set : +Set contains 2 nodes: +1 ELEMENT head +2 ELEMENT chapter + +======================== +Expression: /child::EXAMPLE/child::head/child::title +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT title + +======================== +Expression: /child::EXAMPLE/child::head/child::title/child::text() +Object is a Node Set : +Set contains 1 nodes: +1 TEXT + content=Welcome to Gnome + +======================== +Expression: /child::EXAMPLE/child::head/node() +Object is a Node Set : +Set contains 3 nodes: +1 TEXT + content= +2 ELEMENT title +3 TEXT + content= + +======================== +Expression: /descendant::title +Object is a Node Set : +Set contains 2 nodes: +1 ELEMENT title +2 ELEMENT title + +======================== +Expression: /descendant::p/ancestor::chapter +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT chapter diff --git a/result/XPath/tests/usr1check b/result/XPath/tests/usr1check new file mode 100644 index 0000000..0308991 --- /dev/null +++ b/result/XPath/tests/usr1check @@ -0,0 +1,12 @@ + +======================== +Expression: //ITEM[1] +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT ITEM + ATTRIBUTE monto + TEXT + content=50.12 + ATTRIBUTE divisa + TEXT + content=DOL diff --git a/result/XPath/tests/vidbase b/result/XPath/tests/vidbase new file mode 100644 index 0000000..3c7b62f --- /dev/null +++ b/result/XPath/tests/vidbase @@ -0,0 +1,42 @@ + +======================== +Expression: id('chapter1') +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter1 + +======================== +Expression: id('chapter3') +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter3 + +======================== +Expression: id('chapter1')/p +Object is a Node Set : +Set contains 4 nodes: +1 ELEMENT p +2 ELEMENT p +3 ELEMENT p +4 ELEMENT p + +======================== +Expression: id('chapter1')//p +Object is a Node Set : +Set contains 4 nodes: +1 ELEMENT p +2 ELEMENT p +3 ELEMENT p +4 ELEMENT p + +======================== +Expression: id('chapter1')/p[1] +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT p diff --git a/result/XPath/xptr/chapterschildseq b/result/XPath/xptr/chapterschildseq new file mode 100644 index 0000000..396bcac --- /dev/null +++ b/result/XPath/xptr/chapterschildseq @@ -0,0 +1,53 @@ + +======================== +Expression: /1/2/3 +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT image + ATTRIBUTE href + TEXT + content=linus.gif + +======================== +Expression: element(/1/2/3) +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT image + ATTRIBUTE href + TEXT + content=linus.gif + +======================== +Expression: element(foo)element(/1/2/3) +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT image + ATTRIBUTE href + TEXT + content=linus.gif + +======================== +Expression: element(/1/2/3)element(foo) +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT image + ATTRIBUTE href + TEXT + content=linus.gif + +======================== +Expression: chapter1/3 +Object is a Node Set : +Set contains 0 nodes: + +======================== +Expression: element(chapter1/3) +Object is empty (NULL) + +======================== +Expression: element(foo)element(chapter1/3) +Object is empty (NULL) + +======================== +Expression: element(chapter1/3)element(foo) +Object is empty (NULL) diff --git a/result/XPath/xptr/chaptersparts b/result/XPath/xptr/chaptersparts new file mode 100644 index 0000000..70b561b --- /dev/null +++ b/result/XPath/xptr/chaptersparts @@ -0,0 +1,44 @@ + +======================== +Expression: xpointer(//chapitre[2]) +Object is empty (NULL) + +======================== +Expression: xpointer(//chapter[2]) +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter2 + +======================== +Expression: xpointer(//chapitre[2])xpointer(//chapter[2]) +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter2 + +======================== +Expression: xpointer(id("chapter1")) +Object is empty (NULL) + +======================== +Expression: xpointer(//*[@id="chapter1"]) +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter1 + +======================== +Expression: xpointer(id("chapter1"))xpointer(//*[@id="chapter1"]) +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter1 diff --git a/result/XPath/xptr/chaptersrange b/result/XPath/xptr/chaptersrange new file mode 100644 index 0000000..c1b9cde --- /dev/null +++ b/result/XPath/xptr/chaptersrange @@ -0,0 +1,64 @@ + +======================== +Expression: xpointer(//chapter[position() = 2]/range-to(following::chapter[1])) +Object is a Location Set: +1 : Object is a range : + From node + ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter2 + To node + ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter3 + + +======================== +Expression: xpointer(//chapter[position() <= 2]/range-to(following::chapter[1])) +Object is a Location Set: +1 : Object is a range : + From node + ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter1 + To node + ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter2 + +2 : Object is a range : + From node + ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter2 + To node + ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter3 + + +======================== +Expression: xpointer(//chapter[position() = last()]/range-to(following::chapter[1])) +Object is empty (NULL) + +======================== +Expression: xpointer(//chapter[position() = 3]/range-to(/.//chapter[position() = 1])) +Object is a Location Set: +1 : Object is a range : + From node + ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter1 + To node + ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter3 + diff --git a/result/XPath/xptr/strpoint b/result/XPath/xptr/strpoint new file mode 100644 index 0000000..d6ecab3 --- /dev/null +++ b/result/XPath/xptr/strpoint @@ -0,0 +1,75 @@ + +======================== +Expression: xpointer(start-point(string-range(//p,'multiple'))) +Object is a Location Set: +1 : Object is a point : index 1 in node TEXT + content=multiple tests + + +======================== +Expression: xpointer(end-point(string-range(//p,'multiple'))) +Object is a Location Set: +1 : Object is a point : index 8 in node TEXT + content=multiple tests + + +======================== +Expression: xpointer(start-point(string-range(//p,'test'))) +Object is a Location Set: +1 : Object is a point : index 10 in node TEXT + content=a simple test + +2 : Object is a point : index 10 in node TEXT + content=multiple tests + +3 : Object is a point : index 7 in node TEXT + content=anced test + + +======================== +Expression: xpointer(end-point(string-range(//p,'test'))) +Object is a Location Set: +1 : Object is a point : index 13 in node TEXT + content=a simple test + +2 : Object is a point : index 13 in node TEXT + content=multiple tests + +3 : Object is a point : index 10 in node TEXT + content=anced test + + +======================== +Expression: xpointer(start-point(string-range(//*,'multiple',1,0))) +Object is a Location Set: +1 : Object is a point : index 1 in node TEXT + content=multiple tests + + +======================== +Expression: xpointer(end-point(string-range(//*,'multiple',1,0))) +Object is a Location Set: +1 : Object is a point : index 1 in node TEXT + content=multiple tests + + +======================== +Expression: xpointer(start-point(string-range(//*,'multiple',1,1))) +Object is a Location Set: +1 : Object is a point : index 1 in node TEXT + content=multiple tests + + +======================== +Expression: xpointer(end-point(string-range(//*,'multiple',1,1))) +Object is a Location Set: +1 : Object is a point : index 2 in node TEXT + content=multiple tests + + +======================== +Expression: xpointer(start-point(string-range(//p,'test'))[1]) +Object is a Location Set: +1 : Object is a point : index 10 in node TEXT + content=a simple test + diff --git a/result/XPath/xptr/strrange b/result/XPath/xptr/strrange new file mode 100644 index 0000000..c14ed91 --- /dev/null +++ b/result/XPath/xptr/strrange @@ -0,0 +1,96 @@ + +======================== +Expression: xpointer(string-range(//p, 'simple')) +Object is a Location Set: +1 : Object is a range : + From index 3 in node + TEXT + content=a simple test + To index 8 in node + TEXT + content=a simple test + + +======================== +Expression: xpointer(string-range(//p, 'test')) +Object is a Location Set: +1 : Object is a range : + From index 10 in node + TEXT + content=a simple test + To index 13 in node + TEXT + content=a simple test + +2 : Object is a range : + From index 10 in node + TEXT + content=multiple tests + To index 13 in node + TEXT + content=multiple tests + +3 : Object is a range : + From index 7 in node + TEXT + content=anced test + To index 10 in node + TEXT + content=anced test + + +======================== +Expression: xpointer(string-range(//p, 'difficult')) +Object is a Location Set: +1 : Object is a range : + From index 3 in node + TEXT + content=a diff + To index 4 in node + TEXT + content=cult one + + +======================== +Expression: xpointer(string-range(//p, 'spanning')) +Object is a Location Set: +1 : Object is a range : + From index 3 in node + TEXT + content=a span + To index 3 in node + TEXT + content=ing one + + +======================== +Expression: xpointer(string-range(//p, 'unbalanced')) +Object is a Location Set: +1 : Object is a range : + From index 8 in node + TEXT + content=and an unbal + To index 5 in node + TEXT + content=anced test + + +======================== +Expression: xpointer(string-range(//seq, '')) +Object is a Location Set: +1 : Object is a collapsed range : + index 1 in node + TEXT + content=123 +2 : Object is a collapsed range : + index 2 in node + TEXT + content=123 +3 : Object is a collapsed range : + index 3 in node + TEXT + content=123 +4 : Object is a collapsed range : + index 4 in node + TEXT + content=123 diff --git a/result/XPath/xptr/strrange2 b/result/XPath/xptr/strrange2 new file mode 100644 index 0000000..ea6ee45 --- /dev/null +++ b/result/XPath/xptr/strrange2 @@ -0,0 +1,64 @@ + +======================== +Expression: xpointer(string-range(//p, 'test', 2)) +Object is a Location Set: +1 : Object is a range : + From index 11 in node + TEXT + content=a simple test + To index 13 in node + TEXT + content=a simple test + +2 : Object is a range : + From index 11 in node + TEXT + content=multiple tests + To index 13 in node + TEXT + content=multiple tests + +3 : Object is a range : + From index 8 in node + TEXT + content=anced test + To index 10 in node + TEXT + content=anced test + + +======================== +Expression: xpointer(string-range(//p, 'test', 2, 2)) +Object is a Location Set: +1 : Object is a range : + From index 11 in node + TEXT + content=a simple test + To index 12 in node + TEXT + content=a simple test + +2 : Object is a range : + From index 11 in node + TEXT + content=multiple tests + To index 12 in node + TEXT + content=multiple tests + +3 : Object is a range : + From index 8 in node + TEXT + content=anced test + To index 9 in node + TEXT + content=anced test + + +======================== +Expression: xpointer(string-range(//p, 'difficult', 1, 0)) +Object is a Location Set: +1 : Object is a collapsed range : + index 3 in node + TEXT + content=a diff diff --git a/result/XPath/xptr/strrange3 b/result/XPath/xptr/strrange3 new file mode 100644 index 0000000..6d3114a --- /dev/null +++ b/result/XPath/xptr/strrange3 @@ -0,0 +1,48 @@ + +======================== +Expression: xpointer(string-range(//p, 'test', 1, 0)) +Object is a Location Set: +1 : Object is a collapsed range : + index 10 in node + TEXT + content=a simple test +2 : Object is a collapsed range : + index 10 in node + TEXT + content=multiple tests +3 : Object is a collapsed range : + index 7 in node + TEXT + content=anced test + +======================== +Expression: xpointer(string-range(//*, 'test', 1, 0)) +Object is a Location Set: +1 : Object is a collapsed range : + index 10 in node + TEXT + content=a simple test +2 : Object is a collapsed range : + index 10 in node + TEXT + content=multiple tests +3 : Object is a collapsed range : + index 7 in node + TEXT + content=anced test + +======================== +Expression: xpointer(string-range(//p, 'test', 1, 0)[2]) +Object is a Location Set: +1 : Object is a collapsed range : + index 10 in node + TEXT + content=multiple tests + +======================== +Expression: xpointer(string-range(//*, 'test', 1, 0)[2]) +Object is a Location Set: +1 : Object is a collapsed range : + index 10 in node + TEXT + content=multiple tests diff --git a/result/XPath/xptr/vidbase b/result/XPath/xptr/vidbase new file mode 100644 index 0000000..8b9e92d --- /dev/null +++ b/result/XPath/xptr/vidbase @@ -0,0 +1,19 @@ + +======================== +Expression: xpointer(id('chapter1')/p) +Object is a Node Set : +Set contains 4 nodes: +1 ELEMENT p +2 ELEMENT p +3 ELEMENT p +4 ELEMENT p + +======================== +Expression: xpointer(id('chapter1')/p[1]/range-to(following-sibling::p[2])) +Object is a Location Set: +1 : Object is a range : + From node + ELEMENT p + To node + ELEMENT p + diff --git a/result/XPath/xptr/vidchildseq b/result/XPath/xptr/vidchildseq new file mode 100644 index 0000000..eb8c5f7 --- /dev/null +++ b/result/XPath/xptr/vidchildseq @@ -0,0 +1,36 @@ + +======================== +Expression: /1/2/3 +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT image + ATTRIBUTE href + TEXT + content=linus.gif + +======================== +Expression: element(/1/2/3) +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT image + ATTRIBUTE href + TEXT + content=linus.gif + +======================== +Expression: chapter1/3 +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT image + ATTRIBUTE href + TEXT + content=linus.gif + +======================== +Expression: element(chapter1/3) +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT image + ATTRIBUTE href + TEXT + content=linus.gif diff --git a/result/XPath/xptr/vidparts b/result/XPath/xptr/vidparts new file mode 100644 index 0000000..bd5bd3c --- /dev/null +++ b/result/XPath/xptr/vidparts @@ -0,0 +1,27 @@ + +======================== +Expression: xpointer(id("chapter1")) +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter1 + +======================== +Expression: xpointer(//*[@id="chapter1"]) +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter1 + +======================== +Expression: xpointer(id("chapter1"))xpointer(//*[@id="chapter1"]) +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT chapter + ATTRIBUTE id + TEXT + content=chapter1 diff --git a/result/att1 b/result/att1 new file mode 100644 index 0000000..00aa6be --- /dev/null +++ b/result/att1 @@ -0,0 +1,2 @@ + + diff --git a/result/att1.rde b/result/att1.rde new file mode 100644 index 0000000..9f92263 --- /dev/null +++ b/result/att1.rde @@ -0,0 +1 @@ +0 1 doc 1 0 diff --git a/result/att1.rdr b/result/att1.rdr new file mode 100644 index 0000000..9f92263 --- /dev/null +++ b/result/att1.rdr @@ -0,0 +1 @@ +0 1 doc 1 0 diff --git a/result/att1.sax b/result/att1.sax new file mode 100644 index 0000000..e19a8a7 --- /dev/null +++ b/result/att1.sax @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(doc, attr='to normalize with a space') +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/att1.sax2 b/result/att1.sax2 new file mode 100644 index 0000000..76ba131 --- /dev/null +++ b/result/att1.sax2 @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(doc, NULL, NULL, 0, 1, 0, attr='to n...', 28) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/att10 b/result/att10 new file mode 100644 index 0000000..5b29bf8 --- /dev/null +++ b/result/att10 @@ -0,0 +1,18 @@ + + + + + + + + +]> + + + + + + + + diff --git a/result/att10.rde b/result/att10.rde new file mode 100644 index 0000000..2ca7905 --- /dev/null +++ b/result/att10.rde @@ -0,0 +1,23 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 14 #text 0 1 + +1 1 tst 1 0 +1 14 #text 0 1 + +1 1 tst 1 0 +1 14 #text 0 1 + +1 1 tst 1 0 +1 14 #text 0 1 + +1 1 tst 1 0 +1 14 #text 0 1 + +1 1 tst 1 0 +1 14 #text 0 1 + +1 1 tst 1 0 +1 14 #text 0 1 + +0 15 doc 0 0 diff --git a/result/att10.rdr b/result/att10.rdr new file mode 100644 index 0000000..2ca7905 --- /dev/null +++ b/result/att10.rdr @@ -0,0 +1,23 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 14 #text 0 1 + +1 1 tst 1 0 +1 14 #text 0 1 + +1 1 tst 1 0 +1 14 #text 0 1 + +1 1 tst 1 0 +1 14 #text 0 1 + +1 1 tst 1 0 +1 14 #text 0 1 + +1 1 tst 1 0 +1 14 #text 0 1 + +1 1 tst 1 0 +1 14 #text 0 1 + +0 15 doc 0 0 diff --git a/result/att10.sax b/result/att10.sax new file mode 100644 index 0000000..2df49a5 --- /dev/null +++ b/result/att10.sax @@ -0,0 +1,61 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 4, ...) +SAX.elementDecl(tst, 3, ...) +SAX.attributeDecl(tst, a, 8, 3, NULL, ...) +SAX.attributeDecl(tst, b, 1, 3, NULL, ...) +SAX.entityDecl(d, 1, (null), (null), ) +SAX.getEntity(d) +SAX.entityDecl(a, 1, (null), (null), +) +SAX.getEntity(a) +SAX.entityDecl(da, 1, (null), (null), +) +SAX.getEntity(da) +SAX.externalSubset(doc, , ) +SAX.startElement(doc) +SAX.characters( +, 1) +SAX.startElement(tst, a=' xyz', b=' xyz') +SAX.endElement(tst) +SAX.characters( +, 1) +SAX.getEntity(d) +SAX.getEntity(d) +SAX.getEntity(a) +SAX.getEntity(a) +SAX.getEntity(da) +SAX.getEntity(d) +SAX.getEntity(d) +SAX.getEntity(a) +SAX.getEntity(a) +SAX.getEntity(da) +SAX.startElement(tst, a='&d;&d;A&a; &a;B&da;', b='&d;&d;A&a; &a;B&da;') +SAX.endElement(tst) +SAX.characters( +, 1) +SAX.startElement(tst, a=' A + +B +', b=' A + +B +') +SAX.endElement(tst) +SAX.characters( +, 1) +SAX.startElement(tst, a=' x y ', b=' x y ') +SAX.endElement(tst) +SAX.characters( +, 1) +SAX.startElement(tst, a=' a b ', b=' a b ') +SAX.endElement(tst) +SAX.characters( +, 1) +SAX.startElement(tst, a=' a b ', b=' a b ') +SAX.endElement(tst) +SAX.characters( +, 1) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/att10.sax2 b/result/att10.sax2 new file mode 100644 index 0000000..7c6f61d --- /dev/null +++ b/result/att10.sax2 @@ -0,0 +1,57 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 4, ...) +SAX.elementDecl(tst, 3, ...) +SAX.attributeDecl(tst, a, 8, 3, NULL, ...) +SAX.attributeDecl(tst, b, 1, 3, NULL, ...) +SAX.entityDecl(d, 1, (null), (null), ) +SAX.getEntity(d) +SAX.entityDecl(a, 1, (null), (null), +) +SAX.getEntity(a) +SAX.entityDecl(da, 1, (null), (null), +) +SAX.getEntity(da) +SAX.externalSubset(doc, , ) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.characters( +, 1) +SAX.startElementNs(tst, NULL, NULL, 0, 2, 0, a='xyz"...', 3, b=' xy...', 5) +SAX.endElementNs(tst, NULL, NULL) +SAX.characters( +, 1) +SAX.getEntity(d) +SAX.getEntity(d) +SAX.getEntity(a) +SAX.getEntity(a) +SAX.getEntity(da) +SAX.getEntity(d) +SAX.getEntity(d) +SAX.getEntity(a) +SAX.getEntity(a) +SAX.getEntity(da) +SAX.startElementNs(tst, NULL, NULL, 0, 2, 0, a='&d;&...', 19, b='&d;&...', 19) +SAX.endElementNs(tst, NULL, NULL) +SAX.characters( +, 1) +SAX.startElementNs(tst, NULL, NULL, 0, 2, 0, a=' A +...', 8, b=' A +...', 8) +SAX.endElementNs(tst, NULL, NULL) +SAX.characters( +, 1) +SAX.startElementNs(tst, NULL, NULL, 0, 2, 0, a='x y...', 3, b=' x ...', 6) +SAX.endElementNs(tst, NULL, NULL) +SAX.characters( +, 1) +SAX.startElementNs(tst, NULL, NULL, 0, 2, 0, a='a b ...', 3, b=' a b...', 5) +SAX.endElementNs(tst, NULL, NULL) +SAX.characters( +, 1) +SAX.startElementNs(tst, NULL, NULL, 0, 2, 0, a='a b...', 3, b=' a ...', 8) +SAX.endElementNs(tst, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/att11 b/result/att11 new file mode 100644 index 0000000..121b06d --- /dev/null +++ b/result/att11 @@ -0,0 +1,9 @@ + + + + + + +]> + diff --git a/result/att11.rde b/result/att11.rde new file mode 100644 index 0000000..cc83bea --- /dev/null +++ b/result/att11.rde @@ -0,0 +1,2 @@ +0 10 attributes 0 0 +0 1 attributes 1 0 diff --git a/result/att11.rdr b/result/att11.rdr new file mode 100644 index 0000000..cc83bea --- /dev/null +++ b/result/att11.rdr @@ -0,0 +1,2 @@ +0 10 attributes 0 0 +0 1 attributes 1 0 diff --git a/result/att11.sax b/result/att11.sax new file mode 100644 index 0000000..67dcf22 --- /dev/null +++ b/result/att11.sax @@ -0,0 +1,21 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(attributes, , ) +SAX.elementDecl(attributes, 1, ...) +SAX.attributeDecl(attributes, nmtoken, 7, 3, NULL, ...) +SAX.attributeDecl(attributes, nmtokens, 8, 3, NULL, ...) +SAX.entityDecl(ent, 1, (null), (null), entity&recursive; ) +SAX.getEntity(ent) +SAX.entityDecl(recursive, 1, (null), (null), reference) +SAX.getEntity(recursive) +SAX.externalSubset(attributes, , ) +SAX.getEntity(ent) +SAX.getEntity(recursive) +SAX.getEntity(ent) +SAX.getEntity(recursive) +SAX.getEntity(ent) +SAX.getEntity(recursive) +SAX.startElement(attributes, nmtoken=' &ent; &ent; &ent; ', nmtokens=' Test + this normalization ') +SAX.endElement(attributes) +SAX.endDocument() diff --git a/result/att11.sax2 b/result/att11.sax2 new file mode 100644 index 0000000..859a970 --- /dev/null +++ b/result/att11.sax2 @@ -0,0 +1,20 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(attributes, , ) +SAX.elementDecl(attributes, 1, ...) +SAX.attributeDecl(attributes, nmtoken, 7, 3, NULL, ...) +SAX.attributeDecl(attributes, nmtokens, 8, 3, NULL, ...) +SAX.entityDecl(ent, 1, (null), (null), entity&recursive; ) +SAX.getEntity(ent) +SAX.entityDecl(recursive, 1, (null), (null), reference) +SAX.getEntity(recursive) +SAX.externalSubset(attributes, , ) +SAX.getEntity(ent) +SAX.getEntity(recursive) +SAX.getEntity(ent) +SAX.getEntity(recursive) +SAX.getEntity(ent) +SAX.getEntity(recursive) +SAX.startElementNs(attributes, NULL, NULL, 0, 2, 0, nmtoken='&ent...', 17, nmtokens='Test...', 25) +SAX.endElementNs(attributes, NULL, NULL) +SAX.endDocument() diff --git a/result/att2 b/result/att2 new file mode 100644 index 0000000..28989a2 --- /dev/null +++ b/result/att2 @@ -0,0 +1,2 @@ + + diff --git a/result/att2.rde b/result/att2.rde new file mode 100644 index 0000000..9f92263 --- /dev/null +++ b/result/att2.rde @@ -0,0 +1 @@ +0 1 doc 1 0 diff --git a/result/att2.rdr b/result/att2.rdr new file mode 100644 index 0000000..9f92263 --- /dev/null +++ b/result/att2.rdr @@ -0,0 +1 @@ +0 1 doc 1 0 diff --git a/result/att2.sax b/result/att2.sax new file mode 100644 index 0000000..02ca320 --- /dev/null +++ b/result/att2.sax @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(doc, attr='to normalize with a space') +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/att2.sax2 b/result/att2.sax2 new file mode 100644 index 0000000..84aebcb --- /dev/null +++ b/result/att2.sax2 @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(doc, NULL, NULL, 0, 1, 0, attr='to n...', 27) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/att3 b/result/att3 new file mode 100644 index 0000000..3f3ac5c --- /dev/null +++ b/result/att3 @@ -0,0 +1,2 @@ + + diff --git a/result/att3.rde b/result/att3.rde new file mode 100644 index 0000000..d1e72cc --- /dev/null +++ b/result/att3.rde @@ -0,0 +1,3 @@ +0 1 select 0 0 +1 3 #text 0 1 f oo +0 15 select 0 0 diff --git a/result/att3.rdr b/result/att3.rdr new file mode 100644 index 0000000..d1e72cc --- /dev/null +++ b/result/att3.rdr @@ -0,0 +1,3 @@ +0 1 select 0 0 +1 3 #text 0 1 f oo +0 15 select 0 0 diff --git a/result/att3.sax b/result/att3.sax new file mode 100644 index 0000000..eec0959 --- /dev/null +++ b/result/att3.sax @@ -0,0 +1,9 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(select, onclick='aaaa + bbbb ') +SAX.characters(f, 1) +SAX.characters( , 2) +SAX.characters(oo, 2) +SAX.endElement(select) +SAX.endDocument() diff --git a/result/att3.sax2 b/result/att3.sax2 new file mode 100644 index 0000000..8e7ca86 --- /dev/null +++ b/result/att3.sax2 @@ -0,0 +1,8 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(select, NULL, NULL, 0, 1, 0, onclick='aaaa...', 17) +SAX.characters(f, 1) +SAX.characters( , 2) +SAX.characters(oo, 2) +SAX.endElementNs(select, NULL, NULL) +SAX.endDocument() diff --git a/result/att4 b/result/att4 new file mode 100644 index 0000000..882cea7 --- /dev/null +++ b/result/att4 @@ -0,0 +1,9264 @@ + + + + + + + diff --git a/result/att4.rde b/result/att4.rde new file mode 100644 index 0000000..746643e --- /dev/null +++ b/result/att4.rde @@ -0,0 +1,27785 @@ +0 8 #comment 0 1 edited with XML Spy v4.4 U (http://www.xmlspy.com) by Slava (GIVC) +0 1 electroxml 0 0 +1 14 #text 0 1 + +1 1 data 0 0 +2 14 #text 0 1 + +2 1 select 0 0 +3 14 #text 0 1 + +3 1 device 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +3 15 device 0 0 +3 14 #text 0 1 + +2 15 select 0 0 +2 14 #text 0 1 + +1 15 data 0 0 +1 14 #text 0 1 + +0 15 electroxml 0 0 diff --git a/result/att4.rdr b/result/att4.rdr new file mode 100644 index 0000000..746643e --- /dev/null +++ b/result/att4.rdr @@ -0,0 +1,27785 @@ +0 8 #comment 0 1 edited with XML Spy v4.4 U (http://www.xmlspy.com) by Slava (GIVC) +0 1 electroxml 0 0 +1 14 #text 0 1 + +1 1 data 0 0 +2 14 #text 0 1 + +2 1 select 0 0 +3 14 #text 0 1 + +3 1 device 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +4 1 par 0 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +5 1 val 1 0 +5 14 #text 0 1 + +4 15 par 0 0 +4 14 #text 0 1 + +3 15 device 0 0 +3 14 #text 0 1 + +2 15 select 0 0 +2 14 #text 0 1 + +1 15 data 0 0 +1 14 #text 0 1 + +0 15 electroxml 0 0 diff --git a/result/att4.sax b/result/att4.sax new file mode 100644 index 0000000..2e88f06 --- /dev/null +++ b/result/att4.sax @@ -0,0 +1,36976 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.comment( edited with XML Spy v4.4 U (http://www.xmlspy.com) by Slava (GIVC) ) +SAX.startElement(electroxml, modified='20021216T072726') +SAX.characters( + , 2) +SAX.startElement(data, from='20021031T22', to='20021130T22') +SAX.characters( + , 3) +SAX.startElement(select) +SAX.characters( + , 4) +SAX.startElement(device, serialnumb='E00003562') +SAX.characters( + , 5) +SAX.startElement(par, memind='113400', h='3dc1a8de') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e08', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c32', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a3c', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3835', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4645', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5455', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6265', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7075', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e85', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c96', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aa5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8b6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6c5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4d7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d30b', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0f6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef06', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd17', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b27', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11937', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12746', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13556', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14366', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15181', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f85', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d95', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ba4', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189b5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197c4', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5d5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b3e6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c1f6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d005', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de15', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec25', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa36', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20845', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21656', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22465', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23276', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24086', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e99', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25ca7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ab7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='278c6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='286d6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='294e6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a301', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2b105', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2bf15', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2cd25', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2db35', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2e946', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2f755', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='30566', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='31375', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3219e', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='32f96', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='33da6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='34bb6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='359de', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='367d6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='375e6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3840e', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3921e', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3a016', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ae27', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3bc36', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ca47', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3d856', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3e667', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3f481', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='40285', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41095', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41ea5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='42cb5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='43ac5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='448d5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='456e6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='464f5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='480ff', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='48f0e', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='49d1d', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ab46', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4b955', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4c769', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4d577', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4e387', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4f196', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ffa6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='50dd0', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='51bc6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='529d6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='537e7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='54600', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55406', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='56215', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57026', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57e36', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='58c46', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='59a70', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5a867', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5b676', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5c487', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5d296', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5e0a9', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5eeb8', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5fcc6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='60ad7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='618e7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='626f7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='63507', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='64317', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65127', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65f37', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='66d46', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='67b57', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='68967', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='69782', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6a586', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6b395', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6c1a6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6cfb5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ddc6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ebd6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6f9e6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='707f6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='71607', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='72417', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='73227', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74037', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74e47', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='75c57', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='76a63', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='77873', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='78680', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7948f', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7a29f', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7b0af', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7bebf', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7cccf', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7dadf', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e8fa', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f70a', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8051a', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8132a', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8213a', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='82f4a', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='83d5a', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='84b6a', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8597a', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8678b', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8759b', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='883ac', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='891bb', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='89fca', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8adda', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8bbeb', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c9fc', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8d80b', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8e61a', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8f42a', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9023a', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9104a', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='91e5a', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='92c6a', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='93a84', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='94885', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='95694', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='964a5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='972b4', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='980c5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='98ed4', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='99ce5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aaf5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9b906', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9c716', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9d526', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9e336', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9f145', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9ff56', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a0d65', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a1b77', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a2986', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a3795', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a45a7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a53b6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a61c7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a6fd6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a7e00', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8c00', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a05', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aa815', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ab625', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ac435', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ad245', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ae055', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aee65', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='afc75', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b0a85', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b26a6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b34b6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b42c6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b50d6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b5ee7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6cf6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b7b07', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b8917', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b9728', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ba537', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bb347', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bc157', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bcf67', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bdd81', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='beb86', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bf995', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c07a6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c15b5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c23c6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c31d5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c3fe6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4df5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c5c06', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c6a16', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c7826', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c8636', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c9446', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ca256', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cb066', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cbe76', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ccc87', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cda96', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ce8a8', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cf6b7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d04c8', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d12d7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d20e7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d2f02', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d3d05', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b15', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d5926', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d6735', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d7546', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d8355', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9166', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9f75', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dad87', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dbb97', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dc9a8', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dd7b7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='de5c6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='df3d7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e01d7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0fe5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e1df5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e2c04', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e3a14', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e4824', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e5634', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e6444', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e7255', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e806f', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e8e7f', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e9c8e', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eaa9f', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eb8ae', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ec6bf', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ed4ce', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ee2df', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef0ef', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eff01', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f0d10', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f1b20', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f2930', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f3740', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f4551', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f5361', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6172', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6f80', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f7d91', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f8ba1', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f99b1', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fa7c0', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fb5d1', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fc3e0', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd1fb', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fe00b', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee1c', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ffc2c', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='100a3b', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10184c', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10265b', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10346c', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10427b', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10508d', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='105e9d', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='106cad', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='107abd', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1088cd', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1096de', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10a4ed', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b2fe', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10c10d', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10cf1e', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10dd2e', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10eb66', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10f94e', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11075e', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11156d', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='112388', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113187', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113fb0', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='114da6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='115bb6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1169c6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1177d6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1185e8', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1193f7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11a208', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11b017', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11be2f', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11cc37', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11da47', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11e857', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11f667', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='120578', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='121386', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122196', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122fa6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='123db5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='124bc5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1259d5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1267e4', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='127600', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='128305', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129115', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129f25', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12ad35', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12bb45', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12c954', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12d766', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12e575', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12f386', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130196', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130fa6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='131db7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='132bc5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1339d4', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1347e5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1355f4', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='136404', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='137214', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138024', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138e33', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='139c44', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13aa54', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13b865', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13c67e', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13d48e', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13e29e', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13f0ae', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13febf', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='140ccf', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='141adf', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1428ef', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1436ff', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14450f', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14531f', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146130', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146f40', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='147d44', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='148b57', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='149965', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14a775', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14b584', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14c397', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14d1a4', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14dfb6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14edc5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14fbd5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1509e5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1517ff', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='152605', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153415', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='154225', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155035', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155e45', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='156c55', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='157a65', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='158875', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='159686', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15a495', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15b2a6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15c0b6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15cec6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15dcd5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15eae6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f8f5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='160706', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='161517', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='162326', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163137', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163f46', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='164d57', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='165b67', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='166982', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='167786', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='168596', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1693a6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16a1b5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16afc6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16bdd5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16cbe6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d9f6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16e807', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16f616', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='170429', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='171236', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172047', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172e57', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='173c67', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='174a77', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='175887', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='176694', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1774a3', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1782b3', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1790c5', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='179ed4', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ace4', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17bafd', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17c90f', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d71e', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17e52f', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17f33f', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18014f', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='180f5f', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='181d6e', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='182b7f', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18398f', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1847a1', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1855af', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1863c0', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1871cf', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='187fe0', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='188def', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189c00', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18b80d', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18c61c', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18d42c', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18e23b', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18f04b', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18fe5e', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='190c76', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='191a86', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='192896', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1936a6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1944b7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1952c6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1960d7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='196ee6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197cf8', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='198b0f', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19991f', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19b541', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19c34d', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19d15e', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19df80', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19ed90', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19eebe', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19fb8e', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a09a0', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a17ae', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a25be', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a33cd', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a41dd', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a4fed', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5e08', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a6c05', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a7a15', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a8826', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9637', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aa445', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ab255', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ac065', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ace75', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1adc87', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aea96', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1af8a7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b06b7', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b14c6', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c8270', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c907e', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c9e8f', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1caca2', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cbab1', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cc8c1', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cd6d0', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ce4de', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cf2f0', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0109', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0f06', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d1d15', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d2b25', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d3935', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d4745', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d5555', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d6366', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7175', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7f86', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d8d95', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d9ba6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1da9b6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1db7c7', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dc5d5', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dd3e6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de1f5', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1df006', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dfe16', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e0c26', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e1a36', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e2847', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e3659', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e4467', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e5281', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6086', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6e96', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e7ca6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e8ab5', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e98c6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ea6d5', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eb4e6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec2f6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ed106', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1edf16', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eed26', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1efb36', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f0946', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1756', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f2566', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f3376', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4187', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4f96', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f5da7', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f6bb6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f79c7', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f87d6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f95e7', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa401', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fb204', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fc016', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fce25', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fdc35', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fea45', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ff855', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='200665', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='201475', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='202286', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203095', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203ea5', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='204cb6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='205ac6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2068d6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2076e6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2084f6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='209306', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20a116', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20af26', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20bd37', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20cb46', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20d957', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20e767', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20f581', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='210386', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211194', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211fa5', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='212db5', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='213bc5', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2149d6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2157e5', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2165f6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='217406', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='218217', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219026', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219e39', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ac46', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba57', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21c867', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21d677', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21e487', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21f296', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2200a6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='220eb7', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='221cc6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='222ad7', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2238e7', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='224701', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='225505', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='226315', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227125', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227f35', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='228d45', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='229b54', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22a965', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22b776', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22c586', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22d397', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22e1a6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22efb6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22fdc7', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='230bd7', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2319e6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2327f6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23361b', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='234416', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='235226', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236037', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236e46', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='237c57', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='238a66', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='239881', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23a685', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23b495', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23c2a4', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23d0b5', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23dec4', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23ecd5', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23fae4', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2408f6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='241706', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='242518', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='243325', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244137', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244f46', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b66', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='247976', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='248786', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24957e', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24a38f', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24b19c', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24bfac', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24cdbc', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24dbcd', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e9e5', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24f808', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='250616', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='251426', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='252236', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253047', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253e56', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='254c67', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='255a76', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='256887', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='257697', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2584a8', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2592b6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25a0c7', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25aed7', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25bce7', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25caf8', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25d907', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25e718', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25f527', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='260338', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261149', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261f59', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='262d68', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='263b83', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='264986', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='265795', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2665a6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2673b5', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2681c6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='268fd5', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='269de6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26abf6', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ba06', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26c817', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26d62b', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26e436', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26f247', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270057', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e67', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='271c77', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='272a87', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='273897', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2746a8', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2754b9', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2762c7', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2770d8', v='55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='277ee7', v='55') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='16936600', h='3dc1a8de') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='196.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e08', v='199.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c32', v='200.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a3c', v='201.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3835', v='199.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4645', v='197.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5455', v='193.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6265', v='197.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7075', v='195.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e85', v='192.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c96', v='195.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aa5', v='195.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8b6', v='195.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6c5', v='197.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4d7', v='222.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d30b', v='220.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0f6', v='222.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef06', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd17', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b27', v='221.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11937', v='222.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12746', v='222.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13556', v='220.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14366', v='220.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15181', v='220') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f85', v='221.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d95', v='220.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ba4', v='221.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189b5', v='220.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197c4', v='220.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5d5', v='219.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b3e6', v='219.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c1f6', v='220.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d005', v='220.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de15', v='220.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec25', v='220.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa36', v='220.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20845', v='220.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21656', v='220.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22465', v='220.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23276', v='220.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24086', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e99', v='222') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25ca7', v='221.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ab7', v='220.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='278c6', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='286d6', v='220.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='294e6', v='218.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a301', v='220') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2b105', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2bf15', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2cd25', v='218.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2db35', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2e946', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2f755', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='30566', v='219.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='31375', v='220.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3219e', v='219.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='32f96', v='220.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='33da6', v='220.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='34bb6', v='219') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='359de', v='220.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='367d6', v='219.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='375e6', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3840e', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3921e', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3a016', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ae27', v='220.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3bc36', v='220.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ca47', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3d856', v='221.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3e667', v='220.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3f481', v='217.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='40285', v='218.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41095', v='218.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41ea5', v='218.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='42cb5', v='219.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='43ac5', v='218.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='448d5', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='456e6', v='220.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='464f5', v='222.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='480ff', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='48f0e', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='49d1d', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ab46', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4b955', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4c769', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4d577', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4e387', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4f196', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ffa6', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='50dd0', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='51bc6', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='529d6', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='537e7', v='220.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='54600', v='218.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55406', v='219.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='56215', v='219.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57026', v='219.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57e36', v='219.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='58c46', v='220.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='59a70', v='220.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5a867', v='221.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5b676', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5c487', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5d296', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5e0a9', v='222.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5eeb8', v='224.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5fcc6', v='223.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='60ad7', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='618e7', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='626f7', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='63507', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='64317', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65127', v='222.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65f37', v='222.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='66d46', v='220.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='67b57', v='220.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='68967', v='220.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='69782', v='220.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6a586', v='219.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6b395', v='219.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6c1a6', v='219') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6cfb5', v='218.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ddc6', v='220.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ebd6', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6f9e6', v='221.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='707f6', v='222.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='71607', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='72417', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='73227', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74037', v='223.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74e47', v='223.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='75c57', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='76a63', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='77873', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='78680', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7948f', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7a29f', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7b0af', v='222.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7bebf', v='221') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7cccf', v='219.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7dadf', v='219.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e8fa', v='220.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f70a', v='220.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8051a', v='217.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8132a', v='219') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8213a', v='218.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='82f4a', v='219.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='83d5a', v='219.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='84b6a', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8597a', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8678b', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8759b', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='883ac', v='223.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='891bb', v='222') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='89fca', v='224.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8adda', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8bbeb', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c9fc', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8d80b', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8e61a', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8f42a', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9023a', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9104a', v='220.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='91e5a', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='92c6a', v='219.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='93a84', v='219.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='94885', v='219') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='95694', v='218.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='964a5', v='219.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='972b4', v='219.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='980c5', v='221') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='98ed4', v='220.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='99ce5', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aaf5', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9b906', v='225.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9c716', v='225') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9d526', v='222.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9e336', v='223.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9f145', v='224.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9ff56', v='223.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a0d65', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a1b77', v='195.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a2986', v='190') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a3795', v='122.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a45a7', v='354.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a53b6', v='333.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a61c7', v='323.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a6fd6', v='278.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a7e00', v='286.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8c00', v='292.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a05', v='21.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aa815', v='273.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ab625', v='272.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ac435', v='285.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ad245', v='28.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ae055', v='68.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aee65', v='147.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='afc75', v='95.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b0a85', v='89.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b26a6', v='88.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b34b6', v='92.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b42c6', v='149.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b50d6', v='148.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b5ee7', v='127.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6cf6', v='198.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b7b07', v='187.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b8917', v='182.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b9728', v='195.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ba537', v='203.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bb347', v='124.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bc157', v='159.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bcf67', v='230.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bdd81', v='79.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='beb86', v='51.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bf995', v='22.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c07a6', v='323.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c15b5', v='341.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c23c6', v='46.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c31d5', v='71.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c3fe6', v='71.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4df5', v='63.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c5c06', v='76.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c6a16', v='58.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c7826', v='92') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c8636', v='79.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c9446', v='63.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ca256', v='51.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cb066', v='81.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cbe76', v='205.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ccc87', v='96.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cda96', v='95.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ce8a8', v='96.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cf6b7', v='92.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d04c8', v='91.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d12d7', v='86.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d20e7', v='270') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d2f02', v='270.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d3d05', v='296.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b15', v='306.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d5926', v='331.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d6735', v='13.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d7546', v='46.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d8355', v='262.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9166', v='166.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9f75', v='143.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dad87', v='127.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dbb97', v='132.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dc9a8', v='128.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dd7b7', v='155.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='de5c6', v='170.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='df3d7', v='176.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e01d7', v='176.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0fe5', v='168.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e1df5', v='172.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e2c04', v='185.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e3a14', v='196.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e4824', v='178.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e5634', v='193.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e6444', v='176.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e7255', v='196.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e806f', v='202.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e8e7f', v='99.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e9c8e', v='130.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eaa9f', v='132.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eb8ae', v='121.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ec6bf', v='100.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ed4ce', v='192.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ee2df', v='153.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef0ef', v='170.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eff01', v='155.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f0d10', v='167.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f1b20', v='165.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f2930', v='184.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f3740', v='159.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f4551', v='163.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f5361', v='163.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6172', v='160.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6f80', v='165') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f7d91', v='156.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f8ba1', v='163.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f99b1', v='162.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fa7c0', v='154.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fb5d1', v='157.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fc3e0', v='197.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd1fb', v='203.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fe00b', v='212.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee1c', v='185.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ffc2c', v='187.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='100a3b', v='162') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10184c', v='149.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10265b', v='136.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10346c', v='145.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10427b', v='164.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10508d', v='158.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='105e9d', v='163') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='106cad', v='161.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='107abd', v='168.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1088cd', v='168.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1096de', v='165.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10a4ed', v='168.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b2fe', v='163.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10c10d', v='147.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10cf1e', v='163') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10dd2e', v='166.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10eb66', v='177.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10f94e', v='179.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11075e', v='161') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11156d', v='174.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='112388', v='203.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113187', v='158.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113fb0', v='172.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='114da6', v='172.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='115bb6', v='168.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1169c6', v='138') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1177d6', v='135.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1185e8', v='157.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1193f7', v='160.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11a208', v='175.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11b017', v='184.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11be2f', v='188.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11cc37', v='170') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11da47', v='173.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11e857', v='167') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11f667', v='172.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='120578', v='164.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='121386', v='166.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122196', v='151.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122fa6', v='158.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='123db5', v='170.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='124bc5', v='185.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1259d5', v='160.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1267e4', v='188.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='127600', v='207.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='128305', v='214.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129115', v='213.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129f25', v='218.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12ad35', v='210.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12bb45', v='178.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12c954', v='162.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12d766', v='156.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12e575', v='153.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12f386', v='143.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130196', v='160.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130fa6', v='153.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='131db7', v='163.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='132bc5', v='168.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1339d4', v='169.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1347e5', v='139.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1355f4', v='142.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='136404', v='122.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='137214', v='125.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138024', v='110.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138e33', v='110.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='139c44', v='190.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13aa54', v='99.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13b865', v='209.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13c67e', v='76.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13d48e', v='61.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13e29e', v='44.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13f0ae', v='44.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13febf', v='60.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='140ccf', v='64.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='141adf', v='67.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1428ef', v='341.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1436ff', v='115.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14450f', v='117.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14531f', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146130', v='252.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146f40', v='261.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='147d44', v='313.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='148b57', v='311.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='149965', v='292') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14a775', v='57.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14b584', v='151.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14c397', v='92.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14d1a4', v='93.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14dfb6', v='100.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14edc5', v='97.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14fbd5', v='184') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1509e5', v='289.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1517ff', v='274.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='152605', v='39.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153415', v='6.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='154225', v='355.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155035', v='19.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155e45', v='44.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='156c55', v='61.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='157a65', v='55.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='158875', v='60.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='159686', v='71.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15a495', v='66.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15b2a6', v='61.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15c0b6', v='38.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15cec6', v='17.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15dcd5', v='35.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15eae6', v='44.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f8f5', v='71.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='160706', v='166.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='161517', v='125') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='162326', v='176') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163137', v='195.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163f46', v='99.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='164d57', v='90') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='165b67', v='273.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='166982', v='344.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='167786', v='307.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='168596', v='271.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1693a6', v='278.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16a1b5', v='291.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16afc6', v='52.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16bdd5', v='76.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16cbe6', v='87.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d9f6', v='170.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16e807', v='174.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16f616', v='175.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='170429', v='186.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='171236', v='183.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172047', v='181.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172e57', v='173.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='173c67', v='170.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='174a77', v='165.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='175887', v='163.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='176694', v='161.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1774a3', v='165.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1782b3', v='170.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1790c5', v='173.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='179ed4', v='187.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ace4', v='201.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17bafd', v='205.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17c90f', v='204.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d71e', v='204.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17e52f', v='208.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17f33f', v='204.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18014f', v='193.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='180f5f', v='186.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='181d6e', v='192.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='182b7f', v='194.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18398f', v='184.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1847a1', v='184.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1855af', v='185.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1863c0', v='194.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1871cf', v='192.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='187fe0', v='192.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='188def', v='190.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189c00', v='185.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18b80d', v='170.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18c61c', v='187.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18d42c', v='191.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18e23b', v='191.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18f04b', v='197.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18fe5e', v='195.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='190c76', v='189.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='191a86', v='201.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='192896', v='202.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1936a6', v='204.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1944b7', v='196.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1952c6', v='182.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1960d7', v='162.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='196ee6', v='187.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197cf8', v='187.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='198b0f', v='179.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19991f', v='181.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19b541', v='188.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19c34d', v='186.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19d15e', v='183.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19df80', v='182.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19ed90', v='176.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19eebe', v='175.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19fb8e', v='178.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a09a0', v='223.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a17ae', v='228.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a25be', v='229.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a33cd', v='216.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a41dd', v='226.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a4fed', v='249.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5e08', v='245.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a6c05', v='250.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a7a15', v='251.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a8826', v='252.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9637', v='259.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aa445', v='254.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ab255', v='218.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ac065', v='228.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ace75', v='227.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1adc87', v='214.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aea96', v='218.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1af8a7', v='217') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b06b7', v='231.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b14c6', v='230.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='52') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c8270', v='340.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c907e', v='18.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c9e8f', v='357.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1caca2', v='344.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cbab1', v='338.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cc8c1', v='28.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cd6d0', v='21.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ce4de', v='10.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cf2f0', v='343.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0109', v='342.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0f06', v='358.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d1d15', v='353.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d2b25', v='353.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d3935', v='1.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d4745', v='6.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d5555', v='10.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d6366', v='350.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7175', v='350.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7f86', v='357.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d8d95', v='181.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d9ba6', v='184.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1da9b6', v='192.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1db7c7', v='193.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dc5d5', v='194.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dd3e6', v='190.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de1f5', v='195') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1df006', v='195.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dfe16', v='195.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e0c26', v='198.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e1a36', v='198.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e2847', v='199.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e3659', v='200.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e4467', v='202.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e5281', v='200.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6086', v='203.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6e96', v='204.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e7ca6', v='188.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e8ab5', v='193.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e98c6', v='184.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ea6d5', v='190.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eb4e6', v='188.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec2f6', v='192.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ed106', v='185.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1edf16', v='186.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eed26', v='182.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1efb36', v='187.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f0946', v='186.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1756', v='168.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f2566', v='164.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f3376', v='154.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4187', v='134.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4f96', v='154.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f5da7', v='182.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f6bb6', v='188.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f79c7', v='176') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f87d6', v='206.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f95e7', v='216.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa401', v='211.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fb204', v='210.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fc016', v='211.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fce25', v='192.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fdc35', v='185.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fea45', v='176.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ff855', v='171.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='200665', v='129.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='201475', v='173.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='202286', v='157.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203095', v='161.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203ea5', v='163.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='204cb6', v='176.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='205ac6', v='166.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2068d6', v='161.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2076e6', v='159.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2084f6', v='177.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='209306', v='183.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20a116', v='185.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20af26', v='182.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20bd37', v='189.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20cb46', v='173.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20d957', v='179.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20e767', v='193.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20f581', v='202.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='210386', v='197.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211194', v='186.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211fa5', v='188.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='212db5', v='178.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='213bc5', v='160.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2149d6', v='168.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2157e5', v='184') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2165f6', v='191.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='217406', v='177.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='218217', v='182.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219026', v='185.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219e39', v='176.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ac46', v='170.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba57', v='169.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21c867', v='159.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21d677', v='190.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21e487', v='173.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21f296', v='175.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2200a6', v='187.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='220eb7', v='188.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='221cc6', v='160') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='222ad7', v='175.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2238e7', v='192.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='224701', v='200.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='225505', v='116.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='226315', v='166.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227125', v='162.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227f35', v='130.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='228d45', v='122') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='229b54', v='193.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22a965', v='183.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22b776', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22c586', v='157.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22d397', v='142.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22e1a6', v='145.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22efb6', v='182.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22fdc7', v='182.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='230bd7', v='173.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2319e6', v='188.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2327f6', v='179.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23361b', v='169.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='234416', v='164.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='235226', v='170.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236037', v='178.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236e46', v='158') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='237c57', v='161.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='238a66', v='175.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='239881', v='169.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23a685', v='185.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23b495', v='191.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23c2a4', v='176.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23d0b5', v='167.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23dec4', v='154.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23ecd5', v='167') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23fae4', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2408f6', v='166.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='241706', v='146.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='242518', v='155.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='243325', v='157.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244137', v='189.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244f46', v='187.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b66', v='186.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='247976', v='179.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='248786', v='139.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24957e', v='161.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24a38f', v='172') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24b19c', v='189.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24bfac', v='187.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24cdbc', v='188.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24dbcd', v='186.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e9e5', v='198.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24f808', v='193.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='250616', v='195.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='251426', v='198.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='252236', v='180.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253047', v='180') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253e56', v='161.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='254c67', v='165.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='255a76', v='165.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='256887', v='160.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='257697', v='147.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2584a8', v='196.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2592b6', v='195.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25a0c7', v='186.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25aed7', v='178.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25bce7', v='177.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25caf8', v='172') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25d907', v='156.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25e718', v='154.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25f527', v='157') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='260338', v='179.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261149', v='166') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261f59', v='172.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='262d68', v='196.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='263b83', v='179.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='264986', v='195.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='265795', v='202.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2665a6', v='209.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2673b5', v='204.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2681c6', v='199.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='268fd5', v='186.3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='269de6', v='175.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26abf6', v='170.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ba06', v='159.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26c817', v='156.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26d62b', v='137.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26e436', v='146') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26f247', v='139.6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270057', v='143.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e67', v='137.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='271c77', v='177.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='272a87', v='186.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='273897', v='184.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2746a8', v='188.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2754b9', v='191.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2762c7', v='146.7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2770d8', v='161.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='277ee7', v='188.7') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='10695000', h='3dc1a8de') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e08', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c32', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a3c', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3835', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4645', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5455', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6265', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7075', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e85', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c96', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aa5', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8b6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6c5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4d7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d30b', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0f6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef06', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd17', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b27', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11937', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12746', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13556', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14366', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15181', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f85', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d95', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ba4', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189b5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197c4', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5d5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b3e6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c1f6', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d005', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de15', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec25', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa36', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20845', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21656', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22465', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23276', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24086', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e99', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25ca7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ab7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='278c6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='286d6', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='294e6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a301', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2b105', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2bf15', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2cd25', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2db35', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2e946', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2f755', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='30566', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='31375', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3219e', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='32f96', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='33da6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='34bb6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='359de', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='367d6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='375e6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3840e', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3921e', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3a016', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ae27', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3bc36', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ca47', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3d856', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3e667', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3f481', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='40285', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41095', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41ea5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='42cb5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='43ac5', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='448d5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='456e6', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='464f5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='480ff', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='48f0e', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='49d1d', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ab46', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4b955', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4c769', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4d577', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4e387', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4f196', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ffa6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='50dd0', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='51bc6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='529d6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='537e7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='54600', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55406', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='56215', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57026', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57e36', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='58c46', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='59a70', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5a867', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5b676', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5c487', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5d296', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5e0a9', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5eeb8', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5fcc6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='60ad7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='618e7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='626f7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='63507', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='64317', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65127', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65f37', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='66d46', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='67b57', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='68967', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='69782', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6a586', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6b395', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6c1a6', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6cfb5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ddc6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ebd6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6f9e6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='707f6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='71607', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='72417', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='73227', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74037', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74e47', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='75c57', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='76a63', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='77873', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='78680', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7948f', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7a29f', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7b0af', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7bebf', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7cccf', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7dadf', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e8fa', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f70a', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8051a', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8132a', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8213a', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='82f4a', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='83d5a', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='84b6a', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8597a', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8678b', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8759b', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='883ac', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='891bb', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='89fca', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8adda', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8bbeb', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c9fc', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8d80b', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8e61a', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8f42a', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9023a', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9104a', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='91e5a', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='92c6a', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='93a84', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='94885', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='95694', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='964a5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='972b4', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='980c5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='98ed4', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='99ce5', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aaf5', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9b906', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9c716', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9d526', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9e336', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9f145', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9ff56', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a0d65', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a1b77', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a2986', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a3795', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a45a7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a53b6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a61c7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a6fd6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a7e00', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8c00', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a05', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aa815', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ab625', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ac435', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ad245', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ae055', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aee65', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='afc75', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b0a85', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b26a6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b34b6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b42c6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b50d6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b5ee7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6cf6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b7b07', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b8917', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b9728', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ba537', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bb347', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bc157', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bcf67', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bdd81', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='beb86', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bf995', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c07a6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c15b5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c23c6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c31d5', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c3fe6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4df5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c5c06', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c6a16', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c7826', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c8636', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c9446', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ca256', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cb066', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cbe76', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ccc87', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cda96', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ce8a8', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cf6b7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d04c8', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d12d7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d20e7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d2f02', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d3d05', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b15', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d5926', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d6735', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d7546', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d8355', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9166', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9f75', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dad87', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dbb97', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dc9a8', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dd7b7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='de5c6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='df3d7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e01d7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0fe5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e1df5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e2c04', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e3a14', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e4824', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e5634', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e6444', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e7255', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e806f', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e8e7f', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e9c8e', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eaa9f', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eb8ae', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ec6bf', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ed4ce', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ee2df', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef0ef', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eff01', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f0d10', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f1b20', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f2930', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f3740', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f4551', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f5361', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6172', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6f80', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f7d91', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f8ba1', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f99b1', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fa7c0', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fb5d1', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fc3e0', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd1fb', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fe00b', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee1c', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ffc2c', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='100a3b', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10184c', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10265b', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10346c', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10427b', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10508d', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='105e9d', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='106cad', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='107abd', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1088cd', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1096de', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10a4ed', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b2fe', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10c10d', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10cf1e', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10dd2e', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10eb66', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10f94e', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11075e', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11156d', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='112388', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113187', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113fb0', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='114da6', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='115bb6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1169c6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1177d6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1185e8', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1193f7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11a208', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11b017', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11be2f', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11cc37', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11da47', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11e857', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11f667', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='120578', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='121386', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122196', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122fa6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='123db5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='124bc5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1259d5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1267e4', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='127600', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='128305', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129115', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129f25', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12ad35', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12bb45', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12c954', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12d766', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12e575', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12f386', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130196', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130fa6', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='131db7', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='132bc5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1339d4', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1347e5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1355f4', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='136404', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='137214', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138024', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138e33', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='139c44', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13aa54', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13b865', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13c67e', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13d48e', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13e29e', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13f0ae', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13febf', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='140ccf', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='141adf', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1428ef', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1436ff', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14450f', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14531f', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146130', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146f40', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='147d44', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='148b57', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='149965', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14a775', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14b584', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14c397', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14d1a4', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14dfb6', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14edc5', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14fbd5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1509e5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1517ff', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='152605', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153415', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='154225', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155035', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155e45', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='156c55', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='157a65', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='158875', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='159686', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15a495', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15b2a6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15c0b6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15cec6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15dcd5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15eae6', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f8f5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='160706', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='161517', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='162326', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163137', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163f46', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='164d57', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='165b67', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='166982', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='167786', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='168596', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1693a6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16a1b5', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16afc6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16bdd5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16cbe6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d9f6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16e807', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16f616', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='170429', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='171236', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172047', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172e57', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='173c67', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='174a77', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='175887', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='176694', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1774a3', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1782b3', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1790c5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='179ed4', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ace4', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17bafd', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17c90f', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d71e', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17e52f', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17f33f', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18014f', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='180f5f', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='181d6e', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='182b7f', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18398f', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1847a1', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1855af', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1863c0', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1871cf', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='187fe0', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='188def', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189c00', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18b80d', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18c61c', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18d42c', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18e23b', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18f04b', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18fe5e', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='190c76', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='191a86', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='192896', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1936a6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1944b7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1952c6', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1960d7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='196ee6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197cf8', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='198b0f', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19991f', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19b541', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19c34d', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19d15e', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19df80', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19ed90', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19eebe', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19fb8e', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a09a0', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a17ae', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a25be', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a33cd', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a41dd', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a4fed', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5e08', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a6c05', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a7a15', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a8826', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9637', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aa445', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ab255', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ac065', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ace75', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1adc87', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aea96', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1af8a7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b06b7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b14c6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c8270', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c907e', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c9e8f', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1caca2', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cbab1', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cc8c1', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cd6d0', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ce4de', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cf2f0', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0109', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0f06', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d1d15', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d2b25', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d3935', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d4745', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d5555', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d6366', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7175', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7f86', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d8d95', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d9ba6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1da9b6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1db7c7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dc5d5', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dd3e6', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de1f5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1df006', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dfe16', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e0c26', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e1a36', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e2847', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e3659', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e4467', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e5281', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6086', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6e96', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e7ca6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e8ab5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e98c6', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ea6d5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eb4e6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec2f6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ed106', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1edf16', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eed26', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1efb36', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f0946', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1756', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f2566', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f3376', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4187', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4f96', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f5da7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f6bb6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f79c7', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f87d6', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f95e7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa401', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fb204', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fc016', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fce25', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fdc35', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fea45', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ff855', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='200665', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='201475', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='202286', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203095', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203ea5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='204cb6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='205ac6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2068d6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2076e6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2084f6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='209306', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20a116', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20af26', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20bd37', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20cb46', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20d957', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20e767', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20f581', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='210386', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211194', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211fa5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='212db5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='213bc5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2149d6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2157e5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2165f6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='217406', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='218217', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219026', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219e39', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ac46', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba57', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21c867', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21d677', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21e487', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21f296', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2200a6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='220eb7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='221cc6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='222ad7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2238e7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='224701', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='225505', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='226315', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227125', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227f35', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='228d45', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='229b54', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22a965', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22b776', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22c586', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22d397', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22e1a6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22efb6', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22fdc7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='230bd7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2319e6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2327f6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23361b', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='234416', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='235226', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236037', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236e46', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='237c57', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='238a66', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='239881', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23a685', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23b495', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23c2a4', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23d0b5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23dec4', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23ecd5', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23fae4', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2408f6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='241706', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='242518', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='243325', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244137', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244f46', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b66', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='247976', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='248786', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24957e', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24a38f', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24b19c', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24bfac', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24cdbc', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24dbcd', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e9e5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24f808', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='250616', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='251426', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='252236', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253047', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253e56', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='254c67', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='255a76', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='256887', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='257697', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2584a8', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2592b6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25a0c7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25aed7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25bce7', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25caf8', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25d907', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25e718', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25f527', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='260338', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261149', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261f59', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='262d68', v='50.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='263b83', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='264986', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='265795', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2665a6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2673b5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2681c6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='268fd5', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='269de6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26abf6', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ba06', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26c817', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26d62b', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26e436', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26f247', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270057', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e67', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='271c77', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='272a87', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='273897', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2746a8', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2754b9', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2762c7', v='49.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2770d8', v='50') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='277ee7', v='50') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='8612', h='3dc1a8de') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='25.07') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e08', v='24.067') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c32', v='23.438') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a3c', v='23.245') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3835', v='22.784') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4645', v='22.746') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5455', v='26.297') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6265', v='28.878') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7075', v='34.451') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e85', v='40.017') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c96', v='40.572') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aa5', v='38.682') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8b6', v='35.869') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6c5', v='34.12') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4d7', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d30b', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0f6', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef06', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd17', v='0.038') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b27', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11937', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12746', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13556', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14366', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15181', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f85', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d95', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ba4', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189b5', v='0.038') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197c4', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5d5', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b3e6', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c1f6', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d005', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de15', v='0.033') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec25', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa36', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20845', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21656', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22465', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23276', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24086', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e99', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25ca7', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ab7', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='278c6', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='286d6', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='294e6', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a301', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2b105', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2bf15', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2cd25', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2db35', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2e946', v='0.033') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2f755', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='30566', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='31375', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3219e', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='32f96', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='33da6', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='34bb6', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='359de', v='0.033') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='367d6', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='375e6', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3840e', v='0.033') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3921e', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3a016', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ae27', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3bc36', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ca47', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3d856', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3e667', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3f481', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='40285', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41095', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41ea5', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='42cb5', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='43ac5', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='448d5', v='0.038') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='456e6', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='464f5', v='0.039') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='480ff', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='48f0e', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='49d1d', v='0.038') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ab46', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4b955', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4c769', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4d577', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4e387', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4f196', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ffa6', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='50dd0', v='0.038') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='51bc6', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='529d6', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='537e7', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='54600', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55406', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='56215', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57026', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57e36', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='58c46', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='59a70', v='0.04') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5a867', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5b676', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5c487', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5d296', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5e0a9', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5eeb8', v='0.039') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5fcc6', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='60ad7', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='618e7', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='626f7', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='63507', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='64317', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65127', v='0.039') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65f37', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='66d46', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='67b57', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='68967', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='69782', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6a586', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6b395', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6c1a6', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6cfb5', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ddc6', v='0.033') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ebd6', v='0.033') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6f9e6', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='707f6', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='71607', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='72417', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='73227', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74037', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74e47', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='75c57', v='0.04') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='76a63', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='77873', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='78680', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7948f', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7a29f', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7b0af', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7bebf', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7cccf', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7dadf', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e8fa', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f70a', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8051a', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8132a', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8213a', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='82f4a', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='83d5a', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='84b6a', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8597a', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8678b', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8759b', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='883ac', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='891bb', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='89fca', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8adda', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8bbeb', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c9fc', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8d80b', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8e61a', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8f42a', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9023a', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9104a', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='91e5a', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='92c6a', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='93a84', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='94885', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='95694', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='964a5', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='972b4', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='980c5', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='98ed4', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='99ce5', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aaf5', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9b906', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9c716', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9d526', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9e336', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9f145', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9ff56', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a0d65', v='0.036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a1b77', v='36.117') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a2986', v='17.613') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a3795', v='8.357') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a45a7', v='5.957') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a53b6', v='7.134') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a61c7', v='8.646') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a6fd6', v='6.429') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a7e00', v='10.235') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8c00', v='14.027') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a05', v='3.549') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aa815', v='3.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ab625', v='6.093') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ac435', v='5.204') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ad245', v='7.526') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ae055', v='11.39') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aee65', v='0.954') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='afc75', v='5.773') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b0a85', v='21.019') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b26a6', v='22.636') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b34b6', v='19.316') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b42c6', v='1.265') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b50d6', v='3.13') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b5ee7', v='6.091') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6cf6', v='7.273') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b7b07', v='9.373') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b8917', v='7.711') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b9728', v='8.183') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ba537', v='9.843') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bb347', v='5.251') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bc157', v='2.646') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bcf67', v='7.175') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bdd81', v='19.697') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='beb86', v='4.703') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bf995', v='5.017') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c07a6', v='5.028') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c15b5', v='4.406') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c23c6', v='5.164') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c31d5', v='10.951') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c3fe6', v='5.096') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4df5', v='10.032') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c5c06', v='4.084') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c6a16', v='5.223') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c7826', v='6.622') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c8636', v='2.571') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c9446', v='3.766') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ca256', v='2.925') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cb066', v='4.239') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cbe76', v='2.442') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ccc87', v='10.653') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cda96', v='15.045') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ce8a8', v='10.497') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cf6b7', v='14.243') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d04c8', v='11.318') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d12d7', v='7.26') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d20e7', v='3.278') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d2f02', v='12.768') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d3d05', v='8.863') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b15', v='8.423') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d5926', v='7.503') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d6735', v='7.803') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d7546', v='10.91') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d8355', v='5.743') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9166', v='2.082') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9f75', v='7.751') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dad87', v='16.785') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dbb97', v='18.467') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dc9a8', v='18.801') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dd7b7', v='16.008') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='de5c6', v='13.629') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='df3d7', v='14.479') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e01d7', v='14.927') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0fe5', v='14.349') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e1df5', v='15.502') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e2c04', v='20.07') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e3a14', v='20.011') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e4824', v='16.357') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e5634', v='17.03') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e6444', v='11.901') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e7255', v='10.138') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e806f', v='8.731') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e8e7f', v='14.357') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e9c8e', v='4.86') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eaa9f', v='4.149') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eb8ae', v='6.019') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ec6bf', v='14.635') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ed4ce', v='9.989') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ee2df', v='11.96') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef0ef', v='15.422') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eff01', v='22.742') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f0d10', v='22.428') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f1b20', v='24.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f2930', v='23.076') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f3740', v='23.241') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f4551', v='24.018') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f5361', v='25.989') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6172', v='24.748') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6f80', v='25.323') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f7d91', v='23.122') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f8ba1', v='19.403') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f99b1', v='19.28') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fa7c0', v='16.12') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fb5d1', v='16.228') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fc3e0', v='16.654') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd1fb', v='14.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fe00b', v='14.054') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee1c', v='9.557') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ffc2c', v='9.072') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='100a3b', v='8.333') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10184c', v='9.771') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10265b', v='14.337') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10346c', v='16.049') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10427b', v='19.911') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10508d', v='23.238') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='105e9d', v='23.213') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='106cad', v='25.179') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='107abd', v='21.591') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1088cd', v='19.665') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1096de', v='21.079') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10a4ed', v='21.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b2fe', v='22.363') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10c10d', v='25.172') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10cf1e', v='23.223') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10dd2e', v='20.912') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10eb66', v='22.017') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10f94e', v='18.729') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11075e', v='16.761') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11156d', v='13.145') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='112388', v='13.912') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113187', v='8.712') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113fb0', v='8.106') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='114da6', v='8.195') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='115bb6', v='8.301') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1169c6', v='10.111') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1177d6', v='14.213') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1185e8', v='15.617') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1193f7', v='19.095') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11a208', v='23.986') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11b017', v='20.919') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11be2f', v='26.06') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11cc37', v='21.493') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11da47', v='21.006') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11e857', v='22.144') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11f667', v='19.124') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='120578', v='0.019') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='121386', v='0.021') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122196', v='0.021') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122fa6', v='0.018') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='123db5', v='0.015') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='124bc5', v='0.016') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1259d5', v='0.011') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1267e4', v='0.01') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='127600', v='0.011') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='128305', v='0.01') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129115', v='0.01') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129f25', v='0.01') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12ad35', v='0.009') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12bb45', v='0.006') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12c954', v='0.009') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12d766', v='0.011') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12e575', v='0.017') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12f386', v='0.012') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130196', v='0.019') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130fa6', v='0.014') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='131db7', v='0.015') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='132bc5', v='0.015') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1339d4', v='0.279') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1347e5', v='0.096') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1355f4', v='0.141') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='136404', v='0.207') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='137214', v='0.218') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138024', v='0.213') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138e33', v='0.214') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='139c44', v='0.075') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13aa54', v='0.05') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13b865', v='0.034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13c67e', v='0.449') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13d48e', v='0.217') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13e29e', v='0.167') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13f0ae', v='0.158') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13febf', v='0.232') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='140ccf', v='0.339') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='141adf', v='0.212') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1428ef', v='0.044') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1436ff', v='0.033') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14450f', v='0.025') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14531f', v='0.023') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146130', v='0.058') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146f40', v='0.145') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='147d44', v='0.064') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='148b57', v='0.08') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='149965', v='0.067') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14a775', v='0.111') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14b584', v='0.05') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14c397', v='0.239') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14d1a4', v='0.206') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14dfb6', v='0.163') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14edc5', v='0.063') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14fbd5', v='0.027') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1509e5', v='0.077') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1517ff', v='0.153') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='152605', v='0.181') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153415', v='0.149') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='154225', v='0.157') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155035', v='0.166') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155e45', v='0.216') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='156c55', v='0.306') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='157a65', v='0.168') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='158875', v='0.145') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='159686', v='0.252') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15a495', v='0.213') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15b2a6', v='0.19') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15c0b6', v='0.111') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15cec6', v='0.114') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15dcd5', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15eae6', v='0.115') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f8f5', v='0.302') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='160706', v='0.03') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='161517', v='0.06') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='162326', v='0.048') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163137', v='0.069') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163f46', v='0.063') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='164d57', v='0.029') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='165b67', v='0.105') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='166982', v='0.096') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='167786', v='0.142') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='168596', v='0.101') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1693a6', v='0.092') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16a1b5', v='0.071') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16afc6', v='0.067') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16bdd5', v='0.17') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16cbe6', v='0.212') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d9f6', v='0.089') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16e807', v='0.607') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16f616', v='0.675') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='170429', v='0.723') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='171236', v='0.477') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172047', v='0.477') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172e57', v='0.491') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='173c67', v='0.496') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='174a77', v='0.579') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='175887', v='0.62') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='176694', v='35.716') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1774a3', v='33.973') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1782b3', v='35.295') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1790c5', v='32.429') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='179ed4', v='28.433') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ace4', v='29.24') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17bafd', v='30.943') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17c90f', v='28.05') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d71e', v='27.792') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17e52f', v='28.102') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17f33f', v='25.534') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18014f', v='25.021') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='180f5f', v='30.046') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='181d6e', v='32.772') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='182b7f', v='38.186') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18398f', v='64.34') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1847a1', v='63.582') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1855af', v='60.895') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1863c0', v='57.167') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1871cf', v='59.436') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='187fe0', v='56.655') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='188def', v='60.597') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189c00', v='56.836') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18b80d', v='37.581') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18c61c', v='40.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18d42c', v='38.214') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18e23b', v='32.175') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18f04b', v='30.662') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18fe5e', v='26.933') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='190c76', v='21.269') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='191a86', v='21.646') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='192896', v='21.244') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1936a6', v='20.855') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1944b7', v='19.588') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1952c6', v='20.809') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1960d7', v='25.64') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='196ee6', v='29.166') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197cf8', v='31.236') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='198b0f', v='28.424') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19991f', v='32.717') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19b541', v='32.231') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19c34d', v='29.816') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19d15e', v='29.219') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19df80', v='29.861') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19ed90', v='29.093') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19eebe', v='29.004') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19fb8e', v='10.445') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a09a0', v='18.158') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a17ae', v='23.713') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a25be', v='25.84') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a33cd', v='13.692') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a41dd', v='15.619') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a4fed', v='22.235') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5e08', v='20.533') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a6c05', v='14.806') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a7a15', v='17.786') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a8826', v='18.205') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9637', v='14.86') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aa445', v='11.317') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ab255', v='6.403') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ac065', v='13.389') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ace75', v='18.094') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1adc87', v='16.688') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aea96', v='16.251') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1af8a7', v='17.902') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b06b7', v='16.864') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b14c6', v='16.076') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='4.33') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c8270', v='4.33') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c907e', v='21.221') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c9e8f', v='20.86') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1caca2', v='22.903') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cbab1', v='22.672') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cc8c1', v='34.711') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cd6d0', v='33.792') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ce4de', v='32.717') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cf2f0', v='33.04') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0109', v='34.047') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0f06', v='36.536') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d1d15', v='36.673') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d2b25', v='36.752') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d3935', v='37.932') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d4745', v='37.857') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d5555', v='37.029') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d6366', v='32.844') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7175', v='31.917') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7f86', v='31.363') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d8d95', v='15.349') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d9ba6', v='17.623') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1da9b6', v='17.658') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1db7c7', v='16.597') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dc5d5', v='17.621') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dd3e6', v='18.017') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de1f5', v='32.337') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1df006', v='37.113') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dfe16', v='36.896') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e0c26', v='37.646') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e1a36', v='37.465') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e2847', v='35.96') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e3659', v='34.217') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e4467', v='31.472') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e5281', v='27.913') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6086', v='27.77') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6e96', v='27.092') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e7ca6', v='9.65') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e8ab5', v='8.989') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e98c6', v='8.871') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ea6d5', v='11.525') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eb4e6', v='11.312') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec2f6', v='13.145') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ed106', v='12.866') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1edf16', v='13.503') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eed26', v='12.977') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1efb36', v='12.853') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f0946', v='12.322') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1756', v='11.244') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f2566', v='11.357') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f3376', v='13.909') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4187', v='20.778') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4f96', v='17.384') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f5da7', v='17.882') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f6bb6', v='17.779') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f79c7', v='15.628') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f87d6', v='18.718') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f95e7', v='19.687') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa401', v='15.856') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fb204', v='14.235') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fc016', v='14.121') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fce25', v='10.417') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fdc35', v='10.192') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fea45', v='10.247') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ff855', v='12.409') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='200665', v='18.782') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='201475', v='17.709') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='202286', v='24.468') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203095', v='27.895') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203ea5', v='31.135') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='204cb6', v='28.073') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='205ac6', v='26.781') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2068d6', v='27.955') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2076e6', v='31.834') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2084f6', v='30.684') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='209306', v='33.239') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20a116', v='31.592') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20af26', v='27.051') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20bd37', v='26.891') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20cb46', v='22.834') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20d957', v='21.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20e767', v='20.723') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20f581', v='20.412') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='210386', v='17.178') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211194', v='14.845') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211fa5', v='14.404') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='212db5', v='13.895') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='213bc5', v='14.291') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2149d6', v='18.376') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2157e5', v='22.682') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2165f6', v='29.056') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='217406', v='30.985') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='218217', v='31.244') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219026', v='30.501') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219e39', v='30.757') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ac46', v='29.766') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba57', v='29.686') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21c867', v='30.47') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21d677', v='31.06') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21e487', v='28.958') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21f296', v='28.474') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2200a6', v='27.753') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='220eb7', v='26.676') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='221cc6', v='24.07') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='222ad7', v='18.889') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2238e7', v='17.556') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='224701', v='16.434') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='225505', v='18.47') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='226315', v='9.837') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227125', v='9.73') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227f35', v='12.672') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='228d45', v='17.29') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='229b54', v='17.161') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22a965', v='19.388') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22b776', v='22.792') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22c586', v='25.973') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22d397', v='28.305') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22e1a6', v='28.475') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22efb6', v='23.531') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22fdc7', v='22.62') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='230bd7', v='22.13') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2319e6', v='27.159') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2327f6', v='27.705') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23361b', v='29.796') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='234416', v='27.341') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='235226', v='25.887') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236037', v='25.842') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236e46', v='23.266') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='237c57', v='21.664') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='238a66', v='19.437') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='239881', v='15.912') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23a685', v='16.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23b495', v='15.674') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23c2a4', v='13.705') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23d0b5', v='14.331') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23dec4', v='15.781') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23ecd5', v='18.196') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23fae4', v='22.115') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2408f6', v='26.066') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='241706', v='34.813') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='242518', v='35.914') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='243325', v='36.775') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244137', v='34.277') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244f46', v='32.056') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b66', v='33.001') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='247976', v='31.687') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='248786', v='36.854') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24957e', v='30.428') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24a38f', v='28.246') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24b19c', v='28.984') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24bfac', v='27.176') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24cdbc', v='26.455') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24dbcd', v='21.891') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e9e5', v='20.073') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24f808', v='17.083') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='250616', v='17.921') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='251426', v='17.972') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='252236', v='16.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253047', v='17.324') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253e56', v='20.97') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='254c67', v='21.269') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='255a76', v='25.041') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='256887', v='31.27') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='257697', v='33.712') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2584a8', v='82.744') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2592b6', v='46.746') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25a0c7', v='22.903') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25aed7', v='31.343') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25bce7', v='30.438') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25caf8', v='28.883') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25d907', v='30.794') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25e718', v='31.011') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25f527', v='28.098') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='260338', v='27.177') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261149', v='24.941') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261f59', v='22.834') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='262d68', v='23.209') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='263b83', v='17.56') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='264986', v='17.555') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='265795', v='18.761') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2665a6', v='20.698') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2673b5', v='19.372') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2681c6', v='18.644') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='268fd5', v='18.792') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='269de6', v='18.951') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26abf6', v='18.907') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ba06', v='23.409') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26c817', v='23.511') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26d62b', v='26.941') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26e436', v='24.008') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26f247', v='23.147') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270057', v='23.935') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e67', v='24') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='271c77', v='22.888') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='272a87', v='26.246') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='273897', v='25.909') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2746a8', v='25.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2754b9', v='24.725') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2762c7', v='23.755') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2770d8', v='18.839') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='277ee7', v='15.362') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='8608', h='3dc1a8de') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e08', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c32', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a3c', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3835', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4645', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5455', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6265', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7075', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e85', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c96', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aa5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8b6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6c5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4d7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d30b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef06', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd17', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b27', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11937', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12746', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13556', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14366', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15181', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f85', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d95', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ba4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189b5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197c4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5d5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b3e6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c1f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d005', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de15', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec25', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa36', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20845', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21656', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22465', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23276', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24086', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e99', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25ca7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ab7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='278c6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='286d6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='294e6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a301', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2b105', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2bf15', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2cd25', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2db35', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2e946', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2f755', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='30566', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='31375', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3219e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='32f96', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='33da6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='34bb6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='359de', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='367d6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='375e6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3840e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3921e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3a016', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ae27', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3bc36', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ca47', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3d856', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3e667', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3f481', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='40285', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41095', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41ea5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='42cb5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='43ac5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='448d5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='456e6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='464f5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='480ff', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='48f0e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='49d1d', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ab46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4b955', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4c769', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4d577', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4e387', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4f196', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ffa6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='50dd0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='51bc6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='529d6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='537e7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='54600', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55406', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='56215', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57026', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57e36', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='58c46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='59a70', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5a867', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5b676', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5c487', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5d296', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5e0a9', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5eeb8', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5fcc6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='60ad7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='618e7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='626f7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='63507', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='64317', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65127', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65f37', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='66d46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='67b57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='68967', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='69782', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6a586', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6b395', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6c1a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6cfb5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ddc6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ebd6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6f9e6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='707f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='71607', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='72417', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='73227', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74037', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74e47', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='75c57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='76a63', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='77873', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='78680', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7948f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7a29f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7b0af', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7bebf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7cccf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7dadf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e8fa', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f70a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8051a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8132a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8213a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='82f4a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='83d5a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='84b6a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8597a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8678b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8759b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='883ac', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='891bb', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='89fca', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8adda', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8bbeb', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c9fc', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8d80b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8e61a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8f42a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9023a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9104a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='91e5a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='92c6a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='93a84', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='94885', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='95694', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='964a5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='972b4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='980c5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='98ed4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='99ce5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aaf5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9b906', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9c716', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9d526', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9e336', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9f145', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9ff56', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a0d65', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a1b77', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a2986', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a3795', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a45a7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a53b6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a61c7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a6fd6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a7e00', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8c00', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a05', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aa815', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ab625', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ac435', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ad245', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ae055', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aee65', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='afc75', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b0a85', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b26a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b34b6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b42c6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b50d6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b5ee7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6cf6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b7b07', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b8917', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b9728', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ba537', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bb347', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bc157', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bcf67', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bdd81', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='beb86', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bf995', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c07a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c15b5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c23c6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c31d5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c3fe6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4df5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c5c06', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c6a16', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c7826', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c8636', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c9446', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ca256', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cb066', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cbe76', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ccc87', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cda96', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ce8a8', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cf6b7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d04c8', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d12d7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d20e7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d2f02', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d3d05', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b15', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d5926', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d6735', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d7546', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d8355', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9166', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9f75', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dad87', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dbb97', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dc9a8', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dd7b7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='de5c6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='df3d7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e01d7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0fe5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e1df5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e2c04', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e3a14', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e4824', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e5634', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e6444', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e7255', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e806f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e8e7f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e9c8e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eaa9f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eb8ae', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ec6bf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ed4ce', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ee2df', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef0ef', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eff01', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f0d10', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f1b20', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f2930', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f3740', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f4551', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f5361', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6172', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6f80', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f7d91', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f8ba1', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f99b1', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fa7c0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fb5d1', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fc3e0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd1fb', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fe00b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee1c', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ffc2c', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='100a3b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10184c', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10265b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10346c', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10427b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10508d', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='105e9d', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='106cad', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='107abd', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1088cd', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1096de', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10a4ed', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b2fe', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10c10d', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10cf1e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10dd2e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10eb66', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10f94e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11075e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11156d', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='112388', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113187', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113fb0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='114da6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='115bb6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1169c6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1177d6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1185e8', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1193f7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11a208', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11b017', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11be2f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11cc37', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11da47', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11e857', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11f667', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='120578', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='121386', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122196', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122fa6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='123db5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='124bc5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1259d5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1267e4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='127600', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='128305', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129115', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129f25', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12ad35', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12bb45', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12c954', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12d766', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12e575', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12f386', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130196', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130fa6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='131db7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='132bc5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1339d4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1347e5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1355f4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='136404', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='137214', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138024', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138e33', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='139c44', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13aa54', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13b865', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13c67e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13d48e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13e29e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13f0ae', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13febf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='140ccf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='141adf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1428ef', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1436ff', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14450f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14531f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146130', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146f40', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='147d44', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='148b57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='149965', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14a775', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14b584', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14c397', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14d1a4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14dfb6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14edc5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14fbd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1509e5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1517ff', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='152605', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153415', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='154225', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155035', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155e45', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='156c55', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='157a65', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='158875', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='159686', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15a495', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15b2a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15c0b6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15cec6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15dcd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15eae6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f8f5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='160706', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='161517', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='162326', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163137', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163f46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='164d57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='165b67', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='166982', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='167786', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='168596', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1693a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16a1b5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16afc6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16bdd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16cbe6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d9f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16e807', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16f616', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='170429', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='171236', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172047', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172e57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='173c67', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='174a77', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='175887', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='176694', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1774a3', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1782b3', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1790c5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='179ed4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ace4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17bafd', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17c90f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d71e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17e52f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17f33f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18014f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='180f5f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='181d6e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='182b7f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18398f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1847a1', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1855af', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1863c0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1871cf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='187fe0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='188def', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189c00', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18b80d', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18c61c', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18d42c', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18e23b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18f04b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18fe5e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='190c76', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='191a86', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='192896', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1936a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1944b7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1952c6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1960d7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='196ee6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197cf8', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='198b0f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19991f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19b541', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19c34d', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19d15e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19df80', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19ed90', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19eebe', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19fb8e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a09a0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a17ae', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a25be', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a33cd', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a41dd', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a4fed', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5e08', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a6c05', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a7a15', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a8826', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9637', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aa445', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ab255', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ac065', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ace75', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1adc87', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aea96', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1af8a7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b06b7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b14c6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c8270', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c907e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c9e8f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1caca2', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cbab1', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cc8c1', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cd6d0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ce4de', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cf2f0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0109', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0f06', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d1d15', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d2b25', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d3935', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d4745', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d5555', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d6366', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7175', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7f86', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d8d95', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d9ba6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1da9b6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1db7c7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dc5d5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dd3e6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de1f5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1df006', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dfe16', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e0c26', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e1a36', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e2847', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e3659', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e4467', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e5281', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6086', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6e96', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e7ca6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e8ab5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e98c6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ea6d5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eb4e6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec2f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ed106', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1edf16', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eed26', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1efb36', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f0946', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1756', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f2566', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f3376', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4187', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4f96', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f5da7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f6bb6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f79c7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f87d6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f95e7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa401', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fb204', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fc016', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fce25', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fdc35', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fea45', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ff855', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='200665', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='201475', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='202286', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203095', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203ea5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='204cb6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='205ac6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2068d6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2076e6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2084f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='209306', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20a116', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20af26', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20bd37', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20cb46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20d957', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20e767', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20f581', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='210386', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211194', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211fa5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='212db5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='213bc5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2149d6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2157e5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2165f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='217406', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='218217', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219026', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219e39', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ac46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21c867', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21d677', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21e487', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21f296', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2200a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='220eb7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='221cc6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='222ad7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2238e7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='224701', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='225505', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='226315', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227125', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227f35', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='228d45', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='229b54', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22a965', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22b776', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22c586', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22d397', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22e1a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22efb6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22fdc7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='230bd7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2319e6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2327f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23361b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='234416', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='235226', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236037', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236e46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='237c57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='238a66', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='239881', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23a685', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23b495', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23c2a4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23d0b5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23dec4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23ecd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23fae4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2408f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='241706', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='242518', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='243325', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244137', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244f46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b66', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='247976', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='248786', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24957e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24a38f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24b19c', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24bfac', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24cdbc', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24dbcd', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e9e5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24f808', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='250616', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='251426', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='252236', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253047', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253e56', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='254c67', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='255a76', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='256887', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='257697', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2584a8', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2592b6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25a0c7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25aed7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25bce7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25caf8', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25d907', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25e718', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25f527', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='260338', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261149', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261f59', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='262d68', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='263b83', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='264986', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='265795', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2665a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2673b5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2681c6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='268fd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='269de6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26abf6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ba06', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26c817', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26d62b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26e436', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26f247', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270057', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e67', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='271c77', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='272a87', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='273897', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2746a8', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2754b9', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2762c7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2770d8', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='277ee7', v='0') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='8604', h='3dc1a8de') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='21.043') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e08', v='20.051') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c32', v='19.818') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a3c', v='19.554') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3835', v='18.951') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4645', v='18.853') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5455', v='22.398') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6265', v='24.492') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7075', v='29.206') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e85', v='35.063') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c96', v='35.07') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aa5', v='33.585') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8b6', v='30.77') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6c5', v='29.141') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4d7', v='0.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d30b', v='0.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0f6', v='0.06') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef06', v='0.059') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd17', v='0.06') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b27', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11937', v='0.063') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12746', v='0.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13556', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14366', v='0.066') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15181', v='0.07') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f85', v='0.064') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d95', v='0.065') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ba4', v='0.064') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189b5', v='0.063') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197c4', v='0.064') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5d5', v='0.066') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b3e6', v='0.067') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c1f6', v='0.066') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d005', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de15', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec25', v='0.063') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa36', v='0.066') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20845', v='0.066') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21656', v='0.066') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22465', v='0.064') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23276', v='0.063') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24086', v='0.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e99', v='0.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25ca7', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ab7', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='278c6', v='0.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='286d6', v='0.063') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='294e6', v='0.066') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a301', v='0.067') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2b105', v='0.06') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2bf15', v='0.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2cd25', v='0.063') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2db35', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2e946', v='0.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2f755', v='0.058') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='30566', v='0.066') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='31375', v='0.064') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3219e', v='0.066') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='32f96', v='0.063') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='33da6', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='34bb6', v='0.063') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='359de', v='0.064') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='367d6', v='0.064') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='375e6', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3840e', v='0.059') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3921e', v='0.06') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3a016', v='0.06') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ae27', v='0.063') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3bc36', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ca47', v='0.059') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3d856', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3e667', v='0.064') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3f481', v='0.068') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='40285', v='0.065') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41095', v='0.066') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41ea5', v='0.065') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='42cb5', v='0.066') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='43ac5', v='0.064') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='448d5', v='0.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='456e6', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='464f5', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='480ff', v='0.058') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='48f0e', v='0.056') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='49d1d', v='0.057') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ab46', v='0.056') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4b955', v='0.057') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4c769', v='0.055') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4d577', v='0.057') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4e387', v='0.057') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4f196', v='0.057') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ffa6', v='0.058') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='50dd0', v='0.06') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='51bc6', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='529d6', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='537e7', v='0.065') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='54600', v='0.067') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55406', v='0.065') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='56215', v='0.065') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57026', v='0.065') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57e36', v='0.064') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='58c46', v='0.063') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='59a70', v='0.063') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5a867', v='0.06') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5b676', v='0.06') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5c487', v='0.056') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5d296', v='0.058') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5e0a9', v='0.06') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5eeb8', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5fcc6', v='0.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='60ad7', v='0.057') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='618e7', v='0.057') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='626f7', v='0.059') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='63507', v='0.059') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='64317', v='0.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65127', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65f37', v='0.063') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='66d46', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='67b57', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='68967', v='0.065') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='69782', v='0.065') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6a586', v='0.064') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6b395', v='0.065') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6c1a6', v='0.066') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6cfb5', v='0.064') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ddc6', v='0.063') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ebd6', v='0.059') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6f9e6', v='0.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='707f6', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='71607', v='0.059') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='72417', v='0.058') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='73227', v='0.056') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74037', v='0.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74e47', v='0.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='75c57', v='0.058') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='76a63', v='0.058') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='77873', v='0.058') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='78680', v='0.058') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7948f', v='0.058') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7a29f', v='0.06') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7b0af', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7bebf', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7cccf', v='0.064') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7dadf', v='0.065') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e8fa', v='0.065') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f70a', v='0.067') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8051a', v='0.067') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8132a', v='0.066') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8213a', v='0.066') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='82f4a', v='0.067') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='83d5a', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='84b6a', v='0.06') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8597a', v='0.059') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8678b', v='0.059') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8759b', v='0.057') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='883ac', v='0.06') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='891bb', v='0.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='89fca', v='0.06') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8adda', v='0.059') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8bbeb', v='0.059') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c9fc', v='0.058') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8d80b', v='0.058') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8e61a', v='0.059') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8f42a', v='0.06') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9023a', v='0.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9104a', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='91e5a', v='0.06') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='92c6a', v='0.063') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='93a84', v='0.067') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='94885', v='0.064') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='95694', v='0.064') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='964a5', v='0.065') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='972b4', v='0.064') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='980c5', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='98ed4', v='0.065') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='99ce5', v='0.064') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aaf5', v='0.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9b906', v='0.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9c716', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9d526', v='0.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9e336', v='0.063') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9f145', v='0.063') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9ff56', v='0.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a0d65', v='0.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a1b77', v='30.22') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a2986', v='16.054') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a3795', v='10.22') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a45a7', v='3.839') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a53b6', v='3.301') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a61c7', v='4.19') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a6fd6', v='2.002') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a7e00', v='4.911') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8c00', v='7.897') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a05', v='2.934') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aa815', v='1.487') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ab625', v='2.196') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ac435', v='1.679') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ad245', v='5.984') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ae055', v='10.661') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aee65', v='3.653') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='afc75', v='7.252') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b0a85', v='19.708') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b26a6', v='21.128') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b34b6', v='18.358') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b42c6', v='3.456') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b50d6', v='4.916') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b5ee7', v='7.337') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6cf6', v='7.205') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b7b07', v='9.191') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b8917', v='8.027') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b9728', v='7.688') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ba537', v='8.667') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bb347', v='7.734') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bc157', v='5.148') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bcf67', v='5.081') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bdd81', v='18.433') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='beb86', v='4.676') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bf995', v='3.97') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c07a6', v='2.247') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c15b5', v='2.519') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c23c6', v='4.784') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c31d5', v='10.406') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c3fe6', v='5.863') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4df5', v='9.668') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c5c06', v='5.194') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c6a16', v='5.35') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c7826', v='7.745') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c8636', v='3.651') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c9446', v='4.236') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ca256', v='3.281') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cb066', v='5.657') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cbe76', v='2.249') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ccc87', v='12.004') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cda96', v='15.833') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ce8a8', v='11.981') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cf6b7', v='15.145') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d04c8', v='12.386') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d12d7', v='8.53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d20e7', v='1.474') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d2f02', v='7.441') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d3d05', v='4.262') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b15', v='3.805') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d5926', v='3.752') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d6735', v='5.538') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d7546', v='9.524') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d8355', v='1.988') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9166', v='4.159') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9f75', v='9.621') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dad87', v='17.704') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dbb97', v='19.171') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dc9a8', v='19.252') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dd7b7', v='14.961') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='de5c6', v='12.816') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='df3d7', v='13.113') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e01d7', v='13.435') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0fe5', v='13.283') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e1df5', v='13.989') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e2c04', v='18.098') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e3a14', v='17.742') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e4824', v='15.229') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e5634', v='15.263') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e6444', v='11.968') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e7255', v='9.893') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e806f', v='7.997') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e8e7f', v='13.888') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e9c8e', v='6.336') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eaa9f', v='5.634') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eb8ae', v='7.369') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ec6bf', v='14.276') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ed4ce', v='9.674') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ee2df', v='12.81') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef0ef', v='14.985') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eff01', v='21.531') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f0d10', v='21.038') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f1b20', v='22.908') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f2930', v='20.891') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f3740', v='22.234') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f4551', v='22.517') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f5361', v='24.172') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6172', v='23.008') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6f80', v='23.475') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f7d91', v='22.059') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f8ba1', v='18.671') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f99b1', v='18.447') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fa7c0', v='15.862') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fb5d1', v='16.38') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fc3e0', v='15.165') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd1fb', v='12.335') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fe00b', v='12.283') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee1c', v='8.941') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ffc2c', v='8.837') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='100a3b', v='8.793') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10184c', v='10.043') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10265b', v='13.932') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10346c', v='15.974') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10427b', v='19.167') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10508d', v='22.237') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='105e9d', v='21.533') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='106cad', v='23.309') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='107abd', v='20.333') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1088cd', v='18.556') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1096de', v='20.163') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10a4ed', v='19.978') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b2fe', v='21.155') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10c10d', v='23.964') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10cf1e', v='21.874') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10dd2e', v='19.591') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10eb66', v='20.234') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10f94e', v='17.32') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11075e', v='16.556') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11156d', v='13.217') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='112388', v='12.271') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113187', v='8.967') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113fb0', v='8.319') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='114da6', v='8.357') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='115bb6', v='8.49') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1169c6', v='10.458') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1177d6', v='13.998') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1185e8', v='15.461') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1193f7', v='18.331') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11a208', v='22.284') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11b017', v='19.151') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11be2f', v='23.464') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11cc37', v='20.211') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11da47', v='19.83') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11e857', v='20.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11f667', v='18.042') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='120578', v='0.018') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='121386', v='0.02') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122196', v='0.02') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122fa6', v='0.017') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='123db5', v='0.015') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='124bc5', v='0.014') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1259d5', v='0.011') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1267e4', v='0.01') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='127600', v='0.009') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='128305', v='0.008') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129115', v='0.008') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129f25', v='0.008') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12ad35', v='0.007') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12bb45', v='0.007') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12c954', v='0.01') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12d766', v='0.011') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12e575', v='0.016') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12f386', v='0.013') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130196', v='0.019') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130fa6', v='0.014') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='131db7', v='0.015') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='132bc5', v='0.015') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1339d4', v='0.269') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1347e5', v='0.124') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1355f4', v='0.16') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='136404', v='0.227') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='137214', v='0.243') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138024', v='0.236') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138e33', v='0.239') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='139c44', v='0.074') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13aa54', v='0.086') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13b865', v='0.031') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13c67e', v='0.412') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13d48e', v='0.199') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13e29e', v='0.15') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13f0ae', v='0.14') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13febf', v='0.218') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='140ccf', v='0.309') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='141adf', v='0.206') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1428ef', v='0.032') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1436ff', v='0.065') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14450f', v='0.054') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14531f', v='0.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146130', v='0.025') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146f40', v='0.09') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='147d44', v='0.03') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='148b57', v='0.038') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='149965', v='0.026') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14a775', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14b584', v='0.086') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14c397', v='0.251') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14d1a4', v='0.225') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14dfb6', v='0.193') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14edc5', v='0.103') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14fbd5', v='0.044') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1509e5', v='0.023') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1517ff', v='0.068') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='152605', v='0.157') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153415', v='0.105') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='154225', v='0.097') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155035', v='0.127') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155e45', v='0.189') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='156c55', v='0.281') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='157a65', v='0.162') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='158875', v='0.15') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='159686', v='0.246') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15a495', v='0.211') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15b2a6', v='0.188') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15c0b6', v='0.105') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15cec6', v='0.092') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15dcd5', v='0.099') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15eae6', v='0.112') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f8f5', v='0.29') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='160706', v='0.06') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='161517', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='162326', v='0.072') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163137', v='0.064') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163f46', v='0.101') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='164d57', v='0.045') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='165b67', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='166982', v='0.057') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='167786', v='0.07') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='168596', v='0.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1693a6', v='0.029') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16a1b5', v='0.026') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16afc6', v='0.075') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16bdd5', v='0.178') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16cbe6', v='0.221') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d9f6', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16e807', v='0.578') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16f616', v='0.633') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='170429', v='0.678') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='171236', v='0.456') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172047', v='0.461') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172e57', v='0.475') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='173c67', v='0.487') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='174a77', v='0.565') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='175887', v='0.597') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='176694', v='34.372') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1774a3', v='33.056') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1782b3', v='34.198') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1790c5', v='31.148') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='179ed4', v='26.734') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ace4', v='26.883') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17bafd', v='28.046') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17c90f', v='25.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d71e', v='24.826') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17e52f', v='25.129') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17f33f', v='22.979') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18014f', v='22.968') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='180f5f', v='28.04') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='181d6e', v='30.608') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='182b7f', v='35.156') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18398f', v='61.079') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1847a1', v='61.118') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1855af', v='58.214') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1863c0', v='54.149') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1871cf', v='56.141') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='187fe0', v='53.757') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='188def', v='57.188') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189c00', v='53.596') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18b80d', v='36.269') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18c61c', v='36.626') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18d42c', v='35.102') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18e23b', v='29.855') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18f04b', v='28.307') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18fe5e', v='25.364') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='190c76', v='19.996') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='191a86', v='19.748') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='192896', v='19.345') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1936a6', v='18.873') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1944b7', v='18.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1952c6', v='20.032') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1960d7', v='25.137') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='196ee6', v='27.508') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197cf8', v='29.449') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='198b0f', v='27.372') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19991f', v='30.562') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19b541', v='29.963') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19c34d', v='28.336') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19d15e', v='28.102') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19df80', v='28.864') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19ed90', v='28.278') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19eebe', v='28.399') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19fb8e', v='11.016') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a09a0', v='14.155') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a17ae', v='19.132') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a25be', v='20.28') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a33cd', v='11.28') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a41dd', v='12.25') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a4fed', v='16.561') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5e08', v='15.15') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a6c05', v='9.953') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a7a15', v='12.732') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a8826', v='12.958') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9637', v='9.685') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aa445', v='6.805') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ab255', v='4.559') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ac065', v='10.632') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ace75', v='14.64') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1adc87', v='14.182') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aea96', v='13.717') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1af8a7', v='15.071') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b06b7', v='13.236') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b14c6', v='12.746') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='3.999') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c8270', v='2.186') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c907e', v='16.585') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c9e8f', v='14.378') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1caca2', v='16.041') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cbab1', v='15.799') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cc8c1', v='29.25') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cd6d0', v='27.621') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ce4de', v='25.453') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cf2f0', v='24.369') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0109', v='25.348') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0f06', v='28.687') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d1d15', v='28.373') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d2b25', v='28.801') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d3935', v='30.045') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d4745', v='30.644') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d5555', v='30.354') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d6366', v='24.933') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7175', v='23.813') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7f86', v='23.818') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d8d95', v='15.153') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d9ba6', v='16.69') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1da9b6', v='16.385') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1db7c7', v='15.643') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dc5d5', v='16.269') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dd3e6', v='16.689') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de1f5', v='27.897') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1df006', v='31.449') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dfe16', v='31.232') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e0c26', v='32.001') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e1a36', v='31.999') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e2847', v='30.669') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e3659', v='29.185') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e4467', v='27.199') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e5281', v='23.798') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6086', v='23.566') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6e96', v='23.035') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e7ca6', v='8.573') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e8ab5', v='7.913') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e98c6', v='7.851') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ea6d5', v='9.845') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eb4e6', v='10.177') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec2f6', v='11.732') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ed106', v='11.554') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1edf16', v='12.067') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eed26', v='11.725') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1efb36', v='11.465') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f0946', v='10.851') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1756', v='10.928') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f2566', v='10.984') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f3376', v='13.626') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4187', v='19.399') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4f96', v='16.326') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f5da7', v='15.848') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f6bb6', v='15.785') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f79c7', v='14.319') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f87d6', v='15.77') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f95e7', v='16.295') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa401', v='13.382') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fb204', v='11.752') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fc016', v='11.694') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fce25', v='9.24') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fdc35', v='8.969') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fea45', v='9.42') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ff855', v='11.299') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='200665', v='18.06') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='201475', v='15.989') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='202286', v='23.363') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203095', v='26.071') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203ea5', v='29.283') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='204cb6', v='25.856') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='205ac6', v='25.235') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2068d6', v='26.405') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2076e6', v='30.076') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2084f6', v='28.433') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='209306', v='30.271') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20a116', v='28.557') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20af26', v='24.542') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20bd37', v='23.962') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20cb46', v='21.242') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20d957', v='19.633') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20e767', v='18.009') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20f581', v='17.798') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='210386', v='15.304') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211194', v='13.453') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211fa5', v='13.055') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='212db5', v='12.872') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='213bc5', v='13.544') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2149d6', v='17.25') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2157e5', v='21.046') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2165f6', v='25.832') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='217406', v='27.791') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='218217', v='28.054') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219026', v='27.63') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219e39', v='28.457') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ac46', v='27.725') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba57', v='27.922') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21c867', v='28.25') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21d677', v='27.539') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21e487', v='26.251') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21f296', v='25.947') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2200a6', v='24.671') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='220eb7', v='24.383') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='221cc6', v='22.742') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='222ad7', v='17.742') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2238e7', v='16.117') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='224701', v='14.548') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='225505', v='18.418') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='226315', v='10.147') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227125', v='10.648') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227f35', v='13.062') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='228d45', v='17.082') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='229b54', v='15.723') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22a965', v='17.627') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22b776', v='21.083') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22c586', v='24.293') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22d397', v='26.823') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22e1a6', v='27.04') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22efb6', v='22.091') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22fdc7', v='21.514') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='230bd7', v='20.922') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2319e6', v='25.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2327f6', v='25.959') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23361b', v='27.644') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='234416', v='25.578') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='235226', v='24.199') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236037', v='23.83') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236e46', v='22.719') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='237c57', v='20.952') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='238a66', v='18.382') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='239881', v='14.928') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23a685', v='14.859') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23b495', v='14.081') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23c2a4', v='13.309') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23d0b5', v='13.726') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23dec4', v='15.071') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23ecd5', v='17.064') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23fae4', v='20.612') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2408f6', v='24.891') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='241706', v='32.942') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='242518', v='34.247') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='243325', v='34.787') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244137', v='31.176') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244f46', v='29.806') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b66', v='30.569') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='247976', v='29.175') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='248786', v='34.921') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24957e', v='28.767') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24a38f', v='25.797') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24b19c', v='26.161') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24bfac', v='24.769') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24cdbc', v='24.053') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24dbcd', v='20.28') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e9e5', v='18.22') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24f808', v='15.345') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='250616', v='15.953') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='251426', v='15.884') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='252236', v='15.054') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253047', v='16.014') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253e56', v='19.574') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='254c67', v='20.065') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='255a76', v='23.936') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='256887', v='29.274') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='257697', v='31.691') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2584a8', v='75.154') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2592b6', v='41.458') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25a0c7', v='21.221') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25aed7', v='29.417') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25bce7', v='28.597') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25caf8', v='27.256') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25d907', v='28.925') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25e718', v='29.38') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25f527', v='26.559') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='260338', v='25.234') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261149', v='23.312') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261f59', v='21.317') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='262d68', v='20.761') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='263b83', v='16.36') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='264986', v='15.657') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='265795', v='16.618') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2665a6', v='17.888') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2673b5', v='16.861') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2681c6', v='16.617') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='268fd5', v='17.428') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='269de6', v='18.225') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26abf6', v='18.415') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ba06', v='22.126') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26c817', v='22.126') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26d62b', v='25.782') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26e436', v='22.774') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26f247', v='22.774') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270057', v='22.909') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e67', v='23.139') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='271c77', v='21.553') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='272a87', v='23.539') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='273897', v='23.139') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2746a8', v='22.735') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2754b9', v='22.335') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2762c7', v='23.205') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2770d8', v='18.238') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='277ee7', v='14.136') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='9812', h='3dc1a8de') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='114.081') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e08', v='117.19') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c32', v='118.964') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a3c', v='120.564') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3835', v='118.747') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4645', v='116.529') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5455', v='109.384') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6265', v='121.356') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7075', v='119.014') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e85', v='116.226') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c96', v='120.175') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aa5', v='120.949') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8b6', v='124.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6c5', v='124.043') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4d7', v='117.761') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d30b', v='118.092') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0f6', v='118.354') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef06', v='118.633') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd17', v='118.494') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b27', v='121.243') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11937', v='122.278') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12746', v='119.689') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13556', v='121.165') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14366', v='125.688') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15181', v='127.517') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f85', v='119.508') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d95', v='121.27') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ba4', v='121.262') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189b5', v='120.595') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197c4', v='118.725') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5d5', v='126.913') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b3e6', v='125.984') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c1f6', v='124.971') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d005', v='121.722') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de15', v='122.233') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec25', v='122.836') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa36', v='124.125') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20845', v='125.105') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21656', v='125.266') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22465', v='125.381') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23276', v='123.688') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24086', v='119.437') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e99', v='119.167') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25ca7', v='120.334') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ab7', v='119.837') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='278c6', v='120.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='286d6', v='122.074') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='294e6', v='125.542') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a301', v='125.638') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2b105', v='117.398') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2bf15', v='118.807') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2cd25', v='119.644') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2db35', v='119.674') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2e946', v='117.549') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2f755', v='113.229') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='30566', v='125.153') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='31375', v='124.691') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3219e', v='123.556') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='32f96', v='123.231') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='33da6', v='123.404') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='34bb6', v='123.932') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='359de', v='123.328') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='367d6', v='122.641') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='375e6', v='121.544') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3840e', v='118.209') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3921e', v='118.675') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3a016', v='118.325') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ae27', v='121.893') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3bc36', v='120.711') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ca47', v='119.854') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3d856', v='120.165') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3e667', v='122.996') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3f481', v='126.557') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='40285', v='124.061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41095', v='124.874') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41ea5', v='125.244') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='42cb5', v='125.083') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='43ac5', v='123.182') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='448d5', v='119.311') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='456e6', v='122.524') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='464f5', v='121.173') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='480ff', v='118.696') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='48f0e', v='117.559') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='49d1d', v='118.947') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ab46', v='118.797') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4b955', v='117.048') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4c769', v='116.182') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4d577', v='119.101') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4e387', v='119.152') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4f196', v='116.814') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ffa6', v='118.943') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='50dd0', v='120.844') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='51bc6', v='119.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='529d6', v='120.802') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='537e7', v='123.095') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='54600', v='125.922') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55406', v='122.082') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='56215', v='123.001') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57026', v='123.033') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57e36', v='122.972') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='58c46', v='120.717') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='59a70', v='121.599') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5a867', v='120.977') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5b676', v='119.038') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5c487', v='115.798') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5d296', v='119.913') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5e0a9', v='120.284') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5eeb8', v='119.451') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5fcc6', v='118.325') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='60ad7', v='117.111') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='618e7', v='117.263') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='626f7', v='120.147') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='63507', v='117.534') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='64317', v='118.902') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65127', v='120.099') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65f37', v='121.434') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='66d46', v='121.986') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='67b57', v='120.683') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='68967', v='122.861') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='69782', v='119.35') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6a586', v='120.845') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6b395', v='122.119') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6c1a6', v='122.506') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6cfb5', v='121.462') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ddc6', v='118.909') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ebd6', v='116.372') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6f9e6', v='121.311') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='707f6', v='119.412') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='71607', v='118.281') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='72417', v='118.148') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='73227', v='117.811') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74037', v='121.694') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74e47', v='120.755') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='75c57', v='118.651') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='76a63', v='118.08') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='77873', v='118.282') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='78680', v='113.911') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7948f', v='116.941') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7a29f', v='119.508') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7b0af', v='119.071') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7bebf', v='121.146') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7cccf', v='121.336') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7dadf', v='122.095') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e8fa', v='121.785') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f70a', v='124.065') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8051a', v='125.455') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8132a', v='126.011') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8213a', v='125.018') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='82f4a', v='122.741') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='83d5a', v='120.26') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='84b6a', v='118.856') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8597a', v='118.817') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8678b', v='117.807') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8759b', v='117.444') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='883ac', v='119.967') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='891bb', v='121.141') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='89fca', v='120.259') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8adda', v='118.558') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8bbeb', v='118.812') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c9fc', v='118.633') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8d80b', v='118.948') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8e61a', v='117.315') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8f42a', v='118.146') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9023a', v='120.121') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9104a', v='120.561') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='91e5a', v='118.638') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='92c6a', v='122.844') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='93a84', v='125.153') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='94885', v='123.463') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='95694', v='122.793') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='964a5', v='123.093') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='972b4', v='122.535') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='980c5', v='120.189') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='98ed4', v='123.097') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='99ce5', v='119.336') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aaf5', v='118.5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9b906', v='115.743') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9c716', v='119.722') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9d526', v='120.222') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9e336', v='118.918') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9f145', v='117.551') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9ff56', v='116.649') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a0d65', v='116.52') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a1b77', v='116.703') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a2986', v='118.806') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a3795', v='118.461') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a45a7', v='119.593') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a53b6', v='119.78') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a61c7', v='119.973') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a6fd6', v='120.761') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a7e00', v='122.782') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8c00', v='125.444') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a05', v='118.255') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aa815', v='119.302') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ab625', v='120.149') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ac435', v='119.678') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ad245', v='117.138') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ae055', v='114.681') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aee65', v='120.851') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='afc75', v='119.099') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b0a85', v='116.609') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b26a6', v='116.729') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b34b6', v='118.045') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b42c6', v='115.477') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b50d6', v='115.891') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b5ee7', v='114.24') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6cf6', v='122.794') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b7b07', v='119.002') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b8917', v='118.701') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b9728', v='119.602') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ba537', v='120.963') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bb347', v='119.924') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bc157', v='120.628') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bcf67', v='123.122') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bdd81', v='118.683') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='beb86', v='118.301') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bf995', v='118.882') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c07a6', v='120.187') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c15b5', v='119.576') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c23c6', v='118.243') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c31d5', v='115.692') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c3fe6', v='117.56') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4df5', v='116.057') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c5c06', v='117.411') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c6a16', v='117.486') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c7826', v='116.745') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c8636', v='118.265') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c9446', v='118.202') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ca256', v='118.004') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cb066', v='117.255') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cbe76', v='122.71') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ccc87', v='118.736') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cda96', v='116.734') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ce8a8', v='118.339') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cf6b7', v='118.66') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d04c8', v='119.703') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d12d7', v='121.536') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d20e7', v='123.419') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d2f02', v='126.186') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d3d05', v='119.31') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b15', v='120.58') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d5926', v='120.857') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d6735', v='119.582') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d7546', v='117.426') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d8355', v='124.349') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9166', v='122.435') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9f75', v='120.692') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dad87', v='117.233') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dbb97', v='116.862') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dc9a8', v='116.728') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dd7b7', v='118.212') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='de5c6', v='117.857') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='df3d7', v='117.176') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e01d7', v='117.271') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0fe5', v='116.796') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e1df5', v='117.361') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e2c04', v='119.769') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e3a14', v='121.05') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e4824', v='120.921') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e5634', v='122.497') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e6444', v='120.677') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e7255', v='122.67') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e806f', v='123.778') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e8e7f', v='116.655') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e9c8e', v='118.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eaa9f', v='118.372') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eb8ae', v='117.527') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ec6bf', v='113.518') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ed4ce', v='123.496') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ee2df', v='120.611') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef0ef', v='118.704') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eff01', v='115.651') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f0d10', v='117.487') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f1b20', v='117.186') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f2930', v='121.114') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f3740', v='117.611') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f4551', v='117.892') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f5361', v='117.718') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6172', v='117.584') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6f80', v='117.38') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f7d91', v='119.222') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f8ba1', v='121.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f99b1', v='120.221') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fa7c0', v='118.379') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fb5d1', v='118.238') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fc3e0', v='123.037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd1fb', v='123.007') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fe00b', v='126.294') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee1c', v='123.682') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ffc2c', v='123.591') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='100a3b', v='122.918') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10184c', v='121.387') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10265b', v='117.586') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10346c', v='117.716') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10427b', v='119.191') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10508d', v='117.355') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='105e9d', v='117.862') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='106cad', v='117.531') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='107abd', v='119.886') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1088cd', v='119.426') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1096de', v='118.72') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10a4ed', v='119.004') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b2fe', v='118.725') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10c10d', v='116.196') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10cf1e', v='118.111') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10dd2e', v='119.001') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10eb66', v='120.963') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10f94e', v='121.34') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11075e', v='119.151') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11156d', v='120.797') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='112388', v='123.519') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113187', v='122.366') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113fb0', v='123.381') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='114da6', v='123.296') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='115bb6', v='123.047') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1169c6', v='120.874') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1177d6', v='118.017') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1185e8', v='118.388') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1193f7', v='117.753') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11a208', v='119.761') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11b017', v='121.547') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11be2f', v='122.028') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11cc37', v='122.195') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11da47', v='121.783') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11e857', v='120.581') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11f667', v='121.685') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='120578', v='120.972') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='121386', v='116.836') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122196', v='117.633') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122fa6', v='118.83') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='123db5', v='120.746') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='124bc5', v='122.541') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1259d5', v='120.249') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1267e4', v='122.708') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='127600', v='124.538') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='128305', v='125.289') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129115', v='125.325') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129f25', v='125.49') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12ad35', v='124.672') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12bb45', v='122.813') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12c954', v='121.573') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12d766', v='120.719') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12e575', v='119.706') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12f386', v='116.935') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130196', v='117.255') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130fa6', v='118.365') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='131db7', v='119.829') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='132bc5', v='119.607') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1339d4', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1347e5', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1355f4', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='136404', v='0.106') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='137214', v='0.106') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138024', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138e33', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='139c44', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13aa54', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13b865', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13c67e', v='0.101') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13d48e', v='0.104') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13e29e', v='0.106') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13f0ae', v='0.106') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13febf', v='0.104') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='140ccf', v='0.102') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='141adf', v='0.104') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1428ef', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1436ff', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14450f', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14531f', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146130', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146f40', v='0.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='147d44', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='148b57', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='149965', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14a775', v='0.106') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14b584', v='0.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14c397', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14d1a4', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14dfb6', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14edc5', v='0.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14fbd5', v='0.112') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1509e5', v='0.112') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1517ff', v='0.115') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='152605', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153415', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='154225', v='0.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155035', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155e45', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='156c55', v='0.104') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='157a65', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='158875', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='159686', v='0.106') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15a495', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15b2a6', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15c0b6', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15cec6', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15dcd5', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15eae6', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f8f5', v='0.104') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='160706', v='0.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='161517', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='162326', v='0.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163137', v='0.111') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163f46', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='164d57', v='0.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='165b67', v='0.112') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='166982', v='0.111') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='167786', v='0.112') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='168596', v='0.113') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1693a6', v='0.113') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16a1b5', v='0.112') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16afc6', v='0.111') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16bdd5', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16cbe6', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d9f6', v='0.111') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16e807', v='0.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16f616', v='0.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='170429', v='0.111') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='171236', v='0.112') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172047', v='0.112') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172e57', v='0.111') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='173c67', v='0.111') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='174a77', v='0.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='175887', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='176694', v='118.351') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1774a3', v='119.763') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1782b3', v='120.872') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1790c5', v='121.443') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='179ed4', v='124.587') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ace4', v='127.119') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17bafd', v='128.887') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17c90f', v='127.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d71e', v='127.1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17e52f', v='127.35') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17f33f', v='126.552') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18014f', v='124.71') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='180f5f', v='124.077') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='181d6e', v='125.099') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='182b7f', v='125.025') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18398f', v='123.954') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1847a1', v='123.641') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1855af', v='124.308') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1863c0', v='126.201') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1871cf', v='125.426') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='187fe0', v='125.045') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='188def', v='124.868') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189c00', v='123.854') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18b80d', v='117.177') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18c61c', v='120.985') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18d42c', v='121.689') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18e23b', v='121.514') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18f04b', v='123.76') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18fe5e', v='125.848') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='190c76', v='123.162') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='191a86', v='124.87') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='192896', v='126.457') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1936a6', v='126.565') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1944b7', v='125.821') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1952c6', v='123.654') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1960d7', v='120.985') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='196ee6', v='121.019') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197cf8', v='120.771') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='198b0f', v='120.139') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19991f', v='120.067') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19b541', v='122.459') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19c34d', v='121.603') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19d15e', v='120.856') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19df80', v='120.882') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19ed90', v='120.049') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19eebe', v='119.903') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19fb8e', v='116.012') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a09a0', v='119.283') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a17ae', v='120.303') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a25be', v='121.728') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a33cd', v='121.516') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a41dd', v='122.849') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a4fed', v='126.093') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5e08', v='126.725') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a6c05', v='124.883') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a7a15', v='125.931') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a8826', v='126.096') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9637', v='124.906') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aa445', v='123.654') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ab255', v='121.493') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ac065', v='123.897') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ace75', v='123.756') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1adc87', v='122.369') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aea96', v='121.934') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1af8a7', v='122.306') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b06b7', v='124.041') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b14c6', v='123.698') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='120.029') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c8270', v='120.033') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c907e', v='119.314') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c9e8f', v='120.479') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1caca2', v='121.91') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cbab1', v='122.485') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cc8c1', v='118.564') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cd6d0', v='119.367') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ce4de', v='120.808') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cf2f0', v='123.105') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0109', v='125.021') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0f06', v='123.274') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d1d15', v='123.92') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d2b25', v='123.876') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d3935', v='122.883') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d4745', v='122.072') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d5555', v='121.544') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d6366', v='123.27') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7175', v='123.513') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7f86', v='122.604') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d8d95', v='121.281') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d9ba6', v='121.716') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1da9b6', v='122.714') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1db7c7', v='123.129') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dc5d5', v='123.431') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dd3e6', v='122.987') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de1f5', v='119.262') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1df006', v='118.087') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dfe16', v='116.532') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e0c26', v='118.618') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e1a36', v='119.706') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e2847', v='120.899') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e3659', v='120.718') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e4467', v='121.624') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e5281', v='117.925') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6086', v='120.928') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6e96', v='122.34') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e7ca6', v='122.972') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e8ab5', v='123.05') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e98c6', v='122.44') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ea6d5', v='120.735') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eb4e6', v='120.711') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec2f6', v='123.688') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ed106', v='122.853') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1edf16', v='122.754') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eed26', v='122.975') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1efb36', v='123.49') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f0946', v='123.278') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1756', v='121.776') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f2566', v='121.458') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f3376', v='120.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4187', v='116.832') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4f96', v='119.948') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f5da7', v='120.022') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f6bb6', v='120.884') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f79c7', v='119.618') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f87d6', v='122.811') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f95e7', v='123.997') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa401', v='126.654') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fb204', v='125.574') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fc016', v='126.495') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fce25', v='126.021') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fdc35', v='125.521') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fea45', v='123.104') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ff855', v='121.073') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='200665', v='117.997') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='201475', v='119.376') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='202286', v='119.302') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203095', v='120.24') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203ea5', v='120.497') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='204cb6', v='123.276') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='205ac6', v='121.287') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2068d6', v='120.492') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2076e6', v='119.643') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2084f6', v='117.626') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='209306', v='121.9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20a116', v='120.861') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20af26', v='120.493') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20bd37', v='121.526') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20cb46', v='119.46') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20d957', v='120.284') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20e767', v='121.713') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20f581', v='124.203') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='210386', v='126.587') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211194', v='124.627') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211fa5', v='124.526') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='212db5', v='123.821') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='213bc5', v='122.357') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2149d6', v='118.642') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2157e5', v='116.651') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2165f6', v='122.439') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='217406', v='120.232') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='218217', v='119.322') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219026', v='120.236') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219e39', v='120.346') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ac46', v='119.148') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba57', v='118.907') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21c867', v='117.874') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21d677', v='122.584') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21e487', v='120.252') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21f296', v='120.469') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2200a6', v='121.303') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='220eb7', v='122.183') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='221cc6', v='118.747') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='222ad7', v='120.81') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2238e7', v='123.937') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='224701', v='126.687') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='225505', v='119.553') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='226315', v='119.757') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227125', v='119.753') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227f35', v='117.557') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='228d45', v='116.262') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='229b54', v='122.469') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22a965', v='119.765') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22b776', v='119.78') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22c586', v='119.006') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22d397', v='118.696') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22e1a6', v='119.018') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22efb6', v='120.765') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22fdc7', v='120.41') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='230bd7', v='119.608') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2319e6', v='119.268') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2327f6', v='118.221') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23361b', v='119.234') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='234416', v='118.199') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='235226', v='119.524') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236037', v='120.76') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236e46', v='118.446') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='237c57', v='119.86') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='238a66', v='121.458') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='239881', v='120.937') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23a685', v='122.353') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23b495', v='123.085') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23c2a4', v='123.145') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23d0b5', v='122.277') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23dec4', v='121.153') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23ecd5', v='119.31') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23fae4', v='120.616') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2408f6', v='118.482') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='241706', v='117.789') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='242518', v='118.178') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='243325', v='118.65') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244137', v='119.893') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244f46', v='119.172') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b66', v='118.88') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='247976', v='118.03') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='248786', v='115.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24957e', v='118.091') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24a38f', v='119.601') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24b19c', v='120.844') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24bfac', v='120.094') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24cdbc', v='123.851') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24dbcd', v='123.499') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e9e5', v='124.806') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24f808', v='124.27') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='250616', v='124.985') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='251426', v='125.02') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='252236', v='123.483') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253047', v='122.436') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253e56', v='120.041') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='254c67', v='119.496') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='255a76', v='119.362') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='256887', v='117.767') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='257697', v='118.616') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2584a8', v='117.274') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2592b6', v='118.975') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25a0c7', v='119.79') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25aed7', v='119.331') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25bce7', v='119.194') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25caf8', v='118.637') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25d907', v='120.535') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25e718', v='119.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25f527', v='120.403') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='260338', v='121.054') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261149', v='119.413') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261f59', v='120.38') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='262d68', v='123.203') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='263b83', v='121.143') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='264986', v='122.976') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='265795', v='123.697') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2665a6', v='124.476') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2673b5', v='123.592') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2681c6', v='123.177') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='268fd5', v='121.853') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='269de6', v='121.298') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26abf6', v='120.593') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ba06', v='118.763') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26c817', v='118.278') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26d62b', v='118.596') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26e436', v='119.984') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26f247', v='119.523') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270057', v='119.574') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e67', v='119.013') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='271c77', v='119.722') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='272a87', v='120.875') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='273897', v='120.668') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2746a8', v='121.451') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2754b9', v='121.838') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2762c7', v='119.053') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2770d8', v='121.03') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='277ee7', v='123.544') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='9808', h='3dc1a8de') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e08', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c32', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a3c', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3835', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4645', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5455', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6265', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7075', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e85', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c96', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aa5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8b6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6c5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4d7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d30b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef06', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd17', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b27', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11937', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12746', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13556', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14366', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15181', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f85', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d95', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ba4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189b5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197c4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5d5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b3e6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c1f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d005', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de15', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec25', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa36', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20845', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21656', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22465', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23276', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24086', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e99', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25ca7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ab7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='278c6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='286d6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='294e6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a301', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2b105', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2bf15', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2cd25', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2db35', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2e946', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2f755', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='30566', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='31375', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3219e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='32f96', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='33da6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='34bb6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='359de', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='367d6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='375e6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3840e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3921e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3a016', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ae27', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3bc36', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ca47', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3d856', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3e667', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3f481', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='40285', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41095', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41ea5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='42cb5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='43ac5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='448d5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='456e6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='464f5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='480ff', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='48f0e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='49d1d', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ab46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4b955', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4c769', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4d577', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4e387', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4f196', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ffa6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='50dd0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='51bc6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='529d6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='537e7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='54600', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55406', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='56215', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57026', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57e36', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='58c46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='59a70', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5a867', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5b676', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5c487', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5d296', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5e0a9', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5eeb8', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5fcc6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='60ad7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='618e7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='626f7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='63507', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='64317', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65127', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65f37', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='66d46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='67b57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='68967', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='69782', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6a586', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6b395', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6c1a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6cfb5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ddc6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ebd6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6f9e6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='707f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='71607', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='72417', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='73227', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74037', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74e47', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='75c57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='76a63', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='77873', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='78680', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7948f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7a29f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7b0af', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7bebf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7cccf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7dadf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e8fa', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f70a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8051a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8132a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8213a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='82f4a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='83d5a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='84b6a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8597a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8678b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8759b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='883ac', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='891bb', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='89fca', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8adda', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8bbeb', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c9fc', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8d80b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8e61a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8f42a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9023a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9104a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='91e5a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='92c6a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='93a84', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='94885', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='95694', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='964a5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='972b4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='980c5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='98ed4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='99ce5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aaf5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9b906', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9c716', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9d526', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9e336', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9f145', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9ff56', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a0d65', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a1b77', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a2986', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a3795', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a45a7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a53b6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a61c7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a6fd6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a7e00', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8c00', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a05', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aa815', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ab625', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ac435', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ad245', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ae055', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aee65', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='afc75', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b0a85', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b26a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b34b6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b42c6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b50d6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b5ee7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6cf6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b7b07', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b8917', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b9728', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ba537', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bb347', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bc157', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bcf67', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bdd81', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='beb86', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bf995', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c07a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c15b5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c23c6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c31d5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c3fe6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4df5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c5c06', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c6a16', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c7826', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c8636', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c9446', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ca256', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cb066', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cbe76', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ccc87', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cda96', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ce8a8', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cf6b7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d04c8', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d12d7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d20e7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d2f02', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d3d05', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b15', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d5926', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d6735', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d7546', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d8355', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9166', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9f75', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dad87', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dbb97', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dc9a8', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dd7b7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='de5c6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='df3d7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e01d7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0fe5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e1df5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e2c04', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e3a14', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e4824', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e5634', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e6444', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e7255', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e806f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e8e7f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e9c8e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eaa9f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eb8ae', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ec6bf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ed4ce', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ee2df', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef0ef', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eff01', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f0d10', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f1b20', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f2930', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f3740', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f4551', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f5361', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6172', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6f80', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f7d91', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f8ba1', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f99b1', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fa7c0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fb5d1', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fc3e0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd1fb', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fe00b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee1c', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ffc2c', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='100a3b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10184c', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10265b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10346c', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10427b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10508d', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='105e9d', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='106cad', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='107abd', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1088cd', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1096de', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10a4ed', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b2fe', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10c10d', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10cf1e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10dd2e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10eb66', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10f94e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11075e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11156d', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='112388', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113187', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113fb0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='114da6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='115bb6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1169c6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1177d6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1185e8', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1193f7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11a208', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11b017', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11be2f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11cc37', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11da47', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11e857', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11f667', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='120578', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='121386', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122196', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122fa6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='123db5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='124bc5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1259d5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1267e4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='127600', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='128305', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129115', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129f25', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12ad35', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12bb45', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12c954', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12d766', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12e575', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12f386', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130196', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130fa6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='131db7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='132bc5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1339d4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1347e5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1355f4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='136404', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='137214', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138024', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138e33', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='139c44', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13aa54', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13b865', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13c67e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13d48e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13e29e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13f0ae', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13febf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='140ccf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='141adf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1428ef', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1436ff', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14450f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14531f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146130', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146f40', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='147d44', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='148b57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='149965', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14a775', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14b584', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14c397', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14d1a4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14dfb6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14edc5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14fbd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1509e5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1517ff', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='152605', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153415', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='154225', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155035', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155e45', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='156c55', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='157a65', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='158875', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='159686', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15a495', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15b2a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15c0b6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15cec6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15dcd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15eae6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f8f5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='160706', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='161517', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='162326', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163137', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163f46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='164d57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='165b67', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='166982', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='167786', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='168596', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1693a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16a1b5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16afc6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16bdd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16cbe6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d9f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16e807', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16f616', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='170429', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='171236', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172047', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172e57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='173c67', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='174a77', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='175887', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='176694', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1774a3', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1782b3', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1790c5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='179ed4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ace4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17bafd', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17c90f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d71e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17e52f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17f33f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18014f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='180f5f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='181d6e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='182b7f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18398f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1847a1', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1855af', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1863c0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1871cf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='187fe0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='188def', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189c00', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18b80d', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18c61c', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18d42c', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18e23b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18f04b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18fe5e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='190c76', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='191a86', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='192896', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1936a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1944b7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1952c6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1960d7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='196ee6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197cf8', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='198b0f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19991f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19b541', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19c34d', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19d15e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19df80', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19ed90', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19eebe', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19fb8e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a09a0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a17ae', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a25be', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a33cd', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a41dd', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a4fed', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5e08', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a6c05', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a7a15', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a8826', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9637', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aa445', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ab255', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ac065', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ace75', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1adc87', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aea96', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1af8a7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b06b7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b14c6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c8270', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c907e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c9e8f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1caca2', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cbab1', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cc8c1', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cd6d0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ce4de', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cf2f0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0109', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0f06', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d1d15', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d2b25', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d3935', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d4745', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d5555', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d6366', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7175', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7f86', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d8d95', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d9ba6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1da9b6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1db7c7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dc5d5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dd3e6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de1f5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1df006', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dfe16', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e0c26', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e1a36', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e2847', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e3659', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e4467', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e5281', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6086', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6e96', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e7ca6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e8ab5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e98c6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ea6d5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eb4e6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec2f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ed106', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1edf16', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eed26', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1efb36', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f0946', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1756', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f2566', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f3376', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4187', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4f96', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f5da7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f6bb6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f79c7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f87d6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f95e7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa401', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fb204', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fc016', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fce25', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fdc35', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fea45', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ff855', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='200665', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='201475', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='202286', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203095', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203ea5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='204cb6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='205ac6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2068d6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2076e6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2084f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='209306', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20a116', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20af26', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20bd37', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20cb46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20d957', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20e767', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20f581', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='210386', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211194', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211fa5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='212db5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='213bc5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2149d6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2157e5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2165f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='217406', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='218217', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219026', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219e39', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ac46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21c867', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21d677', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21e487', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21f296', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2200a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='220eb7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='221cc6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='222ad7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2238e7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='224701', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='225505', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='226315', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227125', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227f35', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='228d45', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='229b54', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22a965', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22b776', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22c586', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22d397', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22e1a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22efb6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22fdc7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='230bd7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2319e6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2327f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23361b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='234416', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='235226', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236037', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236e46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='237c57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='238a66', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='239881', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23a685', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23b495', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23c2a4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23d0b5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23dec4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23ecd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23fae4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2408f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='241706', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='242518', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='243325', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244137', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244f46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b66', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='247976', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='248786', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24957e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24a38f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24b19c', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24bfac', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24cdbc', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24dbcd', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e9e5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24f808', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='250616', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='251426', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='252236', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253047', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253e56', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='254c67', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='255a76', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='256887', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='257697', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2584a8', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2592b6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25a0c7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25aed7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25bce7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25caf8', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25d907', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25e718', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25f527', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='260338', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261149', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261f59', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='262d68', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='263b83', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='264986', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='265795', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2665a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2673b5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2681c6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='268fd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='269de6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26abf6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ba06', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26c817', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26d62b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26e436', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26f247', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270057', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e67', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='271c77', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='272a87', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='273897', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2746a8', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2754b9', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2762c7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2770d8', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='277ee7', v='0') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='9804', h='3dc1a8de') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='113.768') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e08', v='117.131') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c32', v='118.794') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a3c', v='120.362') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3835', v='118.504') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4645', v='116.275') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5455', v='109.258') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6265', v='121.127') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7075', v='118.849') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e85', v='116.093') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c96', v='120.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aa5', v='120.84') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8b6', v='124.045') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6c5', v='124.042') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4d7', v='117.713') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d30b', v='118.048') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0f6', v='118.051') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef06', v='118.259') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd17', v='118.054') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b27', v='120.844') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11937', v='121.925') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12746', v='119.353') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13556', v='120.867') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14366', v='125.48') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15181', v='127.434') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f85', v='119.069') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d95', v='120.904') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ba4', v='120.974') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189b5', v='120.25') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197c4', v='118.291') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5d5', v='126.573') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b3e6', v='125.637') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c1f6', v='124.668') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d005', v='121.393') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de15', v='121.998') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec25', v='122.555') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa36', v='123.941') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20845', v='124.746') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21656', v='125.085') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22465', v='125.143') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23276', v='123.315') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24086', v='119.026') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e99', v='118.683') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25ca7', v='119.815') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ab7', v='119.25') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='278c6', v='119.678') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='286d6', v='121.708') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='294e6', v='125.182') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a301', v='125.217') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2b105', v='117.12') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2bf15', v='118.489') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2cd25', v='119.338') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2db35', v='119.392') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2e946', v='117.277') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2f755', v='112.967') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='30566', v='124.775') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='31375', v='124.409') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3219e', v='123.268') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='32f96', v='122.956') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='33da6', v='123.032') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='34bb6', v='123.555') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='359de', v='123.004') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='367d6', v='122.125') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='375e6', v='121.078') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3840e', v='117.701') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3921e', v='118.101') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3a016', v='117.771') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ae27', v='121.393') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3bc36', v='120.16') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ca47', v='119.387') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3d856', v='119.887') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3e667', v='122.64') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3f481', v='125.954') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='40285', v='123.51') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41095', v='124.328') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41ea5', v='124.639') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='42cb5', v='124.448') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='43ac5', v='122.434') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='448d5', v='118.623') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='456e6', v='122.169') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='464f5', v='120.979') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='480ff', v='118.358') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='48f0e', v='117.271') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='49d1d', v='118.68') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ab46', v='118.562') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4b955', v='116.842') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4c769', v='115.913') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4d577', v='118.894') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4e387', v='118.59') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4f196', v='116.293') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ffa6', v='118.299') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='50dd0', v='120.233') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='51bc6', v='118.495') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='529d6', v='120.406') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='537e7', v='122.644') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='54600', v='125.528') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55406', v='121.746') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='56215', v='122.642') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57026', v='122.581') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57e36', v='122.623') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='58c46', v='120.431') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='59a70', v='121.329') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5a867', v='120.651') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5b676', v='118.876') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5c487', v='115.661') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5d296', v='119.835') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5e0a9', v='120.34') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5eeb8', v='119.439') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5fcc6', v='118.245') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='60ad7', v='117.004') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='618e7', v='117.165') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='626f7', v='119.95') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='63507', v='117.149') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='64317', v='118.541') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65127', v='119.822') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65f37', v='121.013') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='66d46', v='121.577') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='67b57', v='120.289') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='68967', v='122.62') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='69782', v='119.093') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6a586', v='120.493') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6b395', v='121.919') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6c1a6', v='122.218') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6cfb5', v='121.022') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ddc6', v='118.433') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ebd6', v='115.978') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6f9e6', v='120.971') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='707f6', v='119.234') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='71607', v='118.015') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='72417', v='117.922') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='73227', v='117.566') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74037', v='121.469') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74e47', v='120.514') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='75c57', v='118.485') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='76a63', v='117.889') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='77873', v='117.946') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='78680', v='113.611') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7948f', v='116.583') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7a29f', v='119.306') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7b0af', v='118.802') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7bebf', v='120.799') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7cccf', v='120.857') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7dadf', v='121.594') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e8fa', v='121.421') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f70a', v='123.74') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8051a', v='125.189') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8132a', v='125.673') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8213a', v='124.777') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='82f4a', v='122.432') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='83d5a', v='120.011') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='84b6a', v='118.622') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8597a', v='118.559') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8678b', v='117.524') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8759b', v='117.257') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='883ac', v='119.909') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='891bb', v='120.921') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='89fca', v='119.96') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8adda', v='118.481') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8bbeb', v='118.605') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c9fc', v='118.282') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8d80b', v='118.663') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8e61a', v='117.009') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8f42a', v='117.766') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9023a', v='119.722') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9104a', v='120.299') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='91e5a', v='118.366') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='92c6a', v='122.529') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='93a84', v='124.833') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='94885', v='123.06') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='95694', v='122.396') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='964a5', v='122.792') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='972b4', v='122.232') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='980c5', v='119.79') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='98ed4', v='122.86') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='99ce5', v='119.012') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aaf5', v='118.321') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9b906', v='115.456') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9c716', v='119.374') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9d526', v='120.344') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9e336', v='119.254') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9f145', v='117.83') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9ff56', v='117.001') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a0d65', v='116.782') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a1b77', v='116.803') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a2986', v='118.75') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a3795', v='118.358') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a45a7', v='119.493') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a53b6', v='119.698') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a61c7', v='119.908') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a6fd6', v='120.675') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a7e00', v='122.754') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8c00', v='125.385') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a05', v='118.214') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aa815', v='119.329') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ab625', v='120.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ac435', v='119.689') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ad245', v='117.12') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ae055', v='114.729') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aee65', v='120.871') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='afc75', v='119.177') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b0a85', v='116.699') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b26a6', v='116.768') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b34b6', v='118.075') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b42c6', v='115.571') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b50d6', v='115.867') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b5ee7', v='114.309') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6cf6', v='122.787') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b7b07', v='118.904') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b8917', v='118.531') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b9728', v='119.438') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ba537', v='120.908') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bb347', v='119.844') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bc157', v='120.575') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bcf67', v='123.212') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bdd81', v='118.712') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='beb86', v='118.316') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bf995', v='118.859') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c07a6', v='120.092') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c15b5', v='119.532') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c23c6', v='118.179') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c31d5', v='115.731') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c3fe6', v='117.671') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4df5', v='116.046') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c5c06', v='117.416') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c6a16', v='117.578') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c7826', v='116.758') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c8636', v='118.319') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c9446', v='118.355') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ca256', v='118.136') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cb066', v='117.225') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cbe76', v='122.659') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ccc87', v='118.547') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cda96', v='116.635') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ce8a8', v='118.105') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cf6b7', v='118.503') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d04c8', v='119.547') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d12d7', v='121.4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d20e7', v='123.396') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d2f02', v='126.068') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d3d05', v='119.33') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b15', v='120.524') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d5926', v='120.742') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d6735', v='119.548') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d7546', v='117.358') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d8355', v='124.267') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9166', v='122.388') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9f75', v='120.774') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dad87', v='117.345') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dbb97', v='116.698') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dc9a8', v='116.798') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dd7b7', v='118.219') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='de5c6', v='117.879') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='df3d7', v='117.287') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e01d7', v='117.42') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0fe5', v='116.798') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e1df5', v='117.184') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e2c04', v='119.665') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e3a14', v='121.033') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e4824', v='120.839') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e5634', v='122.456') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e6444', v='120.534') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e7255', v='122.766') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e806f', v='123.735') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e8e7f', v='116.654') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e9c8e', v='118.111') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eaa9f', v='118.441') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eb8ae', v='117.463') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ec6bf', v='113.549') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ed4ce', v='123.596') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ee2df', v='120.709') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef0ef', v='118.94') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eff01', v='116.002') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f0d10', v='117.741') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f1b20', v='117.49') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f2930', v='121.433') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f3740', v='117.735') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f4551', v='118.165') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f5361', v='117.839') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6172', v='117.685') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6f80', v='117.518') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f7d91', v='119.385') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f8ba1', v='121.202') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f99b1', v='120.254') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fa7c0', v='118.336') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fb5d1', v='118.267') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fc3e0', v='123.088') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd1fb', v='123.183') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fe00b', v='126.377') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee1c', v='123.772') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ffc2c', v='123.634') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='100a3b', v='123.008') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10184c', v='121.382') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10265b', v='117.696') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10346c', v='117.901') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10427b', v='119.404') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10508d', v='117.646') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='105e9d', v='118.147') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='106cad', v='117.802') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='107abd', v='120.151') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1088cd', v='119.733') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1096de', v='119.096') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10a4ed', v='119.291') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b2fe', v='118.973') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10c10d', v='116.336') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10cf1e', v='118.171') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10dd2e', v='119.082') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10eb66', v='120.953') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10f94e', v='121.41') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11075e', v='119.088') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11156d', v='120.941') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='112388', v='123.699') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113187', v='122.48') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113fb0', v='123.378') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='114da6', v='123.312') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='115bb6', v='123.217') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1169c6', v='120.961') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1177d6', v='118.076') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1185e8', v='118.573') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1193f7', v='117.978') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11a208', v='120.019') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11b017', v='121.662') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11be2f', v='122.268') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11cc37', v='122.317') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11da47', v='121.934') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11e857', v='120.776') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11f667', v='121.889') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='120578', v='121.064') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='121386', v='116.824') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122196', v='117.556') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122fa6', v='118.784') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='123db5', v='120.77') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='124bc5', v='122.565') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1259d5', v='120.263') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1267e4', v='122.729') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='127600', v='124.561') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='128305', v='125.237') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129115', v='125.344') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129f25', v='125.492') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12ad35', v='124.67') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12bb45', v='122.819') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12c954', v='121.713') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12d766', v='120.883') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12e575', v='119.85') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12f386', v='117.176') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130196', v='117.447') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130fa6', v='118.679') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='131db7', v='120.016') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='132bc5', v='119.959') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1339d4', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1347e5', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1355f4', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='136404', v='0.106') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='137214', v='0.106') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138024', v='0.106') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138e33', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='139c44', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13aa54', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13b865', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13c67e', v='0.101') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13d48e', v='0.104') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13e29e', v='0.106') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13f0ae', v='0.106') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13febf', v='0.104') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='140ccf', v='0.102') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='141adf', v='0.104') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1428ef', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1436ff', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14450f', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14531f', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146130', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146f40', v='0.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='147d44', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='148b57', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='149965', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14a775', v='0.106') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14b584', v='0.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14c397', v='0.106') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14d1a4', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14dfb6', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14edc5', v='0.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14fbd5', v='0.112') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1509e5', v='0.112') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1517ff', v='0.115') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='152605', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153415', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='154225', v='0.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155035', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155e45', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='156c55', v='0.104') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='157a65', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='158875', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='159686', v='0.106') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15a495', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15b2a6', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15c0b6', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15cec6', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15dcd5', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15eae6', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f8f5', v='0.104') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='160706', v='0.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='161517', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='162326', v='0.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163137', v='0.111') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163f46', v='0.109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='164d57', v='0.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='165b67', v='0.112') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='166982', v='0.111') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='167786', v='0.112') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='168596', v='0.112') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1693a6', v='0.113') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16a1b5', v='0.112') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16afc6', v='0.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16bdd5', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16cbe6', v='0.107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d9f6', v='0.112') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16e807', v='0.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16f616', v='0.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='170429', v='0.111') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='171236', v='0.112') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172047', v='0.112') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172e57', v='0.111') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='173c67', v='0.111') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='174a77', v='0.11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='175887', v='0.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='176694', v='117.84') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1774a3', v='119.199') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1782b3', v='120.226') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1790c5', v='120.924') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='179ed4', v='124.038') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ace4', v='126.747') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17bafd', v='128.364') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17c90f', v='126.55') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d71e', v='126.522') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17e52f', v='126.893') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17f33f', v='126.114') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18014f', v='124.219') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='180f5f', v='123.691') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='181d6e', v='124.723') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='182b7f', v='124.667') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18398f', v='123.666') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1847a1', v='123.337') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1855af', v='124.042') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1863c0', v='125.92') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1871cf', v='125.144') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='187fe0', v='124.769') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='188def', v='124.549') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189c00', v='123.483') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18b80d', v='116.63') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18c61c', v='120.461') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18d42c', v='121.228') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18e23b', v='121.154') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18f04b', v='123.409') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18fe5e', v='125.403') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='190c76', v='122.716') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='191a86', v='124.385') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='192896', v='126.046') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1936a6', v='126.166') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1944b7', v='125.26') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1952c6', v='123.29') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1960d7', v='120.499') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='196ee6', v='120.705') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197cf8', v='120.492') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='198b0f', v='119.996') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19991f', v='120.265') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19b541', v='122.232') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19c34d', v='121.49') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19d15e', v='120.704') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19df80', v='120.614') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19ed90', v='119.839') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19eebe', v='119.685') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19fb8e', v='115.593') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a09a0', v='118.86') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a17ae', v='119.97') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a25be', v='121.369') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a33cd', v='121.096') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a41dd', v='122.451') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a4fed', v='125.765') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5e08', v='126.302') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a6c05', v='124.495') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a7a15', v='125.659') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a8826', v='125.773') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9637', v='124.464') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aa445', v='123.167') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ab255', v='121.137') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ac065', v='123.677') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ace75', v='123.569') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1adc87', v='122.254') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aea96', v='121.794') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1af8a7', v='122.088') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b06b7', v='123.87') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b14c6', v='123.556') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='119.682') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c8270', v='119.676') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c907e', v='118.821') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c9e8f', v='119.836') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1caca2', v='121.192') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cbab1', v='121.685') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cc8c1', v='117.874') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cd6d0', v='118.762') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ce4de', v='120.263') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cf2f0', v='122.468') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0109', v='124.536') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0f06', v='122.598') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d1d15', v='123.2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d2b25', v='123.218') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d3935', v='122.202') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d4745', v='121.424') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d5555', v='120.888') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d6366', v='122.743') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7175', v='123.078') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7f86', v='122.237') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d8d95', v='120.858') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d9ba6', v='121.231') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1da9b6', v='122.185') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1db7c7', v='122.648') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dc5d5', v='122.992') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dd3e6', v='122.482') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de1f5', v='118.707') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1df006', v='117.367') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dfe16', v='115.714') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e0c26', v='117.74') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e1a36', v='119.048') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e2847', v='120.179') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e3659', v='119.949') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e4467', v='120.906') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e5281', v='117.251') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6086', v='120.118') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6e96', v='121.521') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e7ca6', v='122.188') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e8ab5', v='122.212') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e98c6', v='121.531') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ea6d5', v='119.981') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eb4e6', v='119.977') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec2f6', v='122.939') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ed106', v='122.289') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1edf16', v='122.05') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eed26', v='122.271') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1efb36', v='122.856') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f0946', v='122.611') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1756', v='121.148') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f2566', v='120.864') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f3376', v='119.609') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4187', v='116.101') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4f96', v='119.165') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f5da7', v='119.287') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f6bb6', v='120.208') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f79c7', v='118.775') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f87d6', v='122.222') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f95e7', v='123.288') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa401', v='126.026') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fb204', v='124.828') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fc016', v='125.769') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fce25', v='125.218') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fdc35', v='124.795') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fea45', v='122.393') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ff855', v='120.523') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='200665', v='117.319') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='201475', v='118.772') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='202286', v='118.808') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203095', v='119.686') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203ea5', v='119.99') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='204cb6', v='122.708') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='205ac6', v='120.762') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2068d6', v='119.92') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2076e6', v='119.129') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2084f6', v='117.091') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='209306', v='121.219') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20a116', v='120.28') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20af26', v='119.69') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20bd37', v='120.677') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20cb46', v='118.756') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20d957', v='119.608') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20e767', v='121.059') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20f581', v='123.573') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='210386', v='125.976') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211194', v='123.926') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211fa5', v='123.888') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='212db5', v='123.08') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='213bc5', v='121.69') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2149d6', v='117.916') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2157e5', v='116.014') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2165f6', v='121.935') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='217406', v='119.675') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='218217', v='118.8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219026', v='119.649') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219e39', v='119.715') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ac46', v='118.622') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba57', v='118.459') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21c867', v='117.339') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21d677', v='122.095') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21e487', v='119.556') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21f296', v='119.761') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2200a6', v='120.53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='220eb7', v='121.428') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='221cc6', v='118.003') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='222ad7', v='120.228') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2238e7', v='123.33') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='224701', v='125.861') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='225505', v='118.788') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='226315', v='119.106') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227125', v='119.116') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227f35', v='116.908') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='228d45', v='115.642') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='229b54', v='122.013') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22a965', v='119.234') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22b776', v='119.31') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22c586', v='118.566') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22d397', v='118.243') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22e1a6', v='118.579') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22efb6', v='120.288') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22fdc7', v='119.996') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='230bd7', v='119.249') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2319e6', v='118.866') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2327f6', v='117.741') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23361b', v='118.543') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='234416', v='117.538') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='235226', v='118.709') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236037', v='119.94') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236e46', v='117.668') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='237c57', v='119.159') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='238a66', v='120.771') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='239881', v='120.234') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23a685', v='121.624') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23b495', v='122.272') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23c2a4', v='122.422') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23d0b5', v='121.687') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23dec4', v='120.361') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23ecd5', v='118.751') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23fae4', v='120.028') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2408f6', v='117.974') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='241706', v='117.305') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='242518', v='117.71') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='243325', v='118.193') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244137', v='119.542') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244f46', v='118.741') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b66', v='118.295') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='247976', v='117.534') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='248786', v='114.472') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24957e', v='117.357') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24a38f', v='118.851') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24b19c', v='120.137') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24bfac', v='119.349') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24cdbc', v='123.226') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24dbcd', v='122.921') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e9e5', v='124.273') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24f808', v='123.515') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='250616', v='124.182') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='251426', v='124.27') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='252236', v='122.827') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253047', v='121.801') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253e56', v='119.514') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='254c67', v='118.922') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='255a76', v='118.86') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='256887', v='117.264') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='257697', v='118.022') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2584a8', v='116.819') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2592b6', v='118.384') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25a0c7', v='119.276') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25aed7', v='118.81') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25bce7', v='118.676') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25caf8', v='118.108') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25d907', v='119.625') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25e718', v='119.042') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25f527', v='119.638') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='260338', v='120.355') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261149', v='118.728') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261f59', v='119.777') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='262d68', v='122.621') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='263b83', v='120.494') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='264986', v='122.335') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='265795', v='123.001') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2665a6', v='123.827') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2673b5', v='122.939') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2681c6', v='122.398') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='268fd5', v='121.212') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='269de6', v='120.844') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26abf6', v='120.054') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ba06', v='118.297') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26c817', v='117.795') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26d62b', v='117.996') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26e436', v='119.287') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26f247', v='118.815') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270057', v='118.955') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e67', v='118.449') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='271c77', v='119.157') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='272a87', v='120.124') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='273897', v='119.858') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2746a8', v='120.668') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2754b9', v='121.067') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2762c7', v='118.265') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2770d8', v='120.308') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='277ee7', v='122.851') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='440600', h='3dc1a8de') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='-1275') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e08', v='-1482') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c32', v='-1562') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a3c', v='-1643') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3835', v='-1446') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4645', v='-1276') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5455', v='-1049') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6265', v='-1694') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7075', v='-1760') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e85', v='-1662') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c96', v='-2067') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aa5', v='-1992') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8b6', v='-1928') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6c5', v='-2018') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4d7', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d30b', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0f6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef06', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd17', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b27', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11937', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12746', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13556', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14366', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15181', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f85', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d95', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ba4', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189b5', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197c4', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5d5', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b3e6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c1f6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d005', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de15', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec25', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa36', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20845', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21656', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22465', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23276', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24086', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e99', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25ca7', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ab7', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='278c6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='286d6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='294e6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a301', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2b105', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2bf15', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2cd25', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2db35', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2e946', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2f755', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='30566', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='31375', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3219e', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='32f96', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='33da6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='34bb6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='359de', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='367d6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='375e6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3840e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3921e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3a016', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ae27', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3bc36', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ca47', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3d856', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3e667', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3f481', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='40285', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41095', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41ea5', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='42cb5', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='43ac5', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='448d5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='456e6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='464f5', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='480ff', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='48f0e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='49d1d', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ab46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4b955', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4c769', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4d577', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4e387', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4f196', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ffa6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='50dd0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='51bc6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='529d6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='537e7', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='54600', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55406', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='56215', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57026', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57e36', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='58c46', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='59a70', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5a867', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5b676', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5c487', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5d296', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5e0a9', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5eeb8', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5fcc6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='60ad7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='618e7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='626f7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='63507', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='64317', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65127', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65f37', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='66d46', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='67b57', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='68967', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='69782', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6a586', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6b395', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6c1a6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6cfb5', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ddc6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ebd6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6f9e6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='707f6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='71607', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='72417', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='73227', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74037', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74e47', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='75c57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='76a63', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='77873', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='78680', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7948f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7a29f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7b0af', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7bebf', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7cccf', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7dadf', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e8fa', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f70a', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8051a', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8132a', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8213a', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='82f4a', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='83d5a', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='84b6a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8597a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8678b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8759b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='883ac', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='891bb', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='89fca', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8adda', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8bbeb', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c9fc', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8d80b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8e61a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8f42a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9023a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9104a', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='91e5a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='92c6a', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='93a84', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='94885', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='95694', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='964a5', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='972b4', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='980c5', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='98ed4', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='99ce5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aaf5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9b906', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9c716', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9d526', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9e336', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9f145', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9ff56', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a0d65', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a1b77', v='-1845') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a2986', v='-631') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a3795', v='1564') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a45a7', v='-66') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a53b6', v='-393') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a61c7', v='-691') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a6fd6', v='-883') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a7e00', v='-1575') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8c00', v='-2209') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a05', v='109') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aa815', v='-420') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ab625', v='-859') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ac435', v='-628') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ad245', v='516') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ae055', v='1839') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aee65', v='293') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='afc75', v='1185') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b0a85', v='3946') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b26a6', v='4230') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b34b6', v='3689') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b42c6', v='248') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b50d6', v='430') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b5ee7', v='1026') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6cf6', v='-526') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b7b07', v='-258') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b8917', v='-65') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b9728', v='-489') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ba537', v='-842') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bb347', v='1082') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bc157', v='310') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bcf67', v='-1112') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bdd81', v='3632') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='beb86', v='513') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bf995', v='214') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c07a6', v='-292') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c15b5', v='-127') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c23c6', v='495') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c31d5', v='1815') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c3fe6', v='818') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4df5', v='1539') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c5c06', v='680') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c6a16', v='712') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c7826', v='1280') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c8636', v='397') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c9446', v='493') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ca256', v='250') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cb066', v='785') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cbe76', v='-201') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ccc87', v='2156') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cda96', v='2937') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ce8a8', v='2107') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cf6b7', v='2824') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d04c8', v='2269') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d12d7', v='1441') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d20e7', v='-297') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d2f02', v='-2280') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d3d05', v='-1189') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b15', v='-964') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d5926', v='-442') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d6735', v='261') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d7546', v='1309') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d8355', v='-849') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9166', v='178') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9f75', v='1111') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dad87', v='2750') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dbb97', v='2769') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dc9a8', v='2973') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dd7b7', v='1327') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='de5c6', v='454') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='df3d7', v='199') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e01d7', v='167') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0fe5', v='556') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e1df5', v='416') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e2c04', v='-370') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e3a14', v='-1154') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e4824', v='93') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e5634', v='-843') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e6444', v='171') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e7255', v='-646') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e806f', v='-723') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e8e7f', v='2665') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e9c8e', v='837') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eaa9f', v='698') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eb8ae', v='1097') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ec6bf', v='2649') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ed4ce', v='-495') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ee2df', v='1165') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef0ef', v='542') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eff01', v='1871') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f0d10', v='979') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f1b20', v='1210') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f2930', v='-356') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f3740', v='1654') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f4551', v='1368') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f5361', v='1462') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6172', v='1612') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6f80', v='1309') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f7d91', v='1886') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f8ba1', v='1136') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f99b1', v='1169') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fa7c0', v='1403') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fb5d1', v='1316') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fc3e0', v='-1041') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd1fb', v='-1190') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fe00b', v='-1609') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee1c', v='-199') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ffc2c', v='-252') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='100a3b', v='585') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10184c', v='1069') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10265b', v='1973') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10346c', v='1831') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10427b', v='1127') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10508d', v='1767') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='105e9d', v='1343') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='106cad', v='1564') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='107abd', v='849') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1088cd', v='805') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1096de', v='1093') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10a4ed', v='880') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b2fe', v='1254') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10c10d', v='2664') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10cf1e', v='1368') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10dd2e', v='1009') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10eb66', v='208') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10f94e', v='22') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11075e', v='1142') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11156d', v='286') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='112388', v='-1168') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113187', v='712') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113fb0', v='227') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='114da6', v='236') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='115bb6', v='372') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1169c6', v='1441') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1177d6', v='2015') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1185e8', v='1211') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1193f7', v='1284') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11a208', v='369') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11b017', v='-310') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11be2f', v='-802') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11cc37', v='781') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11da47', v='491') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11e857', v='1023') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11f667', v='516') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='120578', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='121386', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122196', v='2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122fa6', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='123db5', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='124bc5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1259d5', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1267e4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='127600', v='-1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='128305', v='-1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129115', v='-1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129f25', v='-1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12ad35', v='-1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12bb45', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12c954', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12d766', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12e575', v='2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12f386', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130196', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130fa6', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='131db7', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='132bc5', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1339d4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1347e5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1355f4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='136404', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='137214', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138024', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138e33', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='139c44', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13aa54', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13b865', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13c67e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13d48e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13e29e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13f0ae', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13febf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='140ccf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='141adf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1428ef', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1436ff', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14450f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14531f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146130', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146f40', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='147d44', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='148b57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='149965', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14a775', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14b584', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14c397', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14d1a4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14dfb6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14edc5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14fbd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1509e5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1517ff', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='152605', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153415', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='154225', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155035', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155e45', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='156c55', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='157a65', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='158875', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='159686', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15a495', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15b2a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15c0b6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15cec6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15dcd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15eae6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f8f5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='160706', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='161517', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='162326', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163137', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163f46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='164d57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='165b67', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='166982', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='167786', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='168596', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1693a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16a1b5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16afc6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16bdd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16cbe6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d9f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16e807', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16f616', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='170429', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='171236', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172047', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172e57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='173c67', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='174a77', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='175887', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='176694', v='2274') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1774a3', v='1775') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1782b3', v='1153') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1790c5', v='769') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='179ed4', v='-846') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ace4', v='-2362') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17bafd', v='-2961') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17c90f', v='-2519') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d71e', v='-2447') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17e52f', v='-2865') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17f33f', v='-2276') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18014f', v='-1250') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='180f5f', v='-716') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='181d6e', v='-1489') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='182b7f', v='-2004') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18398f', v='-1055') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1847a1', v='-978') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1855af', v='-1269') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1863c0', v='-3170') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1871cf', v='-2668') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='187fe0', v='-2540') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='188def', v='-2377') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189c00', v='-1126') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18b80d', v='1219') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18c61c', v='-1061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18d42c', v='-1519') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18e23b', v='-1284') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18f04b', v='-1902') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18fe5e', v='-1623') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='190c76', v='-778') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='191a86', v='-1730') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='192896', v='-1745') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1936a6', v='-1872') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1944b7', v='-1207') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1952c6', v='-211') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1960d7', v='1619') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='196ee6', v='-764') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197cf8', v='-827') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='198b0f', v='40') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19991f', v='-199') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19b541', v='-967') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19c34d', v='-680') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19d15e', v='-385') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19df80', v='-241') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19ed90', v='371') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19eebe', v='471') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19fb8e', v='61') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a09a0', v='-2440') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a17ae', v='-3447') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a25be', v='-3862') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a33cd', v='-1657') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a41dd', v='-2273') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a4fed', v='-4132') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5e08', v='-3735') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a6c05', v='-2655') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a7a15', v='-3286') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a8826', v='-3377') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9637', v='-2707') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aa445', v='-1980') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ab255', v='-797') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ac065', v='-2046') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ace75', v='-2793') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1adc87', v='-1939') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aea96', v='-2092') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1af8a7', v='-2211') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b06b7', v='-2679') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b14c6', v='-2530') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='453') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c8270', v='-157') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c907e', v='1143') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c9e8f', v='-146') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1caca2', v='-1002') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cbab1', v='-1402') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cc8c1', v='2949') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cd6d0', v='2229') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ce4de', v='1022') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cf2f0', v='-1628') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0109', v='-1835') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0f06', v='-211') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d1d15', v='-767') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d2b25', v='-792') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d3935', v='173') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d4745', v='776') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d5555', v='1249') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d6366', v='-957') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7175', v='-911') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7f86', v='-243') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d8d95', v='-65') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d9ba6', v='-308') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1da9b6', v='-811') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1db7c7', v='-806') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dc5d5', v='-952') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dd3e6', v='-716') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de1f5', v='-1618') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1df006', v='-1910') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dfe16', v='-1809') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e0c26', v='-2224') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e1a36', v='-2272') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e2847', v='-2317') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e3659', v='-2283') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e4467', v='-2334') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e5281', v='-1860') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6086', v='-2139') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6e96', v='-2206') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e7ca6', v='-296') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e8ab5', v='-449') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e98c6', v='-142') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ea6d5', v='-422') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eb4e6', v='-365') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec2f6', v='-581') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ed106', v='-263') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1edf16', v='-325') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eed26', v='-142') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1efb36', v='-355') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f0946', v='-310') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1756', v='496') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f2566', v='660') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f3376', v='1246') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4187', v='2889') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4f96', v='1532') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f5da7', v='-143') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f6bb6', v='-518') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f79c7', v='225') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f87d6', v='-1667') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f95e7', v='-2330') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa401', v='-1727') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fb204', v='-1489') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fc016', v='-1515') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fce25', v='-476') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fdc35', v='-193') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fea45', v='128') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ff855', v='376') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='200665', v='2872') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='201475', v='408') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='202286', v='1923') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203095', v='1830') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203ea5', v='1798') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='204cb6', v='334') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='205ac6', v='1260') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2068d6', v='1815') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2076e6', v='2272') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2084f6', v='262') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='209306', v='-387') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20a116', v='-613') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20af26', v='-251') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20bd37', v='-885') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20cb46', v='551') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20d957', v='48') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20e767', v='-982') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20f581', v='-1612') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='210386', v='-1125') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211194', v='-381') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211fa5', v='-441') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='212db5', v='71') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='213bc5', v='1020') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2149d6', v='760') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2157e5', v='-319') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2165f6', v='-1144') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='217406', v='302') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='218217', v='-319') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219026', v='-582') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219e39', v='408') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ac46', v='1031') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba57', v='1139') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21c867', v='2082') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21d677', v='-1202') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21e487', v='622') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21f296', v='456') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2200a6', v='-736') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='220eb7', v='-818') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='221cc6', v='1684') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='222ad7', v='307') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2238e7', v='-801') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='224701', v='-1256') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='225505', v='3308') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='226315', v='506') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227125', v='639') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227f35', v='1963') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='228d45', v='2867') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='229b54', v='-831') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22a965', v='-270') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22b776', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22c586', v='2010') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22d397', v='3408') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22e1a6', v='3190') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22efb6', v='-187') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22fdc7', v='-225') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='230bd7', v='531') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2319e6', v='-823') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2327f6', v='62') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23361b', v='1079') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='234416', v='1547') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='235226', v='900') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236037', v='112') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236e46', v='1780') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='237c57', v='1407') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='238a66', v='298') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='239881', v='565') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23a685', v='-311') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23b495', v='-657') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23c2a4', v='168') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23d0b5', v='647') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23dec4', v='1427') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23ecd5', v='829') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23fae4', v='-5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2408f6', v='1197') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='241706', v='3751') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='242518', v='2991') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='243325', v='2801') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244137', v='-1188') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244f46', v='-828') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b66', v='-799') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='247976', v='57') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='248786', v='4601') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24957e', v='1911') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24a38f', v='799') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24b19c', v='-972') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24bfac', v='-708') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24cdbc', v='-790') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24dbcd', v='-490') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e9e5', v='-1316') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24f808', v='-825') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='250616', v='-1012') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='251426', v='-1178') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='252236', v='-35') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253047', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253e56', v='1352') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='254c67', v='1059') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='255a76', v='1290') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='256887', v='2079') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='257697', v='3618') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2584a8', v='-4684') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2592b6', v='-2470') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25a0c7', v='-556') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25aed7', v='189') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25bce7', v='260') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25caf8', v='816') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25d907', v='2489') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25e718', v='2732') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25f527', v='2234') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='260338', v='57') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261149', v='1219') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261f59', v='632') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='262d68', v='-1360') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='263b83', v='38') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='264986', v='-980') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='265795', v='-1501') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2665a6', v='-2119') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2673b5', v='-1618') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2681c6', v='-1314') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='268fd5', v='-432') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='269de6', v='309') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26abf6', v='685') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ba06', v='1692') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26c817', v='1899') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26d62b', v='3622') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26e436', v='2709') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26f247', v='3037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270057', v='2898') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e67', v='3251') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='271c77', v='186') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='272a87', v='-636') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='273897', v='-421') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2746a8', v='-729') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2754b9', v='-978') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2762c7', v='2670') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2770d8', v='1255') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='277ee7', v='-496') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='424600', h='3dc1a8de') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='-4313') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e08', v='-4163') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c32', v='-4102') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a3c', v='-4091') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3835', v='-3982') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4645', v='-3934') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5455', v='-4439') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6265', v='-5323') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7075', v='-6298') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e85', v='-7332') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c96', v='-7541') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aa5', v='-7248') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8b6', v='-6869') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6c5', v='-6454') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4d7', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d30b', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0f6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef06', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd17', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b27', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11937', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12746', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13556', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14366', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15181', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f85', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d95', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ba4', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189b5', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197c4', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5d5', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b3e6', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c1f6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d005', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de15', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec25', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa36', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20845', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21656', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22465', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23276', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24086', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e99', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25ca7', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ab7', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='278c6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='286d6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='294e6', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a301', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2b105', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2bf15', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2cd25', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2db35', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2e946', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2f755', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='30566', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='31375', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3219e', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='32f96', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='33da6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='34bb6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='359de', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='367d6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='375e6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3840e', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3921e', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3a016', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ae27', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3bc36', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ca47', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3d856', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3e667', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3f481', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='40285', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41095', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41ea5', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='42cb5', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='43ac5', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='448d5', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='456e6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='464f5', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='480ff', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='48f0e', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='49d1d', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ab46', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4b955', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4c769', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4d577', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4e387', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4f196', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ffa6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='50dd0', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='51bc6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='529d6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='537e7', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='54600', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55406', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='56215', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57026', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57e36', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='58c46', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='59a70', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5a867', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5b676', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5c487', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5d296', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5e0a9', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5eeb8', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5fcc6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='60ad7', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='618e7', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='626f7', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='63507', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='64317', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65127', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65f37', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='66d46', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='67b57', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='68967', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='69782', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6a586', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6b395', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6c1a6', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6cfb5', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ddc6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ebd6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6f9e6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='707f6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='71607', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='72417', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='73227', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74037', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74e47', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='75c57', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='76a63', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='77873', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='78680', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7948f', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7a29f', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7b0af', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7bebf', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7cccf', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7dadf', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e8fa', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f70a', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8051a', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8132a', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8213a', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='82f4a', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='83d5a', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='84b6a', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8597a', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8678b', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8759b', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='883ac', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='891bb', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='89fca', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8adda', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8bbeb', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c9fc', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8d80b', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8e61a', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8f42a', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9023a', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9104a', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='91e5a', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='92c6a', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='93a84', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='94885', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='95694', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='964a5', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='972b4', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='980c5', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='98ed4', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='99ce5', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aaf5', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9b906', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9c716', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9d526', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9e336', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9f145', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9ff56', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a0d65', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a1b77', v='-6460') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a2986', v='-3546') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a3795', v='-986') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a45a7', v='697') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a53b6', v='776') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a61c7', v='925') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a6fd6', v='125') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a7e00', v='456') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8c00', v='903') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a05', v='278') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aa815', v='27') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ab625', v='43') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ac435', v='173') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ad245', v='947') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ae055', v='728') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aee65', v='-452') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='afc75', v='-117') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b0a85', v='23') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b26a6', v='182') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b34b6', v='-152') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b42c6', v='-423') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b50d6', v='-705') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b5ee7', v='-790') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6cf6', v='-1575') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b7b07', v='-2027') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b8917', v='-1757') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b9728', v='-1722') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ba537', v='-1901') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bb347', v='-741') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bc157', v='-812') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bcf67', v='-891') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bdd81', v='652') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='beb86', v='411') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bf995', v='516') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c07a6', v='398') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c15b5', v='382') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c23c6', v='470') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c31d5', v='591') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c3fe6', v='267') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4df5', v='770') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c5c06', v='164') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c6a16', v='438') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c7826', v='-43') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c8636', v='72') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c9446', v='249') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ca256', v='201') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cb066', v='115') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cbe76', v='-425') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ccc87', v='-229') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cda96', v='-284') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ce8a8', v='-247') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cf6b7', v='-135') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d04c8', v='-54') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d12d7', v='96') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d20e7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d2f02', v='16') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d3d05', v='598') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b15', v='721') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d5926', v='818') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d6735', v='1067') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d7546', v='1245') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d8355', v='-117') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9166', v='-721') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9f75', v='-1504') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dad87', v='-2084') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dbb97', v='-2554') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dc9a8', v='-2345') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dd7b7', v='-2920') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='de5c6', v='-2712') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='df3d7', v='-2858') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e01d7', v='-2928') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0fe5', v='-2803') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e1df5', v='-3032') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e2c04', v='-4017') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e3a14', v='-3918') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e4824', v='-3412') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e5634', v='-3441') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e6444', v='-2561') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e7255', v='-2139') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e806f', v='-1765') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e8e7f', v='-465') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e9c8e', v='-702') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eaa9f', v='-647') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eb8ae', v='-676') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ec6bf', v='-509') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ed4ce', v='-2150') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ee2df', v='-2355') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef0ef', v='-3171') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eff01', v='-4031') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f0d10', v='-4338') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f1b20', v='-4651') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f2930', v='-4668') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f3740', v='-4346') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f4551', v='-4571') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f5361', v='-4929') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6172', v='-4607') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6f80', v='-4866') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f7d91', v='-4308') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f8ba1', v='-3897') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f99b1', v='-3784') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fa7c0', v='-2988') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fb5d1', v='-3099') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fc3e0', v='-3335') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd1fb', v='-2686') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fe00b', v='-2522') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee1c', v='-2074') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ffc2c', v='-1989') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='100a3b', v='-1788') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10184c', v='-1795') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10265b', v='-2075') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10346c', v='-2698') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10427b', v='-3932') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10508d', v='-4406') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='105e9d', v='-4366') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='106cad', v='-4692') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='107abd', v='-4302') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1088cd', v='-3927') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1096de', v='-4101') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10a4ed', v='-4187') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b2fe', v='-4342') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10c10d', v='-4162') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10cf1e', v='-4456') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10dd2e', v='-4132') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10eb66', v='-4499') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10f94e', v='-3882') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11075e', v='-3295') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11156d', v='-2863') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='112388', v='-2668') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113187', v='-1778') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113fb0', v='-1810') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='114da6', v='-1829') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='115bb6', v='-1800') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1169c6', v='-1595') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1177d6', v='-2050') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1185e8', v='-2961') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1193f7', v='-3627') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11a208', v='-4830') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11b017', v='-4296') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11be2f', v='-5257') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11cc37', v='-4408') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11da47', v='-4326') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11e857', v='-4420') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11f667', v='-3950') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='120578', v='-4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='121386', v='-4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122196', v='-4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122fa6', v='-3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='123db5', v='-3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='124bc5', v='-3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1259d5', v='-2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1267e4', v='-2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='127600', v='-2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='128305', v='-2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129115', v='-2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129f25', v='-2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12ad35', v='-2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12bb45', v='-1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12c954', v='-2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12d766', v='-2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12e575', v='-3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12f386', v='-2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130196', v='-4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130fa6', v='-3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='131db7', v='-3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='132bc5', v='-3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1339d4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1347e5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1355f4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='136404', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='137214', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138024', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138e33', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='139c44', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13aa54', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13b865', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13c67e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13d48e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13e29e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13f0ae', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13febf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='140ccf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='141adf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1428ef', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1436ff', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14450f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14531f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146130', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146f40', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='147d44', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='148b57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='149965', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14a775', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14b584', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14c397', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14d1a4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14dfb6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14edc5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14fbd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1509e5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1517ff', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='152605', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153415', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='154225', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155035', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155e45', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='156c55', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='157a65', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='158875', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='159686', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15a495', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15b2a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15c0b6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15cec6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15dcd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15eae6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f8f5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='160706', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='161517', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='162326', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163137', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163f46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='164d57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='165b67', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='166982', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='167786', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='168596', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1693a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16a1b5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16afc6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16bdd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16cbe6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d9f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16e807', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16f616', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='170429', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='171236', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172047', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172e57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='173c67', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='174a77', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='175887', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='176694', v='-6868') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1774a3', v='-6790') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1782b3', v='-7252') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1790c5', v='-6734') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='179ed4', v='-6030') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ace4', v='-5892') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17bafd', v='-6066') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17c90f', v='-5486') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d71e', v='-5444') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17e52f', v='-5339') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17f33f', v='-4983') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18014f', v='-5190') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='180f5f', v='-6313') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='181d6e', v='-6839') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='182b7f', v='-7853') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18398f', v='-13507') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1847a1', v='-13381') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1855af', v='-12778') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1863c0', v='-11890') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1871cf', v='-12338') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='187fe0', v='-11774') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='188def', v='-12649') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189c00', v='-11849') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18b80d', v='-7471') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18c61c', v='-8126') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18d42c', v='-7696') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18e23b', v='-6538') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18f04b', v='-6175') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18fe5e', v='-5664') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='190c76', v='-4480') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='191a86', v='-4300') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='192896', v='-4263') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1936a6', v='-4119') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1944b7', v='-4103') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1952c6', v='-4511') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1960d7', v='-5135') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='196ee6', v='-6038') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197cf8', v='-6392') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='198b0f', v='-5899') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19991f', v='-6690') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19b541', v='-6603') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19c34d', v='-6159') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19d15e', v='-6128') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19df80', v='-6220') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19ed90', v='-6047') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19eebe', v='-6009') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19fb8e', v='-2295') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a09a0', v='-2543') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a17ae', v='-3085') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a25be', v='-3269') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a33cd', v='-2267') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a41dd', v='-2159') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a4fed', v='-1532') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5e08', v='-1675') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a6c05', v='-960') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a7a15', v='-1122') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a8826', v='-1061') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9637', v='-505') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aa445', v='-536') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ab255', v='-991') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ac065', v='-1818') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ace75', v='-2574') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1adc87', v='-2844') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aea96', v='-2608') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1af8a7', v='-2928') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b06b7', v='-2112') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b14c6', v='-2074') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='354') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c8270', v='438') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c907e', v='3408') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c9e8f', v='3269') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1caca2', v='3655') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cbab1', v='3521') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cc8c1', v='5431') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cd6d0', v='5560') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ce4de', v='5660') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cf2f0', v='5623') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0109', v='5896') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0f06', v='6656') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d1d15', v='6647') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d2b25', v='6733') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d3935', v='6914') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d4745', v='6873') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d5555', v='6691') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d6366', v='5814') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7175', v='5617') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7f86', v='5608') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d8d95', v='-3230') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d9ba6', v='-3656') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1da9b6', v='-3620') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1db7c7', v='-3449') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dc5d5', v='-3601') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dd3e6', v='-3735') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de1f5', v='-5996') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1df006', v='-6718') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dfe16', v='-6583') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e0c26', v='-6767') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e1a36', v='-6800') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e2847', v='-6525') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e3659', v='-6170') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e4467', v='-5676') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e5281', v='-4911') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6086', v='-4911') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6e96', v='-4801') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e7ca6', v='-1982') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e8ab5', v='-1810') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e98c6', v='-1834') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ea6d5', v='-2256') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eb4e6', v='-2325') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec2f6', v='-2684') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ed106', v='-2675') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1edf16', v='-2778') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eed26', v='-2688') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1efb36', v='-2650') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f0946', v='-2557') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1756', v='-2355') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f2566', v='-2318') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f3376', v='-2582') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4187', v='-2811') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4f96', v='-3182') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f5da7', v='-3578') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f6bb6', v='-3544') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f79c7', v='-3148') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f87d6', v='-3345') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f95e7', v='-3137') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa401', v='-2809') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fb204', v='-2501') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fc016', v='-2493') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fce25', v='-2157') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fdc35', v='-2137') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fea45', v='-2155') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ff855', v='-2498') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='200665', v='-2368') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='201475', v='-3513') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='202286', v='-4566') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203095', v='-5345') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203ea5', v='-6057') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='204cb6', v='-5799') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='205ac6', v='-5341') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2068d6', v='-5395') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2076e6', v='-5979') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2084f6', v='-6090') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='209306', v='-6778') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20a116', v='-6378') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20af26', v='-5473') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20bd37', v='-5382') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20cb46', v='-4608') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20d957', v='-4316') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20e767', v='-4055') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20f581', v='-3867') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='210386', v='-3482') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211194', v='-3116') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211fa5', v='-3010') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='212db5', v='-2944') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='213bc5', v='-2819') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2149d6', v='-3644') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2157e5', v='-4499') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2165f6', v='-5795') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='217406', v='-6198') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='218217', v='-6174') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219026', v='-6102') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219e39', v='-6218') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ac46', v='-5898') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba57', v='-5986') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21c867', v='-5633') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21d677', v='-6210') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21e487', v='-5783') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21f296', v='-5726') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2200a6', v='-5539') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='220eb7', v='-5408') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='221cc6', v='-4608') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='222ad7', v='-3876') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2238e7', v='-3618') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='224701', v='-3292') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='225505', v='-1685') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='226315', v='-2072') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227125', v='-2050') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227f35', v='-1670') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='228d45', v='-1792') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='229b54', v='-3485') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22a965', v='-3911') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22b776', v='-4578') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22c586', v='-4788') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22d397', v='-4459') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22e1a6', v='-4693') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22efb6', v='-4830') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22fdc7', v='-4652') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='230bd7', v='-4452') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2319e6', v='-5394') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2327f6', v='-5538') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23361b', v='-5866') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='234416', v='-5225') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='235226', v='-5162') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236037', v='-5250') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236e46', v='-4384') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='237c57', v='-4218') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='238a66', v='-4016') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='239881', v='-3222') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23a685', v='-3311') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23b495', v='-3183') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23c2a4', v='-2974') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23d0b5', v='-2945') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23dec4', v='-2933') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23ecd5', v='-3570') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23fae4', v='-4545') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2408f6', v='-5119') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='241706', v='-5737') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='242518', v='-6515') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='243325', v='-6776') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244137', v='-6755') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244f46', v='-6361') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b66', v='-6546') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='247976', v='-6273') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='248786', v='-5402') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24957e', v='-5797') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24a38f', v='-5647') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24b19c', v='-5747') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24bfac', v='-5443') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24cdbc', v='-5445') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24dbcd', v='-4557') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e9e5', v='-4019') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24f808', v='-3484') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='250616', v='-3616') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='251426', v='-3559') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='252236', v='-3408') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253047', v='-3609') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253e56', v='-4020') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='254c67', v='-4182') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='255a76', v='-4997') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='256887', v='-5810') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='257697', v='-5595') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2584a8', v='-15224') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2592b6', v='-8695') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25a0c7', v='-4575') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25aed7', v='-6313') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25bce7', v='-6104') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25caf8', v='-5750') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25d907', v='-5764') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25e718', v='-5649') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25f527', v='-5249') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='260338', v='-5562') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261149', v='-4875') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261f59', v='-4619') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='262d68', v='-4611') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='263b83', v='-3619') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='264986', v='-3467') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='265795', v='-3564') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2665a6', v='-3672') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2673b5', v='-3614') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2681c6', v='-3621') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='268fd5', v='-3868') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='269de6', v='-3969') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26abf6', v='-3886') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ba06', v='-4381') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26c817', v='-4271') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26d62b', v='-3967') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26e436', v='-4002') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26f247', v='-3562') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270057', v='-3874') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e67', v='-3561') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='271c77', v='-4690') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='272a87', v='-5196') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='273897', v='-5211') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2746a8', v='-5037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2754b9', v='-4963') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2762c7', v='-4048') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2770d8', v='-3708') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='277ee7', v='-3215') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='438200', h='3dc1a8de') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='-1103') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e08', v='-1286') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c32', v='-1351') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a3c', v='-1427') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3835', v='-1246') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4645', v='-1101') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5455', v='-909') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6265', v='-1472') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7075', v='-1523') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e85', v='-1435') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c96', v='-1784') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aa5', v='-1757') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8b6', v='-1682') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6c5', v='-1745') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4d7', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d30b', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0f6', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef06', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd17', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b27', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11937', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12746', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13556', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14366', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15181', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f85', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d95', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ba4', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189b5', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197c4', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5d5', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b3e6', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c1f6', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d005', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de15', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec25', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa36', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20845', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21656', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22465', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23276', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24086', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e99', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25ca7', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ab7', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='278c6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='286d6', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='294e6', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a301', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2b105', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2bf15', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2cd25', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2db35', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2e946', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2f755', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='30566', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='31375', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3219e', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='32f96', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='33da6', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='34bb6', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='359de', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='367d6', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='375e6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3840e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3921e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3a016', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ae27', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3bc36', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ca47', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3d856', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3e667', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3f481', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='40285', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41095', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41ea5', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='42cb5', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='43ac5', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='448d5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='456e6', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='464f5', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='480ff', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='48f0e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='49d1d', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ab46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4b955', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4c769', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4d577', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4e387', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4f196', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ffa6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='50dd0', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='51bc6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='529d6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='537e7', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='54600', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55406', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='56215', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57026', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57e36', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='58c46', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='59a70', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5a867', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5b676', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5c487', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5d296', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5e0a9', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5eeb8', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5fcc6', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='60ad7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='618e7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='626f7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='63507', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='64317', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65127', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65f37', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='66d46', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='67b57', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='68967', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='69782', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6a586', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6b395', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6c1a6', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6cfb5', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ddc6', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ebd6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6f9e6', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='707f6', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='71607', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='72417', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='73227', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74037', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74e47', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='75c57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='76a63', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='77873', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='78680', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7948f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7a29f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7b0af', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7bebf', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7cccf', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7dadf', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e8fa', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f70a', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8051a', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8132a', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8213a', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='82f4a', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='83d5a', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='84b6a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8597a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8678b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8759b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='883ac', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='891bb', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='89fca', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8adda', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8bbeb', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c9fc', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8d80b', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8e61a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8f42a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9023a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9104a', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='91e5a', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='92c6a', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='93a84', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='94885', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='95694', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='964a5', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='972b4', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='980c5', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='98ed4', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='99ce5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aaf5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9b906', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9c716', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9d526', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9e336', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9f145', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9ff56', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a0d65', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a1b77', v='-1590') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a2986', v='-500') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a3795', v='1379') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a45a7', v='-45') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a53b6', v='-346') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a61c7', v='-580') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a6fd6', v='-752') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a7e00', v='-1367') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8c00', v='-1906') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a05', v='101') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aa815', v='-366') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ab625', v='-740') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ac435', v='-550') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ad245', v='432') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ae055', v='1595') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aee65', v='275') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='afc75', v='1019') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b0a85', v='3444') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b26a6', v='3629') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b34b6', v='3203') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b42c6', v='215') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b50d6', v='380') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b5ee7', v='890') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6cf6', v='-446') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b7b07', v='-200') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b8917', v='-44') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b9728', v='-424') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ba537', v='-718') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bb347', v='946') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bc157', v='276') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bcf67', v='-944') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bdd81', v='3129') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='beb86', v='453') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bf995', v='194') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c07a6', v='-246') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c15b5', v='-122') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c23c6', v='430') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c31d5', v='1582') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c3fe6', v='720') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4df5', v='1333') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c5c06', v='588') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c6a16', v='642') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c7826', v='1096') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c8636', v='313') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c9446', v='374') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ca256', v='204') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cb066', v='692') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cbe76', v='-196') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ccc87', v='1888') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cda96', v='2502') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ce8a8', v='1840') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cf6b7', v='2437') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d04c8', v='1930') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d12d7', v='1219') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d20e7', v='-250') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d2f02', v='-1971') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d3d05', v='-1029') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b15', v='-1072') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d5926', v='-388') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d6735', v='229') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d7546', v='1131') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d8355', v='-726') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9166', v='166') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9f75', v='965') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dad87', v='2341') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dbb97', v='2354') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dc9a8', v='2565') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dd7b7', v='1136') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='de5c6', v='367') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='df3d7', v='173') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e01d7', v='156') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0fe5', v='460') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e1df5', v='358') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e2c04', v='-308') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e3a14', v='-1006') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e4824', v='93') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e5634', v='-723') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e6444', v='147') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e7255', v='-551') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e806f', v='-626') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e8e7f', v='2316') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e9c8e', v='714') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eaa9f', v='600') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eb8ae', v='953') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ec6bf', v='2267') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ed4ce', v='-403') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ee2df', v='999') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef0ef', v='475') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eff01', v='1663') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f0d10', v='829') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f1b20', v='1055') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f2930', v='-314') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f3740', v='1431') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f4551', v='1201') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f5361', v='1280') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6172', v='1431') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6f80', v='1145') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f7d91', v='1635') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f8ba1', v='957') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f99b1', v='1019') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fa7c0', v='1219') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fb5d1', v='1143') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fc3e0', v='-893') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd1fb', v='-1019') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fe00b', v='-1389') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee1c', v='-182') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ffc2c', v='-220') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='100a3b', v='502') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10184c', v='940') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10265b', v='1719') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10346c', v='1592') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10427b', v='960') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10508d', v='1537') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='105e9d', v='1177') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='106cad', v='1337') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='107abd', v='737') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1088cd', v='723') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1096de', v='917') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10a4ed', v='794') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b2fe', v='1075') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10c10d', v='2328') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10cf1e', v='1192') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10dd2e', v='867') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10eb66', v='184') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10f94e', v='12') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11075e', v='978') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11156d', v='256') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='112388', v='-1007') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113187', v='614') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113fb0', v='205') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='114da6', v='195') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='115bb6', v='316') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1169c6', v='1241') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1177d6', v='1748') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1185e8', v='1046') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1193f7', v='1099') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11a208', v='309') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11b017', v='-202') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11be2f', v='-722') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11cc37', v='680') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11da47', v='440') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11e857', v='870') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11f667', v='475') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='120578', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='121386', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122196', v='2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122fa6', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='123db5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='124bc5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1259d5', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1267e4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='127600', v='-1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='128305', v='-1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129115', v='-1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129f25', v='-1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12ad35', v='-1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12bb45', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12c954', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12d766', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12e575', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12f386', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130196', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130fa6', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='131db7', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='132bc5', v='1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1339d4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1347e5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1355f4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='136404', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='137214', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138024', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138e33', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='139c44', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13aa54', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13b865', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13c67e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13d48e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13e29e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13f0ae', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13febf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='140ccf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='141adf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1428ef', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1436ff', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14450f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14531f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146130', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146f40', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='147d44', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='148b57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='149965', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14a775', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14b584', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14c397', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14d1a4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14dfb6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14edc5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14fbd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1509e5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1517ff', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='152605', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153415', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='154225', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155035', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155e45', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='156c55', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='157a65', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='158875', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='159686', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15a495', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15b2a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15c0b6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15cec6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15dcd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15eae6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f8f5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='160706', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='161517', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='162326', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163137', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163f46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='164d57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='165b67', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='166982', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='167786', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='168596', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1693a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16a1b5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16afc6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16bdd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16cbe6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d9f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16e807', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16f616', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='170429', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='171236', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172047', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172e57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='173c67', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='174a77', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='175887', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='176694', v='1959') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1774a3', v='1506') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1782b3', v='1027') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1790c5', v='677') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='179ed4', v='-759') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ace4', v='-2042') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17bafd', v='-2554') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17c90f', v='-2178') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d71e', v='-2126') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17e52f', v='-2484') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17f33f', v='-1980') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18014f', v='-1072') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='180f5f', v='-524') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='181d6e', v='-1366') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='182b7f', v='-1753') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18398f', v='-893') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1847a1', v='-845') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1855af', v='-1148') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1863c0', v='-2710') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1871cf', v='-2297') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='187fe0', v='-2208') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='188def', v='-2037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189c00', v='-997') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18b80d', v='1048') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18c61c', v='-955') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18d42c', v='-1334') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18e23b', v='-1121') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18f04b', v='-1625') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18fe5e', v='-1419') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='190c76', v='-671') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='191a86', v='-1501') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='192896', v='-1511') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1936a6', v='-1618') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1944b7', v='-1037') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1952c6', v='-192') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1960d7', v='1397') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='196ee6', v='-627') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197cf8', v='-711') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='198b0f', v='20') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19991f', v='-130') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19b541', v='-843') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19c34d', v='-642') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19d15e', v='-320') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19df80', v='-210') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19ed90', v='295') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19eebe', v='417') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19fb8e', v='37') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a09a0', v='-2105') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a17ae', v='-2980') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a25be', v='-3329') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a33cd', v='-1430') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a41dd', v='-1986') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a4fed', v='-3570') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5e08', v='-3230') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a6c05', v='-2288') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a7a15', v='-2846') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a8826', v='-2946') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9637', v='-2342') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aa445', v='-1719') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ab255', v='-668') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ac065', v='-1761') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ace75', v='-2413') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1adc87', v='-1727') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aea96', v='-1832') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1af8a7', v='-1889') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b06b7', v='-2346') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b14c6', v='-2176') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='374') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c8270', v='-132') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c907e', v='993') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c9e8f', v='-150') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1caca2', v='-843') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cbab1', v='-1196') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cc8c1', v='2577') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cd6d0', v='1582') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ce4de', v='909') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cf2f0', v='-1405') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0109', v='-1597') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0f06', v='-186') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d1d15', v='-658') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d2b25', v='-679') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d3935', v='89') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d4745', v='680') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d5555', v='1095') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d6366', v='-832') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7175', v='-785') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7f86', v='-228') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d8d95', v='-40') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d9ba6', v='-280') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1da9b6', v='-697') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1db7c7', v='-697') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dc5d5', v='-811') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dd3e6', v='-629') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de1f5', v='-1408') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1df006', v='-1666') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dfe16', v='-1574') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e0c26', v='-1928') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e1a36', v='-1970') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e2847', v='-2017') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e3659', v='-1984') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e4467', v='-2007') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e5281', v='-1611') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6086', v='-1851') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6e96', v='-1908') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e7ca6', v='-251') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e8ab5', v='-386') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e98c6', v='-121') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ea6d5', v='-365') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eb4e6', v='-313') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec2f6', v='-506') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ed106', v='-232') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1edf16', v='-288') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eed26', v='-121') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1efb36', v='-310') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f0946', v='-245') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1756', v='439') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f2566', v='609') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f3376', v='1078') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4187', v='2491') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4f96', v='1327') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f5da7', v='-115') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f6bb6', v='-442') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f79c7', v='203') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f87d6', v='-1439') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f95e7', v='-2019') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa401', v='-1491') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fb204', v='-1285') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fc016', v='-1309') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fce25', v='-409') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fdc35', v='-162') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fea45', v='90') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ff855', v='319') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='200665', v='2483') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='201475', v='357') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='202286', v='1681') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203095', v='1572') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203ea5', v='1575') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='204cb6', v='302') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='205ac6', v='1076') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2068d6', v='1555') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2076e6', v='1971') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2084f6', v='239') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='209306', v='-351') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20a116', v='-527') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20af26', v='-215') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20bd37', v='-782') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20cb46', v='452') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20d957', v='60') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20e767', v='-848') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20f581', v='-1383') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='210386', v='-989') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211194', v='-325') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211fa5', v='-382') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='212db5', v='60') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='213bc5', v='884') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2149d6', v='659') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2157e5', v='-264') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2165f6', v='-990') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='217406', v='289') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='218217', v='-292') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219026', v='-542') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219e39', v='366') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ac46', v='909') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba57', v='992') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21c867', v='1808') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21d677', v='-1049') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21e487', v='543') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21f296', v='377') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2200a6', v='-619') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='220eb7', v='-712') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='221cc6', v='1459') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='222ad7', v='257') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2238e7', v='-696') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='224701', v='-1085') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='225505', v='2873') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='226315', v='421') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227125', v='557') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227f35', v='1696') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='228d45', v='2480') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='229b54', v='-707') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22a965', v='-237') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22b776', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22c586', v='1730') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22d397', v='2990') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22e1a6', v='2746') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22efb6', v='-174') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22fdc7', v='-194') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='230bd7', v='485') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2319e6', v='-729') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2327f6', v='70') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23361b', v='907') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='234416', v='1297') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='235226', v='776') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236037', v='123') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236e46', v='1557') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='237c57', v='1208') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='238a66', v='253') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='239881', v='508') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23a685', v='-274') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23b495', v='-571') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23c2a4', v='146') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23d0b5', v='567') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23dec4', v='1222') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23ecd5', v='733') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23fae4', v='8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2408f6', v='1041') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='241706', v='3222') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='242518', v='2576') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='243325', v='2422') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244137', v='-1036') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244f46', v='-746') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b66', v='-661') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='247976', v='45') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='248786', v='3983') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24957e', v='1694') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24a38f', v='709') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24b19c', v='-844') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24bfac', v='-605') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24cdbc', v='-661') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24dbcd', v='-436') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e9e5', v='-1155') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24f808', v='-716') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='250616', v='-877') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='251426', v='-1024') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='252236', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253047', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253e56', v='1185') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='254c67', v='884') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='255a76', v='1103') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='256887', v='1789') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='257697', v='3132') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2584a8', v='-4032') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2592b6', v='-2114') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25a0c7', v='-498') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25aed7', v='174') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25bce7', v='210') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25caf8', v='710') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25d907', v='2127') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25e718', v='2386') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25f527', v='1916') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='260338', v='53') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261149', v='1070') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261f59', v='564') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='262d68', v='-1181') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='263b83', v='34') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='264986', v='-847') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='265795', v='-1318') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2665a6', v='-1842') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2673b5', v='-1404') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2681c6', v='-1129') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='268fd5', v='-372') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='269de6', v='269') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26abf6', v='572') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ba06', v='1413') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26c817', v='1586') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26d62b', v='3161') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26e436', v='2347') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26f247', v='2627') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270057', v='2502') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e67', v='2818') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='271c77', v='158') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='272a87', v='-545') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='273897', v='-370') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2746a8', v='-624') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2754b9', v='-847') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2762c7', v='2315') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2770d8', v='1099') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='277ee7', v='-417') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='422200', h='3dc1a8de') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='-4307') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e08', v='-4169') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c32', v='-4096') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a3c', v='-4087') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3835', v='-3963') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4645', v='-3969') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5455', v='-4411') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6265', v='-5358') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7075', v='-6317') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e85', v='-7298') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c96', v='-7519') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aa5', v='-7351') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8b6', v='-6890') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6c5', v='-6465') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4d7', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d30b', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0f6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef06', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd17', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b27', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11937', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12746', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13556', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14366', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15181', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f85', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d95', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ba4', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189b5', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197c4', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5d5', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b3e6', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c1f6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d005', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de15', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec25', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa36', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20845', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21656', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22465', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23276', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24086', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e99', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25ca7', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ab7', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='278c6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='286d6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='294e6', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a301', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2b105', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2bf15', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2cd25', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2db35', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2e946', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2f755', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='30566', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='31375', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3219e', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='32f96', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='33da6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='34bb6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='359de', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='367d6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='375e6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3840e', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3921e', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3a016', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ae27', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3bc36', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3ca47', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3d856', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3e667', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='3f481', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='40285', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41095', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='41ea5', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='42cb5', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='43ac5', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='448d5', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='456e6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='464f5', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='480ff', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='48f0e', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='49d1d', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ab46', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4b955', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4c769', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4d577', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4e387', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4f196', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='4ffa6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='50dd0', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='51bc6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='529d6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='537e7', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='54600', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55406', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='56215', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57026', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='57e36', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='58c46', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='59a70', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5a867', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5b676', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5c487', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5d296', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5e0a9', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5eeb8', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='5fcc6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='60ad7', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='618e7', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='626f7', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='63507', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='64317', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65127', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='65f37', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='66d46', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='67b57', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='68967', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='69782', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6a586', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6b395', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6c1a6', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6cfb5', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ddc6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6ebd6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='6f9e6', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='707f6', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='71607', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='72417', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='73227', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74037', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='74e47', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='75c57', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='76a63', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='77873', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='78680', v='-6') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7948f', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7a29f', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7b0af', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7bebf', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7cccf', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7dadf', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7e8fa', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f70a', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8051a', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8132a', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8213a', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='82f4a', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='83d5a', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='84b6a', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8597a', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8678b', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8759b', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='883ac', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='891bb', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='89fca', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8adda', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8bbeb', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8c9fc', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8d80b', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8e61a', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='8f42a', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9023a', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9104a', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='91e5a', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='92c6a', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='93a84', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='94885', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='95694', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='964a5', v='-9') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='972b4', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='980c5', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='98ed4', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='99ce5', v='-8') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9aaf5', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9b906', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9c716', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9d526', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9e336', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9f145', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='9ff56', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a0d65', v='-7') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a1b77', v='-6324') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a2986', v='-3516') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a3795', v='-963') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a45a7', v='644') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a53b6', v='700') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a61c7', v='942') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a6fd6', v='99') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a7e00', v='464') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a8c00', v='912') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a05', v='289') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aa815', v='32') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ab625', v='46') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ac435', v='200') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ad245', v='921') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ae055', v='744') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='aee65', v='-561') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='afc75', v='-68') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b0a85', v='31') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b26a6', v='142') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b34b6', v='-123') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b42c6', v='-451') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b50d6', v='-729') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b5ee7', v='-712') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b6cf6', v='-1584') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b7b07', v='-1983') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b8917', v='-1753') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='b9728', v='-1758') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ba537', v='-1891') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bb347', v='-827') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bc157', v='-882') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bcf67', v='-899') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bdd81', v='644') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='beb86', v='417') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='bf995', v='524') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c07a6', v='400') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c15b5', v='372') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c23c6', v='484') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c31d5', v='591') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c3fe6', v='336') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c4df5', v='741') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c5c06', v='114') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c6a16', v='507') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c7826', v='-51') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c8636', v='136') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='c9446', v='334') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ca256', v='235') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cb066', v='116') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cbe76', v='-417') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ccc87', v='-232') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cda96', v='-184') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ce8a8', v='-219') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='cf6b7', v='-134') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d04c8', v='-51') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d12d7', v='143') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d20e7', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d2f02', v='11') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d3d05', v='600') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b15', v='644') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d5926', v='836') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d6735', v='1068') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d7546', v='1213') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d8355', v='-135') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9166', v='-755') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d9f75', v='-1498') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dad87', v='-2011') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dbb97', v='-2561') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dc9a8', v='-2338') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='dd7b7', v='-2895') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='de5c6', v='-2780') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='df3d7', v='-2912') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e01d7', v='-2913') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e0fe5', v='-2832') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e1df5', v='-3018') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e2c04', v='-4099') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e3a14', v='-3979') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e4824', v='-3370') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e5634', v='-3428') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e6444', v='-2551') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e7255', v='-2189') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e806f', v='-1757') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e8e7f', v='-477') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='e9c8e', v='-709') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eaa9f', v='-653') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eb8ae', v='-653') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ec6bf', v='-468') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ed4ce', v='-2112') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ee2df', v='-2239') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ef0ef', v='-3198') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='eff01', v='-4087') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f0d10', v='-4308') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f1b20', v='-4550') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f2930', v='-4628') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f3740', v='-4301') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f4551', v='-4608') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f5361', v='-4857') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6172', v='-4613') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f6f80', v='-4818') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f7d91', v='-4244') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f8ba1', v='-3915') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='f99b1', v='-3805') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fa7c0', v='-3025') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fb5d1', v='-3034') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fc3e0', v='-3295') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fd1fb', v='-2680') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fe00b', v='-2530') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee1c', v='-2083') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='ffc2c', v='-1982') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='100a3b', v='-1790') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10184c', v='-1791') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10265b', v='-2077') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10346c', v='-2724') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10427b', v='-4016') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10508d', v='-4320') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='105e9d', v='-4339') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='106cad', v='-4725') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='107abd', v='-4338') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1088cd', v='-3906') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1096de', v='-4119') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10a4ed', v='-4322') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10b2fe', v='-4345') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10c10d', v='-4169') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10cf1e', v='-4354') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10dd2e', v='-4160') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10eb66', v='-4453') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='10f94e', v='-3895') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11075e', v='-3281') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11156d', v='-2866') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='112388', v='-2663') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113187', v='-1794') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='113fb0', v='-1797') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='114da6', v='-1823') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='115bb6', v='-1782') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1169c6', v='-1585') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1177d6', v='-2082') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1185e8', v='-2885') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1193f7', v='-3558') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11a208', v='-4838') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11b017', v='-4322') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11be2f', v='-5393') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11cc37', v='-4456') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11da47', v='-4279') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11e857', v='-4354') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='11f667', v='-3900') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='120578', v='-4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='121386', v='-4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122196', v='-4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='122fa6', v='-3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='123db5', v='-3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='124bc5', v='-3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1259d5', v='-2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1267e4', v='-2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='127600', v='-2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='128305', v='-2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129115', v='-2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129f25', v='-2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12ad35', v='-2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12bb45', v='-1') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12c954', v='-2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12d766', v='-2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12e575', v='-3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='12f386', v='-2') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130196', v='-4') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='130fa6', v='-3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='131db7', v='-3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='132bc5', v='-3') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1339d4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1347e5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1355f4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='136404', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='137214', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138024', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='138e33', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='139c44', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13aa54', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13b865', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13c67e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13d48e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13e29e', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13f0ae', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='13febf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='140ccf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='141adf', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1428ef', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1436ff', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14450f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14531f', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146130', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='146f40', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='147d44', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='148b57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='149965', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14a775', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14b584', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14c397', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14d1a4', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14dfb6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14edc5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='14fbd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1509e5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1517ff', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='152605', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153415', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='154225', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155035', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='155e45', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='156c55', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='157a65', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='158875', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='159686', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15a495', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15b2a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15c0b6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15cec6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15dcd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15eae6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='15f8f5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='160706', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='161517', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='162326', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163137', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='163f46', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='164d57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='165b67', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='166982', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='167786', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='168596', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1693a6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16a1b5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16afc6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16bdd5', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16cbe6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16d9f6', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16e807', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='16f616', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='170429', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='171236', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172047', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='172e57', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='173c67', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='174a77', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='175887', v='0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='176694', v='-6844') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1774a3', v='-6848') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1782b3', v='-7276') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1790c5', v='-6718') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='179ed4', v='-6044') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17ace4', v='-5879') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17bafd', v='-6067') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17c90f', v='-5484') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d71e', v='-5437') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17e52f', v='-5342') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17f33f', v='-4981') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18014f', v='-5193') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='180f5f', v='-6321') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='181d6e', v='-6923') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='182b7f', v='-7889') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18398f', v='-13464') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1847a1', v='-13354') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1855af', v='-12813') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1863c0', v='-11996') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1871cf', v='-12436') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='187fe0', v='-11658') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='188def', v='-12508') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='189c00', v='-11965') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18b80d', v='-7567') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18c61c', v='-8100') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18d42c', v='-7676') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18e23b', v='-6565') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18f04b', v='-6167') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='18fe5e', v='-5660') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='190c76', v='-4475') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='191a86', v='-4306') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='192896', v='-4252') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1936a6', v='-4125') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1944b7', v='-4125') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1952c6', v='-4498') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1960d7', v='-5137') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='196ee6', v='-5967') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='197cf8', v='-6354') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='198b0f', v='-5965') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19991f', v='-6615') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19b541', v='-6619') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19c34d', v='-6199') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19d15e', v='-6235') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19df80', v='-6313') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19ed90', v='-6079') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19eebe', v='-6075') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='19fb8e', v='-2390') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a09a0', v='-2600') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a17ae', v='-3051') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a25be', v='-3338') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a33cd', v='-2238') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a41dd', v='-2137') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a4fed', v='-1546') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a5e08', v='-1670') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a6c05', v='-969') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a7a15', v='-1123') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a8826', v='-1072') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9637', v='-481') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aa445', v='-537') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ab255', v='-995') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ac065', v='-1819') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ace75', v='-2636') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1adc87', v='-2920') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1aea96', v='-2594') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1af8a7', v='-2898') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b06b7', v='-2173') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1b14c6', v='-2092') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='311') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c8270', v='399') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c907e', v='3486') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c9e8f', v='3357') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1caca2', v='3670') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cbab1', v='3580') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cc8c1', v='5398') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cd6d0', v='5478') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ce4de', v='5618') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1cf2f0', v='5659') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0109', v='5923') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d0f06', v='6651') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d1d15', v='6654') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d2b25', v='6713') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d3935', v='6885') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d4745', v='6893') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d5555', v='6705') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d6366', v='5853') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7175', v='5545') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d7f86', v='5589') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d8d95', v='-3219') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1d9ba6', v='-3620') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1da9b6', v='-3623') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1db7c7', v='-3472') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dc5d5', v='-3630') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dd3e6', v='-3723') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1de1f5', v='-6033') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1df006', v='-6752') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1dfe16', v='-6647') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e0c26', v='-6778') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e1a36', v='-6794') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e2847', v='-6593') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e3659', v='-6136') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e4467', v='-5653') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e5281', v='-4910') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6086', v='-4908') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e6e96', v='-4803') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e7ca6', v='-1970') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e8ab5', v='-1820') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1e98c6', v='-1821') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ea6d5', v='-2271') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eb4e6', v='-2332') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ec2f6', v='-2646') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ed106', v='-2644') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1edf16', v='-2749') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1eed26', v='-2728') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1efb36', v='-2587') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f0946', v='-2548') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1756', v='-2377') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f2566', v='-2339') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f3376', v='-2566') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4187', v='-2784') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f4f96', v='-3191') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f5da7', v='-3581') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f6bb6', v='-3591') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f79c7', v='-3124') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f87d6', v='-3337') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f95e7', v='-3142') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fa401', v='-2806') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fb204', v='-2480') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fc016', v='-2497') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fce25', v='-2171') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fdc35', v='-2133') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1fea45', v='-2159') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1ff855', v='-2500') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='200665', v='-2395') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='201475', v='-3469') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='202286', v='-4512') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203095', v='-5355') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='203ea5', v='-5915') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='204cb6', v='-5771') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='205ac6', v='-5287') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2068d6', v='-5386') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2076e6', v='-5976') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2084f6', v='-6100') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='209306', v='-6742') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20a116', v='-6312') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20af26', v='-5533') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20bd37', v='-5455') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20cb46', v='-4630') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20d957', v='-4348') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20e767', v='-4046') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='20f581', v='-3855') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='210386', v='-3519') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211194', v='-3131') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='211fa5', v='-3014') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='212db5', v='-2904') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='213bc5', v='-2826') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2149d6', v='-3680') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2157e5', v='-4507') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2165f6', v='-5844') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='217406', v='-6195') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='218217', v='-6165') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219026', v='-6142') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='219e39', v='-6223') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ac46', v='-5938') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba57', v='-5926') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21c867', v='-5557') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21d677', v='-6240') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21e487', v='-5750') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21f296', v='-5772') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2200a6', v='-5468') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='220eb7', v='-5393') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='221cc6', v='-4543') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='222ad7', v='-3876') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2238e7', v='-3622') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='224701', v='-3292') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='225505', v='-1681') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='226315', v='-2082') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227125', v='-2043') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='227f35', v='-1675') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='228d45', v='-1785') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='229b54', v='-3494') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22a965', v='-4080') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22b776', v='-4454') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22c586', v='-4816') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22d397', v='-4405') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22e1a6', v='-4620') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22efb6', v='-4820') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='22fdc7', v='-4643') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='230bd7', v='-4435') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2319e6', v='-5397') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2327f6', v='-5558') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23361b', v='-5883') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='234416', v='-5207') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='235226', v='-5203') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236037', v='-5253') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='236e46', v='-4342') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='237c57', v='-4194') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='238a66', v='-3991') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='239881', v='-3195') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23a685', v='-3328') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23b495', v='-3191') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23c2a4', v='-2966') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23d0b5', v='-2959') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23dec4', v='-2916') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23ecd5', v='-3620') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='23fae4', v='-4562') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2408f6', v='-5013') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='241706', v='-5793') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='242518', v='-6605') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='243325', v='-6787') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244137', v='-6732') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='244f46', v='-6435') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b66', v='-6415') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='247976', v='-6261') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='248786', v='-5371') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24957e', v='-5703') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24a38f', v='-5668') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24b19c', v='-5810') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24bfac', v='-5495') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24cdbc', v='-5368') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24dbcd', v='-4539') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24e9e5', v='-4003') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='24f808', v='-3487') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='250616', v='-3597') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='251426', v='-3575') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='252236', v='-3422') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253047', v='-3610') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='253e56', v='-4069') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='254c67', v='-4209') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='255a76', v='-4977') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='256887', v='-5845') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='257697', v='-5662') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2584a8', v='-15155') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2592b6', v='-8621') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25a0c7', v='-4609') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25aed7', v='-6329') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25bce7', v='-6120') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25caf8', v='-5819') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25d907', v='-5800') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25e718', v='-5627') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='25f527', v='-5318') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='260338', v='-5543') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261149', v='-4916') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='261f59', v='-4589') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='262d68', v='-4670') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='263b83', v='-3694') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='264986', v='-3491') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='265795', v='-3582') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2665a6', v='-3683') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2673b5', v='-3608') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2681c6', v='-3681') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='268fd5', v='-3850') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='269de6', v='-3923') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26abf6', v='-3955') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26ba06', v='-4467') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26c817', v='-4257') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26d62b', v='-3915') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26e436', v='-3897') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='26f247', v='-3531') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270057', v='-3798') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e67', v='-3628') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='271c77', v='-4540') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='272a87', v='-5171') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='273897', v='-5038') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2746a8', v='-5028') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2754b9', v='-5029') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2762c7', v='-3993') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2770d8', v='-3551') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='277ee7', v='-3206') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='674601', h='3dc1a7e0') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='22123:137:88:76:103:69:89:6047:6571:2134:6414:2223:2727.231:1435.675:5.979:0.067:0:4171:41039:29052:42104:12218:24721:13504:8975:11153:2990:8665:9759:11742') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='673801', h='3dc1a7e0') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='0:0:0:0:0:0:0:2472:22505:25160:16425:30012:23514.229:11675.362:9.272:0.416:0:6491:3221:2867:4204:22822:3047:6263:15342:9785:32424:23346:21578:23508') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='673401', h='3dc1a7e0') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='72898:191:188:176:178:174:181:10441:14079:1360:46667:74131:80996.13:50324.326:32.188:0.038:0:44027:200289:109216:52461:12951:75896:69196:104852:117036:96903:120714:124308:96207') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='673001', h='3dc1a7e0') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='0:0:0:0:0:0:0:3476:3226:5597:4853:0:0:0:0.001:0.137:0:0:0:0:0:50735:59205:0:0:0:0:0:0:0') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='26274601', h='3dc1a7e0') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='0::1305::2869::4482::6066::7396::8573::10262::11922::13773::15492::17522::19544::21452::22070::22075::22080::22084::22085::22090::22097::22103::22109::22116::0::6::13::20::27::32::34::41::48::54::61::68::75::82::89::96::103::110::110::111::116::119::123::129') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a300', v='0::5::5::7::11::12::12::17::24::30::37::44::51::58::65::69::71::71::71::73::75::76::76::81::0::6::13::20::27::34::40::44::50::::51::51::51::51::51::51::51::51::51::51::54::60::63::69::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55410', v='6::13::20::27::34::38::44::46::46::47::52::58::65::66::66::67::69::69::70::76::83::89::96::0::5::12::19::25::30::31::35::37::37::37::37::38::44::45::45::45::45::45::45::48::51::56::62::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f710', v='6::14::21::28::35::42::47::50::50::50::52::59::65::69::72::74::75::75::75::75::78::79::82::0::7::14::21::28::34::38::44::45::45::49::56::63::70::76::80::835::1675::2038::2039::2856::3158::3607::4431::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a10', v='629::797::1456::2382::2476::2477::2821::2821::2821::::2821::2821::2856::2865::2865::3049::3223::3267::3532::4304::5147::5147::5449::0::101::102::252::592::605::605::605::605::612::612::612::612::612::612::612::679::767::767::767::767::767::767::910::0::1158') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b20', v='2289::2701::3076::3076::3385::3904::3904::3904::3904::3904::3904::3904::3904::3904::3904::3911::4023::4599::5237::5494::5780::6072::0::622::622::622::622::622::716::819::819::819::819::819::819::870::870::870::870::870::870::870::870::870::870::1024::0::1127') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee20', v='1954::2173::2377::2377::2377::2377::2377::2377::2381::2381::2381::2381::2381::2381::2381::2381::2381::2381::2381::2384::2400::2400::0::163::163::163::163::163::163::163::163::204::330::751::1400::1433::1433::1433::1435.1::1435.1::1435.1::1435.1::1435.1::1435.144::1435.375::1435.381::0::1.179') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129120', v='2.486::3.869::5.278::5.809::5.811::5.811::5.811::5.843::5.967::5.968::5.968::5.968::5.968::5.968::5.968::5.968::5.968::5.968::5.968::5.968::5.969::5.969::0::0::0::0::0::0::0::0::0::0::0::0.001::0.014::0.032::0.04::0.046::0.049::0.05::0.05::0.05::0.05::0.05::0.05::0.053::0::0.005') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153420', v='0.005::0.005::0.005::0.005::0.005::0.005::0.005::0.005::0.005::0.005::0.005::0.005::0.005::0.005::0.005::0.009::0.009::0.009::0.009::0.009::0.009::0.014::0::0.004::0.02::0.031::0.042::0.044::0.044::0.044::0.044::0.044::0.044::0.044::0.047::0.05::0.051::0.054::0.054::0.054::0::0::0::0::175::1878::0::2303') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d720', v='5016::7889::10825::12785::13428::14568::16281::17870::18757::19673::22314::25317::28017::30611::32571::::33078::33570::34865::36124::37670::39908::0::978::2540::4236::5992::6773::6818::6915::7643::8510::8618::::9354::10334::10857::11190::11387::11387::12818::15547::19011::21077::22610::25682::0::2682::5757::9094') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9640', v='12439::14810::16426::18172::20462::22851::24957::26912::29200::31789') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='8197::8264::8365::8365::8996::9996::10570::10570::10570::10807::0::388::776::1655::2374::2391::2391::2429::3332::3677::3768::3851::4294::4930::5847::6625::7852::9492::11328::13376::15620::17946::20170::22469::0::1979::4179::4817::5302::5612::5802::6075::6787::7172::7489::7668::7867::8184') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1760', v='8270::8270::8270::8270::8270::8279::8425::8766::9261::11379::0::967::2232::3224::3584::3708::3742::4192::4373::4379::4379::4379::4379::4379::4379::4468::4816::5111::5533::6393::6740::7394::7394::7988::0::1479::2407::2907::3341::3347::3347::3522::4521::4702::5104::5399::6511::6511') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba60', v='6511::6511::7554::8046::8046::8084::8781::9437::9437::10034::0::258::258::258::258::258::303::541::1097::1122::1122::1122::1122::1397::1429::2052::2638::2638::2638::2638::2638::2779::2779::2779::0::211::716::993::993::993::993::1058::1060::1060::1060::1060::1123::1640') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b70', v='3280::3952::3962::3962::3962::4297::5586::6998::7956::0::492::1570::2683::3585::3615::3618::3659::3659::3659::3659::3973::6767::8644::8717::8718::8718::8718::8718::8718::8718::8898::8898::9205::0::502::1825::3722::5758::7237::8159::8226::8226::8226::8226::8226::8226::8226::8226') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e70', v='8226::8240::8504::8980::9466::10308::10666::10666::10739') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='26273801', h='3dc1a7e0') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a300', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55410', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f710', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::680::1753::2436::2439::2471::2472::2472::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a10', v='273::304::304::304::392::1467::1961::2735::4511::::12114::16337::18252::18452::19051::20724::21115::21611::21616::21616::21647::22460::22505::0::1428::1786::1821::1821::2100::3116::4606::5700::6263::7232::8321::9202::9706::10109::10567::11827::12356::14818::17416::20186::22628::24467::25160::0::16') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b20', v='16::16::18::761::2317::2345::3031::5010::7681::10719::13491::14079::14541::14788::15028::15551::16182::16182::16327::16351::16394::16424::0::1254::2521::3304::4214::6189::8542::8884::9714::10907::12447::13604::14407::14928::16855::18323::20016::22306::23952::25511::26700::27858::29512::30012::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee20', v='14::14::16::848::2512::4114::5556::7070::7967::9424::10812::11722::12829::13950::15033::17095::19423::20670::21129::21828::22608::23444::0::1024::1508::1786::1985::2951::4900::6589::8053::8849::8929::8929::8929::9502::10380::11200::11669.43::11670.714::11671.501::11673.236::11674.324::11674.616::11674.887::11675.345::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129120', v='0::0::0::0::0.632::1.57::2.787::4.389::5.353::6.676::7.825::8.473::9.059::9.07::9.083::9.113::9.149::9.186::9.222::9.254::9.263::9.267::0::0.054::0.078::0.094::0.113::0.149::0.2::0.229::0.234::0.241::0.244::0.245::0.245::0.245::0.245::0.245::0.246::0.276::0.309::0.348::0.383::0.408::0.415::0.416::0::0.022') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153420', v='0.031::0.032::0.033::0.045::0.076::0.1::0.121::0.161::0.197::0.227::0.252::0.257::0.264::0.275::0.295::0.315::0.322::0.329::0.332::0.348::0.357::0.357::0::0::0::0::0::0::0.015::0.051::0.062::0.068::0.079::0.091::0.094::0.094::0.097::0.108::0.125::0.161::1425::3563::5087::6081::6491::6491::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d720', v='0::0::0::0::3::4::17::17::17::17::83::83::83::83::83::::2815::3221::3221::3221::3221::3221::0::0::0::0::0::0::503::2124::2124::2135::2187::::2220::2220::2220::2220::2231::2857::2867::2867::2867::2867::2867::2867::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9640', v='0::0::0::0::5::5::5::5::5::5') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='14139::14218::14538::16467::16493::16493::17913::20388::22503::22822::0::242::242::242::242::473::1614::2783::2783::2785::3043::3046::3046::3047::3047::3047::3047::3047::3047::3047::3047::3047::3047::3047::0::0::0::101::101::101::155::155::155::155::155::158::158::158') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1760', v='303::689::1267::3291::5362::5964::5964::6205::6263::6263::0::67::78::78::78::96::279::1257::2169::3382::5628::7692::9144::9800::11410::13193::13770::14500::14502::14526::14528::14693::15337::15342::0::0::128::128::128::631::1960::2834::2847::2994::3445::3445::3445::4010') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba60', v='5304::6802::7188::7304::7777::8119::8119::8238::9731::9785::0::3202::5137::5593::6304::8577::12322::12561::12561::13960::16533::20127::22841::22863::23106::23247::23247::24987::26402::27590::28075::29263::31438::32325::0::171::171::200::344::1476::2425::3387::4145::5875::9210::12291::15144::15144') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b70', v='15144::15144::17267::21864::23232::23346::23346::23346::23346::0::86::86::86::86::188::709::1333::2511::4313::7593::10434::10434::10443::10622::10810::11293::12302::14859::17476::19565::19742::21035::21234::0::13::13::13::13::13::13::216::929::2058::3700::5698::8782::11698::14663') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e70', v='17767::18546::19155::19155::19155::19155::20730::23016::23508') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='26273401', h='3dc1a7e0') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='0::4177::8348::12421::16466::20389::24550::29638::35390::42329::49608::56982::64119::70819::72824::72831::72838::72845::72851::72859::72866::72873::72881::72889::0::8::16::24::32::40::48::56::65::73::81::89::97::105::114::122::131::138::145::152::160::167::175::183') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a300', v='0::8::16::23::31::39::47::55::63::71::79::87::96::104::112::120::128::135::142::150::157::165::172::180::0::8::17::25::34::43::51::58::66::::79::85::92::98::105::111::117::124::131::138::145::153::160::168::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55410', v='8::16::25::33::41::49::56::64::70::77::84::91::98::105::111::118::125::132::139::147::154::162::170::0::7::16::24::32::40::48::55::63::69::76::82::89::96::103::109::116::122::128::135::143::150::158::166::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f710', v='8::17::25::34::43::51::58::66::73::80::87::94::101::108::115::122::129::135::142::150::157::165::172::0::8::17::25::34::42::50::58::65::72::78::85::92::100::107::114::2595::7913::10294::10439::10439::10439::10441::10441::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a10', v='2::4::9::9::9::9::69::181::236::::327::461::720::1393::2215::3059::4593::6342::8041::9944::11561::12314::13166::0::47::47::47::47::47::47::47::47::48::59::87::127::134::135::142::182::537::769::1000::1156::1208::1230::1264::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b20', v='0::0::0::0::58::464::1214::2866::5195::7644::10189::13108::15902::18773::21557::24345::28271::32267::36012::39360::42352::44782::0::1215::1879::2581::3232::3730::4627::6845::9426::13213::17460::21812::26408::30878::35346::40061::44776::49145::53501::57575::61429::64968::68029::71154::0::2541') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee20', v='4757::6749::8707::10446::12296::14817::18021::22192::24710::29209::33799::38000::42199::46375::50681::55062::59387::63686::67971::71883::75378::78274::0::1965::3785::5589::7408::9042::10735::13143::16254::20473::25210::29898::34989::39265::43547::47659::50298.816::50302.733::50306.729::50310.326::50313.783::50317.062::50320.016::50322.277::0::1.986') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129120', v='3.746::5.427::7.116::8.649::10.225::12.377::14.972::18.155::21.519::24.079::26.789::29.872::32.038::32.075::32.093::32.11::32.132::32.149::32.163::32.173::32.181::32.183::0::0::0::0::0::0::0::0::0::0.001::0.005::0.008::0.012::0.014::0.014::0.014::0.014::0.017::0.023::0.026::0.029::0.032::0.035::0.038::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153420', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0.004::0.013::0.023::0.035::0.039::0.04::0.04::0::0::0::0::0::0::0::0::0.011::0.064::0.184::0.299::0.403::0.491::0.587::0.684::0.777::0.882::4649::11369::18384::25539::32098::38189::0::5631') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d720', v='11134::16580::21819::26934::32449::39011::46164::57329::70535::83592::96112::107934::119836::131836::143932::::159972::167838::175759::182940::189261::195260::0::4361::8637::12844::17026::21292::26185::31514::37629::44147::50295::::62972::69142::75490::81871::88411::92634::95263::98136::101493::104338::106264::108086::0::1118::2125::3163') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9640', v='3972::4424::5117::6670::8682::11273::14036::16800::19585::21687') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='12951::12951::12951::12951::12951::12951::12951::12951::12951::12951::0::0::0::0::0::0::0::0::0::0::2097::5658::9307::12837::16437::20072::24855::31120::37813::44635::51509::58224::64519::70460::0::4912::9779::12468::14377::16196::18098::20357::22916::25572::28333::31048::33673::36268') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1760', v='38769::41197::43617::46222::49307::52694::56229::59586::62790::66147::0::2563::5010::7377::9547::11662::13970::16722::19820::23668::28455::34079::39799::45148::50589::56448::62674::69084::75584::81629::87007::92190::96664::100953::0::3686::6981::10109::13149::16039::19168::23164::28263::34238::40473::46590::52821::58868') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba60', v='64810::70628::77026::83160::89027::94673::100155::105383::109691::113559::0::1996::3876::5949::7945::9673::11583::15197::19355::23959::28689::33229::37981::42745::47470::52656::58228::63768::69353::74634::79872::84699::88966::93090::0::3272::6519::9646::12665::15529::18785::22767::27361::33026::39197::45634::52231::58688') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b70', v='71623::77897::83661::88919::94509::100226::106004::111517::116497::0::3504::7147::10760::14341::17823::21561::25845::30381::35821::41529::48026::57310::64898::70924::77195::83135::89105::94900::100321::105698::111053::115727::120309::0::3610::7127::10778::14421::18015::21712::25564::29454::33598::37946::42100::46054::49824::53500') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e70', v='57099::61385::66221::71352::76382::81368::85828::89677::93036') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='26273001', h='3dc1a7e0') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a300', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55410', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f710', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::10::521::1009::1914::2329::2804::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a10', v='1070::1205::1242::1361::1873::2688::2888::2968::3013::::3093::3165::3226::3226::3226::3226::3226::3226::3226::3226::3226::3226::3226::0::504::975::1420::1776::2305::2796::3212::4002::4254::4373::4494::4549::4753::4950::5087::5453::5453::5453::5453::5454::5473::5509::5581::0::581') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b20', v='1231::1927::2760::3902::4853::4853::4853::4853::4853::4853::4853::4853::4853::4853::4853::4853::4853::4853::4853::4853::4853::4853::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee20', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129120', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0.017::0.031::0.048::0.065::0.085::0.105::0.114::0.116::0.116::0.116::0.116::0.116::0.117::0.12::0.123::0.128::0.135::0.135::0.135::0.135::0.135::0.135::0.136::0::0.016') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153420', v='0.036::0.054::0.074::0.096::0.119::0.137::0.152::0.165::0.178::0.19::0.204::0.216::0.228::0.237::0.249::0.256::0.256::0.256::0.256::0.256::0.256::0.257::0::0.012::0.018::0.02::0.021::0.025::0.032::0.037::0.037::0.037::0.037::0.037::0.037::0.037::0.037::0.037::0.037::0.037::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d720', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9640', v='0::0::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='9208::9490::12579::16633::20164::23882::28334::33713::39220::44909::0::6542::13180::19855::26594::33432::40280::46777::52524::57875::59205::59205::59205::59205::59205::59205::59205::59205::59205::59205::59205::59205::59205::59205::0::0::0::0::0::0::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1760', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba60', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b70', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e70', v='0::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='1314601', h='3dc1a7e0') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='270370') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='1313801', h='3dc1a7e0') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='306693') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='1313401', h='3dc1a7e0') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='1576111') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='1313001', h='3dc1a7e0') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='127098') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='52514601', h='3dc1a7e0') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='0::1305::2869::4482::6066::7396::8573::10262::11922::13773::15492::17522::19544::21452::22070::22075::22080::22084::22085::22090::22097::22103::22109::22116::22123::22129::22136::22143::22150::22156::22158::22166::22173::22180::22186::22193::22200::22207::22214::22221::22228::22235::22235::22236::22241::22244::22247::22254') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a300', v='22261::22267::22267::22269::22273::22274::22274::22280::22287::22294::22301::22308::22315::22322::22329::22333::22335::22335::22335::22336::22338::22339::22339::22344::22351::22358::22365::22372::22379::22386::22391::22395::22402::::22404::22404::22404::22404::22404::22404::22404::22404::22404::22404::22407::22413::22416::22422::22429') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55410', v='22436::22443::22450::22457::22464::22468::22475::22477::22477::22478::22483::22489::22495::22497::22497::22498::22499::22499::22500::22507::22513::22520::22526::22533::22538::22545::22552::22559::22564::22564::22569::22571::22572::22572::22572::22573::22579::22580::22580::22580::22580::22580::22580::22583::22585::22590::22596::22603') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f710', v='22610::22617::22624::22632::22639::22645::22650::22653::22653::22653::22655::22662::22669::22672::22675::22677::22678::22678::22678::22678::22682::22683::22686::22693::22701::22708::22715::22722::22728::22732::22738::22740::22740::22744::22751::22758::22765::22770::22775::23529::24370::24733::24734::25551::25853::26301::27126::28742') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a10', v='29372::29540::30199::31125::31218::31219::31564::31564::31564::::31564::31564::31599::31607::31607::31792::31965::32010::32274::33047::33890::33890::34193::35316::35417::35418::35569::35909::35921::35921::35921::35921::35928::35928::35928::35928::35928::35928::35928::35995::36083::36083::36083::36083::36083::36083::36226::37450::38609') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b20', v='39740::40151::40527::40527::40836::41356::41356::41356::41356::41356::41356::41356::41356::41356::41356::41363::41476::42051::42690::42946::43231::43524::43865::44488::44488::44488::44488::44488::44582::44685::44685::44685::44685::44685::44685::44736::44736::44736::44736::44736::44736::44736::44736::44736::44736::44890::46089::47216') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee20', v='48043::48262::48466::48466::48466::48466::48466::48466::48471::48471::48471::48471::48471::48471::48471::48471::48471::48471::48471::48474::48491::48491::48816::48980::48980::48980::48980::48980::48980::48980::48980::49022::49147::49569::50218::50251::50251::50251::50252.91::50252.91::50252.91::50252.91::50252.91::50252.954::50253.185::50253.192::50253.487::50254.667') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129120', v='50255.973::50257.356::50258.765::50259.296::50259.299::50259.299::50259.299::50259.332::50259.455::50259.456::50259.456::50259.456::50259.456::50259.456::50259.456::50259.456::50259.456::50259.456::50259.456::50259.457::50259.458::50259.458::50259.467::50259.467::50259.467::50259.467::50259.467::50259.467::50259.467::50259.467::50259.467::50259.467::50259.467::50259.469::50259.482::50259.5::50259.507::50259.513::50259.516::50259.517::50259.517::50259.517::50259.517::50259.517::50259.517::50259.521::50259.535::50259.54') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153420', v='50259.54::50259.54::50259.541::50259.541::50259.541::50259.541::50259.541::50259.541::50259.541::50259.541::50259.541::50259.541::50259.541::50259.541::50259.541::50259.546::50259.546::50259.546::50259.546::50259.547::50259.547::50259.552::50259.557::50259.561::50259.577::50259.588::50259.6::50259.601::50259.601::50259.601::50259.601::50259.601::50259.601::50259.601::50259.604::50259.608::50259.609::50259.612::50259.612::50259.612::50258::50258::50258::50258::50434::52137::54431::56734') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d720', v='59447::62321::65257::67217::67860::69000::70713::72302::73189::74106::76746::79750::82449::85043::87003::::87510::88002::89297::90556::92102::94340::95470::96449::98011::99707::101463::102244::102289::102386::103115::103983::104091::::104826::105806::106330::106662::106859::106859::108290::111019::114483::116549::118083::121154::124524::127207::130282::133619') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9640', v='136963::139335::140951::142698::144988::147377::149483::151438::153726::156315') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='174829::174896::174996::174996::175627::176628::177201::177201::177201::177439::178849::179238::179626::180505::181224::181241::181241::181279::182183::182528::182619::182701::183144::183780::184697::185475::186702::188342::190179::192226::194470::196796::199020::201319::203571::205550::207751::208389::208873::209184::209373::209646::210358::210744::211061::211240::211439::211756') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1760', v='211843::211843::211843::211843::211843::211852::211998::212339::212833::214951::217077::218045::219309::220302::220662::220786::220819::221269::221451::221458::221458::221458::221458::221458::221458::221547::221895::222189::222611::223471::223818::224472::224473::225066::226054::227533::228461::228962::229396::229401::229401::229577::230576::230758::231159::231454::232566::232566') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba60', v='232566::232566::233609::234101::234101::234139::234836::235492::235492::236089::237208::237467::237467::237467::237467::237467::237511::237749::238306::238331::238331::238331::238331::238606::238637::239260::239846::239846::239846::239846::239847::239988::239988::239988::240200::240411::240916::241193::241194::241194::241194::241260::241262::241262::241262::241262::241325::241842') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b70', v='243482::244154::244164::244164::244164::244499::245788::247200::248157::248866::249358::250436::251549::252452::252482::252484::252526::252526::252526::252526::252840::255634::257511::257584::257585::257585::257585::257585::257585::257585::257766::257766::258073::258628::259130::260454::262350::264387::265865::266787::266854::266854::266854::266854::266854::266854::266854::266854') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e70', v='266854::266868::267132::267609::268095::268936::269294::269294::269367') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='52513801', h='3dc1a7e0') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a300', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55410', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f710', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::680::1753::2436::2439::2471::2472::2472::2472') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a10', v='2745::2776::2776::2776::2864::3939::4434::5207::6983::::14587::18809::20724::20924::21523::23196::23587::24084::24088::24088::24119::24933::24978::24978::26406::26764::26799::26799::27079::28094::29584::30678::31242::32211::33301::34181::34685::35088::35546::36806::37336::39798::42396::45166::47608::49447::50139::50139::50155') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b20', v='50155::50156::50158::50901::52457::52486::53171::55151::57821::60860::63632::64220::64682::64929::65169::65692::66324::66324::66469::66492::66535::66565::66565::67820::69087::69869::70780::72755::75107::75449::76279::77473::79013::80171::80973::81494::83421::84889::86582::88872::90518::92077::93266::94424::96079::96579::96579::96579') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee20', v='96594::96594::96596::97428::99092::100694::102136::103651::104547::106004::107392::108302::109410::110530::111613::113676::116005::117251::117711::118409::119188::120024::120093::121118::121602::121880::122079::123044::124994::126683::128148::128945::129025::129025::129025::129597::130475::131295::131764.303::131765.588::131766.375::131768.11::131769.198::131769.49::131769.761::131770.219::131770.236::131770.236') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129120', v='131770.236::131770.236::131770.236::131770.236::131770.868::131771.806::131773.023::131774.625::131775.589::131776.912::131778.062::131778.709::131779.295::131779.306::131779.319::131779.349::131779.386::131779.423::131779.458::131779.49::131779.499::131779.503::131779.509::131779.564::131779.587::131779.604::131779.623::131779.659::131779.709::131779.738::131779.744::131779.752::131779.755::131779.755::131779.755::131779.755::131779.755::131779.755::131779.756::131779.786::131779.819::131779.858::131779.893::131779.918::131779.926::131779.926::131779.926::131779.949') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153420', v='131779.958::131779.959::131779.96::131779.972::131780.003::131780.027::131780.049::131780.089::131780.125::131780.155::131780.179::131780.184::131780.191::131780.202::131780.222::131780.243::131780.251::131780.258::131780.261::131780.277::131780.285::131780.285::131780.288::131780.288::131780.288::131780.288::131780.288::131780.289::131780.303::131780.34::131780.35::131780.356::131780.368::131780.381::131780.384::131780.384::131780.386::131780.398::131780.415::131780.451::133205::135343::136866::137861::138272::138272::138272::138272') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d720', v='138272::138272::138272::138272::138275::138277::138290::138290::138290::138290::138355::138355::138355::138355::138355::::141088::141493::141493::141493::141493::141493::141493::141493::141493::141493::141493::141493::141997::143618::143618::143629::143681::::143714::143714::143714::143714::143725::144351::144362::144362::144362::144362::144362::144362::144362::144362::144362::144362') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9640', v='144362::144362::144362::144362::144368::144368::144368::144368::144368::144368') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='162707::162786::163107::165035::165062::165062::166481::168956::171072::171391::171391::171634::171634::171634::171634::171865::173006::174175::174175::174177::174435::174438::174438::174439::174439::174439::174439::174439::174439::174439::174439::174439::174439::174439::174439::174439::174439::174540::174540::174540::174594::174594::174594::174594::174594::174598::174598::174598') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1760', v='174742::175129::175706::177731::179803::180405::180405::180646::180704::180704::180704::180771::180782::180782::180782::180801::180983::181961::182873::184086::186332::188396::189848::190504::192114::193897::194474::195204::195206::195230::195232::195397::196041::196046::196046::196046::196175::196175::196175::196678::198007::198881::198895::199043::199494::199494::199494::200058') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba60', v='201353::202851::203237::203353::203825::204167::204167::204286::205778::205833::205833::209036::210970::211426::212138::214410::218156::218395::218395::219795::222368::225963::228676::228698::228941::229082::229082::230822::232237::233425::233910::235098::237273::238160::238259::238431::238431::238460::238604::239735::240685::241648::242406::244137::247471::250551::253404::253404') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b70', v='253404::253404::255527::260124::261492::261606::261606::261606::261606::261606::261692::261692::261692::261692::261794::262315::262939::264118::265921::269200::272041::272041::272049::272229::272417::272900::273909::276466::279084::281173::281349::282642::282841::283185::283198::283198::283198::283198::283198::283198::283402::284114::285244::286886::288884::291968::294884::297849') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e70', v='300954::301733::302341::302341::302341::302341::303915::306201::306693') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='52513401', h='3dc1a7e0') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='0::4177::8348::12421::16466::20389::24550::29638::35390::42329::49608::56982::64119::70819::72824::72831::72838::72845::72851::72859::72866::72873::72881::72889::72898::72906::72914::72922::72931::72938::72946::72955::72963::72972::72979::72987::72995::73004::73012::73021::73029::73037::73045::73052::73060::73067::73074::73083') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a300', v='73092::73100::73108::73116::73124::73131::73139::73147::73155::73164::73172::73180::73189::73197::73205::73213::73221::73228::73235::73242::73250::73258::73265::73273::73281::73290::73298::73307::73316::73324::73333::73341::73349::::73362::73368::73374::73381::73387::73394::73400::73407::73414::73421::73428::73436::73443::73451::73459') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55410', v='73467::73476::73484::73492::73501::73508::73516::73523::73529::73536::73543::73550::73557::73564::73571::73578::73585::73592::73599::73607::73614::73622::73630::73639::73647::73655::73663::73672::73680::73687::73694::73702::73709::73715::73721::73728::73735::73742::73748::73755::73762::73769::73776::73783::73791::73798::73806::73814') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f710', v='73823::73831::73840::73849::73858::73866::73874::73881::73888::73895::73902::73909::73917::73924::73931::73938::73945::73952::73959::73966::73973::73980::73988::73996::74005::74014::74022::74031::74039::74047::74055::74062::74069::74076::74084::74091::74098::74105::74112::76593::81912::84293::84438::84438::84438::84439::84440::84440') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a10', v='84442::84445::84450::84450::84450::84450::84510::84622::84677::::84768::84902::85161::85834::86656::87500::89034::90783::92482::94386::96003::96756::97608::98520::98568::98568::98568::98568::98568::98568::98569::98569::98570::98581::98609::98649::98656::98657::98664::98704::99059::99291::99522::99679::99730::99752::99786::99882::99882') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b20', v='99882::99882::99882::99882::99940::100346::101096::102749::105078::107527::110072::112991::115786::118656::121441::124228::128154::132149::135895::139243::142235::144665::146550::147766::148430::149132::149783::150281::151178::153396::155977::159764::164011::168363::172959::177429::181897::186612::191328::195697::200054::204127::207981::211520::214581::217705::220682::223224') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee20', v='225440::227431::229389::231128::232979::235501::238705::242877::245395::249894::254484::258685::262884::267059::271365::275747::280072::284371::288656::292567::296062::298958::301678::303643::305464::307268::309087::310721::312414::314823::317933::322153::326889::331577::336668::340944::345227::349338::151978.697::151982.614::151986.61::151990.207::151993.665::151996.943::151999.897::152002.158::152004.207::152006.194') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129120', v='152007.954::152009.635::152011.324::152012.857::152014.433::152016.586::152019.181::152022.365::152025.728::152028.288::152030.998::152034.081::152036.247::152036.284::152036.302::152036.319::152036.341::152036.359::152036.372::152036.383::152036.39::152036.393::152036.398::152036.398::152036.398::152036.398::152036.398::152036.398::152036.398::152036.398::152036.398::152036.399::152036.404::152036.407::152036.412::152036.414::152036.414::152036.414::152036.414::152036.417::152036.422::152036.425::152036.428::152036.432::152036.435::152036.437::152036.437::152036.437') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153420', v='152036.437::152036.437::152036.437::152036.437::152036.437::152036.437::152036.437::152036.437::152036.437::152036.437::152036.437::152036.437::152036.437::152036.437::152036.437::152036.441::152036.45::152036.46::152036.472::152036.476::152036.478::152036.478::152036.478::152036.478::152036.478::152036.478::152036.478::152036.478::152036.478::152036.478::152036.489::152036.543::152036.663::152036.778::152036.883::152036.971::152037.066::152037.164::152037.257::152037.361::356685::363405::370420::377575::384134::390225::396064::401696') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d720', v='407198::412644::417883::422998::428513::435075::442229::453395::466601::479658::492177::504000::515901::527901::539997::::556036::563903::571823::579005::585326::591325::596354::600715::604992::609199::613381::617646::622539::627868::633983::640502::646650::::659328::665498::671845::678227::684766::688990::691619::694492::697849::700694::702620::704442::705572::706691::707697::708736') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9640', v='709545::709997::710690::712243::714255::716847::719609::722373::725158::727261') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='770988::770988::770988::770988::770988::770988::770988::770988::770988::770988::770988::770988::770988::770988::770988::770988::770988::770988::770988::770988::773086::776647::780296::783826::787426::791061::795844::802109::808801::815624::822498::829213::835508::841449::846886::851798::856665::859354::861263::863083::864985::867245::869803::872460::875221::877937::880561::883156') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1760', v='885657::888085::890505::893110::896194::899581::903116::906473::909677::913034::916082::918646::921093::923460::925630::927744::930053::932806::935904::939753::944540::950163::955884::961233::966673::972533::978758::985168::991668::997713::1003091::1008274::1012749::1017038::1020937::1024624::1027919::1031047::1034087::1036976::1040106::1044102::1049201::1055177::1061411::1067528::1073759::1079806') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba60', v='1085748::1091566::1097964::1104098::1109965::1115611::1121093::1126321::1130630::1134497::1137973::1139970::1141849::1143923::1145918::1147647::1149557::1153171::1157329::1161934::1166664::1171204::1175957::1180721::1185446::1190632::1196204::1201743::1207328::1212608::1217847::1222674::1226942::1231066::1234878::1238151::1241398::1244525::1247544::1250408::1253663::1257645::1262239::1267905::1274075::1280512::1287109::1293566') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b70', v='1306501::1312775::1318539::1323798::1329387::1335105::1340883::1346396::1351376::1355594::1359099::1362742::1366355::1369936::1373418::1377156::1381440::1385976::1391416::1397124::1403622::1412905::1420494::1426519::1432791::1438731::1444700::1450495::1455916::1461293::1466648::1471323::1475904::1479903::1483514::1487030::1490682::1494324::1497918::1501615::1505468::1509358::1513503::1517850::1522004::1525957::1529728::1533403') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e70', v='1537003::1541289::1546124::1551256::1556286::1561272::1565731::1569581::1572940') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='52513001', h='3dc1a7e0') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a300', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55410', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f710', v='0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::0::10::521::1009::1914::2329::2804::3476') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a10', v='4546::4682::4719::4838::5350::6165::6365::6445::6490::::6571::6643::6704::6704::6704::6704::6704::6704::6704::6704::6704::6704::6704::6704::7208::7679::8124::8480::9010::9501::9918::10708::10960::11079::11200::11255::11459::11656::11793::12159::12159::12159::12159::12160::12179::12215::12287::12302::12884') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b20', v='13533::14230::15062::16204::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee20', v='17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17157.492::17157.492::17157.492::17157.492::17157.492::17157.492::17157.492::17157.492::17157.492::17157.492') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129120', v='17157.492::17157.492::17157.492::17157.492::17157.492::17157.492::17157.492::17157.492::17157.492::17157.492::17157.492::17157.492::17157.492::17157.492::17157.492::17157.492::17157.492::17157.492::17157.492::17157.492::17157.492::17157.492::17157.493::17157.511::17157.525::17157.542::17157.558::17157.579::17157.599::17157.608::17157.611::17157.612::17157.612::17157.612::17157.612::17157.613::17157.616::17157.618::17157.623::17157.631::17157.631::17157.631::17157.631::17157.631::17157.631::17157.631::17157.632::17157.649') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153420', v='17157.669::17157.686::17157.706::17157.728::17157.752::17157.771::17157.786::17157.799::17157.812::17157.824::17157.838::17157.85::17157.861::17157.871::17157.883::17157.89::17157.89::17157.89::17157.89::17157.89::17157.89::17157.891::17157.899::17157.911::17157.918::17157.92::17157.921::17157.925::17157.932::17157.937::17157.937::17157.937::17157.937::17157.937::17157.937::17157.937::17157.937::17157.937::17157.937::17157.937::17156::17156::17156::17156::17156::17156::17156::17156') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d720', v='17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156::17156') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9640', v='17156::17156::17156::17156::17156::17156::17156::17156::17156::17156') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='26366::26648::29737::33790::37320::41038::45491::50870::56378::62066::67892::74435::81073::87748::94487::101325::108173::114671::120417::125768::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1760', v='127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba60', v='127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b70', v='127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098::127098') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e70', v='127098::127098::127098::127098::127098::127098::127098::127098::127098') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='34601', h='3dc1a7e0') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='6094564::6095869::6097433::6099046::6100630::6101960::6103137::6104826::6106487::6108338::6110057::6112087::6114108::6116017::6116635::6116640::6116645::6116648::6116649::6116654::6116661::6116667::6116674::6116681::6116688::6116694::6116701::6116708::6116715::6116721::6116723::6116730::6116738::6116745::6116751::6116757::6116764::6116771::6116779::6116786::6116793::6116799::6116800::6116800::6116805::6116808::6116812::6116819') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a300', v='6116826::6116832::6116832::6116834::6116838::6116839::6116839::6116845::6116852::6116859::6116866::6116873::6116880::6116887::6116893::6116898::6116899::6116899::6116899::6116901::6116902::6116904::6116905::6116910::6116917::6116924::6116931::6116938::6116945::6116952::6116957::6116961::6116968::::6116970::6116970::6116970::6116970::6116970::6116970::6116970::6116970::6116970::6116970::6116972::6116978::6116980::6116987::6116994') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55410', v='6117001::6117008::6117015::6117022::6117029::6117033::6117039::6117042::6117042::6117044::6117049::6117054::6117061::6117062::6117062::6117063::6117065::6117065::6117066::6117072::6117078::6117084::6117091::6117098::6117103::6117110::6117117::6117124::6117129::6117129::6117134::6117136::6117137::6117137::6117137::6117138::6117144::6117145::6117145::6117145::6117145::6117145::6117145::6117148::6117150::6117154::6117160::6117167') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f710', v='6117174::6117181::6117189::6117196::6117203::6117210::6117216::6117219::6117220::6117220::6117222::6117228::6117235::6117239::6117241::6117244::6117244::6117244::6117244::6117244::6117247::6117248::6117252::6117259::6117266::6117273::6117280::6117287::6117293::6117297::6117303::6117304::6117305::6117309::6117316::6117323::6117330::6117336::6117340::6118095::6118936::6119299::6119300::6120117::6120419::6120867::6121692::6123308') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a10', v='6123938::6124106::6124765::6125691::6125784::6125785::6126129::6126129::6126129::::6126129::6126129::6126164::6126173::6126173::6126358::6126531::6126576::6126840::6127612::6128455::6128455::6128757::6129880::6129981::6129983::6130133::6130473::6130485::6130485::6130485::6130485::6130493::6130493::6130493::6130493::6130493::6130493::6130493::6130561::6130649::6130649::6130649::6130649::6130649::6130649::6130792::6132016::6133175') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b20', v='6134306::6134717::6135093::6135093::6135402::6135922::6135922::6135922::6135922::6135922::6135922::6135922::6135922::6135922::6135922::6135929::6136041::6136617::6137256::6137512::6137797::6138089::6138431::6139053::6139053::6139053::6139053::6139053::6139147::6139251::6139251::6139251::6139251::6139251::6139251::6139302::6139302::6139302::6139302::6139302::6139302::6139302::6139302::6139302::6139302::6139456::6140655::6141782') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee20', v='6142609::6142828::6143032::6143032::6143032::6143032::6143032::6143032::6143036::6143036::6143036::6143036::6143036::6143036::6143036::6143036::6143036::6143036::6143036::6143039::6143056::6143056::6143382::6143545::6143545::6143545::6143545::6143545::6143545::6143545::6143545::6143587::6143713::6144135::6144783::6144816::6144816::6144816::144818.2::144818.2::144818.2::144818.2::144818.2::144818.243::144818.474::144818.48::144818.775::144819.955') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129120', v='144821.261::144822.644::144824.053::144824.584::144824.587::144824.587::144824.587::144824.62::144824.744::144824.746::144824.746::144824.746::144824.746::144824.746::144824.746::144824.746::144824.746::144824.746::144824.746::144824.746::144824.746::144824.746::144824.755::144824.755::144824.755::144824.755::144824.755::144824.755::144824.755::144824.756::144824.756::144824.756::144824.756::144824.757::144824.77::144824.788::144824.796::144824.802::144824.805::144824.806::144824.806::144824.806::144824.806::144824.806::144824.806::144824.809::144824.823::144824.828') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153420', v='144824.828::144824.828::144824.829::144824.829::144824.829::144824.829::144824.829::144824.829::144824.829::144824.829::144824.829::144824.829::144824.829::144824.829::144824.829::144824.834::144824.834::144824.834::144824.834::144824.835::144824.835::144824.84::144824.845::144824.849::144824.865::144824.876::144824.888::144824.889::144824.889::144824.889::144824.889::144824.889::144824.889::144824.889::144824.892::144824.896::144824.897::144824.9::144824.9::144824.9::6144824::6144824::6144824::6144824::6145000::6146702::6148995::6151298') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d720', v='6154011::6156885::6159821::6161781::6162424::6163565::6165278::6166868::6167755::6168671::6171312::6174315::6177014::6179609::6181568::::6182076::6182567::6183863::6185122::6186668::6188906::6190037::6191016::6192577::6194274::6196029::6196810::6196855::6196952::6197681::6198548::6198657::::6199392::6200372::6200895::6201228::6201425::6201425::6202856::6205585::6209048::6211115::6212648::6215720::6219090::6221773::6224848::6228185') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9640', v='6231530::6233901::6235517::6237264::6239554::6241943::6244049::6246003::6248291::6250880') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='6269393::6269460::6269561::6269561::6270193::6271193::6271766::6271766::6271766::6272003::6273414::6273802::6274190::6275070::6275788::6275805::6275805::6275844::6276747::6277093::6277184::6277267::6277710::6278346::6279262::6280041::6281268::6282908::6284744::6286792::6289036::6291362::6293586::6295884::6298136::6300115::6302316::6302954::6303439::6303749::6303938::6304212::6304924::6305309::6305626::6305804::6306004::6306321') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1760', v='6306407::6306407::6306407::6306407::6306407::6306417::6306562::6306904::6307399::6309517::6311643::6312611::6313875::6314868::6315228::6315352::6315385::6315835::6316016::6316023::6316023::6316023::6316023::6316023::6316023::6316113::6316460::6316755::6317177::6318036::6318383::6319038::6319038::6319632::6320620::6322099::6323027::6323528::6323962::6323967::6323967::6324143::6325141::6325322::6325724::6326020::6327132::6327132') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba60', v='6327132::6327132::6328174::6328667::6328667::6328705::6329402::6330058::6330058::6330655::6331774::6332033::6332033::6332033::6332033::6332033::6332078::6332316::6332872::6332897::6332897::6332897::6332897::6333173::6333204::6333827::6334413::6334413::6334413::6334413::6334413::6334554::6334554::6334554::6334765::6334977::6335481::6335759::6335759::6335759::6335759::6335824::6335826::6335826::6335826::6335826::6335889::6336407') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b70', v='6338047::6338719::6338729::6338729::6338729::6339065::6340354::6341766::6342723::6343432::6343924::6345002::6346115::6347018::6347048::6347050::6347091::6347091::6347091::6347091::6347406::6350200::6352077::6352150::6352150::6352150::6352150::6352150::6352150::6352150::6352331::6352331::6352638::6353193::6353695::6355019::6356915::6358952::6360430::6361352::6361420::6361420::6361420::6361420::6361420::6361420::6361420::6361420') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e70', v='6361420::6361434::6361698::6362174::6362660::6363502::6363860::6363860::6363933') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='33801', h='3dc1a7e0') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a300', v='88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55410', v='88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f710', v='88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88179422::88180102::88181176::88181859::88181861::88181894::88181896::88181896::88181896') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a10', v='88182169::88182200::88182200::88182200::88182288::88183363::88183857::88184631::88186407::::88194010::88198233::88200148::88200348::88200947::88202620::88203011::88203507::88203512::88203512::88203543::88204356::88204401::88204401::88205830::88206188::88206222::88206222::88206502::88207517::88209008::88210102::88210666::88211635::88212724::88213604::88214108::88214512::88214969::88216229::88216759::88219221::88221818::88224589::88227031::88228870::88229563::88229563::88229580') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b20', v='88229580::88229580::88229582::88230325::88231881::88231910::88232595::88234574::88237245::88240283::88243056::88243643::88244105::88244352::88244593::88245115::88245746::88245746::88245891::88245915::88245959::88245988::88245989::88247244::88248510::88249293::88250203::88252178::88254531::88254874::88255704::88256898::88258438::88259595::88260398::88260919::88262845::88264314::88266006::88268297::88269942::88271502::88272690::88273849::88275503::88276003::88276003::88276003') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee20', v='88276017::88276017::88276019::88276851::88278515::88280118::88281560::88283074::88283971::88285428::88286815::88287726::88288833::88289953::88291037::88293099::88295427::88296674::88297133::88297832::88298612::88299447::88299517::88300541::88301025::88301304::88301503::88302468::88304417::88306106::88307571::88308368::88308448::88308448::88308448::88309021::88309899::88310719::111188.016::111189.3::111190.088::111191.823::111192.91::111193.202::111193.473::111193.931::111193.948::111193.948') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129120', v='111193.948::111193.948::111193.948::111193.948::111194.58::111195.519::111196.735::111198.338::111199.302::111200.625::111201.775::111202.422::111203.008::111203.02::111203.032::111203.062::111203.098::111203.135::111203.171::111203.203::111203.212::111203.216::111203.221::111203.276::111203.299::111203.316::111203.335::111203.371::111203.422::111203.452::111203.457::111203.464::111203.468::111203.468::111203.468::111203.468::111203.468::111203.468::111203.469::111203.5::111203.532::111203.571::111203.606::111203.632::111203.639::111203.639::111203.639::111203.661') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153420', v='111203.671::111203.671::111203.672::111203.684::111203.715::111203.739::111203.761::111203.801::111203.837::111203.867::111203.891::111203.897::111203.904::111203.915::111203.935::111203.955::111203.962::111203.969::111203.972::111203.988::111203.997::111203.997::111204::111204.001::111204.001::111204.001::111204.001::111204.001::111204.016::111204.052::111204.063::111204.07::111204.081::111204.093::111204.097::111204.097::111204.099::111204.11::111204.128::111204.164::88312628::88314767::88316290::88317284::88317694::88317694::88317694::88317694') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d720', v='88317694::88317694::88317694::88317694::88317698::88317700::88317713::88317713::88317713::88317713::88317778::88317778::88317778::88317778::88317778::::88320511::88320917::88320917::88320917::88320917::88320917::88320917::88320917::88320917::88320917::88320917::88320917::88321420::88323042::88323042::88323053::88323105::::88323137::88323137::88323137::88323137::88323148::88323775::88323785::88323785::88323785::88323785::88323785::88323785::88323785::88323785::88323785::88323785') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9640', v='88323785::88323785::88323785::88323785::88323790::88323790::88323790::88323790::88323790::88323790') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='88342130::88342209::88342529::88344458::88344485::88344485::88345905::88348379::88350494::88350813::88350813::88351056::88351056::88351056::88351056::88351287::88352428::88353598::88353598::88353601::88353859::88353862::88353862::88353863::88353863::88353863::88353863::88353863::88353863::88353863::88353863::88353863::88353863::88353863::88353863::88353863::88353863::88353965::88353965::88353965::88354018::88354018::88354018::88354018::88354018::88354021::88354021::88354021') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1760', v='88354166::88354552::88355130::88357154::88359226::88359828::88359828::88360068::88360126::88360126::88360126::88360194::88360205::88360205::88360205::88360223::88360406::88361385::88362297::88363511::88365757::88367821::88369273::88369929::88371538::88373322::88373899::88374629::88374631::88374655::88374657::88374822::88375466::88375471::88375471::88375471::88375599::88375599::88375599::88376102::88377432::88378306::88378319::88378467::88378917::88378917::88378918::88379482') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba60', v='88380777::88382275::88382661::88382777::88383250::88383592::88383592::88383711::88385203::88385257::88385257::88388459::88390394::88390850::88391561::88393834::88397579::88397819::88397819::88399218::88401792::88405386::88408100::88408122::88408365::88408505::88408505::88410246::88411660::88412849::88413333::88414521::88416696::88417583::88417683::88417854::88417854::88417883::88418027::88419159::88420108::88421071::88421828::88423559::88426894::88429975::88432828::88432828') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b70', v='88432828::88432828::88434951::88439548::88440916::88441030::88441030::88441030::88441030::88441030::88441116::88441116::88441116::88441116::88441218::88441739::88442363::88443542::88445344::88448624::88451464::88451464::88451473::88451652::88451840::88452323::88453332::88455889::88458507::88460595::88460772::88462065::88462264::88462608::88462622::88462622::88462622::88462622::88462622::88462622::88462826::88463538::88464667::88466310::88468309::88471393::88474308::88477274') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e70', v='88480378::88481157::88481766::88481766::88481766::88481766::88483340::88485626::88486118') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='33401', h='3dc1a7e0') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='9437795::9441972::9446144::9450217::9454261::9458184::9462346::9467434::9473186::9480126::9487404::9494779::9501916::9508615::9510621::9510628::9510635::9510642::9510649::9510656::9510663::9510671::9510678::9510687::9510695::9510703::9510712::9510720::9510728::9510736::9510743::9510751::9510760::9510768::9510776::9510784::9510792::9510800::9510809::9510817::9510826::9510833::9510840::9510847::9510855::9510863::9510871::9510879') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a300', v='9510888::9510896::9510904::9510912::9510920::9510928::9510935::9510944::9510952::9510960::9510968::9510976::9510984::9510993::9511001::9511009::9511016::9511023::9511030::9511038::9511045::9511053::9511061::9511069::9511078::9511086::9511095::9511103::9511112::9511121::9511129::9511137::9511144::::9511158::9511165::9511171::9511178::9511184::9511190::9511197::9511203::9511209::9511216::9511223::9511231::9511239::9511247::9511255') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55410', v='9511264::9511272::9511280::9511289::9511297::9511305::9511313::9511320::9511327::9511333::9511340::9511347::9511354::9511361::9511368::9511375::9511382::9511389::9511397::9511404::9511412::9511419::9511427::9511435::9511443::9511451::9511460::9511468::9511476::9511484::9511492::9511500::9511506::9511513::9511519::9511526::9511533::9511539::9511546::9511553::9511559::9511565::9511572::9511580::9511587::9511595::9511603::9511611') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f710', v='9511619::9511628::9511637::9511646::9511654::9511662::9511670::9511677::9511684::9511691::9511698::9511705::9511713::9511720::9511727::9511734::9511740::9511747::9511754::9511761::9511769::9511777::9511785::9511794::9511803::9511811::9511820::9511828::9511836::9511844::9511852::9511859::9511866::9511873::9511880::9511888::9511895::9511902::9511909::9514390::9519709::9522089::9522234::9522234::9522234::9522235::9522235::9522235') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a10', v='9522237::9522240::9522245::9522245::9522245::9522245::9522305::9522417::9522472::::9522564::9522698::9522957::9523630::9524451::9525296::9526830::9528579::9530279::9532182::9533799::9534552::9535404::9536317::9536364::9536364::9536364::9536364::9536364::9536364::9536365::9536365::9536366::9536378::9536405::9536445::9536452::9536454::9536460::9536501::9536855::9537087::9537318::9537474::9537525::9537548::9537581::9537677::9537678') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b20', v='9537678::9537678::9537678::9537678::9537736::9538143::9538893::9540546::9542875::9545324::9547869::9550788::9553582::9556453::9559237::9562025::9565951::9569947::9573692::9577040::9580032::9582462::9584347::9585562::9586226::9586928::9587579::9588077::9588974::9591192::9593773::9597560::9601808::9606160::9610756::9615226::9619694::9624409::9629124::9633493::9637849::9641922::9645776::9649316::9652378::9655502::9658479::9661021') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee20', v='9663237::9665228::9667187::9668925::9670776::9673297::9676502::9680673::9683191::9687690::9692279::9696481::9700679::9704855::9709161::9713542::9717867::9722167::9726451::9730363::9733859::9736754::9739475::9741440::9743260::9745064::9746883::9748517::9750210::9752619::9755730::9759949::9764686::9769374::9774465::9778741::9783023::9787135::89775.123::89779.04::89783.036::89786.633::89790.091::89793.369::89796.324::89798.585::89800.635::89802.621') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129120', v='89804.381::89806.063::89807.752::89809.284::89810.86::89813.012::89815.607::89818.79::89822.154::89824.714::89827.425::89830.508::89832.673::89832.71::89832.728::89832.745::89832.767::89832.785::89832.798::89832.809::89832.817::89832.82::89832.825::89832.825::89832.825::89832.825::89832.825::89832.825::89832.825::89832.825::89832.825::89832.826::89832.831::89832.834::89832.838::89832.84::89832.84::89832.84::89832.84::89832.843::89832.848::89832.851::89832.854::89832.858::89832.861::89832.864::89832.864::89832.864') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='153420', v='89832.864::89832.864::89832.864::89832.864::89832.864::89832.864::89832.864::89832.864::89832.864::89832.864::89832.864::89832.864::89832.864::89832.864::89832.864::89832.868::89832.877::89832.887::89832.899::89832.903::89832.904::89832.904::89832.904::89832.904::89832.904::89832.904::89832.904::89832.904::89832.904::89832.904::89832.916::89832.97::89833.09::89833.204::89833.309::89833.397::89833.492::89833.59::89833.683::89833.788::9794482::9801201::9808217::9815372::9821930::9828022::9833861::9839493') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='17d720', v='9844996::9850441::9855681::9860795::9866311::9872873::9880027::9891193::9904398::9917454::9929974::9941796::9953698::9965698::9977794::::9993834::10001701::10009621::10016803::10023124::10029123::10034151::10038513::10042789::10046996::10051178::10055443::10060336::10065665::10071780::10078299::10084446::::10097123::10103293::10109641::10116023::10122562::10126785::10129414::10132288::10135645::10138489::10140416::10142238::10143368::10144487::10145494::10146532') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1a9640', v='10147341::10147793::10148486::10150039::10152051::10154643::10157406::10160170::10162955::10165058') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1c7460', v='10208784::10208784::10208784::10208784::10208784::10208784::10208784::10208784::10208784::10208784::10208784::10208784::10208784::10208784::10208784::10208784::10208784::10208784::10208784::10208784::10210882::10214444::10218093::10221623::10225223::10228858::10233641::10239906::10246598::10253420::10260295::10267010::10273305::10279245::10284682::10289594::10294461::10297150::10299060::10300879::10302781::10305041::10307600::10310256::10313017::10315732::10318357::10320952') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='1f1760', v='10323453::10325881::10328301::10330906::10333991::10337378::10340913::10344270::10347474::10350831::10353880::10356443::10358890::10361257::10363427::10365542::10367850::10370602::10373700::10377548::10382335::10387959::10393679::10399028::10404469::10410328::10416554::10422964::10429464::10435510::10440887::10446070::10450544::10454833::10458732::10462419::10465714::10468842::10471882::10474772::10477901::10481897::10486997::10492973::10499207::10505324::10511555::10517602') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='21ba60', v='10523544::10529362::10535760::10541894::10547762::10553407::10558890::10564118::10568426::10572294::10575771::10577767::10579647::10581720::10583716::10585444::10587354::10590968::10595126::10599731::10604460::10609000::10613753::10618516::10623241::10628428::10633999::10639539::10645125::10650405::10655643::10660471::10664738::10668862::10672675::10675947::10679195::10682322::10685340::10688204::10691460::10695443::10700037::10705702::10711873::10718309::10724907::10731364') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='246b70', v='10744298::10750573::10756336::10761594::10767184::10772901::10778679::10784193::10789173::10793391::10796895::10800538::10804151::10807732::10811214::10814952::10819236::10823772::10829212::10834920::10841418::10850701::10858289::10864315::10870586::10876526::10882496::10888291::10893713::10899090::10904444::10909119::10913700::10917699::10921310::10924826::10928478::10932121::10935715::10939412::10943265::10947154::10951299::10955647::10959802::10963755::10967526::10971201') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='270e70', v='10974801::10979086::10983922::10989053::10994083::10999069::11003529::11007379::11010738') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 5) +SAX.startElement(par, memind='33001', h='3dc1a7e0') +SAX.characters( + , 6) +SAX.startElement(val, o='0', v='38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='2a300', v='38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='55410', v='38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='7f710', v='38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612576::38612587::38613097::38613585::38614490::38614906::38615380::38616053') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='a9a10', v='38617123::38617258::38617296::38617414::38617926::38618741::38618942::38619021::38619066::::38619147::38619219::38619281::38619281::38619281::38619281::38619281::38619281::38619281::38619281::38619281::38619281::38619281::38619281::38619786::38620257::38620702::38621058::38621587::38622078::38622494::38623284::38623536::38623655::38623776::38623831::38624035::38624232::38624369::38624735::38624735::38624735::38624735::38624737::38624755::38624791::38624863::38624879::38625460') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='d4b20', v='38626110::38626807::38627639::38628781::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='fee20', v='38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::38629732::229734.398::229734.398::229734.398::229734.398::229734.398::229734.398::229734.398::229734.398::229734.398::229734.398') +SAX.endElement(val) +SAX.characters( + , 6) +SAX.startElement(val, o='129120', v='229734.398::229734.398::229734.398::229734.398::229734.398::229734.398::229734.398::229734.398::229734.398::229734.398::229734.398::229734.398::229734.398::229734.398::229734.398::229734.398::229734.398::229734.398::229734.398::229734.398::229734.398::229734.398::229734.399::229734.417::229734.431::229734.448::229734.465::229734.485::229734.505::229734.514::229734.517::229734.517::229734.517::229734.517::229734.517::229734.518::229734.521::229734.523::229734.528::229734.536::229734.536::229734.536::229734.536::229734.536::229734.536::229734.536::229734.537::229734.554') +SAX.endElement(val) +SAX.characters( + , 5) +SAX.endElement(par) +SAX.characters( + , 4) +SAX.endElement(device) +SAX.characters( + , 3) +SAX.endElement(select) +SAX.characters( + , 2) +SAX.endElement(data) +SAX.characters( +, 1) +SAX.endElement(electroxml) +SAX.endDocument() diff --git a/result/att4.sax2 b/result/att4.sax2 new file mode 100644 index 0000000..553148c --- /dev/null +++ b/result/att4.sax2 @@ -0,0 +1,36976 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.comment( edited with XML Spy v4.4 U (http://www.xmlspy.com) by Slava (GIVC) ) +SAX.startElementNs(electroxml, NULL, NULL, 0, 1, 0, modified='2002...', 15) +SAX.characters( + , 2) +SAX.startElementNs(data, NULL, NULL, 0, 2, 0, from='2002...', 11, to='2002...', 11) +SAX.characters( + , 3) +SAX.startElementNs(select, NULL, NULL, 0, 0, 0) +SAX.characters( + , 4) +SAX.startElementNs(device, NULL, NULL, 0, 1, 0, serialnumb='E000...', 9) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='1134...', 6, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='55"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='1693...', 8, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='196....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='199....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='200....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='201....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='199....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='197....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='193....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='197....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='195....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='192....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='195....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='195....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='195....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='197....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='222....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='222....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='221....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='222....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='222....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='220"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='221....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='221....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='219....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='219....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='222"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='221....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='218....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='220"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='218....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='219....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='219....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='219"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='219....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='221....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='217....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='218....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='218....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='218....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='219....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='218....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='222....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='218....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='219....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='219....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='219....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='219....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='221....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='222....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='224....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='223....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='222....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='222....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='219....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='219....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='219"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='218....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='221....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='222....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='223....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='223....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='222....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='221"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='219....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='219....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='217....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='219"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='218....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='219....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='219....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='223....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='222"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='224....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='219....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='219....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='219"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='218....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='219....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='219....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='221"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='220....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='225....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='225"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='222....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='223....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='224....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='223....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='195....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='190"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='122....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='354....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='333....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='323....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='278....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='286....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='292....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='21.4...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='273....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='272....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='285....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='28.5...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='68.4...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='147....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='95.7...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='89.6...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='88.3...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='92.4...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='149....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='148....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='127....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='198....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='187....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='182....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='195....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='203....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='124....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='159....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='230....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='79.8...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='51.3...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='22.5...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='323....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='341....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='46.4...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='71.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='71.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='63.4...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='76.4...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='58.4...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='92"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='79.6...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='63.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='51.3...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='81.7...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='205....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='96.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='95.7...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='96.7...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='92.8...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='91.4...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='86.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='270"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='270....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='296....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='306....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='331....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='13.7...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='46.4...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='262....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='166....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='143....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='127....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='132....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='128....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='155....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='170....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='176....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='176....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='168....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='172....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='185....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='196....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='178....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='193....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='176....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='196....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='202....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='99.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='130....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='132....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='121....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='100....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='192....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='153....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='170....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='155....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='167....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='165....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='184....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='159....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='163....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='163....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='160....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='165"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='156....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='163....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='162....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='154....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='157....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='197....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='203....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='212....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='185....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='187....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='162"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='149....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='136....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='145....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='164....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='158....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='163"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='161....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='168....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='168....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='165....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='168....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='163....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='147....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='163"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='166....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='177....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='179....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='161"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='174....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='203....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='158....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='172....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='172....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='168....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='138"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='135....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='157....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='160....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='175....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='184....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='188....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='170"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='173....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='167"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='172....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='164....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='166....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='151....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='158....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='170....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='185....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='160....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='188....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='207....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='214....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='213....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='218....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='210....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='178....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='162....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='156....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='153....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='143....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='160....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='153....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='163....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='168....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='169....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='139....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='142....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='122....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='125....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='110....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='110....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='190....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='99.6...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='209....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='76.2...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='61.5...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='44.5...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='44.2...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='60.4...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='64.6...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='67.3...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='341....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='115....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='117....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='252....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='261....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='313....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='311....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='292"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='57.6...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='151....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='92.7...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='93.4...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='100....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='97.4...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='184"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='289....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='274....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='39.8...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='6.5"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='355....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='19.4...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='44.2...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='61.4...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='55.5...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='60.2...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='71.7...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='66.3...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='61.5...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='38.5...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='17.3...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='35.6...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='44.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='71.4...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='166....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='125"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='176"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='195....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='99.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='90"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='273....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='344....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='307....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='271....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='278....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='291....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='52.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='76.6...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='87.6...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='170....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='174....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='175....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='186....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='183....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='181....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='173....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='170....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='165....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='163....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='161....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='165....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='170....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='173....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='187....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='201....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='205....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='204....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='204....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='208....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='204....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='193....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='186....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='192....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='194....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='184....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='184....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='185....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='194....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='192....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='192....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='190....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='185....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='170....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='187....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='191....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='191....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='197....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='195....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='189....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='201....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='202....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='204....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='196....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='182....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='162....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='187....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='187....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='179....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='181....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='188....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='186....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='183....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='182....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='176....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='175....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='178....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='223....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='228....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='229....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='216....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='226....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='249....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='245....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='250....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='251....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='252....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='259....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='254....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='218....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='228....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='227....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='214....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='218....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='217"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='231....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='230....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='52"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='340....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='18.5...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='357....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='344....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='338....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='28.4...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='21.8...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='10.4...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='343....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='342....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='358....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='353....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='353....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='1.4"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='6.4"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='10.5...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='350....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='350....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='357....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='181....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='184....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='192....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='193....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='194....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='190....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='195"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='195....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='195....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='198....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='198....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='199....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='200....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='202....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='200....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='203....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='204....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='188....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='193....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='184....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='190....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='188....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='192....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='185....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='186....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='182....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='187....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='186....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='168....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='164....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='154....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='134....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='154....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='182....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='188....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='176"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='206....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='216....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='211....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='210....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='211....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='192....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='185....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='176....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='171....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='129....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='173....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='157....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='161....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='163....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='176....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='166....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='161....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='159....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='177....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='183....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='185....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='182....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='189....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='173....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='179....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='193....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='202....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='197....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='186....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='188....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='178....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='160....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='168....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='184"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='191....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='177....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='182....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='185....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='176....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='170....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='169....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='159....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='190....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='173....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='175....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='187....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='188....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='160"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='175....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='192....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='200....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='116....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='166....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='162....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='130....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='122"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='193....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='183....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='157....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='142....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='145....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='182....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='182....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='173....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='188....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='179....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='169....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='164....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='170....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='178....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='158"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='161....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='175....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='169....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='185....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='191....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='176....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='167....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='154....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='167"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='166....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='146....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='155....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='157....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='189....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='187....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='186....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='179....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='139....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='161....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='172"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='189....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='187....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='188....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='186....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='198....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='193....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='195....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='198....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='180....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='180"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='161....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='165....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='165....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='160....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='147....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='196....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='195....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='186....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='178....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='177....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='172"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='156....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='154....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='157"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='179....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='166"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='172....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='196....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='179....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='195....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='202....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='209....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='204....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='199....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='186....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='175....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='170....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='159....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='156....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='137....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='146"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='139....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='143....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='137....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='177....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='186....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='184....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='188....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='191....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='146....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='161....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='188....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='1069...', 8, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='50.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='49.9...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='50"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='8612...', 4, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='25.0...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='24.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='23.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='23.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='22.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='22.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='26.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='28.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='34.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='40.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='40.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='38.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='35.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='34.1...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='0.04...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='0.04...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='36.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='17.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='8.35...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='5.95...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='7.13...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='8.64...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='6.42...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='10.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='14.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='3.54...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='3.8"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='6.09...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='5.20...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='7.52...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='11.3...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='0.95...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='5.77...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='21.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='22.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='19.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='1.26...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='3.13...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='6.09...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='7.27...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='9.37...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='7.71...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='8.18...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='9.84...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='5.25...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='2.64...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='7.17...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='19.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='4.70...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='5.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='5.02...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='4.40...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='5.16...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='10.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='5.09...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='10.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='4.08...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='5.22...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='6.62...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='2.57...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='3.76...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='2.92...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='4.23...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='2.44...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='10.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='15.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='10.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='14.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='11.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='7.26...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='3.27...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='12.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='8.86...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='8.42...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='7.50...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='7.80...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='10.9...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='5.74...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='2.08...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='7.75...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='16.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='18.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='18.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='16.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='13.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='14.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='14.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='14.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='15.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='20.0...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='20.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='16.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='17.0...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='11.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='10.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='8.73...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='14.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='4.86...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='4.14...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='6.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='14.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='9.98...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='11.9...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='15.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='22.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='22.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='24.1...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='23.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='23.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='24.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='25.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='24.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='25.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='23.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='19.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='19.2...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='16.1...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='16.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='16.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='14.2...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='14.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='9.55...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='9.07...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='8.33...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='9.77...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='14.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='16.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='19.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='23.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='23.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='25.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='21.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='19.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='21.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='21.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='22.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='25.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='23.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='20.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='22.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='18.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='16.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='13.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='13.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='8.71...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='8.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='8.19...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='8.30...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='10.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='14.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='15.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='19.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='23.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='20.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='26.0...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='21.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='21.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='22.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='19.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='0.02...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='0.02...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='0.01...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='0.01...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='0.01...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='0.01...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='0.00...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='0.00...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='0.00...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0.27...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0.09...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0.14...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0.20...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0.21...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0.21...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0.21...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0.07...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0.05...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0.44...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0.21...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0.16...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0.15...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0.23...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0.33...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0.21...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0.04...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0.02...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0.02...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0.14...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0.08...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0.05...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0.23...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0.20...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0.16...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0.02...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0.07...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0.15...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0.18...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0.14...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0.15...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0.16...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0.21...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0.30...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0.16...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0.14...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0.25...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0.21...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0.19...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0.30...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0.03...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0.06...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0.04...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0.02...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0.09...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0.14...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0.09...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0.07...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0.17...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0.21...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0.08...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0.60...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0.67...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0.72...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0.47...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0.47...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0.49...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0.49...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0.57...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0.62...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='35.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='33.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='35.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='32.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='28.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='29.2...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='30.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='28.0...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='27.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='28.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='25.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='25.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='30.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='32.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='38.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='64.3...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='63.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='60.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='57.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='59.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='56.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='60.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='56.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='37.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='40.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='38.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='32.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='30.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='26.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='21.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='21.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='21.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='20.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='19.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='20.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='25.6...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='29.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='31.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='28.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='32.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='32.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='29.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='29.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='29.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='29.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='29.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='10.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='18.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='23.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='25.8...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='13.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='15.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='22.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='20.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='14.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='17.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='18.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='14.8...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='11.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='6.40...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='13.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='18.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='16.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='16.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='17.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='16.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='16.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='4.33...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='4.33...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='21.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='20.8...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='22.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='22.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='34.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='33.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='32.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='33.0...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='34.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='36.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='36.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='36.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='37.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='37.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='37.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='32.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='31.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='31.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='15.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='17.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='17.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='16.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='17.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='18.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='32.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='37.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='36.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='37.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='37.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='35.9...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='34.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='31.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='27.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='27.7...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='27.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='9.65...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='8.98...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='8.87...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='11.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='11.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='13.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='12.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='13.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='12.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='12.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='12.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='11.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='11.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='13.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='20.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='17.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='17.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='17.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='15.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='18.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='19.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='15.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='14.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='14.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='10.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='10.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='10.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='12.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='18.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='17.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='24.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='27.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='31.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='28.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='26.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='27.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='31.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='30.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='33.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='31.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='27.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='26.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='22.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='21.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='20.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='20.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='17.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='14.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='14.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='13.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='14.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='18.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='22.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='29.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='30.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='31.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='30.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='30.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='29.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='29.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='30.4...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='31.0...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='28.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='28.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='27.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='26.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='24.0...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='18.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='17.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='16.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='18.4...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='9.83...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='9.73...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='12.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='17.2...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='17.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='19.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='22.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='25.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='28.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='28.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='23.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='22.6...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='22.1...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='27.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='27.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='29.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='27.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='25.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='25.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='23.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='21.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='19.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='15.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='16.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='15.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='13.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='14.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='15.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='18.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='22.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='26.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='34.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='35.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='36.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='34.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='32.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='33.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='31.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='36.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='30.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='28.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='28.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='27.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='26.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='21.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='20.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='17.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='17.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='17.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='16.1...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='17.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='20.9...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='21.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='25.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='31.2...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='33.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='82.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='46.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='22.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='31.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='30.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='28.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='30.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='31.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='28.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='27.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='24.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='22.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='23.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='17.5...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='17.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='18.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='20.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='19.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='18.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='18.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='18.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='18.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='23.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='23.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='26.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='24.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='23.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='23.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='24"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='22.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='26.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='25.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='25.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='24.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='23.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='18.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='15.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='8608...', 4, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='8604...', 4, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='21.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='20.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='19.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='19.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='18.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='18.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='22.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='24.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='29.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='35.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='35.0...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='33.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='30.7...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='29.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='0.06...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='0.06...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='0.07...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='0.06...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='0.06...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='0.06...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='0.06...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='0.06...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='0.06...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='0.06...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='0.06...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='0.06...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='0.06...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='0.06...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='0.06...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='0.06...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='30.2...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='16.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='10.2...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='3.83...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='3.30...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='4.19...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='2.00...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='4.91...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='7.89...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='2.93...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='1.48...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='2.19...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='1.67...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='5.98...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='10.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='3.65...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='7.25...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='19.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='21.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='18.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='3.45...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='4.91...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='7.33...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='7.20...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='9.19...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='8.02...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='7.68...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='8.66...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='7.73...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='5.14...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='5.08...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='18.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='4.67...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='3.97...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='2.24...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='2.51...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='4.78...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='10.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='5.86...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='9.66...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='5.19...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='5.35...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='7.74...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='3.65...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='4.23...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='3.28...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='5.65...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='2.24...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='12.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='15.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='11.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='15.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='12.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='8.53...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='1.47...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='7.44...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='4.26...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='3.80...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='3.75...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='5.53...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='9.52...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='1.98...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='4.15...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='9.62...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='17.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='19.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='19.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='14.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='12.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='13.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='13.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='13.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='13.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='18.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='17.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='15.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='15.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='11.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='9.89...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='7.99...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='13.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='6.33...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='5.63...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='7.36...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='14.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='9.67...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='12.8...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='14.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='21.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='21.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='22.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='20.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='22.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='22.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='24.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='23.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='23.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='22.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='18.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='18.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='15.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='16.3...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='15.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='12.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='12.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='8.94...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='8.83...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='8.79...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='10.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='13.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='15.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='19.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='22.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='21.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='23.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='20.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='18.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='20.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='19.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='21.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='23.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='21.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='19.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='20.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='17.3...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='16.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='13.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='12.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='8.96...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='8.31...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='8.35...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='8.49...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='10.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='13.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='15.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='18.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='22.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='19.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='23.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='20.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='19.8...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='20.8...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='18.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='0.02...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='0.02...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='0.01...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='0.00...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='0.00...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='0.00...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='0.00...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='0.00...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='0.00...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='0.01...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='0.01...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0.26...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0.12...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0.16...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0.22...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0.24...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0.23...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0.23...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0.07...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0.08...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0.41...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0.19...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0.15...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0.14...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0.21...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0.30...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0.20...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0.02...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0.09...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0.03...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0.02...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0.08...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0.25...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0.22...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0.19...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0.04...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0.02...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0.15...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0.09...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0.12...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0.18...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0.28...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0.16...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0.15...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0.24...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0.21...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0.18...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0.09...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0.09...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0.29...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0.06...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0.07...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0.06...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0.04...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0.05...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0.07...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0.03...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0.02...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0.02...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0.07...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0.17...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0.22...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0.57...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0.63...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0.67...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0.45...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0.46...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0.47...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0.48...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0.56...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0.59...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='34.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='33.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='34.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='31.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='26.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='26.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='28.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='25.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='24.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='25.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='22.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='22.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='28.0...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='30.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='35.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='61.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='61.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='58.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='54.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='56.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='53.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='57.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='53.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='36.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='36.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='35.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='29.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='28.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='25.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='19.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='19.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='19.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='18.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='18.1...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='20.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='25.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='27.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='29.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='27.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='30.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='29.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='28.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='28.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='28.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='28.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='28.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='11.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='14.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='19.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='20.2...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='11.2...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='12.2...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='16.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='15.1...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='9.95...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='12.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='12.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='9.68...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='6.80...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='4.55...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='10.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='14.6...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='14.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='13.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='15.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='13.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='12.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='3.99...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='2.18...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='16.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='14.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='16.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='15.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='29.2...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='27.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='25.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='24.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='25.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='28.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='28.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='28.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='30.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='30.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='30.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='24.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='23.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='23.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='15.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='16.6...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='16.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='15.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='16.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='16.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='27.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='31.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='31.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='32.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='31.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='30.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='29.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='27.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='23.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='23.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='23.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='8.57...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='7.91...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='7.85...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='9.84...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='10.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='11.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='11.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='12.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='11.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='11.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='10.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='10.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='10.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='13.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='19.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='16.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='15.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='15.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='14.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='15.7...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='16.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='13.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='11.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='11.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='9.24...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='8.96...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='9.42...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='11.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='18.0...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='15.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='23.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='26.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='29.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='25.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='25.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='26.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='30.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='28.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='30.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='28.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='24.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='23.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='21.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='19.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='18.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='17.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='15.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='13.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='13.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='12.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='13.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='17.2...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='21.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='25.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='27.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='28.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='27.6...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='28.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='27.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='27.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='28.2...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='27.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='26.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='25.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='24.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='24.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='22.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='17.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='16.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='14.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='18.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='10.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='10.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='13.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='17.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='15.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='17.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='21.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='24.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='26.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='27.0...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='22.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='21.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='20.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='25.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='25.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='27.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='25.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='24.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='23.8...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='22.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='20.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='18.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='14.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='14.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='14.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='13.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='13.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='15.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='17.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='20.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='24.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='32.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='34.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='34.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='31.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='29.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='30.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='29.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='34.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='28.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='25.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='26.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='24.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='24.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='20.2...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='18.2...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='15.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='15.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='15.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='15.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='16.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='19.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='20.0...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='23.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='29.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='31.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='75.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='41.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='21.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='29.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='28.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='27.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='28.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='29.3...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='26.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='25.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='23.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='21.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='20.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='16.3...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='15.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='16.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='17.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='16.8...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='16.6...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='17.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='18.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='18.4...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='22.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='22.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='25.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='22.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='22.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='22.9...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='23.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='21.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='23.5...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='23.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='22.7...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='22.3...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='23.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='18.2...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='14.1...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='9812...', 4, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='114....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='117....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='109....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='124....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='127....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='121....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='113....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='115....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='119....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='118....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='113....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='120....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='118....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='115....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='116....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='119....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='114....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='115....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='115....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='114....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='115....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='117....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='122....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='118....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='119....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='120....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='121....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='122....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='113....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='115....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='117....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='118....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='121....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='118....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='125....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0.11...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0.11...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0.11...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0.11...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0.11...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0.11...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0.11...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0.11...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0.11...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0.11...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='127....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='128....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='127....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='127....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='127....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='124....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='123....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='124....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='121....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='123....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='123....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='122....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='123....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='122....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='123....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='120....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='121....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='119....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='120....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='119....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='120....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='120....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='119....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='119....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='118....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='118....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='118....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='115....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='124....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='125....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='119....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='119....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='120....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='121....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='9808...', 4, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='9804...', 4, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='113....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='109....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='120....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='125....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='127....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='120....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='119....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='117....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='112....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='120....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='122....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='123....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='118....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='115....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='118....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='115....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='120....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='119....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='122....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='115....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='113....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='123....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='119....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='123....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='119....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='122....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='115....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='117....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='118....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='120....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='117....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='114....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='115....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='115....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='114....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='115....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='121....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='119....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='117....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='113....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='118....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='117....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='121....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='122....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='120....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='124....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='119....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0.11...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0.11...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0.11...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0.11...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0.11...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0.11...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0.11...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0.11...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0.11...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0.11...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0.11...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0.11...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0.10...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='117....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='128....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='126....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='125....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='116....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='125....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='123....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='121....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='115....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='118....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='119....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='123....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='123....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='115....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='117....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='122....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='126....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='119....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='119....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='120....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='119....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='123....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='121....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='118....', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='120....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='123....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='125....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='115....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='119....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='119....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='117....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='114....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='124....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='124....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='118....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='116....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='118....', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='123....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='117....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='119....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='121....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='118....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='120....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='122....', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='4406...', 6, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='-127...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='-148...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='-156...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='-164...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='-144...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='-127...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='-104...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='-169...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='-176...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='-166...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='-206...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='-199...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='-192...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='-201...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='-184...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='-631...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='1564...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='-66"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='-393...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='-691...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='-883...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='-157...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='-220...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='109"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='-420...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='-859...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='-628...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='516"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='1839...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='293"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='1185...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='3946...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='4230...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='3689...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='248"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='430"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='1026...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='-526...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='-258...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='-65"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='-489...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='-842...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='1082...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='310"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='-111...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='3632...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='513"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='214"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='-292...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='-127...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='495"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='1815...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='818"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='1539...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='680"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='712"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='1280...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='397"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='493"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='250"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='785"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='-201...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='2156...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='2937...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='2107...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='2824...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='2269...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='1441...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='-297...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='-228...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='-118...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='-964...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='-442...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='261"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='1309...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='-849...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='178"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='1111...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='2750...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='2769...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='2973...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='1327...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='454"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='199"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='167"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='556"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='416"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='-370...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='-115...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='93"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='-843...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='171"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='-646...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='-723...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='2665...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='837"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='698"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='1097...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='2649...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='-495...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='1165...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='542"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='1871...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='979"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='1210...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='-356...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='1654...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='1368...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='1462...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='1612...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='1309...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='1886...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='1136...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='1169...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='1403...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='1316...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='-104...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='-119...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='-160...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='-199...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='-252...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='585"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='1069...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='1973...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='1831...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='1127...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='1767...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='1343...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='1564...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='849"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='805"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='1093...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='880"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='1254...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='2664...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='1368...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='1009...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='208"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='22"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='1142...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='286"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='-116...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='712"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='227"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='236"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='372"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='1441...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='2015...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='1211...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='1284...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='369"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='-310...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='-802...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='781"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='491"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='1023...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='516"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='2"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='-1"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='-1"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='-1"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='-1"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='-1"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='2"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='2274...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='1775...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='1153...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='769"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='-846...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='-236...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='-296...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='-251...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='-244...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='-286...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='-227...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='-125...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='-716...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='-148...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='-200...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='-105...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='-978...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='-126...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='-317...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='-266...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='-254...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='-237...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='-112...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='1219...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='-106...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='-151...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='-128...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='-190...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='-162...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='-778...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='-173...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='-174...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='-187...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='-120...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='-211...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='1619...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='-764...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='-827...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='40"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='-199...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='-967...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='-680...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='-385...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='-241...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='371"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='471"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='61"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='-244...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='-344...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='-386...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='-165...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='-227...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='-413...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='-373...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='-265...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='-328...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='-337...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='-270...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='-198...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='-797...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='-204...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='-279...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='-193...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='-209...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='-221...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='-267...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='-253...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='453"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='-157...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='1143...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='-146...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='-100...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='-140...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='2949...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='2229...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='1022...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='-162...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='-183...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='-211...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='-767...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='-792...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='173"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='776"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='1249...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='-957...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='-911...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='-243...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='-65"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='-308...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='-811...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='-806...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='-952...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='-716...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='-161...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='-191...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='-180...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='-222...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='-227...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='-231...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='-228...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='-233...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='-186...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='-213...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='-220...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='-296...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='-449...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='-142...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='-422...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='-365...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='-581...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='-263...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='-325...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='-142...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='-355...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='-310...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='496"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='660"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='1246...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='2889...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='1532...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='-143...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='-518...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='225"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='-166...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='-233...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='-172...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='-148...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='-151...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='-476...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='-193...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='128"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='376"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='2872...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='408"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='1923...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='1830...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='1798...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='334"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='1260...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='1815...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='2272...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='262"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='-387...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='-613...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='-251...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='-885...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='551"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='48"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='-982...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='-161...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='-112...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='-381...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='-441...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='71"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='1020...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='760"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='-319...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='-114...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='302"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='-319...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='-582...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='408"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='1031...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='1139...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='2082...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='-120...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='622"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='456"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='-736...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='-818...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='1684...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='307"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='-801...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='-125...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='3308...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='506"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='639"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='1963...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='2867...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='-831...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='-270...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='2010...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='3408...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='3190...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='-187...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='-225...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='531"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='-823...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='62"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='1079...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='1547...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='900"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='112"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='1780...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='1407...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='298"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='565"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='-311...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='-657...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='168"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='647"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='1427...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='829"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='-5"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='1197...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='3751...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='2991...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='2801...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='-118...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='-828...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='-799...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='57"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='4601...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='1911...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='799"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='-972...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='-708...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='-790...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='-490...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='-131...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='-825...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='-101...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='-117...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='-35"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='1352...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='1059...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='1290...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='2079...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='3618...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='-468...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='-247...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='-556...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='189"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='260"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='816"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='2489...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='2732...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='2234...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='57"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='1219...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='632"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='-136...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='38"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='-980...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='-150...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='-211...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='-161...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='-131...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='-432...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='309"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='685"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='1692...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='1899...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='3622...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='2709...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='3037...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='2898...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='3251...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='186"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='-636...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='-421...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='-729...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='-978...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='2670...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='1255...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='-496...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='4246...', 6, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='-431...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='-416...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='-410...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='-409...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='-398...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='-393...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='-443...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='-532...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='-629...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='-733...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='-754...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='-724...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='-686...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='-645...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='-646...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='-354...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='-986...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='697"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='776"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='925"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='125"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='456"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='903"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='278"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='27"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='43"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='173"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='947"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='728"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='-452...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='-117...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='23"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='182"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='-152...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='-423...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='-705...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='-790...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='-157...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='-202...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='-175...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='-172...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='-190...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='-741...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='-812...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='-891...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='652"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='411"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='516"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='398"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='382"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='470"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='591"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='267"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='770"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='164"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='438"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='-43"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='72"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='249"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='201"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='115"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='-425...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='-229...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='-284...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='-247...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='-135...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='-54"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='96"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='16"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='598"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='721"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='818"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='1067...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='1245...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='-117...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='-721...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='-150...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='-208...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='-255...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='-234...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='-292...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='-271...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='-285...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='-292...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='-280...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='-303...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='-401...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='-391...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='-341...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='-344...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='-256...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='-213...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='-176...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='-465...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='-702...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='-647...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='-676...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='-509...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='-215...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='-235...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='-317...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='-403...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='-433...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='-465...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='-466...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='-434...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='-457...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='-492...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='-460...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='-486...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='-430...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='-389...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='-378...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='-298...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='-309...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='-333...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='-268...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='-252...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='-207...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='-198...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='-178...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='-179...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='-207...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='-269...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='-393...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='-440...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='-436...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='-469...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='-430...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='-392...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='-410...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='-418...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='-434...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='-416...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='-445...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='-413...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='-449...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='-388...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='-329...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='-286...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='-266...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='-177...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='-181...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='-182...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='-180...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='-159...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='-205...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='-296...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='-362...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='-483...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='-429...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='-525...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='-440...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='-432...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='-442...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='-395...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='-4"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='-4"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='-4"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='-3"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='-3"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='-3"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='-2"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='-2"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='-2"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='-2"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='-2"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='-2"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='-2"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='-1"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='-2"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='-2"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='-3"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='-2"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='-4"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='-3"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='-3"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='-3"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='-686...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='-679...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='-725...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='-673...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='-603...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='-589...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='-606...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='-548...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='-544...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='-533...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='-498...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='-519...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='-631...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='-683...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='-785...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='-135...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='-133...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='-127...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='-118...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='-123...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='-117...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='-126...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='-118...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='-747...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='-812...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='-769...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='-653...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='-617...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='-566...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='-448...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='-430...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='-426...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='-411...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='-410...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='-451...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='-513...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='-603...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='-639...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='-589...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='-669...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='-660...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='-615...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='-612...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='-622...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='-604...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='-600...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='-229...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='-254...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='-308...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='-326...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='-226...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='-215...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='-153...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='-167...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='-960...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='-112...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='-106...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='-505...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='-536...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='-991...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='-181...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='-257...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='-284...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='-260...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='-292...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='-211...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='-207...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='354"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='438"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='3408...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='3269...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='3655...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='3521...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='5431...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='5560...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='5660...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='5623...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='5896...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='6656...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='6647...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='6733...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='6914...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='6873...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='6691...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='5814...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='5617...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='5608...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='-323...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='-365...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='-362...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='-344...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='-360...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='-373...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='-599...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='-671...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='-658...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='-676...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='-680...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='-652...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='-617...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='-567...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='-491...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='-491...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='-480...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='-198...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='-181...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='-183...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='-225...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='-232...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='-268...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='-267...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='-277...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='-268...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='-265...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='-255...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='-235...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='-231...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='-258...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='-281...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='-318...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='-357...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='-354...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='-314...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='-334...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='-313...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='-280...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='-250...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='-249...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='-215...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='-213...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='-215...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='-249...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='-236...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='-351...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='-456...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='-534...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='-605...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='-579...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='-534...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='-539...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='-597...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='-609...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='-677...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='-637...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='-547...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='-538...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='-460...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='-431...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='-405...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='-386...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='-348...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='-311...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='-301...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='-294...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='-281...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='-364...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='-449...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='-579...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='-619...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='-617...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='-610...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='-621...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='-589...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='-598...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='-563...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='-621...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='-578...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='-572...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='-553...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='-540...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='-460...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='-387...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='-361...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='-329...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='-168...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='-207...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='-205...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='-167...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='-179...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='-348...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='-391...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='-457...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='-478...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='-445...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='-469...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='-483...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='-465...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='-445...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='-539...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='-553...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='-586...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='-522...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='-516...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='-525...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='-438...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='-421...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='-401...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='-322...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='-331...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='-318...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='-297...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='-294...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='-293...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='-357...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='-454...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='-511...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='-573...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='-651...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='-677...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='-675...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='-636...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='-654...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='-627...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='-540...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='-579...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='-564...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='-574...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='-544...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='-544...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='-455...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='-401...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='-348...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='-361...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='-355...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='-340...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='-360...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='-402...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='-418...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='-499...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='-581...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='-559...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='-152...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='-869...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='-457...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='-631...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='-610...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='-575...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='-576...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='-564...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='-524...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='-556...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='-487...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='-461...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='-461...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='-361...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='-346...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='-356...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='-367...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='-361...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='-362...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='-386...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='-396...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='-388...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='-438...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='-427...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='-396...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='-400...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='-356...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='-387...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='-356...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='-469...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='-519...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='-521...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='-503...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='-496...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='-404...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='-370...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='-321...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='4382...', 6, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='-110...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='-128...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='-135...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='-142...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='-124...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='-110...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='-909...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='-147...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='-152...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='-143...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='-178...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='-175...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='-168...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='-174...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='-159...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='-500...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='1379...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='-45"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='-346...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='-580...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='-752...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='-136...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='-190...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='101"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='-366...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='-740...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='-550...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='432"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='1595...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='275"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='1019...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='3444...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='3629...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='3203...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='215"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='380"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='890"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='-446...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='-200...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='-44"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='-424...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='-718...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='946"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='276"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='-944...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='3129...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='453"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='194"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='-246...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='-122...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='430"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='1582...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='720"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='1333...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='588"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='642"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='1096...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='313"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='374"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='204"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='692"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='-196...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='1888...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='2502...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='1840...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='2437...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='1930...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='1219...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='-250...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='-197...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='-102...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='-107...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='-388...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='229"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='1131...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='-726...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='166"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='965"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='2341...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='2354...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='2565...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='1136...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='367"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='173"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='156"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='460"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='358"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='-308...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='-100...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='93"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='-723...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='147"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='-551...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='-626...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='2316...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='714"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='600"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='953"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='2267...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='-403...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='999"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='475"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='1663...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='829"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='1055...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='-314...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='1431...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='1201...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='1280...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='1431...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='1145...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='1635...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='957"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='1019...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='1219...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='1143...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='-893...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='-101...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='-138...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='-182...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='-220...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='502"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='940"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='1719...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='1592...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='960"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='1537...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='1177...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='1337...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='737"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='723"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='917"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='794"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='1075...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='2328...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='1192...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='867"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='184"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='12"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='978"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='256"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='-100...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='614"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='205"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='195"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='316"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='1241...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='1748...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='1046...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='1099...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='309"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='-202...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='-722...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='680"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='440"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='870"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='475"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='2"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='-1"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='-1"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='-1"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='-1"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='-1"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='1"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='1959...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='1506...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='1027...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='677"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='-759...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='-204...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='-255...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='-217...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='-212...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='-248...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='-198...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='-107...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='-524...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='-136...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='-175...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='-893...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='-845...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='-114...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='-271...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='-229...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='-220...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='-203...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='-997...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='1048...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='-955...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='-133...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='-112...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='-162...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='-141...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='-671...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='-150...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='-151...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='-161...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='-103...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='-192...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='1397...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='-627...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='-711...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='20"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='-130...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='-843...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='-642...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='-320...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='-210...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='295"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='417"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='37"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='-210...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='-298...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='-332...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='-143...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='-198...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='-357...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='-323...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='-228...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='-284...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='-294...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='-234...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='-171...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='-668...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='-176...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='-241...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='-172...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='-183...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='-188...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='-234...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='-217...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='374"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='-132...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='993"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='-150...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='-843...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='-119...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='2577...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='1582...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='909"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='-140...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='-159...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='-186...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='-658...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='-679...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='89"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='680"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='1095...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='-832...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='-785...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='-228...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='-40"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='-280...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='-697...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='-697...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='-811...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='-629...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='-140...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='-166...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='-157...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='-192...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='-197...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='-201...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='-198...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='-200...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='-161...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='-185...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='-190...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='-251...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='-386...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='-121...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='-365...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='-313...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='-506...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='-232...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='-288...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='-121...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='-310...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='-245...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='439"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='609"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='1078...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='2491...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='1327...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='-115...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='-442...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='203"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='-143...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='-201...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='-149...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='-128...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='-130...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='-409...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='-162...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='90"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='319"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='2483...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='357"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='1681...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='1572...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='1575...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='302"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='1076...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='1555...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='1971...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='239"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='-351...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='-527...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='-215...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='-782...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='452"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='60"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='-848...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='-138...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='-989...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='-325...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='-382...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='60"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='884"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='659"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='-264...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='-990...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='289"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='-292...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='-542...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='366"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='909"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='992"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='1808...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='-104...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='543"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='377"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='-619...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='-712...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='1459...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='257"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='-696...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='-108...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='2873...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='421"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='557"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='1696...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='2480...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='-707...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='-237...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='1730...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='2990...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='2746...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='-174...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='-194...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='485"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='-729...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='70"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='907"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='1297...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='776"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='123"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='1557...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='1208...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='253"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='508"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='-274...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='-571...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='146"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='567"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='1222...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='733"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='8"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='1041...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='3222...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='2576...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='2422...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='-103...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='-746...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='-661...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='45"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='3983...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='1694...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='709"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='-844...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='-605...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='-661...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='-436...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='-115...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='-716...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='-877...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='-102...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='1185...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='884"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='1103...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='1789...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='3132...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='-403...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='-211...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='-498...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='174"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='210"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='710"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='2127...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='2386...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='1916...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='53"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='1070...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='564"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='-118...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='34"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='-847...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='-131...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='-184...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='-140...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='-112...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='-372...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='269"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='572"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='1413...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='1586...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='3161...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='2347...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='2627...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='2502...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='2818...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='158"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='-545...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='-370...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='-624...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='-847...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='2315...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='1099...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='-417...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='4222...', 6, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='-430...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='-416...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='-409...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='-408...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='-396...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='-396...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='-441...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='-535...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='-631...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='-729...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='-751...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='-735...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='-689...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='-646...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='-6"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='-9"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='-8"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='-7"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='-632...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='-351...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='-963...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='644"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='700"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='942"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='99"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='464"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='912"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='289"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='32"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='46"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='200"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='921"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='744"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='-561...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='-68"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='31"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='142"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='-123...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='-451...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='-729...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='-712...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='-158...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='-198...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='-175...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='-175...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='-189...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='-827...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='-882...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='-899...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='644"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='417"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='524"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='400"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='372"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='484"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='591"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='336"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='741"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='114"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='507"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='-51"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='136"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='334"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='235"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='116"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='-417...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='-232...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='-184...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='-219...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='-134...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='-51"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='143"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='11"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='600"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='644"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='836"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='1068...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='1213...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='-135...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='-755...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='-149...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='-201...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='-256...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='-233...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='-289...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='-278...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='-291...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='-291...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='-283...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='-301...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='-409...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='-397...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='-337...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='-342...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='-255...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='-218...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='-175...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='-477...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='-709...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='-653...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='-653...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='-468...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='-211...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='-223...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='-319...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='-408...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='-430...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='-455...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='-462...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='-430...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='-460...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='-485...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='-461...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='-481...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='-424...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='-391...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='-380...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='-302...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='-303...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='-329...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='-268...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='-253...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='-208...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='-198...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='-179...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='-179...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='-207...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='-272...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='-401...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='-432...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='-433...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='-472...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='-433...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='-390...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='-411...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='-432...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='-434...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='-416...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='-435...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='-416...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='-445...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='-389...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='-328...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='-286...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='-266...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='-179...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='-179...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='-182...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='-178...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='-158...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='-208...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='-288...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='-355...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='-483...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='-432...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='-539...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='-445...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='-427...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='-435...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='-390...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='-4"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='-4"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='-4"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='-3"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='-3"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='-3"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='-2"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='-2"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='-2"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='-2"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='-2"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='-2"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='-2"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='-1"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='-2"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='-2"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='-3"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='-2"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='-4"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='-3"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='-3"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='-3"/...', 2) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0"/>...', 1) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='-684...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='-684...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='-727...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='-671...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='-604...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='-587...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='-606...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='-548...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='-543...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='-534...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='-498...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='-519...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='-632...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='-692...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='-788...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='-134...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='-133...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='-128...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='-119...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='-124...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='-116...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='-125...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='-119...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='-756...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='-810...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='-767...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='-656...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='-616...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='-566...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='-447...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='-430...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='-425...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='-412...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='-412...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='-449...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='-513...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='-596...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='-635...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='-596...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='-661...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='-661...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='-619...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='-623...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='-631...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='-607...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='-607...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='-239...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='-260...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='-305...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='-333...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='-223...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='-213...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='-154...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='-167...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='-969...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='-112...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='-107...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='-481...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='-537...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='-995...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='-181...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='-263...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='-292...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='-259...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='-289...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='-217...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='-209...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='311"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='399"...', 3) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='3486...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='3357...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='3670...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='3580...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='5398...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='5478...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='5618...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='5659...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='5923...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='6651...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='6654...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='6713...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='6885...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='6893...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='6705...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='5853...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='5545...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='5589...', 4) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='-321...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='-362...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='-362...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='-347...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='-363...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='-372...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='-603...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='-675...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='-664...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='-677...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='-679...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='-659...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='-613...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='-565...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='-491...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='-490...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='-480...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='-197...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='-182...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='-182...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='-227...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='-233...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='-264...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='-264...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='-274...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='-272...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='-258...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='-254...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='-237...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='-233...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='-256...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='-278...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='-319...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='-358...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='-359...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='-312...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='-333...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='-314...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='-280...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='-248...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='-249...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='-217...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='-213...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='-215...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='-250...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='-239...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='-346...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='-451...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='-535...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='-591...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='-577...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='-528...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='-538...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='-597...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='-610...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='-674...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='-631...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='-553...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='-545...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='-463...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='-434...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='-404...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='-385...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='-351...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='-313...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='-301...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='-290...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='-282...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='-368...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='-450...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='-584...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='-619...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='-616...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='-614...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='-622...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='-593...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='-592...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='-555...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='-624...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='-575...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='-577...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='-546...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='-539...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='-454...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='-387...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='-362...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='-329...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='-168...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='-208...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='-204...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='-167...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='-178...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='-349...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='-408...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='-445...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='-481...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='-440...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='-462...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='-482...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='-464...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='-443...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='-539...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='-555...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='-588...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='-520...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='-520...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='-525...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='-434...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='-419...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='-399...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='-319...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='-332...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='-319...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='-296...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='-295...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='-291...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='-362...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='-456...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='-501...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='-579...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='-660...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='-678...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='-673...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='-643...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='-641...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='-626...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='-537...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='-570...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='-566...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='-581...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='-549...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='-536...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='-453...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='-400...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='-348...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='-359...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='-357...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='-342...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='-361...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='-406...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='-420...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='-497...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='-584...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='-566...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='-151...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='-862...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='-460...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='-632...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='-612...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='-581...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='-580...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='-562...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='-531...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='-554...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='-491...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='-458...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='-467...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='-369...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='-349...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='-358...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='-368...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='-360...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='-368...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='-385...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='-392...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='-395...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='-446...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='-425...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='-391...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='-389...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='-353...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='-379...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='-362...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='-454...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='-517...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='-503...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='-502...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='-502...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='-399...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='-355...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='-320...', 5) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='6746...', 6, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='2212...', 155) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='6738...', 6, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0:0:...', 147) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='6734...', 6, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='7289...', 176) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='6730...', 6, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0:0:...', 87) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='2627...', 8, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::1...', 258) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0::5...', 185) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='6::1...', 186) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='6::1...', 201) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='629:...', 257) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='2289...', 258) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='1954...', 292) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='2.48...', 279) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0.00...', 304) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='5016...', 313) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='1243...', 68) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='8197...', 288) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='8270...', 280) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='6511...', 268) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='3280...', 278) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='8226...', 56) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='2627...', 8, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::0...', 142) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0::0...', 144) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='0::0...', 142) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='0::0...', 162) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='273:...', 298) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='16::...', 298) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='14::...', 323) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='0::0...', 306) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0.03...', 294) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='0::0...', 223) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='0::0...', 28) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='1413...', 268) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='303:...', 270) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='5304...', 297) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='1514...', 280) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='1776...', 61) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='2627...', 8, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::4...', 265) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0::8...', 208) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='8::1...', 206) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='8::1...', 222) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='2::4...', 228) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='0::0...', 292) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='4757...', 350) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='3.74...', 307) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0::0...', 234) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='1113...', 339) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='3972...', 63) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='1295...', 285) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='3876...', 321) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='6481...', 322) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='7162...', 331) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='5709...', 61) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='2627...', 8, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::0...', 142) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0::0...', 144) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='0::0...', 142) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='0::0...', 157) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='1070...', 279) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='1231...', 208) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='0::0...', 142) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='0::0...', 237) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0.03...', 296) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='0::0...', 146) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='0::0...', 28) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='9208...', 271) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='0::0...', 142) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='0::0...', 142) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='0::0...', 142) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='0::0...', 25) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='1314...', 7, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='2703...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='1313...', 7, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='3066...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='1313...', 7, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='1576...', 7) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='1313...', 7, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='1270...', 6) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='5251...', 8, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::1...', 324) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='2226...', 336) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='2243...', 334) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='2261...', 334) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='2937...', 336) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='3974...', 334) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='4804...', 369) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='5025...', 523) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='5025...', 490) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='5944...', 361) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='1369...', 78) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='1748...', 382) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='2118...', 382) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='2325...', 382) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='2434...', 382) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='2668...', 70) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='5251...', 8, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::0...', 142) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0::0...', 144) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='0::0...', 142) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='0::0...', 165) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='2745...', 327) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='5015...', 334) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='9659...', 415) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='1317...', 573) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='1317...', 539) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='1382...', 386) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='1443...', 78) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='1627...', 382) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='1747...', 382) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='2013...', 382) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='2534...', 382) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='3009...', 70) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='5251...', 8, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::4...', 328) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='7309...', 336) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='7346...', 334) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='7382...', 334) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='8444...', 336) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='9988...', 377) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='2254...', 421) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='1520...', 573) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='1520...', 540) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='4071...', 386) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='7095...', 78) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='7709...', 382) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='8856...', 400) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='1085...', 430) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='1306...', 430) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='1537...', 79) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='5251...', 8, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::0...', 142) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0::0...', 144) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='0::0...', 142) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='0::0...', 160) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='4546...', 306) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='1353...', 334) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='1715...', 374) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='1715...', 526) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='1715...', 486) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='1715...', 338) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='1715...', 68) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='2636...', 367) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='1270...', 382) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='1270...', 382) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='1270...', 382) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='1270...', 70) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='3460...', 5, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='6094...', 430) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='6116...', 432) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='6117...', 430) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='6117...', 430) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='6123...', 432) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='6134...', 430) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='6142...', 449) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='1448...', 572) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='1448...', 543) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='6154...', 434) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='6231...', 88) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='6269...', 430) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='6306...', 430) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='6327...', 430) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='6338...', 430) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='6361...', 79) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='3380...', 5, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='8817...', 478) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='8817...', 480) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='8817...', 478) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='8817...', 478) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='8818...', 480) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='8822...', 478) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='8827...', 495) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='1111...', 570) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='1112...', 552) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='8831...', 482) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='8832...', 98) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='8834...', 478) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='8835...', 478) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='8838...', 478) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='8843...', 478) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='8848...', 88) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='3340...', 5, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='9437...', 430) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='9510...', 432) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='9511...', 430) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='9511...', 430) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='9522...', 432) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='9537...', 430) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='9663...', 449) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='8980...', 518) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='8983...', 507) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='9844...', 466) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='1014...', 98) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='1020...', 478) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='1032...', 478) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='1052...', 478) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='1074...', 478) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='1097...', 88) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='3300...', 5, h='3dc1...', 8) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='3861...', 478) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='3861...', 480) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='3861...', 478) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='3861...', 478) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='3861...', 480) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='3862...', 478) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='3862...', 498) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='2297...', 574) +SAX.endElementNs(val, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(par, NULL, NULL) +SAX.characters( + , 4) +SAX.endElementNs(device, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(select, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(data, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(electroxml, NULL, NULL) +SAX.endDocument() diff --git a/result/att5 b/result/att5 new file mode 100644 index 0000000..8768e36 --- /dev/null +++ b/result/att5 @@ -0,0 +1,40 @@ + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/result/att5.rde b/result/att5.rde new file mode 100644 index 0000000..35220b0 --- /dev/null +++ b/result/att5.rde @@ -0,0 +1,109 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 no normalization +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 8 #comment 0 1 normalization +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 +1 8 #comment 0 1 PBM serializing back +1 14 #text 0 1 + +0 15 doc 0 0 diff --git a/result/att5.rdr b/result/att5.rdr new file mode 100644 index 0000000..35220b0 --- /dev/null +++ b/result/att5.rdr @@ -0,0 +1,109 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 no normalization +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 1 norm 1 0 +1 14 #text 0 1 + +1 8 #comment 0 1 normalization +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 + +1 1 normId 1 0 +1 14 #text 0 1 +1 8 #comment 0 1 PBM serializing back +1 14 #text 0 1 + +0 15 doc 0 0 diff --git a/result/att5.sax b/result/att5.sax new file mode 100644 index 0000000..49d85fb --- /dev/null +++ b/result/att5.sax @@ -0,0 +1,148 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.attributeDecl(normId, attr, 8, 3, NULL, ...) +SAX.externalSubset(doc, , ) +SAX.startElement(doc) +SAX.characters( + , 3) +SAX.comment( no normalization ) +SAX.characters( + , 3) +SAX.startElement(norm, attr=' ') +SAX.endElement(norm) +SAX.characters( + , 3) +SAX.startElement(norm, attr=' foo bar ') +SAX.endElement(norm) +SAX.characters( + , 3) +SAX.startElement(norm, attr=' foobar') +SAX.endElement(norm) +SAX.characters( + , 3) +SAX.startElement(norm, attr=' foo bar ') +SAX.endElement(norm) +SAX.characters( + , 3) +SAX.startElement(norm, attr='foobar ') +SAX.endElement(norm) +SAX.characters( + , 3) +SAX.startElement(norm, attr=' & ') +SAX.endElement(norm) +SAX.characters( + , 3) +SAX.startElement(norm, attr=' foo&bar ') +SAX.endElement(norm) +SAX.characters( + , 3) +SAX.startElement(norm, attr=' foobar&') +SAX.endElement(norm) +SAX.characters( + , 3) +SAX.startElement(norm, attr='&foo bar ') +SAX.endElement(norm) +SAX.characters( + , 3) +SAX.startElement(norm, attr='foobar &') +SAX.endElement(norm) +SAX.characters( + , 3) +SAX.startElement(norm, attr=' < ') +SAX.endElement(norm) +SAX.characters( + , 3) +SAX.startElement(norm, attr=' foo +...', 0) +SAX.endElementNs(normId, NULL, NULL) +SAX.characters( + , 3) +SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foo ...', 7) +SAX.endElementNs(normId, NULL, NULL) +SAX.characters( + , 3) +SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foob...', 6) +SAX.endElementNs(normId, NULL, NULL) +SAX.characters( + , 3) +SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foo ...', 7) +SAX.endElementNs(normId, NULL, NULL) +SAX.characters( + , 3) +SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foob...', 6) +SAX.endElementNs(normId, NULL, NULL) +SAX.characters( + , 3) +SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='&...', 5) +SAX.endElementNs(normId, NULL, NULL) +SAX.characters( + , 3) +SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foo&...', 11) +SAX.endElementNs(normId, NULL, NULL) +SAX.characters( + , 3) +SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foob...', 11) +SAX.endElementNs(normId, NULL, NULL) +SAX.characters( + , 3) +SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='&...', 12) +SAX.endElementNs(normId, NULL, NULL) +SAX.characters( + , 3) +SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foob...', 12) +SAX.endElementNs(normId, NULL, NULL) +SAX.characters( + , 3) +SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='<...', 1) +SAX.endElementNs(normId, NULL, NULL) +SAX.characters( + , 3) +SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foo<...', 7) +SAX.endElementNs(normId, NULL, NULL) +SAX.characters( + , 3) +SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foob...', 7) +SAX.endElementNs(normId, NULL, NULL) +SAX.characters( + , 3) +SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr=' + + + pvalue->ReferencedOrder.SellersOrderID + + diff --git a/result/att6.rde b/result/att6.rde new file mode 100644 index 0000000..6d39352 --- /dev/null +++ b/result/att6.rde @@ -0,0 +1,15 @@ +0 1 Invoice 0 0 +1 14 #text 0 1 + +1 1 cat:ReferencedOrder 0 0 +2 14 #text 0 1 + +2 1 cat:SellersOrderID 0 0 +3 3 #text 0 1 pvalue->ReferencedOrder.SellersOrderID +2 15 cat:SellersOrderID 0 0 +2 14 #text 0 1 + +1 15 cat:ReferencedOrder 0 0 +1 14 #text 0 1 + +0 15 Invoice 0 0 diff --git a/result/att6.rdr b/result/att6.rdr new file mode 100644 index 0000000..6d39352 --- /dev/null +++ b/result/att6.rdr @@ -0,0 +1,15 @@ +0 1 Invoice 0 0 +1 14 #text 0 1 + +1 1 cat:ReferencedOrder 0 0 +2 14 #text 0 1 + +2 1 cat:SellersOrderID 0 0 +3 3 #text 0 1 pvalue->ReferencedOrder.SellersOrderID +2 15 cat:SellersOrderID 0 0 +2 14 #text 0 1 + +1 15 cat:ReferencedOrder 0 0 +1 14 #text 0 1 + +0 15 Invoice 0 0 diff --git a/result/att6.sax b/result/att6.sax new file mode 100644 index 0000000..4ab9521 --- /dev/null +++ b/result/att6.sax @@ -0,0 +1,20 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(Invoice, xmlns:ccts='urn:oasis:names:tc:ubl:CoreComponentParameters:1.0:0.70', xmlns:cct='urn:oasis:names:tc:ubl:CoreComponentTypes:1.0:0.70', xmlns:cat='urn:oasis:names:tc:ubl:CommonAggregateTypes:1.0:0.70', xmlns='urn:oasis:names:tc:ubl:Invoice:1.0:0.70') +SAX.characters( + , 4) +SAX.startElement(cat:ReferencedOrder) +SAX.characters( + , 7) +SAX.startElement(cat:SellersOrderID, schemeID='pvalue->ReferencedOrder.SellersOrderID.schemeID', schemeAgencyID='pvalue->ReferencedOrder.SellersOrderID.schemeAgencyID', schemeVersionID='pvalue->ReferencedOrder.SellersOrderID.schemeVersionID', schemeAgencySchemeID='pvalue->ReferencedOrder.SellersOrderID.schemeAgencySchemeID', schemeAgencySchemeAgencyID='pvalue->ReferencedOrder.SellersOrderID.schemeAgencySchemeAgencyID', schemeDataURI='pvalue->ReferencedOrder.SellersOrderID.schemeDataURI', schemeURI='pvalue->ReferencedOrder.SellersOrderID.schemeURI', UID='pvalue->ReferencedOrder.SellersOrderID.UID', UIDRef='pvalue->ReferencedOrder.SellersOrderID.UIDRef', UIDRefs='pvalue->ReferencedOrder.SellersOrderID.UIDRefs0', language='pvalue->ReferencedOrder.SellersOrderID.language') +SAX.characters(pvalue-, 7) +SAX.characters(>, 1) +SAX.characters(ReferencedOrder.SellersOrderID, 30) +SAX.endElement(cat:SellersOrderID) +SAX.characters( + , 4) +SAX.endElement(cat:ReferencedOrder) +SAX.characters( +, 1) +SAX.endElement(Invoice) +SAX.endDocument() diff --git a/result/att6.sax2 b/result/att6.sax2 new file mode 100644 index 0000000..54dd6d3 --- /dev/null +++ b/result/att6.sax2 @@ -0,0 +1,20 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(Invoice, NULL, 'urn:oasis:names:tc:ubl:Invoice:1.0:0.70', 4, xmlns:ccts='urn:oasis:names:tc:ubl:CoreComponentParameters:1.0:0.70', xmlns:cct='urn:oasis:names:tc:ubl:CoreComponentTypes:1.0:0.70', xmlns:cat='urn:oasis:names:tc:ubl:CommonAggregateTypes:1.0:0.70', xmlns='urn:oasis:names:tc:ubl:Invoice:1.0:0.70', 0, 0) +SAX.characters( + , 4) +SAX.startElementNs(ReferencedOrder, cat, 'urn:oasis:names:tc:ubl:CommonAggregateTypes:1.0:0.70', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(SellersOrderID, cat, 'urn:oasis:names:tc:ubl:CommonAggregateTypes:1.0:0.70', 0, 11, 0, schemeID='pval...', 47, schemeAgencyID='pval...', 53, schemeVersionID='pval...', 54, schemeAgencySchemeID='pval...', 59, schemeAgencySchemeAgencyID='pval...', 65, schemeDataURI='pval...', 52, schemeURI='pval...', 48, UID='pval...', 42, UIDRef='pval...', 45, UIDRefs='pval...', 47, language='pval...', 47) +SAX.characters(pvalue-, 7) +SAX.characters(>, 1) +SAX.characters(ReferencedOrder.SellersOrderID, 30) +SAX.endElementNs(SellersOrderID, cat, 'urn:oasis:names:tc:ubl:CommonAggregateTypes:1.0:0.70') +SAX.characters( + , 4) +SAX.endElementNs(ReferencedOrder, cat, 'urn:oasis:names:tc:ubl:CommonAggregateTypes:1.0:0.70') +SAX.characters( +, 1) +SAX.endElementNs(Invoice, NULL, 'urn:oasis:names:tc:ubl:Invoice:1.0:0.70') +SAX.endDocument() diff --git a/result/att7 b/result/att7 new file mode 100644 index 0000000..56d0835 --- /dev/null +++ b/result/att7 @@ -0,0 +1,11 @@ + + + + +"> +]> + + + &test.ent; + diff --git a/result/att7.rde b/result/att7.rde new file mode 100644 index 0000000..afcef5f --- /dev/null +++ b/result/att7.rde @@ -0,0 +1,12 @@ +0 10 x 0 0 +0 1 x 0 0 +1 14 #text 0 1 + +1 1 test 1 0 +1 14 #text 0 1 + +1 1 test 0 0 +1 15 test 0 0 +1 14 #text 0 1 + +0 15 x 0 0 diff --git a/result/att7.rdr b/result/att7.rdr new file mode 100644 index 0000000..47b19b4 --- /dev/null +++ b/result/att7.rdr @@ -0,0 +1,11 @@ +0 10 x 0 0 +0 1 x 0 0 +1 14 #text 0 1 + +1 1 test 1 0 +1 14 #text 0 1 + +1 5 test.ent 0 0 +1 14 #text 0 1 + +0 15 x 0 0 diff --git a/result/att7.sax b/result/att7.sax new file mode 100644 index 0000000..c093279 --- /dev/null +++ b/result/att7.sax @@ -0,0 +1,24 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(x, , ) +SAX.elementDecl(x, 4, ...) +SAX.elementDecl(test, 1, ...) +SAX.attributeDecl(test, att, 1, 1, attvalue, ...) +SAX.entityDecl(test.ent, 1, (null), (null), ) +SAX.getEntity(test.ent) +SAX.externalSubset(x, , ) +SAX.startElement(x) +SAX.characters( + , 5) +SAX.startElement(test) +SAX.endElement(test) +SAX.characters( + , 5) +SAX.getEntity(test.ent) +SAX.startElement(test) +SAX.endElement(test) +SAX.reference(test.ent) +SAX.characters( +, 1) +SAX.endElement(x) +SAX.endDocument() diff --git a/result/att7.sax2 b/result/att7.sax2 new file mode 100644 index 0000000..dc7e2ae --- /dev/null +++ b/result/att7.sax2 @@ -0,0 +1,24 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(x, , ) +SAX.elementDecl(x, 4, ...) +SAX.elementDecl(test, 1, ...) +SAX.attributeDecl(test, att, 1, 1, attvalue, ...) +SAX.entityDecl(test.ent, 1, (null), (null), ) +SAX.getEntity(test.ent) +SAX.externalSubset(x, , ) +SAX.startElementNs(x, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(test, NULL, NULL, 0, 1, 1, att='attv...', 8) +SAX.endElementNs(test, NULL, NULL) +SAX.characters( + , 5) +SAX.getEntity(test.ent) +SAX.startElementNs(test, NULL, NULL, 0, 1, 1, att='attv...', 8) +SAX.endElementNs(test, NULL, NULL) +SAX.reference(test.ent) +SAX.characters( +, 1) +SAX.endElementNs(x, NULL, NULL) +SAX.endDocument() diff --git a/result/att8 b/result/att8 new file mode 100644 index 0000000..1d807a2 --- /dev/null +++ b/result/att8 @@ -0,0 +1,2 @@ + +/bsk:DocPart[@docId='20040308152601345236' and @docPartNo=1]XQL Request processing XQL Request processed diff --git a/result/att8.rde b/result/att8.rde new file mode 100644 index 0000000..52fde32 --- /dev/null +++ b/result/att8.rde @@ -0,0 +1,22 @@ +0 1 ino:response 0 0 +1 1 xql:query 0 0 +2 3 #text 0 1 /bsk:DocPart[@docId='20040308152601345236' and @docPartNo=1] +1 15 xql:query 0 0 +1 1 ino:message 0 0 +2 1 ino:messageline 0 0 +3 3 #text 0 1 XQL Request processing +2 15 ino:messageline 0 0 +1 15 ino:message 0 0 +1 1 xql:result 0 0 +2 1 bsk:DocPart 0 0 +3 1 bsk:File 0 0 +4 14 #text 0 1 +3 15 bsk:File 0 0 +2 15 bsk:DocPart 0 0 +1 15 xql:result 0 0 +1 1 ino:message 0 0 +2 1 ino:messageline 0 0 +3 3 #text 0 1 XQL Request processed +2 15 ino:messageline 0 0 +1 15 ino:message 0 0 +0 15 ino:response 0 0 diff --git a/result/att8.rdr b/result/att8.rdr new file mode 100644 index 0000000..52fde32 --- /dev/null +++ b/result/att8.rdr @@ -0,0 +1,22 @@ +0 1 ino:response 0 0 +1 1 xql:query 0 0 +2 3 #text 0 1 /bsk:DocPart[@docId='20040308152601345236' and @docPartNo=1] +1 15 xql:query 0 0 +1 1 ino:message 0 0 +2 1 ino:messageline 0 0 +3 3 #text 0 1 XQL Request processing +2 15 ino:messageline 0 0 +1 15 ino:message 0 0 +1 1 xql:result 0 0 +2 1 bsk:DocPart 0 0 +3 1 bsk:File 0 0 +4 14 #text 0 1 +3 15 bsk:File 0 0 +2 15 bsk:DocPart 0 0 +1 15 xql:result 0 0 +1 1 ino:message 0 0 +2 1 ino:messageline 0 0 +3 3 #text 0 1 XQL Request processed +2 15 ino:messageline 0 0 +1 15 ino:message 0 0 +0 15 ino:response 0 0 diff --git a/result/att8.sax b/result/att8.sax new file mode 100644 index 0000000..12e378a --- /dev/null +++ b/result/att8.sax @@ -0,0 +1,29 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(ino:response, xmlns:ino='http://namespaces.softwareag.com/tamino/response2', xmlns:xql='http://metalab.unc.edu/xql/', ino:sessionid='556', ino:sessionkey='1590469677') +SAX.startElement(xql:query) +SAX.characters(/bsk:DocPart[@docId=, 20) +SAX.characters(', 1) +SAX.characters(20040308152601345236, 20) +SAX.characters(', 1) +SAX.characters( and @docPartNo=1], 18) +SAX.endElement(xql:query) +SAX.startElement(ino:message, ino:returnvalue='0') +SAX.startElement(ino:messageline) +SAX.characters(XQL Request processing, 22) +SAX.endElement(ino:messageline) +SAX.endElement(ino:message) +SAX.startElement(xql:result) +SAX.startElement(bsk:DocPart, docId='20040308152601345236', docPartNo='1', ino:id='15290', xmlns:bsk='http://www.heitec.net/sara4/tamino/basket') +SAX.startElement(bsk:File, name='4898WPZEO2M65', size='75195') +SAX.characters( , 1) +SAX.endElement(bsk:File) +SAX.endElement(bsk:DocPart) +SAX.endElement(xql:result) +SAX.startElement(ino:message, ino:returnvalue='0') +SAX.startElement(ino:messageline) +SAX.characters(XQL Request processed, 21) +SAX.endElement(ino:messageline) +SAX.endElement(ino:message) +SAX.endElement(ino:response) +SAX.endDocument() diff --git a/result/att8.sax2 b/result/att8.sax2 new file mode 100644 index 0000000..1f2344a --- /dev/null +++ b/result/att8.sax2 @@ -0,0 +1,29 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(response, ino, 'http://namespaces.softwareag.com/tamino/response2', 2, xmlns:ino='http://namespaces.softwareag.com/tamino/response2', xmlns:xql='http://metalab.unc.edu/xql/', 2, 0, ino:sessionid='556"...', 3, ino:sessionkey='1590...', 10) +SAX.startElementNs(query, xql, 'http://metalab.unc.edu/xql/', 0, 0, 0) +SAX.characters(/bsk:DocPart[@docId=, 20) +SAX.characters(', 1) +SAX.characters(20040308152601345236, 20) +SAX.characters(', 1) +SAX.characters( and @docPartNo=1], 18) +SAX.endElementNs(query, xql, 'http://metalab.unc.edu/xql/') +SAX.startElementNs(message, ino, 'http://namespaces.softwareag.com/tamino/response2', 0, 1, 0, ino:returnvalue='0"><...', 1) +SAX.startElementNs(messageline, ino, 'http://namespaces.softwareag.com/tamino/response2', 0, 0, 0) +SAX.characters(XQL Request processing, 22) +SAX.endElementNs(messageline, ino, 'http://namespaces.softwareag.com/tamino/response2') +SAX.endElementNs(message, ino, 'http://namespaces.softwareag.com/tamino/response2') +SAX.startElementNs(result, xql, 'http://metalab.unc.edu/xql/', 0, 0, 0) +SAX.startElementNs(DocPart, bsk, 'http://www.heitec.net/sara4/tamino/basket', 1, xmlns:bsk='http://www.heitec.net/sara4/tamino/basket', 3, 0, docId='2004...', 20, docPartNo='1" i...', 1, ino:id='1529...', 5) +SAX.startElementNs(File, bsk, 'http://www.heitec.net/sara4/tamino/basket', 0, 2, 0, name='4898...', 13, size='7519...', 5) +SAX.characters( , 1) +SAX.endElementNs(File, bsk, 'http://www.heitec.net/sara4/tamino/basket') +SAX.endElementNs(DocPart, bsk, 'http://www.heitec.net/sara4/tamino/basket') +SAX.endElementNs(result, xql, 'http://metalab.unc.edu/xql/') +SAX.startElementNs(message, ino, 'http://namespaces.softwareag.com/tamino/response2', 0, 1, 0, ino:returnvalue='0"><...', 1) +SAX.startElementNs(messageline, ino, 'http://namespaces.softwareag.com/tamino/response2', 0, 0, 0) +SAX.characters(XQL Request processed, 21) +SAX.endElementNs(messageline, ino, 'http://namespaces.softwareag.com/tamino/response2') +SAX.endElementNs(message, ino, 'http://namespaces.softwareag.com/tamino/response2') +SAX.endElementNs(response, ino, 'http://namespaces.softwareag.com/tamino/response2') +SAX.endDocument() diff --git a/result/att9 b/result/att9 new file mode 100644 index 0000000..e4982a2 --- /dev/null +++ b/result/att9 @@ -0,0 +1,6 @@ + + + +]> + diff --git a/result/att9.rde b/result/att9.rde new file mode 100644 index 0000000..9b0a34d --- /dev/null +++ b/result/att9.rde @@ -0,0 +1,2 @@ +0 10 doc 0 0 +0 1 doc 1 0 diff --git a/result/att9.rdr b/result/att9.rdr new file mode 100644 index 0000000..9b0a34d --- /dev/null +++ b/result/att9.rdr @@ -0,0 +1,2 @@ +0 10 doc 0 0 +0 1 doc 1 0 diff --git a/result/att9.sax b/result/att9.sax new file mode 100644 index 0000000..0fe14a1 --- /dev/null +++ b/result/att9.sax @@ -0,0 +1,9 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.attributeDecl(doc, a1, 8, 1, 1 2, ...) +SAX.elementDecl(doc, 3, ...) +SAX.externalSubset(doc, , ) +SAX.startElement(doc) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/att9.sax2 b/result/att9.sax2 new file mode 100644 index 0000000..09b3a04 --- /dev/null +++ b/result/att9.sax2 @@ -0,0 +1,9 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.attributeDecl(doc, a1, 8, 1, 1 2, ...) +SAX.elementDecl(doc, 3, ...) +SAX.externalSubset(doc, , ) +SAX.startElementNs(doc, NULL, NULL, 0, 1, 1, a1='1 2...', 3) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/attrib.xml b/result/attrib.xml new file mode 100644 index 0000000..89a1e57 --- /dev/null +++ b/result/attrib.xml @@ -0,0 +1,2 @@ + + diff --git a/result/attrib.xml.rde b/result/attrib.xml.rde new file mode 100644 index 0000000..de6325a --- /dev/null +++ b/result/attrib.xml.rde @@ -0,0 +1 @@ +0 1 item 1 0 diff --git a/result/attrib.xml.rdr b/result/attrib.xml.rdr new file mode 100644 index 0000000..de6325a --- /dev/null +++ b/result/attrib.xml.rdr @@ -0,0 +1 @@ +0 1 item 1 0 diff --git a/result/attrib.xml.sax b/result/attrib.xml.sax new file mode 100644 index 0000000..50ad8e1 --- /dev/null +++ b/result/attrib.xml.sax @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(item, title='Icrontic.com - Warning: Breakdancing midget with tourette's syndrome on-board                                                ', url='http://www.icrontic.com/', first_time='985034339', last_time='985034339', visits='1') +SAX.endElement(item) +SAX.endDocument() diff --git a/result/attrib.xml.sax2 b/result/attrib.xml.sax2 new file mode 100644 index 0000000..c7d2c87 --- /dev/null +++ b/result/attrib.xml.sax2 @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(item, NULL, NULL, 0, 5, 0, title='Icro...', 173, url='http...', 24, first_time='9850...', 9, last_time='9850...', 9, visits='1"/>...', 1) +SAX.endElementNs(item, NULL, NULL) +SAX.endDocument() diff --git a/result/automata/a b/result/automata/a new file mode 100644 index 0000000..4ece411 --- /dev/null +++ b/result/automata/a @@ -0,0 +1,4 @@ +=> Passed +=> Failed +=> Failed +=> Failed diff --git a/result/automata/aba b/result/automata/aba new file mode 100644 index 0000000..051b9bd --- /dev/null +++ b/result/automata/aba @@ -0,0 +1,6 @@ +=> Passed +=> Passed +=> Passed +=> Failed +=> Failed +=> Failed diff --git a/result/automata/abaa b/result/automata/abaa new file mode 100644 index 0000000..c74769e --- /dev/null +++ b/result/automata/abaa @@ -0,0 +1,5 @@ +=> Passed +=> Passed +=> Passed +=> Failed +=> Failed diff --git a/result/automata/abba b/result/automata/abba new file mode 100644 index 0000000..1a60848 --- /dev/null +++ b/result/automata/abba @@ -0,0 +1,4 @@ +=> Passed +=> Passed +=> Failed +=> Failed diff --git a/result/automata/po b/result/automata/po new file mode 100644 index 0000000..fafcae5 --- /dev/null +++ b/result/automata/po @@ -0,0 +1,2 @@ +=> Passed +=> Passed diff --git a/result/badcomment.xml b/result/badcomment.xml new file mode 100644 index 0000000..6b13c11 --- /dev/null +++ b/result/badcomment.xml @@ -0,0 +1,17 @@ + + +Char* ']]>' Char*)) +']]>' +CDATA sections +| '<!DOCTYPE' +(Char - ('[' | ']'))+ +('[' +simpleDTD* +']')? '>' +doc type declaration +simpleDTD +'<!&como;' +(Char* - +(Char* '&comc;' Char*)) +'&comc;>'--> + diff --git a/result/badcomment.xml.rde b/result/badcomment.xml.rde new file mode 100644 index 0000000..29a3cd1 --- /dev/null +++ b/result/badcomment.xml.rde @@ -0,0 +1,21 @@ +0 1 foo 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 def='NT-Char' +1 8 #comment 0 1 >Char* ']]>' Char*)) +']]>' +CDATA sections +| '<!DOCTYPE' +(Char - ('[' | ']'))+ +('[' +simpleDTD* +']')? '>' +doc type declaration +simpleDTD +'<!&como;' +(Char* - +(Char* '&comc;' Char*)) +'&comc;>' +1 14 #text 0 1 + +0 15 foo 0 0 diff --git a/result/badcomment.xml.rdr b/result/badcomment.xml.rdr new file mode 100644 index 0000000..29a3cd1 --- /dev/null +++ b/result/badcomment.xml.rdr @@ -0,0 +1,21 @@ +0 1 foo 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 def='NT-Char' +1 8 #comment 0 1 >Char* ']]>' Char*)) +']]>' +CDATA sections +| '<!DOCTYPE' +(Char - ('[' | ']'))+ +('[' +simpleDTD* +']')? '>' +doc type declaration +simpleDTD +'<!&como;' +(Char* - +(Char* '&comc;' Char*)) +'&comc;>' +1 14 #text 0 1 + +0 15 foo 0 0 diff --git a/result/badcomment.xml.sax b/result/badcomment.xml.sax new file mode 100644 index 0000000..d409369 --- /dev/null +++ b/result/badcomment.xml.sax @@ -0,0 +1,24 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(foo) +SAX.characters( +, 1) +SAX.comment( def='NT-Char') +SAX.comment(>Char* ']]>' Char*)) +']]>' +CDATA sections +| '<!DOCTYPE' +(Char - ('[' | ']'))+ +('[' +simpleDTD* +']')? '>' +doc type declaration +simpleDTD +'<!&como;' +(Char* - +(Char* '&comc;' Char*)) +'&comc;>') +SAX.characters( +, 1) +SAX.endElement(foo) +SAX.endDocument() diff --git a/result/badcomment.xml.sax2 b/result/badcomment.xml.sax2 new file mode 100644 index 0000000..08e5622 --- /dev/null +++ b/result/badcomment.xml.sax2 @@ -0,0 +1,24 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(foo, NULL, NULL, 0, 0, 0) +SAX.characters( +, 1) +SAX.comment( def='NT-Char') +SAX.comment(>Char* ']]>' Char*)) +']]>' +CDATA sections +| '<!DOCTYPE' +(Char - ('[' | ']'))+ +('[' +simpleDTD* +']')? '>' +doc type declaration +simpleDTD +'<!&como;' +(Char* - +(Char* '&comc;' Char*)) +'&comc;>') +SAX.characters( +, 1) +SAX.endElementNs(foo, NULL, NULL) +SAX.endDocument() diff --git a/result/bigentname.xml b/result/bigentname.xml new file mode 100644 index 0000000..6b7183f --- /dev/null +++ b/result/bigentname.xml @@ -0,0 +1,6 @@ + + + +]> +&WhatHeSaid; diff --git a/result/bigentname.xml.rde b/result/bigentname.xml.rde new file mode 100644 index 0000000..c2d4cc0 --- /dev/null +++ b/result/bigentname.xml.rde @@ -0,0 +1,4 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 3 #text 0 1 He said "Yes" +0 15 doc 0 0 diff --git a/result/bigentname.xml.rdr b/result/bigentname.xml.rdr new file mode 100644 index 0000000..c394a46 --- /dev/null +++ b/result/bigentname.xml.rdr @@ -0,0 +1,4 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 5 WhatHeSaid 0 0 +0 15 doc 0 0 diff --git a/result/bigentname.xml.sax b/result/bigentname.xml.sax new file mode 100644 index 0000000..1ee19ab --- /dev/null +++ b/result/bigentname.xml.sax @@ -0,0 +1,17 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.entityDecl(very_big_entity_name01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_very_big_ent_name, 1, (null), (null), "Yes") +SAX.getEntity(very_big_entity_name01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_very_big_ent_name) +SAX.entityDecl(WhatHeSaid, 1, (null), (null), He said &very_big_entity_name01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_very_big_ent_name;) +SAX.getEntity(WhatHeSaid) +SAX.externalSubset(doc, , ) +SAX.startElement(doc) +SAX.getEntity(WhatHeSaid) +SAX.characters(He said , 8) +SAX.getEntity(very_big_entity_name01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_very_big_ent_name) +SAX.characters("Yes", 5) +SAX.reference(very_big_entity_name01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_very_big_ent_name) +SAX.reference(WhatHeSaid) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/bigentname.xml.sax2 b/result/bigentname.xml.sax2 new file mode 100644 index 0000000..c2f72c0 --- /dev/null +++ b/result/bigentname.xml.sax2 @@ -0,0 +1,17 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.entityDecl(very_big_entity_name01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_very_big_ent_name, 1, (null), (null), "Yes") +SAX.getEntity(very_big_entity_name01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_very_big_ent_name) +SAX.entityDecl(WhatHeSaid, 1, (null), (null), He said &very_big_entity_name01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_very_big_ent_name;) +SAX.getEntity(WhatHeSaid) +SAX.externalSubset(doc, , ) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.getEntity(WhatHeSaid) +SAX.characters(He said , 8) +SAX.getEntity(very_big_entity_name01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_very_big_ent_name) +SAX.characters("Yes", 5) +SAX.reference(very_big_entity_name01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_very_big_ent_name) +SAX.reference(WhatHeSaid) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/bigname.xml b/result/bigname.xml new file mode 100644 index 0000000..885fd7c --- /dev/null +++ b/result/bigname.xml @@ -0,0 +1,2 @@ + + diff --git a/result/bigname.xml.rde b/result/bigname.xml.rde new file mode 100644 index 0000000..71284c1 --- /dev/null +++ b/result/bigname.xml.rde @@ -0,0 +1 @@ +0 1 this_is_a_very_large_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name 1 0 diff --git a/result/bigname.xml.rdr b/result/bigname.xml.rdr new file mode 100644 index 0000000..71284c1 --- /dev/null +++ b/result/bigname.xml.rdr @@ -0,0 +1 @@ +0 1 this_is_a_very_large_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name 1 0 diff --git a/result/bigname.xml.sax b/result/bigname.xml.sax new file mode 100644 index 0000000..31945be --- /dev/null +++ b/result/bigname.xml.sax @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(this_is_a_very_large_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name) +SAX.endElement(this_is_a_very_large_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name) +SAX.endDocument() diff --git a/result/bigname.xml.sax2 b/result/bigname.xml.sax2 new file mode 100644 index 0000000..ef939f9 --- /dev/null +++ b/result/bigname.xml.sax2 @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(this_is_a_very_large_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name, NULL, NULL, 0, 0, 0) +SAX.endElementNs(this_is_a_very_large_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name, NULL, NULL) +SAX.endDocument() diff --git a/result/bigname2.xml b/result/bigname2.xml new file mode 100644 index 0000000..a48c359 --- /dev/null +++ b/result/bigname2.xml @@ -0,0 +1,2 @@ + + diff --git a/result/bigname2.xml.rde b/result/bigname2.xml.rde new file mode 100644 index 0000000..6de9dd7 --- /dev/null +++ b/result/bigname2.xml.rde @@ -0,0 +1 @@ +0 1 this_is_a_very_large_qualified_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_prefix:start_nc_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name 1 0 diff --git a/result/bigname2.xml.rdr b/result/bigname2.xml.rdr new file mode 100644 index 0000000..6de9dd7 --- /dev/null +++ b/result/bigname2.xml.rdr @@ -0,0 +1 @@ +0 1 this_is_a_very_large_qualified_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_prefix:start_nc_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name 1 0 diff --git a/result/bigname2.xml.sax b/result/bigname2.xml.sax new file mode 100644 index 0000000..7c353e5 --- /dev/null +++ b/result/bigname2.xml.sax @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(this_is_a_very_large_qualified_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_prefix:start_nc_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name, xmlns:this_is_a_very_large_qualified_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_prefix='http://www.example.com/testns/') +SAX.endElement(this_is_a_very_large_qualified_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_prefix:start_nc_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name) +SAX.endDocument() diff --git a/result/bigname2.xml.sax2 b/result/bigname2.xml.sax2 new file mode 100644 index 0000000..6b406f4 --- /dev/null +++ b/result/bigname2.xml.sax2 @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(start_nc_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name, this_is_a_very_large_qualified_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_prefix, 'http://www.example.com/testns/', 1, xmlns:this_is_a_very_large_qualified_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_prefix='http://www.example.com/testns/', 0, 0) +SAX.endElementNs(start_nc_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name, this_is_a_very_large_qualified_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_prefix, 'http://www.example.com/testns/') +SAX.endDocument() diff --git a/result/c14n/1-1-without-comments/example-1 b/result/c14n/1-1-without-comments/example-1 new file mode 100755 index 0000000..af9a977 --- /dev/null +++ b/result/c14n/1-1-without-comments/example-1 @@ -0,0 +1,4 @@ + +Hello, world! + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/example-2 b/result/c14n/1-1-without-comments/example-2 new file mode 100755 index 0000000..2afa15c --- /dev/null +++ b/result/c14n/1-1-without-comments/example-2 @@ -0,0 +1,11 @@ + + + A B + + A + + B + A B + C + + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/example-3 b/result/c14n/1-1-without-comments/example-3 new file mode 100755 index 0000000..4c287e6 --- /dev/null +++ b/result/c14n/1-1-without-comments/example-3 @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/example-4 b/result/c14n/1-1-without-comments/example-4 new file mode 100755 index 0000000..19a2559 --- /dev/null +++ b/result/c14n/1-1-without-comments/example-4 @@ -0,0 +1,9 @@ + + First line +Second line + 2 + value>"0" && value<"10" ?"valid":"error" + valid + + + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/example-5 b/result/c14n/1-1-without-comments/example-5 new file mode 100755 index 0000000..c232e74 --- /dev/null +++ b/result/c14n/1-1-without-comments/example-5 @@ -0,0 +1,3 @@ + + Hello, world! + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/example-6 b/result/c14n/1-1-without-comments/example-6 new file mode 100755 index 0000000..0be38f9 --- /dev/null +++ b/result/c14n/1-1-without-comments/example-6 @@ -0,0 +1 @@ +© \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/example-7 b/result/c14n/1-1-without-comments/example-7 new file mode 100755 index 0000000..0a96cc4 --- /dev/null +++ b/result/c14n/1-1-without-comments/example-7 @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/example-8 b/result/c14n/1-1-without-comments/example-8 new file mode 100755 index 0000000..eb830e8 --- /dev/null +++ b/result/c14n/1-1-without-comments/example-8 @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/xmlbase-c14n11spec-102 b/result/c14n/1-1-without-comments/xmlbase-c14n11spec-102 new file mode 100644 index 0000000..421d60b --- /dev/null +++ b/result/c14n/1-1-without-comments/xmlbase-c14n11spec-102 @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/xmlbase-c14n11spec2-102 b/result/c14n/1-1-without-comments/xmlbase-c14n11spec2-102 new file mode 100644 index 0000000..eb830e8 --- /dev/null +++ b/result/c14n/1-1-without-comments/xmlbase-c14n11spec2-102 @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/xmlbase-c14n11spec3-102 b/result/c14n/1-1-without-comments/xmlbase-c14n11spec3-102 new file mode 100644 index 0000000..77ef848 --- /dev/null +++ b/result/c14n/1-1-without-comments/xmlbase-c14n11spec3-102 @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/xmlbase-prop-1 b/result/c14n/1-1-without-comments/xmlbase-prop-1 new file mode 100644 index 0000000..da3a2b6 --- /dev/null +++ b/result/c14n/1-1-without-comments/xmlbase-prop-1 @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/xmlbase-prop-2 b/result/c14n/1-1-without-comments/xmlbase-prop-2 new file mode 100644 index 0000000..aefa811 --- /dev/null +++ b/result/c14n/1-1-without-comments/xmlbase-prop-2 @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/xmlbase-prop-3 b/result/c14n/1-1-without-comments/xmlbase-prop-3 new file mode 100644 index 0000000..0757d28 --- /dev/null +++ b/result/c14n/1-1-without-comments/xmlbase-prop-3 @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/xmlbase-prop-4 b/result/c14n/1-1-without-comments/xmlbase-prop-4 new file mode 100644 index 0000000..0d45839 --- /dev/null +++ b/result/c14n/1-1-without-comments/xmlbase-prop-4 @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/xmlbase-prop-5 b/result/c14n/1-1-without-comments/xmlbase-prop-5 new file mode 100644 index 0000000..95e51d9 --- /dev/null +++ b/result/c14n/1-1-without-comments/xmlbase-prop-5 @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/xmlbase-prop-6 b/result/c14n/1-1-without-comments/xmlbase-prop-6 new file mode 100644 index 0000000..a7b61e3 --- /dev/null +++ b/result/c14n/1-1-without-comments/xmlbase-prop-6 @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/xmlbase-prop-7 b/result/c14n/1-1-without-comments/xmlbase-prop-7 new file mode 100644 index 0000000..eda3165 --- /dev/null +++ b/result/c14n/1-1-without-comments/xmlbase-prop-7 @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/xmlid-prop-1 b/result/c14n/1-1-without-comments/xmlid-prop-1 new file mode 100644 index 0000000..2a76c06 --- /dev/null +++ b/result/c14n/1-1-without-comments/xmlid-prop-1 @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/xmlid-prop-2 b/result/c14n/1-1-without-comments/xmlid-prop-2 new file mode 100644 index 0000000..1dccb8d --- /dev/null +++ b/result/c14n/1-1-without-comments/xmlid-prop-2 @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/xmllang-prop-1 b/result/c14n/1-1-without-comments/xmllang-prop-1 new file mode 100644 index 0000000..2581a9d --- /dev/null +++ b/result/c14n/1-1-without-comments/xmllang-prop-1 @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/xmllang-prop-2 b/result/c14n/1-1-without-comments/xmllang-prop-2 new file mode 100644 index 0000000..5add5fa --- /dev/null +++ b/result/c14n/1-1-without-comments/xmllang-prop-2 @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/xmllang-prop-3 b/result/c14n/1-1-without-comments/xmllang-prop-3 new file mode 100644 index 0000000..e327ebd --- /dev/null +++ b/result/c14n/1-1-without-comments/xmllang-prop-3 @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/xmllang-prop-4 b/result/c14n/1-1-without-comments/xmllang-prop-4 new file mode 100644 index 0000000..dc192c9 --- /dev/null +++ b/result/c14n/1-1-without-comments/xmllang-prop-4 @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/xmlspace-prop-1 b/result/c14n/1-1-without-comments/xmlspace-prop-1 new file mode 100644 index 0000000..7c13acc --- /dev/null +++ b/result/c14n/1-1-without-comments/xmlspace-prop-1 @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/xmlspace-prop-2 b/result/c14n/1-1-without-comments/xmlspace-prop-2 new file mode 100644 index 0000000..5add5fa --- /dev/null +++ b/result/c14n/1-1-without-comments/xmlspace-prop-2 @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/xmlspace-prop-3 b/result/c14n/1-1-without-comments/xmlspace-prop-3 new file mode 100644 index 0000000..94a1a56 --- /dev/null +++ b/result/c14n/1-1-without-comments/xmlspace-prop-3 @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/result/c14n/1-1-without-comments/xmlspace-prop-4 b/result/c14n/1-1-without-comments/xmlspace-prop-4 new file mode 100644 index 0000000..acbddd4 --- /dev/null +++ b/result/c14n/1-1-without-comments/xmlspace-prop-4 @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/result/c14n/exc-without-comments/merlin-c14n-two-09 b/result/c14n/exc-without-comments/merlin-c14n-two-09 new file mode 100644 index 0000000..279fd6c --- /dev/null +++ b/result/c14n/exc-without-comments/merlin-c14n-two-09 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/exc-without-comments/merlin-c14n-two-10 b/result/c14n/exc-without-comments/merlin-c14n-two-10 new file mode 100644 index 0000000..279fd6c --- /dev/null +++ b/result/c14n/exc-without-comments/merlin-c14n-two-10 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/exc-without-comments/merlin-c14n-two-11 b/result/c14n/exc-without-comments/merlin-c14n-two-11 new file mode 100644 index 0000000..279fd6c --- /dev/null +++ b/result/c14n/exc-without-comments/merlin-c14n-two-11 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/exc-without-comments/merlin-c14n-two-12 b/result/c14n/exc-without-comments/merlin-c14n-two-12 new file mode 100644 index 0000000..cd53346 --- /dev/null +++ b/result/c14n/exc-without-comments/merlin-c14n-two-12 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/exc-without-comments/merlin-c14n-two-13 b/result/c14n/exc-without-comments/merlin-c14n-two-13 new file mode 100644 index 0000000..27fb6e5 --- /dev/null +++ b/result/c14n/exc-without-comments/merlin-c14n-two-13 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/exc-without-comments/merlin-c14n-two-14 b/result/c14n/exc-without-comments/merlin-c14n-two-14 new file mode 100644 index 0000000..27fb6e5 --- /dev/null +++ b/result/c14n/exc-without-comments/merlin-c14n-two-14 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/exc-without-comments/merlin-c14n-two-15 b/result/c14n/exc-without-comments/merlin-c14n-two-15 new file mode 100644 index 0000000..e69de29 diff --git a/result/c14n/exc-without-comments/merlin-c14n-two-16 b/result/c14n/exc-without-comments/merlin-c14n-two-16 new file mode 100644 index 0000000..e69de29 diff --git a/result/c14n/exc-without-comments/merlin-c14n-two-17 b/result/c14n/exc-without-comments/merlin-c14n-two-17 new file mode 100644 index 0000000..27fb6e5 --- /dev/null +++ b/result/c14n/exc-without-comments/merlin-c14n-two-17 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/exc-without-comments/merlin-c14n-two-18 b/result/c14n/exc-without-comments/merlin-c14n-two-18 new file mode 100644 index 0000000..6675391 --- /dev/null +++ b/result/c14n/exc-without-comments/merlin-c14n-two-18 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/exc-without-comments/merlin-c14n-two-19 b/result/c14n/exc-without-comments/merlin-c14n-two-19 new file mode 100644 index 0000000..279fd6c --- /dev/null +++ b/result/c14n/exc-without-comments/merlin-c14n-two-19 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/exc-without-comments/merlin-c14n-two-20 b/result/c14n/exc-without-comments/merlin-c14n-two-20 new file mode 100644 index 0000000..279fd6c --- /dev/null +++ b/result/c14n/exc-without-comments/merlin-c14n-two-20 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/exc-without-comments/merlin-c14n-two-21 b/result/c14n/exc-without-comments/merlin-c14n-two-21 new file mode 100644 index 0000000..cd53346 --- /dev/null +++ b/result/c14n/exc-without-comments/merlin-c14n-two-21 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/exc-without-comments/merlin-c14n-two-22 b/result/c14n/exc-without-comments/merlin-c14n-two-22 new file mode 100644 index 0000000..27fb6e5 --- /dev/null +++ b/result/c14n/exc-without-comments/merlin-c14n-two-22 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/exc-without-comments/merlin-c14n-two-23 b/result/c14n/exc-without-comments/merlin-c14n-two-23 new file mode 100644 index 0000000..27fb6e5 --- /dev/null +++ b/result/c14n/exc-without-comments/merlin-c14n-two-23 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/exc-without-comments/merlin-c14n-two-24 b/result/c14n/exc-without-comments/merlin-c14n-two-24 new file mode 100644 index 0000000..162c746 --- /dev/null +++ b/result/c14n/exc-without-comments/merlin-c14n-two-24 @@ -0,0 +1 @@ + xmlns="http://example.org/" xmlns="http://example.org/" xmlns="http://example.org/" xmlns="http://example.org/" xmlns="http://example.org/" \ No newline at end of file diff --git a/result/c14n/exc-without-comments/merlin-c14n-two-25 b/result/c14n/exc-without-comments/merlin-c14n-two-25 new file mode 100644 index 0000000..e69de29 diff --git a/result/c14n/exc-without-comments/merlin-c14n-two-26 b/result/c14n/exc-without-comments/merlin-c14n-two-26 new file mode 100644 index 0000000..1f7eb6e --- /dev/null +++ b/result/c14n/exc-without-comments/merlin-c14n-two-26 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/exc-without-comments/test-0 b/result/c14n/exc-without-comments/test-0 new file mode 100644 index 0000000..3806ea0 --- /dev/null +++ b/result/c14n/exc-without-comments/test-0 @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/result/c14n/exc-without-comments/test-1 b/result/c14n/exc-without-comments/test-1 new file mode 100644 index 0000000..bd5930f --- /dev/null +++ b/result/c14n/exc-without-comments/test-1 @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/result/c14n/exc-without-comments/test-2 b/result/c14n/exc-without-comments/test-2 new file mode 100644 index 0000000..0b8a0cb --- /dev/null +++ b/result/c14n/exc-without-comments/test-2 @@ -0,0 +1,11 @@ + + + + + + + + + sj1VXDB2VMCU5qmva2OtDw3kKOs= + + \ No newline at end of file diff --git a/result/c14n/with-comments/example-1 b/result/c14n/with-comments/example-1 new file mode 100644 index 0000000..d98d168 --- /dev/null +++ b/result/c14n/with-comments/example-1 @@ -0,0 +1,6 @@ + +Hello, world! + + + \ No newline at end of file diff --git a/result/c14n/with-comments/example-2 b/result/c14n/with-comments/example-2 new file mode 100644 index 0000000..2afa15c --- /dev/null +++ b/result/c14n/with-comments/example-2 @@ -0,0 +1,11 @@ + + + A B + + A + + B + A B + C + + \ No newline at end of file diff --git a/result/c14n/with-comments/example-3 b/result/c14n/with-comments/example-3 new file mode 100644 index 0000000..4c287e6 --- /dev/null +++ b/result/c14n/with-comments/example-3 @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/with-comments/example-4 b/result/c14n/with-comments/example-4 new file mode 100644 index 0000000..19a2559 --- /dev/null +++ b/result/c14n/with-comments/example-4 @@ -0,0 +1,9 @@ + + First line +Second line + 2 + value>"0" && value<"10" ?"valid":"error" + valid + + + \ No newline at end of file diff --git a/result/c14n/with-comments/example-5 b/result/c14n/with-comments/example-5 new file mode 100644 index 0000000..457d402 --- /dev/null +++ b/result/c14n/with-comments/example-5 @@ -0,0 +1,4 @@ + + Hello, world! + + \ No newline at end of file diff --git a/result/c14n/with-comments/example-6 b/result/c14n/with-comments/example-6 new file mode 100644 index 0000000..0be38f9 --- /dev/null +++ b/result/c14n/with-comments/example-6 @@ -0,0 +1 @@ +© \ No newline at end of file diff --git a/result/c14n/with-comments/example-7 b/result/c14n/with-comments/example-7 new file mode 100644 index 0000000..0a96cc4 --- /dev/null +++ b/result/c14n/with-comments/example-7 @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/result/c14n/without-comments/example-1 b/result/c14n/without-comments/example-1 new file mode 100644 index 0000000..af9a977 --- /dev/null +++ b/result/c14n/without-comments/example-1 @@ -0,0 +1,4 @@ + +Hello, world! + \ No newline at end of file diff --git a/result/c14n/without-comments/example-2 b/result/c14n/without-comments/example-2 new file mode 100644 index 0000000..2afa15c --- /dev/null +++ b/result/c14n/without-comments/example-2 @@ -0,0 +1,11 @@ + + + A B + + A + + B + A B + C + + \ No newline at end of file diff --git a/result/c14n/without-comments/example-3 b/result/c14n/without-comments/example-3 new file mode 100644 index 0000000..4c287e6 --- /dev/null +++ b/result/c14n/without-comments/example-3 @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/without-comments/example-4 b/result/c14n/without-comments/example-4 new file mode 100644 index 0000000..19a2559 --- /dev/null +++ b/result/c14n/without-comments/example-4 @@ -0,0 +1,9 @@ + + First line +Second line + 2 + value>"0" && value<"10" ?"valid":"error" + valid + + + \ No newline at end of file diff --git a/result/c14n/without-comments/example-5 b/result/c14n/without-comments/example-5 new file mode 100644 index 0000000..c232e74 --- /dev/null +++ b/result/c14n/without-comments/example-5 @@ -0,0 +1,3 @@ + + Hello, world! + \ No newline at end of file diff --git a/result/c14n/without-comments/example-6 b/result/c14n/without-comments/example-6 new file mode 100644 index 0000000..0be38f9 --- /dev/null +++ b/result/c14n/without-comments/example-6 @@ -0,0 +1 @@ +© \ No newline at end of file diff --git a/result/c14n/without-comments/example-7 b/result/c14n/without-comments/example-7 new file mode 100644 index 0000000..0a96cc4 --- /dev/null +++ b/result/c14n/without-comments/example-7 @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/result/c14n/without-comments/merlin-c14n-two-00 b/result/c14n/without-comments/merlin-c14n-two-00 new file mode 100644 index 0000000..2ca2b30 --- /dev/null +++ b/result/c14n/without-comments/merlin-c14n-two-00 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/without-comments/merlin-c14n-two-01 b/result/c14n/without-comments/merlin-c14n-two-01 new file mode 100644 index 0000000..be42edf --- /dev/null +++ b/result/c14n/without-comments/merlin-c14n-two-01 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/without-comments/merlin-c14n-two-02 b/result/c14n/without-comments/merlin-c14n-two-02 new file mode 100644 index 0000000..be42edf --- /dev/null +++ b/result/c14n/without-comments/merlin-c14n-two-02 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/without-comments/merlin-c14n-two-03 b/result/c14n/without-comments/merlin-c14n-two-03 new file mode 100644 index 0000000..170354a --- /dev/null +++ b/result/c14n/without-comments/merlin-c14n-two-03 @@ -0,0 +1,9 @@ + + xmlns:foo="http://example.org/foo" + + xmlns:foo="http://example.org/foo" + + + + + \ No newline at end of file diff --git a/result/c14n/without-comments/merlin-c14n-two-04 b/result/c14n/without-comments/merlin-c14n-two-04 new file mode 100644 index 0000000..185cbf3 --- /dev/null +++ b/result/c14n/without-comments/merlin-c14n-two-04 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/without-comments/merlin-c14n-two-05 b/result/c14n/without-comments/merlin-c14n-two-05 new file mode 100644 index 0000000..185cbf3 --- /dev/null +++ b/result/c14n/without-comments/merlin-c14n-two-05 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/without-comments/merlin-c14n-two-06 b/result/c14n/without-comments/merlin-c14n-two-06 new file mode 100644 index 0000000..bb45d0b --- /dev/null +++ b/result/c14n/without-comments/merlin-c14n-two-06 @@ -0,0 +1 @@ + xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" \ No newline at end of file diff --git a/result/c14n/without-comments/merlin-c14n-two-07 b/result/c14n/without-comments/merlin-c14n-two-07 new file mode 100644 index 0000000..c42ffc1 --- /dev/null +++ b/result/c14n/without-comments/merlin-c14n-two-07 @@ -0,0 +1 @@ + xmlns:bar="http://example.org/bar" xmlns:foo="http://example.org/foo" xmlns:bar="http://example.org/bar" xmlns:foo="http://example.org/foo" xmlns:baz="http://example.org/baz" \ No newline at end of file diff --git a/result/c14n/without-comments/merlin-c14n-two-08 b/result/c14n/without-comments/merlin-c14n-two-08 new file mode 100644 index 0000000..4f5bbb4 --- /dev/null +++ b/result/c14n/without-comments/merlin-c14n-two-08 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/result/c14n/without-comments/test-0 b/result/c14n/without-comments/test-0 new file mode 100644 index 0000000..013de33 --- /dev/null +++ b/result/c14n/without-comments/test-0 @@ -0,0 +1 @@ +I am the text. \ No newline at end of file diff --git a/result/c14n/without-comments/test-1 b/result/c14n/without-comments/test-1 new file mode 100644 index 0000000..0150f4a --- /dev/null +++ b/result/c14n/without-comments/test-1 @@ -0,0 +1,31 @@ + + + CN=Merlin Hughes,O=Baltimore Technologies\, Ltd.,ST=Dublin,C=IE + + + + CN=Test DSA CA,O=Baltimore Technologies\, Ltd.,ST=Dublin,C=IE + + 970849936 + + + MIIDNzCCAvWgAwIBAgIEOd3+kDAJBgcqhkjOOAQDMFsxCzAJBgNVBAYTAklFMQ8w + DQYDVQQIEwZEdWJsaW4xJTAjBgNVBAoTHEJhbHRpbW9yZSBUZWNobm9sb2dpZXMs + IEx0ZC4xFDASBgNVBAMTC1Rlc3QgRFNBIENBMB4XDTAwMTAwNjE2MzIxNVoXDTAx + MTAwNjE2MzIxNFowXTELMAkGA1UEBhMCSUUxDzANBgNVBAgTBkR1YmxpbjElMCMG + A1UEChMcQmFsdGltb3JlIFRlY2hub2xvZ2llcywgTHRkLjEWMBQGA1UEAxMNTWVy + bGluIEh1Z2hlczCCAbYwggErBgcqhkjOOAQBMIIBHgKBgQDaJjfDTrawMHf8MiUt + Y54b37hSmYNnR3KpGT10uU1Dqppcju06uN0iGbqf947DjkBC25hKnqykK31xBw0E + CPbYq/KC98kghdf2xJCu6B8aqJ95K9jdVflJ3WP7PQxJn+fmM23zy6HYLXVICpfq + etdNj/VHCShZE3bdJiE6VobSFQIVAPQecqS2PaTDprcQnkwx4MHTRXhrAoGAMuGA + lqeB1ax+vyO2+Osubjhl7pHxLu47RIH+/M52DjESA9KMSrwzsYx8yNR2WooByrE0 + t6fu0VncK7UK8olO4t7wpv2z4AFQPRVCKFwo0qgn5aKIkICGMlrRy81avb27wGcW + othx3iPPMtFXtoDqK0JItaI9R8zc1msFhM1GKMYDgYQAAoGActA8YGxrtngg/zKV + vqEOefnwmViFztcnPBYPlJsvh6yKI4iDm68fnp4Mi3RrJ6bZAygFrUIQLxLjV+OJ + tgJAEto0xAs+Mehuq1DkSFEpP3oDzCTOsrOiS1DwQe4oIb7zVk/9l7aPtJMHW0LV + lMdwZNFNNJoqMcT2ZfCPrfvYvQ2jRzBFMB4GA1UdEQQXMBWBE21lcmxpbkBiYWx0 + aW1vcmUuaWUwDgYDVR0PAQH/BAQDAgeAMBMGA1UdIwQMMAqACEJZQG0KwRbPMAkG + ByqGSM44BAMDMQAwLgIVAK4skWEFYgrggaJA8vYAwSjg12+KAhUAwHTo7wd4tENw + 9LAKPklQ/74fH18= + + \ No newline at end of file diff --git a/result/c14n/without-comments/test-2 b/result/c14n/without-comments/test-2 new file mode 100644 index 0000000..c829481 --- /dev/null +++ b/result/c14n/without-comments/test-2 @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/result/c14n/without-comments/test-3 b/result/c14n/without-comments/test-3 new file mode 100644 index 0000000..318cb19 --- /dev/null +++ b/result/c14n/without-comments/test-3 @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/result/catalogs/catal b/result/catalogs/catal new file mode 100644 index 0000000..52b2afe --- /dev/null +++ b/result/catalogs/catal @@ -0,0 +1,5 @@ +> test/catalogs/calstblx.dtd +> test/catalogs/docbook.dtd +> test/catalogs/soextblx.dtd +> test/catalogs/dbgenent.mod +> \ No newline at end of file diff --git a/result/catalogs/docbook b/result/catalogs/docbook new file mode 100644 index 0000000..804005d --- /dev/null +++ b/result/catalogs/docbook @@ -0,0 +1,6 @@ +> /usr/share/xml/docbook/xml/4.1.2/dbpoolx.mod +> http://www.oasis-open.org/docbook/xml/4.1.2/dbcentx.mod +> http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd +> http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd +> file:///usr/share/xml/toto/toto.dtd +> \ No newline at end of file diff --git a/result/catalogs/mycatalog.empty b/result/catalogs/mycatalog.empty new file mode 100644 index 0000000..84f482e --- /dev/null +++ b/result/catalogs/mycatalog.empty @@ -0,0 +1,3 @@ + + + diff --git a/result/catalogs/mycatalog.full b/result/catalogs/mycatalog.full new file mode 100644 index 0000000..5ee1ccf --- /dev/null +++ b/result/catalogs/mycatalog.full @@ -0,0 +1,7 @@ + + + + + + + diff --git a/result/catalogs/registry b/result/catalogs/registry new file mode 100644 index 0000000..e035c55 --- /dev/null +++ b/result/catalogs/registry @@ -0,0 +1,5 @@ +> /usr/share/xml/docbook/xml/4.1.2/dbpoolx.mod +> http://www.oasis-open.org/docbook/xml/4.1.2/dbcentx.mod +> /usr/share/xml/docbook/xml/4.1.2/dbpoolx.mod +> http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd +> \ No newline at end of file diff --git a/result/catalogs/whites b/result/catalogs/whites new file mode 100644 index 0000000..52b2afe --- /dev/null +++ b/result/catalogs/whites @@ -0,0 +1,5 @@ +> test/catalogs/calstblx.dtd +> test/catalogs/docbook.dtd +> test/catalogs/soextblx.dtd +> test/catalogs/dbgenent.mod +> \ No newline at end of file diff --git a/result/catalogs/whitex b/result/catalogs/whitex new file mode 100644 index 0000000..b02bcc6 --- /dev/null +++ b/result/catalogs/whitex @@ -0,0 +1,8 @@ +> /usr/share/xml/docbook/xml/4.1.2/dbpoolx.mod +> http://www.oasis-open.org/docbook/xml/4.1.2/dbcentx.mod +> http://www.oasis-open.org/docbook/xml/4.1.2/dbcentx.mod +> http://www.oasis-open.org/docbook/xml/4.1.2/dbcentx.mod +> http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd +> http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd +> file:///usr/share/xml/toto/toto.dtd +> \ No newline at end of file diff --git a/result/cdata b/result/cdata new file mode 100644 index 0000000..180ea46 --- /dev/null +++ b/result/cdata @@ -0,0 +1,4 @@ + + +Hello, world!]]> + diff --git a/result/cdata.rde b/result/cdata.rde new file mode 100644 index 0000000..316b8bf --- /dev/null +++ b/result/cdata.rde @@ -0,0 +1,7 @@ +0 1 doc 0 0 +1 14 #text 0 1 + +1 4 #cdata-section 0 1 Hello, world! +1 14 #text 0 1 + +0 15 doc 0 0 diff --git a/result/cdata.rdr b/result/cdata.rdr new file mode 100644 index 0000000..316b8bf --- /dev/null +++ b/result/cdata.rdr @@ -0,0 +1,7 @@ +0 1 doc 0 0 +1 14 #text 0 1 + +1 4 #cdata-section 0 1 Hello, world! +1 14 #text 0 1 + +0 15 doc 0 0 diff --git a/result/cdata.sax b/result/cdata.sax new file mode 100644 index 0000000..f917f99 --- /dev/null +++ b/result/cdata.sax @@ -0,0 +1,10 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(doc) +SAX.characters( +, 1) +SAX.pcdata(Hello, wor, 34) +SAX.characters( +, 1) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/cdata.sax2 b/result/cdata.sax2 new file mode 100644 index 0000000..117b2b0 --- /dev/null +++ b/result/cdata.sax2 @@ -0,0 +1,10 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.characters( +, 1) +SAX.pcdata(Hello, wor, 34) +SAX.characters( +, 1) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/cdata2 b/result/cdata2 new file mode 100644 index 0000000..b4db791 --- /dev/null +++ b/result/cdata2 @@ -0,0 +1,6 @@ + + + ]> + diff --git a/result/cdata2.rde b/result/cdata2.rde new file mode 100644 index 0000000..e69a672 --- /dev/null +++ b/result/cdata2.rde @@ -0,0 +1,13 @@ +0 1 collection 0 0 +1 14 #text 0 1 + +1 1 test 0 0 +2 4 #cdata-section 0 1 + +2 4 #cdata-section 0 1 + +1 15 test 0 0 +1 14 #text 0 1 + +0 15 collection 0 0 diff --git a/result/cdata2.rdr b/result/cdata2.rdr new file mode 100644 index 0000000..e69a672 --- /dev/null +++ b/result/cdata2.rdr @@ -0,0 +1,13 @@ +0 1 collection 0 0 +1 14 #text 0 1 + +1 1 test 0 0 +2 4 #cdata-section 0 1 + +2 4 #cdata-section 0 1 + +1 15 test 0 0 +1 14 #text 0 1 + +0 15 collection 0 0 diff --git a/result/cdata2.sax b/result/cdata2.sax new file mode 100644 index 0000000..7fcc863 --- /dev/null +++ b/result/cdata2.sax @@ -0,0 +1,17 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(collection) +SAX.characters( + , 3) +SAX.startElement(test) +SAX.pcdata( + , 1) +SAX.pcdata( + , 3) +SAX.endElement(test) +SAX.characters( +, 1) +SAX.endElement(collection) +SAX.endDocument() diff --git a/result/cdata2.sax2 b/result/cdata2.sax2 new file mode 100644 index 0000000..d1420e9 --- /dev/null +++ b/result/cdata2.sax2 @@ -0,0 +1,17 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(collection, NULL, NULL, 0, 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(test, NULL, NULL, 0, 0, 0) +SAX.pcdata( + , 1) +SAX.pcdata( + , 3) +SAX.endElementNs(test, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(collection, NULL, NULL) +SAX.endDocument() diff --git a/result/comment.xml b/result/comment.xml new file mode 100644 index 0000000..98c5eff --- /dev/null +++ b/result/comment.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/result/comment.xml.rde b/result/comment.xml.rde new file mode 100644 index 0000000..9551ced --- /dev/null +++ b/result/comment.xml.rde @@ -0,0 +1,13 @@ +0 1 doc 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 document start +1 14 #text 0 1 + +1 1 empty 1 0 +1 14 #text 0 1 + +1 8 #comment 0 1 document end +1 14 #text 0 1 + +0 15 doc 0 0 diff --git a/result/comment.xml.rdr b/result/comment.xml.rdr new file mode 100644 index 0000000..9551ced --- /dev/null +++ b/result/comment.xml.rdr @@ -0,0 +1,13 @@ +0 1 doc 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 document start +1 14 #text 0 1 + +1 1 empty 1 0 +1 14 #text 0 1 + +1 8 #comment 0 1 document end +1 14 #text 0 1 + +0 15 doc 0 0 diff --git a/result/comment.xml.sax b/result/comment.xml.sax new file mode 100644 index 0000000..d969036 --- /dev/null +++ b/result/comment.xml.sax @@ -0,0 +1,17 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(doc) +SAX.characters( +, 1) +SAX.comment( document start ) +SAX.characters( +, 1) +SAX.startElement(empty) +SAX.endElement(empty) +SAX.characters( +, 1) +SAX.comment( document end ) +SAX.characters( +, 1) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/comment.xml.sax2 b/result/comment.xml.sax2 new file mode 100644 index 0000000..da57f50 --- /dev/null +++ b/result/comment.xml.sax2 @@ -0,0 +1,17 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.characters( +, 1) +SAX.comment( document start ) +SAX.characters( +, 1) +SAX.startElementNs(empty, NULL, NULL, 0, 0, 0) +SAX.endElementNs(empty, NULL, NULL) +SAX.characters( +, 1) +SAX.comment( document end ) +SAX.characters( +, 1) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/comment2.xml b/result/comment2.xml new file mode 100644 index 0000000..9e122ec --- /dev/null +++ b/result/comment2.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/result/comment2.xml.rde b/result/comment2.xml.rde new file mode 100644 index 0000000..4a3279d --- /dev/null +++ b/result/comment2.xml.rde @@ -0,0 +1,9 @@ +0 8 #comment 0 1 document start +0 1 doc 0 0 +1 14 #text 0 1 + +1 1 empty 1 0 +1 14 #text 0 1 + +0 15 doc 0 0 +0 8 #comment 0 1 document end diff --git a/result/comment2.xml.rdr b/result/comment2.xml.rdr new file mode 100644 index 0000000..4a3279d --- /dev/null +++ b/result/comment2.xml.rdr @@ -0,0 +1,9 @@ +0 8 #comment 0 1 document start +0 1 doc 0 0 +1 14 #text 0 1 + +1 1 empty 1 0 +1 14 #text 0 1 + +0 15 doc 0 0 +0 8 #comment 0 1 document end diff --git a/result/comment2.xml.sax b/result/comment2.xml.sax new file mode 100644 index 0000000..bffd7e1 --- /dev/null +++ b/result/comment2.xml.sax @@ -0,0 +1,13 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.comment( document start ) +SAX.startElement(doc) +SAX.characters( +, 1) +SAX.startElement(empty) +SAX.endElement(empty) +SAX.characters( +, 1) +SAX.endElement(doc) +SAX.comment( document end ) +SAX.endDocument() diff --git a/result/comment2.xml.sax2 b/result/comment2.xml.sax2 new file mode 100644 index 0000000..a286744 --- /dev/null +++ b/result/comment2.xml.sax2 @@ -0,0 +1,13 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.comment( document start ) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.characters( +, 1) +SAX.startElementNs(empty, NULL, NULL, 0, 0, 0) +SAX.endElementNs(empty, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(doc, NULL, NULL) +SAX.comment( document end ) +SAX.endDocument() diff --git a/result/comment3.xml b/result/comment3.xml new file mode 100644 index 0000000..395f67c --- /dev/null +++ b/result/comment3.xml @@ -0,0 +1,164 @@ + + + diff --git a/result/comment3.xml.rde b/result/comment3.xml.rde new file mode 100644 index 0000000..519b8d0 --- /dev/null +++ b/result/comment3.xml.rde @@ -0,0 +1,163 @@ +0 8 #comment 0 1 test of very very long comments and buffer limits +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 + +0 1 doc 1 0 diff --git a/result/comment3.xml.rdr b/result/comment3.xml.rdr new file mode 100644 index 0000000..519b8d0 --- /dev/null +++ b/result/comment3.xml.rdr @@ -0,0 +1,163 @@ +0 8 #comment 0 1 test of very very long comments and buffer limits +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 + +0 1 doc 1 0 diff --git a/result/comment3.xml.sax b/result/comment3.xml.sax new file mode 100644 index 0000000..82b8b36 --- /dev/null +++ b/result/comment3.xml.sax @@ -0,0 +1,167 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.comment( test of very very long comments and buffer limits +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +) +SAX.startElement(doc) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/comment3.xml.sax2 b/result/comment3.xml.sax2 new file mode 100644 index 0000000..a5f1fd6 --- /dev/null +++ b/result/comment3.xml.sax2 @@ -0,0 +1,167 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.comment( test of very very long comments and buffer limits +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +01234567890123456789012345678901234567890123456789 +) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/comment4.xml b/result/comment4.xml new file mode 100644 index 0000000..93282d8 --- /dev/null +++ b/result/comment4.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/result/comment4.xml.rde b/result/comment4.xml.rde new file mode 100644 index 0000000..09e181b --- /dev/null +++ b/result/comment4.xml.rde @@ -0,0 +1,4 @@ +0 8 #comment 0 1 test of non ascii comments like là et très +0 8 #comment 0 1 à another one +0 8 #comment 0 1 another one à +0 1 doc 1 0 diff --git a/result/comment4.xml.rdr b/result/comment4.xml.rdr new file mode 100644 index 0000000..09e181b --- /dev/null +++ b/result/comment4.xml.rdr @@ -0,0 +1,4 @@ +0 8 #comment 0 1 test of non ascii comments like là et très +0 8 #comment 0 1 à another one +0 8 #comment 0 1 another one à +0 1 doc 1 0 diff --git a/result/comment4.xml.sax b/result/comment4.xml.sax new file mode 100644 index 0000000..26011d9 --- /dev/null +++ b/result/comment4.xml.sax @@ -0,0 +1,8 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.comment( test of non ascii comments like là et très ) +SAX.comment(à another one ) +SAX.comment( another one à) +SAX.startElement(doc) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/comment4.xml.sax2 b/result/comment4.xml.sax2 new file mode 100644 index 0000000..0e2611f --- /dev/null +++ b/result/comment4.xml.sax2 @@ -0,0 +1,8 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.comment( test of non ascii comments like là et très ) +SAX.comment(à another one ) +SAX.comment( another one à) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/comment5.xml b/result/comment5.xml new file mode 100644 index 0000000..398f974 --- /dev/null +++ b/result/comment5.xml @@ -0,0 +1,9 @@ + + + diff --git a/result/comment5.xml.rde b/result/comment5.xml.rde new file mode 100644 index 0000000..fe7a88f --- /dev/null +++ b/result/comment5.xml.rde @@ -0,0 +1,8 @@ +0 8 #comment 0 1 test of hyphen and line break handling + some text - interrupted - +- - - - - - - - - - - - - - - - - - - - - - + this should stop here^ + + + +0 1 doc 1 0 diff --git a/result/comment5.xml.rdr b/result/comment5.xml.rdr new file mode 100644 index 0000000..fe7a88f --- /dev/null +++ b/result/comment5.xml.rdr @@ -0,0 +1,8 @@ +0 8 #comment 0 1 test of hyphen and line break handling + some text - interrupted - +- - - - - - - - - - - - - - - - - - - - - - + this should stop here^ + + + +0 1 doc 1 0 diff --git a/result/comment5.xml.sax b/result/comment5.xml.sax new file mode 100644 index 0000000..dd58e7a --- /dev/null +++ b/result/comment5.xml.sax @@ -0,0 +1,12 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.comment( test of hyphen and line break handling + some text - interrupted - +- - - - - - - - - - - - - - - - - - - - - - + this should stop here^ + + +) +SAX.startElement(doc) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/comment5.xml.sax2 b/result/comment5.xml.sax2 new file mode 100644 index 0000000..f0940b2 --- /dev/null +++ b/result/comment5.xml.sax2 @@ -0,0 +1,12 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.comment( test of hyphen and line break handling + some text - interrupted - +- - - - - - - - - - - - - - - - - - - - - - + this should stop here^ + + +) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/comment6.xml b/result/comment6.xml new file mode 100644 index 0000000..3e6074e --- /dev/null +++ b/result/comment6.xml @@ -0,0 +1,14 @@ + + + +]> + diff --git a/result/comment6.xml.rde b/result/comment6.xml.rde new file mode 100644 index 0000000..e877c3e --- /dev/null +++ b/result/comment6.xml.rde @@ -0,0 +1,11 @@ +0 8 #comment 0 1 +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment + +0 10 a 0 0 +0 1 a 1 0 diff --git a/result/comment6.xml.rdr b/result/comment6.xml.rdr new file mode 100644 index 0000000..e877c3e --- /dev/null +++ b/result/comment6.xml.rdr @@ -0,0 +1,11 @@ +0 8 #comment 0 1 +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment + +0 10 a 0 0 +0 1 a 1 0 diff --git a/result/comment6.xml.sax b/result/comment6.xml.sax new file mode 100644 index 0000000..53fea21 --- /dev/null +++ b/result/comment6.xml.sax @@ -0,0 +1,17 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.comment( +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +) +SAX.internalSubset(a, , ) +SAX.elementDecl(a, 1, ...) +SAX.externalSubset(a, , ) +SAX.startElement(a) +SAX.endElement(a) +SAX.endDocument() diff --git a/result/comment6.xml.sax2 b/result/comment6.xml.sax2 new file mode 100644 index 0000000..7dd7dc0 --- /dev/null +++ b/result/comment6.xml.sax2 @@ -0,0 +1,17 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.comment( +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +long comment long comment long comment long comment long comment long comment +) +SAX.internalSubset(a, , ) +SAX.elementDecl(a, 1, ...) +SAX.externalSubset(a, , ) +SAX.startElementNs(a, NULL, NULL, 0, 0, 0) +SAX.endElementNs(a, NULL, NULL) +SAX.endDocument() diff --git a/result/dav1 b/result/dav1 new file mode 100644 index 0000000..cbfd4c4 --- /dev/null +++ b/result/dav1 @@ -0,0 +1,25 @@ + + + + + + Box type A + + + J.J. Dingleheimerschmidt + + + HTTP/1.1 200 OK + + + + + + + HTTP/1.1 403 Forbidden + The user does not have access to the DingALing property. + + + There has been an access violation error. + + diff --git a/result/dav1.rde b/result/dav1.rde new file mode 100644 index 0000000..d8d44e6 --- /dev/null +++ b/result/dav1.rde @@ -0,0 +1,78 @@ +0 1 D:multistatus 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 R:bigbox 0 0 +4 14 #text 0 1 + +4 1 R:BoxType 0 0 +5 3 #text 0 1 Box type A +4 15 R:BoxType 0 0 +4 14 #text 0 1 + +3 15 R:bigbox 0 0 +3 14 #text 0 1 + +3 1 R:author 0 0 +4 14 #text 0 1 + +4 1 R:Name 0 0 +5 3 #text 0 1 J.J. Dingleheimerschmidt +4 15 R:Name 0 0 +4 14 #text 0 1 + +3 15 R:author 0 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP/1.1 200 OK +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 R:DingALing 1 0 +3 14 #text 0 1 + +3 1 R:Random 1 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP/1.1 403 Forbidden +2 15 D:status 0 0 +2 14 #text 0 1 + +2 1 D:responsedescription 0 0 +3 3 #text 0 1 The user does not have access to the DingALing property. + +2 15 D:responsedescription 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +1 1 D:responsedescription 0 0 +2 3 #text 0 1 There has been an access violation error. + +1 15 D:responsedescription 0 0 +1 14 #text 0 1 + +0 15 D:multistatus 0 0 diff --git a/result/dav1.rdr b/result/dav1.rdr new file mode 100644 index 0000000..d8d44e6 --- /dev/null +++ b/result/dav1.rdr @@ -0,0 +1,78 @@ +0 1 D:multistatus 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 R:bigbox 0 0 +4 14 #text 0 1 + +4 1 R:BoxType 0 0 +5 3 #text 0 1 Box type A +4 15 R:BoxType 0 0 +4 14 #text 0 1 + +3 15 R:bigbox 0 0 +3 14 #text 0 1 + +3 1 R:author 0 0 +4 14 #text 0 1 + +4 1 R:Name 0 0 +5 3 #text 0 1 J.J. Dingleheimerschmidt +4 15 R:Name 0 0 +4 14 #text 0 1 + +3 15 R:author 0 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP/1.1 200 OK +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 R:DingALing 1 0 +3 14 #text 0 1 + +3 1 R:Random 1 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP/1.1 403 Forbidden +2 15 D:status 0 0 +2 14 #text 0 1 + +2 1 D:responsedescription 0 0 +3 3 #text 0 1 The user does not have access to the DingALing property. + +2 15 D:responsedescription 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +1 1 D:responsedescription 0 0 +2 3 #text 0 1 There has been an access violation error. + +1 15 D:responsedescription 0 0 +1 14 #text 0 1 + +0 15 D:multistatus 0 0 diff --git a/result/dav1.sax b/result/dav1.sax new file mode 100644 index 0000000..9c1988f --- /dev/null +++ b/result/dav1.sax @@ -0,0 +1,81 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(D:multistatus, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:R='http://www.foo.bar/boxschema') +SAX.characters( + , 3) +SAX.startElement(D:response) +SAX.characters( + , 5) +SAX.startElement(D:prop) +SAX.characters( + , 7) +SAX.startElement(R:bigbox) +SAX.characters( + , 9) +SAX.startElement(R:BoxType) +SAX.characters(Box type A, 10) +SAX.endElement(R:BoxType) +SAX.characters( + , 7) +SAX.endElement(R:bigbox) +SAX.characters( + , 7) +SAX.startElement(R:author) +SAX.characters( + , 9) +SAX.startElement(R:Name) +SAX.characters(J.J. Dingleheimerschmidt, 24) +SAX.endElement(R:Name) +SAX.characters( + , 7) +SAX.endElement(R:author) +SAX.characters( + , 5) +SAX.endElement(D:prop) +SAX.characters( + , 5) +SAX.startElement(D:status) +SAX.characters(HTTP/1.1 200 OK, 15) +SAX.endElement(D:status) +SAX.characters( + , 3) +SAX.endElement(D:response) +SAX.characters( + , 3) +SAX.startElement(D:response) +SAX.characters( + , 5) +SAX.startElement(D:prop) +SAX.characters( + , 7) +SAX.startElement(R:DingALing) +SAX.endElement(R:DingALing) +SAX.characters( + , 7) +SAX.startElement(R:Random) +SAX.endElement(R:Random) +SAX.characters( + , 5) +SAX.endElement(D:prop) +SAX.characters( + , 5) +SAX.startElement(D:status) +SAX.characters(HTTP/1.1 403 Forbidden, 22) +SAX.endElement(D:status) +SAX.characters( + , 5) +SAX.startElement(D:responsedescription) +SAX.characters( The user does not have access, 64) +SAX.endElement(D:responsedescription) +SAX.characters( + , 3) +SAX.endElement(D:response) +SAX.characters( + , 3) +SAX.startElement(D:responsedescription) +SAX.characters( There has been an access viol, 44) +SAX.endElement(D:responsedescription) +SAX.characters( +, 1) +SAX.endElement(D:multistatus) +SAX.endDocument() diff --git a/result/dav1.sax2 b/result/dav1.sax2 new file mode 100644 index 0000000..44ad11c --- /dev/null +++ b/result/dav1.sax2 @@ -0,0 +1,81 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/', 2, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:R='http://www.foo.bar/boxschema', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(bigbox, R, 'http://www.foo.bar/boxschema', 0, 0, 0) +SAX.characters( + , 9) +SAX.startElementNs(BoxType, R, 'http://www.foo.bar/boxschema', 0, 0, 0) +SAX.characters(Box type A, 10) +SAX.endElementNs(BoxType, R, 'http://www.foo.bar/boxschema') +SAX.characters( + , 7) +SAX.endElementNs(bigbox, R, 'http://www.foo.bar/boxschema') +SAX.characters( + , 7) +SAX.startElementNs(author, R, 'http://www.foo.bar/boxschema', 0, 0, 0) +SAX.characters( + , 9) +SAX.startElementNs(Name, R, 'http://www.foo.bar/boxschema', 0, 0, 0) +SAX.characters(J.J. Dingleheimerschmidt, 24) +SAX.endElementNs(Name, R, 'http://www.foo.bar/boxschema') +SAX.characters( + , 7) +SAX.endElementNs(author, R, 'http://www.foo.bar/boxschema') +SAX.characters( + , 5) +SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP/1.1 200 OK, 15) +SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(DingALing, R, 'http://www.foo.bar/boxschema', 0, 0, 0) +SAX.endElementNs(DingALing, R, 'http://www.foo.bar/boxschema') +SAX.characters( + , 7) +SAX.startElementNs(Random, R, 'http://www.foo.bar/boxschema', 0, 0, 0) +SAX.endElementNs(Random, R, 'http://www.foo.bar/boxschema') +SAX.characters( + , 5) +SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP/1.1 403 Forbidden, 22) +SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(responsedescription, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( The user does not have access, 64) +SAX.endElementNs(responsedescription, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElementNs(responsedescription, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( There has been an access viol, 44) +SAX.endElementNs(responsedescription, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( +, 1) +SAX.endElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/') +SAX.endDocument() diff --git a/result/dav10 b/result/dav10 new file mode 100644 index 0000000..4b00da4 --- /dev/null +++ b/result/dav10 @@ -0,0 +1,4 @@ + + + http://www.ics.uci.edu/~ejw/contact.html + diff --git a/result/dav10.rde b/result/dav10.rde new file mode 100644 index 0000000..bfb552d --- /dev/null +++ b/result/dav10.rde @@ -0,0 +1,9 @@ +0 1 D:owner 0 0 +1 14 #text 0 1 + +1 1 D:href 0 0 +2 3 #text 0 1 http://www.ics.uci.edu/~ejw/contact.html +1 15 D:href 0 0 +1 14 #text 0 1 + +0 15 D:owner 0 0 diff --git a/result/dav10.rdr b/result/dav10.rdr new file mode 100644 index 0000000..bfb552d --- /dev/null +++ b/result/dav10.rdr @@ -0,0 +1,9 @@ +0 1 D:owner 0 0 +1 14 #text 0 1 + +1 1 D:href 0 0 +2 3 #text 0 1 http://www.ics.uci.edu/~ejw/contact.html +1 15 D:href 0 0 +1 14 #text 0 1 + +0 15 D:owner 0 0 diff --git a/result/dav10.sax b/result/dav10.sax new file mode 100644 index 0000000..aa98251 --- /dev/null +++ b/result/dav10.sax @@ -0,0 +1,12 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(D:owner, xmlns:D='http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElement(D:href) +SAX.characters(http://www.ics.uci.edu/~ejw/co, 40) +SAX.endElement(D:href) +SAX.characters( +, 1) +SAX.endElement(D:owner) +SAX.endDocument() diff --git a/result/dav10.sax2 b/result/dav10.sax2 new file mode 100644 index 0000000..e93e22c --- /dev/null +++ b/result/dav10.sax2 @@ -0,0 +1,12 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(owner, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://www.ics.uci.edu/~ejw/co, 40) +SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( +, 1) +SAX.endElementNs(owner, D, 'http://www.ietf.org/standards/dav/') +SAX.endDocument() diff --git a/result/dav11 b/result/dav11 new file mode 100644 index 0000000..8ac23d6 --- /dev/null +++ b/result/dav11 @@ -0,0 +1,21 @@ + + + + + write + exclusive + + + + http://www.ics.uci.edu/~ejw/contact.html + + + Second-604800 + + + opaquelocktoken:xyz122393481230912asdfa09s8df09s7df + + + + + diff --git a/result/dav11.rde b/result/dav11.rde new file mode 100644 index 0000000..088afeb --- /dev/null +++ b/result/dav11.rde @@ -0,0 +1,60 @@ +0 1 D:prop 0 0 +1 14 #text 0 1 + +1 1 D:lockdiscovery 0 0 +2 14 #text 0 1 + +2 1 D:activelock 0 0 +3 14 #text 0 1 + +3 1 D:locktype 0 0 +4 3 #text 0 1 write +3 15 D:locktype 0 0 +3 14 #text 0 1 + +3 1 D:lockscope 0 0 +4 3 #text 0 1 exclusive +3 15 D:lockscope 0 0 +3 14 #text 0 1 + +3 1 D:addlocks 1 0 +3 14 #text 0 1 + +3 1 D:owner 0 0 +4 14 #text 0 1 + +4 1 D:href 0 0 +5 3 #text 0 1 + http://www.ics.uci.edu/~ejw/contact.html + +4 15 D:href 0 0 +4 14 #text 0 1 + +3 15 D:owner 0 0 +3 14 #text 0 1 + +3 1 D:timeout 0 0 +4 3 #text 0 1 Second-604800 +3 15 D:timeout 0 0 +3 14 #text 0 1 + +3 1 D:locktoken 0 0 +4 14 #text 0 1 + +4 1 D:href 0 0 +5 3 #text 0 1 + opaquelocktoken:xyz122393481230912asdfa09s8df09s7df + +4 15 D:href 0 0 +4 14 #text 0 1 + +3 15 D:locktoken 0 0 +3 14 #text 0 1 + +2 15 D:activelock 0 0 +2 14 #text 0 1 + +1 15 D:lockdiscovery 0 0 +1 14 #text 0 1 + +0 15 D:prop 0 0 diff --git a/result/dav11.rdr b/result/dav11.rdr new file mode 100644 index 0000000..088afeb --- /dev/null +++ b/result/dav11.rdr @@ -0,0 +1,60 @@ +0 1 D:prop 0 0 +1 14 #text 0 1 + +1 1 D:lockdiscovery 0 0 +2 14 #text 0 1 + +2 1 D:activelock 0 0 +3 14 #text 0 1 + +3 1 D:locktype 0 0 +4 3 #text 0 1 write +3 15 D:locktype 0 0 +3 14 #text 0 1 + +3 1 D:lockscope 0 0 +4 3 #text 0 1 exclusive +3 15 D:lockscope 0 0 +3 14 #text 0 1 + +3 1 D:addlocks 1 0 +3 14 #text 0 1 + +3 1 D:owner 0 0 +4 14 #text 0 1 + +4 1 D:href 0 0 +5 3 #text 0 1 + http://www.ics.uci.edu/~ejw/contact.html + +4 15 D:href 0 0 +4 14 #text 0 1 + +3 15 D:owner 0 0 +3 14 #text 0 1 + +3 1 D:timeout 0 0 +4 3 #text 0 1 Second-604800 +3 15 D:timeout 0 0 +3 14 #text 0 1 + +3 1 D:locktoken 0 0 +4 14 #text 0 1 + +4 1 D:href 0 0 +5 3 #text 0 1 + opaquelocktoken:xyz122393481230912asdfa09s8df09s7df + +4 15 D:href 0 0 +4 14 #text 0 1 + +3 15 D:locktoken 0 0 +3 14 #text 0 1 + +2 15 D:activelock 0 0 +2 14 #text 0 1 + +1 15 D:lockdiscovery 0 0 +1 14 #text 0 1 + +0 15 D:prop 0 0 diff --git a/result/dav11.sax b/result/dav11.sax new file mode 100644 index 0000000..43815e5 --- /dev/null +++ b/result/dav11.sax @@ -0,0 +1,62 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(D:prop, xmlns:D='http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElement(D:lockdiscovery) +SAX.characters( + , 5) +SAX.startElement(D:activelock) +SAX.characters( + , 7) +SAX.startElement(D:locktype) +SAX.characters(write, 5) +SAX.endElement(D:locktype) +SAX.characters( + , 7) +SAX.startElement(D:lockscope) +SAX.characters(exclusive, 9) +SAX.endElement(D:lockscope) +SAX.characters( + , 7) +SAX.startElement(D:addlocks) +SAX.endElement(D:addlocks) +SAX.characters( + , 7) +SAX.startElement(D:owner) +SAX.characters( + , 9) +SAX.startElement(D:href) +SAX.characters( + http://www.ics.uci.edu/~ejw, 46) +SAX.endElement(D:href) +SAX.characters( + , 7) +SAX.endElement(D:owner) +SAX.characters( + , 7) +SAX.startElement(D:timeout) +SAX.characters(Second-604800, 13) +SAX.endElement(D:timeout) +SAX.characters( + , 7) +SAX.startElement(D:locktoken) +SAX.characters( + , 9) +SAX.startElement(D:href) +SAX.characters( + opaquelocktoken:xyz122393, 59) +SAX.endElement(D:href) +SAX.characters( + , 7) +SAX.endElement(D:locktoken) +SAX.characters( + , 5) +SAX.endElement(D:activelock) +SAX.characters( + , 3) +SAX.endElement(D:lockdiscovery) +SAX.characters( +, 1) +SAX.endElement(D:prop) +SAX.endDocument() diff --git a/result/dav11.sax2 b/result/dav11.sax2 new file mode 100644 index 0000000..d0f2329 --- /dev/null +++ b/result/dav11.sax2 @@ -0,0 +1,62 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(lockdiscovery, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(activelock, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(locktype, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(write, 5) +SAX.endElementNs(locktype, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 7) +SAX.startElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(exclusive, 9) +SAX.endElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 7) +SAX.startElementNs(addlocks, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.endElementNs(addlocks, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 7) +SAX.startElementNs(owner, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 9) +SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + http://www.ics.uci.edu/~ejw, 46) +SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 7) +SAX.endElementNs(owner, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 7) +SAX.startElementNs(timeout, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(Second-604800, 13) +SAX.endElementNs(timeout, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 7) +SAX.startElementNs(locktoken, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 9) +SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + opaquelocktoken:xyz122393, 59) +SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 7) +SAX.endElementNs(locktoken, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.endElementNs(activelock, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(lockdiscovery, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( +, 1) +SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/') +SAX.endDocument() diff --git a/result/dav12 b/result/dav12 new file mode 100644 index 0000000..d8d03fe --- /dev/null +++ b/result/dav12 @@ -0,0 +1,2 @@ + +http://www.ics.uci.edu/~ejw/contact.html diff --git a/result/dav12.rde b/result/dav12.rde new file mode 100644 index 0000000..0df7943 --- /dev/null +++ b/result/dav12.rde @@ -0,0 +1,3 @@ +0 1 D:href 0 0 +1 3 #text 0 1 http://www.ics.uci.edu/~ejw/contact.html +0 15 D:href 0 0 diff --git a/result/dav12.rdr b/result/dav12.rdr new file mode 100644 index 0000000..0df7943 --- /dev/null +++ b/result/dav12.rdr @@ -0,0 +1,3 @@ +0 1 D:href 0 0 +1 3 #text 0 1 http://www.ics.uci.edu/~ejw/contact.html +0 15 D:href 0 0 diff --git a/result/dav12.sax b/result/dav12.sax new file mode 100644 index 0000000..67b9f64 --- /dev/null +++ b/result/dav12.sax @@ -0,0 +1,6 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(D:href, xmlns:D='http://www.ietf.org/standards/dav/') +SAX.characters(http://www.ics.uci.edu/~ejw/co, 40) +SAX.endElement(D:href) +SAX.endDocument() diff --git a/result/dav12.sax2 b/result/dav12.sax2 new file mode 100644 index 0000000..61715b6 --- /dev/null +++ b/result/dav12.sax2 @@ -0,0 +1,6 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0) +SAX.characters(http://www.ics.uci.edu/~ejw/co, 40) +SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/') +SAX.endDocument() diff --git a/result/dav13 b/result/dav13 new file mode 100644 index 0000000..f44ae38 --- /dev/null +++ b/result/dav13 @@ -0,0 +1,16 @@ + + + + + http://webdav.sb.aol.com/workspace/webdav/proposal.doc + + + http://webdav.sb.aol.com/workspace/webdav/ + + HTTP/1.1 202 Accepted + + + http://foo.bar/blah + HTTP/1.1 403 Forbidden + + diff --git a/result/dav13.rde b/result/dav13.rde new file mode 100644 index 0000000..ffe978d --- /dev/null +++ b/result/dav13.rde @@ -0,0 +1,45 @@ +0 1 D:multistatus 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:href 0 0 +3 3 #text 0 1 + http://webdav.sb.aol.com/workspace/webdav/proposal.doc + +2 15 D:href 0 0 +2 14 #text 0 1 + +2 1 D:href 0 0 +3 3 #text 0 1 + http://webdav.sb.aol.com/workspace/webdav/ + +2 15 D:href 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP/1.1 202 Accepted +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:href 0 0 +3 3 #text 0 1 http://foo.bar/blah +2 15 D:href 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP/1.1 403 Forbidden +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +0 15 D:multistatus 0 0 diff --git a/result/dav13.rdr b/result/dav13.rdr new file mode 100644 index 0000000..ffe978d --- /dev/null +++ b/result/dav13.rdr @@ -0,0 +1,45 @@ +0 1 D:multistatus 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:href 0 0 +3 3 #text 0 1 + http://webdav.sb.aol.com/workspace/webdav/proposal.doc + +2 15 D:href 0 0 +2 14 #text 0 1 + +2 1 D:href 0 0 +3 3 #text 0 1 + http://webdav.sb.aol.com/workspace/webdav/ + +2 15 D:href 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP/1.1 202 Accepted +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:href 0 0 +3 3 #text 0 1 http://foo.bar/blah +2 15 D:href 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP/1.1 403 Forbidden +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +0 15 D:multistatus 0 0 diff --git a/result/dav13.sax b/result/dav13.sax new file mode 100644 index 0000000..16edfd1 --- /dev/null +++ b/result/dav13.sax @@ -0,0 +1,46 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(D:multistatus, xmlns:D='http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElement(D:response) +SAX.characters( + , 5) +SAX.startElement(D:href) +SAX.characters( + http://webdav.sb.aol.com/, 66) +SAX.endElement(D:href) +SAX.characters( + , 5) +SAX.startElement(D:href) +SAX.characters( + http://webdav.sb.aol.com/, 54) +SAX.endElement(D:href) +SAX.characters( + , 5) +SAX.startElement(D:status) +SAX.characters(HTTP/1.1 202 Accepted, 21) +SAX.endElement(D:status) +SAX.characters( + , 3) +SAX.endElement(D:response) +SAX.characters( + , 3) +SAX.startElement(D:response) +SAX.characters( + , 5) +SAX.startElement(D:href) +SAX.characters(http://foo.bar/blah, 19) +SAX.endElement(D:href) +SAX.characters( + , 5) +SAX.startElement(D:status) +SAX.characters(HTTP/1.1 403 Forbidden, 22) +SAX.endElement(D:status) +SAX.characters( + , 3) +SAX.endElement(D:response) +SAX.characters( +, 1) +SAX.endElement(D:multistatus) +SAX.endDocument() diff --git a/result/dav13.sax2 b/result/dav13.sax2 new file mode 100644 index 0000000..f6c5381 --- /dev/null +++ b/result/dav13.sax2 @@ -0,0 +1,46 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + http://webdav.sb.aol.com/, 66) +SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + http://webdav.sb.aol.com/, 54) +SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP/1.1 202 Accepted, 21) +SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://foo.bar/blah, 19) +SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP/1.1 403 Forbidden, 22) +SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( +, 1) +SAX.endElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/') +SAX.endDocument() diff --git a/result/dav15 b/result/dav15 new file mode 100644 index 0000000..b80802e --- /dev/null +++ b/result/dav15 @@ -0,0 +1,20 @@ + + + + + Source + http://foo.bar/program + http://foo.bar/src/main.c + + + Library + http://foo.bar/program + http://foo.bar/src/main.lib + + + Makefile + http://foo.bar/program + http://foo.bar/src/makefile + + + diff --git a/result/dav15.rde b/result/dav15.rde new file mode 100644 index 0000000..a4a4e7c --- /dev/null +++ b/result/dav15.rde @@ -0,0 +1,73 @@ +0 1 D:prop 0 0 +1 14 #text 0 1 + +1 1 D:Source 0 0 +2 14 #text 0 1 + +2 1 D:link 0 0 +3 14 #text 0 1 + +3 1 F:projfiles 0 0 +4 3 #text 0 1 Source +3 15 F:projfiles 0 0 +3 14 #text 0 1 + +3 1 D:src 0 0 +4 3 #text 0 1 http://foo.bar/program +3 15 D:src 0 0 +3 14 #text 0 1 + +3 1 D:dst 0 0 +4 3 #text 0 1 http://foo.bar/src/main.c +3 15 D:dst 0 0 +3 14 #text 0 1 + +2 15 D:link 0 0 +2 14 #text 0 1 + +2 1 D:link 0 0 +3 14 #text 0 1 + +3 1 F:projfiles 0 0 +4 3 #text 0 1 Library +3 15 F:projfiles 0 0 +3 14 #text 0 1 + +3 1 D:src 0 0 +4 3 #text 0 1 http://foo.bar/program +3 15 D:src 0 0 +3 14 #text 0 1 + +3 1 D:dst 0 0 +4 3 #text 0 1 http://foo.bar/src/main.lib +3 15 D:dst 0 0 +3 14 #text 0 1 + +2 15 D:link 0 0 +2 14 #text 0 1 + +2 1 D:link 0 0 +3 14 #text 0 1 + +3 1 F:projfiles 0 0 +4 3 #text 0 1 Makefile +3 15 F:projfiles 0 0 +3 14 #text 0 1 + +3 1 D:src 0 0 +4 3 #text 0 1 http://foo.bar/program +3 15 D:src 0 0 +3 14 #text 0 1 + +3 1 D:dst 0 0 +4 3 #text 0 1 http://foo.bar/src/makefile +3 15 D:dst 0 0 +3 14 #text 0 1 + +2 15 D:link 0 0 +2 14 #text 0 1 + +1 15 D:Source 0 0 +1 14 #text 0 1 + +0 15 D:prop 0 0 diff --git a/result/dav15.rdr b/result/dav15.rdr new file mode 100644 index 0000000..a4a4e7c --- /dev/null +++ b/result/dav15.rdr @@ -0,0 +1,73 @@ +0 1 D:prop 0 0 +1 14 #text 0 1 + +1 1 D:Source 0 0 +2 14 #text 0 1 + +2 1 D:link 0 0 +3 14 #text 0 1 + +3 1 F:projfiles 0 0 +4 3 #text 0 1 Source +3 15 F:projfiles 0 0 +3 14 #text 0 1 + +3 1 D:src 0 0 +4 3 #text 0 1 http://foo.bar/program +3 15 D:src 0 0 +3 14 #text 0 1 + +3 1 D:dst 0 0 +4 3 #text 0 1 http://foo.bar/src/main.c +3 15 D:dst 0 0 +3 14 #text 0 1 + +2 15 D:link 0 0 +2 14 #text 0 1 + +2 1 D:link 0 0 +3 14 #text 0 1 + +3 1 F:projfiles 0 0 +4 3 #text 0 1 Library +3 15 F:projfiles 0 0 +3 14 #text 0 1 + +3 1 D:src 0 0 +4 3 #text 0 1 http://foo.bar/program +3 15 D:src 0 0 +3 14 #text 0 1 + +3 1 D:dst 0 0 +4 3 #text 0 1 http://foo.bar/src/main.lib +3 15 D:dst 0 0 +3 14 #text 0 1 + +2 15 D:link 0 0 +2 14 #text 0 1 + +2 1 D:link 0 0 +3 14 #text 0 1 + +3 1 F:projfiles 0 0 +4 3 #text 0 1 Makefile +3 15 F:projfiles 0 0 +3 14 #text 0 1 + +3 1 D:src 0 0 +4 3 #text 0 1 http://foo.bar/program +3 15 D:src 0 0 +3 14 #text 0 1 + +3 1 D:dst 0 0 +4 3 #text 0 1 http://foo.bar/src/makefile +3 15 D:dst 0 0 +3 14 #text 0 1 + +2 15 D:link 0 0 +2 14 #text 0 1 + +1 15 D:Source 0 0 +1 14 #text 0 1 + +0 15 D:prop 0 0 diff --git a/result/dav15.sax b/result/dav15.sax new file mode 100644 index 0000000..634ec7d --- /dev/null +++ b/result/dav15.sax @@ -0,0 +1,76 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(D:prop, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:F='http://www.foocorp.com/Project/') +SAX.characters( + , 3) +SAX.startElement(D:Source) +SAX.characters( + , 5) +SAX.startElement(D:link) +SAX.characters( + , 7) +SAX.startElement(F:projfiles) +SAX.characters(Source, 6) +SAX.endElement(F:projfiles) +SAX.characters( + , 7) +SAX.startElement(D:src) +SAX.characters(http://foo.bar/program, 22) +SAX.endElement(D:src) +SAX.characters( + , 7) +SAX.startElement(D:dst) +SAX.characters(http://foo.bar/src/main.c, 25) +SAX.endElement(D:dst) +SAX.characters( + , 5) +SAX.endElement(D:link) +SAX.characters( + , 5) +SAX.startElement(D:link) +SAX.characters( + , 7) +SAX.startElement(F:projfiles) +SAX.characters(Library, 7) +SAX.endElement(F:projfiles) +SAX.characters( + , 7) +SAX.startElement(D:src) +SAX.characters(http://foo.bar/program, 22) +SAX.endElement(D:src) +SAX.characters( + , 7) +SAX.startElement(D:dst) +SAX.characters(http://foo.bar/src/main.lib, 27) +SAX.endElement(D:dst) +SAX.characters( + , 5) +SAX.endElement(D:link) +SAX.characters( + , 5) +SAX.startElement(D:link) +SAX.characters( + , 7) +SAX.startElement(F:projfiles) +SAX.characters(Makefile, 8) +SAX.endElement(F:projfiles) +SAX.characters( + , 7) +SAX.startElement(D:src) +SAX.characters(http://foo.bar/program, 22) +SAX.endElement(D:src) +SAX.characters( + , 7) +SAX.startElement(D:dst) +SAX.characters(http://foo.bar/src/makefile, 27) +SAX.endElement(D:dst) +SAX.characters( + , 5) +SAX.endElement(D:link) +SAX.characters( + , 3) +SAX.endElement(D:Source) +SAX.characters( +, 1) +SAX.endElement(D:prop) +SAX.endDocument() diff --git a/result/dav15.sax2 b/result/dav15.sax2 new file mode 100644 index 0000000..6040cd1 --- /dev/null +++ b/result/dav15.sax2 @@ -0,0 +1,76 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 2, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:F='http://www.foocorp.com/Project/', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(Source, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(link, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(projfiles, F, 'http://www.foocorp.com/Project/', 0, 0, 0) +SAX.characters(Source, 6) +SAX.endElementNs(projfiles, F, 'http://www.foocorp.com/Project/') +SAX.characters( + , 7) +SAX.startElementNs(src, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://foo.bar/program, 22) +SAX.endElementNs(src, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 7) +SAX.startElementNs(dst, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://foo.bar/src/main.c, 25) +SAX.endElementNs(dst, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.endElementNs(link, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(link, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(projfiles, F, 'http://www.foocorp.com/Project/', 0, 0, 0) +SAX.characters(Library, 7) +SAX.endElementNs(projfiles, F, 'http://www.foocorp.com/Project/') +SAX.characters( + , 7) +SAX.startElementNs(src, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://foo.bar/program, 22) +SAX.endElementNs(src, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 7) +SAX.startElementNs(dst, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://foo.bar/src/main.lib, 27) +SAX.endElementNs(dst, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.endElementNs(link, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(link, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(projfiles, F, 'http://www.foocorp.com/Project/', 0, 0, 0) +SAX.characters(Makefile, 8) +SAX.endElementNs(projfiles, F, 'http://www.foocorp.com/Project/') +SAX.characters( + , 7) +SAX.startElementNs(src, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://foo.bar/program, 22) +SAX.endElementNs(src, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 7) +SAX.startElementNs(dst, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://foo.bar/src/makefile, 27) +SAX.endElementNs(dst, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.endElementNs(link, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(Source, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( +, 1) +SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/') +SAX.endDocument() diff --git a/result/dav16 b/result/dav16 new file mode 100644 index 0000000..9a7dc36 --- /dev/null +++ b/result/dav16 @@ -0,0 +1,6 @@ + + + + + + diff --git a/result/dav16.rde b/result/dav16.rde new file mode 100644 index 0000000..97a9933 --- /dev/null +++ b/result/dav16.rde @@ -0,0 +1,13 @@ +0 1 D:propfind 0 0 +1 14 #text 0 1 + +1 1 D:prop 0 0 +2 14 #text 0 1 + +2 1 lockdiscovery 1 0 +2 14 #text 0 1 + +1 15 D:prop 0 0 +1 14 #text 0 1 + +0 15 D:propfind 0 0 diff --git a/result/dav16.rdr b/result/dav16.rdr new file mode 100644 index 0000000..97a9933 --- /dev/null +++ b/result/dav16.rdr @@ -0,0 +1,13 @@ +0 1 D:propfind 0 0 +1 14 #text 0 1 + +1 1 D:prop 0 0 +2 14 #text 0 1 + +2 1 lockdiscovery 1 0 +2 14 #text 0 1 + +1 15 D:prop 0 0 +1 14 #text 0 1 + +0 15 D:propfind 0 0 diff --git a/result/dav16.sax b/result/dav16.sax new file mode 100644 index 0000000..a21252b --- /dev/null +++ b/result/dav16.sax @@ -0,0 +1,17 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(D:propfind, xmlns:D='http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElement(D:prop) +SAX.characters( + , 5) +SAX.startElement(lockdiscovery) +SAX.endElement(lockdiscovery) +SAX.characters( + , 3) +SAX.endElement(D:prop) +SAX.characters( +, 1) +SAX.endElement(D:propfind) +SAX.endDocument() diff --git a/result/dav16.sax2 b/result/dav16.sax2 new file mode 100644 index 0000000..1ede22e --- /dev/null +++ b/result/dav16.sax2 @@ -0,0 +1,17 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(propfind, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(lockdiscovery, NULL, NULL, 0, 0, 0) +SAX.endElementNs(lockdiscovery, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( +, 1) +SAX.endElementNs(propfind, D, 'http://www.ietf.org/standards/dav/') +SAX.endDocument() diff --git a/result/dav17 b/result/dav17 new file mode 100644 index 0000000..1137662 --- /dev/null +++ b/result/dav17 @@ -0,0 +1,22 @@ + + + + + + + write + exclusive + + http://foo.com/doc/ + + Jane Smith + Infinite + + iamuri:unique!!!!! + + + + + HTTP/1.1 200 OK + + diff --git a/result/dav17.rde b/result/dav17.rde new file mode 100644 index 0000000..a47b64e --- /dev/null +++ b/result/dav17.rde @@ -0,0 +1,75 @@ +0 1 D:multistatus 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 D:lockdiscovery 0 0 +4 14 #text 0 1 + +4 1 D:activelock 0 0 +5 14 #text 0 1 + +5 1 D:locktype 0 0 +6 3 #text 0 1 write +5 15 D:locktype 0 0 +5 14 #text 0 1 + +5 1 D:lockscope 0 0 +6 3 #text 0 1 exclusive +5 15 D:lockscope 0 0 +5 14 #text 0 1 + +5 1 D:addlocks 0 0 +6 14 #text 0 1 + +6 1 D:href 0 0 +7 3 #text 0 1 http://foo.com/doc/ +6 15 D:href 0 0 +6 14 #text 0 1 + +5 15 D:addlocks 0 0 +5 14 #text 0 1 + +5 1 D:owner 0 0 +6 3 #text 0 1 Jane Smith +5 15 D:owner 0 0 +5 14 #text 0 1 + +5 1 D:timeout 0 0 +6 3 #text 0 1 Infinite +5 15 D:timeout 0 0 +5 14 #text 0 1 + +5 1 D:locktoken 0 0 +6 14 #text 0 1 + +6 1 D:href 0 0 +7 3 #text 0 1 iamuri:unique!!!!! +6 15 D:href 0 0 +6 14 #text 0 1 + +5 15 D:locktoken 0 0 +5 14 #text 0 1 + +4 15 D:activelock 0 0 +4 14 #text 0 1 + +3 15 D:lockdiscovery 0 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP/1.1 200 OK +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +0 15 D:multistatus 0 0 diff --git a/result/dav17.rdr b/result/dav17.rdr new file mode 100644 index 0000000..a47b64e --- /dev/null +++ b/result/dav17.rdr @@ -0,0 +1,75 @@ +0 1 D:multistatus 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 D:lockdiscovery 0 0 +4 14 #text 0 1 + +4 1 D:activelock 0 0 +5 14 #text 0 1 + +5 1 D:locktype 0 0 +6 3 #text 0 1 write +5 15 D:locktype 0 0 +5 14 #text 0 1 + +5 1 D:lockscope 0 0 +6 3 #text 0 1 exclusive +5 15 D:lockscope 0 0 +5 14 #text 0 1 + +5 1 D:addlocks 0 0 +6 14 #text 0 1 + +6 1 D:href 0 0 +7 3 #text 0 1 http://foo.com/doc/ +6 15 D:href 0 0 +6 14 #text 0 1 + +5 15 D:addlocks 0 0 +5 14 #text 0 1 + +5 1 D:owner 0 0 +6 3 #text 0 1 Jane Smith +5 15 D:owner 0 0 +5 14 #text 0 1 + +5 1 D:timeout 0 0 +6 3 #text 0 1 Infinite +5 15 D:timeout 0 0 +5 14 #text 0 1 + +5 1 D:locktoken 0 0 +6 14 #text 0 1 + +6 1 D:href 0 0 +7 3 #text 0 1 iamuri:unique!!!!! +6 15 D:href 0 0 +6 14 #text 0 1 + +5 15 D:locktoken 0 0 +5 14 #text 0 1 + +4 15 D:activelock 0 0 +4 14 #text 0 1 + +3 15 D:lockdiscovery 0 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP/1.1 200 OK +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +0 15 D:multistatus 0 0 diff --git a/result/dav17.sax b/result/dav17.sax new file mode 100644 index 0000000..83f5bce --- /dev/null +++ b/result/dav17.sax @@ -0,0 +1,78 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(D:multistatus, xmlns:D='http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElement(D:response) +SAX.characters( + , 5) +SAX.startElement(D:prop) +SAX.characters( + , 7) +SAX.startElement(D:lockdiscovery) +SAX.characters( + , 9) +SAX.startElement(D:activelock) +SAX.characters( + , 11) +SAX.startElement(D:locktype) +SAX.characters(write, 5) +SAX.endElement(D:locktype) +SAX.characters( + , 11) +SAX.startElement(D:lockscope) +SAX.characters(exclusive, 9) +SAX.endElement(D:lockscope) +SAX.characters( + , 11) +SAX.startElement(D:addlocks) +SAX.characters( + , 13) +SAX.startElement(D:href) +SAX.characters(http://foo.com/doc/, 19) +SAX.endElement(D:href) +SAX.characters( + , 11) +SAX.endElement(D:addlocks) +SAX.characters( + , 11) +SAX.startElement(D:owner) +SAX.characters(Jane Smith, 10) +SAX.endElement(D:owner) +SAX.characters( + , 11) +SAX.startElement(D:timeout) +SAX.characters(Infinite, 8) +SAX.endElement(D:timeout) +SAX.characters( + , 11) +SAX.startElement(D:locktoken) +SAX.characters( + , 13) +SAX.startElement(D:href) +SAX.characters(iamuri:unique!!!!!, 18) +SAX.endElement(D:href) +SAX.characters( + , 11) +SAX.endElement(D:locktoken) +SAX.characters( + , 9) +SAX.endElement(D:activelock) +SAX.characters( + , 7) +SAX.endElement(D:lockdiscovery) +SAX.characters( + , 5) +SAX.endElement(D:prop) +SAX.characters( + , 5) +SAX.startElement(D:status) +SAX.characters(HTTP/1.1 200 OK, 15) +SAX.endElement(D:status) +SAX.characters( + , 3) +SAX.endElement(D:response) +SAX.characters( +, 1) +SAX.endElement(D:multistatus) +SAX.endDocument() diff --git a/result/dav17.sax2 b/result/dav17.sax2 new file mode 100644 index 0000000..48185a2 --- /dev/null +++ b/result/dav17.sax2 @@ -0,0 +1,78 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(lockdiscovery, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 9) +SAX.startElementNs(activelock, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 11) +SAX.startElementNs(locktype, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(write, 5) +SAX.endElementNs(locktype, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 11) +SAX.startElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(exclusive, 9) +SAX.endElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 11) +SAX.startElementNs(addlocks, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 13) +SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://foo.com/doc/, 19) +SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 11) +SAX.endElementNs(addlocks, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 11) +SAX.startElementNs(owner, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(Jane Smith, 10) +SAX.endElementNs(owner, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 11) +SAX.startElementNs(timeout, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(Infinite, 8) +SAX.endElementNs(timeout, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 11) +SAX.startElementNs(locktoken, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 13) +SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(iamuri:unique!!!!!, 18) +SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 11) +SAX.endElementNs(locktoken, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 9) +SAX.endElementNs(activelock, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 7) +SAX.endElementNs(lockdiscovery, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP/1.1 200 OK, 15) +SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( +, 1) +SAX.endElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/') +SAX.endDocument() diff --git a/result/dav18 b/result/dav18 new file mode 100644 index 0000000..3de1c19 --- /dev/null +++ b/result/dav18 @@ -0,0 +1,6 @@ + + + + + + diff --git a/result/dav18.rde b/result/dav18.rde new file mode 100644 index 0000000..9de17af --- /dev/null +++ b/result/dav18.rde @@ -0,0 +1,13 @@ +0 1 D:propfind 0 0 +1 14 #text 0 1 + +1 1 D:prop 0 0 +2 14 #text 0 1 + +2 1 supportedlock 1 0 +2 14 #text 0 1 + +1 15 D:prop 0 0 +1 14 #text 0 1 + +0 15 D:propfind 0 0 diff --git a/result/dav18.rdr b/result/dav18.rdr new file mode 100644 index 0000000..9de17af --- /dev/null +++ b/result/dav18.rdr @@ -0,0 +1,13 @@ +0 1 D:propfind 0 0 +1 14 #text 0 1 + +1 1 D:prop 0 0 +2 14 #text 0 1 + +2 1 supportedlock 1 0 +2 14 #text 0 1 + +1 15 D:prop 0 0 +1 14 #text 0 1 + +0 15 D:propfind 0 0 diff --git a/result/dav18.sax b/result/dav18.sax new file mode 100644 index 0000000..39f40e6 --- /dev/null +++ b/result/dav18.sax @@ -0,0 +1,17 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(D:propfind, xmlns:D='http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElement(D:prop) +SAX.characters( + , 5) +SAX.startElement(supportedlock) +SAX.endElement(supportedlock) +SAX.characters( + , 3) +SAX.endElement(D:prop) +SAX.characters( +, 1) +SAX.endElement(D:propfind) +SAX.endDocument() diff --git a/result/dav18.sax2 b/result/dav18.sax2 new file mode 100644 index 0000000..cddc100 --- /dev/null +++ b/result/dav18.sax2 @@ -0,0 +1,17 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(propfind, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(supportedlock, NULL, NULL, 0, 0, 0) +SAX.endElementNs(supportedlock, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( +, 1) +SAX.endElementNs(propfind, D, 'http://www.ietf.org/standards/dav/') +SAX.endDocument() diff --git a/result/dav19 b/result/dav19 new file mode 100644 index 0000000..9535ffc --- /dev/null +++ b/result/dav19 @@ -0,0 +1,18 @@ + + + + + + + Write + Exclusive + + + Write + Shared + + + + HTTP/1.1 200 OK + + diff --git a/result/dav19.rde b/result/dav19.rde new file mode 100644 index 0000000..d2c1e00 --- /dev/null +++ b/result/dav19.rde @@ -0,0 +1,59 @@ +0 1 D:multistatus 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 D:supportedlock 0 0 +4 14 #text 0 1 + +4 1 D:LockEntry 0 0 +5 14 #text 0 1 + +5 1 D:locktype 0 0 +6 3 #text 0 1 Write +5 15 D:locktype 0 0 +5 14 #text 0 1 + +5 1 D:lockscope 0 0 +6 3 #text 0 1 Exclusive +5 15 D:lockscope 0 0 +5 14 #text 0 1 + +4 15 D:LockEntry 0 0 +4 14 #text 0 1 + +4 1 D:LockEntry 0 0 +5 14 #text 0 1 + +5 1 D:locktype 0 0 +6 3 #text 0 1 Write +5 15 D:locktype 0 0 +5 14 #text 0 1 + +5 1 D:lockscope 0 0 +6 3 #text 0 1 Shared +5 15 D:lockscope 0 0 +5 14 #text 0 1 + +4 15 D:LockEntry 0 0 +4 14 #text 0 1 + +3 15 D:supportedlock 0 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP/1.1 200 OK +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +0 15 D:multistatus 0 0 diff --git a/result/dav19.rdr b/result/dav19.rdr new file mode 100644 index 0000000..d2c1e00 --- /dev/null +++ b/result/dav19.rdr @@ -0,0 +1,59 @@ +0 1 D:multistatus 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 D:supportedlock 0 0 +4 14 #text 0 1 + +4 1 D:LockEntry 0 0 +5 14 #text 0 1 + +5 1 D:locktype 0 0 +6 3 #text 0 1 Write +5 15 D:locktype 0 0 +5 14 #text 0 1 + +5 1 D:lockscope 0 0 +6 3 #text 0 1 Exclusive +5 15 D:lockscope 0 0 +5 14 #text 0 1 + +4 15 D:LockEntry 0 0 +4 14 #text 0 1 + +4 1 D:LockEntry 0 0 +5 14 #text 0 1 + +5 1 D:locktype 0 0 +6 3 #text 0 1 Write +5 15 D:locktype 0 0 +5 14 #text 0 1 + +5 1 D:lockscope 0 0 +6 3 #text 0 1 Shared +5 15 D:lockscope 0 0 +5 14 #text 0 1 + +4 15 D:LockEntry 0 0 +4 14 #text 0 1 + +3 15 D:supportedlock 0 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP/1.1 200 OK +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +0 15 D:multistatus 0 0 diff --git a/result/dav19.sax b/result/dav19.sax new file mode 100644 index 0000000..c65e03d --- /dev/null +++ b/result/dav19.sax @@ -0,0 +1,62 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(D:multistatus, xmlns:D='http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElement(D:response) +SAX.characters( + , 5) +SAX.startElement(D:prop) +SAX.characters( + , 7) +SAX.startElement(D:supportedlock) +SAX.characters( + , 9) +SAX.startElement(D:LockEntry) +SAX.characters( + , 11) +SAX.startElement(D:locktype) +SAX.characters(Write, 5) +SAX.endElement(D:locktype) +SAX.characters( + , 11) +SAX.startElement(D:lockscope) +SAX.characters(Exclusive, 9) +SAX.endElement(D:lockscope) +SAX.characters( + , 9) +SAX.endElement(D:LockEntry) +SAX.characters( + , 9) +SAX.startElement(D:LockEntry) +SAX.characters( + , 11) +SAX.startElement(D:locktype) +SAX.characters(Write, 5) +SAX.endElement(D:locktype) +SAX.characters( + , 11) +SAX.startElement(D:lockscope) +SAX.characters(Shared, 6) +SAX.endElement(D:lockscope) +SAX.characters( + , 9) +SAX.endElement(D:LockEntry) +SAX.characters( + , 7) +SAX.endElement(D:supportedlock) +SAX.characters( + , 5) +SAX.endElement(D:prop) +SAX.characters( + , 5) +SAX.startElement(D:status) +SAX.characters(HTTP/1.1 200 OK, 15) +SAX.endElement(D:status) +SAX.characters( + , 3) +SAX.endElement(D:response) +SAX.characters( +, 1) +SAX.endElement(D:multistatus) +SAX.endDocument() diff --git a/result/dav19.sax2 b/result/dav19.sax2 new file mode 100644 index 0000000..f0dd402 --- /dev/null +++ b/result/dav19.sax2 @@ -0,0 +1,62 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(supportedlock, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 9) +SAX.startElementNs(LockEntry, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 11) +SAX.startElementNs(locktype, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(Write, 5) +SAX.endElementNs(locktype, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 11) +SAX.startElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(Exclusive, 9) +SAX.endElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 9) +SAX.endElementNs(LockEntry, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 9) +SAX.startElementNs(LockEntry, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 11) +SAX.startElementNs(locktype, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(Write, 5) +SAX.endElementNs(locktype, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 11) +SAX.startElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(Shared, 6) +SAX.endElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 9) +SAX.endElementNs(LockEntry, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 7) +SAX.endElementNs(supportedlock, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP/1.1 200 OK, 15) +SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( +, 1) +SAX.endElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/') +SAX.endDocument() diff --git a/result/dav2 b/result/dav2 new file mode 100644 index 0000000..f831b4b --- /dev/null +++ b/result/dav2 @@ -0,0 +1,24 @@ + + + + http://www.foo.bar/container/ + + + Box type A + + + Hadrian + + + HTTP 1.1 200 OK + + + http://www.foo.bar/container/index.html + + + Box type B + + + HTTP 1.1 200 OK + + diff --git a/result/dav2.rde b/result/dav2.rde new file mode 100644 index 0000000..41fc86d --- /dev/null +++ b/result/dav2.rde @@ -0,0 +1,81 @@ +0 1 S:multistatus 0 0 +1 14 #text 0 1 + +1 1 S:response 0 0 +2 14 #text 0 1 + +2 1 S:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/ +2 15 S:href 0 0 +2 14 #text 0 1 + +2 1 S:prop 0 0 +3 14 #text 0 1 + +3 1 R:bigbox 0 0 +4 14 #text 0 1 + +4 1 R:BoxType 0 0 +5 3 #text 0 1 Box type A +4 15 R:BoxType 0 0 +4 14 #text 0 1 + +3 15 R:bigbox 0 0 +3 14 #text 0 1 + +3 1 R:author 0 0 +4 14 #text 0 1 + +4 1 R:Name 0 0 +5 3 #text 0 1 Hadrian +4 15 R:Name 0 0 +4 14 #text 0 1 + +3 15 R:author 0 0 +3 14 #text 0 1 + +2 15 S:prop 0 0 +2 14 #text 0 1 + +2 1 S:status 0 0 +3 3 #text 0 1 HTTP 1.1 200 OK +2 15 S:status 0 0 +2 14 #text 0 1 + +1 15 S:response 0 0 +1 14 #text 0 1 + +1 1 S:response 0 0 +2 14 #text 0 1 + +2 1 S:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/index.html +2 15 S:href 0 0 +2 14 #text 0 1 + +2 1 S:prop 0 0 +3 14 #text 0 1 + +3 1 R:bigbox 0 0 +4 14 #text 0 1 + +4 1 R:BoxType 0 0 +5 3 #text 0 1 Box type B +4 15 R:BoxType 0 0 +4 14 #text 0 1 + +3 15 R:bigbox 0 0 +3 14 #text 0 1 + +2 15 S:prop 0 0 +2 14 #text 0 1 + +2 1 S:status 0 0 +3 3 #text 0 1 HTTP 1.1 200 OK +2 15 S:status 0 0 +2 14 #text 0 1 + +1 15 S:response 0 0 +1 14 #text 0 1 + +0 15 S:multistatus 0 0 diff --git a/result/dav2.rdr b/result/dav2.rdr new file mode 100644 index 0000000..41fc86d --- /dev/null +++ b/result/dav2.rdr @@ -0,0 +1,81 @@ +0 1 S:multistatus 0 0 +1 14 #text 0 1 + +1 1 S:response 0 0 +2 14 #text 0 1 + +2 1 S:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/ +2 15 S:href 0 0 +2 14 #text 0 1 + +2 1 S:prop 0 0 +3 14 #text 0 1 + +3 1 R:bigbox 0 0 +4 14 #text 0 1 + +4 1 R:BoxType 0 0 +5 3 #text 0 1 Box type A +4 15 R:BoxType 0 0 +4 14 #text 0 1 + +3 15 R:bigbox 0 0 +3 14 #text 0 1 + +3 1 R:author 0 0 +4 14 #text 0 1 + +4 1 R:Name 0 0 +5 3 #text 0 1 Hadrian +4 15 R:Name 0 0 +4 14 #text 0 1 + +3 15 R:author 0 0 +3 14 #text 0 1 + +2 15 S:prop 0 0 +2 14 #text 0 1 + +2 1 S:status 0 0 +3 3 #text 0 1 HTTP 1.1 200 OK +2 15 S:status 0 0 +2 14 #text 0 1 + +1 15 S:response 0 0 +1 14 #text 0 1 + +1 1 S:response 0 0 +2 14 #text 0 1 + +2 1 S:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/index.html +2 15 S:href 0 0 +2 14 #text 0 1 + +2 1 S:prop 0 0 +3 14 #text 0 1 + +3 1 R:bigbox 0 0 +4 14 #text 0 1 + +4 1 R:BoxType 0 0 +5 3 #text 0 1 Box type B +4 15 R:BoxType 0 0 +4 14 #text 0 1 + +3 15 R:bigbox 0 0 +3 14 #text 0 1 + +2 15 S:prop 0 0 +2 14 #text 0 1 + +2 1 S:status 0 0 +3 3 #text 0 1 HTTP 1.1 200 OK +2 15 S:status 0 0 +2 14 #text 0 1 + +1 15 S:response 0 0 +1 14 #text 0 1 + +0 15 S:multistatus 0 0 diff --git a/result/dav2.sax b/result/dav2.sax new file mode 100644 index 0000000..95bc06a --- /dev/null +++ b/result/dav2.sax @@ -0,0 +1,84 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(S:multistatus, xmlns:S='http://www.ietf.org/standards/dav/', xmlns:R='http://www.foo.bar/boxschema/') +SAX.characters( + , 3) +SAX.startElement(S:response) +SAX.characters( + , 5) +SAX.startElement(S:href) +SAX.characters(http://www.foo.bar/container/, 29) +SAX.endElement(S:href) +SAX.characters( + , 5) +SAX.startElement(S:prop) +SAX.characters( + , 7) +SAX.startElement(R:bigbox) +SAX.characters( + , 9) +SAX.startElement(R:BoxType) +SAX.characters(Box type A, 10) +SAX.endElement(R:BoxType) +SAX.characters( + , 7) +SAX.endElement(R:bigbox) +SAX.characters( + , 7) +SAX.startElement(R:author) +SAX.characters( + , 9) +SAX.startElement(R:Name) +SAX.characters(Hadrian, 7) +SAX.endElement(R:Name) +SAX.characters( + , 7) +SAX.endElement(R:author) +SAX.characters( + , 5) +SAX.endElement(S:prop) +SAX.characters( + , 5) +SAX.startElement(S:status) +SAX.characters(HTTP 1.1 200 OK, 15) +SAX.endElement(S:status) +SAX.characters( + , 3) +SAX.endElement(S:response) +SAX.characters( + , 3) +SAX.startElement(S:response) +SAX.characters( + , 5) +SAX.startElement(S:href) +SAX.characters(http://www.foo.bar/container/i, 39) +SAX.endElement(S:href) +SAX.characters( + , 5) +SAX.startElement(S:prop) +SAX.characters( + , 7) +SAX.startElement(R:bigbox) +SAX.characters( + , 9) +SAX.startElement(R:BoxType) +SAX.characters(Box type B, 10) +SAX.endElement(R:BoxType) +SAX.characters( + , 7) +SAX.endElement(R:bigbox) +SAX.characters( + , 5) +SAX.endElement(S:prop) +SAX.characters( + , 5) +SAX.startElement(S:status) +SAX.characters(HTTP 1.1 200 OK, 15) +SAX.endElement(S:status) +SAX.characters( + , 3) +SAX.endElement(S:response) +SAX.characters( +, 1) +SAX.endElement(S:multistatus) +SAX.endDocument() diff --git a/result/dav2.sax2 b/result/dav2.sax2 new file mode 100644 index 0000000..22c7bb0 --- /dev/null +++ b/result/dav2.sax2 @@ -0,0 +1,84 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(multistatus, S, 'http://www.ietf.org/standards/dav/', 2, xmlns:S='http://www.ietf.org/standards/dav/', xmlns:R='http://www.foo.bar/boxschema/', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(response, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(href, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://www.foo.bar/container/, 29) +SAX.endElementNs(href, S, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(prop, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(bigbox, R, 'http://www.foo.bar/boxschema/', 0, 0, 0) +SAX.characters( + , 9) +SAX.startElementNs(BoxType, R, 'http://www.foo.bar/boxschema/', 0, 0, 0) +SAX.characters(Box type A, 10) +SAX.endElementNs(BoxType, R, 'http://www.foo.bar/boxschema/') +SAX.characters( + , 7) +SAX.endElementNs(bigbox, R, 'http://www.foo.bar/boxschema/') +SAX.characters( + , 7) +SAX.startElementNs(author, R, 'http://www.foo.bar/boxschema/', 0, 0, 0) +SAX.characters( + , 9) +SAX.startElementNs(Name, R, 'http://www.foo.bar/boxschema/', 0, 0, 0) +SAX.characters(Hadrian, 7) +SAX.endElementNs(Name, R, 'http://www.foo.bar/boxschema/') +SAX.characters( + , 7) +SAX.endElementNs(author, R, 'http://www.foo.bar/boxschema/') +SAX.characters( + , 5) +SAX.endElementNs(prop, S, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP 1.1 200 OK, 15) +SAX.endElementNs(status, S, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, S, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElementNs(response, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(href, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://www.foo.bar/container/i, 39) +SAX.endElementNs(href, S, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(prop, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(bigbox, R, 'http://www.foo.bar/boxschema/', 0, 0, 0) +SAX.characters( + , 9) +SAX.startElementNs(BoxType, R, 'http://www.foo.bar/boxschema/', 0, 0, 0) +SAX.characters(Box type B, 10) +SAX.endElementNs(BoxType, R, 'http://www.foo.bar/boxschema/') +SAX.characters( + , 7) +SAX.endElementNs(bigbox, R, 'http://www.foo.bar/boxschema/') +SAX.characters( + , 5) +SAX.endElementNs(prop, S, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP 1.1 200 OK, 15) +SAX.endElementNs(status, S, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, S, 'http://www.ietf.org/standards/dav/') +SAX.characters( +, 1) +SAX.endElementNs(multistatus, S, 'http://www.ietf.org/standards/dav/') +SAX.endDocument() diff --git a/result/dav3 b/result/dav3 new file mode 100644 index 0000000..986b3fe --- /dev/null +++ b/result/dav3 @@ -0,0 +1,18 @@ + + + + http://www.foo.bar/container/ + + + + + HTTP 1.1 200 OK + + + http://www.foo.bar/container/index.html + + + + HTTP 1.1 200 OK + + diff --git a/result/dav3.rde b/result/dav3.rde new file mode 100644 index 0000000..f106f17 --- /dev/null +++ b/result/dav3.rde @@ -0,0 +1,57 @@ +0 1 D:multistatus 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/ +2 15 D:href 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 R:bigbox 1 0 +3 14 #text 0 1 + +3 1 R:author 1 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP 1.1 200 OK +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/index.html +2 15 D:href 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 R:bigbox 1 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP 1.1 200 OK +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +0 15 D:multistatus 0 0 diff --git a/result/dav3.rdr b/result/dav3.rdr new file mode 100644 index 0000000..f106f17 --- /dev/null +++ b/result/dav3.rdr @@ -0,0 +1,57 @@ +0 1 D:multistatus 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/ +2 15 D:href 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 R:bigbox 1 0 +3 14 #text 0 1 + +3 1 R:author 1 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP 1.1 200 OK +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/index.html +2 15 D:href 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 R:bigbox 1 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP 1.1 200 OK +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +0 15 D:multistatus 0 0 diff --git a/result/dav3.sax b/result/dav3.sax new file mode 100644 index 0000000..e9eabd8 --- /dev/null +++ b/result/dav3.sax @@ -0,0 +1,63 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(D:multistatus, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:R='http://www.foo.bar/boxschema/') +SAX.characters( + , 3) +SAX.startElement(D:response) +SAX.characters( + , 5) +SAX.startElement(D:href) +SAX.characters(http://www.foo.bar/container/, 29) +SAX.endElement(D:href) +SAX.characters( + , 5) +SAX.startElement(D:prop) +SAX.characters( + , 7) +SAX.startElement(R:bigbox) +SAX.endElement(R:bigbox) +SAX.characters( + , 7) +SAX.startElement(R:author) +SAX.endElement(R:author) +SAX.characters( + , 5) +SAX.endElement(D:prop) +SAX.characters( + , 5) +SAX.startElement(D:status) +SAX.characters(HTTP 1.1 200 OK, 15) +SAX.endElement(D:status) +SAX.characters( + , 3) +SAX.endElement(D:response) +SAX.characters( + , 3) +SAX.startElement(D:response) +SAX.characters( + , 5) +SAX.startElement(D:href) +SAX.characters(http://www.foo.bar/container/i, 39) +SAX.endElement(D:href) +SAX.characters( + , 5) +SAX.startElement(D:prop) +SAX.characters( + , 7) +SAX.startElement(R:bigbox) +SAX.endElement(R:bigbox) +SAX.characters( + , 5) +SAX.endElement(D:prop) +SAX.characters( + , 5) +SAX.startElement(D:status) +SAX.characters(HTTP 1.1 200 OK, 15) +SAX.endElement(D:status) +SAX.characters( + , 3) +SAX.endElement(D:response) +SAX.characters( +, 1) +SAX.endElement(D:multistatus) +SAX.endDocument() diff --git a/result/dav3.sax2 b/result/dav3.sax2 new file mode 100644 index 0000000..0088f29 --- /dev/null +++ b/result/dav3.sax2 @@ -0,0 +1,63 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/', 2, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:R='http://www.foo.bar/boxschema/', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://www.foo.bar/container/, 29) +SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(bigbox, R, 'http://www.foo.bar/boxschema/', 0, 0, 0) +SAX.endElementNs(bigbox, R, 'http://www.foo.bar/boxschema/') +SAX.characters( + , 7) +SAX.startElementNs(author, R, 'http://www.foo.bar/boxschema/', 0, 0, 0) +SAX.endElementNs(author, R, 'http://www.foo.bar/boxschema/') +SAX.characters( + , 5) +SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP 1.1 200 OK, 15) +SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://www.foo.bar/container/i, 39) +SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(bigbox, R, 'http://www.foo.bar/boxschema/', 0, 0, 0) +SAX.endElementNs(bigbox, R, 'http://www.foo.bar/boxschema/') +SAX.characters( + , 5) +SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP 1.1 200 OK, 15) +SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( +, 1) +SAX.endElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/') +SAX.endDocument() diff --git a/result/dav4 b/result/dav4 new file mode 100644 index 0000000..9ab7ceb --- /dev/null +++ b/result/dav4 @@ -0,0 +1,16 @@ + + + + + + Jim Whitehead + Roy Fielding + + + + + + + + + diff --git a/result/dav4.rde b/result/dav4.rde new file mode 100644 index 0000000..e764047 --- /dev/null +++ b/result/dav4.rde @@ -0,0 +1,47 @@ +0 1 D:propertyupdate 0 0 +1 14 #text 0 1 + +1 1 D:set 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 Z:authors 0 0 +4 14 #text 0 1 + +4 1 Z:Author 0 0 +5 3 #text 0 1 Jim Whitehead +4 15 Z:Author 0 0 +4 14 #text 0 1 + +4 1 Z:Author 0 0 +5 3 #text 0 1 Roy Fielding +4 15 Z:Author 0 0 +4 14 #text 0 1 + +3 15 Z:authors 0 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +1 15 D:set 0 0 +1 14 #text 0 1 + +1 1 D:remove 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 Z:Copyright-Owner 1 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +1 15 D:remove 0 0 +1 14 #text 0 1 + +0 15 D:propertyupdate 0 0 diff --git a/result/dav4.rdr b/result/dav4.rdr new file mode 100644 index 0000000..e764047 --- /dev/null +++ b/result/dav4.rdr @@ -0,0 +1,47 @@ +0 1 D:propertyupdate 0 0 +1 14 #text 0 1 + +1 1 D:set 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 Z:authors 0 0 +4 14 #text 0 1 + +4 1 Z:Author 0 0 +5 3 #text 0 1 Jim Whitehead +4 15 Z:Author 0 0 +4 14 #text 0 1 + +4 1 Z:Author 0 0 +5 3 #text 0 1 Roy Fielding +4 15 Z:Author 0 0 +4 14 #text 0 1 + +3 15 Z:authors 0 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +1 15 D:set 0 0 +1 14 #text 0 1 + +1 1 D:remove 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 Z:Copyright-Owner 1 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +1 15 D:remove 0 0 +1 14 #text 0 1 + +0 15 D:propertyupdate 0 0 diff --git a/result/dav4.sax b/result/dav4.sax new file mode 100644 index 0000000..8268026 --- /dev/null +++ b/result/dav4.sax @@ -0,0 +1,51 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(D:propertyupdate, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:Z='http://www.w3.com/standards/z39.50/') +SAX.characters( + , 3) +SAX.startElement(D:set) +SAX.characters( + , 5) +SAX.startElement(D:prop) +SAX.characters( + , 7) +SAX.startElement(Z:authors) +SAX.characters( + , 9) +SAX.startElement(Z:Author) +SAX.characters(Jim Whitehead, 13) +SAX.endElement(Z:Author) +SAX.characters( + , 9) +SAX.startElement(Z:Author) +SAX.characters(Roy Fielding, 12) +SAX.endElement(Z:Author) +SAX.characters( + , 7) +SAX.endElement(Z:authors) +SAX.characters( + , 5) +SAX.endElement(D:prop) +SAX.characters( + , 3) +SAX.endElement(D:set) +SAX.characters( + , 3) +SAX.startElement(D:remove) +SAX.characters( + , 5) +SAX.startElement(D:prop) +SAX.characters( + , 7) +SAX.startElement(Z:Copyright-Owner) +SAX.endElement(Z:Copyright-Owner) +SAX.characters( + , 5) +SAX.endElement(D:prop) +SAX.characters( + , 3) +SAX.endElement(D:remove) +SAX.characters( +, 1) +SAX.endElement(D:propertyupdate) +SAX.endDocument() diff --git a/result/dav4.sax2 b/result/dav4.sax2 new file mode 100644 index 0000000..58fb8ac --- /dev/null +++ b/result/dav4.sax2 @@ -0,0 +1,51 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(propertyupdate, D, 'http://www.ietf.org/standards/dav/', 2, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:Z='http://www.w3.com/standards/z39.50/', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(set, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(authors, Z, 'http://www.w3.com/standards/z39.50/', 0, 0, 0) +SAX.characters( + , 9) +SAX.startElementNs(Author, Z, 'http://www.w3.com/standards/z39.50/', 0, 0, 0) +SAX.characters(Jim Whitehead, 13) +SAX.endElementNs(Author, Z, 'http://www.w3.com/standards/z39.50/') +SAX.characters( + , 9) +SAX.startElementNs(Author, Z, 'http://www.w3.com/standards/z39.50/', 0, 0, 0) +SAX.characters(Roy Fielding, 12) +SAX.endElementNs(Author, Z, 'http://www.w3.com/standards/z39.50/') +SAX.characters( + , 7) +SAX.endElementNs(authors, Z, 'http://www.w3.com/standards/z39.50/') +SAX.characters( + , 5) +SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(set, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElementNs(remove, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(Copyright-Owner, Z, 'http://www.w3.com/standards/z39.50/', 0, 0, 0) +SAX.endElementNs(Copyright-Owner, Z, 'http://www.w3.com/standards/z39.50/') +SAX.characters( + , 5) +SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(remove, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( +, 1) +SAX.endElementNs(propertyupdate, D, 'http://www.ietf.org/standards/dav/') +SAX.endDocument() diff --git a/result/dav5 b/result/dav5 new file mode 100644 index 0000000..68ebab9 --- /dev/null +++ b/result/dav5 @@ -0,0 +1,17 @@ + + + + + + + HTTP/1.1 420 Method Failure + + + + + + HTTP/1.1 409 Conflict + + Copyright Owner can not be deleted or +altered. + diff --git a/result/dav5.rde b/result/dav5.rde new file mode 100644 index 0000000..c92d177 --- /dev/null +++ b/result/dav5.rde @@ -0,0 +1,50 @@ +0 1 D:multistatus 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 Z:Authors 1 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP/1.1 420 Method Failure +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 Z:Copyright-Owner 1 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP/1.1 409 Conflict +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +1 1 D:responsedescription 0 0 +2 3 #text 0 1 Copyright Owner can not be deleted or +altered. +1 15 D:responsedescription 0 0 +1 14 #text 0 1 + +0 15 D:multistatus 0 0 diff --git a/result/dav5.rdr b/result/dav5.rdr new file mode 100644 index 0000000..c92d177 --- /dev/null +++ b/result/dav5.rdr @@ -0,0 +1,50 @@ +0 1 D:multistatus 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 Z:Authors 1 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP/1.1 420 Method Failure +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 Z:Copyright-Owner 1 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP/1.1 409 Conflict +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +1 1 D:responsedescription 0 0 +2 3 #text 0 1 Copyright Owner can not be deleted or +altered. +1 15 D:responsedescription 0 0 +1 14 #text 0 1 + +0 15 D:multistatus 0 0 diff --git a/result/dav5.sax b/result/dav5.sax new file mode 100644 index 0000000..53967f8 --- /dev/null +++ b/result/dav5.sax @@ -0,0 +1,54 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(D:multistatus, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:Z='http://www.w3.com/standards/z39.50/') +SAX.characters( + , 3) +SAX.startElement(D:response) +SAX.characters( + , 5) +SAX.startElement(D:prop) +SAX.characters( + , 7) +SAX.startElement(Z:Authors) +SAX.endElement(Z:Authors) +SAX.characters( + , 5) +SAX.endElement(D:prop) +SAX.characters( + , 5) +SAX.startElement(D:status) +SAX.characters(HTTP/1.1 420 Method Failure, 27) +SAX.endElement(D:status) +SAX.characters( + , 3) +SAX.endElement(D:response) +SAX.characters( + , 3) +SAX.startElement(D:response) +SAX.characters( + , 5) +SAX.startElement(D:prop) +SAX.characters( + , 7) +SAX.startElement(Z:Copyright-Owner) +SAX.endElement(Z:Copyright-Owner) +SAX.characters( + , 5) +SAX.endElement(D:prop) +SAX.characters( + , 5) +SAX.startElement(D:status) +SAX.characters(HTTP/1.1 409 Conflict, 21) +SAX.endElement(D:status) +SAX.characters( + , 3) +SAX.endElement(D:response) +SAX.characters( + , 3) +SAX.startElement(D:responsedescription) +SAX.characters( Copyright Owner can not be de, 47) +SAX.endElement(D:responsedescription) +SAX.characters( +, 1) +SAX.endElement(D:multistatus) +SAX.endDocument() diff --git a/result/dav5.sax2 b/result/dav5.sax2 new file mode 100644 index 0000000..6062cca --- /dev/null +++ b/result/dav5.sax2 @@ -0,0 +1,54 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/', 2, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:Z='http://www.w3.com/standards/z39.50/', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(Authors, Z, 'http://www.w3.com/standards/z39.50/', 0, 0, 0) +SAX.endElementNs(Authors, Z, 'http://www.w3.com/standards/z39.50/') +SAX.characters( + , 5) +SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP/1.1 420 Method Failure, 27) +SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(Copyright-Owner, Z, 'http://www.w3.com/standards/z39.50/', 0, 0, 0) +SAX.endElementNs(Copyright-Owner, Z, 'http://www.w3.com/standards/z39.50/') +SAX.characters( + , 5) +SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP/1.1 409 Conflict, 21) +SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElementNs(responsedescription, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( Copyright Owner can not be de, 47) +SAX.endElementNs(responsedescription, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( +, 1) +SAX.endElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/') +SAX.endDocument() diff --git a/result/dav6 b/result/dav6 new file mode 100644 index 0000000..3d0de24 --- /dev/null +++ b/result/dav6 @@ -0,0 +1,22 @@ + + + + http://www.microsoft.com/user/yarong/dav_drafts/ + + + + + + + HTTP 1.1 200 OK + + + + http://www.microsoft.com/user/yarong/dav_drafts/base + + + + + HTTP 1.1 200 OK + + diff --git a/result/dav6.rde b/result/dav6.rde new file mode 100644 index 0000000..726e3c2 --- /dev/null +++ b/result/dav6.rde @@ -0,0 +1,63 @@ +0 1 D:multistatus 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:href 0 0 +3 3 #text 0 1 http://www.microsoft.com/user/yarong/dav_drafts/ + +2 15 D:href 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 D:resourcetype 0 0 +4 14 #text 0 1 + +4 1 D:collection 1 0 +4 14 #text 0 1 + +3 15 D:resourcetype 0 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP 1.1 200 OK +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:href 0 0 +3 3 #text 0 1 + http://www.microsoft.com/user/yarong/dav_drafts/base + +2 15 D:href 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 D:resourcetype 1 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP 1.1 200 OK +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +0 15 D:multistatus 0 0 diff --git a/result/dav6.rdr b/result/dav6.rdr new file mode 100644 index 0000000..726e3c2 --- /dev/null +++ b/result/dav6.rdr @@ -0,0 +1,63 @@ +0 1 D:multistatus 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:href 0 0 +3 3 #text 0 1 http://www.microsoft.com/user/yarong/dav_drafts/ + +2 15 D:href 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 D:resourcetype 0 0 +4 14 #text 0 1 + +4 1 D:collection 1 0 +4 14 #text 0 1 + +3 15 D:resourcetype 0 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP 1.1 200 OK +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +1 1 D:response 0 0 +2 14 #text 0 1 + +2 1 D:href 0 0 +3 3 #text 0 1 + http://www.microsoft.com/user/yarong/dav_drafts/base + +2 15 D:href 0 0 +2 14 #text 0 1 + +2 1 D:prop 0 0 +3 14 #text 0 1 + +3 1 D:resourcetype 1 0 +3 14 #text 0 1 + +2 15 D:prop 0 0 +2 14 #text 0 1 + +2 1 D:status 0 0 +3 3 #text 0 1 HTTP 1.1 200 OK +2 15 D:status 0 0 +2 14 #text 0 1 + +1 15 D:response 0 0 +1 14 #text 0 1 + +0 15 D:multistatus 0 0 diff --git a/result/dav6.sax b/result/dav6.sax new file mode 100644 index 0000000..a6a5b2d --- /dev/null +++ b/result/dav6.sax @@ -0,0 +1,66 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(D:multistatus, xmlns:D='http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElement(D:response) +SAX.characters( + , 5) +SAX.startElement(D:href) +SAX.characters(http://www.microsoft.com/user/, 55) +SAX.endElement(D:href) +SAX.characters( + , 5) +SAX.startElement(D:prop) +SAX.characters( + , 7) +SAX.startElement(D:resourcetype) +SAX.characters( + , 9) +SAX.startElement(D:collection) +SAX.endElement(D:collection) +SAX.characters( + , 7) +SAX.endElement(D:resourcetype) +SAX.characters( + , 5) +SAX.endElement(D:prop) +SAX.characters( + , 5) +SAX.startElement(D:status) +SAX.characters(HTTP 1.1 200 OK, 15) +SAX.endElement(D:status) +SAX.characters( + , 3) +SAX.endElement(D:response) +SAX.characters( + , 3) +SAX.startElement(D:response) +SAX.characters( + , 5) +SAX.startElement(D:href) +SAX.characters( + http://www.microsoft.co, 66) +SAX.endElement(D:href) +SAX.characters( + , 5) +SAX.startElement(D:prop) +SAX.characters( + , 7) +SAX.startElement(D:resourcetype) +SAX.endElement(D:resourcetype) +SAX.characters( + , 5) +SAX.endElement(D:prop) +SAX.characters( + , 5) +SAX.startElement(D:status) +SAX.characters(HTTP 1.1 200 OK, 15) +SAX.endElement(D:status) +SAX.characters( + , 3) +SAX.endElement(D:response) +SAX.characters( +, 1) +SAX.endElement(D:multistatus) +SAX.endDocument() diff --git a/result/dav6.sax2 b/result/dav6.sax2 new file mode 100644 index 0000000..31952c5 --- /dev/null +++ b/result/dav6.sax2 @@ -0,0 +1,66 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://www.microsoft.com/user/, 55) +SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(resourcetype, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 9) +SAX.startElementNs(collection, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.endElementNs(collection, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 7) +SAX.endElementNs(resourcetype, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP 1.1 200 OK, 15) +SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + http://www.microsoft.co, 66) +SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(resourcetype, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.endElementNs(resourcetype, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP 1.1 200 OK, 15) +SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/') +SAX.characters( +, 1) +SAX.endElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/') +SAX.endDocument() diff --git a/result/dav7 b/result/dav7 new file mode 100644 index 0000000..ec4a952 --- /dev/null +++ b/result/dav7 @@ -0,0 +1,16 @@ + + + + http://www.foo.bar/container/resource1 + http://www.foo.bar/container/resource2 + HTTP/1.1 200 OK + + + http://www.foo.bar/container/ + HTTP/1.1 420 Method Failure + + + http://www.foo.bar/container/resource3 + HTTP/1.1 412 Precondition Failed + + diff --git a/result/dav7.rde b/result/dav7.rde new file mode 100644 index 0000000..3f98328 --- /dev/null +++ b/result/dav7.rde @@ -0,0 +1,57 @@ +0 1 d:multistatus 0 0 +1 14 #text 0 1 + +1 1 d:response 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/resource1 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/resource2 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:status 0 0 +3 3 #text 0 1 HTTP/1.1 200 OK +2 15 d:status 0 0 +2 14 #text 0 1 + +1 15 d:response 0 0 +1 14 #text 0 1 + +1 1 d:response 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/ +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:status 0 0 +3 3 #text 0 1 HTTP/1.1 420 Method Failure +2 15 d:status 0 0 +2 14 #text 0 1 + +1 15 d:response 0 0 +1 14 #text 0 1 + +1 1 d:response 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/resource3 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:status 0 0 +3 3 #text 0 1 HTTP/1.1 412 Precondition Failed +2 15 d:status 0 0 +2 14 #text 0 1 + +1 15 d:response 0 0 +1 14 #text 0 1 + +0 15 d:multistatus 0 0 diff --git a/result/dav7.rdr b/result/dav7.rdr new file mode 100644 index 0000000..3f98328 --- /dev/null +++ b/result/dav7.rdr @@ -0,0 +1,57 @@ +0 1 d:multistatus 0 0 +1 14 #text 0 1 + +1 1 d:response 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/resource1 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/resource2 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:status 0 0 +3 3 #text 0 1 HTTP/1.1 200 OK +2 15 d:status 0 0 +2 14 #text 0 1 + +1 15 d:response 0 0 +1 14 #text 0 1 + +1 1 d:response 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/ +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:status 0 0 +3 3 #text 0 1 HTTP/1.1 420 Method Failure +2 15 d:status 0 0 +2 14 #text 0 1 + +1 15 d:response 0 0 +1 14 #text 0 1 + +1 1 d:response 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/resource3 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:status 0 0 +3 3 #text 0 1 HTTP/1.1 412 Precondition Failed +2 15 d:status 0 0 +2 14 #text 0 1 + +1 15 d:response 0 0 +1 14 #text 0 1 + +0 15 d:multistatus 0 0 diff --git a/result/dav7.sax b/result/dav7.sax new file mode 100644 index 0000000..133a9c1 --- /dev/null +++ b/result/dav7.sax @@ -0,0 +1,60 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(d:multistatus, xmlns:d='http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElement(d:response) +SAX.characters( + , 5) +SAX.startElement(d:href) +SAX.characters(http://www.foo.bar/container/r, 38) +SAX.endElement(d:href) +SAX.characters( + , 5) +SAX.startElement(d:href) +SAX.characters(http://www.foo.bar/container/r, 38) +SAX.endElement(d:href) +SAX.characters( + , 5) +SAX.startElement(d:status) +SAX.characters(HTTP/1.1 200 OK, 15) +SAX.endElement(d:status) +SAX.characters( + , 3) +SAX.endElement(d:response) +SAX.characters( + , 3) +SAX.startElement(d:response) +SAX.characters( + , 5) +SAX.startElement(d:href) +SAX.characters(http://www.foo.bar/container/, 29) +SAX.endElement(d:href) +SAX.characters( + , 5) +SAX.startElement(d:status) +SAX.characters(HTTP/1.1 420 Method Failure, 27) +SAX.endElement(d:status) +SAX.characters( + , 3) +SAX.endElement(d:response) +SAX.characters( + , 3) +SAX.startElement(d:response) +SAX.characters( + , 5) +SAX.startElement(d:href) +SAX.characters(http://www.foo.bar/container/r, 38) +SAX.endElement(d:href) +SAX.characters( + , 5) +SAX.startElement(d:status) +SAX.characters(HTTP/1.1 412 Precondition Fail, 32) +SAX.endElement(d:status) +SAX.characters( + , 3) +SAX.endElement(d:response) +SAX.characters( +, 1) +SAX.endElement(d:multistatus) +SAX.endDocument() diff --git a/result/dav7.sax2 b/result/dav7.sax2 new file mode 100644 index 0000000..1d51e74 --- /dev/null +++ b/result/dav7.sax2 @@ -0,0 +1,60 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(multistatus, d, 'http://www.ietf.org/standards/dav/', 1, xmlns:d='http://www.ietf.org/standards/dav/', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://www.foo.bar/container/r, 38) +SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://www.foo.bar/container/r, 38) +SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP/1.1 200 OK, 15) +SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://www.foo.bar/container/, 29) +SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP/1.1 420 Method Failure, 27) +SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://www.foo.bar/container/r, 38) +SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP/1.1 412 Precondition Fail, 32) +SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( +, 1) +SAX.endElementNs(multistatus, d, 'http://www.ietf.org/standards/dav/') +SAX.endDocument() diff --git a/result/dav8 b/result/dav8 new file mode 100644 index 0000000..7f99baf --- /dev/null +++ b/result/dav8 @@ -0,0 +1,14 @@ + + + + http://www.foo.bar/othercontainer/resource1 + http://www.foo.bar/othercontainer/resource2 + http://www.foo.bar/othercontainer/ + http://www.foo.bar/othercontainer/R2/D2 + HTTP/1.1 201 Created + + + http://www.foo.bar/othercontainer/R2/ + HTTP/1.1 412 Precondition Failed + + diff --git a/result/dav8.rde b/result/dav8.rde new file mode 100644 index 0000000..f14225e --- /dev/null +++ b/result/dav8.rde @@ -0,0 +1,51 @@ +0 1 d:multistatus 0 0 +1 14 #text 0 1 + +1 1 d:response 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/othercontainer/resource1 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/othercontainer/resource2 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/othercontainer/ +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/othercontainer/R2/D2 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:status 0 0 +3 3 #text 0 1 HTTP/1.1 201 Created +2 15 d:status 0 0 +2 14 #text 0 1 + +1 15 d:response 0 0 +1 14 #text 0 1 + +1 1 d:response 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/othercontainer/R2/ +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:status 0 0 +3 3 #text 0 1 HTTP/1.1 412 Precondition Failed +2 15 d:status 0 0 +2 14 #text 0 1 + +1 15 d:response 0 0 +1 14 #text 0 1 + +0 15 d:multistatus 0 0 diff --git a/result/dav8.rdr b/result/dav8.rdr new file mode 100644 index 0000000..f14225e --- /dev/null +++ b/result/dav8.rdr @@ -0,0 +1,51 @@ +0 1 d:multistatus 0 0 +1 14 #text 0 1 + +1 1 d:response 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/othercontainer/resource1 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/othercontainer/resource2 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/othercontainer/ +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/othercontainer/R2/D2 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:status 0 0 +3 3 #text 0 1 HTTP/1.1 201 Created +2 15 d:status 0 0 +2 14 #text 0 1 + +1 15 d:response 0 0 +1 14 #text 0 1 + +1 1 d:response 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/othercontainer/R2/ +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:status 0 0 +3 3 #text 0 1 HTTP/1.1 412 Precondition Failed +2 15 d:status 0 0 +2 14 #text 0 1 + +1 15 d:response 0 0 +1 14 #text 0 1 + +0 15 d:multistatus 0 0 diff --git a/result/dav8.sax b/result/dav8.sax new file mode 100644 index 0000000..8a810ef --- /dev/null +++ b/result/dav8.sax @@ -0,0 +1,54 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(d:multistatus, xmlns:d='http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElement(d:response) +SAX.characters( + , 5) +SAX.startElement(d:href) +SAX.characters(http://www.foo.bar/othercontai, 43) +SAX.endElement(d:href) +SAX.characters( + , 5) +SAX.startElement(d:href) +SAX.characters(http://www.foo.bar/othercontai, 43) +SAX.endElement(d:href) +SAX.characters( + , 5) +SAX.startElement(d:href) +SAX.characters(http://www.foo.bar/othercontai, 34) +SAX.endElement(d:href) +SAX.characters( + , 5) +SAX.startElement(d:href) +SAX.characters(http://www.foo.bar/othercontai, 39) +SAX.endElement(d:href) +SAX.characters( + , 5) +SAX.startElement(d:status) +SAX.characters(HTTP/1.1 201 Created, 20) +SAX.endElement(d:status) +SAX.characters( + , 3) +SAX.endElement(d:response) +SAX.characters( + , 3) +SAX.startElement(d:response) +SAX.characters( + , 5) +SAX.startElement(d:href) +SAX.characters(http://www.foo.bar/othercontai, 37) +SAX.endElement(d:href) +SAX.characters( + , 5) +SAX.startElement(d:status) +SAX.characters(HTTP/1.1 412 Precondition Fail, 32) +SAX.endElement(d:status) +SAX.characters( + , 3) +SAX.endElement(d:response) +SAX.characters( +, 1) +SAX.endElement(d:multistatus) +SAX.endDocument() diff --git a/result/dav8.sax2 b/result/dav8.sax2 new file mode 100644 index 0000000..7de547e --- /dev/null +++ b/result/dav8.sax2 @@ -0,0 +1,54 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(multistatus, d, 'http://www.ietf.org/standards/dav/', 1, xmlns:d='http://www.ietf.org/standards/dav/', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://www.foo.bar/othercontai, 43) +SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://www.foo.bar/othercontai, 43) +SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://www.foo.bar/othercontai, 34) +SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://www.foo.bar/othercontai, 39) +SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP/1.1 201 Created, 20) +SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://www.foo.bar/othercontai, 37) +SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP/1.1 412 Precondition Fail, 32) +SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( +, 1) +SAX.endElementNs(multistatus, d, 'http://www.ietf.org/standards/dav/') +SAX.endDocument() diff --git a/result/dav9 b/result/dav9 new file mode 100644 index 0000000..8ed63b8 --- /dev/null +++ b/result/dav9 @@ -0,0 +1,18 @@ + + + + http://www.foo.bar/container/resource1 + http://www.foo.bar/container/resource2 + http://www.foo.bar/container/ + http://www.foo.bar/container/C2/R2 + HTTP/1.1 201 Created + + + http://www.foo.bar/container/C2 + HTTP/1.1 420 Method Failure + + + http://www.foo.bar/othercontainer/C2 + HTTP/1.1 409 Conflict + + diff --git a/result/dav9.rde b/result/dav9.rde new file mode 100644 index 0000000..943ab96 --- /dev/null +++ b/result/dav9.rde @@ -0,0 +1,67 @@ +0 1 d:multistatus 0 0 +1 14 #text 0 1 + +1 1 d:response 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/resource1 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/resource2 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/ +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/C2/R2 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:status 0 0 +3 3 #text 0 1 HTTP/1.1 201 Created +2 15 d:status 0 0 +2 14 #text 0 1 + +1 15 d:response 0 0 +1 14 #text 0 1 + +1 1 d:response 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/C2 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:status 0 0 +3 3 #text 0 1 HTTP/1.1 420 Method Failure +2 15 d:status 0 0 +2 14 #text 0 1 + +1 15 d:response 0 0 +1 14 #text 0 1 + +1 1 d:response 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/othercontainer/C2 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:status 0 0 +3 3 #text 0 1 HTTP/1.1 409 Conflict +2 15 d:status 0 0 +2 14 #text 0 1 + +1 15 d:response 0 0 +1 14 #text 0 1 + +0 15 d:multistatus 0 0 diff --git a/result/dav9.rdr b/result/dav9.rdr new file mode 100644 index 0000000..943ab96 --- /dev/null +++ b/result/dav9.rdr @@ -0,0 +1,67 @@ +0 1 d:multistatus 0 0 +1 14 #text 0 1 + +1 1 d:response 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/resource1 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/resource2 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/ +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/C2/R2 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:status 0 0 +3 3 #text 0 1 HTTP/1.1 201 Created +2 15 d:status 0 0 +2 14 #text 0 1 + +1 15 d:response 0 0 +1 14 #text 0 1 + +1 1 d:response 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/container/C2 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:status 0 0 +3 3 #text 0 1 HTTP/1.1 420 Method Failure +2 15 d:status 0 0 +2 14 #text 0 1 + +1 15 d:response 0 0 +1 14 #text 0 1 + +1 1 d:response 0 0 +2 14 #text 0 1 + +2 1 d:href 0 0 +3 3 #text 0 1 http://www.foo.bar/othercontainer/C2 +2 15 d:href 0 0 +2 14 #text 0 1 + +2 1 d:status 0 0 +3 3 #text 0 1 HTTP/1.1 409 Conflict +2 15 d:status 0 0 +2 14 #text 0 1 + +1 15 d:response 0 0 +1 14 #text 0 1 + +0 15 d:multistatus 0 0 diff --git a/result/dav9.sax b/result/dav9.sax new file mode 100644 index 0000000..4116bad --- /dev/null +++ b/result/dav9.sax @@ -0,0 +1,70 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(d:multistatus, xmlns:d='http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElement(d:response) +SAX.characters( + , 5) +SAX.startElement(d:href) +SAX.characters(http://www.foo.bar/container/r, 38) +SAX.endElement(d:href) +SAX.characters( + , 5) +SAX.startElement(d:href) +SAX.characters(http://www.foo.bar/container/r, 38) +SAX.endElement(d:href) +SAX.characters( + , 5) +SAX.startElement(d:href) +SAX.characters(http://www.foo.bar/container/, 29) +SAX.endElement(d:href) +SAX.characters( + , 5) +SAX.startElement(d:href) +SAX.characters(http://www.foo.bar/container/C, 34) +SAX.endElement(d:href) +SAX.characters( + , 5) +SAX.startElement(d:status) +SAX.characters(HTTP/1.1 201 Created, 20) +SAX.endElement(d:status) +SAX.characters( + , 3) +SAX.endElement(d:response) +SAX.characters( + , 3) +SAX.startElement(d:response) +SAX.characters( + , 5) +SAX.startElement(d:href) +SAX.characters(http://www.foo.bar/container/C, 31) +SAX.endElement(d:href) +SAX.characters( + , 5) +SAX.startElement(d:status) +SAX.characters(HTTP/1.1 420 Method Failure, 27) +SAX.endElement(d:status) +SAX.characters( + , 3) +SAX.endElement(d:response) +SAX.characters( + , 3) +SAX.startElement(d:response) +SAX.characters( + , 5) +SAX.startElement(d:href) +SAX.characters(http://www.foo.bar/othercontai, 36) +SAX.endElement(d:href) +SAX.characters( + , 5) +SAX.startElement(d:status) +SAX.characters(HTTP/1.1 409 Conflict, 21) +SAX.endElement(d:status) +SAX.characters( + , 3) +SAX.endElement(d:response) +SAX.characters( +, 1) +SAX.endElement(d:multistatus) +SAX.endDocument() diff --git a/result/dav9.sax2 b/result/dav9.sax2 new file mode 100644 index 0000000..26e4942 --- /dev/null +++ b/result/dav9.sax2 @@ -0,0 +1,70 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(multistatus, d, 'http://www.ietf.org/standards/dav/', 1, xmlns:d='http://www.ietf.org/standards/dav/', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://www.foo.bar/container/r, 38) +SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://www.foo.bar/container/r, 38) +SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://www.foo.bar/container/, 29) +SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://www.foo.bar/container/C, 34) +SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP/1.1 201 Created, 20) +SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://www.foo.bar/container/C, 31) +SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP/1.1 420 Method Failure, 27) +SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(http://www.foo.bar/othercontai, 36) +SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 5) +SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0) +SAX.characters(HTTP/1.1 409 Conflict, 21) +SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( + , 3) +SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/') +SAX.characters( +, 1) +SAX.endElementNs(multistatus, d, 'http://www.ietf.org/standards/dav/') +SAX.endDocument() diff --git a/result/defattr.xml b/result/defattr.xml new file mode 100644 index 0000000..0a4ac15 --- /dev/null +++ b/result/defattr.xml @@ -0,0 +1,6 @@ + + + +]> + diff --git a/result/defattr.xml.rde b/result/defattr.xml.rde new file mode 100644 index 0000000..9b0a34d --- /dev/null +++ b/result/defattr.xml.rde @@ -0,0 +1,2 @@ +0 10 doc 0 0 +0 1 doc 1 0 diff --git a/result/defattr.xml.rdr b/result/defattr.xml.rdr new file mode 100644 index 0000000..9b0a34d --- /dev/null +++ b/result/defattr.xml.rdr @@ -0,0 +1,2 @@ +0 10 doc 0 0 +0 1 doc 1 0 diff --git a/result/defattr.xml.sax b/result/defattr.xml.sax new file mode 100644 index 0000000..86ef54a --- /dev/null +++ b/result/defattr.xml.sax @@ -0,0 +1,9 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 1, ...) +SAX.attributeDecl(doc, xmlns, 1, 4, http://www.example.com/, ...) +SAX.externalSubset(doc, , ) +SAX.startElement(doc) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/defattr.xml.sax2 b/result/defattr.xml.sax2 new file mode 100644 index 0000000..dfeba49 --- /dev/null +++ b/result/defattr.xml.sax2 @@ -0,0 +1,9 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 1, ...) +SAX.attributeDecl(doc, xmlns, 1, 4, http://www.example.com/, ...) +SAX.externalSubset(doc, , ) +SAX.startElementNs(doc, NULL, 'http://www.example.com/', 1, xmlns='http://www.example.com/', 0, 0) +SAX.endElementNs(doc, NULL, 'http://www.example.com/') +SAX.endDocument() diff --git a/result/defattr2.xml b/result/defattr2.xml new file mode 100644 index 0000000..8d1fc3b --- /dev/null +++ b/result/defattr2.xml @@ -0,0 +1,8 @@ + + + + + +]> + diff --git a/result/defattr2.xml.rde b/result/defattr2.xml.rde new file mode 100644 index 0000000..9b0a34d --- /dev/null +++ b/result/defattr2.xml.rde @@ -0,0 +1,2 @@ +0 10 doc 0 0 +0 1 doc 1 0 diff --git a/result/defattr2.xml.rdr b/result/defattr2.xml.rdr new file mode 100644 index 0000000..9b0a34d --- /dev/null +++ b/result/defattr2.xml.rdr @@ -0,0 +1,2 @@ +0 10 doc 0 0 +0 1 doc 1 0 diff --git a/result/defattr2.xml.sax b/result/defattr2.xml.sax new file mode 100644 index 0000000..72f8fca --- /dev/null +++ b/result/defattr2.xml.sax @@ -0,0 +1,11 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 1, ...) +SAX.attributeDecl(doc, defatt, 9, 1, 0, ...) +SAX.attributeDecl(doc, xmlns:tst, 1, 4, http://example.org, ...) +SAX.attributeDecl(doc, tst:att, 9, 1, 1, ...) +SAX.externalSubset(doc, , ) +SAX.startElement(doc, att='1') +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/defattr2.xml.sax2 b/result/defattr2.xml.sax2 new file mode 100644 index 0000000..0f77271 --- /dev/null +++ b/result/defattr2.xml.sax2 @@ -0,0 +1,11 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 1, ...) +SAX.attributeDecl(doc, defatt, 9, 1, 0, ...) +SAX.attributeDecl(doc, xmlns:tst, 1, 4, http://example.org, ...) +SAX.attributeDecl(doc, tst:att, 9, 1, 1, ...) +SAX.externalSubset(doc, , ) +SAX.startElementNs(doc, NULL, NULL, 1, xmlns:tst='http://example.org', 3, 2, att='1"/>...', 1, defatt='0...', 1, tst:att='1...', 1) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/dia1 b/result/dia1 new file mode 100644 index 0000000..207bd73 --- /dev/null +++ b/result/dia1 @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/result/dia1.rde b/result/dia1.rde new file mode 100644 index 0000000..3767325 --- /dev/null +++ b/result/dia1.rde @@ -0,0 +1,292 @@ +0 1 dia:diagram 0 0 +1 14 #text 0 1 + +1 1 dia:diagramdata 0 0 +2 14 #text 0 1 + +2 1 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:color 1 0 +3 14 #text 0 1 + +2 15 dia:attribute 0 0 +2 14 #text 0 1 + +1 15 dia:diagramdata 0 0 +1 14 #text 0 1 + +1 1 dia:layer 0 0 +2 14 #text 0 1 + +2 1 dia:object 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:rectangle 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:color 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:real 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:enum 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:enum 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:enum 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:connections 0 0 +4 14 #text 0 1 + +4 1 dia:connection 1 0 +4 14 #text 0 1 + +3 15 dia:connections 0 0 +3 14 #text 0 1 + +2 15 dia:object 0 0 +2 14 #text 0 1 + +2 1 dia:object 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:rectangle 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:composite 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:string 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:font 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:real 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:point 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:color 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:enum 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +4 15 dia:composite 0 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +2 15 dia:object 0 0 +2 14 #text 0 1 + +2 1 dia:object 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:rectangle 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:real 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:real 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:real 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:color 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:color 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:enum 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +2 15 dia:object 0 0 +2 14 #text 0 1 + +1 15 dia:layer 0 0 +1 14 #text 0 1 + +0 15 dia:diagram 0 0 diff --git a/result/dia1.rdr b/result/dia1.rdr new file mode 100644 index 0000000..3767325 --- /dev/null +++ b/result/dia1.rdr @@ -0,0 +1,292 @@ +0 1 dia:diagram 0 0 +1 14 #text 0 1 + +1 1 dia:diagramdata 0 0 +2 14 #text 0 1 + +2 1 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:color 1 0 +3 14 #text 0 1 + +2 15 dia:attribute 0 0 +2 14 #text 0 1 + +1 15 dia:diagramdata 0 0 +1 14 #text 0 1 + +1 1 dia:layer 0 0 +2 14 #text 0 1 + +2 1 dia:object 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:rectangle 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:color 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:real 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:enum 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:enum 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:enum 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:connections 0 0 +4 14 #text 0 1 + +4 1 dia:connection 1 0 +4 14 #text 0 1 + +3 15 dia:connections 0 0 +3 14 #text 0 1 + +2 15 dia:object 0 0 +2 14 #text 0 1 + +2 1 dia:object 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:rectangle 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:composite 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:string 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:font 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:real 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:point 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:color 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:enum 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +4 15 dia:composite 0 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +2 15 dia:object 0 0 +2 14 #text 0 1 + +2 1 dia:object 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:rectangle 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:real 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:real 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:real 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:color 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:color 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:enum 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +2 15 dia:object 0 0 +2 14 #text 0 1 + +1 15 dia:layer 0 0 +1 14 #text 0 1 + +0 15 dia:diagram 0 0 diff --git a/result/dia1.sax b/result/dia1.sax new file mode 100644 index 0000000..6f65d63 --- /dev/null +++ b/result/dia1.sax @@ -0,0 +1,323 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(dia:diagram, xmlns:dia='http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 3) +SAX.startElement(dia:diagramdata) +SAX.characters( + , 5) +SAX.startElement(dia:attribute, name='background') +SAX.characters( + , 7) +SAX.startElement(dia:color, val='#ffffff') +SAX.endElement(dia:color) +SAX.characters( + , 5) +SAX.endElement(dia:attribute) +SAX.characters( + , 3) +SAX.endElement(dia:diagramdata) +SAX.characters( + , 3) +SAX.startElement(dia:layer, name='Background', visible='true') +SAX.characters( + , 5) +SAX.startElement(dia:object, type='Standard - Line', version='0', id='O0') +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='obj_pos') +SAX.characters( + , 9) +SAX.startElement(dia:point, val='1.95,6.85') +SAX.endElement(dia:point) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='obj_bb') +SAX.characters( + , 9) +SAX.startElement(dia:rectangle, val='1.9,6.8;11,8.55') +SAX.endElement(dia:rectangle) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='conn_endpoints') +SAX.characters( + , 9) +SAX.startElement(dia:point, val='1.95,6.85') +SAX.endElement(dia:point) +SAX.characters( + , 9) +SAX.startElement(dia:point, val='10.95,8.5') +SAX.endElement(dia:point) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='line_color') +SAX.characters( + , 9) +SAX.startElement(dia:color, val='#000000') +SAX.endElement(dia:color) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='line_width') +SAX.characters( + , 9) +SAX.startElement(dia:real, val='0.1') +SAX.endElement(dia:real) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='line_style') +SAX.characters( + , 9) +SAX.startElement(dia:enum, val='0') +SAX.endElement(dia:enum) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='start_arrow') +SAX.characters( + , 9) +SAX.startElement(dia:enum, val='0') +SAX.endElement(dia:enum) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='end_arrow') +SAX.characters( + , 9) +SAX.startElement(dia:enum, val='0') +SAX.endElement(dia:enum) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:connections) +SAX.characters( + , 9) +SAX.startElement(dia:connection, handle='1', to='O2', connection='3') +SAX.endElement(dia:connection) +SAX.characters( + , 7) +SAX.endElement(dia:connections) +SAX.characters( + , 5) +SAX.endElement(dia:object) +SAX.characters( + , 5) +SAX.startElement(dia:object, type='Standard - Text', version='0', id='O1') +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='obj_pos') +SAX.characters( + , 9) +SAX.startElement(dia:point, val='4.8,4.75') +SAX.endElement(dia:point) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='obj_bb') +SAX.characters( + , 9) +SAX.startElement(dia:rectangle, val='2.579,3.96359;7.021,4.96359') +SAX.endElement(dia:rectangle) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='text') +SAX.characters( + , 9) +SAX.startElement(dia:composite, type='text') +SAX.characters( + , 11) +SAX.startElement(dia:attribute, name='string') +SAX.characters( + , 13) +SAX.startElement(dia:string, val='sdfsdfg') +SAX.endElement(dia:string) +SAX.characters( + , 11) +SAX.endElement(dia:attribute) +SAX.characters( + , 11) +SAX.startElement(dia:attribute, name='font') +SAX.characters( + , 13) +SAX.startElement(dia:font, name='Courier') +SAX.endElement(dia:font) +SAX.characters( + , 11) +SAX.endElement(dia:attribute) +SAX.characters( + , 11) +SAX.startElement(dia:attribute, name='height') +SAX.characters( + , 13) +SAX.startElement(dia:real, val='1') +SAX.endElement(dia:real) +SAX.characters( + , 11) +SAX.endElement(dia:attribute) +SAX.characters( + , 11) +SAX.startElement(dia:attribute, name='pos') +SAX.characters( + , 13) +SAX.startElement(dia:point, val='4.8,4.75') +SAX.endElement(dia:point) +SAX.characters( + , 11) +SAX.endElement(dia:attribute) +SAX.characters( + , 11) +SAX.startElement(dia:attribute, name='color') +SAX.characters( + , 13) +SAX.startElement(dia:color, val='#000000') +SAX.endElement(dia:color) +SAX.characters( + , 11) +SAX.endElement(dia:attribute) +SAX.characters( + , 11) +SAX.startElement(dia:attribute, name='alignment') +SAX.characters( + , 13) +SAX.startElement(dia:enum, val='1') +SAX.endElement(dia:enum) +SAX.characters( + , 11) +SAX.endElement(dia:attribute) +SAX.characters( + , 9) +SAX.endElement(dia:composite) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 5) +SAX.endElement(dia:object) +SAX.characters( + , 5) +SAX.startElement(dia:object, type='Standard - Box', version='0', id='O2') +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='obj_pos') +SAX.characters( + , 9) +SAX.startElement(dia:point, val='10.95,7.5') +SAX.endElement(dia:point) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='obj_bb') +SAX.characters( + , 9) +SAX.startElement(dia:rectangle, val='10.9,7.45;13.05,9.55') +SAX.endElement(dia:rectangle) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='elem_corner') +SAX.characters( + , 9) +SAX.startElement(dia:point, val='10.95,7.5') +SAX.endElement(dia:point) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='elem_width') +SAX.characters( + , 9) +SAX.startElement(dia:real, val='2.05') +SAX.endElement(dia:real) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='elem_height') +SAX.characters( + , 9) +SAX.startElement(dia:real, val='2') +SAX.endElement(dia:real) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='border_width') +SAX.characters( + , 9) +SAX.startElement(dia:real, val='0.1') +SAX.endElement(dia:real) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='border_color') +SAX.characters( + , 9) +SAX.startElement(dia:color, val='#000000') +SAX.endElement(dia:color) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='inner_color') +SAX.characters( + , 9) +SAX.startElement(dia:color, val='#ffffff') +SAX.endElement(dia:color) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='line_style') +SAX.characters( + , 9) +SAX.startElement(dia:enum, val='0') +SAX.endElement(dia:enum) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 5) +SAX.endElement(dia:object) +SAX.characters( + , 3) +SAX.endElement(dia:layer) +SAX.characters( +, 1) +SAX.endElement(dia:diagram) +SAX.endDocument() diff --git a/result/dia1.sax2 b/result/dia1.sax2 new file mode 100644 index 0000000..4821c9b --- /dev/null +++ b/result/dia1.sax2 @@ -0,0 +1,323 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/', 1, xmlns:dia='http://www.lysator.liu.se/~alla/dia/', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(diagramdata, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='back...', 10) +SAX.characters( + , 7) +SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#fff...', 7) +SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 5) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 3) +SAX.endElementNs(diagramdata, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 3) +SAX.startElementNs(layer, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 2, 0, name='Back...', 10, visible='true...', 4) +SAX.characters( + , 5) +SAX.startElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, type='Stan...', 15, version='0" i...', 1, id='O0">...', 2) +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 7) +SAX.characters( + , 9) +SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1.95...', 9) +SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 6) +SAX.characters( + , 9) +SAX.startElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1.9,...', 15) +SAX.endElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='conn...', 14) +SAX.characters( + , 9) +SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1.95...', 9) +SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 9) +SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 9) +SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10) +SAX.characters( + , 9) +SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#000...', 7) +SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10) +SAX.characters( + , 9) +SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0.1"...', 3) +SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10) +SAX.characters( + , 9) +SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1) +SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='star...', 11) +SAX.characters( + , 9) +SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1) +SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='end_...', 9) +SAX.characters( + , 9) +SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1) +SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(connections, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 0, 0) +SAX.characters( + , 9) +SAX.startElementNs(connection, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, handle='1" t...', 1, to='O2" ...', 2, connection='3"/>...', 1) +SAX.endElementNs(connection, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(connections, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 5) +SAX.endElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 5) +SAX.startElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, type='Stan...', 15, version='0" i...', 1, id='O1">...', 2) +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 7) +SAX.characters( + , 9) +SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='4.8,...', 8) +SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 6) +SAX.characters( + , 9) +SAX.startElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='2.57...', 27) +SAX.endElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='text...', 4) +SAX.characters( + , 9) +SAX.startElementNs(composite, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, type='text...', 4) +SAX.characters( + , 11) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='stri...', 6) +SAX.characters( + , 13) +SAX.startElementNs(string, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='sdfs...', 7) +SAX.endElementNs(string, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='font...', 4) +SAX.characters( + , 13) +SAX.startElementNs(font, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='Cour...', 7) +SAX.endElementNs(font, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='heig...', 6) +SAX.characters( + , 13) +SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1"/>...', 1) +SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='pos"...', 3) +SAX.characters( + , 13) +SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='4.8,...', 8) +SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='colo...', 5) +SAX.characters( + , 13) +SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#000...', 7) +SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='alig...', 9) +SAX.characters( + , 13) +SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1"/>...', 1) +SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 9) +SAX.endElementNs(composite, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 5) +SAX.endElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 5) +SAX.startElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, type='Stan...', 14, version='0" i...', 1, id='O2">...', 2) +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 7) +SAX.characters( + , 9) +SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 9) +SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 6) +SAX.characters( + , 9) +SAX.startElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 20) +SAX.endElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='elem...', 11) +SAX.characters( + , 9) +SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 9) +SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='elem...', 10) +SAX.characters( + , 9) +SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='2.05...', 4) +SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='elem...', 11) +SAX.characters( + , 9) +SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='2"/>...', 1) +SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='bord...', 12) +SAX.characters( + , 9) +SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0.1"...', 3) +SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='bord...', 12) +SAX.characters( + , 9) +SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#000...', 7) +SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='inne...', 11) +SAX.characters( + , 9) +SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#fff...', 7) +SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10) +SAX.characters( + , 9) +SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1) +SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 5) +SAX.endElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 3) +SAX.endElementNs(layer, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( +, 1) +SAX.endElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.endDocument() diff --git a/result/dia2 b/result/dia2 new file mode 100644 index 0000000..207bd73 --- /dev/null +++ b/result/dia2 @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/result/dia2.rde b/result/dia2.rde new file mode 100644 index 0000000..3767325 --- /dev/null +++ b/result/dia2.rde @@ -0,0 +1,292 @@ +0 1 dia:diagram 0 0 +1 14 #text 0 1 + +1 1 dia:diagramdata 0 0 +2 14 #text 0 1 + +2 1 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:color 1 0 +3 14 #text 0 1 + +2 15 dia:attribute 0 0 +2 14 #text 0 1 + +1 15 dia:diagramdata 0 0 +1 14 #text 0 1 + +1 1 dia:layer 0 0 +2 14 #text 0 1 + +2 1 dia:object 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:rectangle 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:color 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:real 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:enum 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:enum 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:enum 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:connections 0 0 +4 14 #text 0 1 + +4 1 dia:connection 1 0 +4 14 #text 0 1 + +3 15 dia:connections 0 0 +3 14 #text 0 1 + +2 15 dia:object 0 0 +2 14 #text 0 1 + +2 1 dia:object 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:rectangle 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:composite 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:string 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:font 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:real 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:point 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:color 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:enum 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +4 15 dia:composite 0 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +2 15 dia:object 0 0 +2 14 #text 0 1 + +2 1 dia:object 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:rectangle 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:real 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:real 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:real 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:color 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:color 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:enum 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +2 15 dia:object 0 0 +2 14 #text 0 1 + +1 15 dia:layer 0 0 +1 14 #text 0 1 + +0 15 dia:diagram 0 0 diff --git a/result/dia2.rdr b/result/dia2.rdr new file mode 100644 index 0000000..3767325 --- /dev/null +++ b/result/dia2.rdr @@ -0,0 +1,292 @@ +0 1 dia:diagram 0 0 +1 14 #text 0 1 + +1 1 dia:diagramdata 0 0 +2 14 #text 0 1 + +2 1 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:color 1 0 +3 14 #text 0 1 + +2 15 dia:attribute 0 0 +2 14 #text 0 1 + +1 15 dia:diagramdata 0 0 +1 14 #text 0 1 + +1 1 dia:layer 0 0 +2 14 #text 0 1 + +2 1 dia:object 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:rectangle 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:color 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:real 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:enum 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:enum 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:enum 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:connections 0 0 +4 14 #text 0 1 + +4 1 dia:connection 1 0 +4 14 #text 0 1 + +3 15 dia:connections 0 0 +3 14 #text 0 1 + +2 15 dia:object 0 0 +2 14 #text 0 1 + +2 1 dia:object 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:rectangle 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:composite 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:string 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:font 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:real 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:point 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:color 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +5 1 dia:attribute 0 0 +6 14 #text 0 1 + +6 1 dia:enum 1 0 +6 14 #text 0 1 + +5 15 dia:attribute 0 0 +5 14 #text 0 1 + +4 15 dia:composite 0 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +2 15 dia:object 0 0 +2 14 #text 0 1 + +2 1 dia:object 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:rectangle 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:point 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:real 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:real 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:real 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:color 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:color 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +3 1 dia:attribute 0 0 +4 14 #text 0 1 + +4 1 dia:enum 1 0 +4 14 #text 0 1 + +3 15 dia:attribute 0 0 +3 14 #text 0 1 + +2 15 dia:object 0 0 +2 14 #text 0 1 + +1 15 dia:layer 0 0 +1 14 #text 0 1 + +0 15 dia:diagram 0 0 diff --git a/result/dia2.sax b/result/dia2.sax new file mode 100644 index 0000000..6f65d63 --- /dev/null +++ b/result/dia2.sax @@ -0,0 +1,323 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(dia:diagram, xmlns:dia='http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 3) +SAX.startElement(dia:diagramdata) +SAX.characters( + , 5) +SAX.startElement(dia:attribute, name='background') +SAX.characters( + , 7) +SAX.startElement(dia:color, val='#ffffff') +SAX.endElement(dia:color) +SAX.characters( + , 5) +SAX.endElement(dia:attribute) +SAX.characters( + , 3) +SAX.endElement(dia:diagramdata) +SAX.characters( + , 3) +SAX.startElement(dia:layer, name='Background', visible='true') +SAX.characters( + , 5) +SAX.startElement(dia:object, type='Standard - Line', version='0', id='O0') +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='obj_pos') +SAX.characters( + , 9) +SAX.startElement(dia:point, val='1.95,6.85') +SAX.endElement(dia:point) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='obj_bb') +SAX.characters( + , 9) +SAX.startElement(dia:rectangle, val='1.9,6.8;11,8.55') +SAX.endElement(dia:rectangle) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='conn_endpoints') +SAX.characters( + , 9) +SAX.startElement(dia:point, val='1.95,6.85') +SAX.endElement(dia:point) +SAX.characters( + , 9) +SAX.startElement(dia:point, val='10.95,8.5') +SAX.endElement(dia:point) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='line_color') +SAX.characters( + , 9) +SAX.startElement(dia:color, val='#000000') +SAX.endElement(dia:color) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='line_width') +SAX.characters( + , 9) +SAX.startElement(dia:real, val='0.1') +SAX.endElement(dia:real) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='line_style') +SAX.characters( + , 9) +SAX.startElement(dia:enum, val='0') +SAX.endElement(dia:enum) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='start_arrow') +SAX.characters( + , 9) +SAX.startElement(dia:enum, val='0') +SAX.endElement(dia:enum) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='end_arrow') +SAX.characters( + , 9) +SAX.startElement(dia:enum, val='0') +SAX.endElement(dia:enum) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:connections) +SAX.characters( + , 9) +SAX.startElement(dia:connection, handle='1', to='O2', connection='3') +SAX.endElement(dia:connection) +SAX.characters( + , 7) +SAX.endElement(dia:connections) +SAX.characters( + , 5) +SAX.endElement(dia:object) +SAX.characters( + , 5) +SAX.startElement(dia:object, type='Standard - Text', version='0', id='O1') +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='obj_pos') +SAX.characters( + , 9) +SAX.startElement(dia:point, val='4.8,4.75') +SAX.endElement(dia:point) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='obj_bb') +SAX.characters( + , 9) +SAX.startElement(dia:rectangle, val='2.579,3.96359;7.021,4.96359') +SAX.endElement(dia:rectangle) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='text') +SAX.characters( + , 9) +SAX.startElement(dia:composite, type='text') +SAX.characters( + , 11) +SAX.startElement(dia:attribute, name='string') +SAX.characters( + , 13) +SAX.startElement(dia:string, val='sdfsdfg') +SAX.endElement(dia:string) +SAX.characters( + , 11) +SAX.endElement(dia:attribute) +SAX.characters( + , 11) +SAX.startElement(dia:attribute, name='font') +SAX.characters( + , 13) +SAX.startElement(dia:font, name='Courier') +SAX.endElement(dia:font) +SAX.characters( + , 11) +SAX.endElement(dia:attribute) +SAX.characters( + , 11) +SAX.startElement(dia:attribute, name='height') +SAX.characters( + , 13) +SAX.startElement(dia:real, val='1') +SAX.endElement(dia:real) +SAX.characters( + , 11) +SAX.endElement(dia:attribute) +SAX.characters( + , 11) +SAX.startElement(dia:attribute, name='pos') +SAX.characters( + , 13) +SAX.startElement(dia:point, val='4.8,4.75') +SAX.endElement(dia:point) +SAX.characters( + , 11) +SAX.endElement(dia:attribute) +SAX.characters( + , 11) +SAX.startElement(dia:attribute, name='color') +SAX.characters( + , 13) +SAX.startElement(dia:color, val='#000000') +SAX.endElement(dia:color) +SAX.characters( + , 11) +SAX.endElement(dia:attribute) +SAX.characters( + , 11) +SAX.startElement(dia:attribute, name='alignment') +SAX.characters( + , 13) +SAX.startElement(dia:enum, val='1') +SAX.endElement(dia:enum) +SAX.characters( + , 11) +SAX.endElement(dia:attribute) +SAX.characters( + , 9) +SAX.endElement(dia:composite) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 5) +SAX.endElement(dia:object) +SAX.characters( + , 5) +SAX.startElement(dia:object, type='Standard - Box', version='0', id='O2') +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='obj_pos') +SAX.characters( + , 9) +SAX.startElement(dia:point, val='10.95,7.5') +SAX.endElement(dia:point) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='obj_bb') +SAX.characters( + , 9) +SAX.startElement(dia:rectangle, val='10.9,7.45;13.05,9.55') +SAX.endElement(dia:rectangle) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='elem_corner') +SAX.characters( + , 9) +SAX.startElement(dia:point, val='10.95,7.5') +SAX.endElement(dia:point) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='elem_width') +SAX.characters( + , 9) +SAX.startElement(dia:real, val='2.05') +SAX.endElement(dia:real) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='elem_height') +SAX.characters( + , 9) +SAX.startElement(dia:real, val='2') +SAX.endElement(dia:real) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='border_width') +SAX.characters( + , 9) +SAX.startElement(dia:real, val='0.1') +SAX.endElement(dia:real) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='border_color') +SAX.characters( + , 9) +SAX.startElement(dia:color, val='#000000') +SAX.endElement(dia:color) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='inner_color') +SAX.characters( + , 9) +SAX.startElement(dia:color, val='#ffffff') +SAX.endElement(dia:color) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 7) +SAX.startElement(dia:attribute, name='line_style') +SAX.characters( + , 9) +SAX.startElement(dia:enum, val='0') +SAX.endElement(dia:enum) +SAX.characters( + , 7) +SAX.endElement(dia:attribute) +SAX.characters( + , 5) +SAX.endElement(dia:object) +SAX.characters( + , 3) +SAX.endElement(dia:layer) +SAX.characters( +, 1) +SAX.endElement(dia:diagram) +SAX.endDocument() diff --git a/result/dia2.sax2 b/result/dia2.sax2 new file mode 100644 index 0000000..4821c9b --- /dev/null +++ b/result/dia2.sax2 @@ -0,0 +1,323 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/', 1, xmlns:dia='http://www.lysator.liu.se/~alla/dia/', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(diagramdata, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='back...', 10) +SAX.characters( + , 7) +SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#fff...', 7) +SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 5) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 3) +SAX.endElementNs(diagramdata, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 3) +SAX.startElementNs(layer, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 2, 0, name='Back...', 10, visible='true...', 4) +SAX.characters( + , 5) +SAX.startElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, type='Stan...', 15, version='0" i...', 1, id='O0">...', 2) +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 7) +SAX.characters( + , 9) +SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1.95...', 9) +SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 6) +SAX.characters( + , 9) +SAX.startElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1.9,...', 15) +SAX.endElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='conn...', 14) +SAX.characters( + , 9) +SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1.95...', 9) +SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 9) +SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 9) +SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10) +SAX.characters( + , 9) +SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#000...', 7) +SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10) +SAX.characters( + , 9) +SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0.1"...', 3) +SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10) +SAX.characters( + , 9) +SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1) +SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='star...', 11) +SAX.characters( + , 9) +SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1) +SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='end_...', 9) +SAX.characters( + , 9) +SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1) +SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(connections, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 0, 0) +SAX.characters( + , 9) +SAX.startElementNs(connection, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, handle='1" t...', 1, to='O2" ...', 2, connection='3"/>...', 1) +SAX.endElementNs(connection, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(connections, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 5) +SAX.endElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 5) +SAX.startElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, type='Stan...', 15, version='0" i...', 1, id='O1">...', 2) +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 7) +SAX.characters( + , 9) +SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='4.8,...', 8) +SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 6) +SAX.characters( + , 9) +SAX.startElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='2.57...', 27) +SAX.endElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='text...', 4) +SAX.characters( + , 9) +SAX.startElementNs(composite, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, type='text...', 4) +SAX.characters( + , 11) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='stri...', 6) +SAX.characters( + , 13) +SAX.startElementNs(string, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='sdfs...', 7) +SAX.endElementNs(string, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='font...', 4) +SAX.characters( + , 13) +SAX.startElementNs(font, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='Cour...', 7) +SAX.endElementNs(font, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='heig...', 6) +SAX.characters( + , 13) +SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1"/>...', 1) +SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='pos"...', 3) +SAX.characters( + , 13) +SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='4.8,...', 8) +SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='colo...', 5) +SAX.characters( + , 13) +SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#000...', 7) +SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='alig...', 9) +SAX.characters( + , 13) +SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1"/>...', 1) +SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 11) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 9) +SAX.endElementNs(composite, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 5) +SAX.endElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 5) +SAX.startElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, type='Stan...', 14, version='0" i...', 1, id='O2">...', 2) +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 7) +SAX.characters( + , 9) +SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 9) +SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 6) +SAX.characters( + , 9) +SAX.startElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 20) +SAX.endElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='elem...', 11) +SAX.characters( + , 9) +SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 9) +SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='elem...', 10) +SAX.characters( + , 9) +SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='2.05...', 4) +SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='elem...', 11) +SAX.characters( + , 9) +SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='2"/>...', 1) +SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='bord...', 12) +SAX.characters( + , 9) +SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0.1"...', 3) +SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='bord...', 12) +SAX.characters( + , 9) +SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#000...', 7) +SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='inne...', 11) +SAX.characters( + , 9) +SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#fff...', 7) +SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10) +SAX.characters( + , 9) +SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1) +SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 7) +SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 5) +SAX.endElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 3) +SAX.endElementNs(layer, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( +, 1) +SAX.endElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.endDocument() diff --git a/result/dtd1 b/result/dtd1 new file mode 100644 index 0000000..fb11ffa --- /dev/null +++ b/result/dtd1 @@ -0,0 +1,4 @@ + + + + diff --git a/result/dtd1.rde b/result/dtd1.rde new file mode 100644 index 0000000..6bb39b8 --- /dev/null +++ b/result/dtd1.rde @@ -0,0 +1,5 @@ +0 10 MEMO 0 0 +0 1 MEMO 0 0 +1 14 #text 0 1 + +0 15 MEMO 0 0 diff --git a/result/dtd1.rdr b/result/dtd1.rdr new file mode 100644 index 0000000..6bb39b8 --- /dev/null +++ b/result/dtd1.rdr @@ -0,0 +1,5 @@ +0 10 MEMO 0 0 +0 1 MEMO 0 0 +1 14 #text 0 1 + +0 15 MEMO 0 0 diff --git a/result/dtd1.sax b/result/dtd1.sax new file mode 100644 index 0000000..ef8d6d3 --- /dev/null +++ b/result/dtd1.sax @@ -0,0 +1,9 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(MEMO, -//SGMLSOURCE//DTD MEMO//EN, http://www.sgmlsource.com/dtds/memo.dtd) +SAX.externalSubset(MEMO, -//SGMLSOURCE//DTD MEMO//EN, http://www.sgmlsource.com/dtds/memo.dtd) +SAX.startElement(MEMO) +SAX.characters( +, 1) +SAX.endElement(MEMO) +SAX.endDocument() diff --git a/result/dtd1.sax2 b/result/dtd1.sax2 new file mode 100644 index 0000000..47be5e0 --- /dev/null +++ b/result/dtd1.sax2 @@ -0,0 +1,9 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(MEMO, -//SGMLSOURCE//DTD MEMO//EN, http://www.sgmlsource.com/dtds/memo.dtd) +SAX.externalSubset(MEMO, -//SGMLSOURCE//DTD MEMO//EN, http://www.sgmlsource.com/dtds/memo.dtd) +SAX.startElementNs(MEMO, NULL, NULL, 0, 0, 0) +SAX.characters( +, 1) +SAX.endElementNs(MEMO, NULL, NULL) +SAX.endDocument() diff --git a/result/dtd10 b/result/dtd10 new file mode 100644 index 0000000..8c7d5e7 --- /dev/null +++ b/result/dtd10 @@ -0,0 +1,9 @@ + + + + + + +]> +This is a valid document diff --git a/result/dtd10.rde b/result/dtd10.rde new file mode 100644 index 0000000..1df24c7 --- /dev/null +++ b/result/dtd10.rde @@ -0,0 +1,12 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 1 b 0 0 +2 3 #text 0 1 This +1 15 b 0 0 +1 1 c 0 0 +2 3 #text 0 1 is a +1 15 c 0 0 +1 1 d 0 0 +2 3 #text 0 1 valid document +1 15 d 0 0 +0 15 doc 0 0 diff --git a/result/dtd10.rdr b/result/dtd10.rdr new file mode 100644 index 0000000..1df24c7 --- /dev/null +++ b/result/dtd10.rdr @@ -0,0 +1,12 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 1 b 0 0 +2 3 #text 0 1 This +1 15 b 0 0 +1 1 c 0 0 +2 3 #text 0 1 is a +1 15 c 0 0 +1 1 d 0 0 +2 3 #text 0 1 valid document +1 15 d 0 0 +0 15 doc 0 0 diff --git a/result/dtd10.sax b/result/dtd10.sax new file mode 100644 index 0000000..87fd041 --- /dev/null +++ b/result/dtd10.sax @@ -0,0 +1,21 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 4, ...) +SAX.elementDecl(a, 3, ...) +SAX.elementDecl(b, 3, ...) +SAX.elementDecl(c, 3, ...) +SAX.elementDecl(d, 3, ...) +SAX.externalSubset(doc, , ) +SAX.startElement(doc) +SAX.startElement(b) +SAX.characters(This, 4) +SAX.endElement(b) +SAX.startElement(c) +SAX.characters( is a, 5) +SAX.endElement(c) +SAX.startElement(d) +SAX.characters( valid document, 15) +SAX.endElement(d) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/dtd10.sax2 b/result/dtd10.sax2 new file mode 100644 index 0000000..7f15a09 --- /dev/null +++ b/result/dtd10.sax2 @@ -0,0 +1,21 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 4, ...) +SAX.elementDecl(a, 3, ...) +SAX.elementDecl(b, 3, ...) +SAX.elementDecl(c, 3, ...) +SAX.elementDecl(d, 3, ...) +SAX.externalSubset(doc, , ) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.startElementNs(b, NULL, NULL, 0, 0, 0) +SAX.characters(This, 4) +SAX.endElementNs(b, NULL, NULL) +SAX.startElementNs(c, NULL, NULL, 0, 0, 0) +SAX.characters( is a, 5) +SAX.endElementNs(c, NULL, NULL) +SAX.startElementNs(d, NULL, NULL, 0, 0, 0) +SAX.characters( valid document, 15) +SAX.endElementNs(d, NULL, NULL) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/dtd11 b/result/dtd11 new file mode 100644 index 0000000..e0df8af --- /dev/null +++ b/result/dtd11 @@ -0,0 +1,6 @@ + + + +]> + diff --git a/result/dtd11.rde b/result/dtd11.rde new file mode 100644 index 0000000..9b0a34d --- /dev/null +++ b/result/dtd11.rde @@ -0,0 +1,2 @@ +0 10 doc 0 0 +0 1 doc 1 0 diff --git a/result/dtd11.rdr b/result/dtd11.rdr new file mode 100644 index 0000000..9b0a34d --- /dev/null +++ b/result/dtd11.rdr @@ -0,0 +1,2 @@ +0 10 doc 0 0 +0 1 doc 1 0 diff --git a/result/dtd11.sax b/result/dtd11.sax new file mode 100644 index 0000000..a2bee0c --- /dev/null +++ b/result/dtd11.sax @@ -0,0 +1,9 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 3, ...) +SAX.attributeDecl(doc, val, 1, 3, NULL, ...) +SAX.externalSubset(doc, , ) +SAX.startElement(doc, val='v1') +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/dtd11.sax2 b/result/dtd11.sax2 new file mode 100644 index 0000000..a9cae5d --- /dev/null +++ b/result/dtd11.sax2 @@ -0,0 +1,9 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 3, ...) +SAX.attributeDecl(doc, val, 1, 3, NULL, ...) +SAX.externalSubset(doc, , ) +SAX.startElementNs(doc, NULL, NULL, 0, 1, 0, val='v1"/...', 2) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/dtd12 b/result/dtd12 new file mode 100644 index 0000000..f0d1261 --- /dev/null +++ b/result/dtd12 @@ -0,0 +1,6 @@ + + + +]> +&WhatHeSaid; diff --git a/result/dtd12.rde b/result/dtd12.rde new file mode 100644 index 0000000..c2d4cc0 --- /dev/null +++ b/result/dtd12.rde @@ -0,0 +1,4 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 3 #text 0 1 He said "Yes" +0 15 doc 0 0 diff --git a/result/dtd12.rdr b/result/dtd12.rdr new file mode 100644 index 0000000..c394a46 --- /dev/null +++ b/result/dtd12.rdr @@ -0,0 +1,4 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 5 WhatHeSaid 0 0 +0 15 doc 0 0 diff --git a/result/dtd12.sax b/result/dtd12.sax new file mode 100644 index 0000000..82054ce --- /dev/null +++ b/result/dtd12.sax @@ -0,0 +1,17 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.entityDecl(YN, 1, (null), (null), "Yes") +SAX.getEntity(YN) +SAX.entityDecl(WhatHeSaid, 1, (null), (null), He said &YN;) +SAX.getEntity(WhatHeSaid) +SAX.externalSubset(doc, , ) +SAX.startElement(doc) +SAX.getEntity(WhatHeSaid) +SAX.characters(He said , 8) +SAX.getEntity(YN) +SAX.characters("Yes", 5) +SAX.reference(YN) +SAX.reference(WhatHeSaid) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/dtd12.sax2 b/result/dtd12.sax2 new file mode 100644 index 0000000..8a5d8a4 --- /dev/null +++ b/result/dtd12.sax2 @@ -0,0 +1,17 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.entityDecl(YN, 1, (null), (null), "Yes") +SAX.getEntity(YN) +SAX.entityDecl(WhatHeSaid, 1, (null), (null), He said &YN;) +SAX.getEntity(WhatHeSaid) +SAX.externalSubset(doc, , ) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.getEntity(WhatHeSaid) +SAX.characters(He said , 8) +SAX.getEntity(YN) +SAX.characters("Yes", 5) +SAX.reference(YN) +SAX.reference(WhatHeSaid) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/dtd13 b/result/dtd13 new file mode 100644 index 0000000..2814146 --- /dev/null +++ b/result/dtd13 @@ -0,0 +1,7 @@ + + + +]> + + diff --git a/result/dtd13.rde b/result/dtd13.rde new file mode 100644 index 0000000..f567ccb --- /dev/null +++ b/result/dtd13.rde @@ -0,0 +1,4 @@ +0 8 #comment 0 1 comment before the DTD +0 10 doc 0 0 +0 8 #comment 0 1 comment after the DTD +0 1 doc 1 0 diff --git a/result/dtd13.rdr b/result/dtd13.rdr new file mode 100644 index 0000000..f567ccb --- /dev/null +++ b/result/dtd13.rdr @@ -0,0 +1,4 @@ +0 8 #comment 0 1 comment before the DTD +0 10 doc 0 0 +0 8 #comment 0 1 comment after the DTD +0 1 doc 1 0 diff --git a/result/dtd13.sax b/result/dtd13.sax new file mode 100644 index 0000000..5b1245f --- /dev/null +++ b/result/dtd13.sax @@ -0,0 +1,10 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.comment( comment before the DTD ) +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 2, ...) +SAX.externalSubset(doc, , ) +SAX.comment( comment after the DTD ) +SAX.startElement(doc) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/dtd13.sax2 b/result/dtd13.sax2 new file mode 100644 index 0000000..b631501 --- /dev/null +++ b/result/dtd13.sax2 @@ -0,0 +1,10 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.comment( comment before the DTD ) +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 2, ...) +SAX.externalSubset(doc, , ) +SAX.comment( comment after the DTD ) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/dtd2 b/result/dtd2 new file mode 100644 index 0000000..921fd94 --- /dev/null +++ b/result/dtd2 @@ -0,0 +1,5 @@ + + +]> +This is a valid document ! diff --git a/result/dtd2.rde b/result/dtd2.rde new file mode 100644 index 0000000..20cbf2a --- /dev/null +++ b/result/dtd2.rde @@ -0,0 +1,4 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 3 #text 0 1 This is a valid document ! +0 15 doc 0 0 diff --git a/result/dtd2.rdr b/result/dtd2.rdr new file mode 100644 index 0000000..20cbf2a --- /dev/null +++ b/result/dtd2.rdr @@ -0,0 +1,4 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 3 #text 0 1 This is a valid document ! +0 15 doc 0 0 diff --git a/result/dtd2.sax b/result/dtd2.sax new file mode 100644 index 0000000..0343486 --- /dev/null +++ b/result/dtd2.sax @@ -0,0 +1,9 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 3, ...) +SAX.externalSubset(doc, , ) +SAX.startElement(doc) +SAX.characters(This is a valid document !, 26) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/dtd2.sax2 b/result/dtd2.sax2 new file mode 100644 index 0000000..ff6b568 --- /dev/null +++ b/result/dtd2.sax2 @@ -0,0 +1,9 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 3, ...) +SAX.externalSubset(doc, , ) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.characters(This is a valid document !, 26) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/dtd3 b/result/dtd3 new file mode 100644 index 0000000..6681ef7 --- /dev/null +++ b/result/dtd3 @@ -0,0 +1,5 @@ + + +]> +This is a valid document ! diff --git a/result/dtd3.rde b/result/dtd3.rde new file mode 100644 index 0000000..20cbf2a --- /dev/null +++ b/result/dtd3.rde @@ -0,0 +1,4 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 3 #text 0 1 This is a valid document ! +0 15 doc 0 0 diff --git a/result/dtd3.rdr b/result/dtd3.rdr new file mode 100644 index 0000000..20cbf2a --- /dev/null +++ b/result/dtd3.rdr @@ -0,0 +1,4 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 3 #text 0 1 This is a valid document ! +0 15 doc 0 0 diff --git a/result/dtd3.sax b/result/dtd3.sax new file mode 100644 index 0000000..57539d3 --- /dev/null +++ b/result/dtd3.sax @@ -0,0 +1,9 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 2, ...) +SAX.externalSubset(doc, , ) +SAX.startElement(doc) +SAX.characters(This is a valid document !, 26) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/dtd3.sax2 b/result/dtd3.sax2 new file mode 100644 index 0000000..9625ad5 --- /dev/null +++ b/result/dtd3.sax2 @@ -0,0 +1,9 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 2, ...) +SAX.externalSubset(doc, , ) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.characters(This is a valid document !, 26) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/dtd4 b/result/dtd4 new file mode 100644 index 0000000..6cf2444 --- /dev/null +++ b/result/dtd4 @@ -0,0 +1,5 @@ + + +]> + diff --git a/result/dtd4.rde b/result/dtd4.rde new file mode 100644 index 0000000..9b0a34d --- /dev/null +++ b/result/dtd4.rde @@ -0,0 +1,2 @@ +0 10 doc 0 0 +0 1 doc 1 0 diff --git a/result/dtd4.rdr b/result/dtd4.rdr new file mode 100644 index 0000000..9b0a34d --- /dev/null +++ b/result/dtd4.rdr @@ -0,0 +1,2 @@ +0 10 doc 0 0 +0 1 doc 1 0 diff --git a/result/dtd4.sax b/result/dtd4.sax new file mode 100644 index 0000000..cfb4c79 --- /dev/null +++ b/result/dtd4.sax @@ -0,0 +1,8 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 1, ...) +SAX.externalSubset(doc, , ) +SAX.startElement(doc) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/dtd4.sax2 b/result/dtd4.sax2 new file mode 100644 index 0000000..8366d48 --- /dev/null +++ b/result/dtd4.sax2 @@ -0,0 +1,8 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 1, ...) +SAX.externalSubset(doc, , ) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/dtd5 b/result/dtd5 new file mode 100644 index 0000000..5409d51 --- /dev/null +++ b/result/dtd5 @@ -0,0 +1,7 @@ + + + + +]> +This is a valid document diff --git a/result/dtd5.rde b/result/dtd5.rde new file mode 100644 index 0000000..66773a3 --- /dev/null +++ b/result/dtd5.rde @@ -0,0 +1,11 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 1 a 0 0 +2 3 #text 0 1 This +1 15 a 0 0 +1 3 #text 0 1 is a +1 1 b 0 0 +2 3 #text 0 1 valid +1 15 b 0 0 +1 3 #text 0 1 document +0 15 doc 0 0 diff --git a/result/dtd5.rdr b/result/dtd5.rdr new file mode 100644 index 0000000..66773a3 --- /dev/null +++ b/result/dtd5.rdr @@ -0,0 +1,11 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 1 a 0 0 +2 3 #text 0 1 This +1 15 a 0 0 +1 3 #text 0 1 is a +1 1 b 0 0 +2 3 #text 0 1 valid +1 15 b 0 0 +1 3 #text 0 1 document +0 15 doc 0 0 diff --git a/result/dtd5.sax b/result/dtd5.sax new file mode 100644 index 0000000..5dc8db3 --- /dev/null +++ b/result/dtd5.sax @@ -0,0 +1,18 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 3, ...) +SAX.elementDecl(a, 3, ...) +SAX.elementDecl(b, 3, ...) +SAX.externalSubset(doc, , ) +SAX.startElement(doc) +SAX.startElement(a) +SAX.characters(This, 4) +SAX.endElement(a) +SAX.characters( is a , 6) +SAX.startElement(b) +SAX.characters(valid, 5) +SAX.endElement(b) +SAX.characters( document, 9) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/dtd5.sax2 b/result/dtd5.sax2 new file mode 100644 index 0000000..f48c01c --- /dev/null +++ b/result/dtd5.sax2 @@ -0,0 +1,18 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 3, ...) +SAX.elementDecl(a, 3, ...) +SAX.elementDecl(b, 3, ...) +SAX.externalSubset(doc, , ) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.startElementNs(a, NULL, NULL, 0, 0, 0) +SAX.characters(This, 4) +SAX.endElementNs(a, NULL, NULL) +SAX.characters( is a , 6) +SAX.startElementNs(b, NULL, NULL, 0, 0, 0) +SAX.characters(valid, 5) +SAX.endElementNs(b, NULL, NULL) +SAX.characters( document, 9) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/dtd6 b/result/dtd6 new file mode 100644 index 0000000..ed2d993 --- /dev/null +++ b/result/dtd6 @@ -0,0 +1,7 @@ + + + + +]> +This is a valid document diff --git a/result/dtd6.rde b/result/dtd6.rde new file mode 100644 index 0000000..a941e6a --- /dev/null +++ b/result/dtd6.rde @@ -0,0 +1,12 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 1 a 0 0 +2 3 #text 0 1 This +1 15 a 0 0 +1 1 b 0 0 +2 3 #text 0 1 is a valid +1 15 b 0 0 +1 1 a 0 0 +2 3 #text 0 1 document +1 15 a 0 0 +0 15 doc 0 0 diff --git a/result/dtd6.rdr b/result/dtd6.rdr new file mode 100644 index 0000000..a941e6a --- /dev/null +++ b/result/dtd6.rdr @@ -0,0 +1,12 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 1 a 0 0 +2 3 #text 0 1 This +1 15 a 0 0 +1 1 b 0 0 +2 3 #text 0 1 is a valid +1 15 b 0 0 +1 1 a 0 0 +2 3 #text 0 1 document +1 15 a 0 0 +0 15 doc 0 0 diff --git a/result/dtd6.sax b/result/dtd6.sax new file mode 100644 index 0000000..e9088d7 --- /dev/null +++ b/result/dtd6.sax @@ -0,0 +1,19 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 4, ...) +SAX.elementDecl(a, 3, ...) +SAX.elementDecl(b, 3, ...) +SAX.externalSubset(doc, , ) +SAX.startElement(doc) +SAX.startElement(a) +SAX.characters(This, 4) +SAX.endElement(a) +SAX.startElement(b) +SAX.characters( is a valid, 11) +SAX.endElement(b) +SAX.startElement(a) +SAX.characters( document, 9) +SAX.endElement(a) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/dtd6.sax2 b/result/dtd6.sax2 new file mode 100644 index 0000000..6e78924 --- /dev/null +++ b/result/dtd6.sax2 @@ -0,0 +1,19 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 4, ...) +SAX.elementDecl(a, 3, ...) +SAX.elementDecl(b, 3, ...) +SAX.externalSubset(doc, , ) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.startElementNs(a, NULL, NULL, 0, 0, 0) +SAX.characters(This, 4) +SAX.endElementNs(a, NULL, NULL) +SAX.startElementNs(b, NULL, NULL, 0, 0, 0) +SAX.characters( is a valid, 11) +SAX.endElementNs(b, NULL, NULL) +SAX.startElementNs(a, NULL, NULL, 0, 0, 0) +SAX.characters( document, 9) +SAX.endElementNs(a, NULL, NULL) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/dtd7 b/result/dtd7 new file mode 100644 index 0000000..0a4075f --- /dev/null +++ b/result/dtd7 @@ -0,0 +1,7 @@ + + + + +]> +This is a valid document diff --git a/result/dtd7.rde b/result/dtd7.rde new file mode 100644 index 0000000..a477613 --- /dev/null +++ b/result/dtd7.rde @@ -0,0 +1,9 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 1 a 0 0 +2 3 #text 0 1 This +1 15 a 0 0 +1 1 b 0 0 +2 3 #text 0 1 is a valid document +1 15 b 0 0 +0 15 doc 0 0 diff --git a/result/dtd7.rdr b/result/dtd7.rdr new file mode 100644 index 0000000..a477613 --- /dev/null +++ b/result/dtd7.rdr @@ -0,0 +1,9 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 1 a 0 0 +2 3 #text 0 1 This +1 15 a 0 0 +1 1 b 0 0 +2 3 #text 0 1 is a valid document +1 15 b 0 0 +0 15 doc 0 0 diff --git a/result/dtd7.sax b/result/dtd7.sax new file mode 100644 index 0000000..dbf6e5f --- /dev/null +++ b/result/dtd7.sax @@ -0,0 +1,16 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 4, ...) +SAX.elementDecl(a, 3, ...) +SAX.elementDecl(b, 3, ...) +SAX.externalSubset(doc, , ) +SAX.startElement(doc) +SAX.startElement(a) +SAX.characters(This, 4) +SAX.endElement(a) +SAX.startElement(b) +SAX.characters( is a valid document, 20) +SAX.endElement(b) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/dtd7.sax2 b/result/dtd7.sax2 new file mode 100644 index 0000000..4a47191 --- /dev/null +++ b/result/dtd7.sax2 @@ -0,0 +1,16 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 4, ...) +SAX.elementDecl(a, 3, ...) +SAX.elementDecl(b, 3, ...) +SAX.externalSubset(doc, , ) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.startElementNs(a, NULL, NULL, 0, 0, 0) +SAX.characters(This, 4) +SAX.endElementNs(a, NULL, NULL) +SAX.startElementNs(b, NULL, NULL, 0, 0, 0) +SAX.characters( is a valid document, 20) +SAX.endElementNs(b, NULL, NULL) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/dtd8 b/result/dtd8 new file mode 100644 index 0000000..7a655f9 --- /dev/null +++ b/result/dtd8 @@ -0,0 +1,9 @@ + + + + + + +]> +This is a valid document diff --git a/result/dtd8.rde b/result/dtd8.rde new file mode 100644 index 0000000..15ee010 --- /dev/null +++ b/result/dtd8.rde @@ -0,0 +1,9 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 1 b 0 0 +2 3 #text 0 1 This +1 15 b 0 0 +1 1 c 0 0 +2 3 #text 0 1 is a valid document +1 15 c 0 0 +0 15 doc 0 0 diff --git a/result/dtd8.rdr b/result/dtd8.rdr new file mode 100644 index 0000000..15ee010 --- /dev/null +++ b/result/dtd8.rdr @@ -0,0 +1,9 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 1 b 0 0 +2 3 #text 0 1 This +1 15 b 0 0 +1 1 c 0 0 +2 3 #text 0 1 is a valid document +1 15 c 0 0 +0 15 doc 0 0 diff --git a/result/dtd8.sax b/result/dtd8.sax new file mode 100644 index 0000000..fd949a2 --- /dev/null +++ b/result/dtd8.sax @@ -0,0 +1,18 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 4, ...) +SAX.elementDecl(a, 3, ...) +SAX.elementDecl(b, 3, ...) +SAX.elementDecl(c, 3, ...) +SAX.elementDecl(d, 3, ...) +SAX.externalSubset(doc, , ) +SAX.startElement(doc) +SAX.startElement(b) +SAX.characters(This, 4) +SAX.endElement(b) +SAX.startElement(c) +SAX.characters( is a valid document, 20) +SAX.endElement(c) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/dtd8.sax2 b/result/dtd8.sax2 new file mode 100644 index 0000000..d38b60d --- /dev/null +++ b/result/dtd8.sax2 @@ -0,0 +1,18 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 4, ...) +SAX.elementDecl(a, 3, ...) +SAX.elementDecl(b, 3, ...) +SAX.elementDecl(c, 3, ...) +SAX.elementDecl(d, 3, ...) +SAX.externalSubset(doc, , ) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.startElementNs(b, NULL, NULL, 0, 0, 0) +SAX.characters(This, 4) +SAX.endElementNs(b, NULL, NULL) +SAX.startElementNs(c, NULL, NULL, 0, 0, 0) +SAX.characters( is a valid document, 20) +SAX.endElementNs(c, NULL, NULL) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/dtd9 b/result/dtd9 new file mode 100644 index 0000000..89cc1d4 --- /dev/null +++ b/result/dtd9 @@ -0,0 +1,9 @@ + + + + + + +]> +This is a valid document diff --git a/result/dtd9.rde b/result/dtd9.rde new file mode 100644 index 0000000..2e2b2e9 --- /dev/null +++ b/result/dtd9.rde @@ -0,0 +1,9 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 1 b 0 0 +2 3 #text 0 1 This +1 15 b 0 0 +1 1 d 0 0 +2 3 #text 0 1 is a valid document +1 15 d 0 0 +0 15 doc 0 0 diff --git a/result/dtd9.rdr b/result/dtd9.rdr new file mode 100644 index 0000000..2e2b2e9 --- /dev/null +++ b/result/dtd9.rdr @@ -0,0 +1,9 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 1 b 0 0 +2 3 #text 0 1 This +1 15 b 0 0 +1 1 d 0 0 +2 3 #text 0 1 is a valid document +1 15 d 0 0 +0 15 doc 0 0 diff --git a/result/dtd9.sax b/result/dtd9.sax new file mode 100644 index 0000000..738f4d3 --- /dev/null +++ b/result/dtd9.sax @@ -0,0 +1,18 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 4, ...) +SAX.elementDecl(a, 3, ...) +SAX.elementDecl(b, 3, ...) +SAX.elementDecl(c, 3, ...) +SAX.elementDecl(d, 3, ...) +SAX.externalSubset(doc, , ) +SAX.startElement(doc) +SAX.startElement(b) +SAX.characters(This, 4) +SAX.endElement(b) +SAX.startElement(d) +SAX.characters( is a valid document, 20) +SAX.endElement(d) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/dtd9.sax2 b/result/dtd9.sax2 new file mode 100644 index 0000000..a5b537f --- /dev/null +++ b/result/dtd9.sax2 @@ -0,0 +1,18 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.elementDecl(doc, 4, ...) +SAX.elementDecl(a, 3, ...) +SAX.elementDecl(b, 3, ...) +SAX.elementDecl(c, 3, ...) +SAX.elementDecl(d, 3, ...) +SAX.externalSubset(doc, , ) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.startElementNs(b, NULL, NULL, 0, 0, 0) +SAX.characters(This, 4) +SAX.endElementNs(b, NULL, NULL) +SAX.startElementNs(d, NULL, NULL, 0, 0, 0) +SAX.characters( is a valid document, 20) +SAX.endElementNs(d, NULL, NULL) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/ebcdic_566012.xml b/result/ebcdic_566012.xml new file mode 100644 index 0000000..153add5 --- /dev/null +++ b/result/ebcdic_566012.xml @@ -0,0 +1 @@ +Lo§”“@¥…™¢‰–•~ñKð@…•ƒ–„‰•‡~ÉÂÔ`ññôñon%L£…¢£@££™~JàZan% \ No newline at end of file diff --git a/result/ebcdic_566012.xml.rde b/result/ebcdic_566012.xml.rde new file mode 100644 index 0000000..efbc18b --- /dev/null +++ b/result/ebcdic_566012.xml.rde @@ -0,0 +1 @@ +0 1 test 1 0 diff --git a/result/ebcdic_566012.xml.rdr b/result/ebcdic_566012.xml.rdr new file mode 100644 index 0000000..efbc18b --- /dev/null +++ b/result/ebcdic_566012.xml.rdr @@ -0,0 +1 @@ +0 1 test 1 0 diff --git a/result/ebcdic_566012.xml.sax b/result/ebcdic_566012.xml.sax new file mode 100644 index 0000000..7ec6d5a --- /dev/null +++ b/result/ebcdic_566012.xml.sax @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(test, attr='ÄÖÜ') +SAX.endElement(test) +SAX.endDocument() diff --git a/result/ebcdic_566012.xml.sax2 b/result/ebcdic_566012.xml.sax2 new file mode 100644 index 0000000..b8a4ce0 --- /dev/null +++ b/result/ebcdic_566012.xml.sax2 @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(test, NULL, NULL, 0, 1, 0, attr='ÄÖ...', 6) +SAX.endElementNs(test, NULL, NULL) +SAX.endDocument() diff --git a/result/emptycdata.xml b/result/emptycdata.xml new file mode 100644 index 0000000..bc98388 --- /dev/null +++ b/result/emptycdata.xml @@ -0,0 +1,4 @@ + + + + diff --git a/result/emptycdata.xml.rde b/result/emptycdata.xml.rde new file mode 100644 index 0000000..1c8b74f --- /dev/null +++ b/result/emptycdata.xml.rde @@ -0,0 +1,7 @@ +0 1 html 0 0 +1 14 #text 0 1 + +1 4 #cdata-section 0 1 +1 14 #text 0 1 + +0 15 html 0 0 diff --git a/result/emptycdata.xml.rdr b/result/emptycdata.xml.rdr new file mode 100644 index 0000000..1c8b74f --- /dev/null +++ b/result/emptycdata.xml.rdr @@ -0,0 +1,7 @@ +0 1 html 0 0 +1 14 #text 0 1 + +1 4 #cdata-section 0 1 +1 14 #text 0 1 + +0 15 html 0 0 diff --git a/result/emptycdata.xml.sax b/result/emptycdata.xml.sax new file mode 100644 index 0000000..39587c6 --- /dev/null +++ b/result/emptycdata.xml.sax @@ -0,0 +1,10 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(html, xmlns='http://www.w3.org/1999/xhtml') +SAX.characters( +, 1) +SAX.pcdata(, 0) +SAX.characters( +, 1) +SAX.endElement(html) +SAX.endDocument() diff --git a/result/emptycdata.xml.sax2 b/result/emptycdata.xml.sax2 new file mode 100644 index 0000000..7f80296 --- /dev/null +++ b/result/emptycdata.xml.sax2 @@ -0,0 +1,10 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(html, NULL, 'http://www.w3.org/1999/xhtml', 1, xmlns='http://www.w3.org/1999/xhtml', 0, 0) +SAX.characters( +, 1) +SAX.pcdata(, 0) +SAX.characters( +, 1) +SAX.endElementNs(html, NULL, 'http://www.w3.org/1999/xhtml') +SAX.endDocument() diff --git a/result/ent1 b/result/ent1 new file mode 100644 index 0000000..3e24756 --- /dev/null +++ b/result/ent1 @@ -0,0 +1,7 @@ + + +]> + + &xml; + diff --git a/result/ent1.rde b/result/ent1.rde new file mode 100644 index 0000000..d806d24 --- /dev/null +++ b/result/ent1.rde @@ -0,0 +1,6 @@ +0 10 EXAMPLE 0 0 +0 1 EXAMPLE 0 0 +1 3 #text 0 1 + Extensible Markup Language + +0 15 EXAMPLE 0 0 diff --git a/result/ent1.rdr b/result/ent1.rdr new file mode 100644 index 0000000..9f9c2cc --- /dev/null +++ b/result/ent1.rdr @@ -0,0 +1,8 @@ +0 10 EXAMPLE 0 0 +0 1 EXAMPLE 0 0 +1 14 #text 0 1 + +1 5 xml 0 0 +1 14 #text 0 1 + +0 15 EXAMPLE 0 0 diff --git a/result/ent1.sax b/result/ent1.sax new file mode 100644 index 0000000..1d5334f --- /dev/null +++ b/result/ent1.sax @@ -0,0 +1,16 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(EXAMPLE, , example.dtd) +SAX.entityDecl(xml, 1, (null), (null), Extensible Markup Language) +SAX.getEntity(xml) +SAX.externalSubset(EXAMPLE, , example.dtd) +SAX.startElement(EXAMPLE) +SAX.characters( + , 5) +SAX.getEntity(xml) +SAX.characters(Extensible Markup Language, 26) +SAX.reference(xml) +SAX.characters( +, 1) +SAX.endElement(EXAMPLE) +SAX.endDocument() diff --git a/result/ent1.sax2 b/result/ent1.sax2 new file mode 100644 index 0000000..573f485 --- /dev/null +++ b/result/ent1.sax2 @@ -0,0 +1,16 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(EXAMPLE, , example.dtd) +SAX.entityDecl(xml, 1, (null), (null), Extensible Markup Language) +SAX.getEntity(xml) +SAX.externalSubset(EXAMPLE, , example.dtd) +SAX.startElementNs(EXAMPLE, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.getEntity(xml) +SAX.characters(Extensible Markup Language, 26) +SAX.reference(xml) +SAX.characters( +, 1) +SAX.endElementNs(EXAMPLE, NULL, NULL) +SAX.endDocument() diff --git a/result/ent10 b/result/ent10 new file mode 100644 index 0000000..c46d19f --- /dev/null +++ b/result/ent10 @@ -0,0 +1,14 @@ + + + + + + hello world + + "> +]> + + &f; + diff --git a/result/ent10.rde b/result/ent10.rde new file mode 100644 index 0000000..e69594c --- /dev/null +++ b/result/ent10.rde @@ -0,0 +1,14 @@ +0 10 rnode 0 0 +0 1 rnode 0 0 +1 14 #text 0 1 + + +1 1 f 0 0 +2 3 #text 0 1 + hello world + +1 15 f 0 0 +1 14 #text 0 1 + + +0 15 rnode 0 0 diff --git a/result/ent10.rdr b/result/ent10.rdr new file mode 100644 index 0000000..34edb50 --- /dev/null +++ b/result/ent10.rdr @@ -0,0 +1,8 @@ +0 10 rnode 0 0 +0 1 rnode 0 0 +1 14 #text 0 1 + +1 5 f 0 0 +1 14 #text 0 1 + +0 15 rnode 0 0 diff --git a/result/ent10.sax b/result/ent10.sax new file mode 100644 index 0000000..75ed20a --- /dev/null +++ b/result/ent10.sax @@ -0,0 +1,31 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(rnode, , ) +SAX.elementDecl(rnode, 4, ...) +SAX.elementDecl(f, 3, ...) +SAX.attributeDecl(f, att1, 1, 4, J, ...) +SAX.entityDecl(f, 1, (null), (null), + + hello world + + ) +SAX.getEntity(f) +SAX.externalSubset(rnode, , ) +SAX.startElement(rnode) +SAX.characters( + , 4) +SAX.getEntity(f) +SAX.ignorableWhitespace( + , 4) +SAX.startElement(f) +SAX.characters( + hello world + , 19) +SAX.endElement(f) +SAX.characters( + , 4) +SAX.reference(f) +SAX.characters( +, 1) +SAX.endElement(rnode) +SAX.endDocument() diff --git a/result/ent10.sax2 b/result/ent10.sax2 new file mode 100644 index 0000000..7a379fc --- /dev/null +++ b/result/ent10.sax2 @@ -0,0 +1,31 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(rnode, , ) +SAX.elementDecl(rnode, 4, ...) +SAX.elementDecl(f, 3, ...) +SAX.attributeDecl(f, att1, 1, 4, J, ...) +SAX.entityDecl(f, 1, (null), (null), + + hello world + + ) +SAX.getEntity(f) +SAX.externalSubset(rnode, , ) +SAX.startElementNs(rnode, NULL, NULL, 0, 0, 0) +SAX.characters( + , 4) +SAX.getEntity(f) +SAX.ignorableWhitespace( + , 4) +SAX.startElementNs(f, NULL, NULL, 0, 1, 1, att1='J...', 1) +SAX.characters( + hello world + , 19) +SAX.endElementNs(f, NULL, NULL) +SAX.characters( + , 4) +SAX.reference(f) +SAX.characters( +, 1) +SAX.endElementNs(rnode, NULL, NULL) +SAX.endDocument() diff --git a/result/ent11 b/result/ent11 new file mode 100644 index 0000000..7eee023 --- /dev/null +++ b/result/ent11 @@ -0,0 +1,5 @@ + + +]> +&newl; diff --git a/result/ent11.rde b/result/ent11.rde new file mode 100644 index 0000000..f6c3c27 --- /dev/null +++ b/result/ent11.rde @@ -0,0 +1,5 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 14 #text 0 1 + +0 15 doc 0 0 diff --git a/result/ent11.rdr b/result/ent11.rdr new file mode 100644 index 0000000..54a754a --- /dev/null +++ b/result/ent11.rdr @@ -0,0 +1,4 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 5 newl 0 0 +0 15 doc 0 0 diff --git a/result/ent11.sax b/result/ent11.sax new file mode 100644 index 0000000..4e36a6b --- /dev/null +++ b/result/ent11.sax @@ -0,0 +1,13 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.entityDecl(newl, 1, (null), (null), ) +SAX.getEntity(newl) +SAX.externalSubset(doc, , ) +SAX.startElement(doc) +SAX.getEntity(newl) +SAX.characters( +, 1) +SAX.reference(newl) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/ent11.sax2 b/result/ent11.sax2 new file mode 100644 index 0000000..e80778f --- /dev/null +++ b/result/ent11.sax2 @@ -0,0 +1,13 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.entityDecl(newl, 1, (null), (null), ) +SAX.getEntity(newl) +SAX.externalSubset(doc, , ) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.getEntity(newl) +SAX.characters( +, 1) +SAX.reference(newl) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/ent12 b/result/ent12 new file mode 100644 index 0000000..f603c59 --- /dev/null +++ b/result/ent12 @@ -0,0 +1,8 @@ + + + +]> + + &bar; + diff --git a/result/ent12.rde b/result/ent12.rde new file mode 100644 index 0000000..483547b --- /dev/null +++ b/result/ent12.rde @@ -0,0 +1,10 @@ +0 10 root 0 0 +0 1 root 0 0 +1 14 #text 0 1 + +1 1 element 0 0 +2 3 #text 0 1 def +1 15 element 0 0 +1 14 #text 0 1 + +0 15 root 0 0 diff --git a/result/ent12.rdr b/result/ent12.rdr new file mode 100644 index 0000000..884c1fe --- /dev/null +++ b/result/ent12.rdr @@ -0,0 +1,10 @@ +0 10 root 0 0 +0 1 root 0 0 +1 14 #text 0 1 + +1 1 element 0 0 +2 5 bar 0 0 +1 15 element 0 0 +1 14 #text 0 1 + +0 15 root 0 0 diff --git a/result/ent12.sax b/result/ent12.sax new file mode 100644 index 0000000..84322d2 --- /dev/null +++ b/result/ent12.sax @@ -0,0 +1,21 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(root, , ) +SAX.entityDecl(foo, 1, (null), (null), abc) +SAX.getEntity(foo) +SAX.entityDecl(bar, 1, (null), (null), def) +SAX.getEntity(bar) +SAX.externalSubset(root, , ) +SAX.getEntity(foo) +SAX.startElement(root, attribute='&foo;') +SAX.characters( + , 4) +SAX.startElement(element) +SAX.getEntity(bar) +SAX.characters(def, 3) +SAX.reference(bar) +SAX.endElement(element) +SAX.characters( +, 1) +SAX.endElement(root) +SAX.endDocument() diff --git a/result/ent12.sax2 b/result/ent12.sax2 new file mode 100644 index 0000000..881fedd --- /dev/null +++ b/result/ent12.sax2 @@ -0,0 +1,21 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(root, , ) +SAX.entityDecl(foo, 1, (null), (null), abc) +SAX.getEntity(foo) +SAX.entityDecl(bar, 1, (null), (null), def) +SAX.getEntity(bar) +SAX.externalSubset(root, , ) +SAX.getEntity(foo) +SAX.startElementNs(root, NULL, NULL, 0, 1, 0, attribute='&foo...', 5) +SAX.characters( + , 4) +SAX.startElementNs(element, NULL, NULL, 0, 0, 0) +SAX.getEntity(bar) +SAX.characters(def, 3) +SAX.reference(bar) +SAX.endElementNs(element, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(root, NULL, NULL) +SAX.endDocument() diff --git a/result/ent13 b/result/ent13 new file mode 100644 index 0000000..8dd96c9 --- /dev/null +++ b/result/ent13 @@ -0,0 +1,5 @@ + + +]> +a diff --git a/result/ent13.rde b/result/ent13.rde new file mode 100644 index 0000000..d9227fc --- /dev/null +++ b/result/ent13.rde @@ -0,0 +1,4 @@ +0 10 test 0 0 +0 1 t 0 0 +1 3 #text 0 1 a +0 15 t 0 0 diff --git a/result/ent13.rdr b/result/ent13.rdr new file mode 100644 index 0000000..d9227fc --- /dev/null +++ b/result/ent13.rdr @@ -0,0 +1,4 @@ +0 10 test 0 0 +0 1 t 0 0 +1 3 #text 0 1 a +0 15 t 0 0 diff --git a/result/ent13.sax b/result/ent13.sax new file mode 100644 index 0000000..5e4bb44 --- /dev/null +++ b/result/ent13.sax @@ -0,0 +1,11 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(test, , ) +SAX.entityDecl(ampproblem, 1, (null), (null), &) +SAX.getEntity(ampproblem) +SAX.externalSubset(test, , ) +SAX.getEntity(ampproblem) +SAX.startElement(t, a='&problem;') +SAX.characters(a, 1) +SAX.endElement(t) +SAX.endDocument() diff --git a/result/ent13.sax2 b/result/ent13.sax2 new file mode 100644 index 0000000..3414da6 --- /dev/null +++ b/result/ent13.sax2 @@ -0,0 +1,11 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(test, , ) +SAX.entityDecl(ampproblem, 1, (null), (null), &) +SAX.getEntity(ampproblem) +SAX.externalSubset(test, , ) +SAX.getEntity(ampproblem) +SAX.startElementNs(t, NULL, NULL, 0, 1, 0, a='&...', 12) +SAX.characters(a, 1) +SAX.endElementNs(t, NULL, NULL) +SAX.endDocument() diff --git a/result/ent2 b/result/ent2 new file mode 100644 index 0000000..2b4137c --- /dev/null +++ b/result/ent2 @@ -0,0 +1,10 @@ + + + + +]> + + &title; + This text is about XML, the &xml; and this is an embedded + diff --git a/result/ent2.rde b/result/ent2.rde new file mode 100644 index 0000000..7fe3aa8 --- /dev/null +++ b/result/ent2.rde @@ -0,0 +1,15 @@ +0 10 EXAMPLE 0 0 +0 1 EXAMPLE 0 0 +1 14 #text 0 1 + + +1 1 title 0 0 +2 3 #text 0 1 my title +1 15 title 0 0 +1 3 #text 0 1 + + This text is about XML, the Extensible Markup Language and this is an embedded +1 1 IMG 1 0 +1 14 #text 0 1 + +0 15 EXAMPLE 0 0 diff --git a/result/ent2.rdr b/result/ent2.rdr new file mode 100644 index 0000000..6c2e761 --- /dev/null +++ b/result/ent2.rdr @@ -0,0 +1,13 @@ +0 10 EXAMPLE 0 0 +0 1 EXAMPLE 0 0 +1 14 #text 0 1 + +1 5 title 0 0 +1 3 #text 0 1 + This text is about XML, the +1 5 xml 0 0 +1 3 #text 0 1 and this is an embedded +1 1 IMG 1 0 +1 14 #text 0 1 + +0 15 EXAMPLE 0 0 diff --git a/result/ent2.sax b/result/ent2.sax new file mode 100644 index 0000000..07d2ce4 --- /dev/null +++ b/result/ent2.sax @@ -0,0 +1,26 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(EXAMPLE, , example.dtd) +SAX.entityDecl(xml, 1, (null), (null), Extensible Markup Language) +SAX.getEntity(xml) +SAX.entityDecl(title, 2, -//MY-TITLE//FR, title.xml, (null)) +SAX.unparsedEntityDecl(image, (null), img.gif, GIF) +SAX.externalSubset(EXAMPLE, , example.dtd) +SAX.startElement(EXAMPLE) +SAX.characters( + , 3) +SAX.getEntity(title) +SAX.error: Entity 'title' not defined +SAX.reference(title) +SAX.characters( + This text is about XML, the, 31) +SAX.getEntity(xml) +SAX.characters(Extensible Markup Language, 26) +SAX.reference(xml) +SAX.characters( and this is an embedded , 25) +SAX.startElement(IMG, src='image') +SAX.endElement(IMG) +SAX.characters( +, 1) +SAX.endElement(EXAMPLE) +SAX.endDocument() diff --git a/result/ent2.sax2 b/result/ent2.sax2 new file mode 100644 index 0000000..d7c8002 --- /dev/null +++ b/result/ent2.sax2 @@ -0,0 +1,26 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(EXAMPLE, , example.dtd) +SAX.entityDecl(xml, 1, (null), (null), Extensible Markup Language) +SAX.getEntity(xml) +SAX.entityDecl(title, 2, -//MY-TITLE//FR, title.xml, (null)) +SAX.unparsedEntityDecl(image, (null), img.gif, GIF) +SAX.externalSubset(EXAMPLE, , example.dtd) +SAX.startElementNs(EXAMPLE, NULL, NULL, 0, 0, 0) +SAX.characters( + , 3) +SAX.getEntity(title) +SAX.error: Entity 'title' not defined +SAX.reference(title) +SAX.characters( + This text is about XML, the, 31) +SAX.getEntity(xml) +SAX.characters(Extensible Markup Language, 26) +SAX.reference(xml) +SAX.characters( and this is an embedded , 25) +SAX.startElementNs(IMG, NULL, NULL, 0, 1, 0, src='imag...', 5) +SAX.endElementNs(IMG, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(EXAMPLE, NULL, NULL) +SAX.endDocument() diff --git a/result/ent3 b/result/ent3 new file mode 100644 index 0000000..7fb4c7b --- /dev/null +++ b/result/ent3 @@ -0,0 +1,7 @@ + + +]> + + Test of entities in attributes. + diff --git a/result/ent3.rde b/result/ent3.rde new file mode 100644 index 0000000..740442d --- /dev/null +++ b/result/ent3.rde @@ -0,0 +1,6 @@ +0 10 EXAMPLE 0 0 +0 1 EXAMPLE 0 0 +1 3 #text 0 1 + Test of entities in attributes. + +0 15 EXAMPLE 0 0 diff --git a/result/ent3.rdr b/result/ent3.rdr new file mode 100644 index 0000000..740442d --- /dev/null +++ b/result/ent3.rdr @@ -0,0 +1,6 @@ +0 10 EXAMPLE 0 0 +0 1 EXAMPLE 0 0 +1 3 #text 0 1 + Test of entities in attributes. + +0 15 EXAMPLE 0 0 diff --git a/result/ent3.sax b/result/ent3.sax new file mode 100644 index 0000000..407d24b --- /dev/null +++ b/result/ent3.sax @@ -0,0 +1,12 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(EXAMPLE, , example.dtd) +SAX.entityDecl(xml, 1, (null), (null), Extensible Markup Language) +SAX.getEntity(xml) +SAX.externalSubset(EXAMPLE, , example.dtd) +SAX.getEntity(xml) +SAX.startElement(EXAMPLE, prop1='a&b', prop2='&xml;') +SAX.characters( + Test of entities in attribu, 35) +SAX.endElement(EXAMPLE) +SAX.endDocument() diff --git a/result/ent3.sax2 b/result/ent3.sax2 new file mode 100644 index 0000000..de5ff15 --- /dev/null +++ b/result/ent3.sax2 @@ -0,0 +1,12 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(EXAMPLE, , example.dtd) +SAX.entityDecl(xml, 1, (null), (null), Extensible Markup Language) +SAX.getEntity(xml) +SAX.externalSubset(EXAMPLE, , example.dtd) +SAX.getEntity(xml) +SAX.startElementNs(EXAMPLE, NULL, NULL, 0, 2, 0, prop1='a...', 7, prop2='&xml...', 5) +SAX.characters( + Test of entities in attribu, 35) +SAX.endElementNs(EXAMPLE, NULL, NULL) +SAX.endDocument() diff --git a/result/ent4 b/result/ent4 new file mode 100644 index 0000000..a92194c --- /dev/null +++ b/result/ent4 @@ -0,0 +1,7 @@ + + +]> + + Test of &amp; behaviour a&b . + diff --git a/result/ent4.rde b/result/ent4.rde new file mode 100644 index 0000000..7b65485 --- /dev/null +++ b/result/ent4.rde @@ -0,0 +1,6 @@ +0 10 EXAMPLE 0 0 +0 1 EXAMPLE 0 0 +1 3 #text 0 1 + Test of & behaviour a&b . + +0 15 EXAMPLE 0 0 diff --git a/result/ent4.rdr b/result/ent4.rdr new file mode 100644 index 0000000..7b65485 --- /dev/null +++ b/result/ent4.rdr @@ -0,0 +1,6 @@ +0 10 EXAMPLE 0 0 +0 1 EXAMPLE 0 0 +1 3 #text 0 1 + Test of & behaviour a&b . + +0 15 EXAMPLE 0 0 diff --git a/result/ent4.sax b/result/ent4.sax new file mode 100644 index 0000000..20bc28e --- /dev/null +++ b/result/ent4.sax @@ -0,0 +1,16 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(EXAMPLE, , example.dtd) +SAX.entityDecl(xml, 1, (null), (null), Extensible Markup Language) +SAX.getEntity(xml) +SAX.externalSubset(EXAMPLE, , example.dtd) +SAX.startElement(EXAMPLE) +SAX.characters( + Test of , 11) +SAX.characters(&, 1) +SAX.characters(amp; behaviour a, 16) +SAX.characters(&, 1) +SAX.characters(b . +, 4) +SAX.endElement(EXAMPLE) +SAX.endDocument() diff --git a/result/ent4.sax2 b/result/ent4.sax2 new file mode 100644 index 0000000..b0a6b08 --- /dev/null +++ b/result/ent4.sax2 @@ -0,0 +1,16 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(EXAMPLE, , example.dtd) +SAX.entityDecl(xml, 1, (null), (null), Extensible Markup Language) +SAX.getEntity(xml) +SAX.externalSubset(EXAMPLE, , example.dtd) +SAX.startElementNs(EXAMPLE, NULL, NULL, 0, 0, 0) +SAX.characters( + Test of , 11) +SAX.characters(&, 1) +SAX.characters(amp; behaviour a, 16) +SAX.characters(&, 1) +SAX.characters(b . +, 4) +SAX.endElementNs(EXAMPLE, NULL, NULL) +SAX.endDocument() diff --git a/result/ent5 b/result/ent5 new file mode 100644 index 0000000..16e7e10 --- /dev/null +++ b/result/ent5 @@ -0,0 +1,5 @@ + + + This is an inverted exclamation sign ¡ + This is a space + diff --git a/result/ent5.rde b/result/ent5.rde new file mode 100644 index 0000000..c570c31 --- /dev/null +++ b/result/ent5.rde @@ -0,0 +1,6 @@ +0 1 EXAMPLE 0 0 +1 3 #text 0 1 + This is an inverted exclamation sign ¡ + This is a space + +0 15 EXAMPLE 0 0 diff --git a/result/ent5.rdr b/result/ent5.rdr new file mode 100644 index 0000000..c570c31 --- /dev/null +++ b/result/ent5.rdr @@ -0,0 +1,6 @@ +0 1 EXAMPLE 0 0 +1 3 #text 0 1 + This is an inverted exclamation sign ¡ + This is a space + +0 15 EXAMPLE 0 0 diff --git a/result/ent5.sax b/result/ent5.sax new file mode 100644 index 0000000..7ad8b65 --- /dev/null +++ b/result/ent5.sax @@ -0,0 +1,13 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(EXAMPLE) +SAX.characters( + This is an inverted excla, 42) +SAX.characters(¡, 2) +SAX.characters( + This is a space , 21) +SAX.characters( , 1) +SAX.characters( +, 2) +SAX.endElement(EXAMPLE) +SAX.endDocument() diff --git a/result/ent5.sax2 b/result/ent5.sax2 new file mode 100644 index 0000000..f7251e4 --- /dev/null +++ b/result/ent5.sax2 @@ -0,0 +1,13 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(EXAMPLE, NULL, NULL, 0, 0, 0) +SAX.characters( + This is an inverted excla, 42) +SAX.characters(¡, 2) +SAX.characters( + This is a space , 21) +SAX.characters( , 1) +SAX.characters( +, 2) +SAX.endElementNs(EXAMPLE, NULL, NULL) +SAX.endDocument() diff --git a/result/ent6 b/result/ent6 new file mode 100644 index 0000000..047f9bb --- /dev/null +++ b/result/ent6 @@ -0,0 +1,9 @@ + + + + + + +]> + diff --git a/result/ent6.rde b/result/ent6.rde new file mode 100644 index 0000000..9b0a34d --- /dev/null +++ b/result/ent6.rde @@ -0,0 +1,2 @@ +0 10 doc 0 0 +0 1 doc 1 0 diff --git a/result/ent6.rdr b/result/ent6.rdr new file mode 100644 index 0000000..9b0a34d --- /dev/null +++ b/result/ent6.rdr @@ -0,0 +1,2 @@ +0 10 doc 0 0 +0 1 doc 1 0 diff --git a/result/ent6.sax b/result/ent6.sax new file mode 100644 index 0000000..a4426e7 --- /dev/null +++ b/result/ent6.sax @@ -0,0 +1,17 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.entityDecl(lt, 1, (null), (null), <) +SAX.getEntity(lt) +SAX.entityDecl(gt, 1, (null), (null), >) +SAX.getEntity(gt) +SAX.entityDecl(amp, 1, (null), (null), &) +SAX.getEntity(amp) +SAX.entityDecl(apos, 1, (null), (null), ') +SAX.getEntity(apos) +SAX.entityDecl(quot, 1, (null), (null), ") +SAX.getEntity(quot) +SAX.externalSubset(doc, , ) +SAX.startElement(doc) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/ent6.sax2 b/result/ent6.sax2 new file mode 100644 index 0000000..a70d0bb --- /dev/null +++ b/result/ent6.sax2 @@ -0,0 +1,17 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.entityDecl(lt, 1, (null), (null), <) +SAX.getEntity(lt) +SAX.entityDecl(gt, 1, (null), (null), >) +SAX.getEntity(gt) +SAX.entityDecl(amp, 1, (null), (null), &) +SAX.getEntity(amp) +SAX.entityDecl(apos, 1, (null), (null), ') +SAX.getEntity(apos) +SAX.entityDecl(quot, 1, (null), (null), ") +SAX.getEntity(quot) +SAX.externalSubset(doc, , ) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/ent7 b/result/ent7 new file mode 100644 index 0000000..f46d8bb --- /dev/null +++ b/result/ent7 @@ -0,0 +1,8 @@ + +"> + + + +]> +'they called me &sampleEnt;' diff --git a/result/ent7.rde b/result/ent7.rde new file mode 100644 index 0000000..fa74b0f --- /dev/null +++ b/result/ent7.rde @@ -0,0 +1,6 @@ +0 10 item 0 0 +0 1 item 0 0 +1 1 para 0 0 +2 3 #text 0 1 'they called me the hyacinth girl' +1 15 para 0 0 +0 15 item 0 0 diff --git a/result/ent7.rdr b/result/ent7.rdr new file mode 100644 index 0000000..937a848 --- /dev/null +++ b/result/ent7.rdr @@ -0,0 +1,8 @@ +0 10 item 0 0 +0 1 item 0 0 +1 1 para 0 0 +2 3 #text 0 1 'they called me +2 5 sampleEnt 0 0 +2 3 #text 0 1 ' +1 15 para 0 0 +0 15 item 0 0 diff --git a/result/ent7.sax b/result/ent7.sax new file mode 100644 index 0000000..3228de3 --- /dev/null +++ b/result/ent7.sax @@ -0,0 +1,17 @@ +xmlSAXUserParseFile returned error 27 +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(item, , ) +SAX.entityDecl(sampleEnt, 4, (null), (null), ) +SAX.getParameterEntity(sampleEnt) +SAX.entityDecl(sampleEnt, 1, (null), (null), the hyacinth girl) +SAX.getEntity(sampleEnt) +SAX.getParameterEntity(sampleEnt) +SAX.error: PEReference: %sampleEnt; not found +SAX.characters('they called me , 16) +SAX.getEntity(sampleEnt) +SAX.error: Entity 'sampleEnt' not defined +SAX.reference(sampleEnt) +SAX.characters(', 1) +SAX.endDocument() +xmlSAXUserParseFile returned error 27 diff --git a/result/ent7.sax2 b/result/ent7.sax2 new file mode 100644 index 0000000..3228de3 --- /dev/null +++ b/result/ent7.sax2 @@ -0,0 +1,17 @@ +xmlSAXUserParseFile returned error 27 +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(item, , ) +SAX.entityDecl(sampleEnt, 4, (null), (null), ) +SAX.getParameterEntity(sampleEnt) +SAX.entityDecl(sampleEnt, 1, (null), (null), the hyacinth girl) +SAX.getEntity(sampleEnt) +SAX.getParameterEntity(sampleEnt) +SAX.error: PEReference: %sampleEnt; not found +SAX.characters('they called me , 16) +SAX.getEntity(sampleEnt) +SAX.error: Entity 'sampleEnt' not defined +SAX.reference(sampleEnt) +SAX.characters(', 1) +SAX.endDocument() +xmlSAXUserParseFile returned error 27 diff --git a/result/ent8 b/result/ent8 new file mode 100644 index 0000000..86e6c30 --- /dev/null +++ b/result/ent8 @@ -0,0 +1,10 @@ + + + +]> + + Retenção + <> + &test1;&test2; + diff --git a/result/ent8.rde b/result/ent8.rde new file mode 100644 index 0000000..fb87667 --- /dev/null +++ b/result/ent8.rde @@ -0,0 +1,20 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 14 #text 0 1 + +1 1 Content 0 0 +2 3 #text 0 1 Retenção +1 15 Content 0 0 +1 14 #text 0 1 + +1 1 Content 0 0 +2 3 #text 0 1 <> +1 15 Content 0 0 +1 14 #text 0 1 + +1 1 Content 0 0 +2 3 #text 0 1 test 1test 2 +1 15 Content 0 0 +1 14 #text 0 1 + +0 15 doc 0 0 diff --git a/result/ent8.rdr b/result/ent8.rdr new file mode 100644 index 0000000..0977e90 --- /dev/null +++ b/result/ent8.rdr @@ -0,0 +1,21 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 14 #text 0 1 + +1 1 Content 0 0 +2 3 #text 0 1 Retenção +1 15 Content 0 0 +1 14 #text 0 1 + +1 1 Content 0 0 +2 3 #text 0 1 <> +1 15 Content 0 0 +1 14 #text 0 1 + +1 1 Content 0 0 +2 5 test1 0 0 +2 5 test2 0 0 +1 15 Content 0 0 +1 14 #text 0 1 + +0 15 doc 0 0 diff --git a/result/ent8.sax b/result/ent8.sax new file mode 100644 index 0000000..4639441 --- /dev/null +++ b/result/ent8.sax @@ -0,0 +1,37 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.entityDecl(test1, 1, (null), (null), test 1) +SAX.getEntity(test1) +SAX.entityDecl(test2, 1, (null), (null), test 2) +SAX.getEntity(test2) +SAX.externalSubset(doc, , ) +SAX.startElement(doc) +SAX.characters( + , 4) +SAX.startElement(Content) +SAX.characters(Reten, 5) +SAX.characters(ç, 2) +SAX.characters(ã, 2) +SAX.characters(o, 1) +SAX.endElement(Content) +SAX.characters( + , 4) +SAX.startElement(Content) +SAX.characters(<, 1) +SAX.characters(>, 1) +SAX.endElement(Content) +SAX.characters( + , 4) +SAX.startElement(Content) +SAX.getEntity(test1) +SAX.characters(test 1, 6) +SAX.reference(test1) +SAX.getEntity(test2) +SAX.characters(test 2, 6) +SAX.reference(test2) +SAX.endElement(Content) +SAX.characters( +, 1) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/ent8.sax2 b/result/ent8.sax2 new file mode 100644 index 0000000..301f9a4 --- /dev/null +++ b/result/ent8.sax2 @@ -0,0 +1,37 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.entityDecl(test1, 1, (null), (null), test 1) +SAX.getEntity(test1) +SAX.entityDecl(test2, 1, (null), (null), test 2) +SAX.getEntity(test2) +SAX.externalSubset(doc, , ) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.characters( + , 4) +SAX.startElementNs(Content, NULL, NULL, 0, 0, 0) +SAX.characters(Reten, 5) +SAX.characters(ç, 2) +SAX.characters(ã, 2) +SAX.characters(o, 1) +SAX.endElementNs(Content, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(Content, NULL, NULL, 0, 0, 0) +SAX.characters(<, 1) +SAX.characters(>, 1) +SAX.endElementNs(Content, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(Content, NULL, NULL, 0, 0, 0) +SAX.getEntity(test1) +SAX.characters(test 1, 6) +SAX.reference(test1) +SAX.getEntity(test2) +SAX.characters(test 2, 6) +SAX.reference(test2) +SAX.endElementNs(Content, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/ent9 b/result/ent9 new file mode 100644 index 0000000..1ce3089 --- /dev/null +++ b/result/ent9 @@ -0,0 +1,61 @@ + +,,,"> +]> + + &test1; +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      + &test1; +
      diff --git a/result/ent9.rde b/result/ent9.rde new file mode 100644 index 0000000..38b9f43 --- /dev/null +++ b/result/ent9.rde @@ -0,0 +1,300 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 14 #text 0 1 + +1 1 ent 0 0 +2 1 a 0 0 +2 15 a 0 0 +2 3 #text 0 1 , +2 1 b 0 0 +2 15 b 0 0 +2 3 #text 0 1 , +2 1 c 0 0 +2 15 c 0 0 +2 3 #text 0 1 , +2 1 d 0 0 +2 15 d 0 0 +1 15 ent 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 ent 0 0 +2 1 a 0 0 +2 15 a 0 0 +2 3 #text 0 1 , +2 1 b 0 0 +2 15 b 0 0 +2 3 #text 0 1 , +2 1 c 0 0 +2 15 c 0 0 +2 3 #text 0 1 , +2 1 d 0 0 +2 15 d 0 0 +1 15 ent 0 0 +1 14 #text 0 1 + +0 15 doc 0 0 diff --git a/result/ent9.rdr b/result/ent9.rdr new file mode 100644 index 0000000..42f8a5f --- /dev/null +++ b/result/ent9.rdr @@ -0,0 +1,280 @@ +0 10 doc 0 0 +0 1 doc 0 0 +1 14 #text 0 1 + +1 1 ent 0 0 +2 5 test1 0 0 +1 15 ent 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 WE need lot of garbage now to trigger the problem +1 15 p 0 0 +1 14 #text 0 1 + +1 1 ent 0 0 +2 5 test1 0 0 +1 15 ent 0 0 +1 14 #text 0 1 + +0 15 doc 0 0 diff --git a/result/ent9.sax b/result/ent9.sax new file mode 100644 index 0000000..aca2ad1 --- /dev/null +++ b/result/ent9.sax @@ -0,0 +1,310 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.entityDecl(test1, 1, (null), (null), ,,,) +SAX.getEntity(test1) +SAX.externalSubset(doc, , ) +SAX.startElement(doc) +SAX.characters( + , 4) +SAX.startElement(ent) +SAX.getEntity(test1) +SAX.startElement(a) +SAX.endElement(a) +SAX.characters(,, 1) +SAX.startElement(b) +SAX.endElement(b) +SAX.characters(,, 1) +SAX.startElement(c) +SAX.endElement(c) +SAX.characters(,, 1) +SAX.startElement(d) +SAX.endElement(d) +SAX.reference(test1) +SAX.endElement(ent) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(p) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElement(p) +SAX.characters( + , 4) +SAX.startElement(ent) +SAX.getEntity(test1) +SAX.startElement(a) +SAX.endElement(a) +SAX.characters(,, 1) +SAX.startElement(b) +SAX.endElement(b) +SAX.characters(,, 1) +SAX.startElement(c) +SAX.endElement(c) +SAX.characters(,, 1) +SAX.startElement(d) +SAX.endElement(d) +SAX.reference(test1) +SAX.endElement(ent) +SAX.characters( +, 1) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/ent9.sax2 b/result/ent9.sax2 new file mode 100644 index 0000000..439dcfc --- /dev/null +++ b/result/ent9.sax2 @@ -0,0 +1,310 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(doc, , ) +SAX.entityDecl(test1, 1, (null), (null), ,,,) +SAX.getEntity(test1) +SAX.externalSubset(doc, , ) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.characters( + , 4) +SAX.startElementNs(ent, NULL, NULL, 0, 0, 0) +SAX.getEntity(test1) +SAX.startElementNs(a, NULL, NULL, 0, 0, 0) +SAX.endElementNs(a, NULL, NULL) +SAX.characters(,, 1) +SAX.startElementNs(b, NULL, NULL, 0, 0, 0) +SAX.endElementNs(b, NULL, NULL) +SAX.characters(,, 1) +SAX.startElementNs(c, NULL, NULL, 0, 0, 0) +SAX.endElementNs(c, NULL, NULL) +SAX.characters(,, 1) +SAX.startElementNs(d, NULL, NULL, 0, 0, 0) +SAX.endElementNs(d, NULL, NULL) +SAX.reference(test1) +SAX.endElementNs(ent, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( WE need lot of garbage now to, 50) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(ent, NULL, NULL, 0, 0, 0) +SAX.getEntity(test1) +SAX.startElementNs(a, NULL, NULL, 0, 0, 0) +SAX.endElementNs(a, NULL, NULL) +SAX.characters(,, 1) +SAX.startElementNs(b, NULL, NULL, 0, 0, 0) +SAX.endElementNs(b, NULL, NULL) +SAX.characters(,, 1) +SAX.startElementNs(c, NULL, NULL, 0, 0, 0) +SAX.endElementNs(c, NULL, NULL) +SAX.characters(,, 1) +SAX.startElementNs(d, NULL, NULL, 0, 0, 0) +SAX.endElementNs(d, NULL, NULL) +SAX.reference(test1) +SAX.endElementNs(ent, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/errors/attr1.xml b/result/errors/attr1.xml new file mode 100644 index 0000000..e69de29 diff --git a/result/errors/attr1.xml.err b/result/errors/attr1.xml.err new file mode 100644 index 0000000..4f08538 --- /dev/null +++ b/result/errors/attr1.xml.err @@ -0,0 +1,6 @@ +./test/errors/attr1.xml:2: parser error : AttValue: ' expected + +^ +./test/errors/attr1.xml:1: parser error : Extra content at the end of the document +ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo + ^ diff --git a/result/errors/attr2.xml.str b/result/errors/attr2.xml.str new file mode 100644 index 0000000..13b08a7 --- /dev/null +++ b/result/errors/attr2.xml.str @@ -0,0 +1,10 @@ +./test/errors/attr2.xml:2: parser error : AttValue: ' expected + +^ +./test/errors/attr2.xml:2: parser error : attributes construct error + +^ +./test/errors/attr2.xml:2: parser error : Couldn't find end of Start Tag foo + +^ +./test/errors/attr2.xml : failed to parse diff --git a/result/errors/attr3.xml b/result/errors/attr3.xml new file mode 100644 index 0000000..de1f928 --- /dev/null +++ b/result/errors/attr3.xml @@ -0,0 +1,6 @@ + + + +]> + diff --git a/result/errors/attr3.xml.err b/result/errors/attr3.xml.err new file mode 100644 index 0000000..a628ca7 --- /dev/null +++ b/result/errors/attr3.xml.err @@ -0,0 +1,3 @@ +./test/errors/attr3.xml:4: validity warning : Attribute a1 of element doc: already defined + + ^ diff --git a/result/errors/attr3.xml.str b/result/errors/attr3.xml.str new file mode 100644 index 0000000..a628ca7 --- /dev/null +++ b/result/errors/attr3.xml.str @@ -0,0 +1,3 @@ +./test/errors/attr3.xml:4: validity warning : Attribute a1 of element doc: already defined + + ^ diff --git a/result/errors/attr4.xml b/result/errors/attr4.xml new file mode 100644 index 0000000..e69de29 diff --git a/result/errors/attr4.xml.err b/result/errors/attr4.xml.err new file mode 100644 index 0000000..a9966d8 --- /dev/null +++ b/result/errors/attr4.xml.err @@ -0,0 +1,12 @@ +./test/errors/attr4.xml:1: parser error : invalid character in attribute value + + ^ +./test/errors/attr4.xml:1: parser error : attributes construct error + + ^ +./test/errors/attr4.xml:1: parser error : Couldn't find end of Start Tag ROOT line 1 + + ^ +./test/errors/attr4.xml:1: parser error : Extra content at the end of the document + + ^ diff --git a/result/errors/attr4.xml.str b/result/errors/attr4.xml.str new file mode 100644 index 0000000..eeb9252 --- /dev/null +++ b/result/errors/attr4.xml.str @@ -0,0 +1,10 @@ +./test/errors/attr4.xml:1: parser error : invalid character in attribute value + + ^ +./test/errors/attr4.xml:1: parser error : attributes construct error + + ^ +./test/errors/attr4.xml:1: parser error : Couldn't find end of Start Tag ROOT + + ^ +./test/errors/attr4.xml : failed to parse diff --git a/result/errors/cdata.xml b/result/errors/cdata.xml new file mode 100644 index 0000000..e69de29 diff --git a/result/errors/cdata.xml.err b/result/errors/cdata.xml.err new file mode 100644 index 0000000..f757963 --- /dev/null +++ b/result/errors/cdata.xml.err @@ -0,0 +1,4 @@ +./test/errors/cdata.xml:2: parser error : Input is not proper UTF-8, indicate encoding ! +Bytes: 0xE1 0x72 0x5D 0x5D + + ^ diff --git a/result/errors/cdata.xml.str b/result/errors/cdata.xml.str new file mode 100644 index 0000000..e043441 --- /dev/null +++ b/result/errors/cdata.xml.str @@ -0,0 +1,5 @@ +./test/errors/cdata.xml:2: parser error : Input is not proper UTF-8, indicate encoding ! +Bytes: 0x5B 0x43 0xE1 0x72 + + ^ +./test/errors/cdata.xml : failed to parse diff --git a/result/errors/charref1.xml b/result/errors/charref1.xml new file mode 100644 index 0000000..e69de29 diff --git a/result/errors/charref1.xml.err b/result/errors/charref1.xml.err new file mode 100644 index 0000000..aa43bcf --- /dev/null +++ b/result/errors/charref1.xml.err @@ -0,0 +1,3 @@ +./test/errors/charref1.xml:1: parser error : xmlParseCharRef: invalid xmlChar value 60 + + ^ diff --git a/result/errors/charref1.xml.str b/result/errors/charref1.xml.str new file mode 100644 index 0000000..467b4f6 --- /dev/null +++ b/result/errors/charref1.xml.str @@ -0,0 +1,4 @@ +./test/errors/charref1.xml:1: parser error : xmlParseCharRef: invalid xmlChar value 60 + + ^ +./test/errors/charref1.xml : failed to parse diff --git a/result/errors/comment1.xml b/result/errors/comment1.xml new file mode 100644 index 0000000..e69de29 diff --git a/result/errors/comment1.xml.err b/result/errors/comment1.xml.err new file mode 100644 index 0000000..5a732dd --- /dev/null +++ b/result/errors/comment1.xml.err @@ -0,0 +1,6 @@ +./test/errors/comment1.xml:5: parser error : xmlParseComment: invalid xmlChar value 14 + in p02:  --> + ^ +./test/errors/comment1.xml:5: parser error : Start tag expected, '<' not found + in p02:  --> + ^ diff --git a/result/errors/comment1.xml.str b/result/errors/comment1.xml.str new file mode 100644 index 0000000..494d1ed --- /dev/null +++ b/result/errors/comment1.xml.str @@ -0,0 +1,4 @@ +./test/errors/comment1.xml:5: parser error : xmlParseComment: invalid xmlChar value 14 + in p02:  --> + ^ +./test/errors/comment1.xml : failed to parse diff --git a/result/errors/content1.xml b/result/errors/content1.xml new file mode 100644 index 0000000..e69de29 diff --git a/result/errors/content1.xml.err b/result/errors/content1.xml.err new file mode 100644 index 0000000..425be39 --- /dev/null +++ b/result/errors/content1.xml.err @@ -0,0 +1,16 @@ +./test/errors/content1.xml:7: parser error : ContentDecl : ',' '|' or ')' expected + + ^ +./test/errors/content1.xml:7: parser error : expected '>' + + ^ +./test/errors/content1.xml:7: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration + + + ^ +./test/errors/content1.xml:7: parser error : DOCTYPE improperly terminated + + ^ +./test/errors/content1.xml:7: parser error : Start tag expected, '<' not found + + ^ diff --git a/result/errors/content1.xml.str b/result/errors/content1.xml.str new file mode 100644 index 0000000..d806a63 --- /dev/null +++ b/result/errors/content1.xml.str @@ -0,0 +1,14 @@ +./test/errors/content1.xml:7: parser error : ContentDecl : ',' '|' or ')' expected + + ^ +./test/errors/content1.xml:7: parser error : expected '>' + + ^ +./test/errors/content1.xml:7: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration + + + ^ +./test/errors/content1.xml:7: parser error : DOCTYPE improperly terminated + + ^ +./test/errors/content1.xml : failed to parse diff --git a/result/errors/extparsedent.xml b/result/errors/extparsedent.xml new file mode 100644 index 0000000..07e4c54 --- /dev/null +++ b/result/errors/extparsedent.xml @@ -0,0 +1,5 @@ + + +]> +&c; diff --git a/result/errors/extparsedent.xml.err b/result/errors/extparsedent.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/errors/extparsedent.xml.str b/result/errors/extparsedent.xml.str new file mode 100644 index 0000000..e69de29 diff --git a/result/errors/name.xml b/result/errors/name.xml new file mode 100644 index 0000000..e69de29 diff --git a/result/errors/name.xml.err b/result/errors/name.xml.err new file mode 100644 index 0000000..4dbfc52 --- /dev/null +++ b/result/errors/name.xml.err @@ -0,0 +1,3 @@ +./test/errors/name.xml:2: parser error : Couldn't find end of Start Tag foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo line 1 + +^ diff --git a/result/errors/name.xml.str b/result/errors/name.xml.str new file mode 100644 index 0000000..fd4af59 --- /dev/null +++ b/result/errors/name.xml.str @@ -0,0 +1,4 @@ +./test/errors/name.xml:2: parser error : Couldn't find end of Start Tag foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo + +^ +./test/errors/name.xml : failed to parse diff --git a/result/errors/name2.xml b/result/errors/name2.xml new file mode 100644 index 0000000..e69de29 diff --git a/result/errors/name2.xml.err b/result/errors/name2.xml.err new file mode 100644 index 0000000..a6649a1 --- /dev/null +++ b/result/errors/name2.xml.err @@ -0,0 +1,6 @@ +./test/errors/name2.xml:2: parser error : Specification mandate value for attribute foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo + +^ +./test/errors/name2.xml:1: parser error : Extra content at the end of the document + + +]> + + diff --git a/result/eve.xml.rde b/result/eve.xml.rde new file mode 100644 index 0000000..6f08c55 --- /dev/null +++ b/result/eve.xml.rde @@ -0,0 +1,5 @@ +0 10 spec 0 0 +0 1 spec 0 0 +1 14 #text 0 1 + +0 15 spec 0 0 diff --git a/result/eve.xml.rdr b/result/eve.xml.rdr new file mode 100644 index 0000000..6f08c55 --- /dev/null +++ b/result/eve.xml.rdr @@ -0,0 +1,5 @@ +0 10 spec 0 0 +0 1 spec 0 0 +1 14 #text 0 1 + +0 15 spec 0 0 diff --git a/result/eve.xml.sax b/result/eve.xml.sax new file mode 100644 index 0000000..1b416b2 --- /dev/null +++ b/result/eve.xml.sax @@ -0,0 +1,11 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(spec, -//testspec//, dtds/eve.dtd) +SAX.entityDecl(iso6.doc.date, 1, (null), (null), 29-May-1999) +SAX.getEntity(iso6.doc.date) +SAX.externalSubset(spec, -//testspec//, dtds/eve.dtd) +SAX.startElement(spec) +SAX.characters( +, 1) +SAX.endElement(spec) +SAX.endDocument() diff --git a/result/eve.xml.sax2 b/result/eve.xml.sax2 new file mode 100644 index 0000000..ea3b430 --- /dev/null +++ b/result/eve.xml.sax2 @@ -0,0 +1,11 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(spec, -//testspec//, dtds/eve.dtd) +SAX.entityDecl(iso6.doc.date, 1, (null), (null), 29-May-1999) +SAX.getEntity(iso6.doc.date) +SAX.externalSubset(spec, -//testspec//, dtds/eve.dtd) +SAX.startElementNs(spec, NULL, NULL, 0, 0, 0) +SAX.characters( +, 1) +SAX.endElementNs(spec, NULL, NULL) +SAX.endDocument() diff --git a/result/example.dtd b/result/example.dtd new file mode 100644 index 0000000..e69de29 diff --git a/result/expr/base b/result/expr/base new file mode 100644 index 0000000..9ab0d19 --- /dev/null +++ b/result/expr/base @@ -0,0 +1,85 @@ +Expression: a +Subexp: a => accept, Ok +Subexp: a | a => accept, Ok +Subexp: b => reject, Ok +Expression: a|b +Subexp: a => accept, Ok +Subexp: b => accept, Ok +Subexp: a | b => accept, Ok +Subexp: a{0} => reject, Ok +Subexp: b{0} => reject, Ok +Expression: a | b | a +Subexp: a => accept, Ok +Subexp: b => accept, Ok +Subexp: a | b => accept, Ok +Subexp: b | a => accept, Ok +Subexp: a | b | b => accept, Ok +Subexp: a | b | a => accept, Ok +Subexp: b | a | b => accept, Ok +Expression: a,a +Subexp: a,a => accept, Ok +Subexp: a => reject, Ok +Subexp: a,a,a => reject, Ok +Expression: a{0,3} +Subexp: a{3} => accept, Ok +Subexp: a => accept, Ok +Subexp: a,a,a => accept, Ok +Subexp: a{1,3} => accept, Ok +Expression: (a|b){0,4} +Subexp: a => accept, Ok +Subexp: b => accept, Ok +Subexp: a,b => accept, Ok +Subexp: a,b,a,b => accept, Ok +Subexp: b,a,b,a,b => reject, Ok +Subexp: b,a{1,3} => accept, Ok +Subexp: a{1,3},b => accept, Ok +Subexp: a{1,3},b,a => reject, Ok +Subexp: a{1,4},b => reject, Ok +Subexp: a{0,5} => reject, Ok +Subexp: (b|a){0,4} => accept, Ok +Subexp: (b|a){0,4},a => reject, Ok +Subexp: (a,b){0,2} => accept, Ok +Subexp: (a,b){0,1},b => accept, Ok +Expression: a* +Subexp: a => accept, Ok +Subexp: a? => accept, Ok +Subexp: a+ => accept, Ok +Subexp: a* => accept, Ok +Subexp: a{0} => accept, Ok +Expression: a+ +Subexp: a => accept, Ok +Subexp: a? => reject, Ok +Subexp: a+ => accept, Ok +Subexp: a* => reject, Ok +Subexp: a?,a => accept, Ok +Subexp: a,a* => accept, Ok +Subexp: a*,a => accept, Ok +Subexp: a?,a*,a => accept, Ok +Subexp: a*,a?,a => accept, Ok +Expression: (a|b)* +Subexp: a => accept, Ok +Subexp: b => accept, Ok +Subexp: a,b => accept, Ok +Subexp: a,b,a,b => accept, Ok +Subexp: (b|a){0,4} => accept, Ok +Subexp: (b|a){0,4},a => accept, Ok +Subexp: a* => accept, Ok +Subexp: b* => accept, Ok +Subexp: (a|b)* => accept, Ok +Subexp: a{1,3} => accept, Ok +Subexp: b,a{1,3} => accept, Ok +Subexp: a{1,3},b => accept, Ok +Subexp: a*,(a|b)* => accept, Ok +Subexp: a*,b{2,5} => accept, Ok +Subexp: a*,(a|b)*,b{2,5} => accept, Ok +Expression: (a|b)+,(c|d) +Subexp: a+,c => accept, Ok +Subexp: a*,c => reject, Ok +Subexp: a,c => accept, Ok +Subexp: a,b*,a*,c => accept, Ok +Expression: (a|b),(a|c){0,100} +Subexp: a{0,100},(a|c) => accept, Ok +Subexp: a{0,101},(a|c) => reject, Ok +Expression: (a, ((b, c, d){0,5}, e{0,1}){0,4}, f) +Subexp: (a, b, (c, d, b){2,3}, c, d, e, f) => accept, Ok +Ops: 0 nodes, 221 cons diff --git a/result/intsubset.xml b/result/intsubset.xml new file mode 100644 index 0000000..bd85795 --- /dev/null +++ b/result/intsubset.xml @@ -0,0 +1,5 @@ + + +]> + diff --git a/result/intsubset.xml.rde b/result/intsubset.xml.rde new file mode 100644 index 0000000..7503422 --- /dev/null +++ b/result/intsubset.xml.rde @@ -0,0 +1,2 @@ +0 10 root 0 0 +0 1 root 1 0 diff --git a/result/intsubset.xml.rdr b/result/intsubset.xml.rdr new file mode 100644 index 0000000..7503422 --- /dev/null +++ b/result/intsubset.xml.rdr @@ -0,0 +1,2 @@ +0 10 root 0 0 +0 1 root 1 0 diff --git a/result/intsubset.xml.sax b/result/intsubset.xml.sax new file mode 100644 index 0000000..a92e2b7 --- /dev/null +++ b/result/intsubset.xml.sax @@ -0,0 +1,9 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(root, , ) +SAX.elementDecl(root, 1, ...) +SAX.comment( " ) +SAX.externalSubset(root, , ) +SAX.startElement(root) +SAX.endElement(root) +SAX.endDocument() diff --git a/result/intsubset.xml.sax2 b/result/intsubset.xml.sax2 new file mode 100644 index 0000000..f4db2a8 --- /dev/null +++ b/result/intsubset.xml.sax2 @@ -0,0 +1,9 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(root, , ) +SAX.elementDecl(root, 1, ...) +SAX.comment( " ) +SAX.externalSubset(root, , ) +SAX.startElementNs(root, NULL, NULL, 0, 0, 0) +SAX.endElementNs(root, NULL, NULL) +SAX.endDocument() diff --git a/result/intsubset2.xml b/result/intsubset2.xml new file mode 100644 index 0000000..b103955 --- /dev/null +++ b/result/intsubset2.xml @@ -0,0 +1,250 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]> + + diff --git a/result/intsubset2.xml.rde b/result/intsubset2.xml.rde new file mode 100644 index 0000000..d27e245 --- /dev/null +++ b/result/intsubset2.xml.rde @@ -0,0 +1,5 @@ +0 10 kanjidic2 0 0 +0 1 kanjidic2 0 0 +1 14 #text 0 1 + +0 15 kanjidic2 0 0 diff --git a/result/intsubset2.xml.rdr b/result/intsubset2.xml.rdr new file mode 100644 index 0000000..d27e245 --- /dev/null +++ b/result/intsubset2.xml.rdr @@ -0,0 +1,5 @@ +0 10 kanjidic2 0 0 +0 1 kanjidic2 0 0 +1 14 #text 0 1 + +0 15 kanjidic2 0 0 diff --git a/result/intsubset2.xml.sax b/result/intsubset2.xml.sax new file mode 100644 index 0000000..b4d7bf4 --- /dev/null +++ b/result/intsubset2.xml.sax @@ -0,0 +1,286 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(kanjidic2, , ) +SAX.comment( Version 1.3 + This is the DTD of the XML-format kanji file combining information from + the KANJIDIC and KANJD212 files. It is intended to be largely self- + documenting, with each field being accompanied by an explanatory + comment. + + The file covers the following kanji: + (a) the 6,355 kanji from JIS X 0208; + (b) the 5,801 kanji from JIS X 0212; + (c) the 3,625 kanji from JIS X 0213 as follows: + (i) the 2,741 kanji which are also in JIS X 0212 have + JIS X 0213 code-points (kuten) added to the existing entry; + (ii) the 884 "new" kanji have new entries. + + At the end of the explanation for a number of fields there is a tag + with the format [N]. This indicates the leading letter(s) of the + equivalent field in the KANJIDIC and KANJD212 files. + + The KANJIDIC documentation should also be read for additional + information about the information in the file. + ) +SAX.elementDecl(kanjidic2, 4, ...) +SAX.elementDecl(header, 4, ...) +SAX.comment( + The single header element will contain identification information + about the version of the file + ) +SAX.elementDecl(file_version, 3, ...) +SAX.comment( + This field denotes the version of kanjidic2 structure, as more + than one version may exist. + ) +SAX.elementDecl(database_version, 3, ...) +SAX.comment( + The version of the file, in the format YYYY-NN, where NN will be + a number starting with 01 for the first version released in a + calendar year, then increasing for each version in that year. + ) +SAX.elementDecl(date_of_creation, 3, ...) +SAX.comment( + The date the file was created in international format (YYYY-MM-DD). + ) +SAX.elementDecl(character, 4, ...) +SAX.elementDecl(literal, 3, ...) +SAX.comment( + The character itself in UTF8 coding. + ) +SAX.elementDecl(codepoint, 4, ...) +SAX.comment( + The codepoint element states the code of the character in the various + character set standards. + ) +SAX.elementDecl(cp_value, 3, ...) +SAX.comment( + The cp_value contains the codepoint of the character in a particular + standard. The standard will be identified in the cp_type attribute. + ) +SAX.attributeDecl(cp_value, cp_type, 1, 2, NULL, ...) +SAX.comment( + The cp_type attribute states the coding standard applying to the + element. The values assigned so far are: + jis208 - JIS X 0208-1997 - kuten coding (nn-nn) + jis212 - JIS X 0212-1990 - kuten coding (nn-nn) + jis213 - JIS X 0213-2000 - kuten coding (p-nn-nn) + ucs - Unicode 4.0 - hex coding (4 or 5 hexadecimal digits) + ) +SAX.elementDecl(radical, 4, ...) +SAX.elementDecl(rad_value, 3, ...) +SAX.comment( + The radical number, in the range 1 to 214. The particular + classification type is stated in the rad_type attribute. + ) +SAX.attributeDecl(rad_value, rad_type, 1, 2, NULL, ...) +SAX.comment( + The rad_type attribute states the type of radical classification. + classical - as recorded in the KangXi Zidian. + nelson - as used in the Nelson "Modern Japanese-English + Character Dictionary" (i.e. the Classic, not the New Nelson). + This will only be used where Nelson reclassified the kanji. + ) +SAX.elementDecl(misc, 4, ...) +SAX.elementDecl(grade, 3, ...) +SAX.comment( + The Jouyou Kanji grade level. 1 through 6 indicate the grade in which + the kanji is taught in Japanese schools. 8 indicates it is one of the + remaining Jouyou Kanji to be learned in junior high school, and 9 + indicates it is a Jinmeiyou (for use in names) kanji. [G] + ) +SAX.elementDecl(stroke_count, 3, ...) +SAX.comment( + The stroke count of the kanji, including the radical. If more than + one, the first is considered the accepted count, while subsequent ones + are common miscounts. (See Appendix E. of the KANJIDIC documentation + for some of the rules applied when counting strokes in some of the + radicals.) [S] + ) +SAX.elementDecl(variant, 3, ...) +SAX.comment( + A cross-reference code to another kanji, usually regarded as a variant. + The type of cross-reference is given in the var_type attribute. + ) +SAX.attributeDecl(variant, var_type, 1, 2, NULL, ...) +SAX.comment( + The var_type attribute indicates the type of variant code. The current + values are: + jis208 - in JIS X 0208 - kuten coding + jis212 - in JIS X 0212 - kuten coding + jis213 - in JIS X 0213 - kuten coding + deroo - De Roo number - numeric + njecd - Halpern NJECD index number - numeric + s_h - The Kanji Dictionary (Spahn & Hadamitzky) - descriptor + nelson - "Classic" Nelson - numeric + oneill - Japanese Names (O'Neill) - numeric + ) +SAX.elementDecl(freq, 3, ...) +SAX.comment( + A frequency-of-use ranking. The 2,500 most-used characters have a + ranking; those characters that lack this field are not ranked. The + frequency is a number from 1 to 2,500 that expresses the relative + frequency of occurrence of a character in modern Japanese. This is + based on a survey in newspapers, so it is biassed towards kanji + used in newspaper articles. The discrimination between the less + frequently used kanji is not strong. + ) +SAX.elementDecl(rad_name, 3, ...) +SAX.comment( + When the kanji is itself a radical and has a name, this element + contains the name (in hiragana.) [T2] + ) +SAX.elementDecl(dic_number, 4, ...) +SAX.comment( + This element contains the index numbers and similar unstructured + information such as page numbers in a number of published dictionaries, + and instructional books on kanji. + ) +SAX.elementDecl(dic_ref, 3, ...) +SAX.comment( + Each dic_ref contains an index number. The particular dictionary, + etc. is defined by the dr_type attribute. + ) +SAX.attributeDecl(dic_ref, dr_type, 1, 2, NULL, ...) +SAX.comment( + The dr_type defines the dictionary or reference book, etc. to which + dic_ref element applies. The initial allocation is: + nelson_c - "Modern Reader's Japanese-English Character Dictionary", + edited by Andrew Nelson (now published as the "Classic" + Nelson). + nelson_n - "The New Nelson Japanese-English Character Dictionary", + edited by John Haig. + halpern_njecd - "New Japanese-English Character Dictionary", + edited by Jack Halpern. + halpern_kkld - "Kanji Learners Dictionary" (Kodansha) edited by + Jack Halpern. + heisig - "Remembering The Kanji" by James Heisig. + gakken - "A New Dictionary of Kanji Usage" (Gakken) + oneill_names - "Japanese Names", by P.G. O'Neill. + oneill_kk - "Essential Kanji" by P.G. O'Neill. + moro - "Daikanwajiten" compiled by Morohashi. For some kanji two + additional attributes are used: m_vol: the volume of the + dictionary in which the kanji is found, and m_page: the page + number in the volume. + henshall - "A Guide To Remembering Japanese Characters" by + Kenneth G. Henshall. + sh_kk - "Kanji and Kana" by Spahn and Hadamitzky. + sakade - "A Guide To Reading and Writing Japanese" edited by + Florence Sakade. + henshall3 - "A Guide To Reading and Writing Japanese" 3rd + edition, edited by Henshall, Seeley and De Groot. + tutt_cards - Tuttle Kanji Cards, compiled by Alexander Kask. + crowley - "The Kanji Way to Japanese Language Power" by + Dale Crowley. + kanji_in_context - "Kanji in Context" by Nishiguchi and Kono. + busy_people - "Japanese For Busy People" vols I-III, published + by the AJLT. The codes are the volume.chapter. + kodansha_compact - the "Kodansha Compact Kanji Guide". + ) +SAX.attributeDecl(dic_ref, m_vol, 1, 3, NULL, ...) +SAX.comment( + See above under "moro". + ) +SAX.attributeDecl(dic_ref, m_page, 1, 3, NULL, ...) +SAX.comment( + See above under "moro". + ) +SAX.elementDecl(query_code, 4, ...) +SAX.comment( + These codes contain information relating to the glyph, and can be used + for finding a required kanji. The type of code is defined by the + qc_type attribute. + ) +SAX.elementDecl(q_code, 3, ...) +SAX.comment( + The q_code contains the actual query-code value, according to the + qc_type attribute. + ) +SAX.attributeDecl(q_code, qc_type, 1, 2, NULL, ...) +SAX.comment( + The q_code attribute defines the type of query code. The current values + are: + skip - Halpern's SKIP (System of Kanji Indexing by Patterns) + code. The format is n-nn-nn. See the KANJIDIC documentation + for a description of the code and restrictions on the + commercial use of this data. [P] + + sh_desc - the descriptor codes for The Kanji Dictionary (Tuttle + 1996) by Spahn and Hadamitzky. They are in the form nxnn.n, + e.g. 3k11.2, where the kanji has 3 strokes in the + identifying radical, it is radical "k" in the SH + classification system, there are 11 other strokes, and it is + the 2nd kanji in the 3k11 sequence. (I am very grateful to + Mark Spahn for providing the list of these descriptor codes + for the kanji in this file.) [I] + four_corner - the "Four Corner" code for the kanji. This is a code + invented by Wang Chen in 1928. See the KANJIDIC documentation + for an overview of the Four Corner System. [Q] + + deroo - the codes developed by the late Father Joseph De Roo, and + published in his book "2001 Kanji" (Bojinsha). Fr De Roo + gave his permission for these codes to be included. [DR] + misclass - a possible misclassification of the kanji according + to one of the code types. (See the "Z" codes in the KANJIDIC + documentation for more details.) + + ) +SAX.elementDecl(reading_meaning, 4, ...) +SAX.comment( + The readings for the kanji in several languages, and the meanings, also + in several languages. The readings and meanings are grouped to enable + the handling of the situation where the meaning is differentiated by + reading. [T1] + ) +SAX.elementDecl(nanori, 3, ...) +SAX.comment( + Japanese readings that are now only associated with names. + ) +SAX.elementDecl(rmgroup, 4, ...) +SAX.elementDecl(reading, 3, ...) +SAX.comment( + The reading element contains the reading or pronunciation + of the kanji. + ) +SAX.attributeDecl(reading, r_type, 1, 2, NULL, ...) +SAX.comment( + The r_type attribute defines the type of reading in the reading + element. The current values are: + pinyin - the modern PinYin romanization of the Chinese reading + of the kanji. The tones are represented by a concluding + digit. [Y] + korean_r - the romanized form of the Korean reading(s) of the + kanji. The readings are in the (Republic of Korea) Ministry + of Education style of romanization. [W] + korean_h - the Korean reading(s) of the kanji in hangul. + ja_on - the "on" Japanese reading of the kanji, in katakana. A + second attribute r_status, if present, will indicate with + a value of "jy" whether the reading is approved for a + "Jouyou kanji". + ja_kun - the "kun" Japanese reading of the kanji, in hiragana. + Where relevant the okurigana is also included separated by a + ".". Readings associated with prefixes and suffixes are + marked with a "-". A second attribute r_status, if present, + will indicate with a value of "jy" whether the reading is + approved for a "Jouyou kanji". + ) +SAX.attributeDecl(reading, r_status, 1, 3, NULL, ...) +SAX.comment( + See under ja_on and ja_kun above. + ) +SAX.elementDecl(meaning, 3, ...) +SAX.comment( + The meaning associated with the kanji. + ) +SAX.attributeDecl(meaning, m_lang, 1, 3, NULL, ...) +SAX.comment( + The m_lang attribute defines the target language of the meaning. It + will be coded using the two-letter language code from the ISO 639 + standard. When absent, the value "en" (i.e. English) is implied. [{}] + ) +SAX.externalSubset(kanjidic2, , ) +SAX.startElement(kanjidic2) +SAX.characters( +, 1) +SAX.endElement(kanjidic2) +SAX.endDocument() diff --git a/result/intsubset2.xml.sax2 b/result/intsubset2.xml.sax2 new file mode 100644 index 0000000..5558701 --- /dev/null +++ b/result/intsubset2.xml.sax2 @@ -0,0 +1,286 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(kanjidic2, , ) +SAX.comment( Version 1.3 + This is the DTD of the XML-format kanji file combining information from + the KANJIDIC and KANJD212 files. It is intended to be largely self- + documenting, with each field being accompanied by an explanatory + comment. + + The file covers the following kanji: + (a) the 6,355 kanji from JIS X 0208; + (b) the 5,801 kanji from JIS X 0212; + (c) the 3,625 kanji from JIS X 0213 as follows: + (i) the 2,741 kanji which are also in JIS X 0212 have + JIS X 0213 code-points (kuten) added to the existing entry; + (ii) the 884 "new" kanji have new entries. + + At the end of the explanation for a number of fields there is a tag + with the format [N]. This indicates the leading letter(s) of the + equivalent field in the KANJIDIC and KANJD212 files. + + The KANJIDIC documentation should also be read for additional + information about the information in the file. + ) +SAX.elementDecl(kanjidic2, 4, ...) +SAX.elementDecl(header, 4, ...) +SAX.comment( + The single header element will contain identification information + about the version of the file + ) +SAX.elementDecl(file_version, 3, ...) +SAX.comment( + This field denotes the version of kanjidic2 structure, as more + than one version may exist. + ) +SAX.elementDecl(database_version, 3, ...) +SAX.comment( + The version of the file, in the format YYYY-NN, where NN will be + a number starting with 01 for the first version released in a + calendar year, then increasing for each version in that year. + ) +SAX.elementDecl(date_of_creation, 3, ...) +SAX.comment( + The date the file was created in international format (YYYY-MM-DD). + ) +SAX.elementDecl(character, 4, ...) +SAX.elementDecl(literal, 3, ...) +SAX.comment( + The character itself in UTF8 coding. + ) +SAX.elementDecl(codepoint, 4, ...) +SAX.comment( + The codepoint element states the code of the character in the various + character set standards. + ) +SAX.elementDecl(cp_value, 3, ...) +SAX.comment( + The cp_value contains the codepoint of the character in a particular + standard. The standard will be identified in the cp_type attribute. + ) +SAX.attributeDecl(cp_value, cp_type, 1, 2, NULL, ...) +SAX.comment( + The cp_type attribute states the coding standard applying to the + element. The values assigned so far are: + jis208 - JIS X 0208-1997 - kuten coding (nn-nn) + jis212 - JIS X 0212-1990 - kuten coding (nn-nn) + jis213 - JIS X 0213-2000 - kuten coding (p-nn-nn) + ucs - Unicode 4.0 - hex coding (4 or 5 hexadecimal digits) + ) +SAX.elementDecl(radical, 4, ...) +SAX.elementDecl(rad_value, 3, ...) +SAX.comment( + The radical number, in the range 1 to 214. The particular + classification type is stated in the rad_type attribute. + ) +SAX.attributeDecl(rad_value, rad_type, 1, 2, NULL, ...) +SAX.comment( + The rad_type attribute states the type of radical classification. + classical - as recorded in the KangXi Zidian. + nelson - as used in the Nelson "Modern Japanese-English + Character Dictionary" (i.e. the Classic, not the New Nelson). + This will only be used where Nelson reclassified the kanji. + ) +SAX.elementDecl(misc, 4, ...) +SAX.elementDecl(grade, 3, ...) +SAX.comment( + The Jouyou Kanji grade level. 1 through 6 indicate the grade in which + the kanji is taught in Japanese schools. 8 indicates it is one of the + remaining Jouyou Kanji to be learned in junior high school, and 9 + indicates it is a Jinmeiyou (for use in names) kanji. [G] + ) +SAX.elementDecl(stroke_count, 3, ...) +SAX.comment( + The stroke count of the kanji, including the radical. If more than + one, the first is considered the accepted count, while subsequent ones + are common miscounts. (See Appendix E. of the KANJIDIC documentation + for some of the rules applied when counting strokes in some of the + radicals.) [S] + ) +SAX.elementDecl(variant, 3, ...) +SAX.comment( + A cross-reference code to another kanji, usually regarded as a variant. + The type of cross-reference is given in the var_type attribute. + ) +SAX.attributeDecl(variant, var_type, 1, 2, NULL, ...) +SAX.comment( + The var_type attribute indicates the type of variant code. The current + values are: + jis208 - in JIS X 0208 - kuten coding + jis212 - in JIS X 0212 - kuten coding + jis213 - in JIS X 0213 - kuten coding + deroo - De Roo number - numeric + njecd - Halpern NJECD index number - numeric + s_h - The Kanji Dictionary (Spahn & Hadamitzky) - descriptor + nelson - "Classic" Nelson - numeric + oneill - Japanese Names (O'Neill) - numeric + ) +SAX.elementDecl(freq, 3, ...) +SAX.comment( + A frequency-of-use ranking. The 2,500 most-used characters have a + ranking; those characters that lack this field are not ranked. The + frequency is a number from 1 to 2,500 that expresses the relative + frequency of occurrence of a character in modern Japanese. This is + based on a survey in newspapers, so it is biassed towards kanji + used in newspaper articles. The discrimination between the less + frequently used kanji is not strong. + ) +SAX.elementDecl(rad_name, 3, ...) +SAX.comment( + When the kanji is itself a radical and has a name, this element + contains the name (in hiragana.) [T2] + ) +SAX.elementDecl(dic_number, 4, ...) +SAX.comment( + This element contains the index numbers and similar unstructured + information such as page numbers in a number of published dictionaries, + and instructional books on kanji. + ) +SAX.elementDecl(dic_ref, 3, ...) +SAX.comment( + Each dic_ref contains an index number. The particular dictionary, + etc. is defined by the dr_type attribute. + ) +SAX.attributeDecl(dic_ref, dr_type, 1, 2, NULL, ...) +SAX.comment( + The dr_type defines the dictionary or reference book, etc. to which + dic_ref element applies. The initial allocation is: + nelson_c - "Modern Reader's Japanese-English Character Dictionary", + edited by Andrew Nelson (now published as the "Classic" + Nelson). + nelson_n - "The New Nelson Japanese-English Character Dictionary", + edited by John Haig. + halpern_njecd - "New Japanese-English Character Dictionary", + edited by Jack Halpern. + halpern_kkld - "Kanji Learners Dictionary" (Kodansha) edited by + Jack Halpern. + heisig - "Remembering The Kanji" by James Heisig. + gakken - "A New Dictionary of Kanji Usage" (Gakken) + oneill_names - "Japanese Names", by P.G. O'Neill. + oneill_kk - "Essential Kanji" by P.G. O'Neill. + moro - "Daikanwajiten" compiled by Morohashi. For some kanji two + additional attributes are used: m_vol: the volume of the + dictionary in which the kanji is found, and m_page: the page + number in the volume. + henshall - "A Guide To Remembering Japanese Characters" by + Kenneth G. Henshall. + sh_kk - "Kanji and Kana" by Spahn and Hadamitzky. + sakade - "A Guide To Reading and Writing Japanese" edited by + Florence Sakade. + henshall3 - "A Guide To Reading and Writing Japanese" 3rd + edition, edited by Henshall, Seeley and De Groot. + tutt_cards - Tuttle Kanji Cards, compiled by Alexander Kask. + crowley - "The Kanji Way to Japanese Language Power" by + Dale Crowley. + kanji_in_context - "Kanji in Context" by Nishiguchi and Kono. + busy_people - "Japanese For Busy People" vols I-III, published + by the AJLT. The codes are the volume.chapter. + kodansha_compact - the "Kodansha Compact Kanji Guide". + ) +SAX.attributeDecl(dic_ref, m_vol, 1, 3, NULL, ...) +SAX.comment( + See above under "moro". + ) +SAX.attributeDecl(dic_ref, m_page, 1, 3, NULL, ...) +SAX.comment( + See above under "moro". + ) +SAX.elementDecl(query_code, 4, ...) +SAX.comment( + These codes contain information relating to the glyph, and can be used + for finding a required kanji. The type of code is defined by the + qc_type attribute. + ) +SAX.elementDecl(q_code, 3, ...) +SAX.comment( + The q_code contains the actual query-code value, according to the + qc_type attribute. + ) +SAX.attributeDecl(q_code, qc_type, 1, 2, NULL, ...) +SAX.comment( + The q_code attribute defines the type of query code. The current values + are: + skip - Halpern's SKIP (System of Kanji Indexing by Patterns) + code. The format is n-nn-nn. See the KANJIDIC documentation + for a description of the code and restrictions on the + commercial use of this data. [P] + + sh_desc - the descriptor codes for The Kanji Dictionary (Tuttle + 1996) by Spahn and Hadamitzky. They are in the form nxnn.n, + e.g. 3k11.2, where the kanji has 3 strokes in the + identifying radical, it is radical "k" in the SH + classification system, there are 11 other strokes, and it is + the 2nd kanji in the 3k11 sequence. (I am very grateful to + Mark Spahn for providing the list of these descriptor codes + for the kanji in this file.) [I] + four_corner - the "Four Corner" code for the kanji. This is a code + invented by Wang Chen in 1928. See the KANJIDIC documentation + for an overview of the Four Corner System. [Q] + + deroo - the codes developed by the late Father Joseph De Roo, and + published in his book "2001 Kanji" (Bojinsha). Fr De Roo + gave his permission for these codes to be included. [DR] + misclass - a possible misclassification of the kanji according + to one of the code types. (See the "Z" codes in the KANJIDIC + documentation for more details.) + + ) +SAX.elementDecl(reading_meaning, 4, ...) +SAX.comment( + The readings for the kanji in several languages, and the meanings, also + in several languages. The readings and meanings are grouped to enable + the handling of the situation where the meaning is differentiated by + reading. [T1] + ) +SAX.elementDecl(nanori, 3, ...) +SAX.comment( + Japanese readings that are now only associated with names. + ) +SAX.elementDecl(rmgroup, 4, ...) +SAX.elementDecl(reading, 3, ...) +SAX.comment( + The reading element contains the reading or pronunciation + of the kanji. + ) +SAX.attributeDecl(reading, r_type, 1, 2, NULL, ...) +SAX.comment( + The r_type attribute defines the type of reading in the reading + element. The current values are: + pinyin - the modern PinYin romanization of the Chinese reading + of the kanji. The tones are represented by a concluding + digit. [Y] + korean_r - the romanized form of the Korean reading(s) of the + kanji. The readings are in the (Republic of Korea) Ministry + of Education style of romanization. [W] + korean_h - the Korean reading(s) of the kanji in hangul. + ja_on - the "on" Japanese reading of the kanji, in katakana. A + second attribute r_status, if present, will indicate with + a value of "jy" whether the reading is approved for a + "Jouyou kanji". + ja_kun - the "kun" Japanese reading of the kanji, in hiragana. + Where relevant the okurigana is also included separated by a + ".". Readings associated with prefixes and suffixes are + marked with a "-". A second attribute r_status, if present, + will indicate with a value of "jy" whether the reading is + approved for a "Jouyou kanji". + ) +SAX.attributeDecl(reading, r_status, 1, 3, NULL, ...) +SAX.comment( + See under ja_on and ja_kun above. + ) +SAX.elementDecl(meaning, 3, ...) +SAX.comment( + The meaning associated with the kanji. + ) +SAX.attributeDecl(meaning, m_lang, 1, 3, NULL, ...) +SAX.comment( + The m_lang attribute defines the target language of the meaning. It + will be coded using the two-letter language code from the ISO 639 + standard. When absent, the value "en" (i.e. English) is implied. [{}] + ) +SAX.externalSubset(kanjidic2, , ) +SAX.startElementNs(kanjidic2, NULL, NULL, 0, 0, 0) +SAX.characters( +, 1) +SAX.endElementNs(kanjidic2, NULL, NULL) +SAX.endDocument() diff --git a/result/isolat1 b/result/isolat1 new file mode 100644 index 0000000..1e5a059 --- /dev/null +++ b/result/isolat1 @@ -0,0 +1,2 @@ + + diff --git a/result/isolat1.rde b/result/isolat1.rde new file mode 100644 index 0000000..e289b2f --- /dev/null +++ b/result/isolat1.rde @@ -0,0 +1,3 @@ +0 1 très 0 0 +1 3 #text 0 1 là +0 15 très 0 0 diff --git a/result/isolat1.rdr b/result/isolat1.rdr new file mode 100644 index 0000000..e289b2f --- /dev/null +++ b/result/isolat1.rdr @@ -0,0 +1,3 @@ +0 1 très 0 0 +1 3 #text 0 1 là +0 15 très 0 0 diff --git a/result/isolat1.sax b/result/isolat1.sax new file mode 100644 index 0000000..bf2a6ee --- /dev/null +++ b/result/isolat1.sax @@ -0,0 +1,7 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(très) +SAX.characters(l, 1) +SAX.characters(à, 2) +SAX.endElement(très) +SAX.endDocument() diff --git a/result/isolat1.sax2 b/result/isolat1.sax2 new file mode 100644 index 0000000..b97920a --- /dev/null +++ b/result/isolat1.sax2 @@ -0,0 +1,7 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(très, NULL, NULL, 0, 0, 0) +SAX.characters(l, 1) +SAX.characters(à, 2) +SAX.endElementNs(très, NULL, NULL) +SAX.endDocument() diff --git a/result/isolat2 b/result/isolat2 new file mode 100644 index 0000000..8c290b9 --- /dev/null +++ b/result/isolat2 @@ -0,0 +1,107 @@ + + + + The following table displays the characters in ISO 8859 + Latin-1, which are printable and unlisted in the ascii + manual page. + + Oct Dec Hex Char Description + -------------------------------------------------------------------- + 240 160 A0 NO-BREAK SPACE + 241 161 A1 ¡ INVERTED EXCLAMATION MARK + 242 162 A2 ¢ CENT SIGN + 243 163 A3 £ POUND SIGN + 244 164 A4 ¤ CURRENCY SIGN + 245 165 A5 ¥ YEN SIGN + 246 166 A6 ¦ BROKEN BAR + 247 167 A7 § SECTION SIGN + 250 168 A8 ¨ DIAERESIS + 251 169 A9 © COPYRIGHT SIGN + 252 170 AA ª FEMININE ORDINAL INDICATOR + 253 171 AB « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + 254 172 AC ¬ NOT SIGN + 255 173 AD ­ SOFT HYPHEN + 256 174 AE ® REGISTERED SIGN + 257 175 AF ¯ MACRON + 260 176 B0 ° DEGREE SIGN + 261 177 B1 ± PLUS-MINUS SIGN + 262 178 B2 ² SUPERSCRIPT TWO + 263 179 B3 ³ SUPERSCRIPT THREE + 264 180 B4 ´ ACUTE ACCENT + 265 181 B5 µ MICRO SIGN + 266 182 B6 ¶ PILCROW SIGN + 267 183 B7 · MIDDLE DOT + 270 184 B8 ¸ CEDILLA + 271 185 B9 ¹ SUPERSCRIPT ONE + 272 186 BA º MASCULINE ORDINAL INDICATOR + 273 187 BB » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + 274 188 BC ¼ VULGAR FRACTION ONE QUARTER + 275 189 BD ½ VULGAR FRACTION ONE HALF + 276 190 BE ¾ VULGAR FRACTION THREE QUARTERS + 277 191 BF ¿ INVERTED QUESTION MARK + 300 192 C0 À LATIN CAPITAL LETTER A WITH GRAVE + 301 193 C1 Á LATIN CAPITAL LETTER A WITH ACUTE + 302 194 C2  LATIN CAPITAL LETTER A WITH CIRCUMFLEX + 303 195 C3 à LATIN CAPITAL LETTER A WITH TILDE + 304 196 C4 Ä LATIN CAPITAL LETTER A WITH DIAERESIS + 305 197 C5 Å LATIN CAPITAL LETTER A WITH RING ABOVE + 306 198 C6 Æ LATIN CAPITAL LETTER AE + 307 199 C7 Ç LATIN CAPITAL LETTER C WITH CEDILLA + 310 200 C8 È LATIN CAPITAL LETTER E WITH GRAVE + 311 201 C9 É LATIN CAPITAL LETTER E WITH ACUTE + 312 202 CA Ê LATIN CAPITAL LETTER E WITH CIRCUMFLEX + 313 203 CB Ë LATIN CAPITAL LETTER E WITH DIAERESIS + 314 204 CC Ì LATIN CAPITAL LETTER I WITH GRAVE + 315 205 CD Í LATIN CAPITAL LETTER I WITH ACUTE + 316 206 CE Î LATIN CAPITAL LETTER I WITH CIRCUMFLEX + 317 207 CF Ï LATIN CAPITAL LETTER I WITH DIAERESIS + 320 208 D0 Ð LATIN CAPITAL LETTER ETH + 321 209 D1 Ñ LATIN CAPITAL LETTER N WITH TILDE + 322 210 D2 Ò LATIN CAPITAL LETTER O WITH GRAVE + 323 211 D3 Ó LATIN CAPITAL LETTER O WITH ACUTE + 324 212 D4 Ô LATIN CAPITAL LETTER O WITH CIRCUMFLEX + 325 213 D5 Õ LATIN CAPITAL LETTER O WITH TILDE + 326 214 D6 Ö LATIN CAPITAL LETTER O WITH DIAERESIS + 327 215 D7 × MULTIPLICATION SIGN + 330 216 D8 Ø LATIN CAPITAL LETTER O WITH STROKE + 331 217 D9 Ù LATIN CAPITAL LETTER U WITH GRAVE + 332 218 DA Ú LATIN CAPITAL LETTER U WITH ACUTE + 333 219 DB Û LATIN CAPITAL LETTER U WITH CIRCUMFLEX + 334 220 DC Ü LATIN CAPITAL LETTER U WITH DIAERESIS + 335 221 DD Ý LATIN CAPITAL LETTER Y WITH ACUTE + 336 222 DE Þ LATIN CAPITAL LETTER THORN + 337 223 DF ß LATIN SMALL LETTER SHARP S + 340 224 E0 à LATIN SMALL LETTER A WITH GRAVE + 341 225 E1 á LATIN SMALL LETTER A WITH ACUTE + 342 226 E2 â LATIN SMALL LETTER A WITH CIRCUMFLEX + 343 227 E3 ã LATIN SMALL LETTER A WITH TILDE + 344 228 E4 ä LATIN SMALL LETTER A WITH DIAERESIS + 345 229 E5 å LATIN SMALL LETTER A WITH RING ABOVE + 346 230 E6 æ LATIN SMALL LETTER AE + 347 231 E7 ç LATIN SMALL LETTER C WITH CEDILLA + 350 232 E8 è LATIN SMALL LETTER E WITH GRAVE + 351 233 E9 é LATIN SMALL LETTER E WITH ACUTE + 352 234 EA ê LATIN SMALL LETTER E WITH CIRCUMFLEX + 353 235 EB ë LATIN SMALL LETTER E WITH DIAERESIS + 354 236 EC ì LATIN SMALL LETTER I WITH GRAVE + 355 237 ED í LATIN SMALL LETTER I WITH ACUTE + 356 238 EE î LATIN SMALL LETTER I WITH CIRCUMFLEX + 357 239 EF ï LATIN SMALL LETTER I WITH DIAERESIS + 360 240 F0 ð LATIN SMALL LETTER ETH + 361 241 F1 ñ LATIN SMALL LETTER N WITH TILDE + 362 242 F2 ò LATIN SMALL LETTER O WITH GRAVE + 363 243 F3 ó LATIN SMALL LETTER O WITH ACUTE + 364 244 F4 ô LATIN SMALL LETTER O WITH CIRCUMFLEX + 365 245 F5 õ LATIN SMALL LETTER O WITH TILDE + 366 246 F6 ö LATIN SMALL LETTER O WITH DIAERESIS + 367 247 F7 ÷ DIVISION SIGN + 370 248 F8 ø LATIN SMALL LETTER O WITH STROKE + 371 249 F9 ù LATIN SMALL LETTER U WITH GRAVE + 372 250 FA ú LATIN SMALL LETTER U WITH ACUTE + 373 251 FB û LATIN SMALL LETTER U WITH CIRCUMFLEX + 374 252 FC ü LATIN SMALL LETTER U WITH DIAERESIS + 375 253 FD ý LATIN SMALL LETTER Y WITH ACUTE + 376 254 FE þ LATIN SMALL LETTER THORN + 377 255 FF ÿ LATIN SMALL LETTER Y WITH DIAERESIS + + diff --git a/result/isolat2.rde b/result/isolat2.rde new file mode 100644 index 0000000..524cb3e --- /dev/null +++ b/result/isolat2.rde @@ -0,0 +1,108 @@ +0 1 tst 0 0 +1 3 #text 0 1 + + The following table displays the characters in ISO 8859 + Latin-1, which are printable and unlisted in the ascii + manual page. + + Oct Dec Hex Char Description + -------------------------------------------------------------------- + 240 160 A0 NO-BREAK SPACE + 241 161 A1 ¡ INVERTED EXCLAMATION MARK + 242 162 A2 ¢ CENT SIGN + 243 163 A3 £ POUND SIGN + 244 164 A4 ¤ CURRENCY SIGN + 245 165 A5 Â¥ YEN SIGN + 246 166 A6 ¦ BROKEN BAR + 247 167 A7 § SECTION SIGN + 250 168 A8 ¨ DIAERESIS + 251 169 A9 © COPYRIGHT SIGN + 252 170 AA ª FEMININE ORDINAL INDICATOR + 253 171 AB « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + 254 172 AC ¬ NOT SIGN + 255 173 AD ­ SOFT HYPHEN + 256 174 AE ® REGISTERED SIGN + 257 175 AF ¯ MACRON + 260 176 B0 ° DEGREE SIGN + 261 177 B1 ± PLUS-MINUS SIGN + 262 178 B2 ² SUPERSCRIPT TWO + 263 179 B3 ³ SUPERSCRIPT THREE + 264 180 B4 ´ ACUTE ACCENT + 265 181 B5 µ MICRO SIGN + 266 182 B6 ¶ PILCROW SIGN + 267 183 B7 · MIDDLE DOT + 270 184 B8 ¸ CEDILLA + 271 185 B9 ¹ SUPERSCRIPT ONE + 272 186 BA º MASCULINE ORDINAL INDICATOR + 273 187 BB » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + 274 188 BC ¼ VULGAR FRACTION ONE QUARTER + 275 189 BD ½ VULGAR FRACTION ONE HALF + 276 190 BE ¾ VULGAR FRACTION THREE QUARTERS + 277 191 BF ¿ INVERTED QUESTION MARK + 300 192 C0 À LATIN CAPITAL LETTER A WITH GRAVE + 301 193 C1 à LATIN CAPITAL LETTER A WITH ACUTE + 302 194 C2  LATIN CAPITAL LETTER A WITH CIRCUMFLEX + 303 195 C3 à LATIN CAPITAL LETTER A WITH TILDE + 304 196 C4 Ä LATIN CAPITAL LETTER A WITH DIAERESIS + 305 197 C5 Ã… LATIN CAPITAL LETTER A WITH RING ABOVE + 306 198 C6 Æ LATIN CAPITAL LETTER AE + 307 199 C7 Ç LATIN CAPITAL LETTER C WITH CEDILLA + 310 200 C8 È LATIN CAPITAL LETTER E WITH GRAVE + 311 201 C9 É LATIN CAPITAL LETTER E WITH ACUTE + 312 202 CA Ê LATIN CAPITAL LETTER E WITH CIRCUMFLEX + 313 203 CB Ë LATIN CAPITAL LETTER E WITH DIAERESIS + 314 204 CC ÃŒ LATIN CAPITAL LETTER I WITH GRAVE + 315 205 CD à LATIN CAPITAL LETTER I WITH ACUTE + 316 206 CE ÃŽ LATIN CAPITAL LETTER I WITH CIRCUMFLEX + 317 207 CF à LATIN CAPITAL LETTER I WITH DIAERESIS + 320 208 D0 à LATIN CAPITAL LETTER ETH + 321 209 D1 Ñ LATIN CAPITAL LETTER N WITH TILDE + 322 210 D2 Ã’ LATIN CAPITAL LETTER O WITH GRAVE + 323 211 D3 Ó LATIN CAPITAL LETTER O WITH ACUTE + 324 212 D4 Ô LATIN CAPITAL LETTER O WITH CIRCUMFLEX + 325 213 D5 Õ LATIN CAPITAL LETTER O WITH TILDE + 326 214 D6 Ö LATIN CAPITAL LETTER O WITH DIAERESIS + 327 215 D7 × MULTIPLICATION SIGN + 330 216 D8 Ø LATIN CAPITAL LETTER O WITH STROKE + 331 217 D9 Ù LATIN CAPITAL LETTER U WITH GRAVE + 332 218 DA Ú LATIN CAPITAL LETTER U WITH ACUTE + 333 219 DB Û LATIN CAPITAL LETTER U WITH CIRCUMFLEX + 334 220 DC Ü LATIN CAPITAL LETTER U WITH DIAERESIS + 335 221 DD à LATIN CAPITAL LETTER Y WITH ACUTE + 336 222 DE Þ LATIN CAPITAL LETTER THORN + 337 223 DF ß LATIN SMALL LETTER SHARP S + 340 224 E0 à LATIN SMALL LETTER A WITH GRAVE + 341 225 E1 á LATIN SMALL LETTER A WITH ACUTE + 342 226 E2 â LATIN SMALL LETTER A WITH CIRCUMFLEX + 343 227 E3 ã LATIN SMALL LETTER A WITH TILDE + 344 228 E4 ä LATIN SMALL LETTER A WITH DIAERESIS + 345 229 E5 Ã¥ LATIN SMALL LETTER A WITH RING ABOVE + 346 230 E6 æ LATIN SMALL LETTER AE + 347 231 E7 ç LATIN SMALL LETTER C WITH CEDILLA + 350 232 E8 è LATIN SMALL LETTER E WITH GRAVE + 351 233 E9 é LATIN SMALL LETTER E WITH ACUTE + 352 234 EA ê LATIN SMALL LETTER E WITH CIRCUMFLEX + 353 235 EB ë LATIN SMALL LETTER E WITH DIAERESIS + 354 236 EC ì LATIN SMALL LETTER I WITH GRAVE + 355 237 ED í LATIN SMALL LETTER I WITH ACUTE + 356 238 EE î LATIN SMALL LETTER I WITH CIRCUMFLEX + 357 239 EF ï LATIN SMALL LETTER I WITH DIAERESIS + 360 240 F0 ð LATIN SMALL LETTER ETH + 361 241 F1 ñ LATIN SMALL LETTER N WITH TILDE + 362 242 F2 ò LATIN SMALL LETTER O WITH GRAVE + 363 243 F3 ó LATIN SMALL LETTER O WITH ACUTE + 364 244 F4 ô LATIN SMALL LETTER O WITH CIRCUMFLEX + 365 245 F5 õ LATIN SMALL LETTER O WITH TILDE + 366 246 F6 ö LATIN SMALL LETTER O WITH DIAERESIS + 367 247 F7 ÷ DIVISION SIGN + 370 248 F8 ø LATIN SMALL LETTER O WITH STROKE + 371 249 F9 ù LATIN SMALL LETTER U WITH GRAVE + 372 250 FA ú LATIN SMALL LETTER U WITH ACUTE + 373 251 FB û LATIN SMALL LETTER U WITH CIRCUMFLEX + 374 252 FC ü LATIN SMALL LETTER U WITH DIAERESIS + 375 253 FD ý LATIN SMALL LETTER Y WITH ACUTE + 376 254 FE þ LATIN SMALL LETTER THORN + 377 255 FF ÿ LATIN SMALL LETTER Y WITH DIAERESIS + + +0 15 tst 0 0 diff --git a/result/isolat2.rdr b/result/isolat2.rdr new file mode 100644 index 0000000..524cb3e --- /dev/null +++ b/result/isolat2.rdr @@ -0,0 +1,108 @@ +0 1 tst 0 0 +1 3 #text 0 1 + + The following table displays the characters in ISO 8859 + Latin-1, which are printable and unlisted in the ascii + manual page. + + Oct Dec Hex Char Description + -------------------------------------------------------------------- + 240 160 A0 NO-BREAK SPACE + 241 161 A1 ¡ INVERTED EXCLAMATION MARK + 242 162 A2 ¢ CENT SIGN + 243 163 A3 £ POUND SIGN + 244 164 A4 ¤ CURRENCY SIGN + 245 165 A5 Â¥ YEN SIGN + 246 166 A6 ¦ BROKEN BAR + 247 167 A7 § SECTION SIGN + 250 168 A8 ¨ DIAERESIS + 251 169 A9 © COPYRIGHT SIGN + 252 170 AA ª FEMININE ORDINAL INDICATOR + 253 171 AB « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + 254 172 AC ¬ NOT SIGN + 255 173 AD ­ SOFT HYPHEN + 256 174 AE ® REGISTERED SIGN + 257 175 AF ¯ MACRON + 260 176 B0 ° DEGREE SIGN + 261 177 B1 ± PLUS-MINUS SIGN + 262 178 B2 ² SUPERSCRIPT TWO + 263 179 B3 ³ SUPERSCRIPT THREE + 264 180 B4 ´ ACUTE ACCENT + 265 181 B5 µ MICRO SIGN + 266 182 B6 ¶ PILCROW SIGN + 267 183 B7 · MIDDLE DOT + 270 184 B8 ¸ CEDILLA + 271 185 B9 ¹ SUPERSCRIPT ONE + 272 186 BA º MASCULINE ORDINAL INDICATOR + 273 187 BB » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + 274 188 BC ¼ VULGAR FRACTION ONE QUARTER + 275 189 BD ½ VULGAR FRACTION ONE HALF + 276 190 BE ¾ VULGAR FRACTION THREE QUARTERS + 277 191 BF ¿ INVERTED QUESTION MARK + 300 192 C0 À LATIN CAPITAL LETTER A WITH GRAVE + 301 193 C1 à LATIN CAPITAL LETTER A WITH ACUTE + 302 194 C2  LATIN CAPITAL LETTER A WITH CIRCUMFLEX + 303 195 C3 à LATIN CAPITAL LETTER A WITH TILDE + 304 196 C4 Ä LATIN CAPITAL LETTER A WITH DIAERESIS + 305 197 C5 Ã… LATIN CAPITAL LETTER A WITH RING ABOVE + 306 198 C6 Æ LATIN CAPITAL LETTER AE + 307 199 C7 Ç LATIN CAPITAL LETTER C WITH CEDILLA + 310 200 C8 È LATIN CAPITAL LETTER E WITH GRAVE + 311 201 C9 É LATIN CAPITAL LETTER E WITH ACUTE + 312 202 CA Ê LATIN CAPITAL LETTER E WITH CIRCUMFLEX + 313 203 CB Ë LATIN CAPITAL LETTER E WITH DIAERESIS + 314 204 CC ÃŒ LATIN CAPITAL LETTER I WITH GRAVE + 315 205 CD à LATIN CAPITAL LETTER I WITH ACUTE + 316 206 CE ÃŽ LATIN CAPITAL LETTER I WITH CIRCUMFLEX + 317 207 CF à LATIN CAPITAL LETTER I WITH DIAERESIS + 320 208 D0 à LATIN CAPITAL LETTER ETH + 321 209 D1 Ñ LATIN CAPITAL LETTER N WITH TILDE + 322 210 D2 Ã’ LATIN CAPITAL LETTER O WITH GRAVE + 323 211 D3 Ó LATIN CAPITAL LETTER O WITH ACUTE + 324 212 D4 Ô LATIN CAPITAL LETTER O WITH CIRCUMFLEX + 325 213 D5 Õ LATIN CAPITAL LETTER O WITH TILDE + 326 214 D6 Ö LATIN CAPITAL LETTER O WITH DIAERESIS + 327 215 D7 × MULTIPLICATION SIGN + 330 216 D8 Ø LATIN CAPITAL LETTER O WITH STROKE + 331 217 D9 Ù LATIN CAPITAL LETTER U WITH GRAVE + 332 218 DA Ú LATIN CAPITAL LETTER U WITH ACUTE + 333 219 DB Û LATIN CAPITAL LETTER U WITH CIRCUMFLEX + 334 220 DC Ü LATIN CAPITAL LETTER U WITH DIAERESIS + 335 221 DD à LATIN CAPITAL LETTER Y WITH ACUTE + 336 222 DE Þ LATIN CAPITAL LETTER THORN + 337 223 DF ß LATIN SMALL LETTER SHARP S + 340 224 E0 à LATIN SMALL LETTER A WITH GRAVE + 341 225 E1 á LATIN SMALL LETTER A WITH ACUTE + 342 226 E2 â LATIN SMALL LETTER A WITH CIRCUMFLEX + 343 227 E3 ã LATIN SMALL LETTER A WITH TILDE + 344 228 E4 ä LATIN SMALL LETTER A WITH DIAERESIS + 345 229 E5 Ã¥ LATIN SMALL LETTER A WITH RING ABOVE + 346 230 E6 æ LATIN SMALL LETTER AE + 347 231 E7 ç LATIN SMALL LETTER C WITH CEDILLA + 350 232 E8 è LATIN SMALL LETTER E WITH GRAVE + 351 233 E9 é LATIN SMALL LETTER E WITH ACUTE + 352 234 EA ê LATIN SMALL LETTER E WITH CIRCUMFLEX + 353 235 EB ë LATIN SMALL LETTER E WITH DIAERESIS + 354 236 EC ì LATIN SMALL LETTER I WITH GRAVE + 355 237 ED í LATIN SMALL LETTER I WITH ACUTE + 356 238 EE î LATIN SMALL LETTER I WITH CIRCUMFLEX + 357 239 EF ï LATIN SMALL LETTER I WITH DIAERESIS + 360 240 F0 ð LATIN SMALL LETTER ETH + 361 241 F1 ñ LATIN SMALL LETTER N WITH TILDE + 362 242 F2 ò LATIN SMALL LETTER O WITH GRAVE + 363 243 F3 ó LATIN SMALL LETTER O WITH ACUTE + 364 244 F4 ô LATIN SMALL LETTER O WITH CIRCUMFLEX + 365 245 F5 õ LATIN SMALL LETTER O WITH TILDE + 366 246 F6 ö LATIN SMALL LETTER O WITH DIAERESIS + 367 247 F7 ÷ DIVISION SIGN + 370 248 F8 ø LATIN SMALL LETTER O WITH STROKE + 371 249 F9 ù LATIN SMALL LETTER U WITH GRAVE + 372 250 FA ú LATIN SMALL LETTER U WITH ACUTE + 373 251 FB û LATIN SMALL LETTER U WITH CIRCUMFLEX + 374 252 FC ü LATIN SMALL LETTER U WITH DIAERESIS + 375 253 FD ý LATIN SMALL LETTER Y WITH ACUTE + 376 254 FE þ LATIN SMALL LETTER THORN + 377 255 FF ÿ LATIN SMALL LETTER Y WITH DIAERESIS + + +0 15 tst 0 0 diff --git a/result/isolat2.sax b/result/isolat2.sax new file mode 100644 index 0000000..737c948 --- /dev/null +++ b/result/isolat2.sax @@ -0,0 +1,35 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(tst) +SAX.characters( + + The following table d, 345) +SAX.characters(¡ INVERTED EXCLAMATION MA, 300) +SAX.characters( 250 168 A8 ¨ , 300) +SAX.characters(SOFT HYPHEN + 256 174 , 300) +SAX.characters( 264 180 B4 ´ AC, 300) +SAX.characters(SCULINE ORDINAL INDICATOR + , 300) +SAX.characters(1 BF ¿ INVERTED QUE, 300) +SAX.characters( A WITH TILDE + 304 196, 300) +SAX.characters( C8 È LATIN CAPITAL , 300) +SAX.characters(APITAL LETTER I WITH GRAVE + , 300) +SAX.characters( 321 209 D1 Ñ LA, 300) +SAX.characters( LATIN CAPITAL LETTER O WITH T, 300) +SAX.characters( 332 218 DA Ú LAT, 300) +SAX.characters( LATIN CAPITAL LETTER THORN, 300) +SAX.characters(3 227 E3 ã LATIN , 300) +SAX.characters(R C WITH CEDILLA + 350 , 300) +SAX.characters(36 EC ì LATIN SMALL, 300) +SAX.characters(LETTER ETH + 361 241 , 300) +SAX.characters( õ LATIN SMALL LETTER O , 300) +SAX.characters( 250 FA ú LATIN SMA, 300) +SAX.characters(L LETTER THORN + 377 25, 85) +SAX.endElement(tst) +SAX.endDocument() diff --git a/result/isolat2.sax2 b/result/isolat2.sax2 new file mode 100644 index 0000000..0ac3f56 --- /dev/null +++ b/result/isolat2.sax2 @@ -0,0 +1,35 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(tst, NULL, NULL, 0, 0, 0) +SAX.characters( + + The following table d, 345) +SAX.characters(¡ INVERTED EXCLAMATION MA, 300) +SAX.characters( 250 168 A8 ¨ , 300) +SAX.characters(SOFT HYPHEN + 256 174 , 300) +SAX.characters( 264 180 B4 ´ AC, 300) +SAX.characters(SCULINE ORDINAL INDICATOR + , 300) +SAX.characters(1 BF ¿ INVERTED QUE, 300) +SAX.characters( A WITH TILDE + 304 196, 300) +SAX.characters( C8 È LATIN CAPITAL , 300) +SAX.characters(APITAL LETTER I WITH GRAVE + , 300) +SAX.characters( 321 209 D1 Ñ LA, 300) +SAX.characters( LATIN CAPITAL LETTER O WITH T, 300) +SAX.characters( 332 218 DA Ú LAT, 300) +SAX.characters( LATIN CAPITAL LETTER THORN, 300) +SAX.characters(3 227 E3 ã LATIN , 300) +SAX.characters(R C WITH CEDILLA + 350 , 300) +SAX.characters(36 EC ì LATIN SMALL, 300) +SAX.characters(LETTER ETH + 361 241 , 300) +SAX.characters( õ LATIN SMALL LETTER O , 300) +SAX.characters( 250 FA ú LATIN SMA, 300) +SAX.characters(L LETTER THORN + 377 25, 85) +SAX.endElementNs(tst, NULL, NULL) +SAX.endDocument() diff --git a/result/isolat3 b/result/isolat3 new file mode 100644 index 0000000..1abf7b4 --- /dev/null +++ b/result/isolat3 @@ -0,0 +1,10 @@ + + + + +]]> +then the replacement text for the entity "book" is: +La Peste: Albert Camus, +© 1947 Éditions Gallimard. &rights; + diff --git a/result/isolat3.rde b/result/isolat3.rde new file mode 100644 index 0000000..1067c0f --- /dev/null +++ b/result/isolat3.rde @@ -0,0 +1,23 @@ +0 1 rec 0 0 +1 14 #text 0 1 + +1 1 eg 0 0 +2 4 #cdata-section 0 1 + + +1 15 eg 0 0 +1 3 #text 0 1 +then the replacement text for the entity " +1 1 code 0 0 +2 3 #text 0 1 book +1 15 code 0 0 +1 3 #text 0 1 " is: + +1 1 eg 0 0 +2 3 #text 0 1 La Peste: Albert Camus, +© 1947 Éditions Gallimard. &rights; +1 15 eg 0 0 +1 14 #text 0 1 + +0 15 rec 0 0 diff --git a/result/isolat3.rdr b/result/isolat3.rdr new file mode 100644 index 0000000..1067c0f --- /dev/null +++ b/result/isolat3.rdr @@ -0,0 +1,23 @@ +0 1 rec 0 0 +1 14 #text 0 1 + +1 1 eg 0 0 +2 4 #cdata-section 0 1 + + +1 15 eg 0 0 +1 3 #text 0 1 +then the replacement text for the entity " +1 1 code 0 0 +2 3 #text 0 1 book +1 15 code 0 0 +1 3 #text 0 1 " is: + +1 1 eg 0 0 +2 3 #text 0 1 La Peste: Albert Camus, +© 1947 Éditions Gallimard. &rights; +1 15 eg 0 0 +1 14 #text 0 1 + +0 15 rec 0 0 diff --git a/result/isolat3.sax b/result/isolat3.sax new file mode 100644 index 0000000..7c40e6e --- /dev/null +++ b/result/isolat3.sax @@ -0,0 +1,29 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(rec) +SAX.characters( +, 1) +SAX.startElement(eg) +SAX.pcdata( + diff --git a/result/namespaces/err_0.xml.err b/result/namespaces/err_0.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/namespaces/err_1.xml b/result/namespaces/err_1.xml new file mode 100644 index 0000000..a4aa8ff --- /dev/null +++ b/result/namespaces/err_1.xml @@ -0,0 +1,2 @@ + + diff --git a/result/namespaces/err_1.xml.err b/result/namespaces/err_1.xml.err new file mode 100644 index 0000000..77466cf --- /dev/null +++ b/result/namespaces/err_1.xml.err @@ -0,0 +1,3 @@ +./test/namespaces/err_1.xml:1: namespace error : Failed to parse QName 'xmlns:' + + ^ diff --git a/result/namespaces/err_10.xml b/result/namespaces/err_10.xml new file mode 100644 index 0000000..e69de29 diff --git a/result/namespaces/err_10.xml.err b/result/namespaces/err_10.xml.err new file mode 100644 index 0000000..a4a4b55 --- /dev/null +++ b/result/namespaces/err_10.xml.err @@ -0,0 +1,3 @@ +./test/namespaces/err_10.xml:1: parser error : Attribute xmlns redefined + + ^ diff --git a/result/namespaces/err_11.xml b/result/namespaces/err_11.xml new file mode 100644 index 0000000..e69de29 diff --git a/result/namespaces/err_11.xml.err b/result/namespaces/err_11.xml.err new file mode 100644 index 0000000..619bc00 --- /dev/null +++ b/result/namespaces/err_11.xml.err @@ -0,0 +1,3 @@ +./test/namespaces/err_11.xml:1: parser error : Attribute xmlns:a redefined + + ^ diff --git a/result/namespaces/err_2.xml b/result/namespaces/err_2.xml new file mode 100644 index 0000000..73e727b --- /dev/null +++ b/result/namespaces/err_2.xml @@ -0,0 +1,2 @@ + +<:/> diff --git a/result/namespaces/err_2.xml.err b/result/namespaces/err_2.xml.err new file mode 100644 index 0000000..031bcff --- /dev/null +++ b/result/namespaces/err_2.xml.err @@ -0,0 +1,3 @@ +./test/namespaces/err_2.xml:1: namespace error : Failed to parse QName ':' +<:/> + ^ diff --git a/result/namespaces/err_3.xml b/result/namespaces/err_3.xml new file mode 100644 index 0000000..ee51834 --- /dev/null +++ b/result/namespaces/err_3.xml @@ -0,0 +1,2 @@ + +<:foo/> diff --git a/result/namespaces/err_3.xml.err b/result/namespaces/err_3.xml.err new file mode 100644 index 0000000..a18fe9f --- /dev/null +++ b/result/namespaces/err_3.xml.err @@ -0,0 +1,3 @@ +./test/namespaces/err_3.xml:1: namespace error : Failed to parse QName ':foo' +<:foo/> + ^ diff --git a/result/namespaces/err_4.xml b/result/namespaces/err_4.xml new file mode 100644 index 0000000..d0d664e --- /dev/null +++ b/result/namespaces/err_4.xml @@ -0,0 +1,2 @@ + + diff --git a/result/namespaces/err_4.xml.err b/result/namespaces/err_4.xml.err new file mode 100644 index 0000000..c9b0c02 --- /dev/null +++ b/result/namespaces/err_4.xml.err @@ -0,0 +1,3 @@ +./test/namespaces/err_4.xml:1: namespace error : Failed to parse QName 'f:' + + ^ diff --git a/result/namespaces/err_5.xml b/result/namespaces/err_5.xml new file mode 100644 index 0000000..7d8d0b2 --- /dev/null +++ b/result/namespaces/err_5.xml @@ -0,0 +1,2 @@ + + diff --git a/result/namespaces/err_5.xml.err b/result/namespaces/err_5.xml.err new file mode 100644 index 0000000..432a2e1 --- /dev/null +++ b/result/namespaces/err_5.xml.err @@ -0,0 +1,3 @@ +./test/namespaces/err_5.xml:1: namespace error : Failed to parse QName 'f:a:' + + ^ diff --git a/result/namespaces/err_6.xml b/result/namespaces/err_6.xml new file mode 100644 index 0000000..daa2a58 --- /dev/null +++ b/result/namespaces/err_6.xml @@ -0,0 +1,2 @@ + + diff --git a/result/namespaces/err_6.xml.err b/result/namespaces/err_6.xml.err new file mode 100644 index 0000000..47c14fd --- /dev/null +++ b/result/namespaces/err_6.xml.err @@ -0,0 +1,3 @@ +./test/namespaces/err_6.xml:1: namespace error : Failed to parse QName 'f:a:' + + ^ diff --git a/result/namespaces/err_7.xml b/result/namespaces/err_7.xml new file mode 100644 index 0000000..4b4c662 --- /dev/null +++ b/result/namespaces/err_7.xml @@ -0,0 +1,2 @@ + + diff --git a/result/namespaces/err_7.xml.err b/result/namespaces/err_7.xml.err new file mode 100644 index 0000000..e7ff95b --- /dev/null +++ b/result/namespaces/err_7.xml.err @@ -0,0 +1,3 @@ +./test/namespaces/err_7.xml:1: namespace error : Namespace prefix f on foo is not defined + + ^ diff --git a/result/namespaces/err_8.xml b/result/namespaces/err_8.xml new file mode 100644 index 0000000..5608312 --- /dev/null +++ b/result/namespaces/err_8.xml @@ -0,0 +1,2 @@ + + diff --git a/result/namespaces/err_8.xml.err b/result/namespaces/err_8.xml.err new file mode 100644 index 0000000..e6735d7 --- /dev/null +++ b/result/namespaces/err_8.xml.err @@ -0,0 +1,3 @@ +./test/namespaces/err_8.xml:1: namespace error : xml namespace prefix mapped to wrong URI + + ^ diff --git a/result/namespaces/err_9.xml b/result/namespaces/err_9.xml new file mode 100644 index 0000000..0407dff --- /dev/null +++ b/result/namespaces/err_9.xml @@ -0,0 +1,2 @@ + + diff --git a/result/namespaces/err_9.xml.err b/result/namespaces/err_9.xml.err new file mode 100644 index 0000000..d1837a1 --- /dev/null +++ b/result/namespaces/err_9.xml.err @@ -0,0 +1,3 @@ +./test/namespaces/err_9.xml:2: namespace error : Namespaced Attribute err in 'http://example.com/' redefined + a:err="1" b:err="2"/> + ^ diff --git a/result/noent/att1 b/result/noent/att1 new file mode 100644 index 0000000..00aa6be --- /dev/null +++ b/result/noent/att1 @@ -0,0 +1,2 @@ + + diff --git a/result/noent/att10 b/result/noent/att10 new file mode 100644 index 0000000..07f0096 --- /dev/null +++ b/result/noent/att10 @@ -0,0 +1,18 @@ + + + + + + + + +]> + + + + + + + + diff --git a/result/noent/att11 b/result/noent/att11 new file mode 100644 index 0000000..3646e62 --- /dev/null +++ b/result/noent/att11 @@ -0,0 +1,9 @@ + + + + + + +]> + diff --git a/result/noent/att2 b/result/noent/att2 new file mode 100644 index 0000000..28989a2 --- /dev/null +++ b/result/noent/att2 @@ -0,0 +1,2 @@ + + diff --git a/result/noent/att3 b/result/noent/att3 new file mode 100644 index 0000000..3f3ac5c --- /dev/null +++ b/result/noent/att3 @@ -0,0 +1,2 @@ + + diff --git a/result/noent/att4 b/result/noent/att4 new file mode 100644 index 0000000..882cea7 --- /dev/null +++ b/result/noent/att4 @@ -0,0 +1,9264 @@ + + + + + + + diff --git a/result/noent/att5 b/result/noent/att5 new file mode 100644 index 0000000..8768e36 --- /dev/null +++ b/result/noent/att5 @@ -0,0 +1,40 @@ + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/result/noent/att6 b/result/noent/att6 new file mode 100644 index 0000000..338e6b7 --- /dev/null +++ b/result/noent/att6 @@ -0,0 +1,6 @@ + + + + pvalue->ReferencedOrder.SellersOrderID + + diff --git a/result/noent/att7 b/result/noent/att7 new file mode 100644 index 0000000..a58a04d --- /dev/null +++ b/result/noent/att7 @@ -0,0 +1,11 @@ + + + + +"> +]> + + + + diff --git a/result/noent/att8 b/result/noent/att8 new file mode 100644 index 0000000..1d807a2 --- /dev/null +++ b/result/noent/att8 @@ -0,0 +1,2 @@ + +/bsk:DocPart[@docId='20040308152601345236' and @docPartNo=1]XQL Request processing XQL Request processed diff --git a/result/noent/att9 b/result/noent/att9 new file mode 100644 index 0000000..e4982a2 --- /dev/null +++ b/result/noent/att9 @@ -0,0 +1,6 @@ + + + +]> + diff --git a/result/noent/attrib.xml b/result/noent/attrib.xml new file mode 100644 index 0000000..89a1e57 --- /dev/null +++ b/result/noent/attrib.xml @@ -0,0 +1,2 @@ + + diff --git a/result/noent/badcomment.xml b/result/noent/badcomment.xml new file mode 100644 index 0000000..6b13c11 --- /dev/null +++ b/result/noent/badcomment.xml @@ -0,0 +1,17 @@ + + +Char* ']]>' Char*)) +']]>' +CDATA sections +| '<!DOCTYPE' +(Char - ('[' | ']'))+ +('[' +simpleDTD* +']')? '>' +doc type declaration +simpleDTD +'<!&como;' +(Char* - +(Char* '&comc;' Char*)) +'&comc;>'--> + diff --git a/result/noent/bigentname.xml b/result/noent/bigentname.xml new file mode 100644 index 0000000..7e7d9d0 --- /dev/null +++ b/result/noent/bigentname.xml @@ -0,0 +1,6 @@ + + + +]> +He said "Yes" diff --git a/result/noent/bigname.xml b/result/noent/bigname.xml new file mode 100644 index 0000000..885fd7c --- /dev/null +++ b/result/noent/bigname.xml @@ -0,0 +1,2 @@ + + diff --git a/result/noent/bigname2.xml b/result/noent/bigname2.xml new file mode 100644 index 0000000..a48c359 --- /dev/null +++ b/result/noent/bigname2.xml @@ -0,0 +1,2 @@ + + diff --git a/result/noent/cdata b/result/noent/cdata new file mode 100644 index 0000000..180ea46 --- /dev/null +++ b/result/noent/cdata @@ -0,0 +1,4 @@ + + +Hello, world!
      ]]> +
      diff --git a/result/noent/cdata2 b/result/noent/cdata2 new file mode 100644 index 0000000..b4db791 --- /dev/null +++ b/result/noent/cdata2 @@ -0,0 +1,6 @@ + + + ]> + diff --git a/result/noent/comment.xml b/result/noent/comment.xml new file mode 100644 index 0000000..98c5eff --- /dev/null +++ b/result/noent/comment.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/result/noent/comment2.xml b/result/noent/comment2.xml new file mode 100644 index 0000000..9e122ec --- /dev/null +++ b/result/noent/comment2.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/result/noent/comment3.xml b/result/noent/comment3.xml new file mode 100644 index 0000000..395f67c --- /dev/null +++ b/result/noent/comment3.xml @@ -0,0 +1,164 @@ + + + diff --git a/result/noent/comment4.xml b/result/noent/comment4.xml new file mode 100644 index 0000000..93282d8 --- /dev/null +++ b/result/noent/comment4.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/result/noent/comment5.xml b/result/noent/comment5.xml new file mode 100644 index 0000000..398f974 --- /dev/null +++ b/result/noent/comment5.xml @@ -0,0 +1,9 @@ + + + diff --git a/result/noent/comment6.xml b/result/noent/comment6.xml new file mode 100644 index 0000000..3e6074e --- /dev/null +++ b/result/noent/comment6.xml @@ -0,0 +1,14 @@ + + + +]> + diff --git a/result/noent/dav1 b/result/noent/dav1 new file mode 100644 index 0000000..cbfd4c4 --- /dev/null +++ b/result/noent/dav1 @@ -0,0 +1,25 @@ + + + + + + Box type A + + + J.J. Dingleheimerschmidt + + + HTTP/1.1 200 OK + + + + + + + HTTP/1.1 403 Forbidden + The user does not have access to the DingALing property. + + + There has been an access violation error. + + diff --git a/result/noent/dav10 b/result/noent/dav10 new file mode 100644 index 0000000..4b00da4 --- /dev/null +++ b/result/noent/dav10 @@ -0,0 +1,4 @@ + + + http://www.ics.uci.edu/~ejw/contact.html + diff --git a/result/noent/dav11 b/result/noent/dav11 new file mode 100644 index 0000000..8ac23d6 --- /dev/null +++ b/result/noent/dav11 @@ -0,0 +1,21 @@ + + + + + write + exclusive + + + + http://www.ics.uci.edu/~ejw/contact.html + + + Second-604800 + + + opaquelocktoken:xyz122393481230912asdfa09s8df09s7df + + + + + diff --git a/result/noent/dav12 b/result/noent/dav12 new file mode 100644 index 0000000..d8d03fe --- /dev/null +++ b/result/noent/dav12 @@ -0,0 +1,2 @@ + +http://www.ics.uci.edu/~ejw/contact.html diff --git a/result/noent/dav13 b/result/noent/dav13 new file mode 100644 index 0000000..f44ae38 --- /dev/null +++ b/result/noent/dav13 @@ -0,0 +1,16 @@ + + + + + http://webdav.sb.aol.com/workspace/webdav/proposal.doc + + + http://webdav.sb.aol.com/workspace/webdav/ + + HTTP/1.1 202 Accepted + + + http://foo.bar/blah + HTTP/1.1 403 Forbidden + + diff --git a/result/noent/dav15 b/result/noent/dav15 new file mode 100644 index 0000000..b80802e --- /dev/null +++ b/result/noent/dav15 @@ -0,0 +1,20 @@ + + + + + Source + http://foo.bar/program + http://foo.bar/src/main.c + + + Library + http://foo.bar/program + http://foo.bar/src/main.lib + + + Makefile + http://foo.bar/program + http://foo.bar/src/makefile + + + diff --git a/result/noent/dav16 b/result/noent/dav16 new file mode 100644 index 0000000..9a7dc36 --- /dev/null +++ b/result/noent/dav16 @@ -0,0 +1,6 @@ + + + + + + diff --git a/result/noent/dav17 b/result/noent/dav17 new file mode 100644 index 0000000..1137662 --- /dev/null +++ b/result/noent/dav17 @@ -0,0 +1,22 @@ + + + + + + + write + exclusive + + http://foo.com/doc/ + + Jane Smith + Infinite + + iamuri:unique!!!!! + + + + + HTTP/1.1 200 OK + + diff --git a/result/noent/dav18 b/result/noent/dav18 new file mode 100644 index 0000000..3de1c19 --- /dev/null +++ b/result/noent/dav18 @@ -0,0 +1,6 @@ + + + + + + diff --git a/result/noent/dav19 b/result/noent/dav19 new file mode 100644 index 0000000..9535ffc --- /dev/null +++ b/result/noent/dav19 @@ -0,0 +1,18 @@ + + + + + + + Write + Exclusive + + + Write + Shared + + + + HTTP/1.1 200 OK + + diff --git a/result/noent/dav2 b/result/noent/dav2 new file mode 100644 index 0000000..f831b4b --- /dev/null +++ b/result/noent/dav2 @@ -0,0 +1,24 @@ + + + + http://www.foo.bar/container/ + + + Box type A + + + Hadrian + + + HTTP 1.1 200 OK + + + http://www.foo.bar/container/index.html + + + Box type B + + + HTTP 1.1 200 OK + + diff --git a/result/noent/dav3 b/result/noent/dav3 new file mode 100644 index 0000000..986b3fe --- /dev/null +++ b/result/noent/dav3 @@ -0,0 +1,18 @@ + + + + http://www.foo.bar/container/ + + + + + HTTP 1.1 200 OK + + + http://www.foo.bar/container/index.html + + + + HTTP 1.1 200 OK + + diff --git a/result/noent/dav4 b/result/noent/dav4 new file mode 100644 index 0000000..9ab7ceb --- /dev/null +++ b/result/noent/dav4 @@ -0,0 +1,16 @@ + + + + + + Jim Whitehead + Roy Fielding + + + + + + + + + diff --git a/result/noent/dav5 b/result/noent/dav5 new file mode 100644 index 0000000..68ebab9 --- /dev/null +++ b/result/noent/dav5 @@ -0,0 +1,17 @@ + + + + + + + HTTP/1.1 420 Method Failure + + + + + + HTTP/1.1 409 Conflict + + Copyright Owner can not be deleted or +altered. + diff --git a/result/noent/dav6 b/result/noent/dav6 new file mode 100644 index 0000000..3d0de24 --- /dev/null +++ b/result/noent/dav6 @@ -0,0 +1,22 @@ + + + + http://www.microsoft.com/user/yarong/dav_drafts/ + + + + + + + HTTP 1.1 200 OK + + + + http://www.microsoft.com/user/yarong/dav_drafts/base + + + + + HTTP 1.1 200 OK + + diff --git a/result/noent/dav7 b/result/noent/dav7 new file mode 100644 index 0000000..ec4a952 --- /dev/null +++ b/result/noent/dav7 @@ -0,0 +1,16 @@ + + + + http://www.foo.bar/container/resource1 + http://www.foo.bar/container/resource2 + HTTP/1.1 200 OK + + + http://www.foo.bar/container/ + HTTP/1.1 420 Method Failure + + + http://www.foo.bar/container/resource3 + HTTP/1.1 412 Precondition Failed + + diff --git a/result/noent/dav8 b/result/noent/dav8 new file mode 100644 index 0000000..7f99baf --- /dev/null +++ b/result/noent/dav8 @@ -0,0 +1,14 @@ + + + + http://www.foo.bar/othercontainer/resource1 + http://www.foo.bar/othercontainer/resource2 + http://www.foo.bar/othercontainer/ + http://www.foo.bar/othercontainer/R2/D2 + HTTP/1.1 201 Created + + + http://www.foo.bar/othercontainer/R2/ + HTTP/1.1 412 Precondition Failed + + diff --git a/result/noent/dav9 b/result/noent/dav9 new file mode 100644 index 0000000..8ed63b8 --- /dev/null +++ b/result/noent/dav9 @@ -0,0 +1,18 @@ + + + + http://www.foo.bar/container/resource1 + http://www.foo.bar/container/resource2 + http://www.foo.bar/container/ + http://www.foo.bar/container/C2/R2 + HTTP/1.1 201 Created + + + http://www.foo.bar/container/C2 + HTTP/1.1 420 Method Failure + + + http://www.foo.bar/othercontainer/C2 + HTTP/1.1 409 Conflict + + diff --git a/result/noent/defattr.xml b/result/noent/defattr.xml new file mode 100644 index 0000000..0a4ac15 --- /dev/null +++ b/result/noent/defattr.xml @@ -0,0 +1,6 @@ + + + +]> + diff --git a/result/noent/defattr2.xml b/result/noent/defattr2.xml new file mode 100644 index 0000000..8d1fc3b --- /dev/null +++ b/result/noent/defattr2.xml @@ -0,0 +1,8 @@ + + + + + +]> + diff --git a/result/noent/dia1 b/result/noent/dia1 new file mode 100644 index 0000000..207bd73 --- /dev/null +++ b/result/noent/dia1 @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/result/noent/dia2 b/result/noent/dia2 new file mode 100644 index 0000000..207bd73 --- /dev/null +++ b/result/noent/dia2 @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/result/noent/dtd1 b/result/noent/dtd1 new file mode 100644 index 0000000..fb11ffa --- /dev/null +++ b/result/noent/dtd1 @@ -0,0 +1,4 @@ + + + + diff --git a/result/noent/dtd10 b/result/noent/dtd10 new file mode 100644 index 0000000..8c7d5e7 --- /dev/null +++ b/result/noent/dtd10 @@ -0,0 +1,9 @@ + + + + + + +]> +This is a valid document diff --git a/result/noent/dtd11 b/result/noent/dtd11 new file mode 100644 index 0000000..e0df8af --- /dev/null +++ b/result/noent/dtd11 @@ -0,0 +1,6 @@ + + + +]> + diff --git a/result/noent/dtd12 b/result/noent/dtd12 new file mode 100644 index 0000000..b0aff81 --- /dev/null +++ b/result/noent/dtd12 @@ -0,0 +1,6 @@ + + + +]> +He said "Yes" diff --git a/result/noent/dtd13 b/result/noent/dtd13 new file mode 100644 index 0000000..2814146 --- /dev/null +++ b/result/noent/dtd13 @@ -0,0 +1,7 @@ + + + +]> + + diff --git a/result/noent/dtd2 b/result/noent/dtd2 new file mode 100644 index 0000000..921fd94 --- /dev/null +++ b/result/noent/dtd2 @@ -0,0 +1,5 @@ + + +]> +This is a valid document ! diff --git a/result/noent/dtd3 b/result/noent/dtd3 new file mode 100644 index 0000000..6681ef7 --- /dev/null +++ b/result/noent/dtd3 @@ -0,0 +1,5 @@ + + +]> +This is a valid document ! diff --git a/result/noent/dtd4 b/result/noent/dtd4 new file mode 100644 index 0000000..6cf2444 --- /dev/null +++ b/result/noent/dtd4 @@ -0,0 +1,5 @@ + + +]> + diff --git a/result/noent/dtd5 b/result/noent/dtd5 new file mode 100644 index 0000000..5409d51 --- /dev/null +++ b/result/noent/dtd5 @@ -0,0 +1,7 @@ + + + + +]> +This is a valid document diff --git a/result/noent/dtd6 b/result/noent/dtd6 new file mode 100644 index 0000000..ed2d993 --- /dev/null +++ b/result/noent/dtd6 @@ -0,0 +1,7 @@ + + + + +]> +This is a valid document diff --git a/result/noent/dtd7 b/result/noent/dtd7 new file mode 100644 index 0000000..0a4075f --- /dev/null +++ b/result/noent/dtd7 @@ -0,0 +1,7 @@ + + + + +]> +This is a valid document diff --git a/result/noent/dtd8 b/result/noent/dtd8 new file mode 100644 index 0000000..7a655f9 --- /dev/null +++ b/result/noent/dtd8 @@ -0,0 +1,9 @@ + + + + + + +]> +This is a valid document diff --git a/result/noent/dtd9 b/result/noent/dtd9 new file mode 100644 index 0000000..89cc1d4 --- /dev/null +++ b/result/noent/dtd9 @@ -0,0 +1,9 @@ + + + + + + +]> +This is a valid document diff --git a/result/noent/ebcdic_566012.xml b/result/noent/ebcdic_566012.xml new file mode 100644 index 0000000..153add5 --- /dev/null +++ b/result/noent/ebcdic_566012.xml @@ -0,0 +1 @@ +Lo§”“@¥…™¢‰–•~ñKð@…•ƒ–„‰•‡~ÉÂÔ`ññôñon%L£…¢£@££™~JàZan% \ No newline at end of file diff --git a/result/noent/emptycdata.xml b/result/noent/emptycdata.xml new file mode 100644 index 0000000..bc98388 --- /dev/null +++ b/result/noent/emptycdata.xml @@ -0,0 +1,4 @@ + + + + diff --git a/result/noent/ent1 b/result/noent/ent1 new file mode 100644 index 0000000..14bf428 --- /dev/null +++ b/result/noent/ent1 @@ -0,0 +1,7 @@ + + +]> + + Extensible Markup Language + diff --git a/result/noent/ent10 b/result/noent/ent10 new file mode 100644 index 0000000..946aff8 --- /dev/null +++ b/result/noent/ent10 @@ -0,0 +1,18 @@ + + + + + + hello world + + "> +]> + + + + hello world + + + diff --git a/result/noent/ent11 b/result/noent/ent11 new file mode 100644 index 0000000..e1e1e0f --- /dev/null +++ b/result/noent/ent11 @@ -0,0 +1,6 @@ + + +]> + + diff --git a/result/noent/ent12 b/result/noent/ent12 new file mode 100644 index 0000000..e398313 --- /dev/null +++ b/result/noent/ent12 @@ -0,0 +1,8 @@ + + + +]> + + def + diff --git a/result/noent/ent13 b/result/noent/ent13 new file mode 100644 index 0000000..02bc069 --- /dev/null +++ b/result/noent/ent13 @@ -0,0 +1,5 @@ + + +]> +a diff --git a/result/noent/ent2 b/result/noent/ent2 new file mode 100644 index 0000000..b643ac3 --- /dev/null +++ b/result/noent/ent2 @@ -0,0 +1,12 @@ + + + + +]> + + +my title + + This text is about XML, the Extensible Markup Language and this is an embedded + diff --git a/result/noent/ent3 b/result/noent/ent3 new file mode 100644 index 0000000..b1c0b14 --- /dev/null +++ b/result/noent/ent3 @@ -0,0 +1,7 @@ + + +]> + + Test of entities in attributes. + diff --git a/result/noent/ent4 b/result/noent/ent4 new file mode 100644 index 0000000..a92194c --- /dev/null +++ b/result/noent/ent4 @@ -0,0 +1,7 @@ + + +]> + + Test of &amp; behaviour a&b . + diff --git a/result/noent/ent5 b/result/noent/ent5 new file mode 100644 index 0000000..16e7e10 --- /dev/null +++ b/result/noent/ent5 @@ -0,0 +1,5 @@ + + + This is an inverted exclamation sign ¡ + This is a space + diff --git a/result/noent/ent6 b/result/noent/ent6 new file mode 100644 index 0000000..047f9bb --- /dev/null +++ b/result/noent/ent6 @@ -0,0 +1,9 @@ + + + + + + +]> + diff --git a/result/noent/ent7 b/result/noent/ent7 new file mode 100644 index 0000000..1c895af --- /dev/null +++ b/result/noent/ent7 @@ -0,0 +1,8 @@ + +"> + + + +]> +'they called me the hyacinth girl' diff --git a/result/noent/ent8 b/result/noent/ent8 new file mode 100644 index 0000000..676266c --- /dev/null +++ b/result/noent/ent8 @@ -0,0 +1,10 @@ + + + +]> + + Retenção + <> + test 1test 2 + diff --git a/result/noent/ent9 b/result/noent/ent9 new file mode 100644 index 0000000..b930e4c --- /dev/null +++ b/result/noent/ent9 @@ -0,0 +1,61 @@ + +,,,"> +]> + + ,,, +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +

      WE need lot of garbage now to trigger the problem

      +
      ,,, +
      diff --git a/result/noent/eve.xml b/result/noent/eve.xml new file mode 100644 index 0000000..dab7208 --- /dev/null +++ b/result/noent/eve.xml @@ -0,0 +1,6 @@ + + +]> + + diff --git a/result/noent/intsubset.xml b/result/noent/intsubset.xml new file mode 100644 index 0000000..bd85795 --- /dev/null +++ b/result/noent/intsubset.xml @@ -0,0 +1,5 @@ + + +]> + diff --git a/result/noent/intsubset2.xml b/result/noent/intsubset2.xml new file mode 100644 index 0000000..b103955 --- /dev/null +++ b/result/noent/intsubset2.xml @@ -0,0 +1,250 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]> + + diff --git a/result/noent/isolat1 b/result/noent/isolat1 new file mode 100644 index 0000000..1e5a059 --- /dev/null +++ b/result/noent/isolat1 @@ -0,0 +1,2 @@ + + diff --git a/result/noent/isolat2 b/result/noent/isolat2 new file mode 100644 index 0000000..8c290b9 --- /dev/null +++ b/result/noent/isolat2 @@ -0,0 +1,107 @@ + + + + The following table displays the characters in ISO 8859 + Latin-1, which are printable and unlisted in the ascii + manual page. + + Oct Dec Hex Char Description + -------------------------------------------------------------------- + 240 160 A0 NO-BREAK SPACE + 241 161 A1 ¡ INVERTED EXCLAMATION MARK + 242 162 A2 ¢ CENT SIGN + 243 163 A3 £ POUND SIGN + 244 164 A4 ¤ CURRENCY SIGN + 245 165 A5 ¥ YEN SIGN + 246 166 A6 ¦ BROKEN BAR + 247 167 A7 § SECTION SIGN + 250 168 A8 ¨ DIAERESIS + 251 169 A9 © COPYRIGHT SIGN + 252 170 AA ª FEMININE ORDINAL INDICATOR + 253 171 AB « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + 254 172 AC ¬ NOT SIGN + 255 173 AD ­ SOFT HYPHEN + 256 174 AE ® REGISTERED SIGN + 257 175 AF ¯ MACRON + 260 176 B0 ° DEGREE SIGN + 261 177 B1 ± PLUS-MINUS SIGN + 262 178 B2 ² SUPERSCRIPT TWO + 263 179 B3 ³ SUPERSCRIPT THREE + 264 180 B4 ´ ACUTE ACCENT + 265 181 B5 µ MICRO SIGN + 266 182 B6 ¶ PILCROW SIGN + 267 183 B7 · MIDDLE DOT + 270 184 B8 ¸ CEDILLA + 271 185 B9 ¹ SUPERSCRIPT ONE + 272 186 BA º MASCULINE ORDINAL INDICATOR + 273 187 BB » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + 274 188 BC ¼ VULGAR FRACTION ONE QUARTER + 275 189 BD ½ VULGAR FRACTION ONE HALF + 276 190 BE ¾ VULGAR FRACTION THREE QUARTERS + 277 191 BF ¿ INVERTED QUESTION MARK + 300 192 C0 À LATIN CAPITAL LETTER A WITH GRAVE + 301 193 C1 Á LATIN CAPITAL LETTER A WITH ACUTE + 302 194 C2 Â LATIN CAPITAL LETTER A WITH CIRCUMFLEX + 303 195 C3 Ã LATIN CAPITAL LETTER A WITH TILDE + 304 196 C4 Ä LATIN CAPITAL LETTER A WITH DIAERESIS + 305 197 C5 Å LATIN CAPITAL LETTER A WITH RING ABOVE + 306 198 C6 Æ LATIN CAPITAL LETTER AE + 307 199 C7 Ç LATIN CAPITAL LETTER C WITH CEDILLA + 310 200 C8 È LATIN CAPITAL LETTER E WITH GRAVE + 311 201 C9 É LATIN CAPITAL LETTER E WITH ACUTE + 312 202 CA Ê LATIN CAPITAL LETTER E WITH CIRCUMFLEX + 313 203 CB Ë LATIN CAPITAL LETTER E WITH DIAERESIS + 314 204 CC Ì LATIN CAPITAL LETTER I WITH GRAVE + 315 205 CD Í LATIN CAPITAL LETTER I WITH ACUTE + 316 206 CE Î LATIN CAPITAL LETTER I WITH CIRCUMFLEX + 317 207 CF Ï LATIN CAPITAL LETTER I WITH DIAERESIS + 320 208 D0 Ð LATIN CAPITAL LETTER ETH + 321 209 D1 Ñ LATIN CAPITAL LETTER N WITH TILDE + 322 210 D2 Ò LATIN CAPITAL LETTER O WITH GRAVE + 323 211 D3 Ó LATIN CAPITAL LETTER O WITH ACUTE + 324 212 D4 Ô LATIN CAPITAL LETTER O WITH CIRCUMFLEX + 325 213 D5 Õ LATIN CAPITAL LETTER O WITH TILDE + 326 214 D6 Ö LATIN CAPITAL LETTER O WITH DIAERESIS + 327 215 D7 × MULTIPLICATION SIGN + 330 216 D8 Ø LATIN CAPITAL LETTER O WITH STROKE + 331 217 D9 Ù LATIN CAPITAL LETTER U WITH GRAVE + 332 218 DA Ú LATIN CAPITAL LETTER U WITH ACUTE + 333 219 DB Û LATIN CAPITAL LETTER U WITH CIRCUMFLEX + 334 220 DC Ü LATIN CAPITAL LETTER U WITH DIAERESIS + 335 221 DD Ý LATIN CAPITAL LETTER Y WITH ACUTE + 336 222 DE Þ LATIN CAPITAL LETTER THORN + 337 223 DF ß LATIN SMALL LETTER SHARP S + 340 224 E0 à LATIN SMALL LETTER A WITH GRAVE + 341 225 E1 á LATIN SMALL LETTER A WITH ACUTE + 342 226 E2 â LATIN SMALL LETTER A WITH CIRCUMFLEX + 343 227 E3 ã LATIN SMALL LETTER A WITH TILDE + 344 228 E4 ä LATIN SMALL LETTER A WITH DIAERESIS + 345 229 E5 å LATIN SMALL LETTER A WITH RING ABOVE + 346 230 E6 æ LATIN SMALL LETTER AE + 347 231 E7 ç LATIN SMALL LETTER C WITH CEDILLA + 350 232 E8 è LATIN SMALL LETTER E WITH GRAVE + 351 233 E9 é LATIN SMALL LETTER E WITH ACUTE + 352 234 EA ê LATIN SMALL LETTER E WITH CIRCUMFLEX + 353 235 EB ë LATIN SMALL LETTER E WITH DIAERESIS + 354 236 EC ì LATIN SMALL LETTER I WITH GRAVE + 355 237 ED í LATIN SMALL LETTER I WITH ACUTE + 356 238 EE î LATIN SMALL LETTER I WITH CIRCUMFLEX + 357 239 EF ï LATIN SMALL LETTER I WITH DIAERESIS + 360 240 F0 ð LATIN SMALL LETTER ETH + 361 241 F1 ñ LATIN SMALL LETTER N WITH TILDE + 362 242 F2 ò LATIN SMALL LETTER O WITH GRAVE + 363 243 F3 ó LATIN SMALL LETTER O WITH ACUTE + 364 244 F4 ô LATIN SMALL LETTER O WITH CIRCUMFLEX + 365 245 F5 õ LATIN SMALL LETTER O WITH TILDE + 366 246 F6 ö LATIN SMALL LETTER O WITH DIAERESIS + 367 247 F7 ÷ DIVISION SIGN + 370 248 F8 ø LATIN SMALL LETTER O WITH STROKE + 371 249 F9 ù LATIN SMALL LETTER U WITH GRAVE + 372 250 FA ú LATIN SMALL LETTER U WITH ACUTE + 373 251 FB û LATIN SMALL LETTER U WITH CIRCUMFLEX + 374 252 FC ü LATIN SMALL LETTER U WITH DIAERESIS + 375 253 FD ý LATIN SMALL LETTER Y WITH ACUTE + 376 254 FE þ LATIN SMALL LETTER THORN + 377 255 FF ÿ LATIN SMALL LETTER Y WITH DIAERESIS + + diff --git a/result/noent/isolat3 b/result/noent/isolat3 new file mode 100644 index 0000000..1abf7b4 --- /dev/null +++ b/result/noent/isolat3 @@ -0,0 +1,10 @@ + + + + +]]> +then the replacement text for the entity "book" is: +La Peste: Albert Camus, +© 1947 Éditions Gallimard. &rights; + diff --git a/result/noent/ns b/result/noent/ns new file mode 100644 index 0000000..94b927e --- /dev/null +++ b/result/noent/ns @@ -0,0 +1,4 @@ + + + + diff --git a/result/noent/ns2 b/result/noent/ns2 new file mode 100644 index 0000000..b69ad82 --- /dev/null +++ b/result/noent/ns2 @@ -0,0 +1,2 @@ + + diff --git a/result/noent/ns3 b/result/noent/ns3 new file mode 100644 index 0000000..b69ad82 --- /dev/null +++ b/result/noent/ns3 @@ -0,0 +1,2 @@ + + diff --git a/result/noent/ns4 b/result/noent/ns4 new file mode 100644 index 0000000..136bf92 --- /dev/null +++ b/result/noent/ns4 @@ -0,0 +1,2 @@ + + diff --git a/result/noent/ns5 b/result/noent/ns5 new file mode 100644 index 0000000..0afe4e2 --- /dev/null +++ b/result/noent/ns5 @@ -0,0 +1,4 @@ + + + + diff --git a/result/noent/ns6 b/result/noent/ns6 new file mode 100644 index 0000000..c971252 --- /dev/null +++ b/result/noent/ns6 @@ -0,0 +1,5 @@ + + + + + diff --git a/result/noent/ns7 b/result/noent/ns7 new file mode 100644 index 0000000..b5089e1 --- /dev/null +++ b/result/noent/ns7 @@ -0,0 +1,2 @@ + + diff --git a/result/noent/nsclean.xml b/result/noent/nsclean.xml new file mode 100644 index 0000000..8f1ea82 --- /dev/null +++ b/result/noent/nsclean.xml @@ -0,0 +1,5 @@ + +
      + + +
      diff --git a/result/noent/p3p b/result/noent/p3p new file mode 100644 index 0000000..31d5587 --- /dev/null +++ b/result/noent/p3p @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/result/noent/pi.xml b/result/noent/pi.xml new file mode 100644 index 0000000..48c7ff0 --- /dev/null +++ b/result/noent/pi.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/result/noent/pi2.xml b/result/noent/pi2.xml new file mode 100644 index 0000000..710d51c --- /dev/null +++ b/result/noent/pi2.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/result/noent/rdf1 b/result/noent/rdf1 new file mode 100644 index 0000000..d44c3c6 --- /dev/null +++ b/result/noent/rdf1 @@ -0,0 +1,81 @@ + + + + rpm + 2.5 + 2 + i386 + Linux + Manhattan + Red Hat Software + Red Hat Software <bugs@redhat.com> + Utilities/System + Red Hat Package Manager + RPM is a powerful package manager, which can be used to build, install, +query, verify, update, and uninstall individual software packages. A +package consists of an archive of files, and package information, including +name, version, and description. + GPL + * Sun May 10 1998 Prospector System <bugs@redhat.com> + - translations modified for de, fr, tr + + rpm-2.5-2.src.rpm + ftp://ftp.redhat.com/pub/redhat/redhat-5.1/SRPMS + Sun May 10 14:52:32 1998 + 894826352 + 850599 + porky.redhat.com + + + rpm + + + + + /bin/sh + ld-linux.so.2 + libc.so.6 + libdb.so.2 + libz.so.1 + /bin/bash + /bin/sh + + + /bin/rpm +/usr/bin/find-provides +/usr/bin/find-requires +/usr/bin/gendiff +/usr/bin/rpm2cpio +/usr/doc/rpm-2.5 +/usr/doc/rpm-2.5/CHANGES +/usr/doc/rpm-2.5/RPM-PGP-KEY +/usr/doc/rpm-2.5/buildroot +/usr/doc/rpm-2.5/dependencies +/usr/doc/rpm-2.5/format +/usr/doc/rpm-2.5/groups +/usr/doc/rpm-2.5/macros +/usr/doc/rpm-2.5/queryformat +/usr/doc/rpm-2.5/relocatable +/usr/doc/rpm-2.5/signatures +/usr/doc/rpm-2.5/spec +/usr/doc/rpm-2.5/triggers +/usr/lib/rpmpopt +/usr/lib/rpmrc +/usr/man/man8/rpm.8 +/usr/man/man8/rpm2cpio.8 +/usr/share/locale/de/LC_MESSAGES/rpm.mo +/usr/share/locale/fr/LC_MESSAGES/rpm.mo +/usr/share/locale/pt-br/LC_MESSAGES/rpm.mo +/usr/share/locale/sv/LC_MESSAGES/rpm.mo +/usr/share/locale/tr/LC_MESSAGES/rpm.mo +/usr/src/redhat +/usr/src/redhat/BUILD +/usr/src/redhat/RPMS +/usr/src/redhat/RPMS/i386 +/usr/src/redhat/RPMS/noarch +/usr/src/redhat/SOURCES +/usr/src/redhat/SPECS +/usr/src/redhat/SRPMS + + + diff --git a/result/noent/rdf2 b/result/noent/rdf2 new file mode 100644 index 0000000..284946b --- /dev/null +++ b/result/noent/rdf2 @@ -0,0 +1,1899 @@ + + + + ncurses4 + 4.2 + 3 + i386 + Linux + DLD + delix Computer GmbH + Till Bubeck <bubeck@delix.de>, Ngo Than <than@delix.de> + Libraries + Bibliothek zur Ansteuerung von Terminals + Diese Library stellt dem Programmierer vom Terminal unabhängige +Routinen zur Ansteuerung Ihres Bildschirms zur Verfügung, die +speziell optimiert sind. +Diese Version ist die 'new curses' (ncurses) Variante und ist der +anerkannte Ersatz für die klassische Curses-Library, die nicht mehr +weiterentwickelt wird. + GPL + ncurses4-4.2-3.src.rpm + Tue May 12 19:30:26 1998 + 895015826 + 1373513 + erdbeere.delix.de + + + ncurses4 + libpanel.so.4 + libncurses.so.4 + libmenu.so.4 + libform.so.4 + ncurses + + + /lib/libncurses.so.4 +/lib/libncurses.so.4.2 +/usr/doc/ncurses4-4.2-3 +/usr/doc/ncurses4-4.2-3/ANNOUNCE.gz +/usr/doc/ncurses4-4.2-3/NEWS.gz +/usr/doc/ncurses4-4.2-3/README.gz +/usr/doc/ncurses4-4.2-3/TO-DO.gz +/usr/lib/libform.so.4 +/usr/lib/libform.so.4.2 +/usr/lib/libmenu.so.4 +/usr/lib/libmenu.so.4.2 +/usr/lib/libpanel.so.4 +/usr/lib/libpanel.so.4.2 +/usr/share/ncurses4 +/usr/share/ncurses4/tabset +/usr/share/ncurses4/tabset/std +/usr/share/ncurses4/tabset/stdcrt +/usr/share/ncurses4/tabset/vt100 +/usr/share/ncurses4/tabset/vt300 +/usr/share/ncurses4/terminfo +/usr/share/ncurses4/terminfo/1 +/usr/share/ncurses4/terminfo/1/1178 +/usr/share/ncurses4/terminfo/1/1730-lm +/usr/share/ncurses4/terminfo/2 +/usr/share/ncurses4/terminfo/2/2621 +/usr/share/ncurses4/terminfo/2/2621-wl +/usr/share/ncurses4/terminfo/2/2621A +/usr/share/ncurses4/terminfo/2/2621a +/usr/share/ncurses4/terminfo/3 +/usr/share/ncurses4/terminfo/3/386at +/usr/share/ncurses4/terminfo/3/3b1 +/usr/share/ncurses4/terminfo/4 +/usr/share/ncurses4/terminfo/4/4025ex +/usr/share/ncurses4/terminfo/4/4027ex +/usr/share/ncurses4/terminfo/4/4410-w +/usr/share/ncurses4/terminfo/5 +/usr/share/ncurses4/terminfo/5/5051 +/usr/share/ncurses4/terminfo/5/5410-w +/usr/share/ncurses4/terminfo/5/5620 +/usr/share/ncurses4/terminfo/5/5630-24 +/usr/share/ncurses4/terminfo/5/5630DMD-24 +/usr/share/ncurses4/terminfo/6 +/usr/share/ncurses4/terminfo/6/630-lm +/usr/share/ncurses4/terminfo/6/630MTG-24 +/usr/share/ncurses4/terminfo/7 +/usr/share/ncurses4/terminfo/7/730MTG-24 +/usr/share/ncurses4/terminfo/7/730MTG-41 +/usr/share/ncurses4/terminfo/7/730MTG-41r +/usr/share/ncurses4/terminfo/7/730MTGr +/usr/share/ncurses4/terminfo/7/730MTGr-24 +/usr/share/ncurses4/terminfo/8 +/usr/share/ncurses4/terminfo/8/8510 +/usr/share/ncurses4/terminfo/9 +/usr/share/ncurses4/terminfo/9/955-hb +/usr/share/ncurses4/terminfo/9/955-w +/usr/share/ncurses4/terminfo/P +/usr/share/ncurses4/terminfo/P/P12 +/usr/share/ncurses4/terminfo/P/P12-M +/usr/share/ncurses4/terminfo/P/P12-M-W +/usr/share/ncurses4/terminfo/P/P12-W +/usr/share/ncurses4/terminfo/P/P14 +/usr/share/ncurses4/terminfo/P/P14-M +/usr/share/ncurses4/terminfo/P/P14-M-W +/usr/share/ncurses4/terminfo/P/P14-W +/usr/share/ncurses4/terminfo/P/P4 +/usr/share/ncurses4/terminfo/P/P5 +/usr/share/ncurses4/terminfo/P/P7 +/usr/share/ncurses4/terminfo/P/P8 +/usr/share/ncurses4/terminfo/P/P8-W +/usr/share/ncurses4/terminfo/P/P9 +/usr/share/ncurses4/terminfo/P/P9-8 +/usr/share/ncurses4/terminfo/P/P9-8-W +/usr/share/ncurses4/terminfo/P/P9-W +/usr/share/ncurses4/terminfo/X +/usr/share/ncurses4/terminfo/X/X-hpterm +/usr/share/ncurses4/terminfo/a +/usr/share/ncurses4/terminfo/a/a210 +/usr/share/ncurses4/terminfo/a/a80 +/usr/share/ncurses4/terminfo/a/a980 +/usr/share/ncurses4/terminfo/a/aa4080 +/usr/share/ncurses4/terminfo/a/aaa +/usr/share/ncurses4/terminfo/a/aaa+dec +/usr/share/ncurses4/terminfo/a/aaa+rv +/usr/share/ncurses4/terminfo/a/aaa+unk +/usr/share/ncurses4/terminfo/a/aaa-18 +/usr/share/ncurses4/terminfo/a/aaa-18-rv +/usr/share/ncurses4/terminfo/a/aaa-20 +/usr/share/ncurses4/terminfo/a/aaa-22 +/usr/share/ncurses4/terminfo/a/aaa-24 +/usr/share/ncurses4/terminfo/a/aaa-24-rv +/usr/share/ncurses4/terminfo/a/aaa-26 +/usr/share/ncurses4/terminfo/a/aaa-28 +/usr/share/ncurses4/terminfo/a/aaa-30 +/usr/share/ncurses4/terminfo/a/aaa-30-ctxt +/usr/share/ncurses4/terminfo/a/aaa-30-rv +/usr/share/ncurses4/terminfo/a/aaa-30-rv-ctxt +/usr/share/ncurses4/terminfo/a/aaa-30-s +/usr/share/ncurses4/terminfo/a/aaa-30-s-ctxt +/usr/share/ncurses4/terminfo/a/aaa-30-s-rv +/usr/share/ncurses4/terminfo/a/aaa-30-s-rv-ct +/usr/share/ncurses4/terminfo/a/aaa-36 +/usr/share/ncurses4/terminfo/a/aaa-36-rv +/usr/share/ncurses4/terminfo/a/aaa-40 +/usr/share/ncurses4/terminfo/a/aaa-40-rv +/usr/share/ncurses4/terminfo/a/aaa-48 +/usr/share/ncurses4/terminfo/a/aaa-48-rv +/usr/share/ncurses4/terminfo/a/aaa-60 +/usr/share/ncurses4/terminfo/a/aaa-60-dec-rv +/usr/share/ncurses4/terminfo/a/aaa-60-rv +/usr/share/ncurses4/terminfo/a/aaa-60-s +/usr/share/ncurses4/terminfo/a/aaa-60-s-rv +/usr/share/ncurses4/terminfo/a/aaa-ctxt +/usr/share/ncurses4/terminfo/a/aaa-db +/usr/share/ncurses4/terminfo/a/aaa-rv +/usr/share/ncurses4/terminfo/a/aaa-rv-ctxt +/usr/share/ncurses4/terminfo/a/aaa-rv-unk +/usr/share/ncurses4/terminfo/a/aaa-s +/usr/share/ncurses4/terminfo/a/aaa-s-ctxt +/usr/share/ncurses4/terminfo/a/aaa-s-rv +/usr/share/ncurses4/terminfo/a/aaa-s-rv-ctxt +/usr/share/ncurses4/terminfo/a/aaa-unk +/usr/share/ncurses4/terminfo/a/aas1901 +/usr/share/ncurses4/terminfo/a/abm80 +/usr/share/ncurses4/terminfo/a/abm85 +/usr/share/ncurses4/terminfo/a/abm85e +/usr/share/ncurses4/terminfo/a/abm85h +/usr/share/ncurses4/terminfo/a/abm85h-old +/usr/share/ncurses4/terminfo/a/act4 +/usr/share/ncurses4/terminfo/a/act5 +/usr/share/ncurses4/terminfo/a/addrinfo +/usr/share/ncurses4/terminfo/a/adds980 +/usr/share/ncurses4/terminfo/a/addsviewpoint +/usr/share/ncurses4/terminfo/a/addsvp60 +/usr/share/ncurses4/terminfo/a/adm+sgr +/usr/share/ncurses4/terminfo/a/adm1 +/usr/share/ncurses4/terminfo/a/adm11 +/usr/share/ncurses4/terminfo/a/adm1178 +/usr/share/ncurses4/terminfo/a/adm12 +/usr/share/ncurses4/terminfo/a/adm1a +/usr/share/ncurses4/terminfo/a/adm2 +/usr/share/ncurses4/terminfo/a/adm20 +/usr/share/ncurses4/terminfo/a/adm21 +/usr/share/ncurses4/terminfo/a/adm22 +/usr/share/ncurses4/terminfo/a/adm3 +/usr/share/ncurses4/terminfo/a/adm31 +/usr/share/ncurses4/terminfo/a/adm31-old +/usr/share/ncurses4/terminfo/a/adm36 +/usr/share/ncurses4/terminfo/a/adm3a +/usr/share/ncurses4/terminfo/a/adm3a+ +/usr/share/ncurses4/terminfo/a/adm42 +/usr/share/ncurses4/terminfo/a/adm42-ns +/usr/share/ncurses4/terminfo/a/adm5 +/usr/share/ncurses4/terminfo/a/aepro +/usr/share/ncurses4/terminfo/a/aixterm-m +/usr/share/ncurses4/terminfo/a/aixterm-m-old +/usr/share/ncurses4/terminfo/a/aj +/usr/share/ncurses4/terminfo/a/aj510 +/usr/share/ncurses4/terminfo/a/aj830 +/usr/share/ncurses4/terminfo/a/aj832 +/usr/share/ncurses4/terminfo/a/alt2 +/usr/share/ncurses4/terminfo/a/alt3 +/usr/share/ncurses4/terminfo/a/alt4 +/usr/share/ncurses4/terminfo/a/alt5 +/usr/share/ncurses4/terminfo/a/alt7 +/usr/share/ncurses4/terminfo/a/alt7pc +/usr/share/ncurses4/terminfo/a/alto-h19 +/usr/share/ncurses4/terminfo/a/alto-heath +/usr/share/ncurses4/terminfo/a/altoh19 +/usr/share/ncurses4/terminfo/a/altoheath +/usr/share/ncurses4/terminfo/a/altos-2 +/usr/share/ncurses4/terminfo/a/altos-3 +/usr/share/ncurses4/terminfo/a/altos-4 +/usr/share/ncurses4/terminfo/a/altos-5 +/usr/share/ncurses4/terminfo/a/altos2 +/usr/share/ncurses4/terminfo/a/altos3 +/usr/share/ncurses4/terminfo/a/altos4 +/usr/share/ncurses4/terminfo/a/altos5 +/usr/share/ncurses4/terminfo/a/altos7 +/usr/share/ncurses4/terminfo/a/altos7pc +/usr/share/ncurses4/terminfo/a/ambas +/usr/share/ncurses4/terminfo/a/ambassador +/usr/share/ncurses4/terminfo/a/amiga +/usr/share/ncurses4/terminfo/a/amiga-h +/usr/share/ncurses4/terminfo/a/amp219 +/usr/share/ncurses4/terminfo/a/amp219w +/usr/share/ncurses4/terminfo/a/ampex-219 +/usr/share/ncurses4/terminfo/a/ampex-219w +/usr/share/ncurses4/terminfo/a/ampex-232 +/usr/share/ncurses4/terminfo/a/ampex175 +/usr/share/ncurses4/terminfo/a/ampex175-b +/usr/share/ncurses4/terminfo/a/ampex210 +/usr/share/ncurses4/terminfo/a/ampex219 +/usr/share/ncurses4/terminfo/a/ampex219w +/usr/share/ncurses4/terminfo/a/ampex232 +/usr/share/ncurses4/terminfo/a/ampex232w +/usr/share/ncurses4/terminfo/a/ampex80 +/usr/share/ncurses4/terminfo/a/annarbor4080 +/usr/share/ncurses4/terminfo/a/ansi +/usr/share/ncurses4/terminfo/a/ansi-color-2-emx +/usr/share/ncurses4/terminfo/a/ansi-color-3-emx +/usr/share/ncurses4/terminfo/a/ansi-emx +/usr/share/ncurses4/terminfo/a/ansi-m +/usr/share/ncurses4/terminfo/a/ansi-mini +/usr/share/ncurses4/terminfo/a/ansi-mono +/usr/share/ncurses4/terminfo/a/ansi-nt +/usr/share/ncurses4/terminfo/a/ansi.sys +/usr/share/ncurses4/terminfo/a/ansi.sys-old +/usr/share/ncurses4/terminfo/a/ansi.sysk +/usr/share/ncurses4/terminfo/a/ansi43m +/usr/share/ncurses4/terminfo/a/ansi77 +/usr/share/ncurses4/terminfo/a/ansi80x25 +/usr/share/ncurses4/terminfo/a/ansi80x25-mono +/usr/share/ncurses4/terminfo/a/ansi80x25-raw +/usr/share/ncurses4/terminfo/a/ansi80x30 +/usr/share/ncurses4/terminfo/a/ansi80x30-mono +/usr/share/ncurses4/terminfo/a/ansi80x43 +/usr/share/ncurses4/terminfo/a/ansi80x43-mono +/usr/share/ncurses4/terminfo/a/ansi80x50 +/usr/share/ncurses4/terminfo/a/ansi80x50-mono +/usr/share/ncurses4/terminfo/a/ansi80x60 +/usr/share/ncurses4/terminfo/a/ansi80x60-mono +/usr/share/ncurses4/terminfo/a/ansil +/usr/share/ncurses4/terminfo/a/ansil-mono +/usr/share/ncurses4/terminfo/a/ansis +/usr/share/ncurses4/terminfo/a/ansis-mono +/usr/share/ncurses4/terminfo/a/ansisysk +/usr/share/ncurses4/terminfo/a/ansiw +/usr/share/ncurses4/terminfo/a/ap-vm80 +/usr/share/ncurses4/terminfo/a/apl +/usr/share/ncurses4/terminfo/a/apollo +/usr/share/ncurses4/terminfo/a/apollo_15P +/usr/share/ncurses4/terminfo/a/apollo_19L +/usr/share/ncurses4/terminfo/a/apollo_color +/usr/share/ncurses4/terminfo/a/apple-80 +/usr/share/ncurses4/terminfo/a/apple-ae +/usr/share/ncurses4/terminfo/a/apple-soroc +/usr/share/ncurses4/terminfo/a/apple-uterm +/usr/share/ncurses4/terminfo/a/apple-uterm-vb +/usr/share/ncurses4/terminfo/a/apple-videx +/usr/share/ncurses4/terminfo/a/apple-videx2 +/usr/share/ncurses4/terminfo/a/apple-videx3 +/usr/share/ncurses4/terminfo/a/apple-vm80 +/usr/share/ncurses4/terminfo/a/apple2e +/usr/share/ncurses4/terminfo/a/apple2e-p +/usr/share/ncurses4/terminfo/a/apple80p +/usr/share/ncurses4/terminfo/a/appleII +/usr/share/ncurses4/terminfo/a/appleIIc +/usr/share/ncurses4/terminfo/a/appleIIe +/usr/share/ncurses4/terminfo/a/appleIIgs +/usr/share/ncurses4/terminfo/a/at386 +/usr/share/ncurses4/terminfo/a/atari +/usr/share/ncurses4/terminfo/a/att2300 +/usr/share/ncurses4/terminfo/a/att2350 +/usr/share/ncurses4/terminfo/a/att4410 +/usr/share/ncurses4/terminfo/a/att4410-w +/usr/share/ncurses4/terminfo/a/att4410v1 +/usr/share/ncurses4/terminfo/a/att4410v1-w +/usr/share/ncurses4/terminfo/a/att4415 +/usr/share/ncurses4/terminfo/a/att4415+nl +/usr/share/ncurses4/terminfo/a/att4415-nl +/usr/share/ncurses4/terminfo/a/att4415-rv +/usr/share/ncurses4/terminfo/a/att4415-rv-nl +/usr/share/ncurses4/terminfo/a/att4415-w +/usr/share/ncurses4/terminfo/a/att4415-w-nl +/usr/share/ncurses4/terminfo/a/att4415-w-rv +/usr/share/ncurses4/terminfo/a/att4415-w-rv-n +/usr/share/ncurses4/terminfo/a/att4418 +/usr/share/ncurses4/terminfo/a/att4418-w +/usr/share/ncurses4/terminfo/a/att4420 +/usr/share/ncurses4/terminfo/a/att4424 +/usr/share/ncurses4/terminfo/a/att4424-1 +/usr/share/ncurses4/terminfo/a/att4424m +/usr/share/ncurses4/terminfo/a/att4425 +/usr/share/ncurses4/terminfo/a/att4425-nl +/usr/share/ncurses4/terminfo/a/att4425-w +/usr/share/ncurses4/terminfo/a/att4426 +/usr/share/ncurses4/terminfo/a/att500 +/usr/share/ncurses4/terminfo/a/att505 +/usr/share/ncurses4/terminfo/a/att505-24 +/usr/share/ncurses4/terminfo/a/att510a +/usr/share/ncurses4/terminfo/a/att510d +/usr/share/ncurses4/terminfo/a/att513 +/usr/share/ncurses4/terminfo/a/att5310 +/usr/share/ncurses4/terminfo/a/att5320 +/usr/share/ncurses4/terminfo/a/att5410 +/usr/share/ncurses4/terminfo/a/att5410-w +/usr/share/ncurses4/terminfo/a/att5410v1 +/usr/share/ncurses4/terminfo/a/att5410v1-w +/usr/share/ncurses4/terminfo/a/att5418 +/usr/share/ncurses4/terminfo/a/att5418-w +/usr/share/ncurses4/terminfo/a/att5420 +/usr/share/ncurses4/terminfo/a/att5420+nl +/usr/share/ncurses4/terminfo/a/att5420-nl +/usr/share/ncurses4/terminfo/a/att5420-rv +/usr/share/ncurses4/terminfo/a/att5420-rv-nl +/usr/share/ncurses4/terminfo/a/att5420-w +/usr/share/ncurses4/terminfo/a/att5420-w-nl +/usr/share/ncurses4/terminfo/a/att5420-w-rv +/usr/share/ncurses4/terminfo/a/att5420-w-rv-n +/usr/share/ncurses4/terminfo/a/att5420_2 +/usr/share/ncurses4/terminfo/a/att5420_2-w +/usr/share/ncurses4/terminfo/a/att5425 +/usr/share/ncurses4/terminfo/a/att5425-nl +/usr/share/ncurses4/terminfo/a/att5425-w +/usr/share/ncurses4/terminfo/a/att5430 +/usr/share/ncurses4/terminfo/a/att5620 +/usr/share/ncurses4/terminfo/a/att5620-1 +/usr/share/ncurses4/terminfo/a/att5620-24 +/usr/share/ncurses4/terminfo/a/att5620-34 +/usr/share/ncurses4/terminfo/a/att5620-s +/usr/share/ncurses4/terminfo/a/att605 +/usr/share/ncurses4/terminfo/a/att605-pc +/usr/share/ncurses4/terminfo/a/att605-w +/usr/share/ncurses4/terminfo/a/att610 +/usr/share/ncurses4/terminfo/a/att610-103k +/usr/share/ncurses4/terminfo/a/att610-103k-w +/usr/share/ncurses4/terminfo/a/att610-w +/usr/share/ncurses4/terminfo/a/att615 +/usr/share/ncurses4/terminfo/a/att615-103k +/usr/share/ncurses4/terminfo/a/att615-103k-w +/usr/share/ncurses4/terminfo/a/att615-w +/usr/share/ncurses4/terminfo/a/att620 +/usr/share/ncurses4/terminfo/a/att620-103k +/usr/share/ncurses4/terminfo/a/att620-103k-w +/usr/share/ncurses4/terminfo/a/att620-w +/usr/share/ncurses4/terminfo/a/att630 +/usr/share/ncurses4/terminfo/a/att630-24 +/usr/share/ncurses4/terminfo/a/att6386 +/usr/share/ncurses4/terminfo/a/att730 +/usr/share/ncurses4/terminfo/a/att730-24 +/usr/share/ncurses4/terminfo/a/att730-41 +/usr/share/ncurses4/terminfo/a/att7300 +/usr/share/ncurses4/terminfo/a/att730r +/usr/share/ncurses4/terminfo/a/att730r-24 +/usr/share/ncurses4/terminfo/a/att730r-41 +/usr/share/ncurses4/terminfo/a/avatar +/usr/share/ncurses4/terminfo/a/avatar0 +/usr/share/ncurses4/terminfo/a/avatar0+ +/usr/share/ncurses4/terminfo/a/avatar1 +/usr/share/ncurses4/terminfo/a/avt +/usr/share/ncurses4/terminfo/a/avt+s +/usr/share/ncurses4/terminfo/a/avt-ns +/usr/share/ncurses4/terminfo/a/avt-rv +/usr/share/ncurses4/terminfo/a/avt-rv-ns +/usr/share/ncurses4/terminfo/a/avt-rv-s +/usr/share/ncurses4/terminfo/a/avt-s +/usr/share/ncurses4/terminfo/a/avt-w +/usr/share/ncurses4/terminfo/a/avt-w-ns +/usr/share/ncurses4/terminfo/a/avt-w-rv +/usr/share/ncurses4/terminfo/a/avt-w-rv-ns +/usr/share/ncurses4/terminfo/a/avt-w-rv-s +/usr/share/ncurses4/terminfo/a/avt-w-s +/usr/share/ncurses4/terminfo/a/aws +/usr/share/ncurses4/terminfo/a/awsc +/usr/share/ncurses4/terminfo/b +/usr/share/ncurses4/terminfo/b/b-128 +/usr/share/ncurses4/terminfo/b/bantam +/usr/share/ncurses4/terminfo/b/basic4 +/usr/share/ncurses4/terminfo/b/basis +/usr/share/ncurses4/terminfo/b/bct510a +/usr/share/ncurses4/terminfo/b/bct510d +/usr/share/ncurses4/terminfo/b/beacon +/usr/share/ncurses4/terminfo/b/bee +/usr/share/ncurses4/terminfo/b/beehive +/usr/share/ncurses4/terminfo/b/beehive3 +/usr/share/ncurses4/terminfo/b/beehive4 +/usr/share/ncurses4/terminfo/b/beehiveIIIm +/usr/share/ncurses4/terminfo/b/beterm +/usr/share/ncurses4/terminfo/b/bg1.25 +/usr/share/ncurses4/terminfo/b/bg1.25nv +/usr/share/ncurses4/terminfo/b/bg1.25rv +/usr/share/ncurses4/terminfo/b/bg2.0 +/usr/share/ncurses4/terminfo/b/bg2.0nv +/usr/share/ncurses4/terminfo/b/bg2.0rv +/usr/share/ncurses4/terminfo/b/bg3.10 +/usr/share/ncurses4/terminfo/b/bg3.10nv +/usr/share/ncurses4/terminfo/b/bg3.10rv +/usr/share/ncurses4/terminfo/b/bh3m +/usr/share/ncurses4/terminfo/b/bh4 +/usr/share/ncurses4/terminfo/b/bitgraph +/usr/share/ncurses4/terminfo/b/blit +/usr/share/ncurses4/terminfo/b/bobcat +/usr/share/ncurses4/terminfo/b/bsdos +/usr/share/ncurses4/terminfo/b/bsdos-bold +/usr/share/ncurses4/terminfo/c +/usr/share/ncurses4/terminfo/c/c100 +/usr/share/ncurses4/terminfo/c/c100-1p +/usr/share/ncurses4/terminfo/c/c100-4p +/usr/share/ncurses4/terminfo/c/c100-rv +/usr/share/ncurses4/terminfo/c/c100-rv-4p +/usr/share/ncurses4/terminfo/c/c104 +/usr/share/ncurses4/terminfo/c/c108 +/usr/share/ncurses4/terminfo/c/c108-4p +/usr/share/ncurses4/terminfo/c/c108-8p +/usr/share/ncurses4/terminfo/c/c108-rv +/usr/share/ncurses4/terminfo/c/c108-rv-4p +/usr/share/ncurses4/terminfo/c/c108-rv-8p +/usr/share/ncurses4/terminfo/c/c108-w +/usr/share/ncurses4/terminfo/c/c108-w-8p +/usr/share/ncurses4/terminfo/c/c300 +/usr/share/ncurses4/terminfo/c/c301 +/usr/share/ncurses4/terminfo/c/c321 +/usr/share/ncurses4/terminfo/c/ca22851 +/usr/share/ncurses4/terminfo/c/cad68-2 +/usr/share/ncurses4/terminfo/c/cad68-3 +/usr/share/ncurses4/terminfo/c/cbblit +/usr/share/ncurses4/terminfo/c/cbunix +/usr/share/ncurses4/terminfo/c/cci +/usr/share/ncurses4/terminfo/c/cci1 +/usr/share/ncurses4/terminfo/c/cdc456 +/usr/share/ncurses4/terminfo/c/cdc721 +/usr/share/ncurses4/terminfo/c/cdc721-esc +/usr/share/ncurses4/terminfo/c/cdc721ll +/usr/share/ncurses4/terminfo/c/cdc752 +/usr/share/ncurses4/terminfo/c/cdc756 +/usr/share/ncurses4/terminfo/c/cg7900 +/usr/share/ncurses4/terminfo/c/cgc2 +/usr/share/ncurses4/terminfo/c/cgc3 +/usr/share/ncurses4/terminfo/c/chromatics +/usr/share/ncurses4/terminfo/c/ci8510 +/usr/share/ncurses4/terminfo/c/cit-80 +/usr/share/ncurses4/terminfo/c/cit101 +/usr/share/ncurses4/terminfo/c/cit101e +/usr/share/ncurses4/terminfo/c/cit101e-132 +/usr/share/ncurses4/terminfo/c/cit101e-n +/usr/share/ncurses4/terminfo/c/cit101e-n132 +/usr/share/ncurses4/terminfo/c/cit101e-rv +/usr/share/ncurses4/terminfo/c/cit500 +/usr/share/ncurses4/terminfo/c/cit80 +/usr/share/ncurses4/terminfo/c/citc +/usr/share/ncurses4/terminfo/c/citoh +/usr/share/ncurses4/terminfo/c/citoh-6lpi +/usr/share/ncurses4/terminfo/c/citoh-8lpi +/usr/share/ncurses4/terminfo/c/citoh-comp +/usr/share/ncurses4/terminfo/c/citoh-elite +/usr/share/ncurses4/terminfo/c/citoh-pica +/usr/share/ncurses4/terminfo/c/citoh-prop +/usr/share/ncurses4/terminfo/c/citoh-ps +/usr/share/ncurses4/terminfo/c/coco3 +/usr/share/ncurses4/terminfo/c/coherent +/usr/share/ncurses4/terminfo/c/color_xterm +/usr/share/ncurses4/terminfo/c/colorscan +/usr/share/ncurses4/terminfo/c/commodore +/usr/share/ncurses4/terminfo/c/concept +/usr/share/ncurses4/terminfo/c/concept-avt +/usr/share/ncurses4/terminfo/c/concept100 +/usr/share/ncurses4/terminfo/c/concept100-rv +/usr/share/ncurses4/terminfo/c/concept108 +/usr/share/ncurses4/terminfo/c/concept108-4p +/usr/share/ncurses4/terminfo/c/concept108-8p +/usr/share/ncurses4/terminfo/c/concept108-w-8 +/usr/share/ncurses4/terminfo/c/concept108-w8p +/usr/share/ncurses4/terminfo/c/concept108rv4p +/usr/share/ncurses4/terminfo/c/cons25 +/usr/share/ncurses4/terminfo/c/cons25-iso-m +/usr/share/ncurses4/terminfo/c/cons25-iso8859 +/usr/share/ncurses4/terminfo/c/cons25-koi8-r +/usr/share/ncurses4/terminfo/c/cons25-koi8r-m +/usr/share/ncurses4/terminfo/c/cons25-m +/usr/share/ncurses4/terminfo/c/cons25l1 +/usr/share/ncurses4/terminfo/c/cons25l1-m +/usr/share/ncurses4/terminfo/c/cons25r +/usr/share/ncurses4/terminfo/c/cons25r-m +/usr/share/ncurses4/terminfo/c/cons25w +/usr/share/ncurses4/terminfo/c/cons30 +/usr/share/ncurses4/terminfo/c/cons30-m +/usr/share/ncurses4/terminfo/c/cons43 +/usr/share/ncurses4/terminfo/c/cons43-m +/usr/share/ncurses4/terminfo/c/cons50 +/usr/share/ncurses4/terminfo/c/cons50-iso-m +/usr/share/ncurses4/terminfo/c/cons50-iso8859 +/usr/share/ncurses4/terminfo/c/cons50-koi8r +/usr/share/ncurses4/terminfo/c/cons50-koi8r-m +/usr/share/ncurses4/terminfo/c/cons50-m +/usr/share/ncurses4/terminfo/c/cons50l1 +/usr/share/ncurses4/terminfo/c/cons50l1-m +/usr/share/ncurses4/terminfo/c/cons50r +/usr/share/ncurses4/terminfo/c/cons50r-m +/usr/share/ncurses4/terminfo/c/cons60 +/usr/share/ncurses4/terminfo/c/cons60-iso +/usr/share/ncurses4/terminfo/c/cons60-iso-m +/usr/share/ncurses4/terminfo/c/cons60-koi8r +/usr/share/ncurses4/terminfo/c/cons60-koi8r-m +/usr/share/ncurses4/terminfo/c/cons60-m +/usr/share/ncurses4/terminfo/c/cons60l1 +/usr/share/ncurses4/terminfo/c/cons60l1-m +/usr/share/ncurses4/terminfo/c/cons60r +/usr/share/ncurses4/terminfo/c/cons60r-m +/usr/share/ncurses4/terminfo/c/contel300 +/usr/share/ncurses4/terminfo/c/contel301 +/usr/share/ncurses4/terminfo/c/contel320 +/usr/share/ncurses4/terminfo/c/contel321 +/usr/share/ncurses4/terminfo/c/cops +/usr/share/ncurses4/terminfo/c/cops-10 +/usr/share/ncurses4/terminfo/c/cops10 +/usr/share/ncurses4/terminfo/c/cs10 +/usr/share/ncurses4/terminfo/c/cs10-w +/usr/share/ncurses4/terminfo/c/ct82 +/usr/share/ncurses4/terminfo/c/ct8500 +/usr/share/ncurses4/terminfo/c/ctrm +/usr/share/ncurses4/terminfo/c/cx +/usr/share/ncurses4/terminfo/c/cx100 +/usr/share/ncurses4/terminfo/c/cyb110 +/usr/share/ncurses4/terminfo/c/cyb83 +/usr/share/ncurses4/terminfo/d +/usr/share/ncurses4/terminfo/d/d132 +/usr/share/ncurses4/terminfo/d/d80 +/usr/share/ncurses4/terminfo/d/d800 +/usr/share/ncurses4/terminfo/d/datagraphix +/usr/share/ncurses4/terminfo/d/datamedia2500 +/usr/share/ncurses4/terminfo/d/datapoint +/usr/share/ncurses4/terminfo/d/dataspeed40 +/usr/share/ncurses4/terminfo/d/dd5000 +/usr/share/ncurses4/terminfo/d/ddr +/usr/share/ncurses4/terminfo/d/ddr3180 +/usr/share/ncurses4/terminfo/d/dec-vt100 +/usr/share/ncurses4/terminfo/d/dec-vt220 +/usr/share/ncurses4/terminfo/d/dec-vt330 +/usr/share/ncurses4/terminfo/d/dec-vt340 +/usr/share/ncurses4/terminfo/d/dec-vt400 +/usr/share/ncurses4/terminfo/d/decpro +/usr/share/ncurses4/terminfo/d/decwriter +/usr/share/ncurses4/terminfo/d/delta +/usr/share/ncurses4/terminfo/d/dg-ansi +/usr/share/ncurses4/terminfo/d/dg100 +/usr/share/ncurses4/terminfo/d/dg200 +/usr/share/ncurses4/terminfo/d/dg210 +/usr/share/ncurses4/terminfo/d/dg211 +/usr/share/ncurses4/terminfo/d/dg450 +/usr/share/ncurses4/terminfo/d/dg460-ansi +/usr/share/ncurses4/terminfo/d/dg6053 +/usr/share/ncurses4/terminfo/d/dg6134 +/usr/share/ncurses4/terminfo/d/diablo +/usr/share/ncurses4/terminfo/d/diablo-lm +/usr/share/ncurses4/terminfo/d/diablo1620 +/usr/share/ncurses4/terminfo/d/diablo1620-m8 +/usr/share/ncurses4/terminfo/d/diablo1640 +/usr/share/ncurses4/terminfo/d/diablo1640-lm +/usr/share/ncurses4/terminfo/d/diablo1640-m8 +/usr/share/ncurses4/terminfo/d/diablo1720 +/usr/share/ncurses4/terminfo/d/diablo1730 +/usr/share/ncurses4/terminfo/d/diablo1740 +/usr/share/ncurses4/terminfo/d/diablo1740-lm +/usr/share/ncurses4/terminfo/d/diablo450 +/usr/share/ncurses4/terminfo/d/diablo630 +/usr/share/ncurses4/terminfo/d/dialogue +/usr/share/ncurses4/terminfo/d/dialogue80 +/usr/share/ncurses4/terminfo/d/digilog +/usr/share/ncurses4/terminfo/d/dku7003 +/usr/share/ncurses4/terminfo/d/dku7003-dumb +/usr/share/ncurses4/terminfo/d/dm1520 +/usr/share/ncurses4/terminfo/d/dm1521 +/usr/share/ncurses4/terminfo/d/dm2500 +/usr/share/ncurses4/terminfo/d/dm3025 +/usr/share/ncurses4/terminfo/d/dm3045 +/usr/share/ncurses4/terminfo/d/dm80 +/usr/share/ncurses4/terminfo/d/dm80w +/usr/share/ncurses4/terminfo/d/dmchat +/usr/share/ncurses4/terminfo/d/dmd +/usr/share/ncurses4/terminfo/d/dmd-24 +/usr/share/ncurses4/terminfo/d/dmd-34 +/usr/share/ncurses4/terminfo/d/dmd1 +/usr/share/ncurses4/terminfo/d/dmdt80 +/usr/share/ncurses4/terminfo/d/dmdt80w +/usr/share/ncurses4/terminfo/d/dmterm +/usr/share/ncurses4/terminfo/d/dp3360 +/usr/share/ncurses4/terminfo/d/dp8242 +/usr/share/ncurses4/terminfo/d/ds40 +/usr/share/ncurses4/terminfo/d/ds40-2 +/usr/share/ncurses4/terminfo/d/dt-100 +/usr/share/ncurses4/terminfo/d/dt-100w +/usr/share/ncurses4/terminfo/d/dt100 +/usr/share/ncurses4/terminfo/d/dt100w +/usr/share/ncurses4/terminfo/d/dt110 +/usr/share/ncurses4/terminfo/d/dt80 +/usr/share/ncurses4/terminfo/d/dt80-sas +/usr/share/ncurses4/terminfo/d/dt80w +/usr/share/ncurses4/terminfo/d/dtc300s +/usr/share/ncurses4/terminfo/d/dtc382 +/usr/share/ncurses4/terminfo/d/dtterm +/usr/share/ncurses4/terminfo/d/dumb +/usr/share/ncurses4/terminfo/d/dw +/usr/share/ncurses4/terminfo/d/dw1 +/usr/share/ncurses4/terminfo/d/dw2 +/usr/share/ncurses4/terminfo/d/dw3 +/usr/share/ncurses4/terminfo/d/dw4 +/usr/share/ncurses4/terminfo/d/dwk +/usr/share/ncurses4/terminfo/d/dwk-vt +/usr/share/ncurses4/terminfo/e +/usr/share/ncurses4/terminfo/e/ecma+color +/usr/share/ncurses4/terminfo/e/ecma+sgr +/usr/share/ncurses4/terminfo/e/emots +/usr/share/ncurses4/terminfo/e/emu +/usr/share/ncurses4/terminfo/e/env230 +/usr/share/ncurses4/terminfo/e/envision230 +/usr/share/ncurses4/terminfo/e/ep40 +/usr/share/ncurses4/terminfo/e/ep4000 +/usr/share/ncurses4/terminfo/e/ep4080 +/usr/share/ncurses4/terminfo/e/ep48 +/usr/share/ncurses4/terminfo/e/ergo4000 +/usr/share/ncurses4/terminfo/e/esprit +/usr/share/ncurses4/terminfo/e/esprit-am +/usr/share/ncurses4/terminfo/e/eterm +/usr/share/ncurses4/terminfo/e/ex155 +/usr/share/ncurses4/terminfo/e/excel62 +/usr/share/ncurses4/terminfo/e/excel62-rv +/usr/share/ncurses4/terminfo/e/excel62-w +/usr/share/ncurses4/terminfo/e/excel64 +/usr/share/ncurses4/terminfo/e/excel64-rv +/usr/share/ncurses4/terminfo/e/excel64-w +/usr/share/ncurses4/terminfo/e/exec80 +/usr/share/ncurses4/terminfo/f +/usr/share/ncurses4/terminfo/f/f100 +/usr/share/ncurses4/terminfo/f/f100-rv +/usr/share/ncurses4/terminfo/f/f110 +/usr/share/ncurses4/terminfo/f/f110-14 +/usr/share/ncurses4/terminfo/f/f110-14w +/usr/share/ncurses4/terminfo/f/f110-w +/usr/share/ncurses4/terminfo/f/f1720 +/usr/share/ncurses4/terminfo/f/f1720a +/usr/share/ncurses4/terminfo/f/f200 +/usr/share/ncurses4/terminfo/f/f200-w +/usr/share/ncurses4/terminfo/f/f200vi +/usr/share/ncurses4/terminfo/f/f200vi-w +/usr/share/ncurses4/terminfo/f/falco +/usr/share/ncurses4/terminfo/f/falco-p +/usr/share/ncurses4/terminfo/f/fenix +/usr/share/ncurses4/terminfo/f/fenixw +/usr/share/ncurses4/terminfo/f/fixterm +/usr/share/ncurses4/terminfo/f/fortune +/usr/share/ncurses4/terminfo/f/fos +/usr/share/ncurses4/terminfo/f/fox +/usr/share/ncurses4/terminfo/f/freedom +/usr/share/ncurses4/terminfo/f/freedom-rv +/usr/share/ncurses4/terminfo/f/freedom100 +/usr/share/ncurses4/terminfo/f/freedom110 +/usr/share/ncurses4/terminfo/f/freedom200 +/usr/share/ncurses4/terminfo/g +/usr/share/ncurses4/terminfo/g/gator +/usr/share/ncurses4/terminfo/g/gator-52 +/usr/share/ncurses4/terminfo/g/gator-52t +/usr/share/ncurses4/terminfo/g/gator-t +/usr/share/ncurses4/terminfo/g/gigi +/usr/share/ncurses4/terminfo/g/glasstty +/usr/share/ncurses4/terminfo/g/go-225 +/usr/share/ncurses4/terminfo/g/go140 +/usr/share/ncurses4/terminfo/g/go140w +/usr/share/ncurses4/terminfo/g/go225 +/usr/share/ncurses4/terminfo/g/graphos +/usr/share/ncurses4/terminfo/g/graphos-30 +/usr/share/ncurses4/terminfo/g/gs5430 +/usr/share/ncurses4/terminfo/g/gs5430-22 +/usr/share/ncurses4/terminfo/g/gs5430-24 +/usr/share/ncurses4/terminfo/g/gs6300 +/usr/share/ncurses4/terminfo/g/gsi +/usr/share/ncurses4/terminfo/g/gt100 +/usr/share/ncurses4/terminfo/g/gt100a +/usr/share/ncurses4/terminfo/g/gt40 +/usr/share/ncurses4/terminfo/g/gt42 +/usr/share/ncurses4/terminfo/g/guru +/usr/share/ncurses4/terminfo/g/guru+rv +/usr/share/ncurses4/terminfo/g/guru+s +/usr/share/ncurses4/terminfo/g/guru+unk +/usr/share/ncurses4/terminfo/g/guru-24 +/usr/share/ncurses4/terminfo/g/guru-33 +/usr/share/ncurses4/terminfo/g/guru-33-rv +/usr/share/ncurses4/terminfo/g/guru-33-s +/usr/share/ncurses4/terminfo/g/guru-44 +/usr/share/ncurses4/terminfo/g/guru-44-s +/usr/share/ncurses4/terminfo/g/guru-76 +/usr/share/ncurses4/terminfo/g/guru-76-lp +/usr/share/ncurses4/terminfo/g/guru-76-s +/usr/share/ncurses4/terminfo/g/guru-76-w +/usr/share/ncurses4/terminfo/g/guru-76-w-s +/usr/share/ncurses4/terminfo/g/guru-76-wm +/usr/share/ncurses4/terminfo/g/guru-lp +/usr/share/ncurses4/terminfo/g/guru-nctxt +/usr/share/ncurses4/terminfo/g/guru-rv +/usr/share/ncurses4/terminfo/g/guru-s +/usr/share/ncurses4/terminfo/h +/usr/share/ncurses4/terminfo/h/h-100 +/usr/share/ncurses4/terminfo/h/h-100bw +/usr/share/ncurses4/terminfo/h/h100 +/usr/share/ncurses4/terminfo/h/h100bw +/usr/share/ncurses4/terminfo/h/h19 +/usr/share/ncurses4/terminfo/h/h19-a +/usr/share/ncurses4/terminfo/h/h19-b +/usr/share/ncurses4/terminfo/h/h19-bs +/usr/share/ncurses4/terminfo/h/h19-g +/usr/share/ncurses4/terminfo/h/h19-smul +/usr/share/ncurses4/terminfo/h/h19-u +/usr/share/ncurses4/terminfo/h/h19-us +/usr/share/ncurses4/terminfo/h/h19a +/usr/share/ncurses4/terminfo/h/h19g +/usr/share/ncurses4/terminfo/h/h19k +/usr/share/ncurses4/terminfo/h/h19kermit +/usr/share/ncurses4/terminfo/h/h19us +/usr/share/ncurses4/terminfo/h/h29a-kc-bc +/usr/share/ncurses4/terminfo/h/h29a-kc-uc +/usr/share/ncurses4/terminfo/h/h29a-nkc-bc +/usr/share/ncurses4/terminfo/h/h29a-nkc-uc +/usr/share/ncurses4/terminfo/h/h80 +/usr/share/ncurses4/terminfo/h/ha8675 +/usr/share/ncurses4/terminfo/h/ha8686 +/usr/share/ncurses4/terminfo/h/hazel +/usr/share/ncurses4/terminfo/h/hds200 +/usr/share/ncurses4/terminfo/h/he80 +/usr/share/ncurses4/terminfo/h/heath +/usr/share/ncurses4/terminfo/h/heath-19 +/usr/share/ncurses4/terminfo/h/heath-ansi +/usr/share/ncurses4/terminfo/h/heathkit +/usr/share/ncurses4/terminfo/h/heathkit-a +/usr/share/ncurses4/terminfo/h/hft +/usr/share/ncurses4/terminfo/h/hft-c +/usr/share/ncurses4/terminfo/h/hirez100 +/usr/share/ncurses4/terminfo/h/hirez100-w +/usr/share/ncurses4/terminfo/h/hmod1 +/usr/share/ncurses4/terminfo/h/hp +/usr/share/ncurses4/terminfo/h/hp+arrows +/usr/share/ncurses4/terminfo/h/hp+color +/usr/share/ncurses4/terminfo/h/hp+labels +/usr/share/ncurses4/terminfo/h/hp+pfk+arrows +/usr/share/ncurses4/terminfo/h/hp+pfk+cr +/usr/share/ncurses4/terminfo/h/hp+pfk-cr +/usr/share/ncurses4/terminfo/h/hp+printer +/usr/share/ncurses4/terminfo/h/hp110 +/usr/share/ncurses4/terminfo/h/hp150 +/usr/share/ncurses4/terminfo/h/hp2 +/usr/share/ncurses4/terminfo/h/hp236 +/usr/share/ncurses4/terminfo/h/hp2382 +/usr/share/ncurses4/terminfo/h/hp2382a +/usr/share/ncurses4/terminfo/h/hp2392 +/usr/share/ncurses4/terminfo/h/hp2397 +/usr/share/ncurses4/terminfo/h/hp2397a +/usr/share/ncurses4/terminfo/h/hp2621 +/usr/share/ncurses4/terminfo/h/hp2621-48 +/usr/share/ncurses4/terminfo/h/hp2621-a +/usr/share/ncurses4/terminfo/h/hp2621-ba +/usr/share/ncurses4/terminfo/h/hp2621-fl +/usr/share/ncurses4/terminfo/h/hp2621-k45 +/usr/share/ncurses4/terminfo/h/hp2621-nl +/usr/share/ncurses4/terminfo/h/hp2621-nt +/usr/share/ncurses4/terminfo/h/hp2621-wl +/usr/share/ncurses4/terminfo/h/hp2621A +/usr/share/ncurses4/terminfo/h/hp2621a +/usr/share/ncurses4/terminfo/h/hp2621a-a +/usr/share/ncurses4/terminfo/h/hp2621b +/usr/share/ncurses4/terminfo/h/hp2621b-kx +/usr/share/ncurses4/terminfo/h/hp2621b-kx-p +/usr/share/ncurses4/terminfo/h/hp2621b-p +/usr/share/ncurses4/terminfo/h/hp2621k45 +/usr/share/ncurses4/terminfo/h/hp2621p +/usr/share/ncurses4/terminfo/h/hp2621p-a +/usr/share/ncurses4/terminfo/h/hp2622 +/usr/share/ncurses4/terminfo/h/hp2622a +/usr/share/ncurses4/terminfo/h/hp2623 +/usr/share/ncurses4/terminfo/h/hp2623a +/usr/share/ncurses4/terminfo/h/hp2624 +/usr/share/ncurses4/terminfo/h/hp2624-10p +/usr/share/ncurses4/terminfo/h/hp2624a +/usr/share/ncurses4/terminfo/h/hp2624a-10p +/usr/share/ncurses4/terminfo/h/hp2624b +/usr/share/ncurses4/terminfo/h/hp2624b-10p +/usr/share/ncurses4/terminfo/h/hp2624b-10p-p +/usr/share/ncurses4/terminfo/h/hp2624b-4p +/usr/share/ncurses4/terminfo/h/hp2624b-4p-p +/usr/share/ncurses4/terminfo/h/hp2624b-p +/usr/share/ncurses4/terminfo/h/hp2626 +/usr/share/ncurses4/terminfo/h/hp2626-12 +/usr/share/ncurses4/terminfo/h/hp2626-12-s +/usr/share/ncurses4/terminfo/h/hp2626-12x40 +/usr/share/ncurses4/terminfo/h/hp2626-ns +/usr/share/ncurses4/terminfo/h/hp2626-s +/usr/share/ncurses4/terminfo/h/hp2626-x40 +/usr/share/ncurses4/terminfo/h/hp2626a +/usr/share/ncurses4/terminfo/h/hp2626p +/usr/share/ncurses4/terminfo/h/hp2627a +/usr/share/ncurses4/terminfo/h/hp2627a-rev +/usr/share/ncurses4/terminfo/h/hp2627c +/usr/share/ncurses4/terminfo/h/hp262x +/usr/share/ncurses4/terminfo/h/hp2640a +/usr/share/ncurses4/terminfo/h/hp2640b +/usr/share/ncurses4/terminfo/h/hp2641a +/usr/share/ncurses4/terminfo/h/hp2644a +/usr/share/ncurses4/terminfo/h/hp2645 +/usr/share/ncurses4/terminfo/h/hp2645a +/usr/share/ncurses4/terminfo/h/hp2647a +/usr/share/ncurses4/terminfo/h/hp2648 +/usr/share/ncurses4/terminfo/h/hp2648a +/usr/share/ncurses4/terminfo/h/hp300h +/usr/share/ncurses4/terminfo/h/hp45 +/usr/share/ncurses4/terminfo/h/hp700 +/usr/share/ncurses4/terminfo/h/hp700-wy +/usr/share/ncurses4/terminfo/h/hp70092 +/usr/share/ncurses4/terminfo/h/hp70092A +/usr/share/ncurses4/terminfo/h/hp70092a +/usr/share/ncurses4/terminfo/h/hp9837 +/usr/share/ncurses4/terminfo/h/hp9845 +/usr/share/ncurses4/terminfo/h/hp98550 +/usr/share/ncurses4/terminfo/h/hp98550a +/usr/share/ncurses4/terminfo/h/hp98720 +/usr/share/ncurses4/terminfo/h/hp98721 +/usr/share/ncurses4/terminfo/h/hpansi +/usr/share/ncurses4/terminfo/h/hpex +/usr/share/ncurses4/terminfo/h/hpex2 +/usr/share/ncurses4/terminfo/h/hpgeneric +/usr/share/ncurses4/terminfo/h/hpsub +/usr/share/ncurses4/terminfo/h/hpterm +/usr/share/ncurses4/terminfo/h/htx11 +/usr/share/ncurses4/terminfo/h/hz1000 +/usr/share/ncurses4/terminfo/h/hz1420 +/usr/share/ncurses4/terminfo/h/hz1500 +/usr/share/ncurses4/terminfo/h/hz1510 +/usr/share/ncurses4/terminfo/h/hz1520 +/usr/share/ncurses4/terminfo/h/hz1520-noesc +/usr/share/ncurses4/terminfo/h/hz1552 +/usr/share/ncurses4/terminfo/h/hz1552-rv +/usr/share/ncurses4/terminfo/h/hz2000 +/usr/share/ncurses4/terminfo/i +/usr/share/ncurses4/terminfo/i/i100 +/usr/share/ncurses4/terminfo/i/i3101 +/usr/share/ncurses4/terminfo/i/i3151 +/usr/share/ncurses4/terminfo/i/i3164 +/usr/share/ncurses4/terminfo/i/i400 +/usr/share/ncurses4/terminfo/i/ibcs2 +/usr/share/ncurses4/terminfo/i/ibm-apl +/usr/share/ncurses4/terminfo/i/ibm-pc +/usr/share/ncurses4/terminfo/i/ibm-system1 +/usr/share/ncurses4/terminfo/i/ibm3101 +/usr/share/ncurses4/terminfo/i/ibm3151 +/usr/share/ncurses4/terminfo/i/ibm3161 +/usr/share/ncurses4/terminfo/i/ibm3163 +/usr/share/ncurses4/terminfo/i/ibm3164 +/usr/share/ncurses4/terminfo/i/ibm327x +/usr/share/ncurses4/terminfo/i/ibm5051 +/usr/share/ncurses4/terminfo/i/ibm5081 +/usr/share/ncurses4/terminfo/i/ibm5081-c +/usr/share/ncurses4/terminfo/i/ibm5151 +/usr/share/ncurses4/terminfo/i/ibm5154 +/usr/share/ncurses4/terminfo/i/ibm5154-c +/usr/share/ncurses4/terminfo/i/ibm6153 +/usr/share/ncurses4/terminfo/i/ibm6154 +/usr/share/ncurses4/terminfo/i/ibm6154-c +/usr/share/ncurses4/terminfo/i/ibm6155 +/usr/share/ncurses4/terminfo/i/ibm8512 +/usr/share/ncurses4/terminfo/i/ibm8513 +/usr/share/ncurses4/terminfo/i/ibm8514 +/usr/share/ncurses4/terminfo/i/ibm8514-c +/usr/share/ncurses4/terminfo/i/ibmaed +/usr/share/ncurses4/terminfo/i/ibmapa16 +/usr/share/ncurses4/terminfo/i/ibmapa8 +/usr/share/ncurses4/terminfo/i/ibmapa8c +/usr/share/ncurses4/terminfo/i/ibmapa8c-c +/usr/share/ncurses4/terminfo/i/ibmega +/usr/share/ncurses4/terminfo/i/ibmega-c +/usr/share/ncurses4/terminfo/i/ibmmono +/usr/share/ncurses4/terminfo/i/ibmmpel +/usr/share/ncurses4/terminfo/i/ibmmpel-c +/usr/share/ncurses4/terminfo/i/ibmpc +/usr/share/ncurses4/terminfo/i/ibmpc3 +/usr/share/ncurses4/terminfo/i/ibmpc3r +/usr/share/ncurses4/terminfo/i/ibmpc3r-mono +/usr/share/ncurses4/terminfo/i/ibmpcx +/usr/share/ncurses4/terminfo/i/ibmvga +/usr/share/ncurses4/terminfo/i/ibmvga-c +/usr/share/ncurses4/terminfo/i/ibmx +/usr/share/ncurses4/terminfo/i/ifmr +/usr/share/ncurses4/terminfo/i/ims-ansi +/usr/share/ncurses4/terminfo/i/ims950 +/usr/share/ncurses4/terminfo/i/ims950-b +/usr/share/ncurses4/terminfo/i/ims950-rv +/usr/share/ncurses4/terminfo/i/infoton +/usr/share/ncurses4/terminfo/i/intertec +/usr/share/ncurses4/terminfo/i/intertube +/usr/share/ncurses4/terminfo/i/intertube2 +/usr/share/ncurses4/terminfo/i/intext +/usr/share/ncurses4/terminfo/i/intext2 +/usr/share/ncurses4/terminfo/i/intextii +/usr/share/ncurses4/terminfo/i/ips +/usr/share/ncurses4/terminfo/i/ipsi +/usr/share/ncurses4/terminfo/i/iq120 +/usr/share/ncurses4/terminfo/i/iq140 +/usr/share/ncurses4/terminfo/i/iris-ansi +/usr/share/ncurses4/terminfo/i/iris-ansi-ap +/usr/share/ncurses4/terminfo/i/iris-color +/usr/share/ncurses4/terminfo/i/iris40 +/usr/share/ncurses4/terminfo/j +/usr/share/ncurses4/terminfo/j/jaixterm-m +/usr/share/ncurses4/terminfo/j/jerq +/usr/share/ncurses4/terminfo/k +/usr/share/ncurses4/terminfo/k/k45 +/usr/share/ncurses4/terminfo/k/kaypro +/usr/share/ncurses4/terminfo/k/kaypro2 +/usr/share/ncurses4/terminfo/k/kermit +/usr/share/ncurses4/terminfo/k/kermit-am +/usr/share/ncurses4/terminfo/k/klone+acs +/usr/share/ncurses4/terminfo/k/klone+color +/usr/share/ncurses4/terminfo/k/klone+koi8acs +/usr/share/ncurses4/terminfo/k/klone+sgr +/usr/share/ncurses4/terminfo/k/klone+sgr-dumb +/usr/share/ncurses4/terminfo/k/kt7 +/usr/share/ncurses4/terminfo/k/kt7ix +/usr/share/ncurses4/terminfo/k/kterm +/usr/share/ncurses4/terminfo/k/ktm +/usr/share/ncurses4/terminfo/l +/usr/share/ncurses4/terminfo/l/la120 +/usr/share/ncurses4/terminfo/l/layer +/usr/share/ncurses4/terminfo/l/linux +/usr/share/ncurses4/terminfo/l/linux-c +/usr/share/ncurses4/terminfo/l/linux-c-nc +/usr/share/ncurses4/terminfo/l/linux-koi8 +/usr/share/ncurses4/terminfo/l/linux-koi8r +/usr/share/ncurses4/terminfo/l/linux-m +/usr/share/ncurses4/terminfo/l/linux-nic +/usr/share/ncurses4/terminfo/l/lisa +/usr/share/ncurses4/terminfo/l/lisaterm +/usr/share/ncurses4/terminfo/l/lisaterm-w +/usr/share/ncurses4/terminfo/l/liswb +/usr/share/ncurses4/terminfo/l/ln03 +/usr/share/ncurses4/terminfo/l/ln03-w +/usr/share/ncurses4/terminfo/l/lpr +/usr/share/ncurses4/terminfo/l/luna +/usr/share/ncurses4/terminfo/l/luna68k +/usr/share/ncurses4/terminfo/m +/usr/share/ncurses4/terminfo/m/m2-nam +/usr/share/ncurses4/terminfo/m/mac +/usr/share/ncurses4/terminfo/m/mac-w +/usr/share/ncurses4/terminfo/m/macintosh +/usr/share/ncurses4/terminfo/m/macterminal-w +/usr/share/ncurses4/terminfo/m/mai +/usr/share/ncurses4/terminfo/m/masscomp +/usr/share/ncurses4/terminfo/m/masscomp1 +/usr/share/ncurses4/terminfo/m/masscomp2 +/usr/share/ncurses4/terminfo/m/mdl110 +/usr/share/ncurses4/terminfo/m/megatek +/usr/share/ncurses4/terminfo/m/memhp +/usr/share/ncurses4/terminfo/m/mgr +/usr/share/ncurses4/terminfo/m/mgr-linux +/usr/share/ncurses4/terminfo/m/mgr-sun +/usr/share/ncurses4/terminfo/m/microb +/usr/share/ncurses4/terminfo/m/microbee +/usr/share/ncurses4/terminfo/m/microterm +/usr/share/ncurses4/terminfo/m/microterm5 +/usr/share/ncurses4/terminfo/m/mime +/usr/share/ncurses4/terminfo/m/mime-3ax +/usr/share/ncurses4/terminfo/m/mime-fb +/usr/share/ncurses4/terminfo/m/mime-hb +/usr/share/ncurses4/terminfo/m/mime1 +/usr/share/ncurses4/terminfo/m/mime2 +/usr/share/ncurses4/terminfo/m/mime2a +/usr/share/ncurses4/terminfo/m/mime2a-s +/usr/share/ncurses4/terminfo/m/mime2a-v +/usr/share/ncurses4/terminfo/m/mime314 +/usr/share/ncurses4/terminfo/m/mime340 +/usr/share/ncurses4/terminfo/m/mime3a +/usr/share/ncurses4/terminfo/m/mime3ax +/usr/share/ncurses4/terminfo/m/mimei +/usr/share/ncurses4/terminfo/m/mimeii +/usr/share/ncurses4/terminfo/m/minitel +/usr/share/ncurses4/terminfo/m/minitel-2 +/usr/share/ncurses4/terminfo/m/minitel-2-nam +/usr/share/ncurses4/terminfo/m/minix +/usr/share/ncurses4/terminfo/m/minix-old +/usr/share/ncurses4/terminfo/m/minix-old-am +/usr/share/ncurses4/terminfo/m/mm314 +/usr/share/ncurses4/terminfo/m/mm340 +/usr/share/ncurses4/terminfo/m/mod +/usr/share/ncurses4/terminfo/m/mod24 +/usr/share/ncurses4/terminfo/m/modgraph +/usr/share/ncurses4/terminfo/m/modgraph2 +/usr/share/ncurses4/terminfo/m/modgraph48 +/usr/share/ncurses4/terminfo/m/mono-emx +/usr/share/ncurses4/terminfo/m/msk227 +/usr/share/ncurses4/terminfo/m/msk22714 +/usr/share/ncurses4/terminfo/m/msk227am +/usr/share/ncurses4/terminfo/m/mskermit227 +/usr/share/ncurses4/terminfo/m/mskermit22714 +/usr/share/ncurses4/terminfo/m/mskermit227am +/usr/share/ncurses4/terminfo/m/mt-70 +/usr/share/ncurses4/terminfo/m/mt4520-rv +/usr/share/ncurses4/terminfo/m/mt70 +/usr/share/ncurses4/terminfo/n +/usr/share/ncurses4/terminfo/n/nansi.sys +/usr/share/ncurses4/terminfo/n/nansi.sysk +/usr/share/ncurses4/terminfo/n/nansisys +/usr/share/ncurses4/terminfo/n/nansisysk +/usr/share/ncurses4/terminfo/n/ncr7900 +/usr/share/ncurses4/terminfo/n/ncr7900i +/usr/share/ncurses4/terminfo/n/ncr7900iv +/usr/share/ncurses4/terminfo/n/ncr7901 +/usr/share/ncurses4/terminfo/n/nec +/usr/share/ncurses4/terminfo/n/nec5520 +/usr/share/ncurses4/terminfo/n/newhp +/usr/share/ncurses4/terminfo/n/newhpkeyboard +/usr/share/ncurses4/terminfo/n/news +/usr/share/ncurses4/terminfo/n/news-29 +/usr/share/ncurses4/terminfo/n/news-29-euc +/usr/share/ncurses4/terminfo/n/news-29-sjis +/usr/share/ncurses4/terminfo/n/news-33 +/usr/share/ncurses4/terminfo/n/news-33-euc +/usr/share/ncurses4/terminfo/n/news-33-sjis +/usr/share/ncurses4/terminfo/n/news-42 +/usr/share/ncurses4/terminfo/n/news-42-euc +/usr/share/ncurses4/terminfo/n/news-42-sjis +/usr/share/ncurses4/terminfo/n/news-a +/usr/share/ncurses4/terminfo/n/news-o +/usr/share/ncurses4/terminfo/n/news-old-unk +/usr/share/ncurses4/terminfo/n/news-unk +/usr/share/ncurses4/terminfo/n/news28 +/usr/share/ncurses4/terminfo/n/news28-a +/usr/share/ncurses4/terminfo/n/news29 +/usr/share/ncurses4/terminfo/n/news31 +/usr/share/ncurses4/terminfo/n/news31-a +/usr/share/ncurses4/terminfo/n/news31-o +/usr/share/ncurses4/terminfo/n/news33 +/usr/share/ncurses4/terminfo/n/news40 +/usr/share/ncurses4/terminfo/n/news40-a +/usr/share/ncurses4/terminfo/n/news40-o +/usr/share/ncurses4/terminfo/n/news42 +/usr/share/ncurses4/terminfo/n/newscbm +/usr/share/ncurses4/terminfo/n/newscbm-a +/usr/share/ncurses4/terminfo/n/newscbm-o +/usr/share/ncurses4/terminfo/n/newscbm33 +/usr/share/ncurses4/terminfo/n/next +/usr/share/ncurses4/terminfo/n/nextshell +/usr/share/ncurses4/terminfo/n/northstar +/usr/share/ncurses4/terminfo/n/nwe501 +/usr/share/ncurses4/terminfo/n/nwe501-a +/usr/share/ncurses4/terminfo/n/nwe501-o +/usr/share/ncurses4/terminfo/n/nwp-511 +/usr/share/ncurses4/terminfo/n/nwp-517 +/usr/share/ncurses4/terminfo/n/nwp-517-w +/usr/share/ncurses4/terminfo/n/nwp251-a +/usr/share/ncurses4/terminfo/n/nwp251-o +/usr/share/ncurses4/terminfo/n/nwp511 +/usr/share/ncurses4/terminfo/n/nwp512 +/usr/share/ncurses4/terminfo/n/nwp512-a +/usr/share/ncurses4/terminfo/n/nwp512-o +/usr/share/ncurses4/terminfo/n/nwp513 +/usr/share/ncurses4/terminfo/n/nwp513-a +/usr/share/ncurses4/terminfo/n/nwp513-o +/usr/share/ncurses4/terminfo/n/nwp514 +/usr/share/ncurses4/terminfo/n/nwp514-a +/usr/share/ncurses4/terminfo/n/nwp514-o +/usr/share/ncurses4/terminfo/n/nwp517 +/usr/share/ncurses4/terminfo/n/nwp517-w +/usr/share/ncurses4/terminfo/n/nwp518 +/usr/share/ncurses4/terminfo/n/nwp518-a +/usr/share/ncurses4/terminfo/n/nwp518-o +/usr/share/ncurses4/terminfo/o +/usr/share/ncurses4/terminfo/o/o31 +/usr/share/ncurses4/terminfo/o/o4112-nd +/usr/share/ncurses4/terminfo/o/o85h +/usr/share/ncurses4/terminfo/o/oabm85h +/usr/share/ncurses4/terminfo/o/oblit +/usr/share/ncurses4/terminfo/o/oc100 +/usr/share/ncurses4/terminfo/o/oconcept +/usr/share/ncurses4/terminfo/o/ojerq +/usr/share/ncurses4/terminfo/o/oldibmpc3 +/usr/share/ncurses4/terminfo/o/oldpc3 +/usr/share/ncurses4/terminfo/o/oldsun +/usr/share/ncurses4/terminfo/o/omron +/usr/share/ncurses4/terminfo/o/opus3n1+ +/usr/share/ncurses4/terminfo/o/origibmpc3 +/usr/share/ncurses4/terminfo/o/origpc3 +/usr/share/ncurses4/terminfo/o/os9LII +/usr/share/ncurses4/terminfo/o/osborne +/usr/share/ncurses4/terminfo/o/osborne-w +/usr/share/ncurses4/terminfo/o/osborne1 +/usr/share/ncurses4/terminfo/o/osborne1-w +/usr/share/ncurses4/terminfo/o/osexec +/usr/share/ncurses4/terminfo/o/otek4112 +/usr/share/ncurses4/terminfo/o/otek4113 +/usr/share/ncurses4/terminfo/o/otek4114 +/usr/share/ncurses4/terminfo/o/otek4115 +/usr/share/ncurses4/terminfo/o/owl +/usr/share/ncurses4/terminfo/p +/usr/share/ncurses4/terminfo/p/p12 +/usr/share/ncurses4/terminfo/p/p12-m +/usr/share/ncurses4/terminfo/p/p12-m-w +/usr/share/ncurses4/terminfo/p/p12-w +/usr/share/ncurses4/terminfo/p/p14 +/usr/share/ncurses4/terminfo/p/p14-m +/usr/share/ncurses4/terminfo/p/p14-m-w +/usr/share/ncurses4/terminfo/p/p14-w +/usr/share/ncurses4/terminfo/p/p19 +/usr/share/ncurses4/terminfo/p/p4 +/usr/share/ncurses4/terminfo/p/p5 +/usr/share/ncurses4/terminfo/p/p7 +/usr/share/ncurses4/terminfo/p/p8 +/usr/share/ncurses4/terminfo/p/p8-w +/usr/share/ncurses4/terminfo/p/p8gl +/usr/share/ncurses4/terminfo/p/p9 +/usr/share/ncurses4/terminfo/p/p9-8 +/usr/share/ncurses4/terminfo/p/p9-8-w +/usr/share/ncurses4/terminfo/p/p9-w +/usr/share/ncurses4/terminfo/p/pc-coherent +/usr/share/ncurses4/terminfo/p/pc-minix +/usr/share/ncurses4/terminfo/p/pc-venix +/usr/share/ncurses4/terminfo/p/pc3 +/usr/share/ncurses4/terminfo/p/pc3-bold +/usr/share/ncurses4/terminfo/p/pc3r +/usr/share/ncurses4/terminfo/p/pc3r-m +/usr/share/ncurses4/terminfo/p/pc6300plus +/usr/share/ncurses4/terminfo/p/pc7300 +/usr/share/ncurses4/terminfo/p/pcansi +/usr/share/ncurses4/terminfo/p/pcansi-25 +/usr/share/ncurses4/terminfo/p/pcansi-25-m +/usr/share/ncurses4/terminfo/p/pcansi-33 +/usr/share/ncurses4/terminfo/p/pcansi-33-m +/usr/share/ncurses4/terminfo/p/pcansi-43 +/usr/share/ncurses4/terminfo/p/pcansi-43-m +/usr/share/ncurses4/terminfo/p/pcansi-m +/usr/share/ncurses4/terminfo/p/pcansi-mono +/usr/share/ncurses4/terminfo/p/pcansi25 +/usr/share/ncurses4/terminfo/p/pcansi25m +/usr/share/ncurses4/terminfo/p/pcansi33 +/usr/share/ncurses4/terminfo/p/pcansi33m +/usr/share/ncurses4/terminfo/p/pcansi43 +/usr/share/ncurses4/terminfo/p/pccons +/usr/share/ncurses4/terminfo/p/pcconsole +/usr/share/ncurses4/terminfo/p/pcix +/usr/share/ncurses4/terminfo/p/pckermit +/usr/share/ncurses4/terminfo/p/pckermit12 +/usr/share/ncurses4/terminfo/p/pckermit120 +/usr/share/ncurses4/terminfo/p/pcplot +/usr/share/ncurses4/terminfo/p/pcvt25 +/usr/share/ncurses4/terminfo/p/pcvt25w +/usr/share/ncurses4/terminfo/p/pcvt28 +/usr/share/ncurses4/terminfo/p/pcvt28w +/usr/share/ncurses4/terminfo/p/pcvt35 +/usr/share/ncurses4/terminfo/p/pcvt35w +/usr/share/ncurses4/terminfo/p/pcvt40 +/usr/share/ncurses4/terminfo/p/pcvt40w +/usr/share/ncurses4/terminfo/p/pcvt43 +/usr/share/ncurses4/terminfo/p/pcvt43w +/usr/share/ncurses4/terminfo/p/pcvt50 +/usr/share/ncurses4/terminfo/p/pcvt50w +/usr/share/ncurses4/terminfo/p/pcvtXX +/usr/share/ncurses4/terminfo/p/pcz19 +/usr/share/ncurses4/terminfo/p/pe1100 +/usr/share/ncurses4/terminfo/p/pe1200 +/usr/share/ncurses4/terminfo/p/pe1251 +/usr/share/ncurses4/terminfo/p/pe550 +/usr/share/ncurses4/terminfo/p/pe6100 +/usr/share/ncurses4/terminfo/p/pe6300 +/usr/share/ncurses4/terminfo/p/pe6312 +/usr/share/ncurses4/terminfo/p/pe7000c +/usr/share/ncurses4/terminfo/p/pe7000m +/usr/share/ncurses4/terminfo/p/pilot +/usr/share/ncurses4/terminfo/p/printer +/usr/share/ncurses4/terminfo/p/prism12 +/usr/share/ncurses4/terminfo/p/prism12-m +/usr/share/ncurses4/terminfo/p/prism12-m-w +/usr/share/ncurses4/terminfo/p/prism12-w +/usr/share/ncurses4/terminfo/p/prism14 +/usr/share/ncurses4/terminfo/p/prism14-m +/usr/share/ncurses4/terminfo/p/prism14-m-w +/usr/share/ncurses4/terminfo/p/prism14-w +/usr/share/ncurses4/terminfo/p/prism2 +/usr/share/ncurses4/terminfo/p/prism4 +/usr/share/ncurses4/terminfo/p/prism5 +/usr/share/ncurses4/terminfo/p/prism7 +/usr/share/ncurses4/terminfo/p/prism8 +/usr/share/ncurses4/terminfo/p/prism8-w +/usr/share/ncurses4/terminfo/p/prism8gl +/usr/share/ncurses4/terminfo/p/prism9 +/usr/share/ncurses4/terminfo/p/prism9-8 +/usr/share/ncurses4/terminfo/p/prism9-8-w +/usr/share/ncurses4/terminfo/p/prism9-w +/usr/share/ncurses4/terminfo/p/pro350 +/usr/share/ncurses4/terminfo/p/ps300 +/usr/share/ncurses4/terminfo/p/psterm +/usr/share/ncurses4/terminfo/p/psterm-80x24 +/usr/share/ncurses4/terminfo/p/psterm-90x28 +/usr/share/ncurses4/terminfo/p/psterm-96x48 +/usr/share/ncurses4/terminfo/p/psterm-basic +/usr/share/ncurses4/terminfo/p/psterm-fast +/usr/share/ncurses4/terminfo/p/psx_ansi +/usr/share/ncurses4/terminfo/p/pt100 +/usr/share/ncurses4/terminfo/p/pt100w +/usr/share/ncurses4/terminfo/p/pt200 +/usr/share/ncurses4/terminfo/p/pt200w +/usr/share/ncurses4/terminfo/p/pt210 +/usr/share/ncurses4/terminfo/p/pt250 +/usr/share/ncurses4/terminfo/p/pt250w +/usr/share/ncurses4/terminfo/p/pt505 +/usr/share/ncurses4/terminfo/p/pt505-22 +/usr/share/ncurses4/terminfo/p/pt505-24 +/usr/share/ncurses4/terminfo/p/pty +/usr/share/ncurses4/terminfo/q +/usr/share/ncurses4/terminfo/q/qdcons +/usr/share/ncurses4/terminfo/q/qdss +/usr/share/ncurses4/terminfo/q/qnx +/usr/share/ncurses4/terminfo/q/qnx4 +/usr/share/ncurses4/terminfo/q/qume +/usr/share/ncurses4/terminfo/q/qume5 +/usr/share/ncurses4/terminfo/q/qvt101 +/usr/share/ncurses4/terminfo/q/qvt101+ +/usr/share/ncurses4/terminfo/q/qvt101p +/usr/share/ncurses4/terminfo/q/qvt102 +/usr/share/ncurses4/terminfo/q/qvt103 +/usr/share/ncurses4/terminfo/q/qvt103-w +/usr/share/ncurses4/terminfo/q/qvt108 +/usr/share/ncurses4/terminfo/q/qvt119 +/usr/share/ncurses4/terminfo/q/qvt119+ +/usr/share/ncurses4/terminfo/q/qvt119+-25 +/usr/share/ncurses4/terminfo/q/qvt119+-25-w +/usr/share/ncurses4/terminfo/q/qvt119+-w +/usr/share/ncurses4/terminfo/q/qvt119-25-w +/usr/share/ncurses4/terminfo/q/qvt119-w +/usr/share/ncurses4/terminfo/q/qvt119p +/usr/share/ncurses4/terminfo/q/qvt119p-25 +/usr/share/ncurses4/terminfo/q/qvt119p-25-w +/usr/share/ncurses4/terminfo/q/qvt119p-w +/usr/share/ncurses4/terminfo/q/qvt203 +/usr/share/ncurses4/terminfo/q/qvt203+ +/usr/share/ncurses4/terminfo/q/qvt203-25 +/usr/share/ncurses4/terminfo/q/qvt203-25-w +/usr/share/ncurses4/terminfo/q/qvt203-w +/usr/share/ncurses4/terminfo/q/qvt203-w-am +/usr/share/ncurses4/terminfo/r +/usr/share/ncurses4/terminfo/r/rbcomm +/usr/share/ncurses4/terminfo/r/rbcomm-nam +/usr/share/ncurses4/terminfo/r/rbcomm-w +/usr/share/ncurses4/terminfo/r/rca +/usr/share/ncurses4/terminfo/r/rebus3180 +/usr/share/ncurses4/terminfo/r/regent +/usr/share/ncurses4/terminfo/r/regent100 +/usr/share/ncurses4/terminfo/r/regent20 +/usr/share/ncurses4/terminfo/r/regent200 +/usr/share/ncurses4/terminfo/r/regent25 +/usr/share/ncurses4/terminfo/r/regent40 +/usr/share/ncurses4/terminfo/r/regent40+ +/usr/share/ncurses4/terminfo/r/regent60 +/usr/share/ncurses4/terminfo/r/rt6221 +/usr/share/ncurses4/terminfo/r/rt6221-w +/usr/share/ncurses4/terminfo/r/rtpc +/usr/share/ncurses4/terminfo/r/rxvt +/usr/share/ncurses4/terminfo/r/rxvt-basic +/usr/share/ncurses4/terminfo/s +/usr/share/ncurses4/terminfo/s/s +/usr/share/ncurses4/terminfo/s/s4 +/usr/share/ncurses4/terminfo/s/sb1 +/usr/share/ncurses4/terminfo/s/sb2 +/usr/share/ncurses4/terminfo/s/sb3 +/usr/share/ncurses4/terminfo/s/sbi +/usr/share/ncurses4/terminfo/s/sbobcat +/usr/share/ncurses4/terminfo/s/sc410 +/usr/share/ncurses4/terminfo/s/sc415 +/usr/share/ncurses4/terminfo/s/scanset +/usr/share/ncurses4/terminfo/s/scoansi +/usr/share/ncurses4/terminfo/s/screen +/usr/share/ncurses4/terminfo/s/screen-w +/usr/share/ncurses4/terminfo/s/screen2 +/usr/share/ncurses4/terminfo/s/screen3 +/usr/share/ncurses4/terminfo/s/screwpoint +/usr/share/ncurses4/terminfo/s/scrhp +/usr/share/ncurses4/terminfo/s/simterm +/usr/share/ncurses4/terminfo/s/soroc +/usr/share/ncurses4/terminfo/s/soroc120 +/usr/share/ncurses4/terminfo/s/soroc140 +/usr/share/ncurses4/terminfo/s/spinwriter +/usr/share/ncurses4/terminfo/s/st52 +/usr/share/ncurses4/terminfo/s/sun +/usr/share/ncurses4/terminfo/s/sun-1 +/usr/share/ncurses4/terminfo/s/sun-12 +/usr/share/ncurses4/terminfo/s/sun-17 +/usr/share/ncurses4/terminfo/s/sun-24 +/usr/share/ncurses4/terminfo/s/sun-34 +/usr/share/ncurses4/terminfo/s/sun-48 +/usr/share/ncurses4/terminfo/s/sun-c +/usr/share/ncurses4/terminfo/s/sun-cmd +/usr/share/ncurses4/terminfo/s/sun-e +/usr/share/ncurses4/terminfo/s/sun-e-s +/usr/share/ncurses4/terminfo/s/sun-il +/usr/share/ncurses4/terminfo/s/sun-nic +/usr/share/ncurses4/terminfo/s/sun-s +/usr/share/ncurses4/terminfo/s/sun-s-e +/usr/share/ncurses4/terminfo/s/sun-ss5 +/usr/share/ncurses4/terminfo/s/sun1 +/usr/share/ncurses4/terminfo/s/sun2 +/usr/share/ncurses4/terminfo/s/sune +/usr/share/ncurses4/terminfo/s/superbee +/usr/share/ncurses4/terminfo/s/superbee-xsb +/usr/share/ncurses4/terminfo/s/superbeeic +/usr/share/ncurses4/terminfo/s/superbrain +/usr/share/ncurses4/terminfo/s/sv80 +/usr/share/ncurses4/terminfo/s/swtp +/usr/share/ncurses4/terminfo/s/synertek +/usr/share/ncurses4/terminfo/s/synertek380 +/usr/share/ncurses4/terminfo/s/system1 +/usr/share/ncurses4/terminfo/t +/usr/share/ncurses4/terminfo/t/t10 +/usr/share/ncurses4/terminfo/t/t1061 +/usr/share/ncurses4/terminfo/t/t1061f +/usr/share/ncurses4/terminfo/t/t16 +/usr/share/ncurses4/terminfo/t/t3700 +/usr/share/ncurses4/terminfo/t/t3800 +/usr/share/ncurses4/terminfo/t/t653x +/usr/share/ncurses4/terminfo/t/tab +/usr/share/ncurses4/terminfo/t/tab132 +/usr/share/ncurses4/terminfo/t/tab132-15 +/usr/share/ncurses4/terminfo/t/tab132-rv +/usr/share/ncurses4/terminfo/t/tab132-w +/usr/share/ncurses4/terminfo/t/tab132-w-rv +/usr/share/ncurses4/terminfo/t/tandem6510 +/usr/share/ncurses4/terminfo/t/tandem653 +/usr/share/ncurses4/terminfo/t/tek +/usr/share/ncurses4/terminfo/t/tek4012 +/usr/share/ncurses4/terminfo/t/tek4013 +/usr/share/ncurses4/terminfo/t/tek4014 +/usr/share/ncurses4/terminfo/t/tek4014-sm +/usr/share/ncurses4/terminfo/t/tek4015 +/usr/share/ncurses4/terminfo/t/tek4015-sm +/usr/share/ncurses4/terminfo/t/tek4023 +/usr/share/ncurses4/terminfo/t/tek4024 +/usr/share/ncurses4/terminfo/t/tek4025 +/usr/share/ncurses4/terminfo/t/tek4025-17 +/usr/share/ncurses4/terminfo/t/tek4025-17-ws +/usr/share/ncurses4/terminfo/t/tek4025-cr +/usr/share/ncurses4/terminfo/t/tek4025-ex +/usr/share/ncurses4/terminfo/t/tek4025a +/usr/share/ncurses4/terminfo/t/tek4025ex +/usr/share/ncurses4/terminfo/t/tek4027 +/usr/share/ncurses4/terminfo/t/tek4027-ex +/usr/share/ncurses4/terminfo/t/tek4105 +/usr/share/ncurses4/terminfo/t/tek4105-30 +/usr/share/ncurses4/terminfo/t/tek4105a +/usr/share/ncurses4/terminfo/t/tek4106brl +/usr/share/ncurses4/terminfo/t/tek4107 +/usr/share/ncurses4/terminfo/t/tek4107brl +/usr/share/ncurses4/terminfo/t/tek4109 +/usr/share/ncurses4/terminfo/t/tek4109brl +/usr/share/ncurses4/terminfo/t/tek4112 +/usr/share/ncurses4/terminfo/t/tek4112-5 +/usr/share/ncurses4/terminfo/t/tek4112-nd +/usr/share/ncurses4/terminfo/t/tek4113 +/usr/share/ncurses4/terminfo/t/tek4113-34 +/usr/share/ncurses4/terminfo/t/tek4113-nd +/usr/share/ncurses4/terminfo/t/tek4114 +/usr/share/ncurses4/terminfo/t/tek4115 +/usr/share/ncurses4/terminfo/t/tek4125 +/usr/share/ncurses4/terminfo/t/tek4205 +/usr/share/ncurses4/terminfo/t/tek4207 +/usr/share/ncurses4/terminfo/t/tek4207-s +/usr/share/ncurses4/terminfo/t/tek4404 +/usr/share/ncurses4/terminfo/t/teleray +/usr/share/ncurses4/terminfo/t/teletec +/usr/share/ncurses4/terminfo/t/terminet +/usr/share/ncurses4/terminfo/t/terminet1200 +/usr/share/ncurses4/terminfo/t/terminet300 +/usr/share/ncurses4/terminfo/t/tgtelnet +/usr/share/ncurses4/terminfo/t/ti700 +/usr/share/ncurses4/terminfo/t/ti733 +/usr/share/ncurses4/terminfo/t/ti735 +/usr/share/ncurses4/terminfo/t/ti745 +/usr/share/ncurses4/terminfo/t/ti800 +/usr/share/ncurses4/terminfo/t/ti916 +/usr/share/ncurses4/terminfo/t/ti916-132 +/usr/share/ncurses4/terminfo/t/ti916-220-7 +/usr/share/ncurses4/terminfo/t/ti916-220-8 +/usr/share/ncurses4/terminfo/t/ti916-8 +/usr/share/ncurses4/terminfo/t/ti916-8-132 +/usr/share/ncurses4/terminfo/t/ti924 +/usr/share/ncurses4/terminfo/t/ti924-8 +/usr/share/ncurses4/terminfo/t/ti924-8w +/usr/share/ncurses4/terminfo/t/ti924w +/usr/share/ncurses4/terminfo/t/ti926 +/usr/share/ncurses4/terminfo/t/ti926-8 +/usr/share/ncurses4/terminfo/t/ti928 +/usr/share/ncurses4/terminfo/t/ti928-8 +/usr/share/ncurses4/terminfo/t/ti931 +/usr/share/ncurses4/terminfo/t/ti_ansi +/usr/share/ncurses4/terminfo/t/tn1200 +/usr/share/ncurses4/terminfo/t/tn300 +/usr/share/ncurses4/terminfo/t/trs16 +/usr/share/ncurses4/terminfo/t/trs2 +/usr/share/ncurses4/terminfo/t/trs80II +/usr/share/ncurses4/terminfo/t/trsII +/usr/share/ncurses4/terminfo/t/ts-1 +/usr/share/ncurses4/terminfo/t/ts-1p +/usr/share/ncurses4/terminfo/t/ts1 +/usr/share/ncurses4/terminfo/t/ts100 +/usr/share/ncurses4/terminfo/t/ts100-ctxt +/usr/share/ncurses4/terminfo/t/ts100-sp +/usr/share/ncurses4/terminfo/t/ts1p +/usr/share/ncurses4/terminfo/t/tt505-22 +/usr/share/ncurses4/terminfo/t/tty33 +/usr/share/ncurses4/terminfo/t/tty35 +/usr/share/ncurses4/terminfo/t/tty37 +/usr/share/ncurses4/terminfo/t/tty40 +/usr/share/ncurses4/terminfo/t/tty43 +/usr/share/ncurses4/terminfo/t/tty4420 +/usr/share/ncurses4/terminfo/t/tty4424 +/usr/share/ncurses4/terminfo/t/tty4424-1 +/usr/share/ncurses4/terminfo/t/tty4424m +/usr/share/ncurses4/terminfo/t/tty4426 +/usr/share/ncurses4/terminfo/t/tty5410 +/usr/share/ncurses4/terminfo/t/tty5410-w +/usr/share/ncurses4/terminfo/t/tty5410v1 +/usr/share/ncurses4/terminfo/t/tty5410v1-w +/usr/share/ncurses4/terminfo/t/tty5420 +/usr/share/ncurses4/terminfo/t/tty5420+nl +/usr/share/ncurses4/terminfo/t/tty5420-nl +/usr/share/ncurses4/terminfo/t/tty5420-rv +/usr/share/ncurses4/terminfo/t/tty5420-rv-nl +/usr/share/ncurses4/terminfo/t/tty5420-w +/usr/share/ncurses4/terminfo/t/tty5420-w-nl +/usr/share/ncurses4/terminfo/t/tty5420-w-rv +/usr/share/ncurses4/terminfo/t/tty5420-w-rv-n +/usr/share/ncurses4/terminfo/t/tty5425 +/usr/share/ncurses4/terminfo/t/tty5425-nl +/usr/share/ncurses4/terminfo/t/tty5425-w +/usr/share/ncurses4/terminfo/t/tty5620 +/usr/share/ncurses4/terminfo/t/tty5620-1 +/usr/share/ncurses4/terminfo/t/tty5620-24 +/usr/share/ncurses4/terminfo/t/tty5620-34 +/usr/share/ncurses4/terminfo/t/tty5620-s +/usr/share/ncurses4/terminfo/t/ttydmd +/usr/share/ncurses4/terminfo/t/tvi-2p +/usr/share/ncurses4/terminfo/t/tvi803 +/usr/share/ncurses4/terminfo/t/tvi9065 +/usr/share/ncurses4/terminfo/t/tvi910 +/usr/share/ncurses4/terminfo/t/tvi910+ +/usr/share/ncurses4/terminfo/t/tvi912 +/usr/share/ncurses4/terminfo/t/tvi912-2p +/usr/share/ncurses4/terminfo/t/tvi912b +/usr/share/ncurses4/terminfo/t/tvi912c +/usr/share/ncurses4/terminfo/t/tvi912cc +/usr/share/ncurses4/terminfo/t/tvi914 +/usr/share/ncurses4/terminfo/t/tvi920 +/usr/share/ncurses4/terminfo/t/tvi920-2p +/usr/share/ncurses4/terminfo/t/tvi920b +/usr/share/ncurses4/terminfo/t/tvi920c +/usr/share/ncurses4/terminfo/t/tvi921 +/usr/share/ncurses4/terminfo/t/tvi924 +/usr/share/ncurses4/terminfo/t/tvi925 +/usr/share/ncurses4/terminfo/t/tvi925-hi +/usr/share/ncurses4/terminfo/t/tvi92B +/usr/share/ncurses4/terminfo/t/tvi92D +/usr/share/ncurses4/terminfo/t/tvi950 +/usr/share/ncurses4/terminfo/t/tvi950-2p +/usr/share/ncurses4/terminfo/t/tvi950-4p +/usr/share/ncurses4/terminfo/t/tvi950-rv +/usr/share/ncurses4/terminfo/t/tvi950-rv-2p +/usr/share/ncurses4/terminfo/t/tvi950-rv-4p +/usr/share/ncurses4/terminfo/t/tvi955 +/usr/share/ncurses4/terminfo/t/tvi955-hb +/usr/share/ncurses4/terminfo/t/tvi955-w +/usr/share/ncurses4/terminfo/t/tvi970 +/usr/share/ncurses4/terminfo/t/tvi970-2p +/usr/share/ncurses4/terminfo/t/tvi970-vb +/usr/share/ncurses4/terminfo/t/tvipt +/usr/share/ncurses4/terminfo/u +/usr/share/ncurses4/terminfo/u/ultima2 +/usr/share/ncurses4/terminfo/u/ultimaII +/usr/share/ncurses4/terminfo/u/uniterm +/usr/share/ncurses4/terminfo/u/uniterm49 +/usr/share/ncurses4/terminfo/u/unixpc +/usr/share/ncurses4/terminfo/u/unknown +/usr/share/ncurses4/terminfo/u/uts30 +/usr/share/ncurses4/terminfo/v +/usr/share/ncurses4/terminfo/v/v200-nam +/usr/share/ncurses4/terminfo/v/v320n +/usr/share/ncurses4/terminfo/v/v3220 +/usr/share/ncurses4/terminfo/v/v5410 +/usr/share/ncurses4/terminfo/v/vapple +/usr/share/ncurses4/terminfo/v/vc103 +/usr/share/ncurses4/terminfo/v/vc203 +/usr/share/ncurses4/terminfo/v/vc303 +/usr/share/ncurses4/terminfo/v/vc303a +/usr/share/ncurses4/terminfo/v/vc403a +/usr/share/ncurses4/terminfo/v/vc404 +/usr/share/ncurses4/terminfo/v/vc404-s +/usr/share/ncurses4/terminfo/v/vc414 +/usr/share/ncurses4/terminfo/v/vc414h +/usr/share/ncurses4/terminfo/v/vc415 +/usr/share/ncurses4/terminfo/v/venix +/usr/share/ncurses4/terminfo/v/versaterm +/usr/share/ncurses4/terminfo/v/vi200 +/usr/share/ncurses4/terminfo/v/vi200-f +/usr/share/ncurses4/terminfo/v/vi200-rv +/usr/share/ncurses4/terminfo/v/vi300 +/usr/share/ncurses4/terminfo/v/vi300-old +/usr/share/ncurses4/terminfo/v/vi50 +/usr/share/ncurses4/terminfo/v/vi500 +/usr/share/ncurses4/terminfo/v/vi50adm +/usr/share/ncurses4/terminfo/v/vi55 +/usr/share/ncurses4/terminfo/v/vi550 +/usr/share/ncurses4/terminfo/v/vi603 +/usr/share/ncurses4/terminfo/v/viewpoint +/usr/share/ncurses4/terminfo/v/viewpoint3a+ +/usr/share/ncurses4/terminfo/v/viewpoint60 +/usr/share/ncurses4/terminfo/v/viewpoint90 +/usr/share/ncurses4/terminfo/v/visa50 +/usr/share/ncurses4/terminfo/v/visual603 +/usr/share/ncurses4/terminfo/v/vitty +/usr/share/ncurses4/terminfo/v/vk100 +/usr/share/ncurses4/terminfo/v/vp3a+ +/usr/share/ncurses4/terminfo/v/vp60 +/usr/share/ncurses4/terminfo/v/vp90 +/usr/share/ncurses4/terminfo/v/vremote +/usr/share/ncurses4/terminfo/v/vs100 +/usr/share/ncurses4/terminfo/v/vs100-x10 +/usr/share/ncurses4/terminfo/v/vsc +/usr/share/ncurses4/terminfo/v/vt-61 +/usr/share/ncurses4/terminfo/v/vt100 +/usr/share/ncurses4/terminfo/v/vt100-am +/usr/share/ncurses4/terminfo/v/vt100-bm +/usr/share/ncurses4/terminfo/v/vt100-bm-o +/usr/share/ncurses4/terminfo/v/vt100-bot-s +/usr/share/ncurses4/terminfo/v/vt100-nam +/usr/share/ncurses4/terminfo/v/vt100-nam-w +/usr/share/ncurses4/terminfo/v/vt100-nav +/usr/share/ncurses4/terminfo/v/vt100-nav-w +/usr/share/ncurses4/terminfo/v/vt100-s +/usr/share/ncurses4/terminfo/v/vt100-s-bot +/usr/share/ncurses4/terminfo/v/vt100-s-top +/usr/share/ncurses4/terminfo/v/vt100-top-s +/usr/share/ncurses4/terminfo/v/vt100-vb +/usr/share/ncurses4/terminfo/v/vt100-w +/usr/share/ncurses4/terminfo/v/vt100-w-am +/usr/share/ncurses4/terminfo/v/vt100-w-nam +/usr/share/ncurses4/terminfo/v/vt100-w-nav +/usr/share/ncurses4/terminfo/v/vt100nam +/usr/share/ncurses4/terminfo/v/vt102 +/usr/share/ncurses4/terminfo/v/vt102-nsgr +/usr/share/ncurses4/terminfo/v/vt102-w +/usr/share/ncurses4/terminfo/v/vt125 +/usr/share/ncurses4/terminfo/v/vt131 +/usr/share/ncurses4/terminfo/v/vt132 +/usr/share/ncurses4/terminfo/v/vt200 +/usr/share/ncurses4/terminfo/v/vt200-js +/usr/share/ncurses4/terminfo/v/vt200-w +/usr/share/ncurses4/terminfo/v/vt220 +/usr/share/ncurses4/terminfo/v/vt220-8 +/usr/share/ncurses4/terminfo/v/vt220-js +/usr/share/ncurses4/terminfo/v/vt220-nam +/usr/share/ncurses4/terminfo/v/vt220-w +/usr/share/ncurses4/terminfo/v/vt220d +/usr/share/ncurses4/terminfo/v/vt300 +/usr/share/ncurses4/terminfo/v/vt300-nam +/usr/share/ncurses4/terminfo/v/vt300-w +/usr/share/ncurses4/terminfo/v/vt300-w-nam +/usr/share/ncurses4/terminfo/v/vt320 +/usr/share/ncurses4/terminfo/v/vt320-k3 +/usr/share/ncurses4/terminfo/v/vt320-k311 +/usr/share/ncurses4/terminfo/v/vt320-nam +/usr/share/ncurses4/terminfo/v/vt320-w +/usr/share/ncurses4/terminfo/v/vt320-w-nam +/usr/share/ncurses4/terminfo/v/vt320nam +/usr/share/ncurses4/terminfo/v/vt330 +/usr/share/ncurses4/terminfo/v/vt340 +/usr/share/ncurses4/terminfo/v/vt400 +/usr/share/ncurses4/terminfo/v/vt400-24 +/usr/share/ncurses4/terminfo/v/vt420 +/usr/share/ncurses4/terminfo/v/vt420f +/usr/share/ncurses4/terminfo/v/vt420pc +/usr/share/ncurses4/terminfo/v/vt420pcdos +/usr/share/ncurses4/terminfo/v/vt50 +/usr/share/ncurses4/terminfo/v/vt50h +/usr/share/ncurses4/terminfo/v/vt510 +/usr/share/ncurses4/terminfo/v/vt510pc +/usr/share/ncurses4/terminfo/v/vt510pcdos +/usr/share/ncurses4/terminfo/v/vt52 +/usr/share/ncurses4/terminfo/v/vt520 +/usr/share/ncurses4/terminfo/v/vt525 +/usr/share/ncurses4/terminfo/v/vt61 +/usr/share/ncurses4/terminfo/v/vt61.5 +/usr/share/ncurses4/terminfo/w +/usr/share/ncurses4/terminfo/w/wren +/usr/share/ncurses4/terminfo/w/wrenw +/usr/share/ncurses4/terminfo/w/wsiris +/usr/share/ncurses4/terminfo/w/wy-75ap +/usr/share/ncurses4/terminfo/w/wy100 +/usr/share/ncurses4/terminfo/w/wy100q +/usr/share/ncurses4/terminfo/w/wy120 +/usr/share/ncurses4/terminfo/w/wy120-25 +/usr/share/ncurses4/terminfo/w/wy120-25-w +/usr/share/ncurses4/terminfo/w/wy120-vb +/usr/share/ncurses4/terminfo/w/wy120-w +/usr/share/ncurses4/terminfo/w/wy120-w-vb +/usr/share/ncurses4/terminfo/w/wy120-wvb +/usr/share/ncurses4/terminfo/w/wy150 +/usr/share/ncurses4/terminfo/w/wy150-25 +/usr/share/ncurses4/terminfo/w/wy150-25-w +/usr/share/ncurses4/terminfo/w/wy150-vb +/usr/share/ncurses4/terminfo/w/wy150-w +/usr/share/ncurses4/terminfo/w/wy150-w-vb +/usr/share/ncurses4/terminfo/w/wy160 +/usr/share/ncurses4/terminfo/w/wy160-25 +/usr/share/ncurses4/terminfo/w/wy160-25-w +/usr/share/ncurses4/terminfo/w/wy160-42 +/usr/share/ncurses4/terminfo/w/wy160-42-w +/usr/share/ncurses4/terminfo/w/wy160-43 +/usr/share/ncurses4/terminfo/w/wy160-43-w +/usr/share/ncurses4/terminfo/w/wy160-tek +/usr/share/ncurses4/terminfo/w/wy160-vb +/usr/share/ncurses4/terminfo/w/wy160-w +/usr/share/ncurses4/terminfo/w/wy160-w-vb +/usr/share/ncurses4/terminfo/w/wy160-wvb +/usr/share/ncurses4/terminfo/w/wy185 +/usr/share/ncurses4/terminfo/w/wy185-24 +/usr/share/ncurses4/terminfo/w/wy185-vb +/usr/share/ncurses4/terminfo/w/wy185-w +/usr/share/ncurses4/terminfo/w/wy185-wvb +/usr/share/ncurses4/terminfo/w/wy30 +/usr/share/ncurses4/terminfo/w/wy30-mc +/usr/share/ncurses4/terminfo/w/wy30-vb +/usr/share/ncurses4/terminfo/w/wy325 +/usr/share/ncurses4/terminfo/w/wy325-25 +/usr/share/ncurses4/terminfo/w/wy325-25w +/usr/share/ncurses4/terminfo/w/wy325-42 +/usr/share/ncurses4/terminfo/w/wy325-42w +/usr/share/ncurses4/terminfo/w/wy325-42w-vb +/usr/share/ncurses4/terminfo/w/wy325-42wvb +/usr/share/ncurses4/terminfo/w/wy325-43 +/usr/share/ncurses4/terminfo/w/wy325-43w +/usr/share/ncurses4/terminfo/w/wy325-43w-vb +/usr/share/ncurses4/terminfo/w/wy325-43wvb +/usr/share/ncurses4/terminfo/w/wy325-80 +/usr/share/ncurses4/terminfo/w/wy325-vb +/usr/share/ncurses4/terminfo/w/wy325-w +/usr/share/ncurses4/terminfo/w/wy325-w-vb +/usr/share/ncurses4/terminfo/w/wy325-wvb +/usr/share/ncurses4/terminfo/w/wy325w-24 +/usr/share/ncurses4/terminfo/w/wy350 +/usr/share/ncurses4/terminfo/w/wy350-vb +/usr/share/ncurses4/terminfo/w/wy350-w +/usr/share/ncurses4/terminfo/w/wy350-wvb +/usr/share/ncurses4/terminfo/w/wy370 +/usr/share/ncurses4/terminfo/w/wy370-101k +/usr/share/ncurses4/terminfo/w/wy370-105k +/usr/share/ncurses4/terminfo/w/wy370-EPC +/usr/share/ncurses4/terminfo/w/wy370-nk +/usr/share/ncurses4/terminfo/w/wy370-rv +/usr/share/ncurses4/terminfo/w/wy370-tek +/usr/share/ncurses4/terminfo/w/wy370-vb +/usr/share/ncurses4/terminfo/w/wy370-w +/usr/share/ncurses4/terminfo/w/wy370-wvb +/usr/share/ncurses4/terminfo/w/wy50 +/usr/share/ncurses4/terminfo/w/wy50-mc +/usr/share/ncurses4/terminfo/w/wy50-vb +/usr/share/ncurses4/terminfo/w/wy50-w +/usr/share/ncurses4/terminfo/w/wy50-wvb +/usr/share/ncurses4/terminfo/w/wy520 +/usr/share/ncurses4/terminfo/w/wy520-24 +/usr/share/ncurses4/terminfo/w/wy520-36 +/usr/share/ncurses4/terminfo/w/wy520-36pc +/usr/share/ncurses4/terminfo/w/wy520-36w +/usr/share/ncurses4/terminfo/w/wy520-36wpc +/usr/share/ncurses4/terminfo/w/wy520-48 +/usr/share/ncurses4/terminfo/w/wy520-48pc +/usr/share/ncurses4/terminfo/w/wy520-48w +/usr/share/ncurses4/terminfo/w/wy520-48wpc +/usr/share/ncurses4/terminfo/w/wy520-epc +/usr/share/ncurses4/terminfo/w/wy520-epc-24 +/usr/share/ncurses4/terminfo/w/wy520-epc-vb +/usr/share/ncurses4/terminfo/w/wy520-epc-w +/usr/share/ncurses4/terminfo/w/wy520-epc-wvb +/usr/share/ncurses4/terminfo/w/wy520-vb +/usr/share/ncurses4/terminfo/w/wy520-w +/usr/share/ncurses4/terminfo/w/wy520-wvb +/usr/share/ncurses4/terminfo/w/wy60 +/usr/share/ncurses4/terminfo/w/wy60-25 +/usr/share/ncurses4/terminfo/w/wy60-25-w +/usr/share/ncurses4/terminfo/w/wy60-316X +/usr/share/ncurses4/terminfo/w/wy60-42 +/usr/share/ncurses4/terminfo/w/wy60-42-w +/usr/share/ncurses4/terminfo/w/wy60-43 +/usr/share/ncurses4/terminfo/w/wy60-43-w +/usr/share/ncurses4/terminfo/w/wy60-vb +/usr/share/ncurses4/terminfo/w/wy60-w +/usr/share/ncurses4/terminfo/w/wy60-w-vb +/usr/share/ncurses4/terminfo/w/wy60-wvb +/usr/share/ncurses4/terminfo/w/wy75 +/usr/share/ncurses4/terminfo/w/wy75-mc +/usr/share/ncurses4/terminfo/w/wy75-vb +/usr/share/ncurses4/terminfo/w/wy75-w +/usr/share/ncurses4/terminfo/w/wy75-wvb +/usr/share/ncurses4/terminfo/w/wy75ap +/usr/share/ncurses4/terminfo/w/wy85 +/usr/share/ncurses4/terminfo/w/wy85-vb +/usr/share/ncurses4/terminfo/w/wy85-w +/usr/share/ncurses4/terminfo/w/wy85-wvb +/usr/share/ncurses4/terminfo/w/wy99gt +/usr/share/ncurses4/terminfo/w/wy99gt-25 +/usr/share/ncurses4/terminfo/w/wy99gt-25-w +/usr/share/ncurses4/terminfo/w/wy99gt-tek +/usr/share/ncurses4/terminfo/w/wy99gt-vb +/usr/share/ncurses4/terminfo/w/wy99gt-w +/usr/share/ncurses4/terminfo/w/wy99gt-w-vb +/usr/share/ncurses4/terminfo/w/wy99gt-wvb +/usr/share/ncurses4/terminfo/w/wyse-325 +/usr/share/ncurses4/terminfo/w/wyse-75ap +/usr/share/ncurses4/terminfo/w/wyse-vp +/usr/share/ncurses4/terminfo/w/wyse120 +/usr/share/ncurses4/terminfo/w/wyse120-25 +/usr/share/ncurses4/terminfo/w/wyse120-25-w +/usr/share/ncurses4/terminfo/w/wyse120-vb +/usr/share/ncurses4/terminfo/w/wyse120-w +/usr/share/ncurses4/terminfo/w/wyse120-wvb +/usr/share/ncurses4/terminfo/w/wyse150 +/usr/share/ncurses4/terminfo/w/wyse150-25 +/usr/share/ncurses4/terminfo/w/wyse150-25-w +/usr/share/ncurses4/terminfo/w/wyse150-vb +/usr/share/ncurses4/terminfo/w/wyse150-w +/usr/share/ncurses4/terminfo/w/wyse150-w-vb +/usr/share/ncurses4/terminfo/w/wyse160 +/usr/share/ncurses4/terminfo/w/wyse160-25 +/usr/share/ncurses4/terminfo/w/wyse160-25-w +/usr/share/ncurses4/terminfo/w/wyse160-42 +/usr/share/ncurses4/terminfo/w/wyse160-42-w +/usr/share/ncurses4/terminfo/w/wyse160-43 +/usr/share/ncurses4/terminfo/w/wyse160-43-w +/usr/share/ncurses4/terminfo/w/wyse160-vb +/usr/share/ncurses4/terminfo/w/wyse160-w +/usr/share/ncurses4/terminfo/w/wyse160-wvb +/usr/share/ncurses4/terminfo/w/wyse185 +/usr/share/ncurses4/terminfo/w/wyse185-24 +/usr/share/ncurses4/terminfo/w/wyse185-vb +/usr/share/ncurses4/terminfo/w/wyse185-w +/usr/share/ncurses4/terminfo/w/wyse185-wvb +/usr/share/ncurses4/terminfo/w/wyse30 +/usr/share/ncurses4/terminfo/w/wyse30-mc +/usr/share/ncurses4/terminfo/w/wyse30-vb +/usr/share/ncurses4/terminfo/w/wyse325 +/usr/share/ncurses4/terminfo/w/wyse325-25 +/usr/share/ncurses4/terminfo/w/wyse325-25w +/usr/share/ncurses4/terminfo/w/wyse325-42 +/usr/share/ncurses4/terminfo/w/wyse325-42w +/usr/share/ncurses4/terminfo/w/wyse325-43 +/usr/share/ncurses4/terminfo/w/wyse325-43w +/usr/share/ncurses4/terminfo/w/wyse325-vb +/usr/share/ncurses4/terminfo/w/wyse325-w +/usr/share/ncurses4/terminfo/w/wyse325-wvb +/usr/share/ncurses4/terminfo/w/wyse350 +/usr/share/ncurses4/terminfo/w/wyse350-vb +/usr/share/ncurses4/terminfo/w/wyse350-w +/usr/share/ncurses4/terminfo/w/wyse350-wvb +/usr/share/ncurses4/terminfo/w/wyse370 +/usr/share/ncurses4/terminfo/w/wyse50 +/usr/share/ncurses4/terminfo/w/wyse50-mc +/usr/share/ncurses4/terminfo/w/wyse50-vb +/usr/share/ncurses4/terminfo/w/wyse50-w +/usr/share/ncurses4/terminfo/w/wyse50-wvb +/usr/share/ncurses4/terminfo/w/wyse520 +/usr/share/ncurses4/terminfo/w/wyse520-24 +/usr/share/ncurses4/terminfo/w/wyse520-36 +/usr/share/ncurses4/terminfo/w/wyse520-36pc +/usr/share/ncurses4/terminfo/w/wyse520-36w +/usr/share/ncurses4/terminfo/w/wyse520-36wpc +/usr/share/ncurses4/terminfo/w/wyse520-48 +/usr/share/ncurses4/terminfo/w/wyse520-48pc +/usr/share/ncurses4/terminfo/w/wyse520-48w +/usr/share/ncurses4/terminfo/w/wyse520-48wpc +/usr/share/ncurses4/terminfo/w/wyse520-epc +/usr/share/ncurses4/terminfo/w/wyse520-epc-w +/usr/share/ncurses4/terminfo/w/wyse520-p-wvb +/usr/share/ncurses4/terminfo/w/wyse520-pc-24 +/usr/share/ncurses4/terminfo/w/wyse520-pc-vb +/usr/share/ncurses4/terminfo/w/wyse520-vb +/usr/share/ncurses4/terminfo/w/wyse520-w +/usr/share/ncurses4/terminfo/w/wyse520-wvb +/usr/share/ncurses4/terminfo/w/wyse60 +/usr/share/ncurses4/terminfo/w/wyse60-25 +/usr/share/ncurses4/terminfo/w/wyse60-25-w +/usr/share/ncurses4/terminfo/w/wyse60-316X +/usr/share/ncurses4/terminfo/w/wyse60-42 +/usr/share/ncurses4/terminfo/w/wyse60-42-w +/usr/share/ncurses4/terminfo/w/wyse60-43 +/usr/share/ncurses4/terminfo/w/wyse60-43-w +/usr/share/ncurses4/terminfo/w/wyse60-vb +/usr/share/ncurses4/terminfo/w/wyse60-w +/usr/share/ncurses4/terminfo/w/wyse60-wvb +/usr/share/ncurses4/terminfo/w/wyse75 +/usr/share/ncurses4/terminfo/w/wyse75-mc +/usr/share/ncurses4/terminfo/w/wyse75-vb +/usr/share/ncurses4/terminfo/w/wyse75-w +/usr/share/ncurses4/terminfo/w/wyse75-wvb +/usr/share/ncurses4/terminfo/w/wyse75ap +/usr/share/ncurses4/terminfo/w/wyse85 +/usr/share/ncurses4/terminfo/w/wyse85-vb +/usr/share/ncurses4/terminfo/w/wyse85-w +/usr/share/ncurses4/terminfo/w/wyse85-wvb +/usr/share/ncurses4/terminfo/w/wyse99gt +/usr/share/ncurses4/terminfo/w/wyse99gt-25 +/usr/share/ncurses4/terminfo/w/wyse99gt-25-w +/usr/share/ncurses4/terminfo/w/wyse99gt-vb +/usr/share/ncurses4/terminfo/w/wyse99gt-w +/usr/share/ncurses4/terminfo/w/wyse99gt-wvb +/usr/share/ncurses4/terminfo/x +/usr/share/ncurses4/terminfo/x/x10term +/usr/share/ncurses4/terminfo/x/x1700 +/usr/share/ncurses4/terminfo/x/x1700-lm +/usr/share/ncurses4/terminfo/x/x1720 +/usr/share/ncurses4/terminfo/x/x1750 +/usr/share/ncurses4/terminfo/x/x68k +/usr/share/ncurses4/terminfo/x/x68k-ite +/usr/share/ncurses4/terminfo/x/x820 +/usr/share/ncurses4/terminfo/x/xenix +/usr/share/ncurses4/terminfo/x/xerox +/usr/share/ncurses4/terminfo/x/xerox-lm +/usr/share/ncurses4/terminfo/x/xerox1720 +/usr/share/ncurses4/terminfo/x/xerox820 +/usr/share/ncurses4/terminfo/x/xl83 +/usr/share/ncurses4/terminfo/x/xtalk +/usr/share/ncurses4/terminfo/x/xterm +/usr/share/ncurses4/terminfo/x/xterm+sl +/usr/share/ncurses4/terminfo/x/xterm+sl-twm +/usr/share/ncurses4/terminfo/x/xterm-16color +/usr/share/ncurses4/terminfo/x/xterm-8bit +/usr/share/ncurses4/terminfo/x/xterm-bold +/usr/share/ncurses4/terminfo/x/xterm-nic +/usr/share/ncurses4/terminfo/x/xterm-old +/usr/share/ncurses4/terminfo/x/xterm-pcolor +/usr/share/ncurses4/terminfo/x/xterm-r5 +/usr/share/ncurses4/terminfo/x/xterm-r6 +/usr/share/ncurses4/terminfo/x/xterm-sun +/usr/share/ncurses4/terminfo/x/xterm-xf86-v32 +/usr/share/ncurses4/terminfo/x/xterm-xf86-v33 +/usr/share/ncurses4/terminfo/x/xterm-xf86-v40 +/usr/share/ncurses4/terminfo/x/xterm-xi +/usr/share/ncurses4/terminfo/x/xterm1 +/usr/share/ncurses4/terminfo/x/xterms +/usr/share/ncurses4/terminfo/x/xterms-sun +/usr/share/ncurses4/terminfo/x/xwsh +/usr/share/ncurses4/terminfo/z +/usr/share/ncurses4/terminfo/z/z-100 +/usr/share/ncurses4/terminfo/z/z-100bw +/usr/share/ncurses4/terminfo/z/z100 +/usr/share/ncurses4/terminfo/z/z100bw +/usr/share/ncurses4/terminfo/z/z110 +/usr/share/ncurses4/terminfo/z/z110bw +/usr/share/ncurses4/terminfo/z/z19 +/usr/share/ncurses4/terminfo/z/z29 +/usr/share/ncurses4/terminfo/z/z29a +/usr/share/ncurses4/terminfo/z/z29a-kc-bc +/usr/share/ncurses4/terminfo/z/z29a-kc-uc +/usr/share/ncurses4/terminfo/z/z29a-nkc-bc +/usr/share/ncurses4/terminfo/z/z29a-nkc-uc +/usr/share/ncurses4/terminfo/z/z29b +/usr/share/ncurses4/terminfo/z/z30 +/usr/share/ncurses4/terminfo/z/z340 +/usr/share/ncurses4/terminfo/z/z340-nam +/usr/share/ncurses4/terminfo/z/z39-a +/usr/share/ncurses4/terminfo/z/z39a +/usr/share/ncurses4/terminfo/z/z50 +/usr/share/ncurses4/terminfo/z/z8001 +/usr/share/ncurses4/terminfo/z/zen30 +/usr/share/ncurses4/terminfo/z/zen50 +/usr/share/ncurses4/terminfo/z/zen8001 +/usr/share/ncurses4/terminfo/z/zenith +/usr/share/ncurses4/terminfo/z/zenith29 +/usr/share/ncurses4/terminfo/z/zenith39-a +/usr/share/ncurses4/terminfo/z/zenith39-ansi +/usr/share/ncurses4/terminfo/z/zt-1 +/usr/share/ncurses4/terminfo/z/ztx +/usr/share/ncurses4/terminfo/z/ztx-1-a +/usr/share/ncurses4/terminfo/z/ztx11 + + + diff --git a/result/noent/slashdot.rdf b/result/noent/slashdot.rdf new file mode 100644 index 0000000..33008ab --- /dev/null +++ b/result/noent/slashdot.rdf @@ -0,0 +1,65 @@ + + + + + Slashdot:News for Nerds. Stuff that Matters. + http://slashdot.org/ + News for Nerds. Stuff that Matters + + + + Slashdot + http://slashdot.org/images/slashdotlg.gif + http://slashdot.org + + + + 100 Mbit/s on Fibre to the home + http://slashdot.org/articles/99/06/06/1440211.shtml + + + + Gimp 1.2 Preview + http://slashdot.org/articles/99/06/06/1438246.shtml + + + + Sony's AIBO robot Sold Out + http://slashdot.org/articles/99/06/06/1432256.shtml + + + + Ask Slashdot: Another Word for "Hacker"? + http://slashdot.org/askslashdot/99/06/05/1815225.shtml + + + + Corel Linux FAQ + http://slashdot.org/articles/99/06/05/1842218.shtml + + + + Upside downsides MP3.COM. + http://slashdot.org/articles/99/06/05/1558210.shtml + + + + 2 Terabits of Bandwidth + http://slashdot.org/articles/99/06/05/1554258.shtml + + + + Suppression of cold fusion research? + http://slashdot.org/articles/99/06/04/2313200.shtml + + + + California Gov. Halts Wage Info Sale + http://slashdot.org/articles/99/06/04/235256.shtml + + + + Red Hat Announces IPO + http://slashdot.org/articles/99/06/04/0849207.shtml + + diff --git a/result/noent/slashdot.xml b/result/noent/slashdot.xml new file mode 100644 index 0000000..b648d5e --- /dev/null +++ b/result/noent/slashdot.xml @@ -0,0 +1,113 @@ + + + + 100 Mbit/s on Fibre to the home + http://slashdot.org/articles/99/06/06/1440211.shtml + + CmdrTaco + wouldn't-it-be-nice + internet + 20 +
      articles
      + topicinternet.jpg +
      + + Gimp 1.2 Preview + http://slashdot.org/articles/99/06/06/1438246.shtml + + CmdrTaco + stuff-to-read + gimp + 12 +
      articles
      + topicgimp.gif +
      + + Sony's AIBO robot Sold Out + http://slashdot.org/articles/99/06/06/1432256.shtml + + CmdrTaco + stuff-to-see + tech + 10 +
      articles
      + topictech2.jpg +
      + + Ask Slashdot: Another Word for "Hacker"? + http://slashdot.org/askslashdot/99/06/05/1815225.shtml + + Cliff + hacker-vs-cracker + news + 385 +
      askslashdot
      + topicnews.gif +
      + + Corel Linux FAQ + http://slashdot.org/articles/99/06/05/1842218.shtml + + CmdrTaco + stuff-to-read + corel + 164 +
      articles
      + topiccorel.gif +
      + + Upside downsides MP3.COM. + http://slashdot.org/articles/99/06/05/1558210.shtml + + CmdrTaco + stuff-to-think-about + music + 48 +
      articles
      + topicmusic.gif +
      + + 2 Terabits of Bandwidth + http://slashdot.org/articles/99/06/05/1554258.shtml + + CmdrTaco + faster-porn + internet + 66 +
      articles
      + topicinternet.jpg +
      + + Suppression of cold fusion research? + http://slashdot.org/articles/99/06/04/2313200.shtml + + Hemos + possibly-probably + science + 217 +
      articles
      + topicscience.gif +
      + + California Gov. Halts Wage Info Sale + http://slashdot.org/articles/99/06/04/235256.shtml + + Hemos + woo-hoo! + usa + 16 +
      articles
      + topicus.gif +
      + + Red Hat Announces IPO + http://slashdot.org/articles/99/06/04/0849207.shtml + + Justin + details-sketchy + redhat + 155 +
      articles
      + topicredhat.gif +
      +
      diff --git a/result/noent/slashdot16.xml b/result/noent/slashdot16.xml new file mode 100644 index 0000000..f6a7f2a Binary files /dev/null and b/result/noent/slashdot16.xml differ diff --git a/result/noent/svg1 b/result/noent/svg1 new file mode 100644 index 0000000..359bd45 --- /dev/null +++ b/result/noent/svg1 @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/result/noent/svg2 b/result/noent/svg2 new file mode 100644 index 0000000..6c3990c --- /dev/null +++ b/result/noent/svg2 @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + Java Font definition:Dialog 0 + + + Java Font definition:Helvetica 0 + + + + this is text + + + + Java Font definition:Dialog 0 + + + Java Font definition:Helvetica 700 + + + + sadfsadfsad + + + + + + + + + + + Java Font definition:Dialog 700 + + + Java Font definition:Dialog 700 + + diff --git a/result/noent/svg3 b/result/noent/svg3 new file mode 100644 index 0000000..c4994b8 --- /dev/null +++ b/result/noent/svg3 @@ -0,0 +1,723 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/result/noent/title.xml b/result/noent/title.xml new file mode 100644 index 0000000..1b3fe07 --- /dev/null +++ b/result/noent/title.xml @@ -0,0 +1,2 @@ + +my title diff --git a/result/noent/tstblanks.xml b/result/noent/tstblanks.xml new file mode 100644 index 0000000..2561859 --- /dev/null +++ b/result/noent/tstblanks.xml @@ -0,0 +1,2 @@ + +
      content diff --git a/result/noent/utf16bebom.xml b/result/noent/utf16bebom.xml new file mode 100644 index 0000000..3b5466d Binary files /dev/null and b/result/noent/utf16bebom.xml differ diff --git a/result/noent/utf16bom.xml b/result/noent/utf16bom.xml new file mode 100644 index 0000000..6ea296e Binary files /dev/null and b/result/noent/utf16bom.xml differ diff --git a/result/noent/utf16lebom.xml b/result/noent/utf16lebom.xml new file mode 100644 index 0000000..933640c Binary files /dev/null and b/result/noent/utf16lebom.xml differ diff --git a/result/noent/utf8bom.xml b/result/noent/utf8bom.xml new file mode 100644 index 0000000..f4e5164 --- /dev/null +++ b/result/noent/utf8bom.xml @@ -0,0 +1,2 @@ + + diff --git a/result/noent/wap.xml b/result/noent/wap.xml new file mode 100644 index 0000000..694b49f --- /dev/null +++ b/result/noent/wap.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + +

      If automatic testing failed, select Failed + + + + + .

      +
      + +
      diff --git a/result/noent/winblanks.xml b/result/noent/winblanks.xml new file mode 100644 index 0000000..0044aa2 --- /dev/null +++ b/result/noent/winblanks.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/result/noent/wml.xml b/result/noent/wml.xml new file mode 100644 index 0000000..3a96562 --- /dev/null +++ b/result/noent/wml.xml @@ -0,0 +1,10 @@ + + + + +

      + Cinéma
      +

      + +
      +
      diff --git a/result/noent/xhtml1 b/result/noent/xhtml1 new file mode 100644 index 0000000..6c06a95 --- /dev/null +++ b/result/noent/xhtml1 @@ -0,0 +1,30 @@ + + + + + + Virtual Library + + + + +

      Moved to example.org.

      + + + foo + +

      + +

      coucou

      +

      salut

      + +

      test

      + +
      +
      Internet Engineering Task Force
      +
      An organization which establishes technical standards for the Internet
      +
      + + diff --git a/result/noent/xhtmlcomp b/result/noent/xhtmlcomp new file mode 100644 index 0000000..4ce634c --- /dev/null +++ b/result/noent/xhtmlcomp @@ -0,0 +1,7 @@ + + + + +

      a b

      + + diff --git a/result/noent/xml1 b/result/noent/xml1 new file mode 100644 index 0000000..637d265 --- /dev/null +++ b/result/noent/xml1 @@ -0,0 +1,9 @@ + +An ampersand (&#38;) may be escaped + numerically (&#38;#38;) or with a general entity + (&amp;).

      "> +]> +

      An ampersand (&) may be escaped + numerically (&#38;) or with a general entity + (&amp;).

      diff --git a/result/noent/xml2 b/result/noent/xml2 new file mode 100644 index 0000000..6c39454 --- /dev/null +++ b/result/noent/xml2 @@ -0,0 +1,8 @@ + + + +'> + +]> +This sample shows a error-prone method. diff --git a/result/ns b/result/ns new file mode 100644 index 0000000..94b927e --- /dev/null +++ b/result/ns @@ -0,0 +1,4 @@ + + + + diff --git a/result/ns.rde b/result/ns.rde new file mode 100644 index 0000000..513d135 --- /dev/null +++ b/result/ns.rde @@ -0,0 +1,7 @@ +0 1 dia:diagram 0 0 +1 14 #text 0 1 + +1 1 dia:diagramdata 1 0 +1 14 #text 0 1 + +0 15 dia:diagram 0 0 diff --git a/result/ns.rdr b/result/ns.rdr new file mode 100644 index 0000000..513d135 --- /dev/null +++ b/result/ns.rdr @@ -0,0 +1,7 @@ +0 1 dia:diagram 0 0 +1 14 #text 0 1 + +1 1 dia:diagramdata 1 0 +1 14 #text 0 1 + +0 15 dia:diagram 0 0 diff --git a/result/ns.sax b/result/ns.sax new file mode 100644 index 0000000..45e00f7 --- /dev/null +++ b/result/ns.sax @@ -0,0 +1,11 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(dia:diagram, xmlns:dia='http://www.lysator.liu.se/~alla/dia/') +SAX.characters( + , 3) +SAX.startElement(dia:diagramdata, dia:testattr='test') +SAX.endElement(dia:diagramdata) +SAX.characters( +, 1) +SAX.endElement(dia:diagram) +SAX.endDocument() diff --git a/result/ns.sax2 b/result/ns.sax2 new file mode 100644 index 0000000..c615db3 --- /dev/null +++ b/result/ns.sax2 @@ -0,0 +1,11 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/', 1, xmlns:dia='http://www.lysator.liu.se/~alla/dia/', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(diagramdata, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, dia:testattr='test...', 4) +SAX.endElementNs(diagramdata, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.characters( +, 1) +SAX.endElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.endDocument() diff --git a/result/ns2 b/result/ns2 new file mode 100644 index 0000000..b69ad82 --- /dev/null +++ b/result/ns2 @@ -0,0 +1,2 @@ + + diff --git a/result/ns2.rde b/result/ns2.rde new file mode 100644 index 0000000..58ca0ac --- /dev/null +++ b/result/ns2.rde @@ -0,0 +1 @@ +0 1 dia:diagram 1 0 diff --git a/result/ns2.rdr b/result/ns2.rdr new file mode 100644 index 0000000..58ca0ac --- /dev/null +++ b/result/ns2.rdr @@ -0,0 +1 @@ +0 1 dia:diagram 1 0 diff --git a/result/ns2.sax b/result/ns2.sax new file mode 100644 index 0000000..64a3fe8 --- /dev/null +++ b/result/ns2.sax @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(dia:diagram, xmlns:dia='http://www.lysator.liu.se/~alla/dia/', dia:testattr='test') +SAX.endElement(dia:diagram) +SAX.endDocument() diff --git a/result/ns2.sax2 b/result/ns2.sax2 new file mode 100644 index 0000000..fc8d6f4 --- /dev/null +++ b/result/ns2.sax2 @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/', 1, xmlns:dia='http://www.lysator.liu.se/~alla/dia/', 1, 0, dia:testattr='test...', 4) +SAX.endElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.endDocument() diff --git a/result/ns3 b/result/ns3 new file mode 100644 index 0000000..b69ad82 --- /dev/null +++ b/result/ns3 @@ -0,0 +1,2 @@ + + diff --git a/result/ns3.rde b/result/ns3.rde new file mode 100644 index 0000000..58ca0ac --- /dev/null +++ b/result/ns3.rde @@ -0,0 +1 @@ +0 1 dia:diagram 1 0 diff --git a/result/ns3.rdr b/result/ns3.rdr new file mode 100644 index 0000000..58ca0ac --- /dev/null +++ b/result/ns3.rdr @@ -0,0 +1 @@ +0 1 dia:diagram 1 0 diff --git a/result/ns3.sax b/result/ns3.sax new file mode 100644 index 0000000..421c7f0 --- /dev/null +++ b/result/ns3.sax @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(dia:diagram, dia:testattr='test', xmlns:dia='http://www.lysator.liu.se/~alla/dia/') +SAX.endElement(dia:diagram) +SAX.endDocument() diff --git a/result/ns3.sax2 b/result/ns3.sax2 new file mode 100644 index 0000000..fc8d6f4 --- /dev/null +++ b/result/ns3.sax2 @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/', 1, xmlns:dia='http://www.lysator.liu.se/~alla/dia/', 1, 0, dia:testattr='test...', 4) +SAX.endElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/') +SAX.endDocument() diff --git a/result/ns4 b/result/ns4 new file mode 100644 index 0000000..136bf92 --- /dev/null +++ b/result/ns4 @@ -0,0 +1,2 @@ + + diff --git a/result/ns4.rde b/result/ns4.rde new file mode 100644 index 0000000..6f5dda7 --- /dev/null +++ b/result/ns4.rde @@ -0,0 +1 @@ +0 1 diagram 1 0 diff --git a/result/ns4.rdr b/result/ns4.rdr new file mode 100644 index 0000000..6f5dda7 --- /dev/null +++ b/result/ns4.rdr @@ -0,0 +1 @@ +0 1 diagram 1 0 diff --git a/result/ns4.sax b/result/ns4.sax new file mode 100644 index 0000000..674b9a3 --- /dev/null +++ b/result/ns4.sax @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(diagram, testattr='test', xml:lang='en', xml:link='simple', xml:space='preserve') +SAX.endElement(diagram) +SAX.endDocument() diff --git a/result/ns4.sax2 b/result/ns4.sax2 new file mode 100644 index 0000000..e31cc56 --- /dev/null +++ b/result/ns4.sax2 @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(diagram, NULL, NULL, 0, 4, 0, testattr='test...', 4, xml:lang='en" ...', 2, xml:link='simp...', 6, xml:space='pres...', 8) +SAX.endElementNs(diagram, NULL, NULL) +SAX.endDocument() diff --git a/result/ns5 b/result/ns5 new file mode 100644 index 0000000..0afe4e2 --- /dev/null +++ b/result/ns5 @@ -0,0 +1,4 @@ + + + + diff --git a/result/ns5.rde b/result/ns5.rde new file mode 100644 index 0000000..30ce196 --- /dev/null +++ b/result/ns5.rde @@ -0,0 +1,7 @@ +0 1 element 0 0 +1 14 #text 0 1 + +1 1 empty 1 0 +1 14 #text 0 1 + +0 15 element 0 0 diff --git a/result/ns5.rdr b/result/ns5.rdr new file mode 100644 index 0000000..30ce196 --- /dev/null +++ b/result/ns5.rdr @@ -0,0 +1,7 @@ +0 1 element 0 0 +1 14 #text 0 1 + +1 1 empty 1 0 +1 14 #text 0 1 + +0 15 element 0 0 diff --git a/result/ns5.sax b/result/ns5.sax new file mode 100644 index 0000000..e458bca --- /dev/null +++ b/result/ns5.sax @@ -0,0 +1,11 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(element, name='foo', xmlns:rng='http://example.org/ns/1', xmlns='http://example.org/ns/1') +SAX.characters( + , 3) +SAX.startElement(empty) +SAX.endElement(empty) +SAX.characters( +, 1) +SAX.endElement(element) +SAX.endDocument() diff --git a/result/ns5.sax2 b/result/ns5.sax2 new file mode 100644 index 0000000..a434d6b --- /dev/null +++ b/result/ns5.sax2 @@ -0,0 +1,11 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(element, NULL, 'http://example.org/ns/1', 2, xmlns:rng='http://example.org/ns/1', xmlns='http://example.org/ns/1', 1, 0, name='foo"...', 3) +SAX.characters( + , 3) +SAX.startElementNs(empty, NULL, 'http://example.org/ns/1', 0, 0, 0) +SAX.endElementNs(empty, NULL, 'http://example.org/ns/1') +SAX.characters( +, 1) +SAX.endElementNs(element, NULL, 'http://example.org/ns/1') +SAX.endDocument() diff --git a/result/ns6 b/result/ns6 new file mode 100644 index 0000000..c971252 --- /dev/null +++ b/result/ns6 @@ -0,0 +1,5 @@ + + + + + diff --git a/result/ns6.rde b/result/ns6.rde new file mode 100644 index 0000000..23a80ec --- /dev/null +++ b/result/ns6.rde @@ -0,0 +1,10 @@ +0 1 root 0 0 +1 14 #text 0 1 + +1 1 foo 1 0 +1 14 #text 0 1 + +1 1 bar 1 0 +1 14 #text 0 1 + +0 15 root 0 0 diff --git a/result/ns6.rdr b/result/ns6.rdr new file mode 100644 index 0000000..23a80ec --- /dev/null +++ b/result/ns6.rdr @@ -0,0 +1,10 @@ +0 1 root 0 0 +1 14 #text 0 1 + +1 1 foo 1 0 +1 14 #text 0 1 + +1 1 bar 1 0 +1 14 #text 0 1 + +0 15 root 0 0 diff --git a/result/ns6.sax b/result/ns6.sax new file mode 100644 index 0000000..a1405b1 --- /dev/null +++ b/result/ns6.sax @@ -0,0 +1,15 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(root) +SAX.characters( + , 3) +SAX.startElement(foo, xmlns='http://abc') +SAX.endElement(foo) +SAX.characters( + , 3) +SAX.startElement(bar) +SAX.endElement(bar) +SAX.characters( +, 1) +SAX.endElement(root) +SAX.endDocument() diff --git a/result/ns6.sax2 b/result/ns6.sax2 new file mode 100644 index 0000000..7b54552 --- /dev/null +++ b/result/ns6.sax2 @@ -0,0 +1,15 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(root, NULL, NULL, 0, 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(foo, NULL, 'http://abc', 1, xmlns='http://abc', 0, 0) +SAX.endElementNs(foo, NULL, 'http://abc') +SAX.characters( + , 3) +SAX.startElementNs(bar, NULL, NULL, 0, 0, 0) +SAX.endElementNs(bar, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(root, NULL, NULL) +SAX.endDocument() diff --git a/result/ns7 b/result/ns7 new file mode 100644 index 0000000..b5089e1 --- /dev/null +++ b/result/ns7 @@ -0,0 +1,2 @@ + + diff --git a/result/ns7.rde b/result/ns7.rde new file mode 100644 index 0000000..16f5351 --- /dev/null +++ b/result/ns7.rde @@ -0,0 +1 @@ +0 1 xml:test 1 0 diff --git a/result/ns7.rdr b/result/ns7.rdr new file mode 100644 index 0000000..16f5351 --- /dev/null +++ b/result/ns7.rdr @@ -0,0 +1 @@ +0 1 xml:test 1 0 diff --git a/result/ns7.sax b/result/ns7.sax new file mode 100644 index 0000000..6020be9 --- /dev/null +++ b/result/ns7.sax @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(xml:test) +SAX.endElement(xml:test) +SAX.endDocument() diff --git a/result/ns7.sax2 b/result/ns7.sax2 new file mode 100644 index 0000000..2a2c714 --- /dev/null +++ b/result/ns7.sax2 @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(test, xml, 'http://www.w3.org/XML/1998/namespace', 0, 0, 0) +SAX.endElementNs(test, xml, 'http://www.w3.org/XML/1998/namespace') +SAX.endDocument() diff --git a/result/nsclean.xml b/result/nsclean.xml new file mode 100644 index 0000000..8f1ea82 --- /dev/null +++ b/result/nsclean.xml @@ -0,0 +1,5 @@ + +
      + + +
      diff --git a/result/nsclean.xml.rde b/result/nsclean.xml.rde new file mode 100644 index 0000000..c606593 --- /dev/null +++ b/result/nsclean.xml.rde @@ -0,0 +1,10 @@ +0 1 article 0 0 +1 14 #text 0 1 + +1 1 foop:content 0 0 +2 14 #text 0 1 + +1 15 foop:content 0 0 +1 14 #text 0 1 + +0 15 article 0 0 diff --git a/result/nsclean.xml.rdr b/result/nsclean.xml.rdr new file mode 100644 index 0000000..c606593 --- /dev/null +++ b/result/nsclean.xml.rdr @@ -0,0 +1,10 @@ +0 1 article 0 0 +1 14 #text 0 1 + +1 1 foop:content 0 0 +2 14 #text 0 1 + +1 15 foop:content 0 0 +1 14 #text 0 1 + +0 15 article 0 0 diff --git a/result/nsclean.xml.sax b/result/nsclean.xml.sax new file mode 100644 index 0000000..b01aeae --- /dev/null +++ b/result/nsclean.xml.sax @@ -0,0 +1,13 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(article, xmlns='tag:foofoofoofoofoofoofoofoo', xmlns:dc='http://purl.org/dc/elements/1.1/', xmlns:dcterms='http://purl.org/dc/terms/') +SAX.characters( +, 1) +SAX.startElement(foop:content, xmlns='http://www.w3.org/1999/xhtml', xmlns:foop='tag:foofoofoofoofoofoofoofoo') +SAX.characters( +, 1) +SAX.endElement(foop:content) +SAX.characters( +, 1) +SAX.endElement(article) +SAX.endDocument() diff --git a/result/nsclean.xml.sax2 b/result/nsclean.xml.sax2 new file mode 100644 index 0000000..d443e2b --- /dev/null +++ b/result/nsclean.xml.sax2 @@ -0,0 +1,13 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(article, NULL, 'tag:foofoofoofoofoofoofoofoo', 3, xmlns='tag:foofoofoofoofoofoofoofoo', xmlns:dc='http://purl.org/dc/elements/1.1/', xmlns:dcterms='http://purl.org/dc/terms/', 0, 0) +SAX.characters( +, 1) +SAX.startElementNs(content, foop, 'tag:foofoofoofoofoofoofoofoo', 2, xmlns='http://www.w3.org/1999/xhtml', xmlns:foop='tag:foofoofoofoofoofoofoofoo', 0, 0) +SAX.characters( +, 1) +SAX.endElementNs(content, foop, 'tag:foofoofoofoofoofoofoofoo') +SAX.characters( +, 1) +SAX.endElementNs(article, NULL, 'tag:foofoofoofoofoofoofoofoo') +SAX.endDocument() diff --git a/result/p3p b/result/p3p new file mode 100644 index 0000000..31d5587 --- /dev/null +++ b/result/p3p @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/result/p3p.rde b/result/p3p.rde new file mode 100644 index 0000000..0c01f50 --- /dev/null +++ b/result/p3p.rde @@ -0,0 +1,55 @@ +0 1 RDF:RDF 0 0 +1 14 #text 0 1 + +1 1 PROP 0 0 +2 14 #text 0 1 + +2 1 USES 0 0 +3 14 #text 0 1 + +3 1 STATEMENT 0 0 +4 14 #text 0 1 + +4 1 WITH 0 0 +5 1 PREFIX 0 0 +6 14 #text 0 1 + +6 1 REF 1 0 +6 14 #text 0 1 + +6 1 REF 1 0 +6 14 #text 0 1 + +6 1 REF 1 0 +6 14 #text 0 1 + +5 15 PREFIX 0 0 +4 15 WITH 0 0 +4 14 #text 0 1 + +3 15 STATEMENT 0 0 +3 14 #text 0 1 + +2 15 USES 0 0 +2 14 #text 0 1 + +2 1 USES 0 0 +3 14 #text 0 1 + +3 1 STATEMENT 0 0 +4 14 #text 0 1 + +4 1 REF 1 0 +4 14 #text 0 1 + +3 15 STATEMENT 0 0 +3 14 #text 0 1 + +2 15 USES 0 0 +2 14 #text 0 1 + +2 1 DISCLOSURE 1 0 +2 14 #text 0 1 + +1 15 PROP 0 0 +0 15 RDF:RDF 0 0 diff --git a/result/p3p.rdr b/result/p3p.rdr new file mode 100644 index 0000000..0c01f50 --- /dev/null +++ b/result/p3p.rdr @@ -0,0 +1,55 @@ +0 1 RDF:RDF 0 0 +1 14 #text 0 1 + +1 1 PROP 0 0 +2 14 #text 0 1 + +2 1 USES 0 0 +3 14 #text 0 1 + +3 1 STATEMENT 0 0 +4 14 #text 0 1 + +4 1 WITH 0 0 +5 1 PREFIX 0 0 +6 14 #text 0 1 + +6 1 REF 1 0 +6 14 #text 0 1 + +6 1 REF 1 0 +6 14 #text 0 1 + +6 1 REF 1 0 +6 14 #text 0 1 + +5 15 PREFIX 0 0 +4 15 WITH 0 0 +4 14 #text 0 1 + +3 15 STATEMENT 0 0 +3 14 #text 0 1 + +2 15 USES 0 0 +2 14 #text 0 1 + +2 1 USES 0 0 +3 14 #text 0 1 + +3 1 STATEMENT 0 0 +4 14 #text 0 1 + +4 1 REF 1 0 +4 14 #text 0 1 + +3 15 STATEMENT 0 0 +3 14 #text 0 1 + +2 15 USES 0 0 +2 14 #text 0 1 + +2 1 DISCLOSURE 1 0 +2 14 #text 0 1 + +1 15 PROP 0 0 +0 15 RDF:RDF 0 0 diff --git a/result/p3p.sax b/result/p3p.sax new file mode 100644 index 0000000..e36629a --- /dev/null +++ b/result/p3p.sax @@ -0,0 +1,63 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(RDF:RDF, xmlns:p3p='http://www.w3.org/TR/1998/WD-P3P10-syntax#proposal.DTD', xmlns:RDF='http://www.w3.org/TR/WD-rdf-syntax#') +SAX.characters( +, 1) +SAX.startElement(PROP, realm='http://www.CoolCatalog.com/catalogue/', entity='CoolCatalog', agreeID='94df1293a3e519bb', assurance='http://www.TrustUs.org') +SAX.characters( + , 3) +SAX.startElement(USES) +SAX.characters( + , 3) +SAX.startElement(STATEMENT, purp='2,3', recpnt='0', id='0', consq='a site with clothes you'd appreciate.') +SAX.characters( + , 5) +SAX.startElement(WITH) +SAX.startElement(PREFIX, name='User.') +SAX.characters( + , 6) +SAX.startElement(REF, name='Name.First') +SAX.endElement(REF) +SAX.characters( + , 6) +SAX.startElement(REF, name='Bdate.Year', optional='1') +SAX.endElement(REF) +SAX.characters( + , 6) +SAX.startElement(REF, name='Gender') +SAX.endElement(REF) +SAX.characters( + , 5) +SAX.endElement(PREFIX) +SAX.endElement(WITH) +SAX.characters( + , 3) +SAX.endElement(STATEMENT) +SAX.characters( + , 3) +SAX.endElement(USES) +SAX.characters( + , 3) +SAX.startElement(USES) +SAX.characters( + , 3) +SAX.startElement(STATEMENT, action='read&write', purp='0', recpnt='0', id='1') +SAX.characters( + , 5) +SAX.startElement(REF, name='User.Shipping.') +SAX.endElement(REF) +SAX.characters( + , 3) +SAX.endElement(STATEMENT) +SAX.characters( + , 3) +SAX.endElement(USES) +SAX.characters( + , 3) +SAX.startElement(DISCLOSURE, discURI='http://www.CoolCatalog.com/PrivacyPractice.html', access='3', other='0,1') +SAX.endElement(DISCLOSURE) +SAX.characters( +, 1) +SAX.endElement(PROP) +SAX.endElement(RDF:RDF) +SAX.endDocument() diff --git a/result/p3p.sax2 b/result/p3p.sax2 new file mode 100644 index 0000000..e62ae6b --- /dev/null +++ b/result/p3p.sax2 @@ -0,0 +1,65 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(RDF, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 2, xmlns:p3p='http://www.w3.org/TR/1998/WD-P3P10-syntax#proposal.DTD', xmlns:RDF='http://www.w3.org/TR/WD-rdf-syntax#', 0, 0) +SAX.characters( +, 1) +SAX.startElementNs(PROP, NULL, NULL, 0, 4, 0, realm='http...', 37, entity='Cool...', 11, agreeID='94df...', 16, assurance='http...', 22) +SAX.characters( + , 3) +SAX.startElementNs(USES, NULL, NULL, 0, 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(STATEMENT, NULL, NULL, 0, 4, 0, purp='2,3"...', 3, recpnt='0" i...', 1, id='0" + ...', 1, consq='a si...', 37) +SAX.characters( + , 5) +SAX.startElementNs(WITH, NULL, NULL, 0, 0, 0) +SAX.startElementNs(PREFIX, NULL, NULL, 0, 1, 0, name='User...', 5) +SAX.characters( + , 6) +SAX.startElementNs(REF, NULL, NULL, 0, 1, 0, name='Name...', 10) +SAX.endElementNs(REF, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(REF, NULL, NULL, 0, 2, 0, name='Bdat...', 10, optional='1"/>...', 1) +SAX.endElementNs(REF, NULL, NULL) +SAX.characters( + , 6) +SAX.startElementNs(REF, NULL, NULL, 0, 1, 0, name='Gend...', 6) +SAX.endElementNs(REF, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(PREFIX, NULL, NULL) +SAX.endElementNs(WITH, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(STATEMENT, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(USES, NULL, NULL) +SAX.characters( + , 3) +SAX.startElementNs(USES, NULL, NULL, 0, 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(STATEMENT, NULL, NULL, 0, 4, 0, action='read...', 14, purp='0" r...', 1, recpnt='0" i...', 1, id='1"> +...', 1) +SAX.characters( + , 5) +SAX.startElementNs(REF, NULL, NULL, 0, 1, 0, name='User...', 14) +SAX.endElementNs(REF, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(STATEMENT, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(USES, NULL, NULL) +SAX.characters( + , 3) +SAX.startElementNs(DISCLOSURE, NULL, NULL, 0, 3, 0, discURI='http...', 47, access='3" o...', 1, other='0,1"...', 3) +SAX.endElementNs(DISCLOSURE, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(PROP, NULL, NULL) +SAX.endElementNs(RDF, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#') +SAX.endDocument() diff --git a/result/pattern/conj b/result/pattern/conj new file mode 100644 index 0000000..616450b --- /dev/null +++ b/result/pattern/conj @@ -0,0 +1,47 @@ +Node /a matches pattern a|b +Node /a/b matches pattern a|b +Node /a/b/c[1]/b matches pattern a|b +Node /a/b/c[2]/b matches pattern a|b +Node /a/b/c[2]/c/b matches pattern a|b +Node /a/c/b matches pattern a|b +Node /a matches pattern a|c +Node /a/b/c[1] matches pattern a|c +Node /a/b/c[2] matches pattern a|c +Node /a/b/c[2]/c matches pattern a|c +Node /a/c matches pattern a|c +Node /a/b matches pattern b|c +Node /a/b/c[1] matches pattern b|c +Node /a/b/c[1]/b matches pattern b|c +Node /a/b/c[2] matches pattern b|c +Node /a/b/c[2]/b matches pattern b|c +Node /a/b/c[2]/c matches pattern b|c +Node /a/b/c[2]/c/b matches pattern b|c +Node /a/c matches pattern b|c +Node /a/c/b matches pattern b|c +Node /a matches pattern a|b|c +Node /a/b matches pattern a|b|c +Node /a/b/c[1] matches pattern a|b|c +Node /a/b/c[1]/b matches pattern a|b|c +Node /a/b/c[2] matches pattern a|b|c +Node /a/b/c[2]/b matches pattern a|b|c +Node /a/b/c[2]/c matches pattern a|b|c +Node /a/b/c[2]/c/b matches pattern a|b|c +Node /a/c matches pattern a|b|c +Node /a/c/b matches pattern a|b|c +Node /a matches pattern /a|b +Node /a/b matches pattern /a|b +Node /a/b/c[1]/b matches pattern /a|b +Node /a/b/c[2]/b matches pattern /a|b +Node /a/b/c[2]/c/b matches pattern /a|b +Node /a/c/b matches pattern /a|b +Node /a matches pattern b|/a +Node /a/b matches pattern b|/a +Node /a/b/c[1]/b matches pattern b|/a +Node /a/b/c[2]/b matches pattern b|/a +Node /a/b/c[2]/c/b matches pattern b|/a +Node /a/c/b matches pattern b|/a +Node /a/b/c[1] matches pattern a//c|b//c +Node /a/b/c[2] matches pattern a//c|b//c +Node /a/b/c[2]/c matches pattern a//c|b//c +Node /a/c matches pattern a//c|b//c +Node /a matches pattern d|e|f|g|h|a diff --git a/result/pattern/multiple b/result/pattern/multiple new file mode 100644 index 0000000..e10390e --- /dev/null +++ b/result/pattern/multiple @@ -0,0 +1,91 @@ +Node /c/b[1]/a[1] matches pattern a +Node /c/b[1]/a[2] matches pattern a +Node /c/c/b/a[1] matches pattern a +Node /c/c/b/a[2] matches pattern a +Node /c/b[2]/a[1] matches pattern a +Node /c/b[2]/a[2] matches pattern a +Node /c/b[1] matches pattern b +Node /c/c/b matches pattern b +Node /c/b[2] matches pattern b +Node /c matches pattern c +Node /c/c matches pattern c +Node /c/b[1] matches pattern c/b +Node /c/c/b matches pattern c/b +Node /c/b[2] matches pattern c/b +Node /c/b[1]/a[1] matches pattern b/a +Node /c/b[1]/a[2] matches pattern b/a +Node /c/c/b/a[1] matches pattern b/a +Node /c/c/b/a[2] matches pattern b/a +Node /c/b[2]/a[1] matches pattern b/a +Node /c/b[2]/a[2] matches pattern b/a +Node /c/b[1]/a[1] matches pattern c/b/a +Node /c/b[1]/a[2] matches pattern c/b/a +Node /c/c/b/a[1] matches pattern c/b/a +Node /c/c/b/a[2] matches pattern c/b/a +Node /c/b[2]/a[1] matches pattern c/b/a +Node /c/b[2]/a[2] matches pattern c/b/a +Node /c/b[1]/a[1] matches pattern c//a +Node /c/b[1]/a[2] matches pattern c//a +Node /c/c/b/a[1] matches pattern c//a +Node /c/c/b/a[2] matches pattern c//a +Node /c/b[2]/a[1] matches pattern c//a +Node /c/b[2]/a[2] matches pattern c//a +Node /c/b[1] matches pattern c//b +Node /c/c/b matches pattern c//b +Node /c/b[2] matches pattern c//b +Node /c/b[1]/a[1] matches pattern b//a +Node /c/b[1]/a[2] matches pattern b//a +Node /c/c/b/a[1] matches pattern b//a +Node /c/c/b/a[2] matches pattern b//a +Node /c/b[2]/a[1] matches pattern b//a +Node /c/b[2]/a[2] matches pattern b//a +Node /c/b[1]/a[1] matches pattern c//b//a +Node /c/b[1]/a[2] matches pattern c//b//a +Node /c/c/b/a[1] matches pattern c//b//a +Node /c/c/b/a[2] matches pattern c//b//a +Node /c/b[2]/a[1] matches pattern c//b//a +Node /c/b[2]/a[2] matches pattern c//b//a +Node /c/b[1]/a[1] matches pattern c/b//a +Node /c/b[1]/a[2] matches pattern c/b//a +Node /c/c/b/a[1] matches pattern c/b//a +Node /c/c/b/a[2] matches pattern c/b//a +Node /c/b[2]/a[1] matches pattern c/b//a +Node /c/b[2]/a[2] matches pattern c/b//a +Node /c/b[1]/a[1] matches pattern c//b/a +Node /c/b[1]/a[2] matches pattern c//b/a +Node /c/c/b/a[1] matches pattern c//b/a +Node /c/c/b/a[2] matches pattern c//b/a +Node /c/b[2]/a[1] matches pattern c//b/a +Node /c/b[2]/a[2] matches pattern c//b/a +Node /c matches pattern /c +Node /c/b[1] matches pattern /c/b +Node /c/b[2] matches pattern /c/b +Node /c/b[1]/a[1] matches pattern /c/b/a +Node /c/b[1]/a[2] matches pattern /c/b/a +Node /c/b[2]/a[1] matches pattern /c/b/a +Node /c/b[2]/a[2] matches pattern /c/b/a +Node /c/b[1]/a[1] matches pattern /c//a +Node /c/b[1]/a[2] matches pattern /c//a +Node /c/c/b/a[1] matches pattern /c//a +Node /c/c/b/a[2] matches pattern /c//a +Node /c/b[2]/a[1] matches pattern /c//a +Node /c/b[2]/a[2] matches pattern /c//a +Node /c/b[1] matches pattern /c//b +Node /c/c/b matches pattern /c//b +Node /c/b[2] matches pattern /c//b +Node /c/b[1]/a[1] matches pattern /c//b//a +Node /c/b[1]/a[2] matches pattern /c//b//a +Node /c/c/b/a[1] matches pattern /c//b//a +Node /c/c/b/a[2] matches pattern /c//b//a +Node /c/b[2]/a[1] matches pattern /c//b//a +Node /c/b[2]/a[2] matches pattern /c//b//a +Node /c/b[1]/a[1] matches pattern /c/b//a +Node /c/b[1]/a[2] matches pattern /c/b//a +Node /c/b[2]/a[1] matches pattern /c/b//a +Node /c/b[2]/a[2] matches pattern /c/b//a +Node /c/b[1]/a[1] matches pattern /c//b/a +Node /c/b[1]/a[2] matches pattern /c//b/a +Node /c/c/b/a[1] matches pattern /c//b/a +Node /c/c/b/a[2] matches pattern /c//b/a +Node /c/b[2]/a[1] matches pattern /c//b/a +Node /c/b[2]/a[2] matches pattern /c//b/a diff --git a/result/pattern/namespaces b/result/pattern/namespaces new file mode 100644 index 0000000..159f847 --- /dev/null +++ b/result/pattern/namespaces @@ -0,0 +1,20 @@ +Node /a matches pattern //a +Node /a/b:b/a matches pattern //a +Node /a/*[4]/a matches pattern //a +Node /a/a:a matches pattern //a:a +Node /a/b:b/a/a:a matches pattern //a:a +Node /a/*[4] matches pattern //a:a +Node /a/c:a matches pattern //a:a +Node /a/b matches pattern //b +Node /a/a:a/b:b matches pattern //b:b +Node /a/b:b matches pattern //b:b +Node /a/b:b/a/a:a/b:b matches pattern //b:b +Node /a/b:b/a matches pattern /a//a +Node /a/*[4]/a matches pattern /a//a +Node /a/b matches pattern /a/b +Node /a/a:a matches pattern /a/a:a +Node /a/*[4] matches pattern /a/a:a +Node /a/c:a matches pattern /a/a:a +Node /a/a:a matches pattern /a/c:a +Node /a/*[4] matches pattern /a/c:a +Node /a/c:a matches pattern /a/c:a diff --git a/result/pattern/simple b/result/pattern/simple new file mode 100644 index 0000000..5710b5c --- /dev/null +++ b/result/pattern/simple @@ -0,0 +1,12 @@ +Node /a matches pattern a +Node /a/b matches pattern b +Node /a/b matches pattern b +Node /a matches pattern /a +Node /a/b matches pattern a/b +Node /a/b/c matches pattern a/b/c +Node /a matches pattern //a +Node /a/b matches pattern //b +Node /a/b/c matches pattern //c +Node /a/b matches pattern a//b +Node /a/b/c matches pattern a//c +Node /a/b/c matches pattern b//c diff --git a/result/pi.xml b/result/pi.xml new file mode 100644 index 0000000..48c7ff0 --- /dev/null +++ b/result/pi.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/result/pi.xml.rde b/result/pi.xml.rde new file mode 100644 index 0000000..cdc8a8d --- /dev/null +++ b/result/pi.xml.rde @@ -0,0 +1,13 @@ +0 1 doc 0 0 +1 14 #text 0 1 + +1 7 document-start 0 1 doc +1 14 #text 0 1 + +1 1 empty 1 0 +1 14 #text 0 1 + +1 7 document-end 0 1 doc +1 14 #text 0 1 + +0 15 doc 0 0 diff --git a/result/pi.xml.rdr b/result/pi.xml.rdr new file mode 100644 index 0000000..cdc8a8d --- /dev/null +++ b/result/pi.xml.rdr @@ -0,0 +1,13 @@ +0 1 doc 0 0 +1 14 #text 0 1 + +1 7 document-start 0 1 doc +1 14 #text 0 1 + +1 1 empty 1 0 +1 14 #text 0 1 + +1 7 document-end 0 1 doc +1 14 #text 0 1 + +0 15 doc 0 0 diff --git a/result/pi.xml.sax b/result/pi.xml.sax new file mode 100644 index 0000000..2a1b9bd --- /dev/null +++ b/result/pi.xml.sax @@ -0,0 +1,17 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(doc) +SAX.characters( +, 1) +SAX.processingInstruction(document-start, doc) +SAX.characters( +, 1) +SAX.startElement(empty) +SAX.endElement(empty) +SAX.characters( +, 1) +SAX.processingInstruction(document-end, doc) +SAX.characters( +, 1) +SAX.endElement(doc) +SAX.endDocument() diff --git a/result/pi.xml.sax2 b/result/pi.xml.sax2 new file mode 100644 index 0000000..a4490ea --- /dev/null +++ b/result/pi.xml.sax2 @@ -0,0 +1,17 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.characters( +, 1) +SAX.processingInstruction(document-start, doc) +SAX.characters( +, 1) +SAX.startElementNs(empty, NULL, NULL, 0, 0, 0) +SAX.endElementNs(empty, NULL, NULL) +SAX.characters( +, 1) +SAX.processingInstruction(document-end, doc) +SAX.characters( +, 1) +SAX.endElementNs(doc, NULL, NULL) +SAX.endDocument() diff --git a/result/pi2.xml b/result/pi2.xml new file mode 100644 index 0000000..710d51c --- /dev/null +++ b/result/pi2.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/result/pi2.xml.rde b/result/pi2.xml.rde new file mode 100644 index 0000000..52b3b9d --- /dev/null +++ b/result/pi2.xml.rde @@ -0,0 +1,9 @@ +0 7 document-start 0 1 doc +0 1 doc 0 0 +1 14 #text 0 1 + +1 1 empty 1 0 +1 14 #text 0 1 + +0 15 doc 0 0 +0 7 document-end 0 1 doc diff --git a/result/pi2.xml.rdr b/result/pi2.xml.rdr new file mode 100644 index 0000000..52b3b9d --- /dev/null +++ b/result/pi2.xml.rdr @@ -0,0 +1,9 @@ +0 7 document-start 0 1 doc +0 1 doc 0 0 +1 14 #text 0 1 + +1 1 empty 1 0 +1 14 #text 0 1 + +0 15 doc 0 0 +0 7 document-end 0 1 doc diff --git a/result/pi2.xml.sax b/result/pi2.xml.sax new file mode 100644 index 0000000..3100a17 --- /dev/null +++ b/result/pi2.xml.sax @@ -0,0 +1,13 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.processingInstruction(document-start, doc) +SAX.startElement(doc) +SAX.characters( +, 1) +SAX.startElement(empty) +SAX.endElement(empty) +SAX.characters( +, 1) +SAX.endElement(doc) +SAX.processingInstruction(document-end, doc) +SAX.endDocument() diff --git a/result/pi2.xml.sax2 b/result/pi2.xml.sax2 new file mode 100644 index 0000000..1e6caad --- /dev/null +++ b/result/pi2.xml.sax2 @@ -0,0 +1,13 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.processingInstruction(document-start, doc) +SAX.startElementNs(doc, NULL, NULL, 0, 0, 0) +SAX.characters( +, 1) +SAX.startElementNs(empty, NULL, NULL, 0, 0, 0) +SAX.endElementNs(empty, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(doc, NULL, NULL) +SAX.processingInstruction(document-end, doc) +SAX.endDocument() diff --git a/result/rdf1 b/result/rdf1 new file mode 100644 index 0000000..d44c3c6 --- /dev/null +++ b/result/rdf1 @@ -0,0 +1,81 @@ + + + + rpm + 2.5 + 2 + i386 + Linux + Manhattan + Red Hat Software + Red Hat Software <bugs@redhat.com> + Utilities/System + Red Hat Package Manager + RPM is a powerful package manager, which can be used to build, install, +query, verify, update, and uninstall individual software packages. A +package consists of an archive of files, and package information, including +name, version, and description. + GPL + * Sun May 10 1998 Prospector System <bugs@redhat.com> + - translations modified for de, fr, tr + + rpm-2.5-2.src.rpm + ftp://ftp.redhat.com/pub/redhat/redhat-5.1/SRPMS + Sun May 10 14:52:32 1998 + 894826352 + 850599 + porky.redhat.com + + + rpm + + + + + /bin/sh + ld-linux.so.2 + libc.so.6 + libdb.so.2 + libz.so.1 + /bin/bash + /bin/sh + + + /bin/rpm +/usr/bin/find-provides +/usr/bin/find-requires +/usr/bin/gendiff +/usr/bin/rpm2cpio +/usr/doc/rpm-2.5 +/usr/doc/rpm-2.5/CHANGES +/usr/doc/rpm-2.5/RPM-PGP-KEY +/usr/doc/rpm-2.5/buildroot +/usr/doc/rpm-2.5/dependencies +/usr/doc/rpm-2.5/format +/usr/doc/rpm-2.5/groups +/usr/doc/rpm-2.5/macros +/usr/doc/rpm-2.5/queryformat +/usr/doc/rpm-2.5/relocatable +/usr/doc/rpm-2.5/signatures +/usr/doc/rpm-2.5/spec +/usr/doc/rpm-2.5/triggers +/usr/lib/rpmpopt +/usr/lib/rpmrc +/usr/man/man8/rpm.8 +/usr/man/man8/rpm2cpio.8 +/usr/share/locale/de/LC_MESSAGES/rpm.mo +/usr/share/locale/fr/LC_MESSAGES/rpm.mo +/usr/share/locale/pt-br/LC_MESSAGES/rpm.mo +/usr/share/locale/sv/LC_MESSAGES/rpm.mo +/usr/share/locale/tr/LC_MESSAGES/rpm.mo +/usr/src/redhat +/usr/src/redhat/BUILD +/usr/src/redhat/RPMS +/usr/src/redhat/RPMS/i386 +/usr/src/redhat/RPMS/noarch +/usr/src/redhat/SOURCES +/usr/src/redhat/SPECS +/usr/src/redhat/SRPMS + + + diff --git a/result/rdf1.rde b/result/rdf1.rde new file mode 100644 index 0000000..b34399c --- /dev/null +++ b/result/rdf1.rde @@ -0,0 +1,214 @@ +0 1 RDF:RDF 0 0 +1 14 #text 0 1 + +1 1 RDF:Description 0 0 +2 14 #text 0 1 + +2 1 RPM:Name 0 0 +3 3 #text 0 1 rpm +2 15 RPM:Name 0 0 +2 14 #text 0 1 + +2 1 RPM:Version 0 0 +3 3 #text 0 1 2.5 +2 15 RPM:Version 0 0 +2 14 #text 0 1 + +2 1 RPM:Release 0 0 +3 3 #text 0 1 2 +2 15 RPM:Release 0 0 +2 14 #text 0 1 + +2 1 RPM:Arch 0 0 +3 3 #text 0 1 i386 +2 15 RPM:Arch 0 0 +2 14 #text 0 1 + +2 1 RPM:Os 0 0 +3 3 #text 0 1 Linux +2 15 RPM:Os 0 0 +2 14 #text 0 1 + +2 1 RPM:Distribution 0 0 +3 3 #text 0 1 Manhattan +2 15 RPM:Distribution 0 0 +2 14 #text 0 1 + +2 1 RPM:Vendor 0 0 +3 3 #text 0 1 Red Hat Software +2 15 RPM:Vendor 0 0 +2 14 #text 0 1 + +2 1 RPM:Packager 0 0 +3 3 #text 0 1 Red Hat Software +2 15 RPM:Packager 0 0 +2 14 #text 0 1 + +2 1 RPM:Group 0 0 +3 3 #text 0 1 Utilities/System +2 15 RPM:Group 0 0 +2 14 #text 0 1 + +2 1 RPM:Summary 0 0 +3 3 #text 0 1 Red Hat Package Manager +2 15 RPM:Summary 0 0 +2 14 #text 0 1 + +2 1 RPM:Description 0 0 +3 3 #text 0 1 RPM is a powerful package manager, which can be used to build, install, +query, verify, update, and uninstall individual software packages. A +package consists of an archive of files, and package information, including +name, version, and description. +2 15 RPM:Description 0 0 +2 14 #text 0 1 + +2 1 RPM:Copyright 0 0 +3 3 #text 0 1 GPL +2 15 RPM:Copyright 0 0 +2 14 #text 0 1 + +2 1 RPM:Changelog 0 0 +3 3 #text 0 1 * Sun May 10 1998 Prospector System + - translations modified for de, fr, tr + +2 15 RPM:Changelog 0 0 +2 14 #text 0 1 + +2 1 RPM:Sources 0 0 +3 3 #text 0 1 rpm-2.5-2.src.rpm +2 15 RPM:Sources 0 0 +2 14 #text 0 1 + +2 1 RPM:SourcesFtp 0 0 +3 3 #text 0 1 ftp://ftp.redhat.com/pub/redhat/redhat-5.1/SRPMS +2 15 RPM:SourcesFtp 0 0 +2 14 #text 0 1 + +2 1 RPM:BuildDate 0 0 +3 3 #text 0 1 Sun May 10 14:52:32 1998 +2 15 RPM:BuildDate 0 0 +2 14 #text 0 1 + +2 1 RPM:Date 0 0 +3 3 #text 0 1 894826352 +2 15 RPM:Date 0 0 +2 14 #text 0 1 + +2 1 RPM:Size 0 0 +3 3 #text 0 1 850599 +2 15 RPM:Size 0 0 +2 14 #text 0 1 + +2 1 RPM:BuildHost 0 0 +3 3 #text 0 1 porky.redhat.com +2 15 RPM:BuildHost 0 0 +2 14 #text 0 1 + +2 1 RPM:Provides 0 0 +3 14 #text 0 1 + +3 1 RDF:Bag 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 rpm +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +3 15 RDF:Bag 0 0 +3 14 #text 0 1 + +2 15 RPM:Provides 0 0 +2 14 #text 0 1 + +2 1 RPM:Requires 0 0 +3 14 #text 0 1 + +3 1 RDF:Bag 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 /bin/sh +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 ld-linux.so.2 +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 libc.so.6 +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 libdb.so.2 +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 libz.so.1 +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 /bin/bash +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 /bin/sh +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +3 15 RDF:Bag 0 0 +3 14 #text 0 1 + +2 15 RPM:Requires 0 0 +2 14 #text 0 1 + +2 1 RPM:Files 0 0 +3 3 #text 0 1 /bin/rpm +/usr/bin/find-provides +/usr/bin/find-requires +/usr/bin/gendiff +/usr/bin/rpm2cpio +/usr/doc/rpm-2.5 +/usr/doc/rpm-2.5/CHANGES +/usr/doc/rpm-2.5/RPM-PGP-KEY +/usr/doc/rpm-2.5/buildroot +/usr/doc/rpm-2.5/dependencies +/usr/doc/rpm-2.5/format +/usr/doc/rpm-2.5/groups +/usr/doc/rpm-2.5/macros +/usr/doc/rpm-2.5/queryformat +/usr/doc/rpm-2.5/relocatable +/usr/doc/rpm-2.5/signatures +/usr/doc/rpm-2.5/spec +/usr/doc/rpm-2.5/triggers +/usr/lib/rpmpopt +/usr/lib/rpmrc +/usr/man/man8/rpm.8 +/usr/man/man8/rpm2cpio.8 +/usr/share/locale/de/LC_MESSAGES/rpm.mo +/usr/share/locale/fr/LC_MESSAGES/rpm.mo +/usr/share/locale/pt-br/LC_MESSAGES/rpm.mo +/usr/share/locale/sv/LC_MESSAGES/rpm.mo +/usr/share/locale/tr/LC_MESSAGES/rpm.mo +/usr/src/redhat +/usr/src/redhat/BUILD +/usr/src/redhat/RPMS +/usr/src/redhat/RPMS/i386 +/usr/src/redhat/RPMS/noarch +/usr/src/redhat/SOURCES +/usr/src/redhat/SPECS +/usr/src/redhat/SRPMS + +2 15 RPM:Files 0 0 +2 14 #text 0 1 + +1 15 RDF:Description 0 0 +1 14 #text 0 1 + +0 15 RDF:RDF 0 0 diff --git a/result/rdf1.rdr b/result/rdf1.rdr new file mode 100644 index 0000000..b34399c --- /dev/null +++ b/result/rdf1.rdr @@ -0,0 +1,214 @@ +0 1 RDF:RDF 0 0 +1 14 #text 0 1 + +1 1 RDF:Description 0 0 +2 14 #text 0 1 + +2 1 RPM:Name 0 0 +3 3 #text 0 1 rpm +2 15 RPM:Name 0 0 +2 14 #text 0 1 + +2 1 RPM:Version 0 0 +3 3 #text 0 1 2.5 +2 15 RPM:Version 0 0 +2 14 #text 0 1 + +2 1 RPM:Release 0 0 +3 3 #text 0 1 2 +2 15 RPM:Release 0 0 +2 14 #text 0 1 + +2 1 RPM:Arch 0 0 +3 3 #text 0 1 i386 +2 15 RPM:Arch 0 0 +2 14 #text 0 1 + +2 1 RPM:Os 0 0 +3 3 #text 0 1 Linux +2 15 RPM:Os 0 0 +2 14 #text 0 1 + +2 1 RPM:Distribution 0 0 +3 3 #text 0 1 Manhattan +2 15 RPM:Distribution 0 0 +2 14 #text 0 1 + +2 1 RPM:Vendor 0 0 +3 3 #text 0 1 Red Hat Software +2 15 RPM:Vendor 0 0 +2 14 #text 0 1 + +2 1 RPM:Packager 0 0 +3 3 #text 0 1 Red Hat Software +2 15 RPM:Packager 0 0 +2 14 #text 0 1 + +2 1 RPM:Group 0 0 +3 3 #text 0 1 Utilities/System +2 15 RPM:Group 0 0 +2 14 #text 0 1 + +2 1 RPM:Summary 0 0 +3 3 #text 0 1 Red Hat Package Manager +2 15 RPM:Summary 0 0 +2 14 #text 0 1 + +2 1 RPM:Description 0 0 +3 3 #text 0 1 RPM is a powerful package manager, which can be used to build, install, +query, verify, update, and uninstall individual software packages. A +package consists of an archive of files, and package information, including +name, version, and description. +2 15 RPM:Description 0 0 +2 14 #text 0 1 + +2 1 RPM:Copyright 0 0 +3 3 #text 0 1 GPL +2 15 RPM:Copyright 0 0 +2 14 #text 0 1 + +2 1 RPM:Changelog 0 0 +3 3 #text 0 1 * Sun May 10 1998 Prospector System + - translations modified for de, fr, tr + +2 15 RPM:Changelog 0 0 +2 14 #text 0 1 + +2 1 RPM:Sources 0 0 +3 3 #text 0 1 rpm-2.5-2.src.rpm +2 15 RPM:Sources 0 0 +2 14 #text 0 1 + +2 1 RPM:SourcesFtp 0 0 +3 3 #text 0 1 ftp://ftp.redhat.com/pub/redhat/redhat-5.1/SRPMS +2 15 RPM:SourcesFtp 0 0 +2 14 #text 0 1 + +2 1 RPM:BuildDate 0 0 +3 3 #text 0 1 Sun May 10 14:52:32 1998 +2 15 RPM:BuildDate 0 0 +2 14 #text 0 1 + +2 1 RPM:Date 0 0 +3 3 #text 0 1 894826352 +2 15 RPM:Date 0 0 +2 14 #text 0 1 + +2 1 RPM:Size 0 0 +3 3 #text 0 1 850599 +2 15 RPM:Size 0 0 +2 14 #text 0 1 + +2 1 RPM:BuildHost 0 0 +3 3 #text 0 1 porky.redhat.com +2 15 RPM:BuildHost 0 0 +2 14 #text 0 1 + +2 1 RPM:Provides 0 0 +3 14 #text 0 1 + +3 1 RDF:Bag 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 rpm +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +3 15 RDF:Bag 0 0 +3 14 #text 0 1 + +2 15 RPM:Provides 0 0 +2 14 #text 0 1 + +2 1 RPM:Requires 0 0 +3 14 #text 0 1 + +3 1 RDF:Bag 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 /bin/sh +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 ld-linux.so.2 +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 libc.so.6 +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 libdb.so.2 +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 libz.so.1 +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 /bin/bash +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 /bin/sh +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +3 15 RDF:Bag 0 0 +3 14 #text 0 1 + +2 15 RPM:Requires 0 0 +2 14 #text 0 1 + +2 1 RPM:Files 0 0 +3 3 #text 0 1 /bin/rpm +/usr/bin/find-provides +/usr/bin/find-requires +/usr/bin/gendiff +/usr/bin/rpm2cpio +/usr/doc/rpm-2.5 +/usr/doc/rpm-2.5/CHANGES +/usr/doc/rpm-2.5/RPM-PGP-KEY +/usr/doc/rpm-2.5/buildroot +/usr/doc/rpm-2.5/dependencies +/usr/doc/rpm-2.5/format +/usr/doc/rpm-2.5/groups +/usr/doc/rpm-2.5/macros +/usr/doc/rpm-2.5/queryformat +/usr/doc/rpm-2.5/relocatable +/usr/doc/rpm-2.5/signatures +/usr/doc/rpm-2.5/spec +/usr/doc/rpm-2.5/triggers +/usr/lib/rpmpopt +/usr/lib/rpmrc +/usr/man/man8/rpm.8 +/usr/man/man8/rpm2cpio.8 +/usr/share/locale/de/LC_MESSAGES/rpm.mo +/usr/share/locale/fr/LC_MESSAGES/rpm.mo +/usr/share/locale/pt-br/LC_MESSAGES/rpm.mo +/usr/share/locale/sv/LC_MESSAGES/rpm.mo +/usr/share/locale/tr/LC_MESSAGES/rpm.mo +/usr/src/redhat +/usr/src/redhat/BUILD +/usr/src/redhat/RPMS +/usr/src/redhat/RPMS/i386 +/usr/src/redhat/RPMS/noarch +/usr/src/redhat/SOURCES +/usr/src/redhat/SPECS +/usr/src/redhat/SRPMS + +2 15 RPM:Files 0 0 +2 14 #text 0 1 + +1 15 RDF:Description 0 0 +1 14 #text 0 1 + +0 15 RDF:RDF 0 0 diff --git a/result/rdf1.sax b/result/rdf1.sax new file mode 100644 index 0000000..e235973 --- /dev/null +++ b/result/rdf1.sax @@ -0,0 +1,186 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(RDF:RDF, xmlns:RPM='http://www.rpm.org/', xmlns:RDF='http://www.w3.org/TR/WD-rdf-syntax#') +SAX.characters( + , 3) +SAX.startElement(RDF:Description, HREF='ftp://rufus.w3.org/linux/redhat/redhat-5.1/i386/RedHat/RPMS/rpm-2.5-2.i386.rpm') +SAX.characters( + , 5) +SAX.startElement(RPM:Name) +SAX.characters(rpm, 3) +SAX.endElement(RPM:Name) +SAX.characters( + , 5) +SAX.startElement(RPM:Version) +SAX.characters(2.5, 3) +SAX.endElement(RPM:Version) +SAX.characters( + , 5) +SAX.startElement(RPM:Release) +SAX.characters(2, 1) +SAX.endElement(RPM:Release) +SAX.characters( + , 5) +SAX.startElement(RPM:Arch) +SAX.characters(i386, 4) +SAX.endElement(RPM:Arch) +SAX.characters( + , 5) +SAX.startElement(RPM:Os) +SAX.characters(Linux, 5) +SAX.endElement(RPM:Os) +SAX.characters( + , 5) +SAX.startElement(RPM:Distribution) +SAX.characters(Manhattan , 10) +SAX.endElement(RPM:Distribution) +SAX.characters( + , 5) +SAX.startElement(RPM:Vendor) +SAX.characters(Red Hat Software, 16) +SAX.endElement(RPM:Vendor) +SAX.characters( + , 5) +SAX.startElement(RPM:Packager) +SAX.characters(Red Hat Software , 17) +SAX.characters(<, 1) +SAX.characters(bugs@redhat.com, 15) +SAX.characters(>, 1) +SAX.endElement(RPM:Packager) +SAX.characters( + , 5) +SAX.startElement(RPM:Group) +SAX.characters(Utilities/System, 16) +SAX.endElement(RPM:Group) +SAX.characters( + , 5) +SAX.startElement(RPM:Summary) +SAX.characters(Red Hat Package Manager, 23) +SAX.endElement(RPM:Summary) +SAX.characters( + , 5) +SAX.startElement(RPM:Description) +SAX.characters(RPM is a powerful package mana, 248) +SAX.endElement(RPM:Description) +SAX.characters( + , 5) +SAX.startElement(RPM:Copyright) +SAX.characters(GPL, 3) +SAX.endElement(RPM:Copyright) +SAX.characters( + , 5) +SAX.startElement(RPM:Changelog) +SAX.characters(* Sun May 10 1998 Prospector S, 36) +SAX.characters(<, 1) +SAX.characters(bugs@redhat.com, 15) +SAX.characters(>, 1) +SAX.characters( + - translations modified for, 42) +SAX.endElement(RPM:Changelog) +SAX.characters( + , 5) +SAX.startElement(RPM:Sources) +SAX.characters(rpm-2.5-2.src.rpm, 17) +SAX.endElement(RPM:Sources) +SAX.characters( + , 5) +SAX.startElement(RPM:SourcesFtp) +SAX.characters(ftp://ftp.redhat.com/pub/redha, 48) +SAX.endElement(RPM:SourcesFtp) +SAX.characters( + , 5) +SAX.startElement(RPM:BuildDate) +SAX.characters(Sun May 10 14:52:32 1998, 24) +SAX.endElement(RPM:BuildDate) +SAX.characters( + , 5) +SAX.startElement(RPM:Date) +SAX.characters(894826352, 9) +SAX.endElement(RPM:Date) +SAX.characters( + , 5) +SAX.startElement(RPM:Size) +SAX.characters(850599, 6) +SAX.endElement(RPM:Size) +SAX.characters( + , 5) +SAX.startElement(RPM:BuildHost) +SAX.characters(porky.redhat.com, 16) +SAX.endElement(RPM:BuildHost) +SAX.characters( + , 5) +SAX.startElement(RPM:Provides) +SAX.characters( + , 7) +SAX.startElement(RDF:Bag) +SAX.characters( + , 9) +SAX.startElement(RPM:Resource) +SAX.characters(rpm, 3) +SAX.endElement(RPM:Resource) +SAX.characters( + , 7) +SAX.endElement(RDF:Bag) +SAX.characters( + , 5) +SAX.endElement(RPM:Provides) +SAX.characters( + , 5) +SAX.startElement(RPM:Requires) +SAX.characters( + , 7) +SAX.startElement(RDF:Bag) +SAX.characters( + , 9) +SAX.startElement(RPM:Resource) +SAX.characters(/bin/sh, 7) +SAX.endElement(RPM:Resource) +SAX.characters( + , 9) +SAX.startElement(RPM:Resource) +SAX.characters(ld-linux.so.2, 13) +SAX.endElement(RPM:Resource) +SAX.characters( + , 9) +SAX.startElement(RPM:Resource) +SAX.characters(libc.so.6, 9) +SAX.endElement(RPM:Resource) +SAX.characters( + , 9) +SAX.startElement(RPM:Resource) +SAX.characters(libdb.so.2, 10) +SAX.endElement(RPM:Resource) +SAX.characters( + , 9) +SAX.startElement(RPM:Resource) +SAX.characters(libz.so.1, 9) +SAX.endElement(RPM:Resource) +SAX.characters( + , 9) +SAX.startElement(RPM:Resource) +SAX.characters(/bin/bash, 9) +SAX.endElement(RPM:Resource) +SAX.characters( + , 9) +SAX.startElement(RPM:Resource) +SAX.characters(/bin/sh, 7) +SAX.endElement(RPM:Resource) +SAX.characters( + , 7) +SAX.endElement(RDF:Bag) +SAX.characters( + , 5) +SAX.endElement(RPM:Requires) +SAX.characters( + , 5) +SAX.startElement(RPM:Files) +SAX.characters(/bin/rpm +/usr/bin/find-provide, 885) +SAX.endElement(RPM:Files) +SAX.characters( + , 3) +SAX.endElement(RDF:Description) +SAX.characters( +, 1) +SAX.endElement(RDF:RDF) +SAX.endDocument() diff --git a/result/rdf1.sax2 b/result/rdf1.sax2 new file mode 100644 index 0000000..24822e1 --- /dev/null +++ b/result/rdf1.sax2 @@ -0,0 +1,186 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(RDF, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 2, xmlns:RPM='http://www.rpm.org/', xmlns:RDF='http://www.w3.org/TR/WD-rdf-syntax#', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(Description, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 0, 1, 0, HREF='ftp:...', 78) +SAX.characters( + , 5) +SAX.startElementNs(Name, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(rpm, 3) +SAX.endElementNs(Name, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Version, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(2.5, 3) +SAX.endElementNs(Version, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Release, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(2, 1) +SAX.endElementNs(Release, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Arch, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(i386, 4) +SAX.endElementNs(Arch, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Os, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(Linux, 5) +SAX.endElementNs(Os, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Distribution, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(Manhattan , 10) +SAX.endElementNs(Distribution, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Vendor, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(Red Hat Software, 16) +SAX.endElementNs(Vendor, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Packager, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(Red Hat Software , 17) +SAX.characters(<, 1) +SAX.characters(bugs@redhat.com, 15) +SAX.characters(>, 1) +SAX.endElementNs(Packager, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Group, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(Utilities/System, 16) +SAX.endElementNs(Group, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Summary, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(Red Hat Package Manager, 23) +SAX.endElementNs(Summary, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Description, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(RPM is a powerful package mana, 248) +SAX.endElementNs(Description, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Copyright, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(GPL, 3) +SAX.endElementNs(Copyright, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Changelog, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(* Sun May 10 1998 Prospector S, 36) +SAX.characters(<, 1) +SAX.characters(bugs@redhat.com, 15) +SAX.characters(>, 1) +SAX.characters( + - translations modified for, 42) +SAX.endElementNs(Changelog, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Sources, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(rpm-2.5-2.src.rpm, 17) +SAX.endElementNs(Sources, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(SourcesFtp, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(ftp://ftp.redhat.com/pub/redha, 48) +SAX.endElementNs(SourcesFtp, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(BuildDate, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(Sun May 10 14:52:32 1998, 24) +SAX.endElementNs(BuildDate, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Date, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(894826352, 9) +SAX.endElementNs(Date, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Size, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(850599, 6) +SAX.endElementNs(Size, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(BuildHost, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(porky.redhat.com, 16) +SAX.endElementNs(BuildHost, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Provides, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(Bag, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 0, 0, 0) +SAX.characters( + , 9) +SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(rpm, 3) +SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/') +SAX.characters( + , 7) +SAX.endElementNs(Bag, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#') +SAX.characters( + , 5) +SAX.endElementNs(Provides, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Requires, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(Bag, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 0, 0, 0) +SAX.characters( + , 9) +SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(/bin/sh, 7) +SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/') +SAX.characters( + , 9) +SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(ld-linux.so.2, 13) +SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/') +SAX.characters( + , 9) +SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(libc.so.6, 9) +SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/') +SAX.characters( + , 9) +SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(libdb.so.2, 10) +SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/') +SAX.characters( + , 9) +SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(libz.so.1, 9) +SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/') +SAX.characters( + , 9) +SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(/bin/bash, 9) +SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/') +SAX.characters( + , 9) +SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(/bin/sh, 7) +SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/') +SAX.characters( + , 7) +SAX.endElementNs(Bag, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#') +SAX.characters( + , 5) +SAX.endElementNs(Requires, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Files, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(/bin/rpm +/usr/bin/find-provide, 885) +SAX.endElementNs(Files, RPM, 'http://www.rpm.org/') +SAX.characters( + , 3) +SAX.endElementNs(Description, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#') +SAX.characters( +, 1) +SAX.endElementNs(RDF, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#') +SAX.endDocument() diff --git a/result/rdf2 b/result/rdf2 new file mode 100644 index 0000000..284946b --- /dev/null +++ b/result/rdf2 @@ -0,0 +1,1899 @@ + + + + ncurses4 + 4.2 + 3 + i386 + Linux + DLD + delix Computer GmbH + Till Bubeck <bubeck@delix.de>, Ngo Than <than@delix.de> + Libraries + Bibliothek zur Ansteuerung von Terminals + Diese Library stellt dem Programmierer vom Terminal unabhängige +Routinen zur Ansteuerung Ihres Bildschirms zur Verfügung, die +speziell optimiert sind. +Diese Version ist die 'new curses' (ncurses) Variante und ist der +anerkannte Ersatz für die klassische Curses-Library, die nicht mehr +weiterentwickelt wird. + GPL + ncurses4-4.2-3.src.rpm + Tue May 12 19:30:26 1998 + 895015826 + 1373513 + erdbeere.delix.de + + + ncurses4 + libpanel.so.4 + libncurses.so.4 + libmenu.so.4 + libform.so.4 + ncurses + + + /lib/libncurses.so.4 +/lib/libncurses.so.4.2 +/usr/doc/ncurses4-4.2-3 +/usr/doc/ncurses4-4.2-3/ANNOUNCE.gz +/usr/doc/ncurses4-4.2-3/NEWS.gz +/usr/doc/ncurses4-4.2-3/README.gz +/usr/doc/ncurses4-4.2-3/TO-DO.gz +/usr/lib/libform.so.4 +/usr/lib/libform.so.4.2 +/usr/lib/libmenu.so.4 +/usr/lib/libmenu.so.4.2 +/usr/lib/libpanel.so.4 +/usr/lib/libpanel.so.4.2 +/usr/share/ncurses4 +/usr/share/ncurses4/tabset +/usr/share/ncurses4/tabset/std +/usr/share/ncurses4/tabset/stdcrt +/usr/share/ncurses4/tabset/vt100 +/usr/share/ncurses4/tabset/vt300 +/usr/share/ncurses4/terminfo +/usr/share/ncurses4/terminfo/1 +/usr/share/ncurses4/terminfo/1/1178 +/usr/share/ncurses4/terminfo/1/1730-lm +/usr/share/ncurses4/terminfo/2 +/usr/share/ncurses4/terminfo/2/2621 +/usr/share/ncurses4/terminfo/2/2621-wl +/usr/share/ncurses4/terminfo/2/2621A +/usr/share/ncurses4/terminfo/2/2621a +/usr/share/ncurses4/terminfo/3 +/usr/share/ncurses4/terminfo/3/386at +/usr/share/ncurses4/terminfo/3/3b1 +/usr/share/ncurses4/terminfo/4 +/usr/share/ncurses4/terminfo/4/4025ex +/usr/share/ncurses4/terminfo/4/4027ex +/usr/share/ncurses4/terminfo/4/4410-w +/usr/share/ncurses4/terminfo/5 +/usr/share/ncurses4/terminfo/5/5051 +/usr/share/ncurses4/terminfo/5/5410-w +/usr/share/ncurses4/terminfo/5/5620 +/usr/share/ncurses4/terminfo/5/5630-24 +/usr/share/ncurses4/terminfo/5/5630DMD-24 +/usr/share/ncurses4/terminfo/6 +/usr/share/ncurses4/terminfo/6/630-lm +/usr/share/ncurses4/terminfo/6/630MTG-24 +/usr/share/ncurses4/terminfo/7 +/usr/share/ncurses4/terminfo/7/730MTG-24 +/usr/share/ncurses4/terminfo/7/730MTG-41 +/usr/share/ncurses4/terminfo/7/730MTG-41r +/usr/share/ncurses4/terminfo/7/730MTGr +/usr/share/ncurses4/terminfo/7/730MTGr-24 +/usr/share/ncurses4/terminfo/8 +/usr/share/ncurses4/terminfo/8/8510 +/usr/share/ncurses4/terminfo/9 +/usr/share/ncurses4/terminfo/9/955-hb +/usr/share/ncurses4/terminfo/9/955-w +/usr/share/ncurses4/terminfo/P +/usr/share/ncurses4/terminfo/P/P12 +/usr/share/ncurses4/terminfo/P/P12-M +/usr/share/ncurses4/terminfo/P/P12-M-W +/usr/share/ncurses4/terminfo/P/P12-W +/usr/share/ncurses4/terminfo/P/P14 +/usr/share/ncurses4/terminfo/P/P14-M +/usr/share/ncurses4/terminfo/P/P14-M-W +/usr/share/ncurses4/terminfo/P/P14-W +/usr/share/ncurses4/terminfo/P/P4 +/usr/share/ncurses4/terminfo/P/P5 +/usr/share/ncurses4/terminfo/P/P7 +/usr/share/ncurses4/terminfo/P/P8 +/usr/share/ncurses4/terminfo/P/P8-W +/usr/share/ncurses4/terminfo/P/P9 +/usr/share/ncurses4/terminfo/P/P9-8 +/usr/share/ncurses4/terminfo/P/P9-8-W +/usr/share/ncurses4/terminfo/P/P9-W +/usr/share/ncurses4/terminfo/X +/usr/share/ncurses4/terminfo/X/X-hpterm +/usr/share/ncurses4/terminfo/a +/usr/share/ncurses4/terminfo/a/a210 +/usr/share/ncurses4/terminfo/a/a80 +/usr/share/ncurses4/terminfo/a/a980 +/usr/share/ncurses4/terminfo/a/aa4080 +/usr/share/ncurses4/terminfo/a/aaa +/usr/share/ncurses4/terminfo/a/aaa+dec +/usr/share/ncurses4/terminfo/a/aaa+rv +/usr/share/ncurses4/terminfo/a/aaa+unk +/usr/share/ncurses4/terminfo/a/aaa-18 +/usr/share/ncurses4/terminfo/a/aaa-18-rv +/usr/share/ncurses4/terminfo/a/aaa-20 +/usr/share/ncurses4/terminfo/a/aaa-22 +/usr/share/ncurses4/terminfo/a/aaa-24 +/usr/share/ncurses4/terminfo/a/aaa-24-rv +/usr/share/ncurses4/terminfo/a/aaa-26 +/usr/share/ncurses4/terminfo/a/aaa-28 +/usr/share/ncurses4/terminfo/a/aaa-30 +/usr/share/ncurses4/terminfo/a/aaa-30-ctxt +/usr/share/ncurses4/terminfo/a/aaa-30-rv +/usr/share/ncurses4/terminfo/a/aaa-30-rv-ctxt +/usr/share/ncurses4/terminfo/a/aaa-30-s +/usr/share/ncurses4/terminfo/a/aaa-30-s-ctxt +/usr/share/ncurses4/terminfo/a/aaa-30-s-rv +/usr/share/ncurses4/terminfo/a/aaa-30-s-rv-ct +/usr/share/ncurses4/terminfo/a/aaa-36 +/usr/share/ncurses4/terminfo/a/aaa-36-rv +/usr/share/ncurses4/terminfo/a/aaa-40 +/usr/share/ncurses4/terminfo/a/aaa-40-rv +/usr/share/ncurses4/terminfo/a/aaa-48 +/usr/share/ncurses4/terminfo/a/aaa-48-rv +/usr/share/ncurses4/terminfo/a/aaa-60 +/usr/share/ncurses4/terminfo/a/aaa-60-dec-rv +/usr/share/ncurses4/terminfo/a/aaa-60-rv +/usr/share/ncurses4/terminfo/a/aaa-60-s +/usr/share/ncurses4/terminfo/a/aaa-60-s-rv +/usr/share/ncurses4/terminfo/a/aaa-ctxt +/usr/share/ncurses4/terminfo/a/aaa-db +/usr/share/ncurses4/terminfo/a/aaa-rv +/usr/share/ncurses4/terminfo/a/aaa-rv-ctxt +/usr/share/ncurses4/terminfo/a/aaa-rv-unk +/usr/share/ncurses4/terminfo/a/aaa-s +/usr/share/ncurses4/terminfo/a/aaa-s-ctxt +/usr/share/ncurses4/terminfo/a/aaa-s-rv +/usr/share/ncurses4/terminfo/a/aaa-s-rv-ctxt +/usr/share/ncurses4/terminfo/a/aaa-unk +/usr/share/ncurses4/terminfo/a/aas1901 +/usr/share/ncurses4/terminfo/a/abm80 +/usr/share/ncurses4/terminfo/a/abm85 +/usr/share/ncurses4/terminfo/a/abm85e +/usr/share/ncurses4/terminfo/a/abm85h +/usr/share/ncurses4/terminfo/a/abm85h-old +/usr/share/ncurses4/terminfo/a/act4 +/usr/share/ncurses4/terminfo/a/act5 +/usr/share/ncurses4/terminfo/a/addrinfo +/usr/share/ncurses4/terminfo/a/adds980 +/usr/share/ncurses4/terminfo/a/addsviewpoint +/usr/share/ncurses4/terminfo/a/addsvp60 +/usr/share/ncurses4/terminfo/a/adm+sgr +/usr/share/ncurses4/terminfo/a/adm1 +/usr/share/ncurses4/terminfo/a/adm11 +/usr/share/ncurses4/terminfo/a/adm1178 +/usr/share/ncurses4/terminfo/a/adm12 +/usr/share/ncurses4/terminfo/a/adm1a +/usr/share/ncurses4/terminfo/a/adm2 +/usr/share/ncurses4/terminfo/a/adm20 +/usr/share/ncurses4/terminfo/a/adm21 +/usr/share/ncurses4/terminfo/a/adm22 +/usr/share/ncurses4/terminfo/a/adm3 +/usr/share/ncurses4/terminfo/a/adm31 +/usr/share/ncurses4/terminfo/a/adm31-old +/usr/share/ncurses4/terminfo/a/adm36 +/usr/share/ncurses4/terminfo/a/adm3a +/usr/share/ncurses4/terminfo/a/adm3a+ +/usr/share/ncurses4/terminfo/a/adm42 +/usr/share/ncurses4/terminfo/a/adm42-ns +/usr/share/ncurses4/terminfo/a/adm5 +/usr/share/ncurses4/terminfo/a/aepro +/usr/share/ncurses4/terminfo/a/aixterm-m +/usr/share/ncurses4/terminfo/a/aixterm-m-old +/usr/share/ncurses4/terminfo/a/aj +/usr/share/ncurses4/terminfo/a/aj510 +/usr/share/ncurses4/terminfo/a/aj830 +/usr/share/ncurses4/terminfo/a/aj832 +/usr/share/ncurses4/terminfo/a/alt2 +/usr/share/ncurses4/terminfo/a/alt3 +/usr/share/ncurses4/terminfo/a/alt4 +/usr/share/ncurses4/terminfo/a/alt5 +/usr/share/ncurses4/terminfo/a/alt7 +/usr/share/ncurses4/terminfo/a/alt7pc +/usr/share/ncurses4/terminfo/a/alto-h19 +/usr/share/ncurses4/terminfo/a/alto-heath +/usr/share/ncurses4/terminfo/a/altoh19 +/usr/share/ncurses4/terminfo/a/altoheath +/usr/share/ncurses4/terminfo/a/altos-2 +/usr/share/ncurses4/terminfo/a/altos-3 +/usr/share/ncurses4/terminfo/a/altos-4 +/usr/share/ncurses4/terminfo/a/altos-5 +/usr/share/ncurses4/terminfo/a/altos2 +/usr/share/ncurses4/terminfo/a/altos3 +/usr/share/ncurses4/terminfo/a/altos4 +/usr/share/ncurses4/terminfo/a/altos5 +/usr/share/ncurses4/terminfo/a/altos7 +/usr/share/ncurses4/terminfo/a/altos7pc +/usr/share/ncurses4/terminfo/a/ambas +/usr/share/ncurses4/terminfo/a/ambassador +/usr/share/ncurses4/terminfo/a/amiga +/usr/share/ncurses4/terminfo/a/amiga-h +/usr/share/ncurses4/terminfo/a/amp219 +/usr/share/ncurses4/terminfo/a/amp219w +/usr/share/ncurses4/terminfo/a/ampex-219 +/usr/share/ncurses4/terminfo/a/ampex-219w +/usr/share/ncurses4/terminfo/a/ampex-232 +/usr/share/ncurses4/terminfo/a/ampex175 +/usr/share/ncurses4/terminfo/a/ampex175-b +/usr/share/ncurses4/terminfo/a/ampex210 +/usr/share/ncurses4/terminfo/a/ampex219 +/usr/share/ncurses4/terminfo/a/ampex219w +/usr/share/ncurses4/terminfo/a/ampex232 +/usr/share/ncurses4/terminfo/a/ampex232w +/usr/share/ncurses4/terminfo/a/ampex80 +/usr/share/ncurses4/terminfo/a/annarbor4080 +/usr/share/ncurses4/terminfo/a/ansi +/usr/share/ncurses4/terminfo/a/ansi-color-2-emx +/usr/share/ncurses4/terminfo/a/ansi-color-3-emx +/usr/share/ncurses4/terminfo/a/ansi-emx +/usr/share/ncurses4/terminfo/a/ansi-m +/usr/share/ncurses4/terminfo/a/ansi-mini +/usr/share/ncurses4/terminfo/a/ansi-mono +/usr/share/ncurses4/terminfo/a/ansi-nt +/usr/share/ncurses4/terminfo/a/ansi.sys +/usr/share/ncurses4/terminfo/a/ansi.sys-old +/usr/share/ncurses4/terminfo/a/ansi.sysk +/usr/share/ncurses4/terminfo/a/ansi43m +/usr/share/ncurses4/terminfo/a/ansi77 +/usr/share/ncurses4/terminfo/a/ansi80x25 +/usr/share/ncurses4/terminfo/a/ansi80x25-mono +/usr/share/ncurses4/terminfo/a/ansi80x25-raw +/usr/share/ncurses4/terminfo/a/ansi80x30 +/usr/share/ncurses4/terminfo/a/ansi80x30-mono +/usr/share/ncurses4/terminfo/a/ansi80x43 +/usr/share/ncurses4/terminfo/a/ansi80x43-mono +/usr/share/ncurses4/terminfo/a/ansi80x50 +/usr/share/ncurses4/terminfo/a/ansi80x50-mono +/usr/share/ncurses4/terminfo/a/ansi80x60 +/usr/share/ncurses4/terminfo/a/ansi80x60-mono +/usr/share/ncurses4/terminfo/a/ansil +/usr/share/ncurses4/terminfo/a/ansil-mono +/usr/share/ncurses4/terminfo/a/ansis +/usr/share/ncurses4/terminfo/a/ansis-mono +/usr/share/ncurses4/terminfo/a/ansisysk +/usr/share/ncurses4/terminfo/a/ansiw +/usr/share/ncurses4/terminfo/a/ap-vm80 +/usr/share/ncurses4/terminfo/a/apl +/usr/share/ncurses4/terminfo/a/apollo +/usr/share/ncurses4/terminfo/a/apollo_15P +/usr/share/ncurses4/terminfo/a/apollo_19L +/usr/share/ncurses4/terminfo/a/apollo_color +/usr/share/ncurses4/terminfo/a/apple-80 +/usr/share/ncurses4/terminfo/a/apple-ae +/usr/share/ncurses4/terminfo/a/apple-soroc +/usr/share/ncurses4/terminfo/a/apple-uterm +/usr/share/ncurses4/terminfo/a/apple-uterm-vb +/usr/share/ncurses4/terminfo/a/apple-videx +/usr/share/ncurses4/terminfo/a/apple-videx2 +/usr/share/ncurses4/terminfo/a/apple-videx3 +/usr/share/ncurses4/terminfo/a/apple-vm80 +/usr/share/ncurses4/terminfo/a/apple2e +/usr/share/ncurses4/terminfo/a/apple2e-p +/usr/share/ncurses4/terminfo/a/apple80p +/usr/share/ncurses4/terminfo/a/appleII +/usr/share/ncurses4/terminfo/a/appleIIc +/usr/share/ncurses4/terminfo/a/appleIIe +/usr/share/ncurses4/terminfo/a/appleIIgs +/usr/share/ncurses4/terminfo/a/at386 +/usr/share/ncurses4/terminfo/a/atari +/usr/share/ncurses4/terminfo/a/att2300 +/usr/share/ncurses4/terminfo/a/att2350 +/usr/share/ncurses4/terminfo/a/att4410 +/usr/share/ncurses4/terminfo/a/att4410-w +/usr/share/ncurses4/terminfo/a/att4410v1 +/usr/share/ncurses4/terminfo/a/att4410v1-w +/usr/share/ncurses4/terminfo/a/att4415 +/usr/share/ncurses4/terminfo/a/att4415+nl +/usr/share/ncurses4/terminfo/a/att4415-nl +/usr/share/ncurses4/terminfo/a/att4415-rv +/usr/share/ncurses4/terminfo/a/att4415-rv-nl +/usr/share/ncurses4/terminfo/a/att4415-w +/usr/share/ncurses4/terminfo/a/att4415-w-nl +/usr/share/ncurses4/terminfo/a/att4415-w-rv +/usr/share/ncurses4/terminfo/a/att4415-w-rv-n +/usr/share/ncurses4/terminfo/a/att4418 +/usr/share/ncurses4/terminfo/a/att4418-w +/usr/share/ncurses4/terminfo/a/att4420 +/usr/share/ncurses4/terminfo/a/att4424 +/usr/share/ncurses4/terminfo/a/att4424-1 +/usr/share/ncurses4/terminfo/a/att4424m +/usr/share/ncurses4/terminfo/a/att4425 +/usr/share/ncurses4/terminfo/a/att4425-nl +/usr/share/ncurses4/terminfo/a/att4425-w +/usr/share/ncurses4/terminfo/a/att4426 +/usr/share/ncurses4/terminfo/a/att500 +/usr/share/ncurses4/terminfo/a/att505 +/usr/share/ncurses4/terminfo/a/att505-24 +/usr/share/ncurses4/terminfo/a/att510a +/usr/share/ncurses4/terminfo/a/att510d +/usr/share/ncurses4/terminfo/a/att513 +/usr/share/ncurses4/terminfo/a/att5310 +/usr/share/ncurses4/terminfo/a/att5320 +/usr/share/ncurses4/terminfo/a/att5410 +/usr/share/ncurses4/terminfo/a/att5410-w +/usr/share/ncurses4/terminfo/a/att5410v1 +/usr/share/ncurses4/terminfo/a/att5410v1-w +/usr/share/ncurses4/terminfo/a/att5418 +/usr/share/ncurses4/terminfo/a/att5418-w +/usr/share/ncurses4/terminfo/a/att5420 +/usr/share/ncurses4/terminfo/a/att5420+nl +/usr/share/ncurses4/terminfo/a/att5420-nl +/usr/share/ncurses4/terminfo/a/att5420-rv +/usr/share/ncurses4/terminfo/a/att5420-rv-nl +/usr/share/ncurses4/terminfo/a/att5420-w +/usr/share/ncurses4/terminfo/a/att5420-w-nl +/usr/share/ncurses4/terminfo/a/att5420-w-rv +/usr/share/ncurses4/terminfo/a/att5420-w-rv-n +/usr/share/ncurses4/terminfo/a/att5420_2 +/usr/share/ncurses4/terminfo/a/att5420_2-w +/usr/share/ncurses4/terminfo/a/att5425 +/usr/share/ncurses4/terminfo/a/att5425-nl +/usr/share/ncurses4/terminfo/a/att5425-w +/usr/share/ncurses4/terminfo/a/att5430 +/usr/share/ncurses4/terminfo/a/att5620 +/usr/share/ncurses4/terminfo/a/att5620-1 +/usr/share/ncurses4/terminfo/a/att5620-24 +/usr/share/ncurses4/terminfo/a/att5620-34 +/usr/share/ncurses4/terminfo/a/att5620-s +/usr/share/ncurses4/terminfo/a/att605 +/usr/share/ncurses4/terminfo/a/att605-pc +/usr/share/ncurses4/terminfo/a/att605-w +/usr/share/ncurses4/terminfo/a/att610 +/usr/share/ncurses4/terminfo/a/att610-103k +/usr/share/ncurses4/terminfo/a/att610-103k-w +/usr/share/ncurses4/terminfo/a/att610-w +/usr/share/ncurses4/terminfo/a/att615 +/usr/share/ncurses4/terminfo/a/att615-103k +/usr/share/ncurses4/terminfo/a/att615-103k-w +/usr/share/ncurses4/terminfo/a/att615-w +/usr/share/ncurses4/terminfo/a/att620 +/usr/share/ncurses4/terminfo/a/att620-103k +/usr/share/ncurses4/terminfo/a/att620-103k-w +/usr/share/ncurses4/terminfo/a/att620-w +/usr/share/ncurses4/terminfo/a/att630 +/usr/share/ncurses4/terminfo/a/att630-24 +/usr/share/ncurses4/terminfo/a/att6386 +/usr/share/ncurses4/terminfo/a/att730 +/usr/share/ncurses4/terminfo/a/att730-24 +/usr/share/ncurses4/terminfo/a/att730-41 +/usr/share/ncurses4/terminfo/a/att7300 +/usr/share/ncurses4/terminfo/a/att730r +/usr/share/ncurses4/terminfo/a/att730r-24 +/usr/share/ncurses4/terminfo/a/att730r-41 +/usr/share/ncurses4/terminfo/a/avatar +/usr/share/ncurses4/terminfo/a/avatar0 +/usr/share/ncurses4/terminfo/a/avatar0+ +/usr/share/ncurses4/terminfo/a/avatar1 +/usr/share/ncurses4/terminfo/a/avt +/usr/share/ncurses4/terminfo/a/avt+s +/usr/share/ncurses4/terminfo/a/avt-ns +/usr/share/ncurses4/terminfo/a/avt-rv +/usr/share/ncurses4/terminfo/a/avt-rv-ns +/usr/share/ncurses4/terminfo/a/avt-rv-s +/usr/share/ncurses4/terminfo/a/avt-s +/usr/share/ncurses4/terminfo/a/avt-w +/usr/share/ncurses4/terminfo/a/avt-w-ns +/usr/share/ncurses4/terminfo/a/avt-w-rv +/usr/share/ncurses4/terminfo/a/avt-w-rv-ns +/usr/share/ncurses4/terminfo/a/avt-w-rv-s +/usr/share/ncurses4/terminfo/a/avt-w-s +/usr/share/ncurses4/terminfo/a/aws +/usr/share/ncurses4/terminfo/a/awsc +/usr/share/ncurses4/terminfo/b +/usr/share/ncurses4/terminfo/b/b-128 +/usr/share/ncurses4/terminfo/b/bantam +/usr/share/ncurses4/terminfo/b/basic4 +/usr/share/ncurses4/terminfo/b/basis +/usr/share/ncurses4/terminfo/b/bct510a +/usr/share/ncurses4/terminfo/b/bct510d +/usr/share/ncurses4/terminfo/b/beacon +/usr/share/ncurses4/terminfo/b/bee +/usr/share/ncurses4/terminfo/b/beehive +/usr/share/ncurses4/terminfo/b/beehive3 +/usr/share/ncurses4/terminfo/b/beehive4 +/usr/share/ncurses4/terminfo/b/beehiveIIIm +/usr/share/ncurses4/terminfo/b/beterm +/usr/share/ncurses4/terminfo/b/bg1.25 +/usr/share/ncurses4/terminfo/b/bg1.25nv +/usr/share/ncurses4/terminfo/b/bg1.25rv +/usr/share/ncurses4/terminfo/b/bg2.0 +/usr/share/ncurses4/terminfo/b/bg2.0nv +/usr/share/ncurses4/terminfo/b/bg2.0rv +/usr/share/ncurses4/terminfo/b/bg3.10 +/usr/share/ncurses4/terminfo/b/bg3.10nv +/usr/share/ncurses4/terminfo/b/bg3.10rv +/usr/share/ncurses4/terminfo/b/bh3m +/usr/share/ncurses4/terminfo/b/bh4 +/usr/share/ncurses4/terminfo/b/bitgraph +/usr/share/ncurses4/terminfo/b/blit +/usr/share/ncurses4/terminfo/b/bobcat +/usr/share/ncurses4/terminfo/b/bsdos +/usr/share/ncurses4/terminfo/b/bsdos-bold +/usr/share/ncurses4/terminfo/c +/usr/share/ncurses4/terminfo/c/c100 +/usr/share/ncurses4/terminfo/c/c100-1p +/usr/share/ncurses4/terminfo/c/c100-4p +/usr/share/ncurses4/terminfo/c/c100-rv +/usr/share/ncurses4/terminfo/c/c100-rv-4p +/usr/share/ncurses4/terminfo/c/c104 +/usr/share/ncurses4/terminfo/c/c108 +/usr/share/ncurses4/terminfo/c/c108-4p +/usr/share/ncurses4/terminfo/c/c108-8p +/usr/share/ncurses4/terminfo/c/c108-rv +/usr/share/ncurses4/terminfo/c/c108-rv-4p +/usr/share/ncurses4/terminfo/c/c108-rv-8p +/usr/share/ncurses4/terminfo/c/c108-w +/usr/share/ncurses4/terminfo/c/c108-w-8p +/usr/share/ncurses4/terminfo/c/c300 +/usr/share/ncurses4/terminfo/c/c301 +/usr/share/ncurses4/terminfo/c/c321 +/usr/share/ncurses4/terminfo/c/ca22851 +/usr/share/ncurses4/terminfo/c/cad68-2 +/usr/share/ncurses4/terminfo/c/cad68-3 +/usr/share/ncurses4/terminfo/c/cbblit +/usr/share/ncurses4/terminfo/c/cbunix +/usr/share/ncurses4/terminfo/c/cci +/usr/share/ncurses4/terminfo/c/cci1 +/usr/share/ncurses4/terminfo/c/cdc456 +/usr/share/ncurses4/terminfo/c/cdc721 +/usr/share/ncurses4/terminfo/c/cdc721-esc +/usr/share/ncurses4/terminfo/c/cdc721ll +/usr/share/ncurses4/terminfo/c/cdc752 +/usr/share/ncurses4/terminfo/c/cdc756 +/usr/share/ncurses4/terminfo/c/cg7900 +/usr/share/ncurses4/terminfo/c/cgc2 +/usr/share/ncurses4/terminfo/c/cgc3 +/usr/share/ncurses4/terminfo/c/chromatics +/usr/share/ncurses4/terminfo/c/ci8510 +/usr/share/ncurses4/terminfo/c/cit-80 +/usr/share/ncurses4/terminfo/c/cit101 +/usr/share/ncurses4/terminfo/c/cit101e +/usr/share/ncurses4/terminfo/c/cit101e-132 +/usr/share/ncurses4/terminfo/c/cit101e-n +/usr/share/ncurses4/terminfo/c/cit101e-n132 +/usr/share/ncurses4/terminfo/c/cit101e-rv +/usr/share/ncurses4/terminfo/c/cit500 +/usr/share/ncurses4/terminfo/c/cit80 +/usr/share/ncurses4/terminfo/c/citc +/usr/share/ncurses4/terminfo/c/citoh +/usr/share/ncurses4/terminfo/c/citoh-6lpi +/usr/share/ncurses4/terminfo/c/citoh-8lpi +/usr/share/ncurses4/terminfo/c/citoh-comp +/usr/share/ncurses4/terminfo/c/citoh-elite +/usr/share/ncurses4/terminfo/c/citoh-pica +/usr/share/ncurses4/terminfo/c/citoh-prop +/usr/share/ncurses4/terminfo/c/citoh-ps +/usr/share/ncurses4/terminfo/c/coco3 +/usr/share/ncurses4/terminfo/c/coherent +/usr/share/ncurses4/terminfo/c/color_xterm +/usr/share/ncurses4/terminfo/c/colorscan +/usr/share/ncurses4/terminfo/c/commodore +/usr/share/ncurses4/terminfo/c/concept +/usr/share/ncurses4/terminfo/c/concept-avt +/usr/share/ncurses4/terminfo/c/concept100 +/usr/share/ncurses4/terminfo/c/concept100-rv +/usr/share/ncurses4/terminfo/c/concept108 +/usr/share/ncurses4/terminfo/c/concept108-4p +/usr/share/ncurses4/terminfo/c/concept108-8p +/usr/share/ncurses4/terminfo/c/concept108-w-8 +/usr/share/ncurses4/terminfo/c/concept108-w8p +/usr/share/ncurses4/terminfo/c/concept108rv4p +/usr/share/ncurses4/terminfo/c/cons25 +/usr/share/ncurses4/terminfo/c/cons25-iso-m +/usr/share/ncurses4/terminfo/c/cons25-iso8859 +/usr/share/ncurses4/terminfo/c/cons25-koi8-r +/usr/share/ncurses4/terminfo/c/cons25-koi8r-m +/usr/share/ncurses4/terminfo/c/cons25-m +/usr/share/ncurses4/terminfo/c/cons25l1 +/usr/share/ncurses4/terminfo/c/cons25l1-m +/usr/share/ncurses4/terminfo/c/cons25r +/usr/share/ncurses4/terminfo/c/cons25r-m +/usr/share/ncurses4/terminfo/c/cons25w +/usr/share/ncurses4/terminfo/c/cons30 +/usr/share/ncurses4/terminfo/c/cons30-m +/usr/share/ncurses4/terminfo/c/cons43 +/usr/share/ncurses4/terminfo/c/cons43-m +/usr/share/ncurses4/terminfo/c/cons50 +/usr/share/ncurses4/terminfo/c/cons50-iso-m +/usr/share/ncurses4/terminfo/c/cons50-iso8859 +/usr/share/ncurses4/terminfo/c/cons50-koi8r +/usr/share/ncurses4/terminfo/c/cons50-koi8r-m +/usr/share/ncurses4/terminfo/c/cons50-m +/usr/share/ncurses4/terminfo/c/cons50l1 +/usr/share/ncurses4/terminfo/c/cons50l1-m +/usr/share/ncurses4/terminfo/c/cons50r +/usr/share/ncurses4/terminfo/c/cons50r-m +/usr/share/ncurses4/terminfo/c/cons60 +/usr/share/ncurses4/terminfo/c/cons60-iso +/usr/share/ncurses4/terminfo/c/cons60-iso-m +/usr/share/ncurses4/terminfo/c/cons60-koi8r +/usr/share/ncurses4/terminfo/c/cons60-koi8r-m +/usr/share/ncurses4/terminfo/c/cons60-m +/usr/share/ncurses4/terminfo/c/cons60l1 +/usr/share/ncurses4/terminfo/c/cons60l1-m +/usr/share/ncurses4/terminfo/c/cons60r +/usr/share/ncurses4/terminfo/c/cons60r-m +/usr/share/ncurses4/terminfo/c/contel300 +/usr/share/ncurses4/terminfo/c/contel301 +/usr/share/ncurses4/terminfo/c/contel320 +/usr/share/ncurses4/terminfo/c/contel321 +/usr/share/ncurses4/terminfo/c/cops +/usr/share/ncurses4/terminfo/c/cops-10 +/usr/share/ncurses4/terminfo/c/cops10 +/usr/share/ncurses4/terminfo/c/cs10 +/usr/share/ncurses4/terminfo/c/cs10-w +/usr/share/ncurses4/terminfo/c/ct82 +/usr/share/ncurses4/terminfo/c/ct8500 +/usr/share/ncurses4/terminfo/c/ctrm +/usr/share/ncurses4/terminfo/c/cx +/usr/share/ncurses4/terminfo/c/cx100 +/usr/share/ncurses4/terminfo/c/cyb110 +/usr/share/ncurses4/terminfo/c/cyb83 +/usr/share/ncurses4/terminfo/d +/usr/share/ncurses4/terminfo/d/d132 +/usr/share/ncurses4/terminfo/d/d80 +/usr/share/ncurses4/terminfo/d/d800 +/usr/share/ncurses4/terminfo/d/datagraphix +/usr/share/ncurses4/terminfo/d/datamedia2500 +/usr/share/ncurses4/terminfo/d/datapoint +/usr/share/ncurses4/terminfo/d/dataspeed40 +/usr/share/ncurses4/terminfo/d/dd5000 +/usr/share/ncurses4/terminfo/d/ddr +/usr/share/ncurses4/terminfo/d/ddr3180 +/usr/share/ncurses4/terminfo/d/dec-vt100 +/usr/share/ncurses4/terminfo/d/dec-vt220 +/usr/share/ncurses4/terminfo/d/dec-vt330 +/usr/share/ncurses4/terminfo/d/dec-vt340 +/usr/share/ncurses4/terminfo/d/dec-vt400 +/usr/share/ncurses4/terminfo/d/decpro +/usr/share/ncurses4/terminfo/d/decwriter +/usr/share/ncurses4/terminfo/d/delta +/usr/share/ncurses4/terminfo/d/dg-ansi +/usr/share/ncurses4/terminfo/d/dg100 +/usr/share/ncurses4/terminfo/d/dg200 +/usr/share/ncurses4/terminfo/d/dg210 +/usr/share/ncurses4/terminfo/d/dg211 +/usr/share/ncurses4/terminfo/d/dg450 +/usr/share/ncurses4/terminfo/d/dg460-ansi +/usr/share/ncurses4/terminfo/d/dg6053 +/usr/share/ncurses4/terminfo/d/dg6134 +/usr/share/ncurses4/terminfo/d/diablo +/usr/share/ncurses4/terminfo/d/diablo-lm +/usr/share/ncurses4/terminfo/d/diablo1620 +/usr/share/ncurses4/terminfo/d/diablo1620-m8 +/usr/share/ncurses4/terminfo/d/diablo1640 +/usr/share/ncurses4/terminfo/d/diablo1640-lm +/usr/share/ncurses4/terminfo/d/diablo1640-m8 +/usr/share/ncurses4/terminfo/d/diablo1720 +/usr/share/ncurses4/terminfo/d/diablo1730 +/usr/share/ncurses4/terminfo/d/diablo1740 +/usr/share/ncurses4/terminfo/d/diablo1740-lm +/usr/share/ncurses4/terminfo/d/diablo450 +/usr/share/ncurses4/terminfo/d/diablo630 +/usr/share/ncurses4/terminfo/d/dialogue +/usr/share/ncurses4/terminfo/d/dialogue80 +/usr/share/ncurses4/terminfo/d/digilog +/usr/share/ncurses4/terminfo/d/dku7003 +/usr/share/ncurses4/terminfo/d/dku7003-dumb +/usr/share/ncurses4/terminfo/d/dm1520 +/usr/share/ncurses4/terminfo/d/dm1521 +/usr/share/ncurses4/terminfo/d/dm2500 +/usr/share/ncurses4/terminfo/d/dm3025 +/usr/share/ncurses4/terminfo/d/dm3045 +/usr/share/ncurses4/terminfo/d/dm80 +/usr/share/ncurses4/terminfo/d/dm80w +/usr/share/ncurses4/terminfo/d/dmchat +/usr/share/ncurses4/terminfo/d/dmd +/usr/share/ncurses4/terminfo/d/dmd-24 +/usr/share/ncurses4/terminfo/d/dmd-34 +/usr/share/ncurses4/terminfo/d/dmd1 +/usr/share/ncurses4/terminfo/d/dmdt80 +/usr/share/ncurses4/terminfo/d/dmdt80w +/usr/share/ncurses4/terminfo/d/dmterm +/usr/share/ncurses4/terminfo/d/dp3360 +/usr/share/ncurses4/terminfo/d/dp8242 +/usr/share/ncurses4/terminfo/d/ds40 +/usr/share/ncurses4/terminfo/d/ds40-2 +/usr/share/ncurses4/terminfo/d/dt-100 +/usr/share/ncurses4/terminfo/d/dt-100w +/usr/share/ncurses4/terminfo/d/dt100 +/usr/share/ncurses4/terminfo/d/dt100w +/usr/share/ncurses4/terminfo/d/dt110 +/usr/share/ncurses4/terminfo/d/dt80 +/usr/share/ncurses4/terminfo/d/dt80-sas +/usr/share/ncurses4/terminfo/d/dt80w +/usr/share/ncurses4/terminfo/d/dtc300s +/usr/share/ncurses4/terminfo/d/dtc382 +/usr/share/ncurses4/terminfo/d/dtterm +/usr/share/ncurses4/terminfo/d/dumb +/usr/share/ncurses4/terminfo/d/dw +/usr/share/ncurses4/terminfo/d/dw1 +/usr/share/ncurses4/terminfo/d/dw2 +/usr/share/ncurses4/terminfo/d/dw3 +/usr/share/ncurses4/terminfo/d/dw4 +/usr/share/ncurses4/terminfo/d/dwk +/usr/share/ncurses4/terminfo/d/dwk-vt +/usr/share/ncurses4/terminfo/e +/usr/share/ncurses4/terminfo/e/ecma+color +/usr/share/ncurses4/terminfo/e/ecma+sgr +/usr/share/ncurses4/terminfo/e/emots +/usr/share/ncurses4/terminfo/e/emu +/usr/share/ncurses4/terminfo/e/env230 +/usr/share/ncurses4/terminfo/e/envision230 +/usr/share/ncurses4/terminfo/e/ep40 +/usr/share/ncurses4/terminfo/e/ep4000 +/usr/share/ncurses4/terminfo/e/ep4080 +/usr/share/ncurses4/terminfo/e/ep48 +/usr/share/ncurses4/terminfo/e/ergo4000 +/usr/share/ncurses4/terminfo/e/esprit +/usr/share/ncurses4/terminfo/e/esprit-am +/usr/share/ncurses4/terminfo/e/eterm +/usr/share/ncurses4/terminfo/e/ex155 +/usr/share/ncurses4/terminfo/e/excel62 +/usr/share/ncurses4/terminfo/e/excel62-rv +/usr/share/ncurses4/terminfo/e/excel62-w +/usr/share/ncurses4/terminfo/e/excel64 +/usr/share/ncurses4/terminfo/e/excel64-rv +/usr/share/ncurses4/terminfo/e/excel64-w +/usr/share/ncurses4/terminfo/e/exec80 +/usr/share/ncurses4/terminfo/f +/usr/share/ncurses4/terminfo/f/f100 +/usr/share/ncurses4/terminfo/f/f100-rv +/usr/share/ncurses4/terminfo/f/f110 +/usr/share/ncurses4/terminfo/f/f110-14 +/usr/share/ncurses4/terminfo/f/f110-14w +/usr/share/ncurses4/terminfo/f/f110-w +/usr/share/ncurses4/terminfo/f/f1720 +/usr/share/ncurses4/terminfo/f/f1720a +/usr/share/ncurses4/terminfo/f/f200 +/usr/share/ncurses4/terminfo/f/f200-w +/usr/share/ncurses4/terminfo/f/f200vi +/usr/share/ncurses4/terminfo/f/f200vi-w +/usr/share/ncurses4/terminfo/f/falco +/usr/share/ncurses4/terminfo/f/falco-p +/usr/share/ncurses4/terminfo/f/fenix +/usr/share/ncurses4/terminfo/f/fenixw +/usr/share/ncurses4/terminfo/f/fixterm +/usr/share/ncurses4/terminfo/f/fortune +/usr/share/ncurses4/terminfo/f/fos +/usr/share/ncurses4/terminfo/f/fox +/usr/share/ncurses4/terminfo/f/freedom +/usr/share/ncurses4/terminfo/f/freedom-rv +/usr/share/ncurses4/terminfo/f/freedom100 +/usr/share/ncurses4/terminfo/f/freedom110 +/usr/share/ncurses4/terminfo/f/freedom200 +/usr/share/ncurses4/terminfo/g +/usr/share/ncurses4/terminfo/g/gator +/usr/share/ncurses4/terminfo/g/gator-52 +/usr/share/ncurses4/terminfo/g/gator-52t +/usr/share/ncurses4/terminfo/g/gator-t +/usr/share/ncurses4/terminfo/g/gigi +/usr/share/ncurses4/terminfo/g/glasstty +/usr/share/ncurses4/terminfo/g/go-225 +/usr/share/ncurses4/terminfo/g/go140 +/usr/share/ncurses4/terminfo/g/go140w +/usr/share/ncurses4/terminfo/g/go225 +/usr/share/ncurses4/terminfo/g/graphos +/usr/share/ncurses4/terminfo/g/graphos-30 +/usr/share/ncurses4/terminfo/g/gs5430 +/usr/share/ncurses4/terminfo/g/gs5430-22 +/usr/share/ncurses4/terminfo/g/gs5430-24 +/usr/share/ncurses4/terminfo/g/gs6300 +/usr/share/ncurses4/terminfo/g/gsi +/usr/share/ncurses4/terminfo/g/gt100 +/usr/share/ncurses4/terminfo/g/gt100a +/usr/share/ncurses4/terminfo/g/gt40 +/usr/share/ncurses4/terminfo/g/gt42 +/usr/share/ncurses4/terminfo/g/guru +/usr/share/ncurses4/terminfo/g/guru+rv +/usr/share/ncurses4/terminfo/g/guru+s +/usr/share/ncurses4/terminfo/g/guru+unk +/usr/share/ncurses4/terminfo/g/guru-24 +/usr/share/ncurses4/terminfo/g/guru-33 +/usr/share/ncurses4/terminfo/g/guru-33-rv +/usr/share/ncurses4/terminfo/g/guru-33-s +/usr/share/ncurses4/terminfo/g/guru-44 +/usr/share/ncurses4/terminfo/g/guru-44-s +/usr/share/ncurses4/terminfo/g/guru-76 +/usr/share/ncurses4/terminfo/g/guru-76-lp +/usr/share/ncurses4/terminfo/g/guru-76-s +/usr/share/ncurses4/terminfo/g/guru-76-w +/usr/share/ncurses4/terminfo/g/guru-76-w-s +/usr/share/ncurses4/terminfo/g/guru-76-wm +/usr/share/ncurses4/terminfo/g/guru-lp +/usr/share/ncurses4/terminfo/g/guru-nctxt +/usr/share/ncurses4/terminfo/g/guru-rv +/usr/share/ncurses4/terminfo/g/guru-s +/usr/share/ncurses4/terminfo/h +/usr/share/ncurses4/terminfo/h/h-100 +/usr/share/ncurses4/terminfo/h/h-100bw +/usr/share/ncurses4/terminfo/h/h100 +/usr/share/ncurses4/terminfo/h/h100bw +/usr/share/ncurses4/terminfo/h/h19 +/usr/share/ncurses4/terminfo/h/h19-a +/usr/share/ncurses4/terminfo/h/h19-b +/usr/share/ncurses4/terminfo/h/h19-bs +/usr/share/ncurses4/terminfo/h/h19-g +/usr/share/ncurses4/terminfo/h/h19-smul +/usr/share/ncurses4/terminfo/h/h19-u +/usr/share/ncurses4/terminfo/h/h19-us +/usr/share/ncurses4/terminfo/h/h19a +/usr/share/ncurses4/terminfo/h/h19g +/usr/share/ncurses4/terminfo/h/h19k +/usr/share/ncurses4/terminfo/h/h19kermit +/usr/share/ncurses4/terminfo/h/h19us +/usr/share/ncurses4/terminfo/h/h29a-kc-bc +/usr/share/ncurses4/terminfo/h/h29a-kc-uc +/usr/share/ncurses4/terminfo/h/h29a-nkc-bc +/usr/share/ncurses4/terminfo/h/h29a-nkc-uc +/usr/share/ncurses4/terminfo/h/h80 +/usr/share/ncurses4/terminfo/h/ha8675 +/usr/share/ncurses4/terminfo/h/ha8686 +/usr/share/ncurses4/terminfo/h/hazel +/usr/share/ncurses4/terminfo/h/hds200 +/usr/share/ncurses4/terminfo/h/he80 +/usr/share/ncurses4/terminfo/h/heath +/usr/share/ncurses4/terminfo/h/heath-19 +/usr/share/ncurses4/terminfo/h/heath-ansi +/usr/share/ncurses4/terminfo/h/heathkit +/usr/share/ncurses4/terminfo/h/heathkit-a +/usr/share/ncurses4/terminfo/h/hft +/usr/share/ncurses4/terminfo/h/hft-c +/usr/share/ncurses4/terminfo/h/hirez100 +/usr/share/ncurses4/terminfo/h/hirez100-w +/usr/share/ncurses4/terminfo/h/hmod1 +/usr/share/ncurses4/terminfo/h/hp +/usr/share/ncurses4/terminfo/h/hp+arrows +/usr/share/ncurses4/terminfo/h/hp+color +/usr/share/ncurses4/terminfo/h/hp+labels +/usr/share/ncurses4/terminfo/h/hp+pfk+arrows +/usr/share/ncurses4/terminfo/h/hp+pfk+cr +/usr/share/ncurses4/terminfo/h/hp+pfk-cr +/usr/share/ncurses4/terminfo/h/hp+printer +/usr/share/ncurses4/terminfo/h/hp110 +/usr/share/ncurses4/terminfo/h/hp150 +/usr/share/ncurses4/terminfo/h/hp2 +/usr/share/ncurses4/terminfo/h/hp236 +/usr/share/ncurses4/terminfo/h/hp2382 +/usr/share/ncurses4/terminfo/h/hp2382a +/usr/share/ncurses4/terminfo/h/hp2392 +/usr/share/ncurses4/terminfo/h/hp2397 +/usr/share/ncurses4/terminfo/h/hp2397a +/usr/share/ncurses4/terminfo/h/hp2621 +/usr/share/ncurses4/terminfo/h/hp2621-48 +/usr/share/ncurses4/terminfo/h/hp2621-a +/usr/share/ncurses4/terminfo/h/hp2621-ba +/usr/share/ncurses4/terminfo/h/hp2621-fl +/usr/share/ncurses4/terminfo/h/hp2621-k45 +/usr/share/ncurses4/terminfo/h/hp2621-nl +/usr/share/ncurses4/terminfo/h/hp2621-nt +/usr/share/ncurses4/terminfo/h/hp2621-wl +/usr/share/ncurses4/terminfo/h/hp2621A +/usr/share/ncurses4/terminfo/h/hp2621a +/usr/share/ncurses4/terminfo/h/hp2621a-a +/usr/share/ncurses4/terminfo/h/hp2621b +/usr/share/ncurses4/terminfo/h/hp2621b-kx +/usr/share/ncurses4/terminfo/h/hp2621b-kx-p +/usr/share/ncurses4/terminfo/h/hp2621b-p +/usr/share/ncurses4/terminfo/h/hp2621k45 +/usr/share/ncurses4/terminfo/h/hp2621p +/usr/share/ncurses4/terminfo/h/hp2621p-a +/usr/share/ncurses4/terminfo/h/hp2622 +/usr/share/ncurses4/terminfo/h/hp2622a +/usr/share/ncurses4/terminfo/h/hp2623 +/usr/share/ncurses4/terminfo/h/hp2623a +/usr/share/ncurses4/terminfo/h/hp2624 +/usr/share/ncurses4/terminfo/h/hp2624-10p +/usr/share/ncurses4/terminfo/h/hp2624a +/usr/share/ncurses4/terminfo/h/hp2624a-10p +/usr/share/ncurses4/terminfo/h/hp2624b +/usr/share/ncurses4/terminfo/h/hp2624b-10p +/usr/share/ncurses4/terminfo/h/hp2624b-10p-p +/usr/share/ncurses4/terminfo/h/hp2624b-4p +/usr/share/ncurses4/terminfo/h/hp2624b-4p-p +/usr/share/ncurses4/terminfo/h/hp2624b-p +/usr/share/ncurses4/terminfo/h/hp2626 +/usr/share/ncurses4/terminfo/h/hp2626-12 +/usr/share/ncurses4/terminfo/h/hp2626-12-s +/usr/share/ncurses4/terminfo/h/hp2626-12x40 +/usr/share/ncurses4/terminfo/h/hp2626-ns +/usr/share/ncurses4/terminfo/h/hp2626-s +/usr/share/ncurses4/terminfo/h/hp2626-x40 +/usr/share/ncurses4/terminfo/h/hp2626a +/usr/share/ncurses4/terminfo/h/hp2626p +/usr/share/ncurses4/terminfo/h/hp2627a +/usr/share/ncurses4/terminfo/h/hp2627a-rev +/usr/share/ncurses4/terminfo/h/hp2627c +/usr/share/ncurses4/terminfo/h/hp262x +/usr/share/ncurses4/terminfo/h/hp2640a +/usr/share/ncurses4/terminfo/h/hp2640b +/usr/share/ncurses4/terminfo/h/hp2641a +/usr/share/ncurses4/terminfo/h/hp2644a +/usr/share/ncurses4/terminfo/h/hp2645 +/usr/share/ncurses4/terminfo/h/hp2645a +/usr/share/ncurses4/terminfo/h/hp2647a +/usr/share/ncurses4/terminfo/h/hp2648 +/usr/share/ncurses4/terminfo/h/hp2648a +/usr/share/ncurses4/terminfo/h/hp300h +/usr/share/ncurses4/terminfo/h/hp45 +/usr/share/ncurses4/terminfo/h/hp700 +/usr/share/ncurses4/terminfo/h/hp700-wy +/usr/share/ncurses4/terminfo/h/hp70092 +/usr/share/ncurses4/terminfo/h/hp70092A +/usr/share/ncurses4/terminfo/h/hp70092a +/usr/share/ncurses4/terminfo/h/hp9837 +/usr/share/ncurses4/terminfo/h/hp9845 +/usr/share/ncurses4/terminfo/h/hp98550 +/usr/share/ncurses4/terminfo/h/hp98550a +/usr/share/ncurses4/terminfo/h/hp98720 +/usr/share/ncurses4/terminfo/h/hp98721 +/usr/share/ncurses4/terminfo/h/hpansi +/usr/share/ncurses4/terminfo/h/hpex +/usr/share/ncurses4/terminfo/h/hpex2 +/usr/share/ncurses4/terminfo/h/hpgeneric +/usr/share/ncurses4/terminfo/h/hpsub +/usr/share/ncurses4/terminfo/h/hpterm +/usr/share/ncurses4/terminfo/h/htx11 +/usr/share/ncurses4/terminfo/h/hz1000 +/usr/share/ncurses4/terminfo/h/hz1420 +/usr/share/ncurses4/terminfo/h/hz1500 +/usr/share/ncurses4/terminfo/h/hz1510 +/usr/share/ncurses4/terminfo/h/hz1520 +/usr/share/ncurses4/terminfo/h/hz1520-noesc +/usr/share/ncurses4/terminfo/h/hz1552 +/usr/share/ncurses4/terminfo/h/hz1552-rv +/usr/share/ncurses4/terminfo/h/hz2000 +/usr/share/ncurses4/terminfo/i +/usr/share/ncurses4/terminfo/i/i100 +/usr/share/ncurses4/terminfo/i/i3101 +/usr/share/ncurses4/terminfo/i/i3151 +/usr/share/ncurses4/terminfo/i/i3164 +/usr/share/ncurses4/terminfo/i/i400 +/usr/share/ncurses4/terminfo/i/ibcs2 +/usr/share/ncurses4/terminfo/i/ibm-apl +/usr/share/ncurses4/terminfo/i/ibm-pc +/usr/share/ncurses4/terminfo/i/ibm-system1 +/usr/share/ncurses4/terminfo/i/ibm3101 +/usr/share/ncurses4/terminfo/i/ibm3151 +/usr/share/ncurses4/terminfo/i/ibm3161 +/usr/share/ncurses4/terminfo/i/ibm3163 +/usr/share/ncurses4/terminfo/i/ibm3164 +/usr/share/ncurses4/terminfo/i/ibm327x +/usr/share/ncurses4/terminfo/i/ibm5051 +/usr/share/ncurses4/terminfo/i/ibm5081 +/usr/share/ncurses4/terminfo/i/ibm5081-c +/usr/share/ncurses4/terminfo/i/ibm5151 +/usr/share/ncurses4/terminfo/i/ibm5154 +/usr/share/ncurses4/terminfo/i/ibm5154-c +/usr/share/ncurses4/terminfo/i/ibm6153 +/usr/share/ncurses4/terminfo/i/ibm6154 +/usr/share/ncurses4/terminfo/i/ibm6154-c +/usr/share/ncurses4/terminfo/i/ibm6155 +/usr/share/ncurses4/terminfo/i/ibm8512 +/usr/share/ncurses4/terminfo/i/ibm8513 +/usr/share/ncurses4/terminfo/i/ibm8514 +/usr/share/ncurses4/terminfo/i/ibm8514-c +/usr/share/ncurses4/terminfo/i/ibmaed +/usr/share/ncurses4/terminfo/i/ibmapa16 +/usr/share/ncurses4/terminfo/i/ibmapa8 +/usr/share/ncurses4/terminfo/i/ibmapa8c +/usr/share/ncurses4/terminfo/i/ibmapa8c-c +/usr/share/ncurses4/terminfo/i/ibmega +/usr/share/ncurses4/terminfo/i/ibmega-c +/usr/share/ncurses4/terminfo/i/ibmmono +/usr/share/ncurses4/terminfo/i/ibmmpel +/usr/share/ncurses4/terminfo/i/ibmmpel-c +/usr/share/ncurses4/terminfo/i/ibmpc +/usr/share/ncurses4/terminfo/i/ibmpc3 +/usr/share/ncurses4/terminfo/i/ibmpc3r +/usr/share/ncurses4/terminfo/i/ibmpc3r-mono +/usr/share/ncurses4/terminfo/i/ibmpcx +/usr/share/ncurses4/terminfo/i/ibmvga +/usr/share/ncurses4/terminfo/i/ibmvga-c +/usr/share/ncurses4/terminfo/i/ibmx +/usr/share/ncurses4/terminfo/i/ifmr +/usr/share/ncurses4/terminfo/i/ims-ansi +/usr/share/ncurses4/terminfo/i/ims950 +/usr/share/ncurses4/terminfo/i/ims950-b +/usr/share/ncurses4/terminfo/i/ims950-rv +/usr/share/ncurses4/terminfo/i/infoton +/usr/share/ncurses4/terminfo/i/intertec +/usr/share/ncurses4/terminfo/i/intertube +/usr/share/ncurses4/terminfo/i/intertube2 +/usr/share/ncurses4/terminfo/i/intext +/usr/share/ncurses4/terminfo/i/intext2 +/usr/share/ncurses4/terminfo/i/intextii +/usr/share/ncurses4/terminfo/i/ips +/usr/share/ncurses4/terminfo/i/ipsi +/usr/share/ncurses4/terminfo/i/iq120 +/usr/share/ncurses4/terminfo/i/iq140 +/usr/share/ncurses4/terminfo/i/iris-ansi +/usr/share/ncurses4/terminfo/i/iris-ansi-ap +/usr/share/ncurses4/terminfo/i/iris-color +/usr/share/ncurses4/terminfo/i/iris40 +/usr/share/ncurses4/terminfo/j +/usr/share/ncurses4/terminfo/j/jaixterm-m +/usr/share/ncurses4/terminfo/j/jerq +/usr/share/ncurses4/terminfo/k +/usr/share/ncurses4/terminfo/k/k45 +/usr/share/ncurses4/terminfo/k/kaypro +/usr/share/ncurses4/terminfo/k/kaypro2 +/usr/share/ncurses4/terminfo/k/kermit +/usr/share/ncurses4/terminfo/k/kermit-am +/usr/share/ncurses4/terminfo/k/klone+acs +/usr/share/ncurses4/terminfo/k/klone+color +/usr/share/ncurses4/terminfo/k/klone+koi8acs +/usr/share/ncurses4/terminfo/k/klone+sgr +/usr/share/ncurses4/terminfo/k/klone+sgr-dumb +/usr/share/ncurses4/terminfo/k/kt7 +/usr/share/ncurses4/terminfo/k/kt7ix +/usr/share/ncurses4/terminfo/k/kterm +/usr/share/ncurses4/terminfo/k/ktm +/usr/share/ncurses4/terminfo/l +/usr/share/ncurses4/terminfo/l/la120 +/usr/share/ncurses4/terminfo/l/layer +/usr/share/ncurses4/terminfo/l/linux +/usr/share/ncurses4/terminfo/l/linux-c +/usr/share/ncurses4/terminfo/l/linux-c-nc +/usr/share/ncurses4/terminfo/l/linux-koi8 +/usr/share/ncurses4/terminfo/l/linux-koi8r +/usr/share/ncurses4/terminfo/l/linux-m +/usr/share/ncurses4/terminfo/l/linux-nic +/usr/share/ncurses4/terminfo/l/lisa +/usr/share/ncurses4/terminfo/l/lisaterm +/usr/share/ncurses4/terminfo/l/lisaterm-w +/usr/share/ncurses4/terminfo/l/liswb +/usr/share/ncurses4/terminfo/l/ln03 +/usr/share/ncurses4/terminfo/l/ln03-w +/usr/share/ncurses4/terminfo/l/lpr +/usr/share/ncurses4/terminfo/l/luna +/usr/share/ncurses4/terminfo/l/luna68k +/usr/share/ncurses4/terminfo/m +/usr/share/ncurses4/terminfo/m/m2-nam +/usr/share/ncurses4/terminfo/m/mac +/usr/share/ncurses4/terminfo/m/mac-w +/usr/share/ncurses4/terminfo/m/macintosh +/usr/share/ncurses4/terminfo/m/macterminal-w +/usr/share/ncurses4/terminfo/m/mai +/usr/share/ncurses4/terminfo/m/masscomp +/usr/share/ncurses4/terminfo/m/masscomp1 +/usr/share/ncurses4/terminfo/m/masscomp2 +/usr/share/ncurses4/terminfo/m/mdl110 +/usr/share/ncurses4/terminfo/m/megatek +/usr/share/ncurses4/terminfo/m/memhp +/usr/share/ncurses4/terminfo/m/mgr +/usr/share/ncurses4/terminfo/m/mgr-linux +/usr/share/ncurses4/terminfo/m/mgr-sun +/usr/share/ncurses4/terminfo/m/microb +/usr/share/ncurses4/terminfo/m/microbee +/usr/share/ncurses4/terminfo/m/microterm +/usr/share/ncurses4/terminfo/m/microterm5 +/usr/share/ncurses4/terminfo/m/mime +/usr/share/ncurses4/terminfo/m/mime-3ax +/usr/share/ncurses4/terminfo/m/mime-fb +/usr/share/ncurses4/terminfo/m/mime-hb +/usr/share/ncurses4/terminfo/m/mime1 +/usr/share/ncurses4/terminfo/m/mime2 +/usr/share/ncurses4/terminfo/m/mime2a +/usr/share/ncurses4/terminfo/m/mime2a-s +/usr/share/ncurses4/terminfo/m/mime2a-v +/usr/share/ncurses4/terminfo/m/mime314 +/usr/share/ncurses4/terminfo/m/mime340 +/usr/share/ncurses4/terminfo/m/mime3a +/usr/share/ncurses4/terminfo/m/mime3ax +/usr/share/ncurses4/terminfo/m/mimei +/usr/share/ncurses4/terminfo/m/mimeii +/usr/share/ncurses4/terminfo/m/minitel +/usr/share/ncurses4/terminfo/m/minitel-2 +/usr/share/ncurses4/terminfo/m/minitel-2-nam +/usr/share/ncurses4/terminfo/m/minix +/usr/share/ncurses4/terminfo/m/minix-old +/usr/share/ncurses4/terminfo/m/minix-old-am +/usr/share/ncurses4/terminfo/m/mm314 +/usr/share/ncurses4/terminfo/m/mm340 +/usr/share/ncurses4/terminfo/m/mod +/usr/share/ncurses4/terminfo/m/mod24 +/usr/share/ncurses4/terminfo/m/modgraph +/usr/share/ncurses4/terminfo/m/modgraph2 +/usr/share/ncurses4/terminfo/m/modgraph48 +/usr/share/ncurses4/terminfo/m/mono-emx +/usr/share/ncurses4/terminfo/m/msk227 +/usr/share/ncurses4/terminfo/m/msk22714 +/usr/share/ncurses4/terminfo/m/msk227am +/usr/share/ncurses4/terminfo/m/mskermit227 +/usr/share/ncurses4/terminfo/m/mskermit22714 +/usr/share/ncurses4/terminfo/m/mskermit227am +/usr/share/ncurses4/terminfo/m/mt-70 +/usr/share/ncurses4/terminfo/m/mt4520-rv +/usr/share/ncurses4/terminfo/m/mt70 +/usr/share/ncurses4/terminfo/n +/usr/share/ncurses4/terminfo/n/nansi.sys +/usr/share/ncurses4/terminfo/n/nansi.sysk +/usr/share/ncurses4/terminfo/n/nansisys +/usr/share/ncurses4/terminfo/n/nansisysk +/usr/share/ncurses4/terminfo/n/ncr7900 +/usr/share/ncurses4/terminfo/n/ncr7900i +/usr/share/ncurses4/terminfo/n/ncr7900iv +/usr/share/ncurses4/terminfo/n/ncr7901 +/usr/share/ncurses4/terminfo/n/nec +/usr/share/ncurses4/terminfo/n/nec5520 +/usr/share/ncurses4/terminfo/n/newhp +/usr/share/ncurses4/terminfo/n/newhpkeyboard +/usr/share/ncurses4/terminfo/n/news +/usr/share/ncurses4/terminfo/n/news-29 +/usr/share/ncurses4/terminfo/n/news-29-euc +/usr/share/ncurses4/terminfo/n/news-29-sjis +/usr/share/ncurses4/terminfo/n/news-33 +/usr/share/ncurses4/terminfo/n/news-33-euc +/usr/share/ncurses4/terminfo/n/news-33-sjis +/usr/share/ncurses4/terminfo/n/news-42 +/usr/share/ncurses4/terminfo/n/news-42-euc +/usr/share/ncurses4/terminfo/n/news-42-sjis +/usr/share/ncurses4/terminfo/n/news-a +/usr/share/ncurses4/terminfo/n/news-o +/usr/share/ncurses4/terminfo/n/news-old-unk +/usr/share/ncurses4/terminfo/n/news-unk +/usr/share/ncurses4/terminfo/n/news28 +/usr/share/ncurses4/terminfo/n/news28-a +/usr/share/ncurses4/terminfo/n/news29 +/usr/share/ncurses4/terminfo/n/news31 +/usr/share/ncurses4/terminfo/n/news31-a +/usr/share/ncurses4/terminfo/n/news31-o +/usr/share/ncurses4/terminfo/n/news33 +/usr/share/ncurses4/terminfo/n/news40 +/usr/share/ncurses4/terminfo/n/news40-a +/usr/share/ncurses4/terminfo/n/news40-o +/usr/share/ncurses4/terminfo/n/news42 +/usr/share/ncurses4/terminfo/n/newscbm +/usr/share/ncurses4/terminfo/n/newscbm-a +/usr/share/ncurses4/terminfo/n/newscbm-o +/usr/share/ncurses4/terminfo/n/newscbm33 +/usr/share/ncurses4/terminfo/n/next +/usr/share/ncurses4/terminfo/n/nextshell +/usr/share/ncurses4/terminfo/n/northstar +/usr/share/ncurses4/terminfo/n/nwe501 +/usr/share/ncurses4/terminfo/n/nwe501-a +/usr/share/ncurses4/terminfo/n/nwe501-o +/usr/share/ncurses4/terminfo/n/nwp-511 +/usr/share/ncurses4/terminfo/n/nwp-517 +/usr/share/ncurses4/terminfo/n/nwp-517-w +/usr/share/ncurses4/terminfo/n/nwp251-a +/usr/share/ncurses4/terminfo/n/nwp251-o +/usr/share/ncurses4/terminfo/n/nwp511 +/usr/share/ncurses4/terminfo/n/nwp512 +/usr/share/ncurses4/terminfo/n/nwp512-a +/usr/share/ncurses4/terminfo/n/nwp512-o +/usr/share/ncurses4/terminfo/n/nwp513 +/usr/share/ncurses4/terminfo/n/nwp513-a +/usr/share/ncurses4/terminfo/n/nwp513-o +/usr/share/ncurses4/terminfo/n/nwp514 +/usr/share/ncurses4/terminfo/n/nwp514-a +/usr/share/ncurses4/terminfo/n/nwp514-o +/usr/share/ncurses4/terminfo/n/nwp517 +/usr/share/ncurses4/terminfo/n/nwp517-w +/usr/share/ncurses4/terminfo/n/nwp518 +/usr/share/ncurses4/terminfo/n/nwp518-a +/usr/share/ncurses4/terminfo/n/nwp518-o +/usr/share/ncurses4/terminfo/o +/usr/share/ncurses4/terminfo/o/o31 +/usr/share/ncurses4/terminfo/o/o4112-nd +/usr/share/ncurses4/terminfo/o/o85h +/usr/share/ncurses4/terminfo/o/oabm85h +/usr/share/ncurses4/terminfo/o/oblit +/usr/share/ncurses4/terminfo/o/oc100 +/usr/share/ncurses4/terminfo/o/oconcept +/usr/share/ncurses4/terminfo/o/ojerq +/usr/share/ncurses4/terminfo/o/oldibmpc3 +/usr/share/ncurses4/terminfo/o/oldpc3 +/usr/share/ncurses4/terminfo/o/oldsun +/usr/share/ncurses4/terminfo/o/omron +/usr/share/ncurses4/terminfo/o/opus3n1+ +/usr/share/ncurses4/terminfo/o/origibmpc3 +/usr/share/ncurses4/terminfo/o/origpc3 +/usr/share/ncurses4/terminfo/o/os9LII +/usr/share/ncurses4/terminfo/o/osborne +/usr/share/ncurses4/terminfo/o/osborne-w +/usr/share/ncurses4/terminfo/o/osborne1 +/usr/share/ncurses4/terminfo/o/osborne1-w +/usr/share/ncurses4/terminfo/o/osexec +/usr/share/ncurses4/terminfo/o/otek4112 +/usr/share/ncurses4/terminfo/o/otek4113 +/usr/share/ncurses4/terminfo/o/otek4114 +/usr/share/ncurses4/terminfo/o/otek4115 +/usr/share/ncurses4/terminfo/o/owl +/usr/share/ncurses4/terminfo/p +/usr/share/ncurses4/terminfo/p/p12 +/usr/share/ncurses4/terminfo/p/p12-m +/usr/share/ncurses4/terminfo/p/p12-m-w +/usr/share/ncurses4/terminfo/p/p12-w +/usr/share/ncurses4/terminfo/p/p14 +/usr/share/ncurses4/terminfo/p/p14-m +/usr/share/ncurses4/terminfo/p/p14-m-w +/usr/share/ncurses4/terminfo/p/p14-w +/usr/share/ncurses4/terminfo/p/p19 +/usr/share/ncurses4/terminfo/p/p4 +/usr/share/ncurses4/terminfo/p/p5 +/usr/share/ncurses4/terminfo/p/p7 +/usr/share/ncurses4/terminfo/p/p8 +/usr/share/ncurses4/terminfo/p/p8-w +/usr/share/ncurses4/terminfo/p/p8gl +/usr/share/ncurses4/terminfo/p/p9 +/usr/share/ncurses4/terminfo/p/p9-8 +/usr/share/ncurses4/terminfo/p/p9-8-w +/usr/share/ncurses4/terminfo/p/p9-w +/usr/share/ncurses4/terminfo/p/pc-coherent +/usr/share/ncurses4/terminfo/p/pc-minix +/usr/share/ncurses4/terminfo/p/pc-venix +/usr/share/ncurses4/terminfo/p/pc3 +/usr/share/ncurses4/terminfo/p/pc3-bold +/usr/share/ncurses4/terminfo/p/pc3r +/usr/share/ncurses4/terminfo/p/pc3r-m +/usr/share/ncurses4/terminfo/p/pc6300plus +/usr/share/ncurses4/terminfo/p/pc7300 +/usr/share/ncurses4/terminfo/p/pcansi +/usr/share/ncurses4/terminfo/p/pcansi-25 +/usr/share/ncurses4/terminfo/p/pcansi-25-m +/usr/share/ncurses4/terminfo/p/pcansi-33 +/usr/share/ncurses4/terminfo/p/pcansi-33-m +/usr/share/ncurses4/terminfo/p/pcansi-43 +/usr/share/ncurses4/terminfo/p/pcansi-43-m +/usr/share/ncurses4/terminfo/p/pcansi-m +/usr/share/ncurses4/terminfo/p/pcansi-mono +/usr/share/ncurses4/terminfo/p/pcansi25 +/usr/share/ncurses4/terminfo/p/pcansi25m +/usr/share/ncurses4/terminfo/p/pcansi33 +/usr/share/ncurses4/terminfo/p/pcansi33m +/usr/share/ncurses4/terminfo/p/pcansi43 +/usr/share/ncurses4/terminfo/p/pccons +/usr/share/ncurses4/terminfo/p/pcconsole +/usr/share/ncurses4/terminfo/p/pcix +/usr/share/ncurses4/terminfo/p/pckermit +/usr/share/ncurses4/terminfo/p/pckermit12 +/usr/share/ncurses4/terminfo/p/pckermit120 +/usr/share/ncurses4/terminfo/p/pcplot +/usr/share/ncurses4/terminfo/p/pcvt25 +/usr/share/ncurses4/terminfo/p/pcvt25w +/usr/share/ncurses4/terminfo/p/pcvt28 +/usr/share/ncurses4/terminfo/p/pcvt28w +/usr/share/ncurses4/terminfo/p/pcvt35 +/usr/share/ncurses4/terminfo/p/pcvt35w +/usr/share/ncurses4/terminfo/p/pcvt40 +/usr/share/ncurses4/terminfo/p/pcvt40w +/usr/share/ncurses4/terminfo/p/pcvt43 +/usr/share/ncurses4/terminfo/p/pcvt43w +/usr/share/ncurses4/terminfo/p/pcvt50 +/usr/share/ncurses4/terminfo/p/pcvt50w +/usr/share/ncurses4/terminfo/p/pcvtXX +/usr/share/ncurses4/terminfo/p/pcz19 +/usr/share/ncurses4/terminfo/p/pe1100 +/usr/share/ncurses4/terminfo/p/pe1200 +/usr/share/ncurses4/terminfo/p/pe1251 +/usr/share/ncurses4/terminfo/p/pe550 +/usr/share/ncurses4/terminfo/p/pe6100 +/usr/share/ncurses4/terminfo/p/pe6300 +/usr/share/ncurses4/terminfo/p/pe6312 +/usr/share/ncurses4/terminfo/p/pe7000c +/usr/share/ncurses4/terminfo/p/pe7000m +/usr/share/ncurses4/terminfo/p/pilot +/usr/share/ncurses4/terminfo/p/printer +/usr/share/ncurses4/terminfo/p/prism12 +/usr/share/ncurses4/terminfo/p/prism12-m +/usr/share/ncurses4/terminfo/p/prism12-m-w +/usr/share/ncurses4/terminfo/p/prism12-w +/usr/share/ncurses4/terminfo/p/prism14 +/usr/share/ncurses4/terminfo/p/prism14-m +/usr/share/ncurses4/terminfo/p/prism14-m-w +/usr/share/ncurses4/terminfo/p/prism14-w +/usr/share/ncurses4/terminfo/p/prism2 +/usr/share/ncurses4/terminfo/p/prism4 +/usr/share/ncurses4/terminfo/p/prism5 +/usr/share/ncurses4/terminfo/p/prism7 +/usr/share/ncurses4/terminfo/p/prism8 +/usr/share/ncurses4/terminfo/p/prism8-w +/usr/share/ncurses4/terminfo/p/prism8gl +/usr/share/ncurses4/terminfo/p/prism9 +/usr/share/ncurses4/terminfo/p/prism9-8 +/usr/share/ncurses4/terminfo/p/prism9-8-w +/usr/share/ncurses4/terminfo/p/prism9-w +/usr/share/ncurses4/terminfo/p/pro350 +/usr/share/ncurses4/terminfo/p/ps300 +/usr/share/ncurses4/terminfo/p/psterm +/usr/share/ncurses4/terminfo/p/psterm-80x24 +/usr/share/ncurses4/terminfo/p/psterm-90x28 +/usr/share/ncurses4/terminfo/p/psterm-96x48 +/usr/share/ncurses4/terminfo/p/psterm-basic +/usr/share/ncurses4/terminfo/p/psterm-fast +/usr/share/ncurses4/terminfo/p/psx_ansi +/usr/share/ncurses4/terminfo/p/pt100 +/usr/share/ncurses4/terminfo/p/pt100w +/usr/share/ncurses4/terminfo/p/pt200 +/usr/share/ncurses4/terminfo/p/pt200w +/usr/share/ncurses4/terminfo/p/pt210 +/usr/share/ncurses4/terminfo/p/pt250 +/usr/share/ncurses4/terminfo/p/pt250w +/usr/share/ncurses4/terminfo/p/pt505 +/usr/share/ncurses4/terminfo/p/pt505-22 +/usr/share/ncurses4/terminfo/p/pt505-24 +/usr/share/ncurses4/terminfo/p/pty +/usr/share/ncurses4/terminfo/q +/usr/share/ncurses4/terminfo/q/qdcons +/usr/share/ncurses4/terminfo/q/qdss +/usr/share/ncurses4/terminfo/q/qnx +/usr/share/ncurses4/terminfo/q/qnx4 +/usr/share/ncurses4/terminfo/q/qume +/usr/share/ncurses4/terminfo/q/qume5 +/usr/share/ncurses4/terminfo/q/qvt101 +/usr/share/ncurses4/terminfo/q/qvt101+ +/usr/share/ncurses4/terminfo/q/qvt101p +/usr/share/ncurses4/terminfo/q/qvt102 +/usr/share/ncurses4/terminfo/q/qvt103 +/usr/share/ncurses4/terminfo/q/qvt103-w +/usr/share/ncurses4/terminfo/q/qvt108 +/usr/share/ncurses4/terminfo/q/qvt119 +/usr/share/ncurses4/terminfo/q/qvt119+ +/usr/share/ncurses4/terminfo/q/qvt119+-25 +/usr/share/ncurses4/terminfo/q/qvt119+-25-w +/usr/share/ncurses4/terminfo/q/qvt119+-w +/usr/share/ncurses4/terminfo/q/qvt119-25-w +/usr/share/ncurses4/terminfo/q/qvt119-w +/usr/share/ncurses4/terminfo/q/qvt119p +/usr/share/ncurses4/terminfo/q/qvt119p-25 +/usr/share/ncurses4/terminfo/q/qvt119p-25-w +/usr/share/ncurses4/terminfo/q/qvt119p-w +/usr/share/ncurses4/terminfo/q/qvt203 +/usr/share/ncurses4/terminfo/q/qvt203+ +/usr/share/ncurses4/terminfo/q/qvt203-25 +/usr/share/ncurses4/terminfo/q/qvt203-25-w +/usr/share/ncurses4/terminfo/q/qvt203-w +/usr/share/ncurses4/terminfo/q/qvt203-w-am +/usr/share/ncurses4/terminfo/r +/usr/share/ncurses4/terminfo/r/rbcomm +/usr/share/ncurses4/terminfo/r/rbcomm-nam +/usr/share/ncurses4/terminfo/r/rbcomm-w +/usr/share/ncurses4/terminfo/r/rca +/usr/share/ncurses4/terminfo/r/rebus3180 +/usr/share/ncurses4/terminfo/r/regent +/usr/share/ncurses4/terminfo/r/regent100 +/usr/share/ncurses4/terminfo/r/regent20 +/usr/share/ncurses4/terminfo/r/regent200 +/usr/share/ncurses4/terminfo/r/regent25 +/usr/share/ncurses4/terminfo/r/regent40 +/usr/share/ncurses4/terminfo/r/regent40+ +/usr/share/ncurses4/terminfo/r/regent60 +/usr/share/ncurses4/terminfo/r/rt6221 +/usr/share/ncurses4/terminfo/r/rt6221-w +/usr/share/ncurses4/terminfo/r/rtpc +/usr/share/ncurses4/terminfo/r/rxvt +/usr/share/ncurses4/terminfo/r/rxvt-basic +/usr/share/ncurses4/terminfo/s +/usr/share/ncurses4/terminfo/s/s +/usr/share/ncurses4/terminfo/s/s4 +/usr/share/ncurses4/terminfo/s/sb1 +/usr/share/ncurses4/terminfo/s/sb2 +/usr/share/ncurses4/terminfo/s/sb3 +/usr/share/ncurses4/terminfo/s/sbi +/usr/share/ncurses4/terminfo/s/sbobcat +/usr/share/ncurses4/terminfo/s/sc410 +/usr/share/ncurses4/terminfo/s/sc415 +/usr/share/ncurses4/terminfo/s/scanset +/usr/share/ncurses4/terminfo/s/scoansi +/usr/share/ncurses4/terminfo/s/screen +/usr/share/ncurses4/terminfo/s/screen-w +/usr/share/ncurses4/terminfo/s/screen2 +/usr/share/ncurses4/terminfo/s/screen3 +/usr/share/ncurses4/terminfo/s/screwpoint +/usr/share/ncurses4/terminfo/s/scrhp +/usr/share/ncurses4/terminfo/s/simterm +/usr/share/ncurses4/terminfo/s/soroc +/usr/share/ncurses4/terminfo/s/soroc120 +/usr/share/ncurses4/terminfo/s/soroc140 +/usr/share/ncurses4/terminfo/s/spinwriter +/usr/share/ncurses4/terminfo/s/st52 +/usr/share/ncurses4/terminfo/s/sun +/usr/share/ncurses4/terminfo/s/sun-1 +/usr/share/ncurses4/terminfo/s/sun-12 +/usr/share/ncurses4/terminfo/s/sun-17 +/usr/share/ncurses4/terminfo/s/sun-24 +/usr/share/ncurses4/terminfo/s/sun-34 +/usr/share/ncurses4/terminfo/s/sun-48 +/usr/share/ncurses4/terminfo/s/sun-c +/usr/share/ncurses4/terminfo/s/sun-cmd +/usr/share/ncurses4/terminfo/s/sun-e +/usr/share/ncurses4/terminfo/s/sun-e-s +/usr/share/ncurses4/terminfo/s/sun-il +/usr/share/ncurses4/terminfo/s/sun-nic +/usr/share/ncurses4/terminfo/s/sun-s +/usr/share/ncurses4/terminfo/s/sun-s-e +/usr/share/ncurses4/terminfo/s/sun-ss5 +/usr/share/ncurses4/terminfo/s/sun1 +/usr/share/ncurses4/terminfo/s/sun2 +/usr/share/ncurses4/terminfo/s/sune +/usr/share/ncurses4/terminfo/s/superbee +/usr/share/ncurses4/terminfo/s/superbee-xsb +/usr/share/ncurses4/terminfo/s/superbeeic +/usr/share/ncurses4/terminfo/s/superbrain +/usr/share/ncurses4/terminfo/s/sv80 +/usr/share/ncurses4/terminfo/s/swtp +/usr/share/ncurses4/terminfo/s/synertek +/usr/share/ncurses4/terminfo/s/synertek380 +/usr/share/ncurses4/terminfo/s/system1 +/usr/share/ncurses4/terminfo/t +/usr/share/ncurses4/terminfo/t/t10 +/usr/share/ncurses4/terminfo/t/t1061 +/usr/share/ncurses4/terminfo/t/t1061f +/usr/share/ncurses4/terminfo/t/t16 +/usr/share/ncurses4/terminfo/t/t3700 +/usr/share/ncurses4/terminfo/t/t3800 +/usr/share/ncurses4/terminfo/t/t653x +/usr/share/ncurses4/terminfo/t/tab +/usr/share/ncurses4/terminfo/t/tab132 +/usr/share/ncurses4/terminfo/t/tab132-15 +/usr/share/ncurses4/terminfo/t/tab132-rv +/usr/share/ncurses4/terminfo/t/tab132-w +/usr/share/ncurses4/terminfo/t/tab132-w-rv +/usr/share/ncurses4/terminfo/t/tandem6510 +/usr/share/ncurses4/terminfo/t/tandem653 +/usr/share/ncurses4/terminfo/t/tek +/usr/share/ncurses4/terminfo/t/tek4012 +/usr/share/ncurses4/terminfo/t/tek4013 +/usr/share/ncurses4/terminfo/t/tek4014 +/usr/share/ncurses4/terminfo/t/tek4014-sm +/usr/share/ncurses4/terminfo/t/tek4015 +/usr/share/ncurses4/terminfo/t/tek4015-sm +/usr/share/ncurses4/terminfo/t/tek4023 +/usr/share/ncurses4/terminfo/t/tek4024 +/usr/share/ncurses4/terminfo/t/tek4025 +/usr/share/ncurses4/terminfo/t/tek4025-17 +/usr/share/ncurses4/terminfo/t/tek4025-17-ws +/usr/share/ncurses4/terminfo/t/tek4025-cr +/usr/share/ncurses4/terminfo/t/tek4025-ex +/usr/share/ncurses4/terminfo/t/tek4025a +/usr/share/ncurses4/terminfo/t/tek4025ex +/usr/share/ncurses4/terminfo/t/tek4027 +/usr/share/ncurses4/terminfo/t/tek4027-ex +/usr/share/ncurses4/terminfo/t/tek4105 +/usr/share/ncurses4/terminfo/t/tek4105-30 +/usr/share/ncurses4/terminfo/t/tek4105a +/usr/share/ncurses4/terminfo/t/tek4106brl +/usr/share/ncurses4/terminfo/t/tek4107 +/usr/share/ncurses4/terminfo/t/tek4107brl +/usr/share/ncurses4/terminfo/t/tek4109 +/usr/share/ncurses4/terminfo/t/tek4109brl +/usr/share/ncurses4/terminfo/t/tek4112 +/usr/share/ncurses4/terminfo/t/tek4112-5 +/usr/share/ncurses4/terminfo/t/tek4112-nd +/usr/share/ncurses4/terminfo/t/tek4113 +/usr/share/ncurses4/terminfo/t/tek4113-34 +/usr/share/ncurses4/terminfo/t/tek4113-nd +/usr/share/ncurses4/terminfo/t/tek4114 +/usr/share/ncurses4/terminfo/t/tek4115 +/usr/share/ncurses4/terminfo/t/tek4125 +/usr/share/ncurses4/terminfo/t/tek4205 +/usr/share/ncurses4/terminfo/t/tek4207 +/usr/share/ncurses4/terminfo/t/tek4207-s +/usr/share/ncurses4/terminfo/t/tek4404 +/usr/share/ncurses4/terminfo/t/teleray +/usr/share/ncurses4/terminfo/t/teletec +/usr/share/ncurses4/terminfo/t/terminet +/usr/share/ncurses4/terminfo/t/terminet1200 +/usr/share/ncurses4/terminfo/t/terminet300 +/usr/share/ncurses4/terminfo/t/tgtelnet +/usr/share/ncurses4/terminfo/t/ti700 +/usr/share/ncurses4/terminfo/t/ti733 +/usr/share/ncurses4/terminfo/t/ti735 +/usr/share/ncurses4/terminfo/t/ti745 +/usr/share/ncurses4/terminfo/t/ti800 +/usr/share/ncurses4/terminfo/t/ti916 +/usr/share/ncurses4/terminfo/t/ti916-132 +/usr/share/ncurses4/terminfo/t/ti916-220-7 +/usr/share/ncurses4/terminfo/t/ti916-220-8 +/usr/share/ncurses4/terminfo/t/ti916-8 +/usr/share/ncurses4/terminfo/t/ti916-8-132 +/usr/share/ncurses4/terminfo/t/ti924 +/usr/share/ncurses4/terminfo/t/ti924-8 +/usr/share/ncurses4/terminfo/t/ti924-8w +/usr/share/ncurses4/terminfo/t/ti924w +/usr/share/ncurses4/terminfo/t/ti926 +/usr/share/ncurses4/terminfo/t/ti926-8 +/usr/share/ncurses4/terminfo/t/ti928 +/usr/share/ncurses4/terminfo/t/ti928-8 +/usr/share/ncurses4/terminfo/t/ti931 +/usr/share/ncurses4/terminfo/t/ti_ansi +/usr/share/ncurses4/terminfo/t/tn1200 +/usr/share/ncurses4/terminfo/t/tn300 +/usr/share/ncurses4/terminfo/t/trs16 +/usr/share/ncurses4/terminfo/t/trs2 +/usr/share/ncurses4/terminfo/t/trs80II +/usr/share/ncurses4/terminfo/t/trsII +/usr/share/ncurses4/terminfo/t/ts-1 +/usr/share/ncurses4/terminfo/t/ts-1p +/usr/share/ncurses4/terminfo/t/ts1 +/usr/share/ncurses4/terminfo/t/ts100 +/usr/share/ncurses4/terminfo/t/ts100-ctxt +/usr/share/ncurses4/terminfo/t/ts100-sp +/usr/share/ncurses4/terminfo/t/ts1p +/usr/share/ncurses4/terminfo/t/tt505-22 +/usr/share/ncurses4/terminfo/t/tty33 +/usr/share/ncurses4/terminfo/t/tty35 +/usr/share/ncurses4/terminfo/t/tty37 +/usr/share/ncurses4/terminfo/t/tty40 +/usr/share/ncurses4/terminfo/t/tty43 +/usr/share/ncurses4/terminfo/t/tty4420 +/usr/share/ncurses4/terminfo/t/tty4424 +/usr/share/ncurses4/terminfo/t/tty4424-1 +/usr/share/ncurses4/terminfo/t/tty4424m +/usr/share/ncurses4/terminfo/t/tty4426 +/usr/share/ncurses4/terminfo/t/tty5410 +/usr/share/ncurses4/terminfo/t/tty5410-w +/usr/share/ncurses4/terminfo/t/tty5410v1 +/usr/share/ncurses4/terminfo/t/tty5410v1-w +/usr/share/ncurses4/terminfo/t/tty5420 +/usr/share/ncurses4/terminfo/t/tty5420+nl +/usr/share/ncurses4/terminfo/t/tty5420-nl +/usr/share/ncurses4/terminfo/t/tty5420-rv +/usr/share/ncurses4/terminfo/t/tty5420-rv-nl +/usr/share/ncurses4/terminfo/t/tty5420-w +/usr/share/ncurses4/terminfo/t/tty5420-w-nl +/usr/share/ncurses4/terminfo/t/tty5420-w-rv +/usr/share/ncurses4/terminfo/t/tty5420-w-rv-n +/usr/share/ncurses4/terminfo/t/tty5425 +/usr/share/ncurses4/terminfo/t/tty5425-nl +/usr/share/ncurses4/terminfo/t/tty5425-w +/usr/share/ncurses4/terminfo/t/tty5620 +/usr/share/ncurses4/terminfo/t/tty5620-1 +/usr/share/ncurses4/terminfo/t/tty5620-24 +/usr/share/ncurses4/terminfo/t/tty5620-34 +/usr/share/ncurses4/terminfo/t/tty5620-s +/usr/share/ncurses4/terminfo/t/ttydmd +/usr/share/ncurses4/terminfo/t/tvi-2p +/usr/share/ncurses4/terminfo/t/tvi803 +/usr/share/ncurses4/terminfo/t/tvi9065 +/usr/share/ncurses4/terminfo/t/tvi910 +/usr/share/ncurses4/terminfo/t/tvi910+ +/usr/share/ncurses4/terminfo/t/tvi912 +/usr/share/ncurses4/terminfo/t/tvi912-2p +/usr/share/ncurses4/terminfo/t/tvi912b +/usr/share/ncurses4/terminfo/t/tvi912c +/usr/share/ncurses4/terminfo/t/tvi912cc +/usr/share/ncurses4/terminfo/t/tvi914 +/usr/share/ncurses4/terminfo/t/tvi920 +/usr/share/ncurses4/terminfo/t/tvi920-2p +/usr/share/ncurses4/terminfo/t/tvi920b +/usr/share/ncurses4/terminfo/t/tvi920c +/usr/share/ncurses4/terminfo/t/tvi921 +/usr/share/ncurses4/terminfo/t/tvi924 +/usr/share/ncurses4/terminfo/t/tvi925 +/usr/share/ncurses4/terminfo/t/tvi925-hi +/usr/share/ncurses4/terminfo/t/tvi92B +/usr/share/ncurses4/terminfo/t/tvi92D +/usr/share/ncurses4/terminfo/t/tvi950 +/usr/share/ncurses4/terminfo/t/tvi950-2p +/usr/share/ncurses4/terminfo/t/tvi950-4p +/usr/share/ncurses4/terminfo/t/tvi950-rv +/usr/share/ncurses4/terminfo/t/tvi950-rv-2p +/usr/share/ncurses4/terminfo/t/tvi950-rv-4p +/usr/share/ncurses4/terminfo/t/tvi955 +/usr/share/ncurses4/terminfo/t/tvi955-hb +/usr/share/ncurses4/terminfo/t/tvi955-w +/usr/share/ncurses4/terminfo/t/tvi970 +/usr/share/ncurses4/terminfo/t/tvi970-2p +/usr/share/ncurses4/terminfo/t/tvi970-vb +/usr/share/ncurses4/terminfo/t/tvipt +/usr/share/ncurses4/terminfo/u +/usr/share/ncurses4/terminfo/u/ultima2 +/usr/share/ncurses4/terminfo/u/ultimaII +/usr/share/ncurses4/terminfo/u/uniterm +/usr/share/ncurses4/terminfo/u/uniterm49 +/usr/share/ncurses4/terminfo/u/unixpc +/usr/share/ncurses4/terminfo/u/unknown +/usr/share/ncurses4/terminfo/u/uts30 +/usr/share/ncurses4/terminfo/v +/usr/share/ncurses4/terminfo/v/v200-nam +/usr/share/ncurses4/terminfo/v/v320n +/usr/share/ncurses4/terminfo/v/v3220 +/usr/share/ncurses4/terminfo/v/v5410 +/usr/share/ncurses4/terminfo/v/vapple +/usr/share/ncurses4/terminfo/v/vc103 +/usr/share/ncurses4/terminfo/v/vc203 +/usr/share/ncurses4/terminfo/v/vc303 +/usr/share/ncurses4/terminfo/v/vc303a +/usr/share/ncurses4/terminfo/v/vc403a +/usr/share/ncurses4/terminfo/v/vc404 +/usr/share/ncurses4/terminfo/v/vc404-s +/usr/share/ncurses4/terminfo/v/vc414 +/usr/share/ncurses4/terminfo/v/vc414h +/usr/share/ncurses4/terminfo/v/vc415 +/usr/share/ncurses4/terminfo/v/venix +/usr/share/ncurses4/terminfo/v/versaterm +/usr/share/ncurses4/terminfo/v/vi200 +/usr/share/ncurses4/terminfo/v/vi200-f +/usr/share/ncurses4/terminfo/v/vi200-rv +/usr/share/ncurses4/terminfo/v/vi300 +/usr/share/ncurses4/terminfo/v/vi300-old +/usr/share/ncurses4/terminfo/v/vi50 +/usr/share/ncurses4/terminfo/v/vi500 +/usr/share/ncurses4/terminfo/v/vi50adm +/usr/share/ncurses4/terminfo/v/vi55 +/usr/share/ncurses4/terminfo/v/vi550 +/usr/share/ncurses4/terminfo/v/vi603 +/usr/share/ncurses4/terminfo/v/viewpoint +/usr/share/ncurses4/terminfo/v/viewpoint3a+ +/usr/share/ncurses4/terminfo/v/viewpoint60 +/usr/share/ncurses4/terminfo/v/viewpoint90 +/usr/share/ncurses4/terminfo/v/visa50 +/usr/share/ncurses4/terminfo/v/visual603 +/usr/share/ncurses4/terminfo/v/vitty +/usr/share/ncurses4/terminfo/v/vk100 +/usr/share/ncurses4/terminfo/v/vp3a+ +/usr/share/ncurses4/terminfo/v/vp60 +/usr/share/ncurses4/terminfo/v/vp90 +/usr/share/ncurses4/terminfo/v/vremote +/usr/share/ncurses4/terminfo/v/vs100 +/usr/share/ncurses4/terminfo/v/vs100-x10 +/usr/share/ncurses4/terminfo/v/vsc +/usr/share/ncurses4/terminfo/v/vt-61 +/usr/share/ncurses4/terminfo/v/vt100 +/usr/share/ncurses4/terminfo/v/vt100-am +/usr/share/ncurses4/terminfo/v/vt100-bm +/usr/share/ncurses4/terminfo/v/vt100-bm-o +/usr/share/ncurses4/terminfo/v/vt100-bot-s +/usr/share/ncurses4/terminfo/v/vt100-nam +/usr/share/ncurses4/terminfo/v/vt100-nam-w +/usr/share/ncurses4/terminfo/v/vt100-nav +/usr/share/ncurses4/terminfo/v/vt100-nav-w +/usr/share/ncurses4/terminfo/v/vt100-s +/usr/share/ncurses4/terminfo/v/vt100-s-bot +/usr/share/ncurses4/terminfo/v/vt100-s-top +/usr/share/ncurses4/terminfo/v/vt100-top-s +/usr/share/ncurses4/terminfo/v/vt100-vb +/usr/share/ncurses4/terminfo/v/vt100-w +/usr/share/ncurses4/terminfo/v/vt100-w-am +/usr/share/ncurses4/terminfo/v/vt100-w-nam +/usr/share/ncurses4/terminfo/v/vt100-w-nav +/usr/share/ncurses4/terminfo/v/vt100nam +/usr/share/ncurses4/terminfo/v/vt102 +/usr/share/ncurses4/terminfo/v/vt102-nsgr +/usr/share/ncurses4/terminfo/v/vt102-w +/usr/share/ncurses4/terminfo/v/vt125 +/usr/share/ncurses4/terminfo/v/vt131 +/usr/share/ncurses4/terminfo/v/vt132 +/usr/share/ncurses4/terminfo/v/vt200 +/usr/share/ncurses4/terminfo/v/vt200-js +/usr/share/ncurses4/terminfo/v/vt200-w +/usr/share/ncurses4/terminfo/v/vt220 +/usr/share/ncurses4/terminfo/v/vt220-8 +/usr/share/ncurses4/terminfo/v/vt220-js +/usr/share/ncurses4/terminfo/v/vt220-nam +/usr/share/ncurses4/terminfo/v/vt220-w +/usr/share/ncurses4/terminfo/v/vt220d +/usr/share/ncurses4/terminfo/v/vt300 +/usr/share/ncurses4/terminfo/v/vt300-nam +/usr/share/ncurses4/terminfo/v/vt300-w +/usr/share/ncurses4/terminfo/v/vt300-w-nam +/usr/share/ncurses4/terminfo/v/vt320 +/usr/share/ncurses4/terminfo/v/vt320-k3 +/usr/share/ncurses4/terminfo/v/vt320-k311 +/usr/share/ncurses4/terminfo/v/vt320-nam +/usr/share/ncurses4/terminfo/v/vt320-w +/usr/share/ncurses4/terminfo/v/vt320-w-nam +/usr/share/ncurses4/terminfo/v/vt320nam +/usr/share/ncurses4/terminfo/v/vt330 +/usr/share/ncurses4/terminfo/v/vt340 +/usr/share/ncurses4/terminfo/v/vt400 +/usr/share/ncurses4/terminfo/v/vt400-24 +/usr/share/ncurses4/terminfo/v/vt420 +/usr/share/ncurses4/terminfo/v/vt420f +/usr/share/ncurses4/terminfo/v/vt420pc +/usr/share/ncurses4/terminfo/v/vt420pcdos +/usr/share/ncurses4/terminfo/v/vt50 +/usr/share/ncurses4/terminfo/v/vt50h +/usr/share/ncurses4/terminfo/v/vt510 +/usr/share/ncurses4/terminfo/v/vt510pc +/usr/share/ncurses4/terminfo/v/vt510pcdos +/usr/share/ncurses4/terminfo/v/vt52 +/usr/share/ncurses4/terminfo/v/vt520 +/usr/share/ncurses4/terminfo/v/vt525 +/usr/share/ncurses4/terminfo/v/vt61 +/usr/share/ncurses4/terminfo/v/vt61.5 +/usr/share/ncurses4/terminfo/w +/usr/share/ncurses4/terminfo/w/wren +/usr/share/ncurses4/terminfo/w/wrenw +/usr/share/ncurses4/terminfo/w/wsiris +/usr/share/ncurses4/terminfo/w/wy-75ap +/usr/share/ncurses4/terminfo/w/wy100 +/usr/share/ncurses4/terminfo/w/wy100q +/usr/share/ncurses4/terminfo/w/wy120 +/usr/share/ncurses4/terminfo/w/wy120-25 +/usr/share/ncurses4/terminfo/w/wy120-25-w +/usr/share/ncurses4/terminfo/w/wy120-vb +/usr/share/ncurses4/terminfo/w/wy120-w +/usr/share/ncurses4/terminfo/w/wy120-w-vb +/usr/share/ncurses4/terminfo/w/wy120-wvb +/usr/share/ncurses4/terminfo/w/wy150 +/usr/share/ncurses4/terminfo/w/wy150-25 +/usr/share/ncurses4/terminfo/w/wy150-25-w +/usr/share/ncurses4/terminfo/w/wy150-vb +/usr/share/ncurses4/terminfo/w/wy150-w +/usr/share/ncurses4/terminfo/w/wy150-w-vb +/usr/share/ncurses4/terminfo/w/wy160 +/usr/share/ncurses4/terminfo/w/wy160-25 +/usr/share/ncurses4/terminfo/w/wy160-25-w +/usr/share/ncurses4/terminfo/w/wy160-42 +/usr/share/ncurses4/terminfo/w/wy160-42-w +/usr/share/ncurses4/terminfo/w/wy160-43 +/usr/share/ncurses4/terminfo/w/wy160-43-w +/usr/share/ncurses4/terminfo/w/wy160-tek +/usr/share/ncurses4/terminfo/w/wy160-vb +/usr/share/ncurses4/terminfo/w/wy160-w +/usr/share/ncurses4/terminfo/w/wy160-w-vb +/usr/share/ncurses4/terminfo/w/wy160-wvb +/usr/share/ncurses4/terminfo/w/wy185 +/usr/share/ncurses4/terminfo/w/wy185-24 +/usr/share/ncurses4/terminfo/w/wy185-vb +/usr/share/ncurses4/terminfo/w/wy185-w +/usr/share/ncurses4/terminfo/w/wy185-wvb +/usr/share/ncurses4/terminfo/w/wy30 +/usr/share/ncurses4/terminfo/w/wy30-mc +/usr/share/ncurses4/terminfo/w/wy30-vb +/usr/share/ncurses4/terminfo/w/wy325 +/usr/share/ncurses4/terminfo/w/wy325-25 +/usr/share/ncurses4/terminfo/w/wy325-25w +/usr/share/ncurses4/terminfo/w/wy325-42 +/usr/share/ncurses4/terminfo/w/wy325-42w +/usr/share/ncurses4/terminfo/w/wy325-42w-vb +/usr/share/ncurses4/terminfo/w/wy325-42wvb +/usr/share/ncurses4/terminfo/w/wy325-43 +/usr/share/ncurses4/terminfo/w/wy325-43w +/usr/share/ncurses4/terminfo/w/wy325-43w-vb +/usr/share/ncurses4/terminfo/w/wy325-43wvb +/usr/share/ncurses4/terminfo/w/wy325-80 +/usr/share/ncurses4/terminfo/w/wy325-vb +/usr/share/ncurses4/terminfo/w/wy325-w +/usr/share/ncurses4/terminfo/w/wy325-w-vb +/usr/share/ncurses4/terminfo/w/wy325-wvb +/usr/share/ncurses4/terminfo/w/wy325w-24 +/usr/share/ncurses4/terminfo/w/wy350 +/usr/share/ncurses4/terminfo/w/wy350-vb +/usr/share/ncurses4/terminfo/w/wy350-w +/usr/share/ncurses4/terminfo/w/wy350-wvb +/usr/share/ncurses4/terminfo/w/wy370 +/usr/share/ncurses4/terminfo/w/wy370-101k +/usr/share/ncurses4/terminfo/w/wy370-105k +/usr/share/ncurses4/terminfo/w/wy370-EPC +/usr/share/ncurses4/terminfo/w/wy370-nk +/usr/share/ncurses4/terminfo/w/wy370-rv +/usr/share/ncurses4/terminfo/w/wy370-tek +/usr/share/ncurses4/terminfo/w/wy370-vb +/usr/share/ncurses4/terminfo/w/wy370-w +/usr/share/ncurses4/terminfo/w/wy370-wvb +/usr/share/ncurses4/terminfo/w/wy50 +/usr/share/ncurses4/terminfo/w/wy50-mc +/usr/share/ncurses4/terminfo/w/wy50-vb +/usr/share/ncurses4/terminfo/w/wy50-w +/usr/share/ncurses4/terminfo/w/wy50-wvb +/usr/share/ncurses4/terminfo/w/wy520 +/usr/share/ncurses4/terminfo/w/wy520-24 +/usr/share/ncurses4/terminfo/w/wy520-36 +/usr/share/ncurses4/terminfo/w/wy520-36pc +/usr/share/ncurses4/terminfo/w/wy520-36w +/usr/share/ncurses4/terminfo/w/wy520-36wpc +/usr/share/ncurses4/terminfo/w/wy520-48 +/usr/share/ncurses4/terminfo/w/wy520-48pc +/usr/share/ncurses4/terminfo/w/wy520-48w +/usr/share/ncurses4/terminfo/w/wy520-48wpc +/usr/share/ncurses4/terminfo/w/wy520-epc +/usr/share/ncurses4/terminfo/w/wy520-epc-24 +/usr/share/ncurses4/terminfo/w/wy520-epc-vb +/usr/share/ncurses4/terminfo/w/wy520-epc-w +/usr/share/ncurses4/terminfo/w/wy520-epc-wvb +/usr/share/ncurses4/terminfo/w/wy520-vb +/usr/share/ncurses4/terminfo/w/wy520-w +/usr/share/ncurses4/terminfo/w/wy520-wvb +/usr/share/ncurses4/terminfo/w/wy60 +/usr/share/ncurses4/terminfo/w/wy60-25 +/usr/share/ncurses4/terminfo/w/wy60-25-w +/usr/share/ncurses4/terminfo/w/wy60-316X +/usr/share/ncurses4/terminfo/w/wy60-42 +/usr/share/ncurses4/terminfo/w/wy60-42-w +/usr/share/ncurses4/terminfo/w/wy60-43 +/usr/share/ncurses4/terminfo/w/wy60-43-w +/usr/share/ncurses4/terminfo/w/wy60-vb +/usr/share/ncurses4/terminfo/w/wy60-w +/usr/share/ncurses4/terminfo/w/wy60-w-vb +/usr/share/ncurses4/terminfo/w/wy60-wvb +/usr/share/ncurses4/terminfo/w/wy75 +/usr/share/ncurses4/terminfo/w/wy75-mc +/usr/share/ncurses4/terminfo/w/wy75-vb +/usr/share/ncurses4/terminfo/w/wy75-w +/usr/share/ncurses4/terminfo/w/wy75-wvb +/usr/share/ncurses4/terminfo/w/wy75ap +/usr/share/ncurses4/terminfo/w/wy85 +/usr/share/ncurses4/terminfo/w/wy85-vb +/usr/share/ncurses4/terminfo/w/wy85-w +/usr/share/ncurses4/terminfo/w/wy85-wvb +/usr/share/ncurses4/terminfo/w/wy99gt +/usr/share/ncurses4/terminfo/w/wy99gt-25 +/usr/share/ncurses4/terminfo/w/wy99gt-25-w +/usr/share/ncurses4/terminfo/w/wy99gt-tek +/usr/share/ncurses4/terminfo/w/wy99gt-vb +/usr/share/ncurses4/terminfo/w/wy99gt-w +/usr/share/ncurses4/terminfo/w/wy99gt-w-vb +/usr/share/ncurses4/terminfo/w/wy99gt-wvb +/usr/share/ncurses4/terminfo/w/wyse-325 +/usr/share/ncurses4/terminfo/w/wyse-75ap +/usr/share/ncurses4/terminfo/w/wyse-vp +/usr/share/ncurses4/terminfo/w/wyse120 +/usr/share/ncurses4/terminfo/w/wyse120-25 +/usr/share/ncurses4/terminfo/w/wyse120-25-w +/usr/share/ncurses4/terminfo/w/wyse120-vb +/usr/share/ncurses4/terminfo/w/wyse120-w +/usr/share/ncurses4/terminfo/w/wyse120-wvb +/usr/share/ncurses4/terminfo/w/wyse150 +/usr/share/ncurses4/terminfo/w/wyse150-25 +/usr/share/ncurses4/terminfo/w/wyse150-25-w +/usr/share/ncurses4/terminfo/w/wyse150-vb +/usr/share/ncurses4/terminfo/w/wyse150-w +/usr/share/ncurses4/terminfo/w/wyse150-w-vb +/usr/share/ncurses4/terminfo/w/wyse160 +/usr/share/ncurses4/terminfo/w/wyse160-25 +/usr/share/ncurses4/terminfo/w/wyse160-25-w +/usr/share/ncurses4/terminfo/w/wyse160-42 +/usr/share/ncurses4/terminfo/w/wyse160-42-w +/usr/share/ncurses4/terminfo/w/wyse160-43 +/usr/share/ncurses4/terminfo/w/wyse160-43-w +/usr/share/ncurses4/terminfo/w/wyse160-vb +/usr/share/ncurses4/terminfo/w/wyse160-w +/usr/share/ncurses4/terminfo/w/wyse160-wvb +/usr/share/ncurses4/terminfo/w/wyse185 +/usr/share/ncurses4/terminfo/w/wyse185-24 +/usr/share/ncurses4/terminfo/w/wyse185-vb +/usr/share/ncurses4/terminfo/w/wyse185-w +/usr/share/ncurses4/terminfo/w/wyse185-wvb +/usr/share/ncurses4/terminfo/w/wyse30 +/usr/share/ncurses4/terminfo/w/wyse30-mc +/usr/share/ncurses4/terminfo/w/wyse30-vb +/usr/share/ncurses4/terminfo/w/wyse325 +/usr/share/ncurses4/terminfo/w/wyse325-25 +/usr/share/ncurses4/terminfo/w/wyse325-25w +/usr/share/ncurses4/terminfo/w/wyse325-42 +/usr/share/ncurses4/terminfo/w/wyse325-42w +/usr/share/ncurses4/terminfo/w/wyse325-43 +/usr/share/ncurses4/terminfo/w/wyse325-43w +/usr/share/ncurses4/terminfo/w/wyse325-vb +/usr/share/ncurses4/terminfo/w/wyse325-w +/usr/share/ncurses4/terminfo/w/wyse325-wvb +/usr/share/ncurses4/terminfo/w/wyse350 +/usr/share/ncurses4/terminfo/w/wyse350-vb +/usr/share/ncurses4/terminfo/w/wyse350-w +/usr/share/ncurses4/terminfo/w/wyse350-wvb +/usr/share/ncurses4/terminfo/w/wyse370 +/usr/share/ncurses4/terminfo/w/wyse50 +/usr/share/ncurses4/terminfo/w/wyse50-mc +/usr/share/ncurses4/terminfo/w/wyse50-vb +/usr/share/ncurses4/terminfo/w/wyse50-w +/usr/share/ncurses4/terminfo/w/wyse50-wvb +/usr/share/ncurses4/terminfo/w/wyse520 +/usr/share/ncurses4/terminfo/w/wyse520-24 +/usr/share/ncurses4/terminfo/w/wyse520-36 +/usr/share/ncurses4/terminfo/w/wyse520-36pc +/usr/share/ncurses4/terminfo/w/wyse520-36w +/usr/share/ncurses4/terminfo/w/wyse520-36wpc +/usr/share/ncurses4/terminfo/w/wyse520-48 +/usr/share/ncurses4/terminfo/w/wyse520-48pc +/usr/share/ncurses4/terminfo/w/wyse520-48w +/usr/share/ncurses4/terminfo/w/wyse520-48wpc +/usr/share/ncurses4/terminfo/w/wyse520-epc +/usr/share/ncurses4/terminfo/w/wyse520-epc-w +/usr/share/ncurses4/terminfo/w/wyse520-p-wvb +/usr/share/ncurses4/terminfo/w/wyse520-pc-24 +/usr/share/ncurses4/terminfo/w/wyse520-pc-vb +/usr/share/ncurses4/terminfo/w/wyse520-vb +/usr/share/ncurses4/terminfo/w/wyse520-w +/usr/share/ncurses4/terminfo/w/wyse520-wvb +/usr/share/ncurses4/terminfo/w/wyse60 +/usr/share/ncurses4/terminfo/w/wyse60-25 +/usr/share/ncurses4/terminfo/w/wyse60-25-w +/usr/share/ncurses4/terminfo/w/wyse60-316X +/usr/share/ncurses4/terminfo/w/wyse60-42 +/usr/share/ncurses4/terminfo/w/wyse60-42-w +/usr/share/ncurses4/terminfo/w/wyse60-43 +/usr/share/ncurses4/terminfo/w/wyse60-43-w +/usr/share/ncurses4/terminfo/w/wyse60-vb +/usr/share/ncurses4/terminfo/w/wyse60-w +/usr/share/ncurses4/terminfo/w/wyse60-wvb +/usr/share/ncurses4/terminfo/w/wyse75 +/usr/share/ncurses4/terminfo/w/wyse75-mc +/usr/share/ncurses4/terminfo/w/wyse75-vb +/usr/share/ncurses4/terminfo/w/wyse75-w +/usr/share/ncurses4/terminfo/w/wyse75-wvb +/usr/share/ncurses4/terminfo/w/wyse75ap +/usr/share/ncurses4/terminfo/w/wyse85 +/usr/share/ncurses4/terminfo/w/wyse85-vb +/usr/share/ncurses4/terminfo/w/wyse85-w +/usr/share/ncurses4/terminfo/w/wyse85-wvb +/usr/share/ncurses4/terminfo/w/wyse99gt +/usr/share/ncurses4/terminfo/w/wyse99gt-25 +/usr/share/ncurses4/terminfo/w/wyse99gt-25-w +/usr/share/ncurses4/terminfo/w/wyse99gt-vb +/usr/share/ncurses4/terminfo/w/wyse99gt-w +/usr/share/ncurses4/terminfo/w/wyse99gt-wvb +/usr/share/ncurses4/terminfo/x +/usr/share/ncurses4/terminfo/x/x10term +/usr/share/ncurses4/terminfo/x/x1700 +/usr/share/ncurses4/terminfo/x/x1700-lm +/usr/share/ncurses4/terminfo/x/x1720 +/usr/share/ncurses4/terminfo/x/x1750 +/usr/share/ncurses4/terminfo/x/x68k +/usr/share/ncurses4/terminfo/x/x68k-ite +/usr/share/ncurses4/terminfo/x/x820 +/usr/share/ncurses4/terminfo/x/xenix +/usr/share/ncurses4/terminfo/x/xerox +/usr/share/ncurses4/terminfo/x/xerox-lm +/usr/share/ncurses4/terminfo/x/xerox1720 +/usr/share/ncurses4/terminfo/x/xerox820 +/usr/share/ncurses4/terminfo/x/xl83 +/usr/share/ncurses4/terminfo/x/xtalk +/usr/share/ncurses4/terminfo/x/xterm +/usr/share/ncurses4/terminfo/x/xterm+sl +/usr/share/ncurses4/terminfo/x/xterm+sl-twm +/usr/share/ncurses4/terminfo/x/xterm-16color +/usr/share/ncurses4/terminfo/x/xterm-8bit +/usr/share/ncurses4/terminfo/x/xterm-bold +/usr/share/ncurses4/terminfo/x/xterm-nic +/usr/share/ncurses4/terminfo/x/xterm-old +/usr/share/ncurses4/terminfo/x/xterm-pcolor +/usr/share/ncurses4/terminfo/x/xterm-r5 +/usr/share/ncurses4/terminfo/x/xterm-r6 +/usr/share/ncurses4/terminfo/x/xterm-sun +/usr/share/ncurses4/terminfo/x/xterm-xf86-v32 +/usr/share/ncurses4/terminfo/x/xterm-xf86-v33 +/usr/share/ncurses4/terminfo/x/xterm-xf86-v40 +/usr/share/ncurses4/terminfo/x/xterm-xi +/usr/share/ncurses4/terminfo/x/xterm1 +/usr/share/ncurses4/terminfo/x/xterms +/usr/share/ncurses4/terminfo/x/xterms-sun +/usr/share/ncurses4/terminfo/x/xwsh +/usr/share/ncurses4/terminfo/z +/usr/share/ncurses4/terminfo/z/z-100 +/usr/share/ncurses4/terminfo/z/z-100bw +/usr/share/ncurses4/terminfo/z/z100 +/usr/share/ncurses4/terminfo/z/z100bw +/usr/share/ncurses4/terminfo/z/z110 +/usr/share/ncurses4/terminfo/z/z110bw +/usr/share/ncurses4/terminfo/z/z19 +/usr/share/ncurses4/terminfo/z/z29 +/usr/share/ncurses4/terminfo/z/z29a +/usr/share/ncurses4/terminfo/z/z29a-kc-bc +/usr/share/ncurses4/terminfo/z/z29a-kc-uc +/usr/share/ncurses4/terminfo/z/z29a-nkc-bc +/usr/share/ncurses4/terminfo/z/z29a-nkc-uc +/usr/share/ncurses4/terminfo/z/z29b +/usr/share/ncurses4/terminfo/z/z30 +/usr/share/ncurses4/terminfo/z/z340 +/usr/share/ncurses4/terminfo/z/z340-nam +/usr/share/ncurses4/terminfo/z/z39-a +/usr/share/ncurses4/terminfo/z/z39a +/usr/share/ncurses4/terminfo/z/z50 +/usr/share/ncurses4/terminfo/z/z8001 +/usr/share/ncurses4/terminfo/z/zen30 +/usr/share/ncurses4/terminfo/z/zen50 +/usr/share/ncurses4/terminfo/z/zen8001 +/usr/share/ncurses4/terminfo/z/zenith +/usr/share/ncurses4/terminfo/z/zenith29 +/usr/share/ncurses4/terminfo/z/zenith39-a +/usr/share/ncurses4/terminfo/z/zenith39-ansi +/usr/share/ncurses4/terminfo/z/zt-1 +/usr/share/ncurses4/terminfo/z/ztx +/usr/share/ncurses4/terminfo/z/ztx-1-a +/usr/share/ncurses4/terminfo/z/ztx11 + + + diff --git a/result/rdf2.rde b/result/rdf2.rde new file mode 100644 index 0000000..15e5e97 --- /dev/null +++ b/result/rdf2.rde @@ -0,0 +1,2008 @@ +0 1 RDF:RDF 0 0 +1 14 #text 0 1 + +1 1 RDF:Description 0 0 +2 14 #text 0 1 + +2 1 RPM:Name 0 0 +3 3 #text 0 1 ncurses4 +2 15 RPM:Name 0 0 +2 14 #text 0 1 + +2 1 RPM:Version 0 0 +3 3 #text 0 1 4.2 +2 15 RPM:Version 0 0 +2 14 #text 0 1 + +2 1 RPM:Release 0 0 +3 3 #text 0 1 3 +2 15 RPM:Release 0 0 +2 14 #text 0 1 + +2 1 RPM:Arch 0 0 +3 3 #text 0 1 i386 +2 15 RPM:Arch 0 0 +2 14 #text 0 1 + +2 1 RPM:Os 0 0 +3 3 #text 0 1 Linux +2 15 RPM:Os 0 0 +2 14 #text 0 1 + +2 1 RPM:Distribution 0 0 +3 3 #text 0 1 DLD +2 15 RPM:Distribution 0 0 +2 14 #text 0 1 + +2 1 RPM:Vendor 0 0 +3 3 #text 0 1 delix Computer GmbH +2 15 RPM:Vendor 0 0 +2 14 #text 0 1 + +2 1 RPM:Packager 0 0 +3 3 #text 0 1 Till Bubeck , Ngo Than +2 15 RPM:Packager 0 0 +2 14 #text 0 1 + +2 1 RPM:Group 0 0 +3 3 #text 0 1 Libraries +2 15 RPM:Group 0 0 +2 14 #text 0 1 + +2 1 RPM:Summary 0 0 +3 3 #text 0 1 Bibliothek zur Ansteuerung von Terminals +2 15 RPM:Summary 0 0 +2 14 #text 0 1 + +2 1 RPM:Description 0 0 +3 3 #text 0 1 Diese Library stellt dem Programmierer vom Terminal unabhängige +Routinen zur Ansteuerung Ihres Bildschirms zur Verfügung, die +speziell optimiert sind. +Diese Version ist die 'new curses' (ncurses) Variante und ist der +anerkannte Ersatz für die klassische Curses-Library, die nicht mehr +weiterentwickelt wird. +2 15 RPM:Description 0 0 +2 14 #text 0 1 + +2 1 RPM:Copyright 0 0 +3 3 #text 0 1 GPL +2 15 RPM:Copyright 0 0 +2 14 #text 0 1 + +2 1 RPM:Sources 0 0 +3 3 #text 0 1 ncurses4-4.2-3.src.rpm +2 15 RPM:Sources 0 0 +2 14 #text 0 1 + +2 1 RPM:BuildDate 0 0 +3 3 #text 0 1 Tue May 12 19:30:26 1998 +2 15 RPM:BuildDate 0 0 +2 14 #text 0 1 + +2 1 RPM:Date 0 0 +3 3 #text 0 1 895015826 +2 15 RPM:Date 0 0 +2 14 #text 0 1 + +2 1 RPM:Size 0 0 +3 3 #text 0 1 1373513 +2 15 RPM:Size 0 0 +2 14 #text 0 1 + +2 1 RPM:BuildHost 0 0 +3 3 #text 0 1 erdbeere.delix.de +2 15 RPM:BuildHost 0 0 +2 14 #text 0 1 + +2 1 RPM:Provides 0 0 +3 14 #text 0 1 + +3 1 RDF:Bag 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 ncurses4 +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 libpanel.so.4 +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 libncurses.so.4 +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 libmenu.so.4 +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 libform.so.4 +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 ncurses +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +3 15 RDF:Bag 0 0 +3 14 #text 0 1 + +2 15 RPM:Provides 0 0 +2 14 #text 0 1 + +2 1 RPM:Files 0 0 +3 3 #text 0 1 /lib/libncurses.so.4 +/lib/libncurses.so.4.2 +/usr/doc/ncurses4-4.2-3 +/usr/doc/ncurses4-4.2-3/ANNOUNCE.gz +/usr/doc/ncurses4-4.2-3/NEWS.gz +/usr/doc/ncurses4-4.2-3/README.gz +/usr/doc/ncurses4-4.2-3/TO-DO.gz +/usr/lib/libform.so.4 +/usr/lib/libform.so.4.2 +/usr/lib/libmenu.so.4 +/usr/lib/libmenu.so.4.2 +/usr/lib/libpanel.so.4 +/usr/lib/libpanel.so.4.2 +/usr/share/ncurses4 +/usr/share/ncurses4/tabset +/usr/share/ncurses4/tabset/std +/usr/share/ncurses4/tabset/stdcrt +/usr/share/ncurses4/tabset/vt100 +/usr/share/ncurses4/tabset/vt300 +/usr/share/ncurses4/terminfo +/usr/share/ncurses4/terminfo/1 +/usr/share/ncurses4/terminfo/1/1178 +/usr/share/ncurses4/terminfo/1/1730-lm +/usr/share/ncurses4/terminfo/2 +/usr/share/ncurses4/terminfo/2/2621 +/usr/share/ncurses4/terminfo/2/2621-wl +/usr/share/ncurses4/terminfo/2/2621A +/usr/share/ncurses4/terminfo/2/2621a +/usr/share/ncurses4/terminfo/3 +/usr/share/ncurses4/terminfo/3/386at +/usr/share/ncurses4/terminfo/3/3b1 +/usr/share/ncurses4/terminfo/4 +/usr/share/ncurses4/terminfo/4/4025ex +/usr/share/ncurses4/terminfo/4/4027ex +/usr/share/ncurses4/terminfo/4/4410-w +/usr/share/ncurses4/terminfo/5 +/usr/share/ncurses4/terminfo/5/5051 +/usr/share/ncurses4/terminfo/5/5410-w +/usr/share/ncurses4/terminfo/5/5620 +/usr/share/ncurses4/terminfo/5/5630-24 +/usr/share/ncurses4/terminfo/5/5630DMD-24 +/usr/share/ncurses4/terminfo/6 +/usr/share/ncurses4/terminfo/6/630-lm +/usr/share/ncurses4/terminfo/6/630MTG-24 +/usr/share/ncurses4/terminfo/7 +/usr/share/ncurses4/terminfo/7/730MTG-24 +/usr/share/ncurses4/terminfo/7/730MTG-41 +/usr/share/ncurses4/terminfo/7/730MTG-41r +/usr/share/ncurses4/terminfo/7/730MTGr +/usr/share/ncurses4/terminfo/7/730MTGr-24 +/usr/share/ncurses4/terminfo/8 +/usr/share/ncurses4/terminfo/8/8510 +/usr/share/ncurses4/terminfo/9 +/usr/share/ncurses4/terminfo/9/955-hb +/usr/share/ncurses4/terminfo/9/955-w +/usr/share/ncurses4/terminfo/P +/usr/share/ncurses4/terminfo/P/P12 +/usr/share/ncurses4/terminfo/P/P12-M +/usr/share/ncurses4/terminfo/P/P12-M-W +/usr/share/ncurses4/terminfo/P/P12-W +/usr/share/ncurses4/terminfo/P/P14 +/usr/share/ncurses4/terminfo/P/P14-M +/usr/share/ncurses4/terminfo/P/P14-M-W +/usr/share/ncurses4/terminfo/P/P14-W +/usr/share/ncurses4/terminfo/P/P4 +/usr/share/ncurses4/terminfo/P/P5 +/usr/share/ncurses4/terminfo/P/P7 +/usr/share/ncurses4/terminfo/P/P8 +/usr/share/ncurses4/terminfo/P/P8-W +/usr/share/ncurses4/terminfo/P/P9 +/usr/share/ncurses4/terminfo/P/P9-8 +/usr/share/ncurses4/terminfo/P/P9-8-W +/usr/share/ncurses4/terminfo/P/P9-W +/usr/share/ncurses4/terminfo/X +/usr/share/ncurses4/terminfo/X/X-hpterm +/usr/share/ncurses4/terminfo/a +/usr/share/ncurses4/terminfo/a/a210 +/usr/share/ncurses4/terminfo/a/a80 +/usr/share/ncurses4/terminfo/a/a980 +/usr/share/ncurses4/terminfo/a/aa4080 +/usr/share/ncurses4/terminfo/a/aaa +/usr/share/ncurses4/terminfo/a/aaa+dec +/usr/share/ncurses4/terminfo/a/aaa+rv +/usr/share/ncurses4/terminfo/a/aaa+unk +/usr/share/ncurses4/terminfo/a/aaa-18 +/usr/share/ncurses4/terminfo/a/aaa-18-rv +/usr/share/ncurses4/terminfo/a/aaa-20 +/usr/share/ncurses4/terminfo/a/aaa-22 +/usr/share/ncurses4/terminfo/a/aaa-24 +/usr/share/ncurses4/terminfo/a/aaa-24-rv +/usr/share/ncurses4/terminfo/a/aaa-26 +/usr/share/ncurses4/terminfo/a/aaa-28 +/usr/share/ncurses4/terminfo/a/aaa-30 +/usr/share/ncurses4/terminfo/a/aaa-30-ctxt +/usr/share/ncurses4/terminfo/a/aaa-30-rv +/usr/share/ncurses4/terminfo/a/aaa-30-rv-ctxt +/usr/share/ncurses4/terminfo/a/aaa-30-s +/usr/share/ncurses4/terminfo/a/aaa-30-s-ctxt +/usr/share/ncurses4/terminfo/a/aaa-30-s-rv +/usr/share/ncurses4/terminfo/a/aaa-30-s-rv-ct +/usr/share/ncurses4/terminfo/a/aaa-36 +/usr/share/ncurses4/terminfo/a/aaa-36-rv +/usr/share/ncurses4/terminfo/a/aaa-40 +/usr/share/ncurses4/terminfo/a/aaa-40-rv +/usr/share/ncurses4/terminfo/a/aaa-48 +/usr/share/ncurses4/terminfo/a/aaa-48-rv +/usr/share/ncurses4/terminfo/a/aaa-60 +/usr/share/ncurses4/terminfo/a/aaa-60-dec-rv +/usr/share/ncurses4/terminfo/a/aaa-60-rv +/usr/share/ncurses4/terminfo/a/aaa-60-s +/usr/share/ncurses4/terminfo/a/aaa-60-s-rv +/usr/share/ncurses4/terminfo/a/aaa-ctxt +/usr/share/ncurses4/terminfo/a/aaa-db +/usr/share/ncurses4/terminfo/a/aaa-rv +/usr/share/ncurses4/terminfo/a/aaa-rv-ctxt +/usr/share/ncurses4/terminfo/a/aaa-rv-unk +/usr/share/ncurses4/terminfo/a/aaa-s +/usr/share/ncurses4/terminfo/a/aaa-s-ctxt +/usr/share/ncurses4/terminfo/a/aaa-s-rv +/usr/share/ncurses4/terminfo/a/aaa-s-rv-ctxt +/usr/share/ncurses4/terminfo/a/aaa-unk +/usr/share/ncurses4/terminfo/a/aas1901 +/usr/share/ncurses4/terminfo/a/abm80 +/usr/share/ncurses4/terminfo/a/abm85 +/usr/share/ncurses4/terminfo/a/abm85e +/usr/share/ncurses4/terminfo/a/abm85h +/usr/share/ncurses4/terminfo/a/abm85h-old +/usr/share/ncurses4/terminfo/a/act4 +/usr/share/ncurses4/terminfo/a/act5 +/usr/share/ncurses4/terminfo/a/addrinfo +/usr/share/ncurses4/terminfo/a/adds980 +/usr/share/ncurses4/terminfo/a/addsviewpoint +/usr/share/ncurses4/terminfo/a/addsvp60 +/usr/share/ncurses4/terminfo/a/adm+sgr +/usr/share/ncurses4/terminfo/a/adm1 +/usr/share/ncurses4/terminfo/a/adm11 +/usr/share/ncurses4/terminfo/a/adm1178 +/usr/share/ncurses4/terminfo/a/adm12 +/usr/share/ncurses4/terminfo/a/adm1a +/usr/share/ncurses4/terminfo/a/adm2 +/usr/share/ncurses4/terminfo/a/adm20 +/usr/share/ncurses4/terminfo/a/adm21 +/usr/share/ncurses4/terminfo/a/adm22 +/usr/share/ncurses4/terminfo/a/adm3 +/usr/share/ncurses4/terminfo/a/adm31 +/usr/share/ncurses4/terminfo/a/adm31-old +/usr/share/ncurses4/terminfo/a/adm36 +/usr/share/ncurses4/terminfo/a/adm3a +/usr/share/ncurses4/terminfo/a/adm3a+ +/usr/share/ncurses4/terminfo/a/adm42 +/usr/share/ncurses4/terminfo/a/adm42-ns +/usr/share/ncurses4/terminfo/a/adm5 +/usr/share/ncurses4/terminfo/a/aepro +/usr/share/ncurses4/terminfo/a/aixterm-m +/usr/share/ncurses4/terminfo/a/aixterm-m-old +/usr/share/ncurses4/terminfo/a/aj +/usr/share/ncurses4/terminfo/a/aj510 +/usr/share/ncurses4/terminfo/a/aj830 +/usr/share/ncurses4/terminfo/a/aj832 +/usr/share/ncurses4/terminfo/a/alt2 +/usr/share/ncurses4/terminfo/a/alt3 +/usr/share/ncurses4/terminfo/a/alt4 +/usr/share/ncurses4/terminfo/a/alt5 +/usr/share/ncurses4/terminfo/a/alt7 +/usr/share/ncurses4/terminfo/a/alt7pc +/usr/share/ncurses4/terminfo/a/alto-h19 +/usr/share/ncurses4/terminfo/a/alto-heath +/usr/share/ncurses4/terminfo/a/altoh19 +/usr/share/ncurses4/terminfo/a/altoheath +/usr/share/ncurses4/terminfo/a/altos-2 +/usr/share/ncurses4/terminfo/a/altos-3 +/usr/share/ncurses4/terminfo/a/altos-4 +/usr/share/ncurses4/terminfo/a/altos-5 +/usr/share/ncurses4/terminfo/a/altos2 +/usr/share/ncurses4/terminfo/a/altos3 +/usr/share/ncurses4/terminfo/a/altos4 +/usr/share/ncurses4/terminfo/a/altos5 +/usr/share/ncurses4/terminfo/a/altos7 +/usr/share/ncurses4/terminfo/a/altos7pc +/usr/share/ncurses4/terminfo/a/ambas +/usr/share/ncurses4/terminfo/a/ambassador +/usr/share/ncurses4/terminfo/a/amiga +/usr/share/ncurses4/terminfo/a/amiga-h +/usr/share/ncurses4/terminfo/a/amp219 +/usr/share/ncurses4/terminfo/a/amp219w +/usr/share/ncurses4/terminfo/a/ampex-219 +/usr/share/ncurses4/terminfo/a/ampex-219w +/usr/share/ncurses4/terminfo/a/ampex-232 +/usr/share/ncurses4/terminfo/a/ampex175 +/usr/share/ncurses4/terminfo/a/ampex175-b +/usr/share/ncurses4/terminfo/a/ampex210 +/usr/share/ncurses4/terminfo/a/ampex219 +/usr/share/ncurses4/terminfo/a/ampex219w +/usr/share/ncurses4/terminfo/a/ampex232 +/usr/share/ncurses4/terminfo/a/ampex232w +/usr/share/ncurses4/terminfo/a/ampex80 +/usr/share/ncurses4/terminfo/a/annarbor4080 +/usr/share/ncurses4/terminfo/a/ansi +/usr/share/ncurses4/terminfo/a/ansi-color-2-emx +/usr/share/ncurses4/terminfo/a/ansi-color-3-emx +/usr/share/ncurses4/terminfo/a/ansi-emx +/usr/share/ncurses4/terminfo/a/ansi-m +/usr/share/ncurses4/terminfo/a/ansi-mini +/usr/share/ncurses4/terminfo/a/ansi-mono +/usr/share/ncurses4/terminfo/a/ansi-nt +/usr/share/ncurses4/terminfo/a/ansi.sys +/usr/share/ncurses4/terminfo/a/ansi.sys-old +/usr/share/ncurses4/terminfo/a/ansi.sysk +/usr/share/ncurses4/terminfo/a/ansi43m +/usr/share/ncurses4/terminfo/a/ansi77 +/usr/share/ncurses4/terminfo/a/ansi80x25 +/usr/share/ncurses4/terminfo/a/ansi80x25-mono +/usr/share/ncurses4/terminfo/a/ansi80x25-raw +/usr/share/ncurses4/terminfo/a/ansi80x30 +/usr/share/ncurses4/terminfo/a/ansi80x30-mono +/usr/share/ncurses4/terminfo/a/ansi80x43 +/usr/share/ncurses4/terminfo/a/ansi80x43-mono +/usr/share/ncurses4/terminfo/a/ansi80x50 +/usr/share/ncurses4/terminfo/a/ansi80x50-mono +/usr/share/ncurses4/terminfo/a/ansi80x60 +/usr/share/ncurses4/terminfo/a/ansi80x60-mono +/usr/share/ncurses4/terminfo/a/ansil +/usr/share/ncurses4/terminfo/a/ansil-mono +/usr/share/ncurses4/terminfo/a/ansis +/usr/share/ncurses4/terminfo/a/ansis-mono +/usr/share/ncurses4/terminfo/a/ansisysk +/usr/share/ncurses4/terminfo/a/ansiw +/usr/share/ncurses4/terminfo/a/ap-vm80 +/usr/share/ncurses4/terminfo/a/apl +/usr/share/ncurses4/terminfo/a/apollo +/usr/share/ncurses4/terminfo/a/apollo_15P +/usr/share/ncurses4/terminfo/a/apollo_19L +/usr/share/ncurses4/terminfo/a/apollo_color +/usr/share/ncurses4/terminfo/a/apple-80 +/usr/share/ncurses4/terminfo/a/apple-ae +/usr/share/ncurses4/terminfo/a/apple-soroc +/usr/share/ncurses4/terminfo/a/apple-uterm +/usr/share/ncurses4/terminfo/a/apple-uterm-vb +/usr/share/ncurses4/terminfo/a/apple-videx +/usr/share/ncurses4/terminfo/a/apple-videx2 +/usr/share/ncurses4/terminfo/a/apple-videx3 +/usr/share/ncurses4/terminfo/a/apple-vm80 +/usr/share/ncurses4/terminfo/a/apple2e +/usr/share/ncurses4/terminfo/a/apple2e-p +/usr/share/ncurses4/terminfo/a/apple80p +/usr/share/ncurses4/terminfo/a/appleII +/usr/share/ncurses4/terminfo/a/appleIIc +/usr/share/ncurses4/terminfo/a/appleIIe +/usr/share/ncurses4/terminfo/a/appleIIgs +/usr/share/ncurses4/terminfo/a/at386 +/usr/share/ncurses4/terminfo/a/atari +/usr/share/ncurses4/terminfo/a/att2300 +/usr/share/ncurses4/terminfo/a/att2350 +/usr/share/ncurses4/terminfo/a/att4410 +/usr/share/ncurses4/terminfo/a/att4410-w +/usr/share/ncurses4/terminfo/a/att4410v1 +/usr/share/ncurses4/terminfo/a/att4410v1-w +/usr/share/ncurses4/terminfo/a/att4415 +/usr/share/ncurses4/terminfo/a/att4415+nl +/usr/share/ncurses4/terminfo/a/att4415-nl +/usr/share/ncurses4/terminfo/a/att4415-rv +/usr/share/ncurses4/terminfo/a/att4415-rv-nl +/usr/share/ncurses4/terminfo/a/att4415-w +/usr/share/ncurses4/terminfo/a/att4415-w-nl +/usr/share/ncurses4/terminfo/a/att4415-w-rv +/usr/share/ncurses4/terminfo/a/att4415-w-rv-n +/usr/share/ncurses4/terminfo/a/att4418 +/usr/share/ncurses4/terminfo/a/att4418-w +/usr/share/ncurses4/terminfo/a/att4420 +/usr/share/ncurses4/terminfo/a/att4424 +/usr/share/ncurses4/terminfo/a/att4424-1 +/usr/share/ncurses4/terminfo/a/att4424m +/usr/share/ncurses4/terminfo/a/att4425 +/usr/share/ncurses4/terminfo/a/att4425-nl +/usr/share/ncurses4/terminfo/a/att4425-w +/usr/share/ncurses4/terminfo/a/att4426 +/usr/share/ncurses4/terminfo/a/att500 +/usr/share/ncurses4/terminfo/a/att505 +/usr/share/ncurses4/terminfo/a/att505-24 +/usr/share/ncurses4/terminfo/a/att510a +/usr/share/ncurses4/terminfo/a/att510d +/usr/share/ncurses4/terminfo/a/att513 +/usr/share/ncurses4/terminfo/a/att5310 +/usr/share/ncurses4/terminfo/a/att5320 +/usr/share/ncurses4/terminfo/a/att5410 +/usr/share/ncurses4/terminfo/a/att5410-w +/usr/share/ncurses4/terminfo/a/att5410v1 +/usr/share/ncurses4/terminfo/a/att5410v1-w +/usr/share/ncurses4/terminfo/a/att5418 +/usr/share/ncurses4/terminfo/a/att5418-w +/usr/share/ncurses4/terminfo/a/att5420 +/usr/share/ncurses4/terminfo/a/att5420+nl +/usr/share/ncurses4/terminfo/a/att5420-nl +/usr/share/ncurses4/terminfo/a/att5420-rv +/usr/share/ncurses4/terminfo/a/att5420-rv-nl +/usr/share/ncurses4/terminfo/a/att5420-w +/usr/share/ncurses4/terminfo/a/att5420-w-nl +/usr/share/ncurses4/terminfo/a/att5420-w-rv +/usr/share/ncurses4/terminfo/a/att5420-w-rv-n +/usr/share/ncurses4/terminfo/a/att5420_2 +/usr/share/ncurses4/terminfo/a/att5420_2-w +/usr/share/ncurses4/terminfo/a/att5425 +/usr/share/ncurses4/terminfo/a/att5425-nl +/usr/share/ncurses4/terminfo/a/att5425-w +/usr/share/ncurses4/terminfo/a/att5430 +/usr/share/ncurses4/terminfo/a/att5620 +/usr/share/ncurses4/terminfo/a/att5620-1 +/usr/share/ncurses4/terminfo/a/att5620-24 +/usr/share/ncurses4/terminfo/a/att5620-34 +/usr/share/ncurses4/terminfo/a/att5620-s +/usr/share/ncurses4/terminfo/a/att605 +/usr/share/ncurses4/terminfo/a/att605-pc +/usr/share/ncurses4/terminfo/a/att605-w +/usr/share/ncurses4/terminfo/a/att610 +/usr/share/ncurses4/terminfo/a/att610-103k +/usr/share/ncurses4/terminfo/a/att610-103k-w +/usr/share/ncurses4/terminfo/a/att610-w +/usr/share/ncurses4/terminfo/a/att615 +/usr/share/ncurses4/terminfo/a/att615-103k +/usr/share/ncurses4/terminfo/a/att615-103k-w +/usr/share/ncurses4/terminfo/a/att615-w +/usr/share/ncurses4/terminfo/a/att620 +/usr/share/ncurses4/terminfo/a/att620-103k +/usr/share/ncurses4/terminfo/a/att620-103k-w +/usr/share/ncurses4/terminfo/a/att620-w +/usr/share/ncurses4/terminfo/a/att630 +/usr/share/ncurses4/terminfo/a/att630-24 +/usr/share/ncurses4/terminfo/a/att6386 +/usr/share/ncurses4/terminfo/a/att730 +/usr/share/ncurses4/terminfo/a/att730-24 +/usr/share/ncurses4/terminfo/a/att730-41 +/usr/share/ncurses4/terminfo/a/att7300 +/usr/share/ncurses4/terminfo/a/att730r +/usr/share/ncurses4/terminfo/a/att730r-24 +/usr/share/ncurses4/terminfo/a/att730r-41 +/usr/share/ncurses4/terminfo/a/avatar +/usr/share/ncurses4/terminfo/a/avatar0 +/usr/share/ncurses4/terminfo/a/avatar0+ +/usr/share/ncurses4/terminfo/a/avatar1 +/usr/share/ncurses4/terminfo/a/avt +/usr/share/ncurses4/terminfo/a/avt+s +/usr/share/ncurses4/terminfo/a/avt-ns +/usr/share/ncurses4/terminfo/a/avt-rv +/usr/share/ncurses4/terminfo/a/avt-rv-ns +/usr/share/ncurses4/terminfo/a/avt-rv-s +/usr/share/ncurses4/terminfo/a/avt-s +/usr/share/ncurses4/terminfo/a/avt-w +/usr/share/ncurses4/terminfo/a/avt-w-ns +/usr/share/ncurses4/terminfo/a/avt-w-rv +/usr/share/ncurses4/terminfo/a/avt-w-rv-ns +/usr/share/ncurses4/terminfo/a/avt-w-rv-s +/usr/share/ncurses4/terminfo/a/avt-w-s +/usr/share/ncurses4/terminfo/a/aws +/usr/share/ncurses4/terminfo/a/awsc +/usr/share/ncurses4/terminfo/b +/usr/share/ncurses4/terminfo/b/b-128 +/usr/share/ncurses4/terminfo/b/bantam +/usr/share/ncurses4/terminfo/b/basic4 +/usr/share/ncurses4/terminfo/b/basis +/usr/share/ncurses4/terminfo/b/bct510a +/usr/share/ncurses4/terminfo/b/bct510d +/usr/share/ncurses4/terminfo/b/beacon +/usr/share/ncurses4/terminfo/b/bee +/usr/share/ncurses4/terminfo/b/beehive +/usr/share/ncurses4/terminfo/b/beehive3 +/usr/share/ncurses4/terminfo/b/beehive4 +/usr/share/ncurses4/terminfo/b/beehiveIIIm +/usr/share/ncurses4/terminfo/b/beterm +/usr/share/ncurses4/terminfo/b/bg1.25 +/usr/share/ncurses4/terminfo/b/bg1.25nv +/usr/share/ncurses4/terminfo/b/bg1.25rv +/usr/share/ncurses4/terminfo/b/bg2.0 +/usr/share/ncurses4/terminfo/b/bg2.0nv +/usr/share/ncurses4/terminfo/b/bg2.0rv +/usr/share/ncurses4/terminfo/b/bg3.10 +/usr/share/ncurses4/terminfo/b/bg3.10nv +/usr/share/ncurses4/terminfo/b/bg3.10rv +/usr/share/ncurses4/terminfo/b/bh3m +/usr/share/ncurses4/terminfo/b/bh4 +/usr/share/ncurses4/terminfo/b/bitgraph +/usr/share/ncurses4/terminfo/b/blit +/usr/share/ncurses4/terminfo/b/bobcat +/usr/share/ncurses4/terminfo/b/bsdos +/usr/share/ncurses4/terminfo/b/bsdos-bold +/usr/share/ncurses4/terminfo/c +/usr/share/ncurses4/terminfo/c/c100 +/usr/share/ncurses4/terminfo/c/c100-1p +/usr/share/ncurses4/terminfo/c/c100-4p +/usr/share/ncurses4/terminfo/c/c100-rv +/usr/share/ncurses4/terminfo/c/c100-rv-4p +/usr/share/ncurses4/terminfo/c/c104 +/usr/share/ncurses4/terminfo/c/c108 +/usr/share/ncurses4/terminfo/c/c108-4p +/usr/share/ncurses4/terminfo/c/c108-8p +/usr/share/ncurses4/terminfo/c/c108-rv +/usr/share/ncurses4/terminfo/c/c108-rv-4p +/usr/share/ncurses4/terminfo/c/c108-rv-8p +/usr/share/ncurses4/terminfo/c/c108-w +/usr/share/ncurses4/terminfo/c/c108-w-8p +/usr/share/ncurses4/terminfo/c/c300 +/usr/share/ncurses4/terminfo/c/c301 +/usr/share/ncurses4/terminfo/c/c321 +/usr/share/ncurses4/terminfo/c/ca22851 +/usr/share/ncurses4/terminfo/c/cad68-2 +/usr/share/ncurses4/terminfo/c/cad68-3 +/usr/share/ncurses4/terminfo/c/cbblit +/usr/share/ncurses4/terminfo/c/cbunix +/usr/share/ncurses4/terminfo/c/cci +/usr/share/ncurses4/terminfo/c/cci1 +/usr/share/ncurses4/terminfo/c/cdc456 +/usr/share/ncurses4/terminfo/c/cdc721 +/usr/share/ncurses4/terminfo/c/cdc721-esc +/usr/share/ncurses4/terminfo/c/cdc721ll +/usr/share/ncurses4/terminfo/c/cdc752 +/usr/share/ncurses4/terminfo/c/cdc756 +/usr/share/ncurses4/terminfo/c/cg7900 +/usr/share/ncurses4/terminfo/c/cgc2 +/usr/share/ncurses4/terminfo/c/cgc3 +/usr/share/ncurses4/terminfo/c/chromatics +/usr/share/ncurses4/terminfo/c/ci8510 +/usr/share/ncurses4/terminfo/c/cit-80 +/usr/share/ncurses4/terminfo/c/cit101 +/usr/share/ncurses4/terminfo/c/cit101e +/usr/share/ncurses4/terminfo/c/cit101e-132 +/usr/share/ncurses4/terminfo/c/cit101e-n +/usr/share/ncurses4/terminfo/c/cit101e-n132 +/usr/share/ncurses4/terminfo/c/cit101e-rv +/usr/share/ncurses4/terminfo/c/cit500 +/usr/share/ncurses4/terminfo/c/cit80 +/usr/share/ncurses4/terminfo/c/citc +/usr/share/ncurses4/terminfo/c/citoh +/usr/share/ncurses4/terminfo/c/citoh-6lpi +/usr/share/ncurses4/terminfo/c/citoh-8lpi +/usr/share/ncurses4/terminfo/c/citoh-comp +/usr/share/ncurses4/terminfo/c/citoh-elite +/usr/share/ncurses4/terminfo/c/citoh-pica +/usr/share/ncurses4/terminfo/c/citoh-prop +/usr/share/ncurses4/terminfo/c/citoh-ps +/usr/share/ncurses4/terminfo/c/coco3 +/usr/share/ncurses4/terminfo/c/coherent +/usr/share/ncurses4/terminfo/c/color_xterm +/usr/share/ncurses4/terminfo/c/colorscan +/usr/share/ncurses4/terminfo/c/commodore +/usr/share/ncurses4/terminfo/c/concept +/usr/share/ncurses4/terminfo/c/concept-avt +/usr/share/ncurses4/terminfo/c/concept100 +/usr/share/ncurses4/terminfo/c/concept100-rv +/usr/share/ncurses4/terminfo/c/concept108 +/usr/share/ncurses4/terminfo/c/concept108-4p +/usr/share/ncurses4/terminfo/c/concept108-8p +/usr/share/ncurses4/terminfo/c/concept108-w-8 +/usr/share/ncurses4/terminfo/c/concept108-w8p +/usr/share/ncurses4/terminfo/c/concept108rv4p +/usr/share/ncurses4/terminfo/c/cons25 +/usr/share/ncurses4/terminfo/c/cons25-iso-m +/usr/share/ncurses4/terminfo/c/cons25-iso8859 +/usr/share/ncurses4/terminfo/c/cons25-koi8-r +/usr/share/ncurses4/terminfo/c/cons25-koi8r-m +/usr/share/ncurses4/terminfo/c/cons25-m +/usr/share/ncurses4/terminfo/c/cons25l1 +/usr/share/ncurses4/terminfo/c/cons25l1-m +/usr/share/ncurses4/terminfo/c/cons25r +/usr/share/ncurses4/terminfo/c/cons25r-m +/usr/share/ncurses4/terminfo/c/cons25w +/usr/share/ncurses4/terminfo/c/cons30 +/usr/share/ncurses4/terminfo/c/cons30-m +/usr/share/ncurses4/terminfo/c/cons43 +/usr/share/ncurses4/terminfo/c/cons43-m +/usr/share/ncurses4/terminfo/c/cons50 +/usr/share/ncurses4/terminfo/c/cons50-iso-m +/usr/share/ncurses4/terminfo/c/cons50-iso8859 +/usr/share/ncurses4/terminfo/c/cons50-koi8r +/usr/share/ncurses4/terminfo/c/cons50-koi8r-m +/usr/share/ncurses4/terminfo/c/cons50-m +/usr/share/ncurses4/terminfo/c/cons50l1 +/usr/share/ncurses4/terminfo/c/cons50l1-m +/usr/share/ncurses4/terminfo/c/cons50r +/usr/share/ncurses4/terminfo/c/cons50r-m +/usr/share/ncurses4/terminfo/c/cons60 +/usr/share/ncurses4/terminfo/c/cons60-iso +/usr/share/ncurses4/terminfo/c/cons60-iso-m +/usr/share/ncurses4/terminfo/c/cons60-koi8r +/usr/share/ncurses4/terminfo/c/cons60-koi8r-m +/usr/share/ncurses4/terminfo/c/cons60-m +/usr/share/ncurses4/terminfo/c/cons60l1 +/usr/share/ncurses4/terminfo/c/cons60l1-m +/usr/share/ncurses4/terminfo/c/cons60r +/usr/share/ncurses4/terminfo/c/cons60r-m +/usr/share/ncurses4/terminfo/c/contel300 +/usr/share/ncurses4/terminfo/c/contel301 +/usr/share/ncurses4/terminfo/c/contel320 +/usr/share/ncurses4/terminfo/c/contel321 +/usr/share/ncurses4/terminfo/c/cops +/usr/share/ncurses4/terminfo/c/cops-10 +/usr/share/ncurses4/terminfo/c/cops10 +/usr/share/ncurses4/terminfo/c/cs10 +/usr/share/ncurses4/terminfo/c/cs10-w +/usr/share/ncurses4/terminfo/c/ct82 +/usr/share/ncurses4/terminfo/c/ct8500 +/usr/share/ncurses4/terminfo/c/ctrm +/usr/share/ncurses4/terminfo/c/cx +/usr/share/ncurses4/terminfo/c/cx100 +/usr/share/ncurses4/terminfo/c/cyb110 +/usr/share/ncurses4/terminfo/c/cyb83 +/usr/share/ncurses4/terminfo/d +/usr/share/ncurses4/terminfo/d/d132 +/usr/share/ncurses4/terminfo/d/d80 +/usr/share/ncurses4/terminfo/d/d800 +/usr/share/ncurses4/terminfo/d/datagraphix +/usr/share/ncurses4/terminfo/d/datamedia2500 +/usr/share/ncurses4/terminfo/d/datapoint +/usr/share/ncurses4/terminfo/d/dataspeed40 +/usr/share/ncurses4/terminfo/d/dd5000 +/usr/share/ncurses4/terminfo/d/ddr +/usr/share/ncurses4/terminfo/d/ddr3180 +/usr/share/ncurses4/terminfo/d/dec-vt100 +/usr/share/ncurses4/terminfo/d/dec-vt220 +/usr/share/ncurses4/terminfo/d/dec-vt330 +/usr/share/ncurses4/terminfo/d/dec-vt340 +/usr/share/ncurses4/terminfo/d/dec-vt400 +/usr/share/ncurses4/terminfo/d/decpro +/usr/share/ncurses4/terminfo/d/decwriter +/usr/share/ncurses4/terminfo/d/delta +/usr/share/ncurses4/terminfo/d/dg-ansi +/usr/share/ncurses4/terminfo/d/dg100 +/usr/share/ncurses4/terminfo/d/dg200 +/usr/share/ncurses4/terminfo/d/dg210 +/usr/share/ncurses4/terminfo/d/dg211 +/usr/share/ncurses4/terminfo/d/dg450 +/usr/share/ncurses4/terminfo/d/dg460-ansi +/usr/share/ncurses4/terminfo/d/dg6053 +/usr/share/ncurses4/terminfo/d/dg6134 +/usr/share/ncurses4/terminfo/d/diablo +/usr/share/ncurses4/terminfo/d/diablo-lm +/usr/share/ncurses4/terminfo/d/diablo1620 +/usr/share/ncurses4/terminfo/d/diablo1620-m8 +/usr/share/ncurses4/terminfo/d/diablo1640 +/usr/share/ncurses4/terminfo/d/diablo1640-lm +/usr/share/ncurses4/terminfo/d/diablo1640-m8 +/usr/share/ncurses4/terminfo/d/diablo1720 +/usr/share/ncurses4/terminfo/d/diablo1730 +/usr/share/ncurses4/terminfo/d/diablo1740 +/usr/share/ncurses4/terminfo/d/diablo1740-lm +/usr/share/ncurses4/terminfo/d/diablo450 +/usr/share/ncurses4/terminfo/d/diablo630 +/usr/share/ncurses4/terminfo/d/dialogue +/usr/share/ncurses4/terminfo/d/dialogue80 +/usr/share/ncurses4/terminfo/d/digilog +/usr/share/ncurses4/terminfo/d/dku7003 +/usr/share/ncurses4/terminfo/d/dku7003-dumb +/usr/share/ncurses4/terminfo/d/dm1520 +/usr/share/ncurses4/terminfo/d/dm1521 +/usr/share/ncurses4/terminfo/d/dm2500 +/usr/share/ncurses4/terminfo/d/dm3025 +/usr/share/ncurses4/terminfo/d/dm3045 +/usr/share/ncurses4/terminfo/d/dm80 +/usr/share/ncurses4/terminfo/d/dm80w +/usr/share/ncurses4/terminfo/d/dmchat +/usr/share/ncurses4/terminfo/d/dmd +/usr/share/ncurses4/terminfo/d/dmd-24 +/usr/share/ncurses4/terminfo/d/dmd-34 +/usr/share/ncurses4/terminfo/d/dmd1 +/usr/share/ncurses4/terminfo/d/dmdt80 +/usr/share/ncurses4/terminfo/d/dmdt80w +/usr/share/ncurses4/terminfo/d/dmterm +/usr/share/ncurses4/terminfo/d/dp3360 +/usr/share/ncurses4/terminfo/d/dp8242 +/usr/share/ncurses4/terminfo/d/ds40 +/usr/share/ncurses4/terminfo/d/ds40-2 +/usr/share/ncurses4/terminfo/d/dt-100 +/usr/share/ncurses4/terminfo/d/dt-100w +/usr/share/ncurses4/terminfo/d/dt100 +/usr/share/ncurses4/terminfo/d/dt100w +/usr/share/ncurses4/terminfo/d/dt110 +/usr/share/ncurses4/terminfo/d/dt80 +/usr/share/ncurses4/terminfo/d/dt80-sas +/usr/share/ncurses4/terminfo/d/dt80w +/usr/share/ncurses4/terminfo/d/dtc300s +/usr/share/ncurses4/terminfo/d/dtc382 +/usr/share/ncurses4/terminfo/d/dtterm +/usr/share/ncurses4/terminfo/d/dumb +/usr/share/ncurses4/terminfo/d/dw +/usr/share/ncurses4/terminfo/d/dw1 +/usr/share/ncurses4/terminfo/d/dw2 +/usr/share/ncurses4/terminfo/d/dw3 +/usr/share/ncurses4/terminfo/d/dw4 +/usr/share/ncurses4/terminfo/d/dwk +/usr/share/ncurses4/terminfo/d/dwk-vt +/usr/share/ncurses4/terminfo/e +/usr/share/ncurses4/terminfo/e/ecma+color +/usr/share/ncurses4/terminfo/e/ecma+sgr +/usr/share/ncurses4/terminfo/e/emots +/usr/share/ncurses4/terminfo/e/emu +/usr/share/ncurses4/terminfo/e/env230 +/usr/share/ncurses4/terminfo/e/envision230 +/usr/share/ncurses4/terminfo/e/ep40 +/usr/share/ncurses4/terminfo/e/ep4000 +/usr/share/ncurses4/terminfo/e/ep4080 +/usr/share/ncurses4/terminfo/e/ep48 +/usr/share/ncurses4/terminfo/e/ergo4000 +/usr/share/ncurses4/terminfo/e/esprit +/usr/share/ncurses4/terminfo/e/esprit-am +/usr/share/ncurses4/terminfo/e/eterm +/usr/share/ncurses4/terminfo/e/ex155 +/usr/share/ncurses4/terminfo/e/excel62 +/usr/share/ncurses4/terminfo/e/excel62-rv +/usr/share/ncurses4/terminfo/e/excel62-w +/usr/share/ncurses4/terminfo/e/excel64 +/usr/share/ncurses4/terminfo/e/excel64-rv +/usr/share/ncurses4/terminfo/e/excel64-w +/usr/share/ncurses4/terminfo/e/exec80 +/usr/share/ncurses4/terminfo/f +/usr/share/ncurses4/terminfo/f/f100 +/usr/share/ncurses4/terminfo/f/f100-rv +/usr/share/ncurses4/terminfo/f/f110 +/usr/share/ncurses4/terminfo/f/f110-14 +/usr/share/ncurses4/terminfo/f/f110-14w +/usr/share/ncurses4/terminfo/f/f110-w +/usr/share/ncurses4/terminfo/f/f1720 +/usr/share/ncurses4/terminfo/f/f1720a +/usr/share/ncurses4/terminfo/f/f200 +/usr/share/ncurses4/terminfo/f/f200-w +/usr/share/ncurses4/terminfo/f/f200vi +/usr/share/ncurses4/terminfo/f/f200vi-w +/usr/share/ncurses4/terminfo/f/falco +/usr/share/ncurses4/terminfo/f/falco-p +/usr/share/ncurses4/terminfo/f/fenix +/usr/share/ncurses4/terminfo/f/fenixw +/usr/share/ncurses4/terminfo/f/fixterm +/usr/share/ncurses4/terminfo/f/fortune +/usr/share/ncurses4/terminfo/f/fos +/usr/share/ncurses4/terminfo/f/fox +/usr/share/ncurses4/terminfo/f/freedom +/usr/share/ncurses4/terminfo/f/freedom-rv +/usr/share/ncurses4/terminfo/f/freedom100 +/usr/share/ncurses4/terminfo/f/freedom110 +/usr/share/ncurses4/terminfo/f/freedom200 +/usr/share/ncurses4/terminfo/g +/usr/share/ncurses4/terminfo/g/gator +/usr/share/ncurses4/terminfo/g/gator-52 +/usr/share/ncurses4/terminfo/g/gator-52t +/usr/share/ncurses4/terminfo/g/gator-t +/usr/share/ncurses4/terminfo/g/gigi +/usr/share/ncurses4/terminfo/g/glasstty +/usr/share/ncurses4/terminfo/g/go-225 +/usr/share/ncurses4/terminfo/g/go140 +/usr/share/ncurses4/terminfo/g/go140w +/usr/share/ncurses4/terminfo/g/go225 +/usr/share/ncurses4/terminfo/g/graphos +/usr/share/ncurses4/terminfo/g/graphos-30 +/usr/share/ncurses4/terminfo/g/gs5430 +/usr/share/ncurses4/terminfo/g/gs5430-22 +/usr/share/ncurses4/terminfo/g/gs5430-24 +/usr/share/ncurses4/terminfo/g/gs6300 +/usr/share/ncurses4/terminfo/g/gsi +/usr/share/ncurses4/terminfo/g/gt100 +/usr/share/ncurses4/terminfo/g/gt100a +/usr/share/ncurses4/terminfo/g/gt40 +/usr/share/ncurses4/terminfo/g/gt42 +/usr/share/ncurses4/terminfo/g/guru +/usr/share/ncurses4/terminfo/g/guru+rv +/usr/share/ncurses4/terminfo/g/guru+s +/usr/share/ncurses4/terminfo/g/guru+unk +/usr/share/ncurses4/terminfo/g/guru-24 +/usr/share/ncurses4/terminfo/g/guru-33 +/usr/share/ncurses4/terminfo/g/guru-33-rv +/usr/share/ncurses4/terminfo/g/guru-33-s +/usr/share/ncurses4/terminfo/g/guru-44 +/usr/share/ncurses4/terminfo/g/guru-44-s +/usr/share/ncurses4/terminfo/g/guru-76 +/usr/share/ncurses4/terminfo/g/guru-76-lp +/usr/share/ncurses4/terminfo/g/guru-76-s +/usr/share/ncurses4/terminfo/g/guru-76-w +/usr/share/ncurses4/terminfo/g/guru-76-w-s +/usr/share/ncurses4/terminfo/g/guru-76-wm +/usr/share/ncurses4/terminfo/g/guru-lp +/usr/share/ncurses4/terminfo/g/guru-nctxt +/usr/share/ncurses4/terminfo/g/guru-rv +/usr/share/ncurses4/terminfo/g/guru-s +/usr/share/ncurses4/terminfo/h +/usr/share/ncurses4/terminfo/h/h-100 +/usr/share/ncurses4/terminfo/h/h-100bw +/usr/share/ncurses4/terminfo/h/h100 +/usr/share/ncurses4/terminfo/h/h100bw +/usr/share/ncurses4/terminfo/h/h19 +/usr/share/ncurses4/terminfo/h/h19-a +/usr/share/ncurses4/terminfo/h/h19-b +/usr/share/ncurses4/terminfo/h/h19-bs +/usr/share/ncurses4/terminfo/h/h19-g +/usr/share/ncurses4/terminfo/h/h19-smul +/usr/share/ncurses4/terminfo/h/h19-u +/usr/share/ncurses4/terminfo/h/h19-us +/usr/share/ncurses4/terminfo/h/h19a +/usr/share/ncurses4/terminfo/h/h19g +/usr/share/ncurses4/terminfo/h/h19k +/usr/share/ncurses4/terminfo/h/h19kermit +/usr/share/ncurses4/terminfo/h/h19us +/usr/share/ncurses4/terminfo/h/h29a-kc-bc +/usr/share/ncurses4/terminfo/h/h29a-kc-uc +/usr/share/ncurses4/terminfo/h/h29a-nkc-bc +/usr/share/ncurses4/terminfo/h/h29a-nkc-uc +/usr/share/ncurses4/terminfo/h/h80 +/usr/share/ncurses4/terminfo/h/ha8675 +/usr/share/ncurses4/terminfo/h/ha8686 +/usr/share/ncurses4/terminfo/h/hazel +/usr/share/ncurses4/terminfo/h/hds200 +/usr/share/ncurses4/terminfo/h/he80 +/usr/share/ncurses4/terminfo/h/heath +/usr/share/ncurses4/terminfo/h/heath-19 +/usr/share/ncurses4/terminfo/h/heath-ansi +/usr/share/ncurses4/terminfo/h/heathkit +/usr/share/ncurses4/terminfo/h/heathkit-a +/usr/share/ncurses4/terminfo/h/hft +/usr/share/ncurses4/terminfo/h/hft-c +/usr/share/ncurses4/terminfo/h/hirez100 +/usr/share/ncurses4/terminfo/h/hirez100-w +/usr/share/ncurses4/terminfo/h/hmod1 +/usr/share/ncurses4/terminfo/h/hp +/usr/share/ncurses4/terminfo/h/hp+arrows +/usr/share/ncurses4/terminfo/h/hp+color +/usr/share/ncurses4/terminfo/h/hp+labels +/usr/share/ncurses4/terminfo/h/hp+pfk+arrows +/usr/share/ncurses4/terminfo/h/hp+pfk+cr +/usr/share/ncurses4/terminfo/h/hp+pfk-cr +/usr/share/ncurses4/terminfo/h/hp+printer +/usr/share/ncurses4/terminfo/h/hp110 +/usr/share/ncurses4/terminfo/h/hp150 +/usr/share/ncurses4/terminfo/h/hp2 +/usr/share/ncurses4/terminfo/h/hp236 +/usr/share/ncurses4/terminfo/h/hp2382 +/usr/share/ncurses4/terminfo/h/hp2382a +/usr/share/ncurses4/terminfo/h/hp2392 +/usr/share/ncurses4/terminfo/h/hp2397 +/usr/share/ncurses4/terminfo/h/hp2397a +/usr/share/ncurses4/terminfo/h/hp2621 +/usr/share/ncurses4/terminfo/h/hp2621-48 +/usr/share/ncurses4/terminfo/h/hp2621-a +/usr/share/ncurses4/terminfo/h/hp2621-ba +/usr/share/ncurses4/terminfo/h/hp2621-fl +/usr/share/ncurses4/terminfo/h/hp2621-k45 +/usr/share/ncurses4/terminfo/h/hp2621-nl +/usr/share/ncurses4/terminfo/h/hp2621-nt +/usr/share/ncurses4/terminfo/h/hp2621-wl +/usr/share/ncurses4/terminfo/h/hp2621A +/usr/share/ncurses4/terminfo/h/hp2621a +/usr/share/ncurses4/terminfo/h/hp2621a-a +/usr/share/ncurses4/terminfo/h/hp2621b +/usr/share/ncurses4/terminfo/h/hp2621b-kx +/usr/share/ncurses4/terminfo/h/hp2621b-kx-p +/usr/share/ncurses4/terminfo/h/hp2621b-p +/usr/share/ncurses4/terminfo/h/hp2621k45 +/usr/share/ncurses4/terminfo/h/hp2621p +/usr/share/ncurses4/terminfo/h/hp2621p-a +/usr/share/ncurses4/terminfo/h/hp2622 +/usr/share/ncurses4/terminfo/h/hp2622a +/usr/share/ncurses4/terminfo/h/hp2623 +/usr/share/ncurses4/terminfo/h/hp2623a +/usr/share/ncurses4/terminfo/h/hp2624 +/usr/share/ncurses4/terminfo/h/hp2624-10p +/usr/share/ncurses4/terminfo/h/hp2624a +/usr/share/ncurses4/terminfo/h/hp2624a-10p +/usr/share/ncurses4/terminfo/h/hp2624b +/usr/share/ncurses4/terminfo/h/hp2624b-10p +/usr/share/ncurses4/terminfo/h/hp2624b-10p-p +/usr/share/ncurses4/terminfo/h/hp2624b-4p +/usr/share/ncurses4/terminfo/h/hp2624b-4p-p +/usr/share/ncurses4/terminfo/h/hp2624b-p +/usr/share/ncurses4/terminfo/h/hp2626 +/usr/share/ncurses4/terminfo/h/hp2626-12 +/usr/share/ncurses4/terminfo/h/hp2626-12-s +/usr/share/ncurses4/terminfo/h/hp2626-12x40 +/usr/share/ncurses4/terminfo/h/hp2626-ns +/usr/share/ncurses4/terminfo/h/hp2626-s +/usr/share/ncurses4/terminfo/h/hp2626-x40 +/usr/share/ncurses4/terminfo/h/hp2626a +/usr/share/ncurses4/terminfo/h/hp2626p +/usr/share/ncurses4/terminfo/h/hp2627a +/usr/share/ncurses4/terminfo/h/hp2627a-rev +/usr/share/ncurses4/terminfo/h/hp2627c +/usr/share/ncurses4/terminfo/h/hp262x +/usr/share/ncurses4/terminfo/h/hp2640a +/usr/share/ncurses4/terminfo/h/hp2640b +/usr/share/ncurses4/terminfo/h/hp2641a +/usr/share/ncurses4/terminfo/h/hp2644a +/usr/share/ncurses4/terminfo/h/hp2645 +/usr/share/ncurses4/terminfo/h/hp2645a +/usr/share/ncurses4/terminfo/h/hp2647a +/usr/share/ncurses4/terminfo/h/hp2648 +/usr/share/ncurses4/terminfo/h/hp2648a +/usr/share/ncurses4/terminfo/h/hp300h +/usr/share/ncurses4/terminfo/h/hp45 +/usr/share/ncurses4/terminfo/h/hp700 +/usr/share/ncurses4/terminfo/h/hp700-wy +/usr/share/ncurses4/terminfo/h/hp70092 +/usr/share/ncurses4/terminfo/h/hp70092A +/usr/share/ncurses4/terminfo/h/hp70092a +/usr/share/ncurses4/terminfo/h/hp9837 +/usr/share/ncurses4/terminfo/h/hp9845 +/usr/share/ncurses4/terminfo/h/hp98550 +/usr/share/ncurses4/terminfo/h/hp98550a +/usr/share/ncurses4/terminfo/h/hp98720 +/usr/share/ncurses4/terminfo/h/hp98721 +/usr/share/ncurses4/terminfo/h/hpansi +/usr/share/ncurses4/terminfo/h/hpex +/usr/share/ncurses4/terminfo/h/hpex2 +/usr/share/ncurses4/terminfo/h/hpgeneric +/usr/share/ncurses4/terminfo/h/hpsub +/usr/share/ncurses4/terminfo/h/hpterm +/usr/share/ncurses4/terminfo/h/htx11 +/usr/share/ncurses4/terminfo/h/hz1000 +/usr/share/ncurses4/terminfo/h/hz1420 +/usr/share/ncurses4/terminfo/h/hz1500 +/usr/share/ncurses4/terminfo/h/hz1510 +/usr/share/ncurses4/terminfo/h/hz1520 +/usr/share/ncurses4/terminfo/h/hz1520-noesc +/usr/share/ncurses4/terminfo/h/hz1552 +/usr/share/ncurses4/terminfo/h/hz1552-rv +/usr/share/ncurses4/terminfo/h/hz2000 +/usr/share/ncurses4/terminfo/i +/usr/share/ncurses4/terminfo/i/i100 +/usr/share/ncurses4/terminfo/i/i3101 +/usr/share/ncurses4/terminfo/i/i3151 +/usr/share/ncurses4/terminfo/i/i3164 +/usr/share/ncurses4/terminfo/i/i400 +/usr/share/ncurses4/terminfo/i/ibcs2 +/usr/share/ncurses4/terminfo/i/ibm-apl +/usr/share/ncurses4/terminfo/i/ibm-pc +/usr/share/ncurses4/terminfo/i/ibm-system1 +/usr/share/ncurses4/terminfo/i/ibm3101 +/usr/share/ncurses4/terminfo/i/ibm3151 +/usr/share/ncurses4/terminfo/i/ibm3161 +/usr/share/ncurses4/terminfo/i/ibm3163 +/usr/share/ncurses4/terminfo/i/ibm3164 +/usr/share/ncurses4/terminfo/i/ibm327x +/usr/share/ncurses4/terminfo/i/ibm5051 +/usr/share/ncurses4/terminfo/i/ibm5081 +/usr/share/ncurses4/terminfo/i/ibm5081-c +/usr/share/ncurses4/terminfo/i/ibm5151 +/usr/share/ncurses4/terminfo/i/ibm5154 +/usr/share/ncurses4/terminfo/i/ibm5154-c +/usr/share/ncurses4/terminfo/i/ibm6153 +/usr/share/ncurses4/terminfo/i/ibm6154 +/usr/share/ncurses4/terminfo/i/ibm6154-c +/usr/share/ncurses4/terminfo/i/ibm6155 +/usr/share/ncurses4/terminfo/i/ibm8512 +/usr/share/ncurses4/terminfo/i/ibm8513 +/usr/share/ncurses4/terminfo/i/ibm8514 +/usr/share/ncurses4/terminfo/i/ibm8514-c +/usr/share/ncurses4/terminfo/i/ibmaed +/usr/share/ncurses4/terminfo/i/ibmapa16 +/usr/share/ncurses4/terminfo/i/ibmapa8 +/usr/share/ncurses4/terminfo/i/ibmapa8c +/usr/share/ncurses4/terminfo/i/ibmapa8c-c +/usr/share/ncurses4/terminfo/i/ibmega +/usr/share/ncurses4/terminfo/i/ibmega-c +/usr/share/ncurses4/terminfo/i/ibmmono +/usr/share/ncurses4/terminfo/i/ibmmpel +/usr/share/ncurses4/terminfo/i/ibmmpel-c +/usr/share/ncurses4/terminfo/i/ibmpc +/usr/share/ncurses4/terminfo/i/ibmpc3 +/usr/share/ncurses4/terminfo/i/ibmpc3r +/usr/share/ncurses4/terminfo/i/ibmpc3r-mono +/usr/share/ncurses4/terminfo/i/ibmpcx +/usr/share/ncurses4/terminfo/i/ibmvga +/usr/share/ncurses4/terminfo/i/ibmvga-c +/usr/share/ncurses4/terminfo/i/ibmx +/usr/share/ncurses4/terminfo/i/ifmr +/usr/share/ncurses4/terminfo/i/ims-ansi +/usr/share/ncurses4/terminfo/i/ims950 +/usr/share/ncurses4/terminfo/i/ims950-b +/usr/share/ncurses4/terminfo/i/ims950-rv +/usr/share/ncurses4/terminfo/i/infoton +/usr/share/ncurses4/terminfo/i/intertec +/usr/share/ncurses4/terminfo/i/intertube +/usr/share/ncurses4/terminfo/i/intertube2 +/usr/share/ncurses4/terminfo/i/intext +/usr/share/ncurses4/terminfo/i/intext2 +/usr/share/ncurses4/terminfo/i/intextii +/usr/share/ncurses4/terminfo/i/ips +/usr/share/ncurses4/terminfo/i/ipsi +/usr/share/ncurses4/terminfo/i/iq120 +/usr/share/ncurses4/terminfo/i/iq140 +/usr/share/ncurses4/terminfo/i/iris-ansi +/usr/share/ncurses4/terminfo/i/iris-ansi-ap +/usr/share/ncurses4/terminfo/i/iris-color +/usr/share/ncurses4/terminfo/i/iris40 +/usr/share/ncurses4/terminfo/j +/usr/share/ncurses4/terminfo/j/jaixterm-m +/usr/share/ncurses4/terminfo/j/jerq +/usr/share/ncurses4/terminfo/k +/usr/share/ncurses4/terminfo/k/k45 +/usr/share/ncurses4/terminfo/k/kaypro +/usr/share/ncurses4/terminfo/k/kaypro2 +/usr/share/ncurses4/terminfo/k/kermit +/usr/share/ncurses4/terminfo/k/kermit-am +/usr/share/ncurses4/terminfo/k/klone+acs +/usr/share/ncurses4/terminfo/k/klone+color +/usr/share/ncurses4/terminfo/k/klone+koi8acs +/usr/share/ncurses4/terminfo/k/klone+sgr +/usr/share/ncurses4/terminfo/k/klone+sgr-dumb +/usr/share/ncurses4/terminfo/k/kt7 +/usr/share/ncurses4/terminfo/k/kt7ix +/usr/share/ncurses4/terminfo/k/kterm +/usr/share/ncurses4/terminfo/k/ktm +/usr/share/ncurses4/terminfo/l +/usr/share/ncurses4/terminfo/l/la120 +/usr/share/ncurses4/terminfo/l/layer +/usr/share/ncurses4/terminfo/l/linux +/usr/share/ncurses4/terminfo/l/linux-c +/usr/share/ncurses4/terminfo/l/linux-c-nc +/usr/share/ncurses4/terminfo/l/linux-koi8 +/usr/share/ncurses4/terminfo/l/linux-koi8r +/usr/share/ncurses4/terminfo/l/linux-m +/usr/share/ncurses4/terminfo/l/linux-nic +/usr/share/ncurses4/terminfo/l/lisa +/usr/share/ncurses4/terminfo/l/lisaterm +/usr/share/ncurses4/terminfo/l/lisaterm-w +/usr/share/ncurses4/terminfo/l/liswb +/usr/share/ncurses4/terminfo/l/ln03 +/usr/share/ncurses4/terminfo/l/ln03-w +/usr/share/ncurses4/terminfo/l/lpr +/usr/share/ncurses4/terminfo/l/luna +/usr/share/ncurses4/terminfo/l/luna68k +/usr/share/ncurses4/terminfo/m +/usr/share/ncurses4/terminfo/m/m2-nam +/usr/share/ncurses4/terminfo/m/mac +/usr/share/ncurses4/terminfo/m/mac-w +/usr/share/ncurses4/terminfo/m/macintosh +/usr/share/ncurses4/terminfo/m/macterminal-w +/usr/share/ncurses4/terminfo/m/mai +/usr/share/ncurses4/terminfo/m/masscomp +/usr/share/ncurses4/terminfo/m/masscomp1 +/usr/share/ncurses4/terminfo/m/masscomp2 +/usr/share/ncurses4/terminfo/m/mdl110 +/usr/share/ncurses4/terminfo/m/megatek +/usr/share/ncurses4/terminfo/m/memhp +/usr/share/ncurses4/terminfo/m/mgr +/usr/share/ncurses4/terminfo/m/mgr-linux +/usr/share/ncurses4/terminfo/m/mgr-sun +/usr/share/ncurses4/terminfo/m/microb +/usr/share/ncurses4/terminfo/m/microbee +/usr/share/ncurses4/terminfo/m/microterm +/usr/share/ncurses4/terminfo/m/microterm5 +/usr/share/ncurses4/terminfo/m/mime +/usr/share/ncurses4/terminfo/m/mime-3ax +/usr/share/ncurses4/terminfo/m/mime-fb +/usr/share/ncurses4/terminfo/m/mime-hb +/usr/share/ncurses4/terminfo/m/mime1 +/usr/share/ncurses4/terminfo/m/mime2 +/usr/share/ncurses4/terminfo/m/mime2a +/usr/share/ncurses4/terminfo/m/mime2a-s +/usr/share/ncurses4/terminfo/m/mime2a-v +/usr/share/ncurses4/terminfo/m/mime314 +/usr/share/ncurses4/terminfo/m/mime340 +/usr/share/ncurses4/terminfo/m/mime3a +/usr/share/ncurses4/terminfo/m/mime3ax +/usr/share/ncurses4/terminfo/m/mimei +/usr/share/ncurses4/terminfo/m/mimeii +/usr/share/ncurses4/terminfo/m/minitel +/usr/share/ncurses4/terminfo/m/minitel-2 +/usr/share/ncurses4/terminfo/m/minitel-2-nam +/usr/share/ncurses4/terminfo/m/minix +/usr/share/ncurses4/terminfo/m/minix-old +/usr/share/ncurses4/terminfo/m/minix-old-am +/usr/share/ncurses4/terminfo/m/mm314 +/usr/share/ncurses4/terminfo/m/mm340 +/usr/share/ncurses4/terminfo/m/mod +/usr/share/ncurses4/terminfo/m/mod24 +/usr/share/ncurses4/terminfo/m/modgraph +/usr/share/ncurses4/terminfo/m/modgraph2 +/usr/share/ncurses4/terminfo/m/modgraph48 +/usr/share/ncurses4/terminfo/m/mono-emx +/usr/share/ncurses4/terminfo/m/msk227 +/usr/share/ncurses4/terminfo/m/msk22714 +/usr/share/ncurses4/terminfo/m/msk227am +/usr/share/ncurses4/terminfo/m/mskermit227 +/usr/share/ncurses4/terminfo/m/mskermit22714 +/usr/share/ncurses4/terminfo/m/mskermit227am +/usr/share/ncurses4/terminfo/m/mt-70 +/usr/share/ncurses4/terminfo/m/mt4520-rv +/usr/share/ncurses4/terminfo/m/mt70 +/usr/share/ncurses4/terminfo/n +/usr/share/ncurses4/terminfo/n/nansi.sys +/usr/share/ncurses4/terminfo/n/nansi.sysk +/usr/share/ncurses4/terminfo/n/nansisys +/usr/share/ncurses4/terminfo/n/nansisysk +/usr/share/ncurses4/terminfo/n/ncr7900 +/usr/share/ncurses4/terminfo/n/ncr7900i +/usr/share/ncurses4/terminfo/n/ncr7900iv +/usr/share/ncurses4/terminfo/n/ncr7901 +/usr/share/ncurses4/terminfo/n/nec +/usr/share/ncurses4/terminfo/n/nec5520 +/usr/share/ncurses4/terminfo/n/newhp +/usr/share/ncurses4/terminfo/n/newhpkeyboard +/usr/share/ncurses4/terminfo/n/news +/usr/share/ncurses4/terminfo/n/news-29 +/usr/share/ncurses4/terminfo/n/news-29-euc +/usr/share/ncurses4/terminfo/n/news-29-sjis +/usr/share/ncurses4/terminfo/n/news-33 +/usr/share/ncurses4/terminfo/n/news-33-euc +/usr/share/ncurses4/terminfo/n/news-33-sjis +/usr/share/ncurses4/terminfo/n/news-42 +/usr/share/ncurses4/terminfo/n/news-42-euc +/usr/share/ncurses4/terminfo/n/news-42-sjis +/usr/share/ncurses4/terminfo/n/news-a +/usr/share/ncurses4/terminfo/n/news-o +/usr/share/ncurses4/terminfo/n/news-old-unk +/usr/share/ncurses4/terminfo/n/news-unk +/usr/share/ncurses4/terminfo/n/news28 +/usr/share/ncurses4/terminfo/n/news28-a +/usr/share/ncurses4/terminfo/n/news29 +/usr/share/ncurses4/terminfo/n/news31 +/usr/share/ncurses4/terminfo/n/news31-a +/usr/share/ncurses4/terminfo/n/news31-o +/usr/share/ncurses4/terminfo/n/news33 +/usr/share/ncurses4/terminfo/n/news40 +/usr/share/ncurses4/terminfo/n/news40-a +/usr/share/ncurses4/terminfo/n/news40-o +/usr/share/ncurses4/terminfo/n/news42 +/usr/share/ncurses4/terminfo/n/newscbm +/usr/share/ncurses4/terminfo/n/newscbm-a +/usr/share/ncurses4/terminfo/n/newscbm-o +/usr/share/ncurses4/terminfo/n/newscbm33 +/usr/share/ncurses4/terminfo/n/next +/usr/share/ncurses4/terminfo/n/nextshell +/usr/share/ncurses4/terminfo/n/northstar +/usr/share/ncurses4/terminfo/n/nwe501 +/usr/share/ncurses4/terminfo/n/nwe501-a +/usr/share/ncurses4/terminfo/n/nwe501-o +/usr/share/ncurses4/terminfo/n/nwp-511 +/usr/share/ncurses4/terminfo/n/nwp-517 +/usr/share/ncurses4/terminfo/n/nwp-517-w +/usr/share/ncurses4/terminfo/n/nwp251-a +/usr/share/ncurses4/terminfo/n/nwp251-o +/usr/share/ncurses4/terminfo/n/nwp511 +/usr/share/ncurses4/terminfo/n/nwp512 +/usr/share/ncurses4/terminfo/n/nwp512-a +/usr/share/ncurses4/terminfo/n/nwp512-o +/usr/share/ncurses4/terminfo/n/nwp513 +/usr/share/ncurses4/terminfo/n/nwp513-a +/usr/share/ncurses4/terminfo/n/nwp513-o +/usr/share/ncurses4/terminfo/n/nwp514 +/usr/share/ncurses4/terminfo/n/nwp514-a +/usr/share/ncurses4/terminfo/n/nwp514-o +/usr/share/ncurses4/terminfo/n/nwp517 +/usr/share/ncurses4/terminfo/n/nwp517-w +/usr/share/ncurses4/terminfo/n/nwp518 +/usr/share/ncurses4/terminfo/n/nwp518-a +/usr/share/ncurses4/terminfo/n/nwp518-o +/usr/share/ncurses4/terminfo/o +/usr/share/ncurses4/terminfo/o/o31 +/usr/share/ncurses4/terminfo/o/o4112-nd +/usr/share/ncurses4/terminfo/o/o85h +/usr/share/ncurses4/terminfo/o/oabm85h +/usr/share/ncurses4/terminfo/o/oblit +/usr/share/ncurses4/terminfo/o/oc100 +/usr/share/ncurses4/terminfo/o/oconcept +/usr/share/ncurses4/terminfo/o/ojerq +/usr/share/ncurses4/terminfo/o/oldibmpc3 +/usr/share/ncurses4/terminfo/o/oldpc3 +/usr/share/ncurses4/terminfo/o/oldsun +/usr/share/ncurses4/terminfo/o/omron +/usr/share/ncurses4/terminfo/o/opus3n1+ +/usr/share/ncurses4/terminfo/o/origibmpc3 +/usr/share/ncurses4/terminfo/o/origpc3 +/usr/share/ncurses4/terminfo/o/os9LII +/usr/share/ncurses4/terminfo/o/osborne +/usr/share/ncurses4/terminfo/o/osborne-w +/usr/share/ncurses4/terminfo/o/osborne1 +/usr/share/ncurses4/terminfo/o/osborne1-w +/usr/share/ncurses4/terminfo/o/osexec +/usr/share/ncurses4/terminfo/o/otek4112 +/usr/share/ncurses4/terminfo/o/otek4113 +/usr/share/ncurses4/terminfo/o/otek4114 +/usr/share/ncurses4/terminfo/o/otek4115 +/usr/share/ncurses4/terminfo/o/owl +/usr/share/ncurses4/terminfo/p +/usr/share/ncurses4/terminfo/p/p12 +/usr/share/ncurses4/terminfo/p/p12-m +/usr/share/ncurses4/terminfo/p/p12-m-w +/usr/share/ncurses4/terminfo/p/p12-w +/usr/share/ncurses4/terminfo/p/p14 +/usr/share/ncurses4/terminfo/p/p14-m +/usr/share/ncurses4/terminfo/p/p14-m-w +/usr/share/ncurses4/terminfo/p/p14-w +/usr/share/ncurses4/terminfo/p/p19 +/usr/share/ncurses4/terminfo/p/p4 +/usr/share/ncurses4/terminfo/p/p5 +/usr/share/ncurses4/terminfo/p/p7 +/usr/share/ncurses4/terminfo/p/p8 +/usr/share/ncurses4/terminfo/p/p8-w +/usr/share/ncurses4/terminfo/p/p8gl +/usr/share/ncurses4/terminfo/p/p9 +/usr/share/ncurses4/terminfo/p/p9-8 +/usr/share/ncurses4/terminfo/p/p9-8-w +/usr/share/ncurses4/terminfo/p/p9-w +/usr/share/ncurses4/terminfo/p/pc-coherent +/usr/share/ncurses4/terminfo/p/pc-minix +/usr/share/ncurses4/terminfo/p/pc-venix +/usr/share/ncurses4/terminfo/p/pc3 +/usr/share/ncurses4/terminfo/p/pc3-bold +/usr/share/ncurses4/terminfo/p/pc3r +/usr/share/ncurses4/terminfo/p/pc3r-m +/usr/share/ncurses4/terminfo/p/pc6300plus +/usr/share/ncurses4/terminfo/p/pc7300 +/usr/share/ncurses4/terminfo/p/pcansi +/usr/share/ncurses4/terminfo/p/pcansi-25 +/usr/share/ncurses4/terminfo/p/pcansi-25-m +/usr/share/ncurses4/terminfo/p/pcansi-33 +/usr/share/ncurses4/terminfo/p/pcansi-33-m +/usr/share/ncurses4/terminfo/p/pcansi-43 +/usr/share/ncurses4/terminfo/p/pcansi-43-m +/usr/share/ncurses4/terminfo/p/pcansi-m +/usr/share/ncurses4/terminfo/p/pcansi-mono +/usr/share/ncurses4/terminfo/p/pcansi25 +/usr/share/ncurses4/terminfo/p/pcansi25m +/usr/share/ncurses4/terminfo/p/pcansi33 +/usr/share/ncurses4/terminfo/p/pcansi33m +/usr/share/ncurses4/terminfo/p/pcansi43 +/usr/share/ncurses4/terminfo/p/pccons +/usr/share/ncurses4/terminfo/p/pcconsole +/usr/share/ncurses4/terminfo/p/pcix +/usr/share/ncurses4/terminfo/p/pckermit +/usr/share/ncurses4/terminfo/p/pckermit12 +/usr/share/ncurses4/terminfo/p/pckermit120 +/usr/share/ncurses4/terminfo/p/pcplot +/usr/share/ncurses4/terminfo/p/pcvt25 +/usr/share/ncurses4/terminfo/p/pcvt25w +/usr/share/ncurses4/terminfo/p/pcvt28 +/usr/share/ncurses4/terminfo/p/pcvt28w +/usr/share/ncurses4/terminfo/p/pcvt35 +/usr/share/ncurses4/terminfo/p/pcvt35w +/usr/share/ncurses4/terminfo/p/pcvt40 +/usr/share/ncurses4/terminfo/p/pcvt40w +/usr/share/ncurses4/terminfo/p/pcvt43 +/usr/share/ncurses4/terminfo/p/pcvt43w +/usr/share/ncurses4/terminfo/p/pcvt50 +/usr/share/ncurses4/terminfo/p/pcvt50w +/usr/share/ncurses4/terminfo/p/pcvtXX +/usr/share/ncurses4/terminfo/p/pcz19 +/usr/share/ncurses4/terminfo/p/pe1100 +/usr/share/ncurses4/terminfo/p/pe1200 +/usr/share/ncurses4/terminfo/p/pe1251 +/usr/share/ncurses4/terminfo/p/pe550 +/usr/share/ncurses4/terminfo/p/pe6100 +/usr/share/ncurses4/terminfo/p/pe6300 +/usr/share/ncurses4/terminfo/p/pe6312 +/usr/share/ncurses4/terminfo/p/pe7000c +/usr/share/ncurses4/terminfo/p/pe7000m +/usr/share/ncurses4/terminfo/p/pilot +/usr/share/ncurses4/terminfo/p/printer +/usr/share/ncurses4/terminfo/p/prism12 +/usr/share/ncurses4/terminfo/p/prism12-m +/usr/share/ncurses4/terminfo/p/prism12-m-w +/usr/share/ncurses4/terminfo/p/prism12-w +/usr/share/ncurses4/terminfo/p/prism14 +/usr/share/ncurses4/terminfo/p/prism14-m +/usr/share/ncurses4/terminfo/p/prism14-m-w +/usr/share/ncurses4/terminfo/p/prism14-w +/usr/share/ncurses4/terminfo/p/prism2 +/usr/share/ncurses4/terminfo/p/prism4 +/usr/share/ncurses4/terminfo/p/prism5 +/usr/share/ncurses4/terminfo/p/prism7 +/usr/share/ncurses4/terminfo/p/prism8 +/usr/share/ncurses4/terminfo/p/prism8-w +/usr/share/ncurses4/terminfo/p/prism8gl +/usr/share/ncurses4/terminfo/p/prism9 +/usr/share/ncurses4/terminfo/p/prism9-8 +/usr/share/ncurses4/terminfo/p/prism9-8-w +/usr/share/ncurses4/terminfo/p/prism9-w +/usr/share/ncurses4/terminfo/p/pro350 +/usr/share/ncurses4/terminfo/p/ps300 +/usr/share/ncurses4/terminfo/p/psterm +/usr/share/ncurses4/terminfo/p/psterm-80x24 +/usr/share/ncurses4/terminfo/p/psterm-90x28 +/usr/share/ncurses4/terminfo/p/psterm-96x48 +/usr/share/ncurses4/terminfo/p/psterm-basic +/usr/share/ncurses4/terminfo/p/psterm-fast +/usr/share/ncurses4/terminfo/p/psx_ansi +/usr/share/ncurses4/terminfo/p/pt100 +/usr/share/ncurses4/terminfo/p/pt100w +/usr/share/ncurses4/terminfo/p/pt200 +/usr/share/ncurses4/terminfo/p/pt200w +/usr/share/ncurses4/terminfo/p/pt210 +/usr/share/ncurses4/terminfo/p/pt250 +/usr/share/ncurses4/terminfo/p/pt250w +/usr/share/ncurses4/terminfo/p/pt505 +/usr/share/ncurses4/terminfo/p/pt505-22 +/usr/share/ncurses4/terminfo/p/pt505-24 +/usr/share/ncurses4/terminfo/p/pty +/usr/share/ncurses4/terminfo/q +/usr/share/ncurses4/terminfo/q/qdcons +/usr/share/ncurses4/terminfo/q/qdss +/usr/share/ncurses4/terminfo/q/qnx +/usr/share/ncurses4/terminfo/q/qnx4 +/usr/share/ncurses4/terminfo/q/qume +/usr/share/ncurses4/terminfo/q/qume5 +/usr/share/ncurses4/terminfo/q/qvt101 +/usr/share/ncurses4/terminfo/q/qvt101+ +/usr/share/ncurses4/terminfo/q/qvt101p +/usr/share/ncurses4/terminfo/q/qvt102 +/usr/share/ncurses4/terminfo/q/qvt103 +/usr/share/ncurses4/terminfo/q/qvt103-w +/usr/share/ncurses4/terminfo/q/qvt108 +/usr/share/ncurses4/terminfo/q/qvt119 +/usr/share/ncurses4/terminfo/q/qvt119+ +/usr/share/ncurses4/terminfo/q/qvt119+-25 +/usr/share/ncurses4/terminfo/q/qvt119+-25-w +/usr/share/ncurses4/terminfo/q/qvt119+-w +/usr/share/ncurses4/terminfo/q/qvt119-25-w +/usr/share/ncurses4/terminfo/q/qvt119-w +/usr/share/ncurses4/terminfo/q/qvt119p +/usr/share/ncurses4/terminfo/q/qvt119p-25 +/usr/share/ncurses4/terminfo/q/qvt119p-25-w +/usr/share/ncurses4/terminfo/q/qvt119p-w +/usr/share/ncurses4/terminfo/q/qvt203 +/usr/share/ncurses4/terminfo/q/qvt203+ +/usr/share/ncurses4/terminfo/q/qvt203-25 +/usr/share/ncurses4/terminfo/q/qvt203-25-w +/usr/share/ncurses4/terminfo/q/qvt203-w +/usr/share/ncurses4/terminfo/q/qvt203-w-am +/usr/share/ncurses4/terminfo/r +/usr/share/ncurses4/terminfo/r/rbcomm +/usr/share/ncurses4/terminfo/r/rbcomm-nam +/usr/share/ncurses4/terminfo/r/rbcomm-w +/usr/share/ncurses4/terminfo/r/rca +/usr/share/ncurses4/terminfo/r/rebus3180 +/usr/share/ncurses4/terminfo/r/regent +/usr/share/ncurses4/terminfo/r/regent100 +/usr/share/ncurses4/terminfo/r/regent20 +/usr/share/ncurses4/terminfo/r/regent200 +/usr/share/ncurses4/terminfo/r/regent25 +/usr/share/ncurses4/terminfo/r/regent40 +/usr/share/ncurses4/terminfo/r/regent40+ +/usr/share/ncurses4/terminfo/r/regent60 +/usr/share/ncurses4/terminfo/r/rt6221 +/usr/share/ncurses4/terminfo/r/rt6221-w +/usr/share/ncurses4/terminfo/r/rtpc +/usr/share/ncurses4/terminfo/r/rxvt +/usr/share/ncurses4/terminfo/r/rxvt-basic +/usr/share/ncurses4/terminfo/s +/usr/share/ncurses4/terminfo/s/s +/usr/share/ncurses4/terminfo/s/s4 +/usr/share/ncurses4/terminfo/s/sb1 +/usr/share/ncurses4/terminfo/s/sb2 +/usr/share/ncurses4/terminfo/s/sb3 +/usr/share/ncurses4/terminfo/s/sbi +/usr/share/ncurses4/terminfo/s/sbobcat +/usr/share/ncurses4/terminfo/s/sc410 +/usr/share/ncurses4/terminfo/s/sc415 +/usr/share/ncurses4/terminfo/s/scanset +/usr/share/ncurses4/terminfo/s/scoansi +/usr/share/ncurses4/terminfo/s/screen +/usr/share/ncurses4/terminfo/s/screen-w +/usr/share/ncurses4/terminfo/s/screen2 +/usr/share/ncurses4/terminfo/s/screen3 +/usr/share/ncurses4/terminfo/s/screwpoint +/usr/share/ncurses4/terminfo/s/scrhp +/usr/share/ncurses4/terminfo/s/simterm +/usr/share/ncurses4/terminfo/s/soroc +/usr/share/ncurses4/terminfo/s/soroc120 +/usr/share/ncurses4/terminfo/s/soroc140 +/usr/share/ncurses4/terminfo/s/spinwriter +/usr/share/ncurses4/terminfo/s/st52 +/usr/share/ncurses4/terminfo/s/sun +/usr/share/ncurses4/terminfo/s/sun-1 +/usr/share/ncurses4/terminfo/s/sun-12 +/usr/share/ncurses4/terminfo/s/sun-17 +/usr/share/ncurses4/terminfo/s/sun-24 +/usr/share/ncurses4/terminfo/s/sun-34 +/usr/share/ncurses4/terminfo/s/sun-48 +/usr/share/ncurses4/terminfo/s/sun-c +/usr/share/ncurses4/terminfo/s/sun-cmd +/usr/share/ncurses4/terminfo/s/sun-e +/usr/share/ncurses4/terminfo/s/sun-e-s +/usr/share/ncurses4/terminfo/s/sun-il +/usr/share/ncurses4/terminfo/s/sun-nic +/usr/share/ncurses4/terminfo/s/sun-s +/usr/share/ncurses4/terminfo/s/sun-s-e +/usr/share/ncurses4/terminfo/s/sun-ss5 +/usr/share/ncurses4/terminfo/s/sun1 +/usr/share/ncurses4/terminfo/s/sun2 +/usr/share/ncurses4/terminfo/s/sune +/usr/share/ncurses4/terminfo/s/superbee +/usr/share/ncurses4/terminfo/s/superbee-xsb +/usr/share/ncurses4/terminfo/s/superbeeic +/usr/share/ncurses4/terminfo/s/superbrain +/usr/share/ncurses4/terminfo/s/sv80 +/usr/share/ncurses4/terminfo/s/swtp +/usr/share/ncurses4/terminfo/s/synertek +/usr/share/ncurses4/terminfo/s/synertek380 +/usr/share/ncurses4/terminfo/s/system1 +/usr/share/ncurses4/terminfo/t +/usr/share/ncurses4/terminfo/t/t10 +/usr/share/ncurses4/terminfo/t/t1061 +/usr/share/ncurses4/terminfo/t/t1061f +/usr/share/ncurses4/terminfo/t/t16 +/usr/share/ncurses4/terminfo/t/t3700 +/usr/share/ncurses4/terminfo/t/t3800 +/usr/share/ncurses4/terminfo/t/t653x +/usr/share/ncurses4/terminfo/t/tab +/usr/share/ncurses4/terminfo/t/tab132 +/usr/share/ncurses4/terminfo/t/tab132-15 +/usr/share/ncurses4/terminfo/t/tab132-rv +/usr/share/ncurses4/terminfo/t/tab132-w +/usr/share/ncurses4/terminfo/t/tab132-w-rv +/usr/share/ncurses4/terminfo/t/tandem6510 +/usr/share/ncurses4/terminfo/t/tandem653 +/usr/share/ncurses4/terminfo/t/tek +/usr/share/ncurses4/terminfo/t/tek4012 +/usr/share/ncurses4/terminfo/t/tek4013 +/usr/share/ncurses4/terminfo/t/tek4014 +/usr/share/ncurses4/terminfo/t/tek4014-sm +/usr/share/ncurses4/terminfo/t/tek4015 +/usr/share/ncurses4/terminfo/t/tek4015-sm +/usr/share/ncurses4/terminfo/t/tek4023 +/usr/share/ncurses4/terminfo/t/tek4024 +/usr/share/ncurses4/terminfo/t/tek4025 +/usr/share/ncurses4/terminfo/t/tek4025-17 +/usr/share/ncurses4/terminfo/t/tek4025-17-ws +/usr/share/ncurses4/terminfo/t/tek4025-cr +/usr/share/ncurses4/terminfo/t/tek4025-ex +/usr/share/ncurses4/terminfo/t/tek4025a +/usr/share/ncurses4/terminfo/t/tek4025ex +/usr/share/ncurses4/terminfo/t/tek4027 +/usr/share/ncurses4/terminfo/t/tek4027-ex +/usr/share/ncurses4/terminfo/t/tek4105 +/usr/share/ncurses4/terminfo/t/tek4105-30 +/usr/share/ncurses4/terminfo/t/tek4105a +/usr/share/ncurses4/terminfo/t/tek4106brl +/usr/share/ncurses4/terminfo/t/tek4107 +/usr/share/ncurses4/terminfo/t/tek4107brl +/usr/share/ncurses4/terminfo/t/tek4109 +/usr/share/ncurses4/terminfo/t/tek4109brl +/usr/share/ncurses4/terminfo/t/tek4112 +/usr/share/ncurses4/terminfo/t/tek4112-5 +/usr/share/ncurses4/terminfo/t/tek4112-nd +/usr/share/ncurses4/terminfo/t/tek4113 +/usr/share/ncurses4/terminfo/t/tek4113-34 +/usr/share/ncurses4/terminfo/t/tek4113-nd +/usr/share/ncurses4/terminfo/t/tek4114 +/usr/share/ncurses4/terminfo/t/tek4115 +/usr/share/ncurses4/terminfo/t/tek4125 +/usr/share/ncurses4/terminfo/t/tek4205 +/usr/share/ncurses4/terminfo/t/tek4207 +/usr/share/ncurses4/terminfo/t/tek4207-s +/usr/share/ncurses4/terminfo/t/tek4404 +/usr/share/ncurses4/terminfo/t/teleray +/usr/share/ncurses4/terminfo/t/teletec +/usr/share/ncurses4/terminfo/t/terminet +/usr/share/ncurses4/terminfo/t/terminet1200 +/usr/share/ncurses4/terminfo/t/terminet300 +/usr/share/ncurses4/terminfo/t/tgtelnet +/usr/share/ncurses4/terminfo/t/ti700 +/usr/share/ncurses4/terminfo/t/ti733 +/usr/share/ncurses4/terminfo/t/ti735 +/usr/share/ncurses4/terminfo/t/ti745 +/usr/share/ncurses4/terminfo/t/ti800 +/usr/share/ncurses4/terminfo/t/ti916 +/usr/share/ncurses4/terminfo/t/ti916-132 +/usr/share/ncurses4/terminfo/t/ti916-220-7 +/usr/share/ncurses4/terminfo/t/ti916-220-8 +/usr/share/ncurses4/terminfo/t/ti916-8 +/usr/share/ncurses4/terminfo/t/ti916-8-132 +/usr/share/ncurses4/terminfo/t/ti924 +/usr/share/ncurses4/terminfo/t/ti924-8 +/usr/share/ncurses4/terminfo/t/ti924-8w +/usr/share/ncurses4/terminfo/t/ti924w +/usr/share/ncurses4/terminfo/t/ti926 +/usr/share/ncurses4/terminfo/t/ti926-8 +/usr/share/ncurses4/terminfo/t/ti928 +/usr/share/ncurses4/terminfo/t/ti928-8 +/usr/share/ncurses4/terminfo/t/ti931 +/usr/share/ncurses4/terminfo/t/ti_ansi +/usr/share/ncurses4/terminfo/t/tn1200 +/usr/share/ncurses4/terminfo/t/tn300 +/usr/share/ncurses4/terminfo/t/trs16 +/usr/share/ncurses4/terminfo/t/trs2 +/usr/share/ncurses4/terminfo/t/trs80II +/usr/share/ncurses4/terminfo/t/trsII +/usr/share/ncurses4/terminfo/t/ts-1 +/usr/share/ncurses4/terminfo/t/ts-1p +/usr/share/ncurses4/terminfo/t/ts1 +/usr/share/ncurses4/terminfo/t/ts100 +/usr/share/ncurses4/terminfo/t/ts100-ctxt +/usr/share/ncurses4/terminfo/t/ts100-sp +/usr/share/ncurses4/terminfo/t/ts1p +/usr/share/ncurses4/terminfo/t/tt505-22 +/usr/share/ncurses4/terminfo/t/tty33 +/usr/share/ncurses4/terminfo/t/tty35 +/usr/share/ncurses4/terminfo/t/tty37 +/usr/share/ncurses4/terminfo/t/tty40 +/usr/share/ncurses4/terminfo/t/tty43 +/usr/share/ncurses4/terminfo/t/tty4420 +/usr/share/ncurses4/terminfo/t/tty4424 +/usr/share/ncurses4/terminfo/t/tty4424-1 +/usr/share/ncurses4/terminfo/t/tty4424m +/usr/share/ncurses4/terminfo/t/tty4426 +/usr/share/ncurses4/terminfo/t/tty5410 +/usr/share/ncurses4/terminfo/t/tty5410-w +/usr/share/ncurses4/terminfo/t/tty5410v1 +/usr/share/ncurses4/terminfo/t/tty5410v1-w +/usr/share/ncurses4/terminfo/t/tty5420 +/usr/share/ncurses4/terminfo/t/tty5420+nl +/usr/share/ncurses4/terminfo/t/tty5420-nl +/usr/share/ncurses4/terminfo/t/tty5420-rv +/usr/share/ncurses4/terminfo/t/tty5420-rv-nl +/usr/share/ncurses4/terminfo/t/tty5420-w +/usr/share/ncurses4/terminfo/t/tty5420-w-nl +/usr/share/ncurses4/terminfo/t/tty5420-w-rv +/usr/share/ncurses4/terminfo/t/tty5420-w-rv-n +/usr/share/ncurses4/terminfo/t/tty5425 +/usr/share/ncurses4/terminfo/t/tty5425-nl +/usr/share/ncurses4/terminfo/t/tty5425-w +/usr/share/ncurses4/terminfo/t/tty5620 +/usr/share/ncurses4/terminfo/t/tty5620-1 +/usr/share/ncurses4/terminfo/t/tty5620-24 +/usr/share/ncurses4/terminfo/t/tty5620-34 +/usr/share/ncurses4/terminfo/t/tty5620-s +/usr/share/ncurses4/terminfo/t/ttydmd +/usr/share/ncurses4/terminfo/t/tvi-2p +/usr/share/ncurses4/terminfo/t/tvi803 +/usr/share/ncurses4/terminfo/t/tvi9065 +/usr/share/ncurses4/terminfo/t/tvi910 +/usr/share/ncurses4/terminfo/t/tvi910+ +/usr/share/ncurses4/terminfo/t/tvi912 +/usr/share/ncurses4/terminfo/t/tvi912-2p +/usr/share/ncurses4/terminfo/t/tvi912b +/usr/share/ncurses4/terminfo/t/tvi912c +/usr/share/ncurses4/terminfo/t/tvi912cc +/usr/share/ncurses4/terminfo/t/tvi914 +/usr/share/ncurses4/terminfo/t/tvi920 +/usr/share/ncurses4/terminfo/t/tvi920-2p +/usr/share/ncurses4/terminfo/t/tvi920b +/usr/share/ncurses4/terminfo/t/tvi920c +/usr/share/ncurses4/terminfo/t/tvi921 +/usr/share/ncurses4/terminfo/t/tvi924 +/usr/share/ncurses4/terminfo/t/tvi925 +/usr/share/ncurses4/terminfo/t/tvi925-hi +/usr/share/ncurses4/terminfo/t/tvi92B +/usr/share/ncurses4/terminfo/t/tvi92D +/usr/share/ncurses4/terminfo/t/tvi950 +/usr/share/ncurses4/terminfo/t/tvi950-2p +/usr/share/ncurses4/terminfo/t/tvi950-4p +/usr/share/ncurses4/terminfo/t/tvi950-rv +/usr/share/ncurses4/terminfo/t/tvi950-rv-2p +/usr/share/ncurses4/terminfo/t/tvi950-rv-4p +/usr/share/ncurses4/terminfo/t/tvi955 +/usr/share/ncurses4/terminfo/t/tvi955-hb +/usr/share/ncurses4/terminfo/t/tvi955-w +/usr/share/ncurses4/terminfo/t/tvi970 +/usr/share/ncurses4/terminfo/t/tvi970-2p +/usr/share/ncurses4/terminfo/t/tvi970-vb +/usr/share/ncurses4/terminfo/t/tvipt +/usr/share/ncurses4/terminfo/u +/usr/share/ncurses4/terminfo/u/ultima2 +/usr/share/ncurses4/terminfo/u/ultimaII +/usr/share/ncurses4/terminfo/u/uniterm +/usr/share/ncurses4/terminfo/u/uniterm49 +/usr/share/ncurses4/terminfo/u/unixpc +/usr/share/ncurses4/terminfo/u/unknown +/usr/share/ncurses4/terminfo/u/uts30 +/usr/share/ncurses4/terminfo/v +/usr/share/ncurses4/terminfo/v/v200-nam +/usr/share/ncurses4/terminfo/v/v320n +/usr/share/ncurses4/terminfo/v/v3220 +/usr/share/ncurses4/terminfo/v/v5410 +/usr/share/ncurses4/terminfo/v/vapple +/usr/share/ncurses4/terminfo/v/vc103 +/usr/share/ncurses4/terminfo/v/vc203 +/usr/share/ncurses4/terminfo/v/vc303 +/usr/share/ncurses4/terminfo/v/vc303a +/usr/share/ncurses4/terminfo/v/vc403a +/usr/share/ncurses4/terminfo/v/vc404 +/usr/share/ncurses4/terminfo/v/vc404-s +/usr/share/ncurses4/terminfo/v/vc414 +/usr/share/ncurses4/terminfo/v/vc414h +/usr/share/ncurses4/terminfo/v/vc415 +/usr/share/ncurses4/terminfo/v/venix +/usr/share/ncurses4/terminfo/v/versaterm +/usr/share/ncurses4/terminfo/v/vi200 +/usr/share/ncurses4/terminfo/v/vi200-f +/usr/share/ncurses4/terminfo/v/vi200-rv +/usr/share/ncurses4/terminfo/v/vi300 +/usr/share/ncurses4/terminfo/v/vi300-old +/usr/share/ncurses4/terminfo/v/vi50 +/usr/share/ncurses4/terminfo/v/vi500 +/usr/share/ncurses4/terminfo/v/vi50adm +/usr/share/ncurses4/terminfo/v/vi55 +/usr/share/ncurses4/terminfo/v/vi550 +/usr/share/ncurses4/terminfo/v/vi603 +/usr/share/ncurses4/terminfo/v/viewpoint +/usr/share/ncurses4/terminfo/v/viewpoint3a+ +/usr/share/ncurses4/terminfo/v/viewpoint60 +/usr/share/ncurses4/terminfo/v/viewpoint90 +/usr/share/ncurses4/terminfo/v/visa50 +/usr/share/ncurses4/terminfo/v/visual603 +/usr/share/ncurses4/terminfo/v/vitty +/usr/share/ncurses4/terminfo/v/vk100 +/usr/share/ncurses4/terminfo/v/vp3a+ +/usr/share/ncurses4/terminfo/v/vp60 +/usr/share/ncurses4/terminfo/v/vp90 +/usr/share/ncurses4/terminfo/v/vremote +/usr/share/ncurses4/terminfo/v/vs100 +/usr/share/ncurses4/terminfo/v/vs100-x10 +/usr/share/ncurses4/terminfo/v/vsc +/usr/share/ncurses4/terminfo/v/vt-61 +/usr/share/ncurses4/terminfo/v/vt100 +/usr/share/ncurses4/terminfo/v/vt100-am +/usr/share/ncurses4/terminfo/v/vt100-bm +/usr/share/ncurses4/terminfo/v/vt100-bm-o +/usr/share/ncurses4/terminfo/v/vt100-bot-s +/usr/share/ncurses4/terminfo/v/vt100-nam +/usr/share/ncurses4/terminfo/v/vt100-nam-w +/usr/share/ncurses4/terminfo/v/vt100-nav +/usr/share/ncurses4/terminfo/v/vt100-nav-w +/usr/share/ncurses4/terminfo/v/vt100-s +/usr/share/ncurses4/terminfo/v/vt100-s-bot +/usr/share/ncurses4/terminfo/v/vt100-s-top +/usr/share/ncurses4/terminfo/v/vt100-top-s +/usr/share/ncurses4/terminfo/v/vt100-vb +/usr/share/ncurses4/terminfo/v/vt100-w +/usr/share/ncurses4/terminfo/v/vt100-w-am +/usr/share/ncurses4/terminfo/v/vt100-w-nam +/usr/share/ncurses4/terminfo/v/vt100-w-nav +/usr/share/ncurses4/terminfo/v/vt100nam +/usr/share/ncurses4/terminfo/v/vt102 +/usr/share/ncurses4/terminfo/v/vt102-nsgr +/usr/share/ncurses4/terminfo/v/vt102-w +/usr/share/ncurses4/terminfo/v/vt125 +/usr/share/ncurses4/terminfo/v/vt131 +/usr/share/ncurses4/terminfo/v/vt132 +/usr/share/ncurses4/terminfo/v/vt200 +/usr/share/ncurses4/terminfo/v/vt200-js +/usr/share/ncurses4/terminfo/v/vt200-w +/usr/share/ncurses4/terminfo/v/vt220 +/usr/share/ncurses4/terminfo/v/vt220-8 +/usr/share/ncurses4/terminfo/v/vt220-js +/usr/share/ncurses4/terminfo/v/vt220-nam +/usr/share/ncurses4/terminfo/v/vt220-w +/usr/share/ncurses4/terminfo/v/vt220d +/usr/share/ncurses4/terminfo/v/vt300 +/usr/share/ncurses4/terminfo/v/vt300-nam +/usr/share/ncurses4/terminfo/v/vt300-w +/usr/share/ncurses4/terminfo/v/vt300-w-nam +/usr/share/ncurses4/terminfo/v/vt320 +/usr/share/ncurses4/terminfo/v/vt320-k3 +/usr/share/ncurses4/terminfo/v/vt320-k311 +/usr/share/ncurses4/terminfo/v/vt320-nam +/usr/share/ncurses4/terminfo/v/vt320-w +/usr/share/ncurses4/terminfo/v/vt320-w-nam +/usr/share/ncurses4/terminfo/v/vt320nam +/usr/share/ncurses4/terminfo/v/vt330 +/usr/share/ncurses4/terminfo/v/vt340 +/usr/share/ncurses4/terminfo/v/vt400 +/usr/share/ncurses4/terminfo/v/vt400-24 +/usr/share/ncurses4/terminfo/v/vt420 +/usr/share/ncurses4/terminfo/v/vt420f +/usr/share/ncurses4/terminfo/v/vt420pc +/usr/share/ncurses4/terminfo/v/vt420pcdos +/usr/share/ncurses4/terminfo/v/vt50 +/usr/share/ncurses4/terminfo/v/vt50h +/usr/share/ncurses4/terminfo/v/vt510 +/usr/share/ncurses4/terminfo/v/vt510pc +/usr/share/ncurses4/terminfo/v/vt510pcdos +/usr/share/ncurses4/terminfo/v/vt52 +/usr/share/ncurses4/terminfo/v/vt520 +/usr/share/ncurses4/terminfo/v/vt525 +/usr/share/ncurses4/terminfo/v/vt61 +/usr/share/ncurses4/terminfo/v/vt61.5 +/usr/share/ncurses4/terminfo/w +/usr/share/ncurses4/terminfo/w/wren +/usr/share/ncurses4/terminfo/w/wrenw +/usr/share/ncurses4/terminfo/w/wsiris +/usr/share/ncurses4/terminfo/w/wy-75ap +/usr/share/ncurses4/terminfo/w/wy100 +/usr/share/ncurses4/terminfo/w/wy100q +/usr/share/ncurses4/terminfo/w/wy120 +/usr/share/ncurses4/terminfo/w/wy120-25 +/usr/share/ncurses4/terminfo/w/wy120-25-w +/usr/share/ncurses4/terminfo/w/wy120-vb +/usr/share/ncurses4/terminfo/w/wy120-w +/usr/share/ncurses4/terminfo/w/wy120-w-vb +/usr/share/ncurses4/terminfo/w/wy120-wvb +/usr/share/ncurses4/terminfo/w/wy150 +/usr/share/ncurses4/terminfo/w/wy150-25 +/usr/share/ncurses4/terminfo/w/wy150-25-w +/usr/share/ncurses4/terminfo/w/wy150-vb +/usr/share/ncurses4/terminfo/w/wy150-w +/usr/share/ncurses4/terminfo/w/wy150-w-vb +/usr/share/ncurses4/terminfo/w/wy160 +/usr/share/ncurses4/terminfo/w/wy160-25 +/usr/share/ncurses4/terminfo/w/wy160-25-w +/usr/share/ncurses4/terminfo/w/wy160-42 +/usr/share/ncurses4/terminfo/w/wy160-42-w +/usr/share/ncurses4/terminfo/w/wy160-43 +/usr/share/ncurses4/terminfo/w/wy160-43-w +/usr/share/ncurses4/terminfo/w/wy160-tek +/usr/share/ncurses4/terminfo/w/wy160-vb +/usr/share/ncurses4/terminfo/w/wy160-w +/usr/share/ncurses4/terminfo/w/wy160-w-vb +/usr/share/ncurses4/terminfo/w/wy160-wvb +/usr/share/ncurses4/terminfo/w/wy185 +/usr/share/ncurses4/terminfo/w/wy185-24 +/usr/share/ncurses4/terminfo/w/wy185-vb +/usr/share/ncurses4/terminfo/w/wy185-w +/usr/share/ncurses4/terminfo/w/wy185-wvb +/usr/share/ncurses4/terminfo/w/wy30 +/usr/share/ncurses4/terminfo/w/wy30-mc +/usr/share/ncurses4/terminfo/w/wy30-vb +/usr/share/ncurses4/terminfo/w/wy325 +/usr/share/ncurses4/terminfo/w/wy325-25 +/usr/share/ncurses4/terminfo/w/wy325-25w +/usr/share/ncurses4/terminfo/w/wy325-42 +/usr/share/ncurses4/terminfo/w/wy325-42w +/usr/share/ncurses4/terminfo/w/wy325-42w-vb +/usr/share/ncurses4/terminfo/w/wy325-42wvb +/usr/share/ncurses4/terminfo/w/wy325-43 +/usr/share/ncurses4/terminfo/w/wy325-43w +/usr/share/ncurses4/terminfo/w/wy325-43w-vb +/usr/share/ncurses4/terminfo/w/wy325-43wvb +/usr/share/ncurses4/terminfo/w/wy325-80 +/usr/share/ncurses4/terminfo/w/wy325-vb +/usr/share/ncurses4/terminfo/w/wy325-w +/usr/share/ncurses4/terminfo/w/wy325-w-vb +/usr/share/ncurses4/terminfo/w/wy325-wvb +/usr/share/ncurses4/terminfo/w/wy325w-24 +/usr/share/ncurses4/terminfo/w/wy350 +/usr/share/ncurses4/terminfo/w/wy350-vb +/usr/share/ncurses4/terminfo/w/wy350-w +/usr/share/ncurses4/terminfo/w/wy350-wvb +/usr/share/ncurses4/terminfo/w/wy370 +/usr/share/ncurses4/terminfo/w/wy370-101k +/usr/share/ncurses4/terminfo/w/wy370-105k +/usr/share/ncurses4/terminfo/w/wy370-EPC +/usr/share/ncurses4/terminfo/w/wy370-nk +/usr/share/ncurses4/terminfo/w/wy370-rv +/usr/share/ncurses4/terminfo/w/wy370-tek +/usr/share/ncurses4/terminfo/w/wy370-vb +/usr/share/ncurses4/terminfo/w/wy370-w +/usr/share/ncurses4/terminfo/w/wy370-wvb +/usr/share/ncurses4/terminfo/w/wy50 +/usr/share/ncurses4/terminfo/w/wy50-mc +/usr/share/ncurses4/terminfo/w/wy50-vb +/usr/share/ncurses4/terminfo/w/wy50-w +/usr/share/ncurses4/terminfo/w/wy50-wvb +/usr/share/ncurses4/terminfo/w/wy520 +/usr/share/ncurses4/terminfo/w/wy520-24 +/usr/share/ncurses4/terminfo/w/wy520-36 +/usr/share/ncurses4/terminfo/w/wy520-36pc +/usr/share/ncurses4/terminfo/w/wy520-36w +/usr/share/ncurses4/terminfo/w/wy520-36wpc +/usr/share/ncurses4/terminfo/w/wy520-48 +/usr/share/ncurses4/terminfo/w/wy520-48pc +/usr/share/ncurses4/terminfo/w/wy520-48w +/usr/share/ncurses4/terminfo/w/wy520-48wpc +/usr/share/ncurses4/terminfo/w/wy520-epc +/usr/share/ncurses4/terminfo/w/wy520-epc-24 +/usr/share/ncurses4/terminfo/w/wy520-epc-vb +/usr/share/ncurses4/terminfo/w/wy520-epc-w +/usr/share/ncurses4/terminfo/w/wy520-epc-wvb +/usr/share/ncurses4/terminfo/w/wy520-vb +/usr/share/ncurses4/terminfo/w/wy520-w +/usr/share/ncurses4/terminfo/w/wy520-wvb +/usr/share/ncurses4/terminfo/w/wy60 +/usr/share/ncurses4/terminfo/w/wy60-25 +/usr/share/ncurses4/terminfo/w/wy60-25-w +/usr/share/ncurses4/terminfo/w/wy60-316X +/usr/share/ncurses4/terminfo/w/wy60-42 +/usr/share/ncurses4/terminfo/w/wy60-42-w +/usr/share/ncurses4/terminfo/w/wy60-43 +/usr/share/ncurses4/terminfo/w/wy60-43-w +/usr/share/ncurses4/terminfo/w/wy60-vb +/usr/share/ncurses4/terminfo/w/wy60-w +/usr/share/ncurses4/terminfo/w/wy60-w-vb +/usr/share/ncurses4/terminfo/w/wy60-wvb +/usr/share/ncurses4/terminfo/w/wy75 +/usr/share/ncurses4/terminfo/w/wy75-mc +/usr/share/ncurses4/terminfo/w/wy75-vb +/usr/share/ncurses4/terminfo/w/wy75-w +/usr/share/ncurses4/terminfo/w/wy75-wvb +/usr/share/ncurses4/terminfo/w/wy75ap +/usr/share/ncurses4/terminfo/w/wy85 +/usr/share/ncurses4/terminfo/w/wy85-vb +/usr/share/ncurses4/terminfo/w/wy85-w +/usr/share/ncurses4/terminfo/w/wy85-wvb +/usr/share/ncurses4/terminfo/w/wy99gt +/usr/share/ncurses4/terminfo/w/wy99gt-25 +/usr/share/ncurses4/terminfo/w/wy99gt-25-w +/usr/share/ncurses4/terminfo/w/wy99gt-tek +/usr/share/ncurses4/terminfo/w/wy99gt-vb +/usr/share/ncurses4/terminfo/w/wy99gt-w +/usr/share/ncurses4/terminfo/w/wy99gt-w-vb +/usr/share/ncurses4/terminfo/w/wy99gt-wvb +/usr/share/ncurses4/terminfo/w/wyse-325 +/usr/share/ncurses4/terminfo/w/wyse-75ap +/usr/share/ncurses4/terminfo/w/wyse-vp +/usr/share/ncurses4/terminfo/w/wyse120 +/usr/share/ncurses4/terminfo/w/wyse120-25 +/usr/share/ncurses4/terminfo/w/wyse120-25-w +/usr/share/ncurses4/terminfo/w/wyse120-vb +/usr/share/ncurses4/terminfo/w/wyse120-w +/usr/share/ncurses4/terminfo/w/wyse120-wvb +/usr/share/ncurses4/terminfo/w/wyse150 +/usr/share/ncurses4/terminfo/w/wyse150-25 +/usr/share/ncurses4/terminfo/w/wyse150-25-w +/usr/share/ncurses4/terminfo/w/wyse150-vb +/usr/share/ncurses4/terminfo/w/wyse150-w +/usr/share/ncurses4/terminfo/w/wyse150-w-vb +/usr/share/ncurses4/terminfo/w/wyse160 +/usr/share/ncurses4/terminfo/w/wyse160-25 +/usr/share/ncurses4/terminfo/w/wyse160-25-w +/usr/share/ncurses4/terminfo/w/wyse160-42 +/usr/share/ncurses4/terminfo/w/wyse160-42-w +/usr/share/ncurses4/terminfo/w/wyse160-43 +/usr/share/ncurses4/terminfo/w/wyse160-43-w +/usr/share/ncurses4/terminfo/w/wyse160-vb +/usr/share/ncurses4/terminfo/w/wyse160-w +/usr/share/ncurses4/terminfo/w/wyse160-wvb +/usr/share/ncurses4/terminfo/w/wyse185 +/usr/share/ncurses4/terminfo/w/wyse185-24 +/usr/share/ncurses4/terminfo/w/wyse185-vb +/usr/share/ncurses4/terminfo/w/wyse185-w +/usr/share/ncurses4/terminfo/w/wyse185-wvb +/usr/share/ncurses4/terminfo/w/wyse30 +/usr/share/ncurses4/terminfo/w/wyse30-mc +/usr/share/ncurses4/terminfo/w/wyse30-vb +/usr/share/ncurses4/terminfo/w/wyse325 +/usr/share/ncurses4/terminfo/w/wyse325-25 +/usr/share/ncurses4/terminfo/w/wyse325-25w +/usr/share/ncurses4/terminfo/w/wyse325-42 +/usr/share/ncurses4/terminfo/w/wyse325-42w +/usr/share/ncurses4/terminfo/w/wyse325-43 +/usr/share/ncurses4/terminfo/w/wyse325-43w +/usr/share/ncurses4/terminfo/w/wyse325-vb +/usr/share/ncurses4/terminfo/w/wyse325-w +/usr/share/ncurses4/terminfo/w/wyse325-wvb +/usr/share/ncurses4/terminfo/w/wyse350 +/usr/share/ncurses4/terminfo/w/wyse350-vb +/usr/share/ncurses4/terminfo/w/wyse350-w +/usr/share/ncurses4/terminfo/w/wyse350-wvb +/usr/share/ncurses4/terminfo/w/wyse370 +/usr/share/ncurses4/terminfo/w/wyse50 +/usr/share/ncurses4/terminfo/w/wyse50-mc +/usr/share/ncurses4/terminfo/w/wyse50-vb +/usr/share/ncurses4/terminfo/w/wyse50-w +/usr/share/ncurses4/terminfo/w/wyse50-wvb +/usr/share/ncurses4/terminfo/w/wyse520 +/usr/share/ncurses4/terminfo/w/wyse520-24 +/usr/share/ncurses4/terminfo/w/wyse520-36 +/usr/share/ncurses4/terminfo/w/wyse520-36pc +/usr/share/ncurses4/terminfo/w/wyse520-36w +/usr/share/ncurses4/terminfo/w/wyse520-36wpc +/usr/share/ncurses4/terminfo/w/wyse520-48 +/usr/share/ncurses4/terminfo/w/wyse520-48pc +/usr/share/ncurses4/terminfo/w/wyse520-48w +/usr/share/ncurses4/terminfo/w/wyse520-48wpc +/usr/share/ncurses4/terminfo/w/wyse520-epc +/usr/share/ncurses4/terminfo/w/wyse520-epc-w +/usr/share/ncurses4/terminfo/w/wyse520-p-wvb +/usr/share/ncurses4/terminfo/w/wyse520-pc-24 +/usr/share/ncurses4/terminfo/w/wyse520-pc-vb +/usr/share/ncurses4/terminfo/w/wyse520-vb +/usr/share/ncurses4/terminfo/w/wyse520-w +/usr/share/ncurses4/terminfo/w/wyse520-wvb +/usr/share/ncurses4/terminfo/w/wyse60 +/usr/share/ncurses4/terminfo/w/wyse60-25 +/usr/share/ncurses4/terminfo/w/wyse60-25-w +/usr/share/ncurses4/terminfo/w/wyse60-316X +/usr/share/ncurses4/terminfo/w/wyse60-42 +/usr/share/ncurses4/terminfo/w/wyse60-42-w +/usr/share/ncurses4/terminfo/w/wyse60-43 +/usr/share/ncurses4/terminfo/w/wyse60-43-w +/usr/share/ncurses4/terminfo/w/wyse60-vb +/usr/share/ncurses4/terminfo/w/wyse60-w +/usr/share/ncurses4/terminfo/w/wyse60-wvb +/usr/share/ncurses4/terminfo/w/wyse75 +/usr/share/ncurses4/terminfo/w/wyse75-mc +/usr/share/ncurses4/terminfo/w/wyse75-vb +/usr/share/ncurses4/terminfo/w/wyse75-w +/usr/share/ncurses4/terminfo/w/wyse75-wvb +/usr/share/ncurses4/terminfo/w/wyse75ap +/usr/share/ncurses4/terminfo/w/wyse85 +/usr/share/ncurses4/terminfo/w/wyse85-vb +/usr/share/ncurses4/terminfo/w/wyse85-w +/usr/share/ncurses4/terminfo/w/wyse85-wvb +/usr/share/ncurses4/terminfo/w/wyse99gt +/usr/share/ncurses4/terminfo/w/wyse99gt-25 +/usr/share/ncurses4/terminfo/w/wyse99gt-25-w +/usr/share/ncurses4/terminfo/w/wyse99gt-vb +/usr/share/ncurses4/terminfo/w/wyse99gt-w +/usr/share/ncurses4/terminfo/w/wyse99gt-wvb +/usr/share/ncurses4/terminfo/x +/usr/share/ncurses4/terminfo/x/x10term +/usr/share/ncurses4/terminfo/x/x1700 +/usr/share/ncurses4/terminfo/x/x1700-lm +/usr/share/ncurses4/terminfo/x/x1720 +/usr/share/ncurses4/terminfo/x/x1750 +/usr/share/ncurses4/terminfo/x/x68k +/usr/share/ncurses4/terminfo/x/x68k-ite +/usr/share/ncurses4/terminfo/x/x820 +/usr/share/ncurses4/terminfo/x/xenix +/usr/share/ncurses4/terminfo/x/xerox +/usr/share/ncurses4/terminfo/x/xerox-lm +/usr/share/ncurses4/terminfo/x/xerox1720 +/usr/share/ncurses4/terminfo/x/xerox820 +/usr/share/ncurses4/terminfo/x/xl83 +/usr/share/ncurses4/terminfo/x/xtalk +/usr/share/ncurses4/terminfo/x/xterm +/usr/share/ncurses4/terminfo/x/xterm+sl +/usr/share/ncurses4/terminfo/x/xterm+sl-twm +/usr/share/ncurses4/terminfo/x/xterm-16color +/usr/share/ncurses4/terminfo/x/xterm-8bit +/usr/share/ncurses4/terminfo/x/xterm-bold +/usr/share/ncurses4/terminfo/x/xterm-nic +/usr/share/ncurses4/terminfo/x/xterm-old +/usr/share/ncurses4/terminfo/x/xterm-pcolor +/usr/share/ncurses4/terminfo/x/xterm-r5 +/usr/share/ncurses4/terminfo/x/xterm-r6 +/usr/share/ncurses4/terminfo/x/xterm-sun +/usr/share/ncurses4/terminfo/x/xterm-xf86-v32 +/usr/share/ncurses4/terminfo/x/xterm-xf86-v33 +/usr/share/ncurses4/terminfo/x/xterm-xf86-v40 +/usr/share/ncurses4/terminfo/x/xterm-xi +/usr/share/ncurses4/terminfo/x/xterm1 +/usr/share/ncurses4/terminfo/x/xterms +/usr/share/ncurses4/terminfo/x/xterms-sun +/usr/share/ncurses4/terminfo/x/xwsh +/usr/share/ncurses4/terminfo/z +/usr/share/ncurses4/terminfo/z/z-100 +/usr/share/ncurses4/terminfo/z/z-100bw +/usr/share/ncurses4/terminfo/z/z100 +/usr/share/ncurses4/terminfo/z/z100bw +/usr/share/ncurses4/terminfo/z/z110 +/usr/share/ncurses4/terminfo/z/z110bw +/usr/share/ncurses4/terminfo/z/z19 +/usr/share/ncurses4/terminfo/z/z29 +/usr/share/ncurses4/terminfo/z/z29a +/usr/share/ncurses4/terminfo/z/z29a-kc-bc +/usr/share/ncurses4/terminfo/z/z29a-kc-uc +/usr/share/ncurses4/terminfo/z/z29a-nkc-bc +/usr/share/ncurses4/terminfo/z/z29a-nkc-uc +/usr/share/ncurses4/terminfo/z/z29b +/usr/share/ncurses4/terminfo/z/z30 +/usr/share/ncurses4/terminfo/z/z340 +/usr/share/ncurses4/terminfo/z/z340-nam +/usr/share/ncurses4/terminfo/z/z39-a +/usr/share/ncurses4/terminfo/z/z39a +/usr/share/ncurses4/terminfo/z/z50 +/usr/share/ncurses4/terminfo/z/z8001 +/usr/share/ncurses4/terminfo/z/zen30 +/usr/share/ncurses4/terminfo/z/zen50 +/usr/share/ncurses4/terminfo/z/zen8001 +/usr/share/ncurses4/terminfo/z/zenith +/usr/share/ncurses4/terminfo/z/zenith29 +/usr/share/ncurses4/terminfo/z/zenith39-a +/usr/share/ncurses4/terminfo/z/zenith39-ansi +/usr/share/ncurses4/terminfo/z/zt-1 +/usr/share/ncurses4/terminfo/z/ztx +/usr/share/ncurses4/terminfo/z/ztx-1-a +/usr/share/ncurses4/terminfo/z/ztx11 + +2 15 RPM:Files 0 0 +2 14 #text 0 1 + +1 15 RDF:Description 0 0 +1 14 #text 0 1 + +0 15 RDF:RDF 0 0 diff --git a/result/rdf2.rdr b/result/rdf2.rdr new file mode 100644 index 0000000..15e5e97 --- /dev/null +++ b/result/rdf2.rdr @@ -0,0 +1,2008 @@ +0 1 RDF:RDF 0 0 +1 14 #text 0 1 + +1 1 RDF:Description 0 0 +2 14 #text 0 1 + +2 1 RPM:Name 0 0 +3 3 #text 0 1 ncurses4 +2 15 RPM:Name 0 0 +2 14 #text 0 1 + +2 1 RPM:Version 0 0 +3 3 #text 0 1 4.2 +2 15 RPM:Version 0 0 +2 14 #text 0 1 + +2 1 RPM:Release 0 0 +3 3 #text 0 1 3 +2 15 RPM:Release 0 0 +2 14 #text 0 1 + +2 1 RPM:Arch 0 0 +3 3 #text 0 1 i386 +2 15 RPM:Arch 0 0 +2 14 #text 0 1 + +2 1 RPM:Os 0 0 +3 3 #text 0 1 Linux +2 15 RPM:Os 0 0 +2 14 #text 0 1 + +2 1 RPM:Distribution 0 0 +3 3 #text 0 1 DLD +2 15 RPM:Distribution 0 0 +2 14 #text 0 1 + +2 1 RPM:Vendor 0 0 +3 3 #text 0 1 delix Computer GmbH +2 15 RPM:Vendor 0 0 +2 14 #text 0 1 + +2 1 RPM:Packager 0 0 +3 3 #text 0 1 Till Bubeck , Ngo Than +2 15 RPM:Packager 0 0 +2 14 #text 0 1 + +2 1 RPM:Group 0 0 +3 3 #text 0 1 Libraries +2 15 RPM:Group 0 0 +2 14 #text 0 1 + +2 1 RPM:Summary 0 0 +3 3 #text 0 1 Bibliothek zur Ansteuerung von Terminals +2 15 RPM:Summary 0 0 +2 14 #text 0 1 + +2 1 RPM:Description 0 0 +3 3 #text 0 1 Diese Library stellt dem Programmierer vom Terminal unabhängige +Routinen zur Ansteuerung Ihres Bildschirms zur Verfügung, die +speziell optimiert sind. +Diese Version ist die 'new curses' (ncurses) Variante und ist der +anerkannte Ersatz für die klassische Curses-Library, die nicht mehr +weiterentwickelt wird. +2 15 RPM:Description 0 0 +2 14 #text 0 1 + +2 1 RPM:Copyright 0 0 +3 3 #text 0 1 GPL +2 15 RPM:Copyright 0 0 +2 14 #text 0 1 + +2 1 RPM:Sources 0 0 +3 3 #text 0 1 ncurses4-4.2-3.src.rpm +2 15 RPM:Sources 0 0 +2 14 #text 0 1 + +2 1 RPM:BuildDate 0 0 +3 3 #text 0 1 Tue May 12 19:30:26 1998 +2 15 RPM:BuildDate 0 0 +2 14 #text 0 1 + +2 1 RPM:Date 0 0 +3 3 #text 0 1 895015826 +2 15 RPM:Date 0 0 +2 14 #text 0 1 + +2 1 RPM:Size 0 0 +3 3 #text 0 1 1373513 +2 15 RPM:Size 0 0 +2 14 #text 0 1 + +2 1 RPM:BuildHost 0 0 +3 3 #text 0 1 erdbeere.delix.de +2 15 RPM:BuildHost 0 0 +2 14 #text 0 1 + +2 1 RPM:Provides 0 0 +3 14 #text 0 1 + +3 1 RDF:Bag 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 ncurses4 +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 libpanel.so.4 +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 libncurses.so.4 +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 libmenu.so.4 +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 libform.so.4 +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +4 1 RPM:Resource 0 0 +5 3 #text 0 1 ncurses +4 15 RPM:Resource 0 0 +4 14 #text 0 1 + +3 15 RDF:Bag 0 0 +3 14 #text 0 1 + +2 15 RPM:Provides 0 0 +2 14 #text 0 1 + +2 1 RPM:Files 0 0 +3 3 #text 0 1 /lib/libncurses.so.4 +/lib/libncurses.so.4.2 +/usr/doc/ncurses4-4.2-3 +/usr/doc/ncurses4-4.2-3/ANNOUNCE.gz +/usr/doc/ncurses4-4.2-3/NEWS.gz +/usr/doc/ncurses4-4.2-3/README.gz +/usr/doc/ncurses4-4.2-3/TO-DO.gz +/usr/lib/libform.so.4 +/usr/lib/libform.so.4.2 +/usr/lib/libmenu.so.4 +/usr/lib/libmenu.so.4.2 +/usr/lib/libpanel.so.4 +/usr/lib/libpanel.so.4.2 +/usr/share/ncurses4 +/usr/share/ncurses4/tabset +/usr/share/ncurses4/tabset/std +/usr/share/ncurses4/tabset/stdcrt +/usr/share/ncurses4/tabset/vt100 +/usr/share/ncurses4/tabset/vt300 +/usr/share/ncurses4/terminfo +/usr/share/ncurses4/terminfo/1 +/usr/share/ncurses4/terminfo/1/1178 +/usr/share/ncurses4/terminfo/1/1730-lm +/usr/share/ncurses4/terminfo/2 +/usr/share/ncurses4/terminfo/2/2621 +/usr/share/ncurses4/terminfo/2/2621-wl +/usr/share/ncurses4/terminfo/2/2621A +/usr/share/ncurses4/terminfo/2/2621a +/usr/share/ncurses4/terminfo/3 +/usr/share/ncurses4/terminfo/3/386at +/usr/share/ncurses4/terminfo/3/3b1 +/usr/share/ncurses4/terminfo/4 +/usr/share/ncurses4/terminfo/4/4025ex +/usr/share/ncurses4/terminfo/4/4027ex +/usr/share/ncurses4/terminfo/4/4410-w +/usr/share/ncurses4/terminfo/5 +/usr/share/ncurses4/terminfo/5/5051 +/usr/share/ncurses4/terminfo/5/5410-w +/usr/share/ncurses4/terminfo/5/5620 +/usr/share/ncurses4/terminfo/5/5630-24 +/usr/share/ncurses4/terminfo/5/5630DMD-24 +/usr/share/ncurses4/terminfo/6 +/usr/share/ncurses4/terminfo/6/630-lm +/usr/share/ncurses4/terminfo/6/630MTG-24 +/usr/share/ncurses4/terminfo/7 +/usr/share/ncurses4/terminfo/7/730MTG-24 +/usr/share/ncurses4/terminfo/7/730MTG-41 +/usr/share/ncurses4/terminfo/7/730MTG-41r +/usr/share/ncurses4/terminfo/7/730MTGr +/usr/share/ncurses4/terminfo/7/730MTGr-24 +/usr/share/ncurses4/terminfo/8 +/usr/share/ncurses4/terminfo/8/8510 +/usr/share/ncurses4/terminfo/9 +/usr/share/ncurses4/terminfo/9/955-hb +/usr/share/ncurses4/terminfo/9/955-w +/usr/share/ncurses4/terminfo/P +/usr/share/ncurses4/terminfo/P/P12 +/usr/share/ncurses4/terminfo/P/P12-M +/usr/share/ncurses4/terminfo/P/P12-M-W +/usr/share/ncurses4/terminfo/P/P12-W +/usr/share/ncurses4/terminfo/P/P14 +/usr/share/ncurses4/terminfo/P/P14-M +/usr/share/ncurses4/terminfo/P/P14-M-W +/usr/share/ncurses4/terminfo/P/P14-W +/usr/share/ncurses4/terminfo/P/P4 +/usr/share/ncurses4/terminfo/P/P5 +/usr/share/ncurses4/terminfo/P/P7 +/usr/share/ncurses4/terminfo/P/P8 +/usr/share/ncurses4/terminfo/P/P8-W +/usr/share/ncurses4/terminfo/P/P9 +/usr/share/ncurses4/terminfo/P/P9-8 +/usr/share/ncurses4/terminfo/P/P9-8-W +/usr/share/ncurses4/terminfo/P/P9-W +/usr/share/ncurses4/terminfo/X +/usr/share/ncurses4/terminfo/X/X-hpterm +/usr/share/ncurses4/terminfo/a +/usr/share/ncurses4/terminfo/a/a210 +/usr/share/ncurses4/terminfo/a/a80 +/usr/share/ncurses4/terminfo/a/a980 +/usr/share/ncurses4/terminfo/a/aa4080 +/usr/share/ncurses4/terminfo/a/aaa +/usr/share/ncurses4/terminfo/a/aaa+dec +/usr/share/ncurses4/terminfo/a/aaa+rv +/usr/share/ncurses4/terminfo/a/aaa+unk +/usr/share/ncurses4/terminfo/a/aaa-18 +/usr/share/ncurses4/terminfo/a/aaa-18-rv +/usr/share/ncurses4/terminfo/a/aaa-20 +/usr/share/ncurses4/terminfo/a/aaa-22 +/usr/share/ncurses4/terminfo/a/aaa-24 +/usr/share/ncurses4/terminfo/a/aaa-24-rv +/usr/share/ncurses4/terminfo/a/aaa-26 +/usr/share/ncurses4/terminfo/a/aaa-28 +/usr/share/ncurses4/terminfo/a/aaa-30 +/usr/share/ncurses4/terminfo/a/aaa-30-ctxt +/usr/share/ncurses4/terminfo/a/aaa-30-rv +/usr/share/ncurses4/terminfo/a/aaa-30-rv-ctxt +/usr/share/ncurses4/terminfo/a/aaa-30-s +/usr/share/ncurses4/terminfo/a/aaa-30-s-ctxt +/usr/share/ncurses4/terminfo/a/aaa-30-s-rv +/usr/share/ncurses4/terminfo/a/aaa-30-s-rv-ct +/usr/share/ncurses4/terminfo/a/aaa-36 +/usr/share/ncurses4/terminfo/a/aaa-36-rv +/usr/share/ncurses4/terminfo/a/aaa-40 +/usr/share/ncurses4/terminfo/a/aaa-40-rv +/usr/share/ncurses4/terminfo/a/aaa-48 +/usr/share/ncurses4/terminfo/a/aaa-48-rv +/usr/share/ncurses4/terminfo/a/aaa-60 +/usr/share/ncurses4/terminfo/a/aaa-60-dec-rv +/usr/share/ncurses4/terminfo/a/aaa-60-rv +/usr/share/ncurses4/terminfo/a/aaa-60-s +/usr/share/ncurses4/terminfo/a/aaa-60-s-rv +/usr/share/ncurses4/terminfo/a/aaa-ctxt +/usr/share/ncurses4/terminfo/a/aaa-db +/usr/share/ncurses4/terminfo/a/aaa-rv +/usr/share/ncurses4/terminfo/a/aaa-rv-ctxt +/usr/share/ncurses4/terminfo/a/aaa-rv-unk +/usr/share/ncurses4/terminfo/a/aaa-s +/usr/share/ncurses4/terminfo/a/aaa-s-ctxt +/usr/share/ncurses4/terminfo/a/aaa-s-rv +/usr/share/ncurses4/terminfo/a/aaa-s-rv-ctxt +/usr/share/ncurses4/terminfo/a/aaa-unk +/usr/share/ncurses4/terminfo/a/aas1901 +/usr/share/ncurses4/terminfo/a/abm80 +/usr/share/ncurses4/terminfo/a/abm85 +/usr/share/ncurses4/terminfo/a/abm85e +/usr/share/ncurses4/terminfo/a/abm85h +/usr/share/ncurses4/terminfo/a/abm85h-old +/usr/share/ncurses4/terminfo/a/act4 +/usr/share/ncurses4/terminfo/a/act5 +/usr/share/ncurses4/terminfo/a/addrinfo +/usr/share/ncurses4/terminfo/a/adds980 +/usr/share/ncurses4/terminfo/a/addsviewpoint +/usr/share/ncurses4/terminfo/a/addsvp60 +/usr/share/ncurses4/terminfo/a/adm+sgr +/usr/share/ncurses4/terminfo/a/adm1 +/usr/share/ncurses4/terminfo/a/adm11 +/usr/share/ncurses4/terminfo/a/adm1178 +/usr/share/ncurses4/terminfo/a/adm12 +/usr/share/ncurses4/terminfo/a/adm1a +/usr/share/ncurses4/terminfo/a/adm2 +/usr/share/ncurses4/terminfo/a/adm20 +/usr/share/ncurses4/terminfo/a/adm21 +/usr/share/ncurses4/terminfo/a/adm22 +/usr/share/ncurses4/terminfo/a/adm3 +/usr/share/ncurses4/terminfo/a/adm31 +/usr/share/ncurses4/terminfo/a/adm31-old +/usr/share/ncurses4/terminfo/a/adm36 +/usr/share/ncurses4/terminfo/a/adm3a +/usr/share/ncurses4/terminfo/a/adm3a+ +/usr/share/ncurses4/terminfo/a/adm42 +/usr/share/ncurses4/terminfo/a/adm42-ns +/usr/share/ncurses4/terminfo/a/adm5 +/usr/share/ncurses4/terminfo/a/aepro +/usr/share/ncurses4/terminfo/a/aixterm-m +/usr/share/ncurses4/terminfo/a/aixterm-m-old +/usr/share/ncurses4/terminfo/a/aj +/usr/share/ncurses4/terminfo/a/aj510 +/usr/share/ncurses4/terminfo/a/aj830 +/usr/share/ncurses4/terminfo/a/aj832 +/usr/share/ncurses4/terminfo/a/alt2 +/usr/share/ncurses4/terminfo/a/alt3 +/usr/share/ncurses4/terminfo/a/alt4 +/usr/share/ncurses4/terminfo/a/alt5 +/usr/share/ncurses4/terminfo/a/alt7 +/usr/share/ncurses4/terminfo/a/alt7pc +/usr/share/ncurses4/terminfo/a/alto-h19 +/usr/share/ncurses4/terminfo/a/alto-heath +/usr/share/ncurses4/terminfo/a/altoh19 +/usr/share/ncurses4/terminfo/a/altoheath +/usr/share/ncurses4/terminfo/a/altos-2 +/usr/share/ncurses4/terminfo/a/altos-3 +/usr/share/ncurses4/terminfo/a/altos-4 +/usr/share/ncurses4/terminfo/a/altos-5 +/usr/share/ncurses4/terminfo/a/altos2 +/usr/share/ncurses4/terminfo/a/altos3 +/usr/share/ncurses4/terminfo/a/altos4 +/usr/share/ncurses4/terminfo/a/altos5 +/usr/share/ncurses4/terminfo/a/altos7 +/usr/share/ncurses4/terminfo/a/altos7pc +/usr/share/ncurses4/terminfo/a/ambas +/usr/share/ncurses4/terminfo/a/ambassador +/usr/share/ncurses4/terminfo/a/amiga +/usr/share/ncurses4/terminfo/a/amiga-h +/usr/share/ncurses4/terminfo/a/amp219 +/usr/share/ncurses4/terminfo/a/amp219w +/usr/share/ncurses4/terminfo/a/ampex-219 +/usr/share/ncurses4/terminfo/a/ampex-219w +/usr/share/ncurses4/terminfo/a/ampex-232 +/usr/share/ncurses4/terminfo/a/ampex175 +/usr/share/ncurses4/terminfo/a/ampex175-b +/usr/share/ncurses4/terminfo/a/ampex210 +/usr/share/ncurses4/terminfo/a/ampex219 +/usr/share/ncurses4/terminfo/a/ampex219w +/usr/share/ncurses4/terminfo/a/ampex232 +/usr/share/ncurses4/terminfo/a/ampex232w +/usr/share/ncurses4/terminfo/a/ampex80 +/usr/share/ncurses4/terminfo/a/annarbor4080 +/usr/share/ncurses4/terminfo/a/ansi +/usr/share/ncurses4/terminfo/a/ansi-color-2-emx +/usr/share/ncurses4/terminfo/a/ansi-color-3-emx +/usr/share/ncurses4/terminfo/a/ansi-emx +/usr/share/ncurses4/terminfo/a/ansi-m +/usr/share/ncurses4/terminfo/a/ansi-mini +/usr/share/ncurses4/terminfo/a/ansi-mono +/usr/share/ncurses4/terminfo/a/ansi-nt +/usr/share/ncurses4/terminfo/a/ansi.sys +/usr/share/ncurses4/terminfo/a/ansi.sys-old +/usr/share/ncurses4/terminfo/a/ansi.sysk +/usr/share/ncurses4/terminfo/a/ansi43m +/usr/share/ncurses4/terminfo/a/ansi77 +/usr/share/ncurses4/terminfo/a/ansi80x25 +/usr/share/ncurses4/terminfo/a/ansi80x25-mono +/usr/share/ncurses4/terminfo/a/ansi80x25-raw +/usr/share/ncurses4/terminfo/a/ansi80x30 +/usr/share/ncurses4/terminfo/a/ansi80x30-mono +/usr/share/ncurses4/terminfo/a/ansi80x43 +/usr/share/ncurses4/terminfo/a/ansi80x43-mono +/usr/share/ncurses4/terminfo/a/ansi80x50 +/usr/share/ncurses4/terminfo/a/ansi80x50-mono +/usr/share/ncurses4/terminfo/a/ansi80x60 +/usr/share/ncurses4/terminfo/a/ansi80x60-mono +/usr/share/ncurses4/terminfo/a/ansil +/usr/share/ncurses4/terminfo/a/ansil-mono +/usr/share/ncurses4/terminfo/a/ansis +/usr/share/ncurses4/terminfo/a/ansis-mono +/usr/share/ncurses4/terminfo/a/ansisysk +/usr/share/ncurses4/terminfo/a/ansiw +/usr/share/ncurses4/terminfo/a/ap-vm80 +/usr/share/ncurses4/terminfo/a/apl +/usr/share/ncurses4/terminfo/a/apollo +/usr/share/ncurses4/terminfo/a/apollo_15P +/usr/share/ncurses4/terminfo/a/apollo_19L +/usr/share/ncurses4/terminfo/a/apollo_color +/usr/share/ncurses4/terminfo/a/apple-80 +/usr/share/ncurses4/terminfo/a/apple-ae +/usr/share/ncurses4/terminfo/a/apple-soroc +/usr/share/ncurses4/terminfo/a/apple-uterm +/usr/share/ncurses4/terminfo/a/apple-uterm-vb +/usr/share/ncurses4/terminfo/a/apple-videx +/usr/share/ncurses4/terminfo/a/apple-videx2 +/usr/share/ncurses4/terminfo/a/apple-videx3 +/usr/share/ncurses4/terminfo/a/apple-vm80 +/usr/share/ncurses4/terminfo/a/apple2e +/usr/share/ncurses4/terminfo/a/apple2e-p +/usr/share/ncurses4/terminfo/a/apple80p +/usr/share/ncurses4/terminfo/a/appleII +/usr/share/ncurses4/terminfo/a/appleIIc +/usr/share/ncurses4/terminfo/a/appleIIe +/usr/share/ncurses4/terminfo/a/appleIIgs +/usr/share/ncurses4/terminfo/a/at386 +/usr/share/ncurses4/terminfo/a/atari +/usr/share/ncurses4/terminfo/a/att2300 +/usr/share/ncurses4/terminfo/a/att2350 +/usr/share/ncurses4/terminfo/a/att4410 +/usr/share/ncurses4/terminfo/a/att4410-w +/usr/share/ncurses4/terminfo/a/att4410v1 +/usr/share/ncurses4/terminfo/a/att4410v1-w +/usr/share/ncurses4/terminfo/a/att4415 +/usr/share/ncurses4/terminfo/a/att4415+nl +/usr/share/ncurses4/terminfo/a/att4415-nl +/usr/share/ncurses4/terminfo/a/att4415-rv +/usr/share/ncurses4/terminfo/a/att4415-rv-nl +/usr/share/ncurses4/terminfo/a/att4415-w +/usr/share/ncurses4/terminfo/a/att4415-w-nl +/usr/share/ncurses4/terminfo/a/att4415-w-rv +/usr/share/ncurses4/terminfo/a/att4415-w-rv-n +/usr/share/ncurses4/terminfo/a/att4418 +/usr/share/ncurses4/terminfo/a/att4418-w +/usr/share/ncurses4/terminfo/a/att4420 +/usr/share/ncurses4/terminfo/a/att4424 +/usr/share/ncurses4/terminfo/a/att4424-1 +/usr/share/ncurses4/terminfo/a/att4424m +/usr/share/ncurses4/terminfo/a/att4425 +/usr/share/ncurses4/terminfo/a/att4425-nl +/usr/share/ncurses4/terminfo/a/att4425-w +/usr/share/ncurses4/terminfo/a/att4426 +/usr/share/ncurses4/terminfo/a/att500 +/usr/share/ncurses4/terminfo/a/att505 +/usr/share/ncurses4/terminfo/a/att505-24 +/usr/share/ncurses4/terminfo/a/att510a +/usr/share/ncurses4/terminfo/a/att510d +/usr/share/ncurses4/terminfo/a/att513 +/usr/share/ncurses4/terminfo/a/att5310 +/usr/share/ncurses4/terminfo/a/att5320 +/usr/share/ncurses4/terminfo/a/att5410 +/usr/share/ncurses4/terminfo/a/att5410-w +/usr/share/ncurses4/terminfo/a/att5410v1 +/usr/share/ncurses4/terminfo/a/att5410v1-w +/usr/share/ncurses4/terminfo/a/att5418 +/usr/share/ncurses4/terminfo/a/att5418-w +/usr/share/ncurses4/terminfo/a/att5420 +/usr/share/ncurses4/terminfo/a/att5420+nl +/usr/share/ncurses4/terminfo/a/att5420-nl +/usr/share/ncurses4/terminfo/a/att5420-rv +/usr/share/ncurses4/terminfo/a/att5420-rv-nl +/usr/share/ncurses4/terminfo/a/att5420-w +/usr/share/ncurses4/terminfo/a/att5420-w-nl +/usr/share/ncurses4/terminfo/a/att5420-w-rv +/usr/share/ncurses4/terminfo/a/att5420-w-rv-n +/usr/share/ncurses4/terminfo/a/att5420_2 +/usr/share/ncurses4/terminfo/a/att5420_2-w +/usr/share/ncurses4/terminfo/a/att5425 +/usr/share/ncurses4/terminfo/a/att5425-nl +/usr/share/ncurses4/terminfo/a/att5425-w +/usr/share/ncurses4/terminfo/a/att5430 +/usr/share/ncurses4/terminfo/a/att5620 +/usr/share/ncurses4/terminfo/a/att5620-1 +/usr/share/ncurses4/terminfo/a/att5620-24 +/usr/share/ncurses4/terminfo/a/att5620-34 +/usr/share/ncurses4/terminfo/a/att5620-s +/usr/share/ncurses4/terminfo/a/att605 +/usr/share/ncurses4/terminfo/a/att605-pc +/usr/share/ncurses4/terminfo/a/att605-w +/usr/share/ncurses4/terminfo/a/att610 +/usr/share/ncurses4/terminfo/a/att610-103k +/usr/share/ncurses4/terminfo/a/att610-103k-w +/usr/share/ncurses4/terminfo/a/att610-w +/usr/share/ncurses4/terminfo/a/att615 +/usr/share/ncurses4/terminfo/a/att615-103k +/usr/share/ncurses4/terminfo/a/att615-103k-w +/usr/share/ncurses4/terminfo/a/att615-w +/usr/share/ncurses4/terminfo/a/att620 +/usr/share/ncurses4/terminfo/a/att620-103k +/usr/share/ncurses4/terminfo/a/att620-103k-w +/usr/share/ncurses4/terminfo/a/att620-w +/usr/share/ncurses4/terminfo/a/att630 +/usr/share/ncurses4/terminfo/a/att630-24 +/usr/share/ncurses4/terminfo/a/att6386 +/usr/share/ncurses4/terminfo/a/att730 +/usr/share/ncurses4/terminfo/a/att730-24 +/usr/share/ncurses4/terminfo/a/att730-41 +/usr/share/ncurses4/terminfo/a/att7300 +/usr/share/ncurses4/terminfo/a/att730r +/usr/share/ncurses4/terminfo/a/att730r-24 +/usr/share/ncurses4/terminfo/a/att730r-41 +/usr/share/ncurses4/terminfo/a/avatar +/usr/share/ncurses4/terminfo/a/avatar0 +/usr/share/ncurses4/terminfo/a/avatar0+ +/usr/share/ncurses4/terminfo/a/avatar1 +/usr/share/ncurses4/terminfo/a/avt +/usr/share/ncurses4/terminfo/a/avt+s +/usr/share/ncurses4/terminfo/a/avt-ns +/usr/share/ncurses4/terminfo/a/avt-rv +/usr/share/ncurses4/terminfo/a/avt-rv-ns +/usr/share/ncurses4/terminfo/a/avt-rv-s +/usr/share/ncurses4/terminfo/a/avt-s +/usr/share/ncurses4/terminfo/a/avt-w +/usr/share/ncurses4/terminfo/a/avt-w-ns +/usr/share/ncurses4/terminfo/a/avt-w-rv +/usr/share/ncurses4/terminfo/a/avt-w-rv-ns +/usr/share/ncurses4/terminfo/a/avt-w-rv-s +/usr/share/ncurses4/terminfo/a/avt-w-s +/usr/share/ncurses4/terminfo/a/aws +/usr/share/ncurses4/terminfo/a/awsc +/usr/share/ncurses4/terminfo/b +/usr/share/ncurses4/terminfo/b/b-128 +/usr/share/ncurses4/terminfo/b/bantam +/usr/share/ncurses4/terminfo/b/basic4 +/usr/share/ncurses4/terminfo/b/basis +/usr/share/ncurses4/terminfo/b/bct510a +/usr/share/ncurses4/terminfo/b/bct510d +/usr/share/ncurses4/terminfo/b/beacon +/usr/share/ncurses4/terminfo/b/bee +/usr/share/ncurses4/terminfo/b/beehive +/usr/share/ncurses4/terminfo/b/beehive3 +/usr/share/ncurses4/terminfo/b/beehive4 +/usr/share/ncurses4/terminfo/b/beehiveIIIm +/usr/share/ncurses4/terminfo/b/beterm +/usr/share/ncurses4/terminfo/b/bg1.25 +/usr/share/ncurses4/terminfo/b/bg1.25nv +/usr/share/ncurses4/terminfo/b/bg1.25rv +/usr/share/ncurses4/terminfo/b/bg2.0 +/usr/share/ncurses4/terminfo/b/bg2.0nv +/usr/share/ncurses4/terminfo/b/bg2.0rv +/usr/share/ncurses4/terminfo/b/bg3.10 +/usr/share/ncurses4/terminfo/b/bg3.10nv +/usr/share/ncurses4/terminfo/b/bg3.10rv +/usr/share/ncurses4/terminfo/b/bh3m +/usr/share/ncurses4/terminfo/b/bh4 +/usr/share/ncurses4/terminfo/b/bitgraph +/usr/share/ncurses4/terminfo/b/blit +/usr/share/ncurses4/terminfo/b/bobcat +/usr/share/ncurses4/terminfo/b/bsdos +/usr/share/ncurses4/terminfo/b/bsdos-bold +/usr/share/ncurses4/terminfo/c +/usr/share/ncurses4/terminfo/c/c100 +/usr/share/ncurses4/terminfo/c/c100-1p +/usr/share/ncurses4/terminfo/c/c100-4p +/usr/share/ncurses4/terminfo/c/c100-rv +/usr/share/ncurses4/terminfo/c/c100-rv-4p +/usr/share/ncurses4/terminfo/c/c104 +/usr/share/ncurses4/terminfo/c/c108 +/usr/share/ncurses4/terminfo/c/c108-4p +/usr/share/ncurses4/terminfo/c/c108-8p +/usr/share/ncurses4/terminfo/c/c108-rv +/usr/share/ncurses4/terminfo/c/c108-rv-4p +/usr/share/ncurses4/terminfo/c/c108-rv-8p +/usr/share/ncurses4/terminfo/c/c108-w +/usr/share/ncurses4/terminfo/c/c108-w-8p +/usr/share/ncurses4/terminfo/c/c300 +/usr/share/ncurses4/terminfo/c/c301 +/usr/share/ncurses4/terminfo/c/c321 +/usr/share/ncurses4/terminfo/c/ca22851 +/usr/share/ncurses4/terminfo/c/cad68-2 +/usr/share/ncurses4/terminfo/c/cad68-3 +/usr/share/ncurses4/terminfo/c/cbblit +/usr/share/ncurses4/terminfo/c/cbunix +/usr/share/ncurses4/terminfo/c/cci +/usr/share/ncurses4/terminfo/c/cci1 +/usr/share/ncurses4/terminfo/c/cdc456 +/usr/share/ncurses4/terminfo/c/cdc721 +/usr/share/ncurses4/terminfo/c/cdc721-esc +/usr/share/ncurses4/terminfo/c/cdc721ll +/usr/share/ncurses4/terminfo/c/cdc752 +/usr/share/ncurses4/terminfo/c/cdc756 +/usr/share/ncurses4/terminfo/c/cg7900 +/usr/share/ncurses4/terminfo/c/cgc2 +/usr/share/ncurses4/terminfo/c/cgc3 +/usr/share/ncurses4/terminfo/c/chromatics +/usr/share/ncurses4/terminfo/c/ci8510 +/usr/share/ncurses4/terminfo/c/cit-80 +/usr/share/ncurses4/terminfo/c/cit101 +/usr/share/ncurses4/terminfo/c/cit101e +/usr/share/ncurses4/terminfo/c/cit101e-132 +/usr/share/ncurses4/terminfo/c/cit101e-n +/usr/share/ncurses4/terminfo/c/cit101e-n132 +/usr/share/ncurses4/terminfo/c/cit101e-rv +/usr/share/ncurses4/terminfo/c/cit500 +/usr/share/ncurses4/terminfo/c/cit80 +/usr/share/ncurses4/terminfo/c/citc +/usr/share/ncurses4/terminfo/c/citoh +/usr/share/ncurses4/terminfo/c/citoh-6lpi +/usr/share/ncurses4/terminfo/c/citoh-8lpi +/usr/share/ncurses4/terminfo/c/citoh-comp +/usr/share/ncurses4/terminfo/c/citoh-elite +/usr/share/ncurses4/terminfo/c/citoh-pica +/usr/share/ncurses4/terminfo/c/citoh-prop +/usr/share/ncurses4/terminfo/c/citoh-ps +/usr/share/ncurses4/terminfo/c/coco3 +/usr/share/ncurses4/terminfo/c/coherent +/usr/share/ncurses4/terminfo/c/color_xterm +/usr/share/ncurses4/terminfo/c/colorscan +/usr/share/ncurses4/terminfo/c/commodore +/usr/share/ncurses4/terminfo/c/concept +/usr/share/ncurses4/terminfo/c/concept-avt +/usr/share/ncurses4/terminfo/c/concept100 +/usr/share/ncurses4/terminfo/c/concept100-rv +/usr/share/ncurses4/terminfo/c/concept108 +/usr/share/ncurses4/terminfo/c/concept108-4p +/usr/share/ncurses4/terminfo/c/concept108-8p +/usr/share/ncurses4/terminfo/c/concept108-w-8 +/usr/share/ncurses4/terminfo/c/concept108-w8p +/usr/share/ncurses4/terminfo/c/concept108rv4p +/usr/share/ncurses4/terminfo/c/cons25 +/usr/share/ncurses4/terminfo/c/cons25-iso-m +/usr/share/ncurses4/terminfo/c/cons25-iso8859 +/usr/share/ncurses4/terminfo/c/cons25-koi8-r +/usr/share/ncurses4/terminfo/c/cons25-koi8r-m +/usr/share/ncurses4/terminfo/c/cons25-m +/usr/share/ncurses4/terminfo/c/cons25l1 +/usr/share/ncurses4/terminfo/c/cons25l1-m +/usr/share/ncurses4/terminfo/c/cons25r +/usr/share/ncurses4/terminfo/c/cons25r-m +/usr/share/ncurses4/terminfo/c/cons25w +/usr/share/ncurses4/terminfo/c/cons30 +/usr/share/ncurses4/terminfo/c/cons30-m +/usr/share/ncurses4/terminfo/c/cons43 +/usr/share/ncurses4/terminfo/c/cons43-m +/usr/share/ncurses4/terminfo/c/cons50 +/usr/share/ncurses4/terminfo/c/cons50-iso-m +/usr/share/ncurses4/terminfo/c/cons50-iso8859 +/usr/share/ncurses4/terminfo/c/cons50-koi8r +/usr/share/ncurses4/terminfo/c/cons50-koi8r-m +/usr/share/ncurses4/terminfo/c/cons50-m +/usr/share/ncurses4/terminfo/c/cons50l1 +/usr/share/ncurses4/terminfo/c/cons50l1-m +/usr/share/ncurses4/terminfo/c/cons50r +/usr/share/ncurses4/terminfo/c/cons50r-m +/usr/share/ncurses4/terminfo/c/cons60 +/usr/share/ncurses4/terminfo/c/cons60-iso +/usr/share/ncurses4/terminfo/c/cons60-iso-m +/usr/share/ncurses4/terminfo/c/cons60-koi8r +/usr/share/ncurses4/terminfo/c/cons60-koi8r-m +/usr/share/ncurses4/terminfo/c/cons60-m +/usr/share/ncurses4/terminfo/c/cons60l1 +/usr/share/ncurses4/terminfo/c/cons60l1-m +/usr/share/ncurses4/terminfo/c/cons60r +/usr/share/ncurses4/terminfo/c/cons60r-m +/usr/share/ncurses4/terminfo/c/contel300 +/usr/share/ncurses4/terminfo/c/contel301 +/usr/share/ncurses4/terminfo/c/contel320 +/usr/share/ncurses4/terminfo/c/contel321 +/usr/share/ncurses4/terminfo/c/cops +/usr/share/ncurses4/terminfo/c/cops-10 +/usr/share/ncurses4/terminfo/c/cops10 +/usr/share/ncurses4/terminfo/c/cs10 +/usr/share/ncurses4/terminfo/c/cs10-w +/usr/share/ncurses4/terminfo/c/ct82 +/usr/share/ncurses4/terminfo/c/ct8500 +/usr/share/ncurses4/terminfo/c/ctrm +/usr/share/ncurses4/terminfo/c/cx +/usr/share/ncurses4/terminfo/c/cx100 +/usr/share/ncurses4/terminfo/c/cyb110 +/usr/share/ncurses4/terminfo/c/cyb83 +/usr/share/ncurses4/terminfo/d +/usr/share/ncurses4/terminfo/d/d132 +/usr/share/ncurses4/terminfo/d/d80 +/usr/share/ncurses4/terminfo/d/d800 +/usr/share/ncurses4/terminfo/d/datagraphix +/usr/share/ncurses4/terminfo/d/datamedia2500 +/usr/share/ncurses4/terminfo/d/datapoint +/usr/share/ncurses4/terminfo/d/dataspeed40 +/usr/share/ncurses4/terminfo/d/dd5000 +/usr/share/ncurses4/terminfo/d/ddr +/usr/share/ncurses4/terminfo/d/ddr3180 +/usr/share/ncurses4/terminfo/d/dec-vt100 +/usr/share/ncurses4/terminfo/d/dec-vt220 +/usr/share/ncurses4/terminfo/d/dec-vt330 +/usr/share/ncurses4/terminfo/d/dec-vt340 +/usr/share/ncurses4/terminfo/d/dec-vt400 +/usr/share/ncurses4/terminfo/d/decpro +/usr/share/ncurses4/terminfo/d/decwriter +/usr/share/ncurses4/terminfo/d/delta +/usr/share/ncurses4/terminfo/d/dg-ansi +/usr/share/ncurses4/terminfo/d/dg100 +/usr/share/ncurses4/terminfo/d/dg200 +/usr/share/ncurses4/terminfo/d/dg210 +/usr/share/ncurses4/terminfo/d/dg211 +/usr/share/ncurses4/terminfo/d/dg450 +/usr/share/ncurses4/terminfo/d/dg460-ansi +/usr/share/ncurses4/terminfo/d/dg6053 +/usr/share/ncurses4/terminfo/d/dg6134 +/usr/share/ncurses4/terminfo/d/diablo +/usr/share/ncurses4/terminfo/d/diablo-lm +/usr/share/ncurses4/terminfo/d/diablo1620 +/usr/share/ncurses4/terminfo/d/diablo1620-m8 +/usr/share/ncurses4/terminfo/d/diablo1640 +/usr/share/ncurses4/terminfo/d/diablo1640-lm +/usr/share/ncurses4/terminfo/d/diablo1640-m8 +/usr/share/ncurses4/terminfo/d/diablo1720 +/usr/share/ncurses4/terminfo/d/diablo1730 +/usr/share/ncurses4/terminfo/d/diablo1740 +/usr/share/ncurses4/terminfo/d/diablo1740-lm +/usr/share/ncurses4/terminfo/d/diablo450 +/usr/share/ncurses4/terminfo/d/diablo630 +/usr/share/ncurses4/terminfo/d/dialogue +/usr/share/ncurses4/terminfo/d/dialogue80 +/usr/share/ncurses4/terminfo/d/digilog +/usr/share/ncurses4/terminfo/d/dku7003 +/usr/share/ncurses4/terminfo/d/dku7003-dumb +/usr/share/ncurses4/terminfo/d/dm1520 +/usr/share/ncurses4/terminfo/d/dm1521 +/usr/share/ncurses4/terminfo/d/dm2500 +/usr/share/ncurses4/terminfo/d/dm3025 +/usr/share/ncurses4/terminfo/d/dm3045 +/usr/share/ncurses4/terminfo/d/dm80 +/usr/share/ncurses4/terminfo/d/dm80w +/usr/share/ncurses4/terminfo/d/dmchat +/usr/share/ncurses4/terminfo/d/dmd +/usr/share/ncurses4/terminfo/d/dmd-24 +/usr/share/ncurses4/terminfo/d/dmd-34 +/usr/share/ncurses4/terminfo/d/dmd1 +/usr/share/ncurses4/terminfo/d/dmdt80 +/usr/share/ncurses4/terminfo/d/dmdt80w +/usr/share/ncurses4/terminfo/d/dmterm +/usr/share/ncurses4/terminfo/d/dp3360 +/usr/share/ncurses4/terminfo/d/dp8242 +/usr/share/ncurses4/terminfo/d/ds40 +/usr/share/ncurses4/terminfo/d/ds40-2 +/usr/share/ncurses4/terminfo/d/dt-100 +/usr/share/ncurses4/terminfo/d/dt-100w +/usr/share/ncurses4/terminfo/d/dt100 +/usr/share/ncurses4/terminfo/d/dt100w +/usr/share/ncurses4/terminfo/d/dt110 +/usr/share/ncurses4/terminfo/d/dt80 +/usr/share/ncurses4/terminfo/d/dt80-sas +/usr/share/ncurses4/terminfo/d/dt80w +/usr/share/ncurses4/terminfo/d/dtc300s +/usr/share/ncurses4/terminfo/d/dtc382 +/usr/share/ncurses4/terminfo/d/dtterm +/usr/share/ncurses4/terminfo/d/dumb +/usr/share/ncurses4/terminfo/d/dw +/usr/share/ncurses4/terminfo/d/dw1 +/usr/share/ncurses4/terminfo/d/dw2 +/usr/share/ncurses4/terminfo/d/dw3 +/usr/share/ncurses4/terminfo/d/dw4 +/usr/share/ncurses4/terminfo/d/dwk +/usr/share/ncurses4/terminfo/d/dwk-vt +/usr/share/ncurses4/terminfo/e +/usr/share/ncurses4/terminfo/e/ecma+color +/usr/share/ncurses4/terminfo/e/ecma+sgr +/usr/share/ncurses4/terminfo/e/emots +/usr/share/ncurses4/terminfo/e/emu +/usr/share/ncurses4/terminfo/e/env230 +/usr/share/ncurses4/terminfo/e/envision230 +/usr/share/ncurses4/terminfo/e/ep40 +/usr/share/ncurses4/terminfo/e/ep4000 +/usr/share/ncurses4/terminfo/e/ep4080 +/usr/share/ncurses4/terminfo/e/ep48 +/usr/share/ncurses4/terminfo/e/ergo4000 +/usr/share/ncurses4/terminfo/e/esprit +/usr/share/ncurses4/terminfo/e/esprit-am +/usr/share/ncurses4/terminfo/e/eterm +/usr/share/ncurses4/terminfo/e/ex155 +/usr/share/ncurses4/terminfo/e/excel62 +/usr/share/ncurses4/terminfo/e/excel62-rv +/usr/share/ncurses4/terminfo/e/excel62-w +/usr/share/ncurses4/terminfo/e/excel64 +/usr/share/ncurses4/terminfo/e/excel64-rv +/usr/share/ncurses4/terminfo/e/excel64-w +/usr/share/ncurses4/terminfo/e/exec80 +/usr/share/ncurses4/terminfo/f +/usr/share/ncurses4/terminfo/f/f100 +/usr/share/ncurses4/terminfo/f/f100-rv +/usr/share/ncurses4/terminfo/f/f110 +/usr/share/ncurses4/terminfo/f/f110-14 +/usr/share/ncurses4/terminfo/f/f110-14w +/usr/share/ncurses4/terminfo/f/f110-w +/usr/share/ncurses4/terminfo/f/f1720 +/usr/share/ncurses4/terminfo/f/f1720a +/usr/share/ncurses4/terminfo/f/f200 +/usr/share/ncurses4/terminfo/f/f200-w +/usr/share/ncurses4/terminfo/f/f200vi +/usr/share/ncurses4/terminfo/f/f200vi-w +/usr/share/ncurses4/terminfo/f/falco +/usr/share/ncurses4/terminfo/f/falco-p +/usr/share/ncurses4/terminfo/f/fenix +/usr/share/ncurses4/terminfo/f/fenixw +/usr/share/ncurses4/terminfo/f/fixterm +/usr/share/ncurses4/terminfo/f/fortune +/usr/share/ncurses4/terminfo/f/fos +/usr/share/ncurses4/terminfo/f/fox +/usr/share/ncurses4/terminfo/f/freedom +/usr/share/ncurses4/terminfo/f/freedom-rv +/usr/share/ncurses4/terminfo/f/freedom100 +/usr/share/ncurses4/terminfo/f/freedom110 +/usr/share/ncurses4/terminfo/f/freedom200 +/usr/share/ncurses4/terminfo/g +/usr/share/ncurses4/terminfo/g/gator +/usr/share/ncurses4/terminfo/g/gator-52 +/usr/share/ncurses4/terminfo/g/gator-52t +/usr/share/ncurses4/terminfo/g/gator-t +/usr/share/ncurses4/terminfo/g/gigi +/usr/share/ncurses4/terminfo/g/glasstty +/usr/share/ncurses4/terminfo/g/go-225 +/usr/share/ncurses4/terminfo/g/go140 +/usr/share/ncurses4/terminfo/g/go140w +/usr/share/ncurses4/terminfo/g/go225 +/usr/share/ncurses4/terminfo/g/graphos +/usr/share/ncurses4/terminfo/g/graphos-30 +/usr/share/ncurses4/terminfo/g/gs5430 +/usr/share/ncurses4/terminfo/g/gs5430-22 +/usr/share/ncurses4/terminfo/g/gs5430-24 +/usr/share/ncurses4/terminfo/g/gs6300 +/usr/share/ncurses4/terminfo/g/gsi +/usr/share/ncurses4/terminfo/g/gt100 +/usr/share/ncurses4/terminfo/g/gt100a +/usr/share/ncurses4/terminfo/g/gt40 +/usr/share/ncurses4/terminfo/g/gt42 +/usr/share/ncurses4/terminfo/g/guru +/usr/share/ncurses4/terminfo/g/guru+rv +/usr/share/ncurses4/terminfo/g/guru+s +/usr/share/ncurses4/terminfo/g/guru+unk +/usr/share/ncurses4/terminfo/g/guru-24 +/usr/share/ncurses4/terminfo/g/guru-33 +/usr/share/ncurses4/terminfo/g/guru-33-rv +/usr/share/ncurses4/terminfo/g/guru-33-s +/usr/share/ncurses4/terminfo/g/guru-44 +/usr/share/ncurses4/terminfo/g/guru-44-s +/usr/share/ncurses4/terminfo/g/guru-76 +/usr/share/ncurses4/terminfo/g/guru-76-lp +/usr/share/ncurses4/terminfo/g/guru-76-s +/usr/share/ncurses4/terminfo/g/guru-76-w +/usr/share/ncurses4/terminfo/g/guru-76-w-s +/usr/share/ncurses4/terminfo/g/guru-76-wm +/usr/share/ncurses4/terminfo/g/guru-lp +/usr/share/ncurses4/terminfo/g/guru-nctxt +/usr/share/ncurses4/terminfo/g/guru-rv +/usr/share/ncurses4/terminfo/g/guru-s +/usr/share/ncurses4/terminfo/h +/usr/share/ncurses4/terminfo/h/h-100 +/usr/share/ncurses4/terminfo/h/h-100bw +/usr/share/ncurses4/terminfo/h/h100 +/usr/share/ncurses4/terminfo/h/h100bw +/usr/share/ncurses4/terminfo/h/h19 +/usr/share/ncurses4/terminfo/h/h19-a +/usr/share/ncurses4/terminfo/h/h19-b +/usr/share/ncurses4/terminfo/h/h19-bs +/usr/share/ncurses4/terminfo/h/h19-g +/usr/share/ncurses4/terminfo/h/h19-smul +/usr/share/ncurses4/terminfo/h/h19-u +/usr/share/ncurses4/terminfo/h/h19-us +/usr/share/ncurses4/terminfo/h/h19a +/usr/share/ncurses4/terminfo/h/h19g +/usr/share/ncurses4/terminfo/h/h19k +/usr/share/ncurses4/terminfo/h/h19kermit +/usr/share/ncurses4/terminfo/h/h19us +/usr/share/ncurses4/terminfo/h/h29a-kc-bc +/usr/share/ncurses4/terminfo/h/h29a-kc-uc +/usr/share/ncurses4/terminfo/h/h29a-nkc-bc +/usr/share/ncurses4/terminfo/h/h29a-nkc-uc +/usr/share/ncurses4/terminfo/h/h80 +/usr/share/ncurses4/terminfo/h/ha8675 +/usr/share/ncurses4/terminfo/h/ha8686 +/usr/share/ncurses4/terminfo/h/hazel +/usr/share/ncurses4/terminfo/h/hds200 +/usr/share/ncurses4/terminfo/h/he80 +/usr/share/ncurses4/terminfo/h/heath +/usr/share/ncurses4/terminfo/h/heath-19 +/usr/share/ncurses4/terminfo/h/heath-ansi +/usr/share/ncurses4/terminfo/h/heathkit +/usr/share/ncurses4/terminfo/h/heathkit-a +/usr/share/ncurses4/terminfo/h/hft +/usr/share/ncurses4/terminfo/h/hft-c +/usr/share/ncurses4/terminfo/h/hirez100 +/usr/share/ncurses4/terminfo/h/hirez100-w +/usr/share/ncurses4/terminfo/h/hmod1 +/usr/share/ncurses4/terminfo/h/hp +/usr/share/ncurses4/terminfo/h/hp+arrows +/usr/share/ncurses4/terminfo/h/hp+color +/usr/share/ncurses4/terminfo/h/hp+labels +/usr/share/ncurses4/terminfo/h/hp+pfk+arrows +/usr/share/ncurses4/terminfo/h/hp+pfk+cr +/usr/share/ncurses4/terminfo/h/hp+pfk-cr +/usr/share/ncurses4/terminfo/h/hp+printer +/usr/share/ncurses4/terminfo/h/hp110 +/usr/share/ncurses4/terminfo/h/hp150 +/usr/share/ncurses4/terminfo/h/hp2 +/usr/share/ncurses4/terminfo/h/hp236 +/usr/share/ncurses4/terminfo/h/hp2382 +/usr/share/ncurses4/terminfo/h/hp2382a +/usr/share/ncurses4/terminfo/h/hp2392 +/usr/share/ncurses4/terminfo/h/hp2397 +/usr/share/ncurses4/terminfo/h/hp2397a +/usr/share/ncurses4/terminfo/h/hp2621 +/usr/share/ncurses4/terminfo/h/hp2621-48 +/usr/share/ncurses4/terminfo/h/hp2621-a +/usr/share/ncurses4/terminfo/h/hp2621-ba +/usr/share/ncurses4/terminfo/h/hp2621-fl +/usr/share/ncurses4/terminfo/h/hp2621-k45 +/usr/share/ncurses4/terminfo/h/hp2621-nl +/usr/share/ncurses4/terminfo/h/hp2621-nt +/usr/share/ncurses4/terminfo/h/hp2621-wl +/usr/share/ncurses4/terminfo/h/hp2621A +/usr/share/ncurses4/terminfo/h/hp2621a +/usr/share/ncurses4/terminfo/h/hp2621a-a +/usr/share/ncurses4/terminfo/h/hp2621b +/usr/share/ncurses4/terminfo/h/hp2621b-kx +/usr/share/ncurses4/terminfo/h/hp2621b-kx-p +/usr/share/ncurses4/terminfo/h/hp2621b-p +/usr/share/ncurses4/terminfo/h/hp2621k45 +/usr/share/ncurses4/terminfo/h/hp2621p +/usr/share/ncurses4/terminfo/h/hp2621p-a +/usr/share/ncurses4/terminfo/h/hp2622 +/usr/share/ncurses4/terminfo/h/hp2622a +/usr/share/ncurses4/terminfo/h/hp2623 +/usr/share/ncurses4/terminfo/h/hp2623a +/usr/share/ncurses4/terminfo/h/hp2624 +/usr/share/ncurses4/terminfo/h/hp2624-10p +/usr/share/ncurses4/terminfo/h/hp2624a +/usr/share/ncurses4/terminfo/h/hp2624a-10p +/usr/share/ncurses4/terminfo/h/hp2624b +/usr/share/ncurses4/terminfo/h/hp2624b-10p +/usr/share/ncurses4/terminfo/h/hp2624b-10p-p +/usr/share/ncurses4/terminfo/h/hp2624b-4p +/usr/share/ncurses4/terminfo/h/hp2624b-4p-p +/usr/share/ncurses4/terminfo/h/hp2624b-p +/usr/share/ncurses4/terminfo/h/hp2626 +/usr/share/ncurses4/terminfo/h/hp2626-12 +/usr/share/ncurses4/terminfo/h/hp2626-12-s +/usr/share/ncurses4/terminfo/h/hp2626-12x40 +/usr/share/ncurses4/terminfo/h/hp2626-ns +/usr/share/ncurses4/terminfo/h/hp2626-s +/usr/share/ncurses4/terminfo/h/hp2626-x40 +/usr/share/ncurses4/terminfo/h/hp2626a +/usr/share/ncurses4/terminfo/h/hp2626p +/usr/share/ncurses4/terminfo/h/hp2627a +/usr/share/ncurses4/terminfo/h/hp2627a-rev +/usr/share/ncurses4/terminfo/h/hp2627c +/usr/share/ncurses4/terminfo/h/hp262x +/usr/share/ncurses4/terminfo/h/hp2640a +/usr/share/ncurses4/terminfo/h/hp2640b +/usr/share/ncurses4/terminfo/h/hp2641a +/usr/share/ncurses4/terminfo/h/hp2644a +/usr/share/ncurses4/terminfo/h/hp2645 +/usr/share/ncurses4/terminfo/h/hp2645a +/usr/share/ncurses4/terminfo/h/hp2647a +/usr/share/ncurses4/terminfo/h/hp2648 +/usr/share/ncurses4/terminfo/h/hp2648a +/usr/share/ncurses4/terminfo/h/hp300h +/usr/share/ncurses4/terminfo/h/hp45 +/usr/share/ncurses4/terminfo/h/hp700 +/usr/share/ncurses4/terminfo/h/hp700-wy +/usr/share/ncurses4/terminfo/h/hp70092 +/usr/share/ncurses4/terminfo/h/hp70092A +/usr/share/ncurses4/terminfo/h/hp70092a +/usr/share/ncurses4/terminfo/h/hp9837 +/usr/share/ncurses4/terminfo/h/hp9845 +/usr/share/ncurses4/terminfo/h/hp98550 +/usr/share/ncurses4/terminfo/h/hp98550a +/usr/share/ncurses4/terminfo/h/hp98720 +/usr/share/ncurses4/terminfo/h/hp98721 +/usr/share/ncurses4/terminfo/h/hpansi +/usr/share/ncurses4/terminfo/h/hpex +/usr/share/ncurses4/terminfo/h/hpex2 +/usr/share/ncurses4/terminfo/h/hpgeneric +/usr/share/ncurses4/terminfo/h/hpsub +/usr/share/ncurses4/terminfo/h/hpterm +/usr/share/ncurses4/terminfo/h/htx11 +/usr/share/ncurses4/terminfo/h/hz1000 +/usr/share/ncurses4/terminfo/h/hz1420 +/usr/share/ncurses4/terminfo/h/hz1500 +/usr/share/ncurses4/terminfo/h/hz1510 +/usr/share/ncurses4/terminfo/h/hz1520 +/usr/share/ncurses4/terminfo/h/hz1520-noesc +/usr/share/ncurses4/terminfo/h/hz1552 +/usr/share/ncurses4/terminfo/h/hz1552-rv +/usr/share/ncurses4/terminfo/h/hz2000 +/usr/share/ncurses4/terminfo/i +/usr/share/ncurses4/terminfo/i/i100 +/usr/share/ncurses4/terminfo/i/i3101 +/usr/share/ncurses4/terminfo/i/i3151 +/usr/share/ncurses4/terminfo/i/i3164 +/usr/share/ncurses4/terminfo/i/i400 +/usr/share/ncurses4/terminfo/i/ibcs2 +/usr/share/ncurses4/terminfo/i/ibm-apl +/usr/share/ncurses4/terminfo/i/ibm-pc +/usr/share/ncurses4/terminfo/i/ibm-system1 +/usr/share/ncurses4/terminfo/i/ibm3101 +/usr/share/ncurses4/terminfo/i/ibm3151 +/usr/share/ncurses4/terminfo/i/ibm3161 +/usr/share/ncurses4/terminfo/i/ibm3163 +/usr/share/ncurses4/terminfo/i/ibm3164 +/usr/share/ncurses4/terminfo/i/ibm327x +/usr/share/ncurses4/terminfo/i/ibm5051 +/usr/share/ncurses4/terminfo/i/ibm5081 +/usr/share/ncurses4/terminfo/i/ibm5081-c +/usr/share/ncurses4/terminfo/i/ibm5151 +/usr/share/ncurses4/terminfo/i/ibm5154 +/usr/share/ncurses4/terminfo/i/ibm5154-c +/usr/share/ncurses4/terminfo/i/ibm6153 +/usr/share/ncurses4/terminfo/i/ibm6154 +/usr/share/ncurses4/terminfo/i/ibm6154-c +/usr/share/ncurses4/terminfo/i/ibm6155 +/usr/share/ncurses4/terminfo/i/ibm8512 +/usr/share/ncurses4/terminfo/i/ibm8513 +/usr/share/ncurses4/terminfo/i/ibm8514 +/usr/share/ncurses4/terminfo/i/ibm8514-c +/usr/share/ncurses4/terminfo/i/ibmaed +/usr/share/ncurses4/terminfo/i/ibmapa16 +/usr/share/ncurses4/terminfo/i/ibmapa8 +/usr/share/ncurses4/terminfo/i/ibmapa8c +/usr/share/ncurses4/terminfo/i/ibmapa8c-c +/usr/share/ncurses4/terminfo/i/ibmega +/usr/share/ncurses4/terminfo/i/ibmega-c +/usr/share/ncurses4/terminfo/i/ibmmono +/usr/share/ncurses4/terminfo/i/ibmmpel +/usr/share/ncurses4/terminfo/i/ibmmpel-c +/usr/share/ncurses4/terminfo/i/ibmpc +/usr/share/ncurses4/terminfo/i/ibmpc3 +/usr/share/ncurses4/terminfo/i/ibmpc3r +/usr/share/ncurses4/terminfo/i/ibmpc3r-mono +/usr/share/ncurses4/terminfo/i/ibmpcx +/usr/share/ncurses4/terminfo/i/ibmvga +/usr/share/ncurses4/terminfo/i/ibmvga-c +/usr/share/ncurses4/terminfo/i/ibmx +/usr/share/ncurses4/terminfo/i/ifmr +/usr/share/ncurses4/terminfo/i/ims-ansi +/usr/share/ncurses4/terminfo/i/ims950 +/usr/share/ncurses4/terminfo/i/ims950-b +/usr/share/ncurses4/terminfo/i/ims950-rv +/usr/share/ncurses4/terminfo/i/infoton +/usr/share/ncurses4/terminfo/i/intertec +/usr/share/ncurses4/terminfo/i/intertube +/usr/share/ncurses4/terminfo/i/intertube2 +/usr/share/ncurses4/terminfo/i/intext +/usr/share/ncurses4/terminfo/i/intext2 +/usr/share/ncurses4/terminfo/i/intextii +/usr/share/ncurses4/terminfo/i/ips +/usr/share/ncurses4/terminfo/i/ipsi +/usr/share/ncurses4/terminfo/i/iq120 +/usr/share/ncurses4/terminfo/i/iq140 +/usr/share/ncurses4/terminfo/i/iris-ansi +/usr/share/ncurses4/terminfo/i/iris-ansi-ap +/usr/share/ncurses4/terminfo/i/iris-color +/usr/share/ncurses4/terminfo/i/iris40 +/usr/share/ncurses4/terminfo/j +/usr/share/ncurses4/terminfo/j/jaixterm-m +/usr/share/ncurses4/terminfo/j/jerq +/usr/share/ncurses4/terminfo/k +/usr/share/ncurses4/terminfo/k/k45 +/usr/share/ncurses4/terminfo/k/kaypro +/usr/share/ncurses4/terminfo/k/kaypro2 +/usr/share/ncurses4/terminfo/k/kermit +/usr/share/ncurses4/terminfo/k/kermit-am +/usr/share/ncurses4/terminfo/k/klone+acs +/usr/share/ncurses4/terminfo/k/klone+color +/usr/share/ncurses4/terminfo/k/klone+koi8acs +/usr/share/ncurses4/terminfo/k/klone+sgr +/usr/share/ncurses4/terminfo/k/klone+sgr-dumb +/usr/share/ncurses4/terminfo/k/kt7 +/usr/share/ncurses4/terminfo/k/kt7ix +/usr/share/ncurses4/terminfo/k/kterm +/usr/share/ncurses4/terminfo/k/ktm +/usr/share/ncurses4/terminfo/l +/usr/share/ncurses4/terminfo/l/la120 +/usr/share/ncurses4/terminfo/l/layer +/usr/share/ncurses4/terminfo/l/linux +/usr/share/ncurses4/terminfo/l/linux-c +/usr/share/ncurses4/terminfo/l/linux-c-nc +/usr/share/ncurses4/terminfo/l/linux-koi8 +/usr/share/ncurses4/terminfo/l/linux-koi8r +/usr/share/ncurses4/terminfo/l/linux-m +/usr/share/ncurses4/terminfo/l/linux-nic +/usr/share/ncurses4/terminfo/l/lisa +/usr/share/ncurses4/terminfo/l/lisaterm +/usr/share/ncurses4/terminfo/l/lisaterm-w +/usr/share/ncurses4/terminfo/l/liswb +/usr/share/ncurses4/terminfo/l/ln03 +/usr/share/ncurses4/terminfo/l/ln03-w +/usr/share/ncurses4/terminfo/l/lpr +/usr/share/ncurses4/terminfo/l/luna +/usr/share/ncurses4/terminfo/l/luna68k +/usr/share/ncurses4/terminfo/m +/usr/share/ncurses4/terminfo/m/m2-nam +/usr/share/ncurses4/terminfo/m/mac +/usr/share/ncurses4/terminfo/m/mac-w +/usr/share/ncurses4/terminfo/m/macintosh +/usr/share/ncurses4/terminfo/m/macterminal-w +/usr/share/ncurses4/terminfo/m/mai +/usr/share/ncurses4/terminfo/m/masscomp +/usr/share/ncurses4/terminfo/m/masscomp1 +/usr/share/ncurses4/terminfo/m/masscomp2 +/usr/share/ncurses4/terminfo/m/mdl110 +/usr/share/ncurses4/terminfo/m/megatek +/usr/share/ncurses4/terminfo/m/memhp +/usr/share/ncurses4/terminfo/m/mgr +/usr/share/ncurses4/terminfo/m/mgr-linux +/usr/share/ncurses4/terminfo/m/mgr-sun +/usr/share/ncurses4/terminfo/m/microb +/usr/share/ncurses4/terminfo/m/microbee +/usr/share/ncurses4/terminfo/m/microterm +/usr/share/ncurses4/terminfo/m/microterm5 +/usr/share/ncurses4/terminfo/m/mime +/usr/share/ncurses4/terminfo/m/mime-3ax +/usr/share/ncurses4/terminfo/m/mime-fb +/usr/share/ncurses4/terminfo/m/mime-hb +/usr/share/ncurses4/terminfo/m/mime1 +/usr/share/ncurses4/terminfo/m/mime2 +/usr/share/ncurses4/terminfo/m/mime2a +/usr/share/ncurses4/terminfo/m/mime2a-s +/usr/share/ncurses4/terminfo/m/mime2a-v +/usr/share/ncurses4/terminfo/m/mime314 +/usr/share/ncurses4/terminfo/m/mime340 +/usr/share/ncurses4/terminfo/m/mime3a +/usr/share/ncurses4/terminfo/m/mime3ax +/usr/share/ncurses4/terminfo/m/mimei +/usr/share/ncurses4/terminfo/m/mimeii +/usr/share/ncurses4/terminfo/m/minitel +/usr/share/ncurses4/terminfo/m/minitel-2 +/usr/share/ncurses4/terminfo/m/minitel-2-nam +/usr/share/ncurses4/terminfo/m/minix +/usr/share/ncurses4/terminfo/m/minix-old +/usr/share/ncurses4/terminfo/m/minix-old-am +/usr/share/ncurses4/terminfo/m/mm314 +/usr/share/ncurses4/terminfo/m/mm340 +/usr/share/ncurses4/terminfo/m/mod +/usr/share/ncurses4/terminfo/m/mod24 +/usr/share/ncurses4/terminfo/m/modgraph +/usr/share/ncurses4/terminfo/m/modgraph2 +/usr/share/ncurses4/terminfo/m/modgraph48 +/usr/share/ncurses4/terminfo/m/mono-emx +/usr/share/ncurses4/terminfo/m/msk227 +/usr/share/ncurses4/terminfo/m/msk22714 +/usr/share/ncurses4/terminfo/m/msk227am +/usr/share/ncurses4/terminfo/m/mskermit227 +/usr/share/ncurses4/terminfo/m/mskermit22714 +/usr/share/ncurses4/terminfo/m/mskermit227am +/usr/share/ncurses4/terminfo/m/mt-70 +/usr/share/ncurses4/terminfo/m/mt4520-rv +/usr/share/ncurses4/terminfo/m/mt70 +/usr/share/ncurses4/terminfo/n +/usr/share/ncurses4/terminfo/n/nansi.sys +/usr/share/ncurses4/terminfo/n/nansi.sysk +/usr/share/ncurses4/terminfo/n/nansisys +/usr/share/ncurses4/terminfo/n/nansisysk +/usr/share/ncurses4/terminfo/n/ncr7900 +/usr/share/ncurses4/terminfo/n/ncr7900i +/usr/share/ncurses4/terminfo/n/ncr7900iv +/usr/share/ncurses4/terminfo/n/ncr7901 +/usr/share/ncurses4/terminfo/n/nec +/usr/share/ncurses4/terminfo/n/nec5520 +/usr/share/ncurses4/terminfo/n/newhp +/usr/share/ncurses4/terminfo/n/newhpkeyboard +/usr/share/ncurses4/terminfo/n/news +/usr/share/ncurses4/terminfo/n/news-29 +/usr/share/ncurses4/terminfo/n/news-29-euc +/usr/share/ncurses4/terminfo/n/news-29-sjis +/usr/share/ncurses4/terminfo/n/news-33 +/usr/share/ncurses4/terminfo/n/news-33-euc +/usr/share/ncurses4/terminfo/n/news-33-sjis +/usr/share/ncurses4/terminfo/n/news-42 +/usr/share/ncurses4/terminfo/n/news-42-euc +/usr/share/ncurses4/terminfo/n/news-42-sjis +/usr/share/ncurses4/terminfo/n/news-a +/usr/share/ncurses4/terminfo/n/news-o +/usr/share/ncurses4/terminfo/n/news-old-unk +/usr/share/ncurses4/terminfo/n/news-unk +/usr/share/ncurses4/terminfo/n/news28 +/usr/share/ncurses4/terminfo/n/news28-a +/usr/share/ncurses4/terminfo/n/news29 +/usr/share/ncurses4/terminfo/n/news31 +/usr/share/ncurses4/terminfo/n/news31-a +/usr/share/ncurses4/terminfo/n/news31-o +/usr/share/ncurses4/terminfo/n/news33 +/usr/share/ncurses4/terminfo/n/news40 +/usr/share/ncurses4/terminfo/n/news40-a +/usr/share/ncurses4/terminfo/n/news40-o +/usr/share/ncurses4/terminfo/n/news42 +/usr/share/ncurses4/terminfo/n/newscbm +/usr/share/ncurses4/terminfo/n/newscbm-a +/usr/share/ncurses4/terminfo/n/newscbm-o +/usr/share/ncurses4/terminfo/n/newscbm33 +/usr/share/ncurses4/terminfo/n/next +/usr/share/ncurses4/terminfo/n/nextshell +/usr/share/ncurses4/terminfo/n/northstar +/usr/share/ncurses4/terminfo/n/nwe501 +/usr/share/ncurses4/terminfo/n/nwe501-a +/usr/share/ncurses4/terminfo/n/nwe501-o +/usr/share/ncurses4/terminfo/n/nwp-511 +/usr/share/ncurses4/terminfo/n/nwp-517 +/usr/share/ncurses4/terminfo/n/nwp-517-w +/usr/share/ncurses4/terminfo/n/nwp251-a +/usr/share/ncurses4/terminfo/n/nwp251-o +/usr/share/ncurses4/terminfo/n/nwp511 +/usr/share/ncurses4/terminfo/n/nwp512 +/usr/share/ncurses4/terminfo/n/nwp512-a +/usr/share/ncurses4/terminfo/n/nwp512-o +/usr/share/ncurses4/terminfo/n/nwp513 +/usr/share/ncurses4/terminfo/n/nwp513-a +/usr/share/ncurses4/terminfo/n/nwp513-o +/usr/share/ncurses4/terminfo/n/nwp514 +/usr/share/ncurses4/terminfo/n/nwp514-a +/usr/share/ncurses4/terminfo/n/nwp514-o +/usr/share/ncurses4/terminfo/n/nwp517 +/usr/share/ncurses4/terminfo/n/nwp517-w +/usr/share/ncurses4/terminfo/n/nwp518 +/usr/share/ncurses4/terminfo/n/nwp518-a +/usr/share/ncurses4/terminfo/n/nwp518-o +/usr/share/ncurses4/terminfo/o +/usr/share/ncurses4/terminfo/o/o31 +/usr/share/ncurses4/terminfo/o/o4112-nd +/usr/share/ncurses4/terminfo/o/o85h +/usr/share/ncurses4/terminfo/o/oabm85h +/usr/share/ncurses4/terminfo/o/oblit +/usr/share/ncurses4/terminfo/o/oc100 +/usr/share/ncurses4/terminfo/o/oconcept +/usr/share/ncurses4/terminfo/o/ojerq +/usr/share/ncurses4/terminfo/o/oldibmpc3 +/usr/share/ncurses4/terminfo/o/oldpc3 +/usr/share/ncurses4/terminfo/o/oldsun +/usr/share/ncurses4/terminfo/o/omron +/usr/share/ncurses4/terminfo/o/opus3n1+ +/usr/share/ncurses4/terminfo/o/origibmpc3 +/usr/share/ncurses4/terminfo/o/origpc3 +/usr/share/ncurses4/terminfo/o/os9LII +/usr/share/ncurses4/terminfo/o/osborne +/usr/share/ncurses4/terminfo/o/osborne-w +/usr/share/ncurses4/terminfo/o/osborne1 +/usr/share/ncurses4/terminfo/o/osborne1-w +/usr/share/ncurses4/terminfo/o/osexec +/usr/share/ncurses4/terminfo/o/otek4112 +/usr/share/ncurses4/terminfo/o/otek4113 +/usr/share/ncurses4/terminfo/o/otek4114 +/usr/share/ncurses4/terminfo/o/otek4115 +/usr/share/ncurses4/terminfo/o/owl +/usr/share/ncurses4/terminfo/p +/usr/share/ncurses4/terminfo/p/p12 +/usr/share/ncurses4/terminfo/p/p12-m +/usr/share/ncurses4/terminfo/p/p12-m-w +/usr/share/ncurses4/terminfo/p/p12-w +/usr/share/ncurses4/terminfo/p/p14 +/usr/share/ncurses4/terminfo/p/p14-m +/usr/share/ncurses4/terminfo/p/p14-m-w +/usr/share/ncurses4/terminfo/p/p14-w +/usr/share/ncurses4/terminfo/p/p19 +/usr/share/ncurses4/terminfo/p/p4 +/usr/share/ncurses4/terminfo/p/p5 +/usr/share/ncurses4/terminfo/p/p7 +/usr/share/ncurses4/terminfo/p/p8 +/usr/share/ncurses4/terminfo/p/p8-w +/usr/share/ncurses4/terminfo/p/p8gl +/usr/share/ncurses4/terminfo/p/p9 +/usr/share/ncurses4/terminfo/p/p9-8 +/usr/share/ncurses4/terminfo/p/p9-8-w +/usr/share/ncurses4/terminfo/p/p9-w +/usr/share/ncurses4/terminfo/p/pc-coherent +/usr/share/ncurses4/terminfo/p/pc-minix +/usr/share/ncurses4/terminfo/p/pc-venix +/usr/share/ncurses4/terminfo/p/pc3 +/usr/share/ncurses4/terminfo/p/pc3-bold +/usr/share/ncurses4/terminfo/p/pc3r +/usr/share/ncurses4/terminfo/p/pc3r-m +/usr/share/ncurses4/terminfo/p/pc6300plus +/usr/share/ncurses4/terminfo/p/pc7300 +/usr/share/ncurses4/terminfo/p/pcansi +/usr/share/ncurses4/terminfo/p/pcansi-25 +/usr/share/ncurses4/terminfo/p/pcansi-25-m +/usr/share/ncurses4/terminfo/p/pcansi-33 +/usr/share/ncurses4/terminfo/p/pcansi-33-m +/usr/share/ncurses4/terminfo/p/pcansi-43 +/usr/share/ncurses4/terminfo/p/pcansi-43-m +/usr/share/ncurses4/terminfo/p/pcansi-m +/usr/share/ncurses4/terminfo/p/pcansi-mono +/usr/share/ncurses4/terminfo/p/pcansi25 +/usr/share/ncurses4/terminfo/p/pcansi25m +/usr/share/ncurses4/terminfo/p/pcansi33 +/usr/share/ncurses4/terminfo/p/pcansi33m +/usr/share/ncurses4/terminfo/p/pcansi43 +/usr/share/ncurses4/terminfo/p/pccons +/usr/share/ncurses4/terminfo/p/pcconsole +/usr/share/ncurses4/terminfo/p/pcix +/usr/share/ncurses4/terminfo/p/pckermit +/usr/share/ncurses4/terminfo/p/pckermit12 +/usr/share/ncurses4/terminfo/p/pckermit120 +/usr/share/ncurses4/terminfo/p/pcplot +/usr/share/ncurses4/terminfo/p/pcvt25 +/usr/share/ncurses4/terminfo/p/pcvt25w +/usr/share/ncurses4/terminfo/p/pcvt28 +/usr/share/ncurses4/terminfo/p/pcvt28w +/usr/share/ncurses4/terminfo/p/pcvt35 +/usr/share/ncurses4/terminfo/p/pcvt35w +/usr/share/ncurses4/terminfo/p/pcvt40 +/usr/share/ncurses4/terminfo/p/pcvt40w +/usr/share/ncurses4/terminfo/p/pcvt43 +/usr/share/ncurses4/terminfo/p/pcvt43w +/usr/share/ncurses4/terminfo/p/pcvt50 +/usr/share/ncurses4/terminfo/p/pcvt50w +/usr/share/ncurses4/terminfo/p/pcvtXX +/usr/share/ncurses4/terminfo/p/pcz19 +/usr/share/ncurses4/terminfo/p/pe1100 +/usr/share/ncurses4/terminfo/p/pe1200 +/usr/share/ncurses4/terminfo/p/pe1251 +/usr/share/ncurses4/terminfo/p/pe550 +/usr/share/ncurses4/terminfo/p/pe6100 +/usr/share/ncurses4/terminfo/p/pe6300 +/usr/share/ncurses4/terminfo/p/pe6312 +/usr/share/ncurses4/terminfo/p/pe7000c +/usr/share/ncurses4/terminfo/p/pe7000m +/usr/share/ncurses4/terminfo/p/pilot +/usr/share/ncurses4/terminfo/p/printer +/usr/share/ncurses4/terminfo/p/prism12 +/usr/share/ncurses4/terminfo/p/prism12-m +/usr/share/ncurses4/terminfo/p/prism12-m-w +/usr/share/ncurses4/terminfo/p/prism12-w +/usr/share/ncurses4/terminfo/p/prism14 +/usr/share/ncurses4/terminfo/p/prism14-m +/usr/share/ncurses4/terminfo/p/prism14-m-w +/usr/share/ncurses4/terminfo/p/prism14-w +/usr/share/ncurses4/terminfo/p/prism2 +/usr/share/ncurses4/terminfo/p/prism4 +/usr/share/ncurses4/terminfo/p/prism5 +/usr/share/ncurses4/terminfo/p/prism7 +/usr/share/ncurses4/terminfo/p/prism8 +/usr/share/ncurses4/terminfo/p/prism8-w +/usr/share/ncurses4/terminfo/p/prism8gl +/usr/share/ncurses4/terminfo/p/prism9 +/usr/share/ncurses4/terminfo/p/prism9-8 +/usr/share/ncurses4/terminfo/p/prism9-8-w +/usr/share/ncurses4/terminfo/p/prism9-w +/usr/share/ncurses4/terminfo/p/pro350 +/usr/share/ncurses4/terminfo/p/ps300 +/usr/share/ncurses4/terminfo/p/psterm +/usr/share/ncurses4/terminfo/p/psterm-80x24 +/usr/share/ncurses4/terminfo/p/psterm-90x28 +/usr/share/ncurses4/terminfo/p/psterm-96x48 +/usr/share/ncurses4/terminfo/p/psterm-basic +/usr/share/ncurses4/terminfo/p/psterm-fast +/usr/share/ncurses4/terminfo/p/psx_ansi +/usr/share/ncurses4/terminfo/p/pt100 +/usr/share/ncurses4/terminfo/p/pt100w +/usr/share/ncurses4/terminfo/p/pt200 +/usr/share/ncurses4/terminfo/p/pt200w +/usr/share/ncurses4/terminfo/p/pt210 +/usr/share/ncurses4/terminfo/p/pt250 +/usr/share/ncurses4/terminfo/p/pt250w +/usr/share/ncurses4/terminfo/p/pt505 +/usr/share/ncurses4/terminfo/p/pt505-22 +/usr/share/ncurses4/terminfo/p/pt505-24 +/usr/share/ncurses4/terminfo/p/pty +/usr/share/ncurses4/terminfo/q +/usr/share/ncurses4/terminfo/q/qdcons +/usr/share/ncurses4/terminfo/q/qdss +/usr/share/ncurses4/terminfo/q/qnx +/usr/share/ncurses4/terminfo/q/qnx4 +/usr/share/ncurses4/terminfo/q/qume +/usr/share/ncurses4/terminfo/q/qume5 +/usr/share/ncurses4/terminfo/q/qvt101 +/usr/share/ncurses4/terminfo/q/qvt101+ +/usr/share/ncurses4/terminfo/q/qvt101p +/usr/share/ncurses4/terminfo/q/qvt102 +/usr/share/ncurses4/terminfo/q/qvt103 +/usr/share/ncurses4/terminfo/q/qvt103-w +/usr/share/ncurses4/terminfo/q/qvt108 +/usr/share/ncurses4/terminfo/q/qvt119 +/usr/share/ncurses4/terminfo/q/qvt119+ +/usr/share/ncurses4/terminfo/q/qvt119+-25 +/usr/share/ncurses4/terminfo/q/qvt119+-25-w +/usr/share/ncurses4/terminfo/q/qvt119+-w +/usr/share/ncurses4/terminfo/q/qvt119-25-w +/usr/share/ncurses4/terminfo/q/qvt119-w +/usr/share/ncurses4/terminfo/q/qvt119p +/usr/share/ncurses4/terminfo/q/qvt119p-25 +/usr/share/ncurses4/terminfo/q/qvt119p-25-w +/usr/share/ncurses4/terminfo/q/qvt119p-w +/usr/share/ncurses4/terminfo/q/qvt203 +/usr/share/ncurses4/terminfo/q/qvt203+ +/usr/share/ncurses4/terminfo/q/qvt203-25 +/usr/share/ncurses4/terminfo/q/qvt203-25-w +/usr/share/ncurses4/terminfo/q/qvt203-w +/usr/share/ncurses4/terminfo/q/qvt203-w-am +/usr/share/ncurses4/terminfo/r +/usr/share/ncurses4/terminfo/r/rbcomm +/usr/share/ncurses4/terminfo/r/rbcomm-nam +/usr/share/ncurses4/terminfo/r/rbcomm-w +/usr/share/ncurses4/terminfo/r/rca +/usr/share/ncurses4/terminfo/r/rebus3180 +/usr/share/ncurses4/terminfo/r/regent +/usr/share/ncurses4/terminfo/r/regent100 +/usr/share/ncurses4/terminfo/r/regent20 +/usr/share/ncurses4/terminfo/r/regent200 +/usr/share/ncurses4/terminfo/r/regent25 +/usr/share/ncurses4/terminfo/r/regent40 +/usr/share/ncurses4/terminfo/r/regent40+ +/usr/share/ncurses4/terminfo/r/regent60 +/usr/share/ncurses4/terminfo/r/rt6221 +/usr/share/ncurses4/terminfo/r/rt6221-w +/usr/share/ncurses4/terminfo/r/rtpc +/usr/share/ncurses4/terminfo/r/rxvt +/usr/share/ncurses4/terminfo/r/rxvt-basic +/usr/share/ncurses4/terminfo/s +/usr/share/ncurses4/terminfo/s/s +/usr/share/ncurses4/terminfo/s/s4 +/usr/share/ncurses4/terminfo/s/sb1 +/usr/share/ncurses4/terminfo/s/sb2 +/usr/share/ncurses4/terminfo/s/sb3 +/usr/share/ncurses4/terminfo/s/sbi +/usr/share/ncurses4/terminfo/s/sbobcat +/usr/share/ncurses4/terminfo/s/sc410 +/usr/share/ncurses4/terminfo/s/sc415 +/usr/share/ncurses4/terminfo/s/scanset +/usr/share/ncurses4/terminfo/s/scoansi +/usr/share/ncurses4/terminfo/s/screen +/usr/share/ncurses4/terminfo/s/screen-w +/usr/share/ncurses4/terminfo/s/screen2 +/usr/share/ncurses4/terminfo/s/screen3 +/usr/share/ncurses4/terminfo/s/screwpoint +/usr/share/ncurses4/terminfo/s/scrhp +/usr/share/ncurses4/terminfo/s/simterm +/usr/share/ncurses4/terminfo/s/soroc +/usr/share/ncurses4/terminfo/s/soroc120 +/usr/share/ncurses4/terminfo/s/soroc140 +/usr/share/ncurses4/terminfo/s/spinwriter +/usr/share/ncurses4/terminfo/s/st52 +/usr/share/ncurses4/terminfo/s/sun +/usr/share/ncurses4/terminfo/s/sun-1 +/usr/share/ncurses4/terminfo/s/sun-12 +/usr/share/ncurses4/terminfo/s/sun-17 +/usr/share/ncurses4/terminfo/s/sun-24 +/usr/share/ncurses4/terminfo/s/sun-34 +/usr/share/ncurses4/terminfo/s/sun-48 +/usr/share/ncurses4/terminfo/s/sun-c +/usr/share/ncurses4/terminfo/s/sun-cmd +/usr/share/ncurses4/terminfo/s/sun-e +/usr/share/ncurses4/terminfo/s/sun-e-s +/usr/share/ncurses4/terminfo/s/sun-il +/usr/share/ncurses4/terminfo/s/sun-nic +/usr/share/ncurses4/terminfo/s/sun-s +/usr/share/ncurses4/terminfo/s/sun-s-e +/usr/share/ncurses4/terminfo/s/sun-ss5 +/usr/share/ncurses4/terminfo/s/sun1 +/usr/share/ncurses4/terminfo/s/sun2 +/usr/share/ncurses4/terminfo/s/sune +/usr/share/ncurses4/terminfo/s/superbee +/usr/share/ncurses4/terminfo/s/superbee-xsb +/usr/share/ncurses4/terminfo/s/superbeeic +/usr/share/ncurses4/terminfo/s/superbrain +/usr/share/ncurses4/terminfo/s/sv80 +/usr/share/ncurses4/terminfo/s/swtp +/usr/share/ncurses4/terminfo/s/synertek +/usr/share/ncurses4/terminfo/s/synertek380 +/usr/share/ncurses4/terminfo/s/system1 +/usr/share/ncurses4/terminfo/t +/usr/share/ncurses4/terminfo/t/t10 +/usr/share/ncurses4/terminfo/t/t1061 +/usr/share/ncurses4/terminfo/t/t1061f +/usr/share/ncurses4/terminfo/t/t16 +/usr/share/ncurses4/terminfo/t/t3700 +/usr/share/ncurses4/terminfo/t/t3800 +/usr/share/ncurses4/terminfo/t/t653x +/usr/share/ncurses4/terminfo/t/tab +/usr/share/ncurses4/terminfo/t/tab132 +/usr/share/ncurses4/terminfo/t/tab132-15 +/usr/share/ncurses4/terminfo/t/tab132-rv +/usr/share/ncurses4/terminfo/t/tab132-w +/usr/share/ncurses4/terminfo/t/tab132-w-rv +/usr/share/ncurses4/terminfo/t/tandem6510 +/usr/share/ncurses4/terminfo/t/tandem653 +/usr/share/ncurses4/terminfo/t/tek +/usr/share/ncurses4/terminfo/t/tek4012 +/usr/share/ncurses4/terminfo/t/tek4013 +/usr/share/ncurses4/terminfo/t/tek4014 +/usr/share/ncurses4/terminfo/t/tek4014-sm +/usr/share/ncurses4/terminfo/t/tek4015 +/usr/share/ncurses4/terminfo/t/tek4015-sm +/usr/share/ncurses4/terminfo/t/tek4023 +/usr/share/ncurses4/terminfo/t/tek4024 +/usr/share/ncurses4/terminfo/t/tek4025 +/usr/share/ncurses4/terminfo/t/tek4025-17 +/usr/share/ncurses4/terminfo/t/tek4025-17-ws +/usr/share/ncurses4/terminfo/t/tek4025-cr +/usr/share/ncurses4/terminfo/t/tek4025-ex +/usr/share/ncurses4/terminfo/t/tek4025a +/usr/share/ncurses4/terminfo/t/tek4025ex +/usr/share/ncurses4/terminfo/t/tek4027 +/usr/share/ncurses4/terminfo/t/tek4027-ex +/usr/share/ncurses4/terminfo/t/tek4105 +/usr/share/ncurses4/terminfo/t/tek4105-30 +/usr/share/ncurses4/terminfo/t/tek4105a +/usr/share/ncurses4/terminfo/t/tek4106brl +/usr/share/ncurses4/terminfo/t/tek4107 +/usr/share/ncurses4/terminfo/t/tek4107brl +/usr/share/ncurses4/terminfo/t/tek4109 +/usr/share/ncurses4/terminfo/t/tek4109brl +/usr/share/ncurses4/terminfo/t/tek4112 +/usr/share/ncurses4/terminfo/t/tek4112-5 +/usr/share/ncurses4/terminfo/t/tek4112-nd +/usr/share/ncurses4/terminfo/t/tek4113 +/usr/share/ncurses4/terminfo/t/tek4113-34 +/usr/share/ncurses4/terminfo/t/tek4113-nd +/usr/share/ncurses4/terminfo/t/tek4114 +/usr/share/ncurses4/terminfo/t/tek4115 +/usr/share/ncurses4/terminfo/t/tek4125 +/usr/share/ncurses4/terminfo/t/tek4205 +/usr/share/ncurses4/terminfo/t/tek4207 +/usr/share/ncurses4/terminfo/t/tek4207-s +/usr/share/ncurses4/terminfo/t/tek4404 +/usr/share/ncurses4/terminfo/t/teleray +/usr/share/ncurses4/terminfo/t/teletec +/usr/share/ncurses4/terminfo/t/terminet +/usr/share/ncurses4/terminfo/t/terminet1200 +/usr/share/ncurses4/terminfo/t/terminet300 +/usr/share/ncurses4/terminfo/t/tgtelnet +/usr/share/ncurses4/terminfo/t/ti700 +/usr/share/ncurses4/terminfo/t/ti733 +/usr/share/ncurses4/terminfo/t/ti735 +/usr/share/ncurses4/terminfo/t/ti745 +/usr/share/ncurses4/terminfo/t/ti800 +/usr/share/ncurses4/terminfo/t/ti916 +/usr/share/ncurses4/terminfo/t/ti916-132 +/usr/share/ncurses4/terminfo/t/ti916-220-7 +/usr/share/ncurses4/terminfo/t/ti916-220-8 +/usr/share/ncurses4/terminfo/t/ti916-8 +/usr/share/ncurses4/terminfo/t/ti916-8-132 +/usr/share/ncurses4/terminfo/t/ti924 +/usr/share/ncurses4/terminfo/t/ti924-8 +/usr/share/ncurses4/terminfo/t/ti924-8w +/usr/share/ncurses4/terminfo/t/ti924w +/usr/share/ncurses4/terminfo/t/ti926 +/usr/share/ncurses4/terminfo/t/ti926-8 +/usr/share/ncurses4/terminfo/t/ti928 +/usr/share/ncurses4/terminfo/t/ti928-8 +/usr/share/ncurses4/terminfo/t/ti931 +/usr/share/ncurses4/terminfo/t/ti_ansi +/usr/share/ncurses4/terminfo/t/tn1200 +/usr/share/ncurses4/terminfo/t/tn300 +/usr/share/ncurses4/terminfo/t/trs16 +/usr/share/ncurses4/terminfo/t/trs2 +/usr/share/ncurses4/terminfo/t/trs80II +/usr/share/ncurses4/terminfo/t/trsII +/usr/share/ncurses4/terminfo/t/ts-1 +/usr/share/ncurses4/terminfo/t/ts-1p +/usr/share/ncurses4/terminfo/t/ts1 +/usr/share/ncurses4/terminfo/t/ts100 +/usr/share/ncurses4/terminfo/t/ts100-ctxt +/usr/share/ncurses4/terminfo/t/ts100-sp +/usr/share/ncurses4/terminfo/t/ts1p +/usr/share/ncurses4/terminfo/t/tt505-22 +/usr/share/ncurses4/terminfo/t/tty33 +/usr/share/ncurses4/terminfo/t/tty35 +/usr/share/ncurses4/terminfo/t/tty37 +/usr/share/ncurses4/terminfo/t/tty40 +/usr/share/ncurses4/terminfo/t/tty43 +/usr/share/ncurses4/terminfo/t/tty4420 +/usr/share/ncurses4/terminfo/t/tty4424 +/usr/share/ncurses4/terminfo/t/tty4424-1 +/usr/share/ncurses4/terminfo/t/tty4424m +/usr/share/ncurses4/terminfo/t/tty4426 +/usr/share/ncurses4/terminfo/t/tty5410 +/usr/share/ncurses4/terminfo/t/tty5410-w +/usr/share/ncurses4/terminfo/t/tty5410v1 +/usr/share/ncurses4/terminfo/t/tty5410v1-w +/usr/share/ncurses4/terminfo/t/tty5420 +/usr/share/ncurses4/terminfo/t/tty5420+nl +/usr/share/ncurses4/terminfo/t/tty5420-nl +/usr/share/ncurses4/terminfo/t/tty5420-rv +/usr/share/ncurses4/terminfo/t/tty5420-rv-nl +/usr/share/ncurses4/terminfo/t/tty5420-w +/usr/share/ncurses4/terminfo/t/tty5420-w-nl +/usr/share/ncurses4/terminfo/t/tty5420-w-rv +/usr/share/ncurses4/terminfo/t/tty5420-w-rv-n +/usr/share/ncurses4/terminfo/t/tty5425 +/usr/share/ncurses4/terminfo/t/tty5425-nl +/usr/share/ncurses4/terminfo/t/tty5425-w +/usr/share/ncurses4/terminfo/t/tty5620 +/usr/share/ncurses4/terminfo/t/tty5620-1 +/usr/share/ncurses4/terminfo/t/tty5620-24 +/usr/share/ncurses4/terminfo/t/tty5620-34 +/usr/share/ncurses4/terminfo/t/tty5620-s +/usr/share/ncurses4/terminfo/t/ttydmd +/usr/share/ncurses4/terminfo/t/tvi-2p +/usr/share/ncurses4/terminfo/t/tvi803 +/usr/share/ncurses4/terminfo/t/tvi9065 +/usr/share/ncurses4/terminfo/t/tvi910 +/usr/share/ncurses4/terminfo/t/tvi910+ +/usr/share/ncurses4/terminfo/t/tvi912 +/usr/share/ncurses4/terminfo/t/tvi912-2p +/usr/share/ncurses4/terminfo/t/tvi912b +/usr/share/ncurses4/terminfo/t/tvi912c +/usr/share/ncurses4/terminfo/t/tvi912cc +/usr/share/ncurses4/terminfo/t/tvi914 +/usr/share/ncurses4/terminfo/t/tvi920 +/usr/share/ncurses4/terminfo/t/tvi920-2p +/usr/share/ncurses4/terminfo/t/tvi920b +/usr/share/ncurses4/terminfo/t/tvi920c +/usr/share/ncurses4/terminfo/t/tvi921 +/usr/share/ncurses4/terminfo/t/tvi924 +/usr/share/ncurses4/terminfo/t/tvi925 +/usr/share/ncurses4/terminfo/t/tvi925-hi +/usr/share/ncurses4/terminfo/t/tvi92B +/usr/share/ncurses4/terminfo/t/tvi92D +/usr/share/ncurses4/terminfo/t/tvi950 +/usr/share/ncurses4/terminfo/t/tvi950-2p +/usr/share/ncurses4/terminfo/t/tvi950-4p +/usr/share/ncurses4/terminfo/t/tvi950-rv +/usr/share/ncurses4/terminfo/t/tvi950-rv-2p +/usr/share/ncurses4/terminfo/t/tvi950-rv-4p +/usr/share/ncurses4/terminfo/t/tvi955 +/usr/share/ncurses4/terminfo/t/tvi955-hb +/usr/share/ncurses4/terminfo/t/tvi955-w +/usr/share/ncurses4/terminfo/t/tvi970 +/usr/share/ncurses4/terminfo/t/tvi970-2p +/usr/share/ncurses4/terminfo/t/tvi970-vb +/usr/share/ncurses4/terminfo/t/tvipt +/usr/share/ncurses4/terminfo/u +/usr/share/ncurses4/terminfo/u/ultima2 +/usr/share/ncurses4/terminfo/u/ultimaII +/usr/share/ncurses4/terminfo/u/uniterm +/usr/share/ncurses4/terminfo/u/uniterm49 +/usr/share/ncurses4/terminfo/u/unixpc +/usr/share/ncurses4/terminfo/u/unknown +/usr/share/ncurses4/terminfo/u/uts30 +/usr/share/ncurses4/terminfo/v +/usr/share/ncurses4/terminfo/v/v200-nam +/usr/share/ncurses4/terminfo/v/v320n +/usr/share/ncurses4/terminfo/v/v3220 +/usr/share/ncurses4/terminfo/v/v5410 +/usr/share/ncurses4/terminfo/v/vapple +/usr/share/ncurses4/terminfo/v/vc103 +/usr/share/ncurses4/terminfo/v/vc203 +/usr/share/ncurses4/terminfo/v/vc303 +/usr/share/ncurses4/terminfo/v/vc303a +/usr/share/ncurses4/terminfo/v/vc403a +/usr/share/ncurses4/terminfo/v/vc404 +/usr/share/ncurses4/terminfo/v/vc404-s +/usr/share/ncurses4/terminfo/v/vc414 +/usr/share/ncurses4/terminfo/v/vc414h +/usr/share/ncurses4/terminfo/v/vc415 +/usr/share/ncurses4/terminfo/v/venix +/usr/share/ncurses4/terminfo/v/versaterm +/usr/share/ncurses4/terminfo/v/vi200 +/usr/share/ncurses4/terminfo/v/vi200-f +/usr/share/ncurses4/terminfo/v/vi200-rv +/usr/share/ncurses4/terminfo/v/vi300 +/usr/share/ncurses4/terminfo/v/vi300-old +/usr/share/ncurses4/terminfo/v/vi50 +/usr/share/ncurses4/terminfo/v/vi500 +/usr/share/ncurses4/terminfo/v/vi50adm +/usr/share/ncurses4/terminfo/v/vi55 +/usr/share/ncurses4/terminfo/v/vi550 +/usr/share/ncurses4/terminfo/v/vi603 +/usr/share/ncurses4/terminfo/v/viewpoint +/usr/share/ncurses4/terminfo/v/viewpoint3a+ +/usr/share/ncurses4/terminfo/v/viewpoint60 +/usr/share/ncurses4/terminfo/v/viewpoint90 +/usr/share/ncurses4/terminfo/v/visa50 +/usr/share/ncurses4/terminfo/v/visual603 +/usr/share/ncurses4/terminfo/v/vitty +/usr/share/ncurses4/terminfo/v/vk100 +/usr/share/ncurses4/terminfo/v/vp3a+ +/usr/share/ncurses4/terminfo/v/vp60 +/usr/share/ncurses4/terminfo/v/vp90 +/usr/share/ncurses4/terminfo/v/vremote +/usr/share/ncurses4/terminfo/v/vs100 +/usr/share/ncurses4/terminfo/v/vs100-x10 +/usr/share/ncurses4/terminfo/v/vsc +/usr/share/ncurses4/terminfo/v/vt-61 +/usr/share/ncurses4/terminfo/v/vt100 +/usr/share/ncurses4/terminfo/v/vt100-am +/usr/share/ncurses4/terminfo/v/vt100-bm +/usr/share/ncurses4/terminfo/v/vt100-bm-o +/usr/share/ncurses4/terminfo/v/vt100-bot-s +/usr/share/ncurses4/terminfo/v/vt100-nam +/usr/share/ncurses4/terminfo/v/vt100-nam-w +/usr/share/ncurses4/terminfo/v/vt100-nav +/usr/share/ncurses4/terminfo/v/vt100-nav-w +/usr/share/ncurses4/terminfo/v/vt100-s +/usr/share/ncurses4/terminfo/v/vt100-s-bot +/usr/share/ncurses4/terminfo/v/vt100-s-top +/usr/share/ncurses4/terminfo/v/vt100-top-s +/usr/share/ncurses4/terminfo/v/vt100-vb +/usr/share/ncurses4/terminfo/v/vt100-w +/usr/share/ncurses4/terminfo/v/vt100-w-am +/usr/share/ncurses4/terminfo/v/vt100-w-nam +/usr/share/ncurses4/terminfo/v/vt100-w-nav +/usr/share/ncurses4/terminfo/v/vt100nam +/usr/share/ncurses4/terminfo/v/vt102 +/usr/share/ncurses4/terminfo/v/vt102-nsgr +/usr/share/ncurses4/terminfo/v/vt102-w +/usr/share/ncurses4/terminfo/v/vt125 +/usr/share/ncurses4/terminfo/v/vt131 +/usr/share/ncurses4/terminfo/v/vt132 +/usr/share/ncurses4/terminfo/v/vt200 +/usr/share/ncurses4/terminfo/v/vt200-js +/usr/share/ncurses4/terminfo/v/vt200-w +/usr/share/ncurses4/terminfo/v/vt220 +/usr/share/ncurses4/terminfo/v/vt220-8 +/usr/share/ncurses4/terminfo/v/vt220-js +/usr/share/ncurses4/terminfo/v/vt220-nam +/usr/share/ncurses4/terminfo/v/vt220-w +/usr/share/ncurses4/terminfo/v/vt220d +/usr/share/ncurses4/terminfo/v/vt300 +/usr/share/ncurses4/terminfo/v/vt300-nam +/usr/share/ncurses4/terminfo/v/vt300-w +/usr/share/ncurses4/terminfo/v/vt300-w-nam +/usr/share/ncurses4/terminfo/v/vt320 +/usr/share/ncurses4/terminfo/v/vt320-k3 +/usr/share/ncurses4/terminfo/v/vt320-k311 +/usr/share/ncurses4/terminfo/v/vt320-nam +/usr/share/ncurses4/terminfo/v/vt320-w +/usr/share/ncurses4/terminfo/v/vt320-w-nam +/usr/share/ncurses4/terminfo/v/vt320nam +/usr/share/ncurses4/terminfo/v/vt330 +/usr/share/ncurses4/terminfo/v/vt340 +/usr/share/ncurses4/terminfo/v/vt400 +/usr/share/ncurses4/terminfo/v/vt400-24 +/usr/share/ncurses4/terminfo/v/vt420 +/usr/share/ncurses4/terminfo/v/vt420f +/usr/share/ncurses4/terminfo/v/vt420pc +/usr/share/ncurses4/terminfo/v/vt420pcdos +/usr/share/ncurses4/terminfo/v/vt50 +/usr/share/ncurses4/terminfo/v/vt50h +/usr/share/ncurses4/terminfo/v/vt510 +/usr/share/ncurses4/terminfo/v/vt510pc +/usr/share/ncurses4/terminfo/v/vt510pcdos +/usr/share/ncurses4/terminfo/v/vt52 +/usr/share/ncurses4/terminfo/v/vt520 +/usr/share/ncurses4/terminfo/v/vt525 +/usr/share/ncurses4/terminfo/v/vt61 +/usr/share/ncurses4/terminfo/v/vt61.5 +/usr/share/ncurses4/terminfo/w +/usr/share/ncurses4/terminfo/w/wren +/usr/share/ncurses4/terminfo/w/wrenw +/usr/share/ncurses4/terminfo/w/wsiris +/usr/share/ncurses4/terminfo/w/wy-75ap +/usr/share/ncurses4/terminfo/w/wy100 +/usr/share/ncurses4/terminfo/w/wy100q +/usr/share/ncurses4/terminfo/w/wy120 +/usr/share/ncurses4/terminfo/w/wy120-25 +/usr/share/ncurses4/terminfo/w/wy120-25-w +/usr/share/ncurses4/terminfo/w/wy120-vb +/usr/share/ncurses4/terminfo/w/wy120-w +/usr/share/ncurses4/terminfo/w/wy120-w-vb +/usr/share/ncurses4/terminfo/w/wy120-wvb +/usr/share/ncurses4/terminfo/w/wy150 +/usr/share/ncurses4/terminfo/w/wy150-25 +/usr/share/ncurses4/terminfo/w/wy150-25-w +/usr/share/ncurses4/terminfo/w/wy150-vb +/usr/share/ncurses4/terminfo/w/wy150-w +/usr/share/ncurses4/terminfo/w/wy150-w-vb +/usr/share/ncurses4/terminfo/w/wy160 +/usr/share/ncurses4/terminfo/w/wy160-25 +/usr/share/ncurses4/terminfo/w/wy160-25-w +/usr/share/ncurses4/terminfo/w/wy160-42 +/usr/share/ncurses4/terminfo/w/wy160-42-w +/usr/share/ncurses4/terminfo/w/wy160-43 +/usr/share/ncurses4/terminfo/w/wy160-43-w +/usr/share/ncurses4/terminfo/w/wy160-tek +/usr/share/ncurses4/terminfo/w/wy160-vb +/usr/share/ncurses4/terminfo/w/wy160-w +/usr/share/ncurses4/terminfo/w/wy160-w-vb +/usr/share/ncurses4/terminfo/w/wy160-wvb +/usr/share/ncurses4/terminfo/w/wy185 +/usr/share/ncurses4/terminfo/w/wy185-24 +/usr/share/ncurses4/terminfo/w/wy185-vb +/usr/share/ncurses4/terminfo/w/wy185-w +/usr/share/ncurses4/terminfo/w/wy185-wvb +/usr/share/ncurses4/terminfo/w/wy30 +/usr/share/ncurses4/terminfo/w/wy30-mc +/usr/share/ncurses4/terminfo/w/wy30-vb +/usr/share/ncurses4/terminfo/w/wy325 +/usr/share/ncurses4/terminfo/w/wy325-25 +/usr/share/ncurses4/terminfo/w/wy325-25w +/usr/share/ncurses4/terminfo/w/wy325-42 +/usr/share/ncurses4/terminfo/w/wy325-42w +/usr/share/ncurses4/terminfo/w/wy325-42w-vb +/usr/share/ncurses4/terminfo/w/wy325-42wvb +/usr/share/ncurses4/terminfo/w/wy325-43 +/usr/share/ncurses4/terminfo/w/wy325-43w +/usr/share/ncurses4/terminfo/w/wy325-43w-vb +/usr/share/ncurses4/terminfo/w/wy325-43wvb +/usr/share/ncurses4/terminfo/w/wy325-80 +/usr/share/ncurses4/terminfo/w/wy325-vb +/usr/share/ncurses4/terminfo/w/wy325-w +/usr/share/ncurses4/terminfo/w/wy325-w-vb +/usr/share/ncurses4/terminfo/w/wy325-wvb +/usr/share/ncurses4/terminfo/w/wy325w-24 +/usr/share/ncurses4/terminfo/w/wy350 +/usr/share/ncurses4/terminfo/w/wy350-vb +/usr/share/ncurses4/terminfo/w/wy350-w +/usr/share/ncurses4/terminfo/w/wy350-wvb +/usr/share/ncurses4/terminfo/w/wy370 +/usr/share/ncurses4/terminfo/w/wy370-101k +/usr/share/ncurses4/terminfo/w/wy370-105k +/usr/share/ncurses4/terminfo/w/wy370-EPC +/usr/share/ncurses4/terminfo/w/wy370-nk +/usr/share/ncurses4/terminfo/w/wy370-rv +/usr/share/ncurses4/terminfo/w/wy370-tek +/usr/share/ncurses4/terminfo/w/wy370-vb +/usr/share/ncurses4/terminfo/w/wy370-w +/usr/share/ncurses4/terminfo/w/wy370-wvb +/usr/share/ncurses4/terminfo/w/wy50 +/usr/share/ncurses4/terminfo/w/wy50-mc +/usr/share/ncurses4/terminfo/w/wy50-vb +/usr/share/ncurses4/terminfo/w/wy50-w +/usr/share/ncurses4/terminfo/w/wy50-wvb +/usr/share/ncurses4/terminfo/w/wy520 +/usr/share/ncurses4/terminfo/w/wy520-24 +/usr/share/ncurses4/terminfo/w/wy520-36 +/usr/share/ncurses4/terminfo/w/wy520-36pc +/usr/share/ncurses4/terminfo/w/wy520-36w +/usr/share/ncurses4/terminfo/w/wy520-36wpc +/usr/share/ncurses4/terminfo/w/wy520-48 +/usr/share/ncurses4/terminfo/w/wy520-48pc +/usr/share/ncurses4/terminfo/w/wy520-48w +/usr/share/ncurses4/terminfo/w/wy520-48wpc +/usr/share/ncurses4/terminfo/w/wy520-epc +/usr/share/ncurses4/terminfo/w/wy520-epc-24 +/usr/share/ncurses4/terminfo/w/wy520-epc-vb +/usr/share/ncurses4/terminfo/w/wy520-epc-w +/usr/share/ncurses4/terminfo/w/wy520-epc-wvb +/usr/share/ncurses4/terminfo/w/wy520-vb +/usr/share/ncurses4/terminfo/w/wy520-w +/usr/share/ncurses4/terminfo/w/wy520-wvb +/usr/share/ncurses4/terminfo/w/wy60 +/usr/share/ncurses4/terminfo/w/wy60-25 +/usr/share/ncurses4/terminfo/w/wy60-25-w +/usr/share/ncurses4/terminfo/w/wy60-316X +/usr/share/ncurses4/terminfo/w/wy60-42 +/usr/share/ncurses4/terminfo/w/wy60-42-w +/usr/share/ncurses4/terminfo/w/wy60-43 +/usr/share/ncurses4/terminfo/w/wy60-43-w +/usr/share/ncurses4/terminfo/w/wy60-vb +/usr/share/ncurses4/terminfo/w/wy60-w +/usr/share/ncurses4/terminfo/w/wy60-w-vb +/usr/share/ncurses4/terminfo/w/wy60-wvb +/usr/share/ncurses4/terminfo/w/wy75 +/usr/share/ncurses4/terminfo/w/wy75-mc +/usr/share/ncurses4/terminfo/w/wy75-vb +/usr/share/ncurses4/terminfo/w/wy75-w +/usr/share/ncurses4/terminfo/w/wy75-wvb +/usr/share/ncurses4/terminfo/w/wy75ap +/usr/share/ncurses4/terminfo/w/wy85 +/usr/share/ncurses4/terminfo/w/wy85-vb +/usr/share/ncurses4/terminfo/w/wy85-w +/usr/share/ncurses4/terminfo/w/wy85-wvb +/usr/share/ncurses4/terminfo/w/wy99gt +/usr/share/ncurses4/terminfo/w/wy99gt-25 +/usr/share/ncurses4/terminfo/w/wy99gt-25-w +/usr/share/ncurses4/terminfo/w/wy99gt-tek +/usr/share/ncurses4/terminfo/w/wy99gt-vb +/usr/share/ncurses4/terminfo/w/wy99gt-w +/usr/share/ncurses4/terminfo/w/wy99gt-w-vb +/usr/share/ncurses4/terminfo/w/wy99gt-wvb +/usr/share/ncurses4/terminfo/w/wyse-325 +/usr/share/ncurses4/terminfo/w/wyse-75ap +/usr/share/ncurses4/terminfo/w/wyse-vp +/usr/share/ncurses4/terminfo/w/wyse120 +/usr/share/ncurses4/terminfo/w/wyse120-25 +/usr/share/ncurses4/terminfo/w/wyse120-25-w +/usr/share/ncurses4/terminfo/w/wyse120-vb +/usr/share/ncurses4/terminfo/w/wyse120-w +/usr/share/ncurses4/terminfo/w/wyse120-wvb +/usr/share/ncurses4/terminfo/w/wyse150 +/usr/share/ncurses4/terminfo/w/wyse150-25 +/usr/share/ncurses4/terminfo/w/wyse150-25-w +/usr/share/ncurses4/terminfo/w/wyse150-vb +/usr/share/ncurses4/terminfo/w/wyse150-w +/usr/share/ncurses4/terminfo/w/wyse150-w-vb +/usr/share/ncurses4/terminfo/w/wyse160 +/usr/share/ncurses4/terminfo/w/wyse160-25 +/usr/share/ncurses4/terminfo/w/wyse160-25-w +/usr/share/ncurses4/terminfo/w/wyse160-42 +/usr/share/ncurses4/terminfo/w/wyse160-42-w +/usr/share/ncurses4/terminfo/w/wyse160-43 +/usr/share/ncurses4/terminfo/w/wyse160-43-w +/usr/share/ncurses4/terminfo/w/wyse160-vb +/usr/share/ncurses4/terminfo/w/wyse160-w +/usr/share/ncurses4/terminfo/w/wyse160-wvb +/usr/share/ncurses4/terminfo/w/wyse185 +/usr/share/ncurses4/terminfo/w/wyse185-24 +/usr/share/ncurses4/terminfo/w/wyse185-vb +/usr/share/ncurses4/terminfo/w/wyse185-w +/usr/share/ncurses4/terminfo/w/wyse185-wvb +/usr/share/ncurses4/terminfo/w/wyse30 +/usr/share/ncurses4/terminfo/w/wyse30-mc +/usr/share/ncurses4/terminfo/w/wyse30-vb +/usr/share/ncurses4/terminfo/w/wyse325 +/usr/share/ncurses4/terminfo/w/wyse325-25 +/usr/share/ncurses4/terminfo/w/wyse325-25w +/usr/share/ncurses4/terminfo/w/wyse325-42 +/usr/share/ncurses4/terminfo/w/wyse325-42w +/usr/share/ncurses4/terminfo/w/wyse325-43 +/usr/share/ncurses4/terminfo/w/wyse325-43w +/usr/share/ncurses4/terminfo/w/wyse325-vb +/usr/share/ncurses4/terminfo/w/wyse325-w +/usr/share/ncurses4/terminfo/w/wyse325-wvb +/usr/share/ncurses4/terminfo/w/wyse350 +/usr/share/ncurses4/terminfo/w/wyse350-vb +/usr/share/ncurses4/terminfo/w/wyse350-w +/usr/share/ncurses4/terminfo/w/wyse350-wvb +/usr/share/ncurses4/terminfo/w/wyse370 +/usr/share/ncurses4/terminfo/w/wyse50 +/usr/share/ncurses4/terminfo/w/wyse50-mc +/usr/share/ncurses4/terminfo/w/wyse50-vb +/usr/share/ncurses4/terminfo/w/wyse50-w +/usr/share/ncurses4/terminfo/w/wyse50-wvb +/usr/share/ncurses4/terminfo/w/wyse520 +/usr/share/ncurses4/terminfo/w/wyse520-24 +/usr/share/ncurses4/terminfo/w/wyse520-36 +/usr/share/ncurses4/terminfo/w/wyse520-36pc +/usr/share/ncurses4/terminfo/w/wyse520-36w +/usr/share/ncurses4/terminfo/w/wyse520-36wpc +/usr/share/ncurses4/terminfo/w/wyse520-48 +/usr/share/ncurses4/terminfo/w/wyse520-48pc +/usr/share/ncurses4/terminfo/w/wyse520-48w +/usr/share/ncurses4/terminfo/w/wyse520-48wpc +/usr/share/ncurses4/terminfo/w/wyse520-epc +/usr/share/ncurses4/terminfo/w/wyse520-epc-w +/usr/share/ncurses4/terminfo/w/wyse520-p-wvb +/usr/share/ncurses4/terminfo/w/wyse520-pc-24 +/usr/share/ncurses4/terminfo/w/wyse520-pc-vb +/usr/share/ncurses4/terminfo/w/wyse520-vb +/usr/share/ncurses4/terminfo/w/wyse520-w +/usr/share/ncurses4/terminfo/w/wyse520-wvb +/usr/share/ncurses4/terminfo/w/wyse60 +/usr/share/ncurses4/terminfo/w/wyse60-25 +/usr/share/ncurses4/terminfo/w/wyse60-25-w +/usr/share/ncurses4/terminfo/w/wyse60-316X +/usr/share/ncurses4/terminfo/w/wyse60-42 +/usr/share/ncurses4/terminfo/w/wyse60-42-w +/usr/share/ncurses4/terminfo/w/wyse60-43 +/usr/share/ncurses4/terminfo/w/wyse60-43-w +/usr/share/ncurses4/terminfo/w/wyse60-vb +/usr/share/ncurses4/terminfo/w/wyse60-w +/usr/share/ncurses4/terminfo/w/wyse60-wvb +/usr/share/ncurses4/terminfo/w/wyse75 +/usr/share/ncurses4/terminfo/w/wyse75-mc +/usr/share/ncurses4/terminfo/w/wyse75-vb +/usr/share/ncurses4/terminfo/w/wyse75-w +/usr/share/ncurses4/terminfo/w/wyse75-wvb +/usr/share/ncurses4/terminfo/w/wyse75ap +/usr/share/ncurses4/terminfo/w/wyse85 +/usr/share/ncurses4/terminfo/w/wyse85-vb +/usr/share/ncurses4/terminfo/w/wyse85-w +/usr/share/ncurses4/terminfo/w/wyse85-wvb +/usr/share/ncurses4/terminfo/w/wyse99gt +/usr/share/ncurses4/terminfo/w/wyse99gt-25 +/usr/share/ncurses4/terminfo/w/wyse99gt-25-w +/usr/share/ncurses4/terminfo/w/wyse99gt-vb +/usr/share/ncurses4/terminfo/w/wyse99gt-w +/usr/share/ncurses4/terminfo/w/wyse99gt-wvb +/usr/share/ncurses4/terminfo/x +/usr/share/ncurses4/terminfo/x/x10term +/usr/share/ncurses4/terminfo/x/x1700 +/usr/share/ncurses4/terminfo/x/x1700-lm +/usr/share/ncurses4/terminfo/x/x1720 +/usr/share/ncurses4/terminfo/x/x1750 +/usr/share/ncurses4/terminfo/x/x68k +/usr/share/ncurses4/terminfo/x/x68k-ite +/usr/share/ncurses4/terminfo/x/x820 +/usr/share/ncurses4/terminfo/x/xenix +/usr/share/ncurses4/terminfo/x/xerox +/usr/share/ncurses4/terminfo/x/xerox-lm +/usr/share/ncurses4/terminfo/x/xerox1720 +/usr/share/ncurses4/terminfo/x/xerox820 +/usr/share/ncurses4/terminfo/x/xl83 +/usr/share/ncurses4/terminfo/x/xtalk +/usr/share/ncurses4/terminfo/x/xterm +/usr/share/ncurses4/terminfo/x/xterm+sl +/usr/share/ncurses4/terminfo/x/xterm+sl-twm +/usr/share/ncurses4/terminfo/x/xterm-16color +/usr/share/ncurses4/terminfo/x/xterm-8bit +/usr/share/ncurses4/terminfo/x/xterm-bold +/usr/share/ncurses4/terminfo/x/xterm-nic +/usr/share/ncurses4/terminfo/x/xterm-old +/usr/share/ncurses4/terminfo/x/xterm-pcolor +/usr/share/ncurses4/terminfo/x/xterm-r5 +/usr/share/ncurses4/terminfo/x/xterm-r6 +/usr/share/ncurses4/terminfo/x/xterm-sun +/usr/share/ncurses4/terminfo/x/xterm-xf86-v32 +/usr/share/ncurses4/terminfo/x/xterm-xf86-v33 +/usr/share/ncurses4/terminfo/x/xterm-xf86-v40 +/usr/share/ncurses4/terminfo/x/xterm-xi +/usr/share/ncurses4/terminfo/x/xterm1 +/usr/share/ncurses4/terminfo/x/xterms +/usr/share/ncurses4/terminfo/x/xterms-sun +/usr/share/ncurses4/terminfo/x/xwsh +/usr/share/ncurses4/terminfo/z +/usr/share/ncurses4/terminfo/z/z-100 +/usr/share/ncurses4/terminfo/z/z-100bw +/usr/share/ncurses4/terminfo/z/z100 +/usr/share/ncurses4/terminfo/z/z100bw +/usr/share/ncurses4/terminfo/z/z110 +/usr/share/ncurses4/terminfo/z/z110bw +/usr/share/ncurses4/terminfo/z/z19 +/usr/share/ncurses4/terminfo/z/z29 +/usr/share/ncurses4/terminfo/z/z29a +/usr/share/ncurses4/terminfo/z/z29a-kc-bc +/usr/share/ncurses4/terminfo/z/z29a-kc-uc +/usr/share/ncurses4/terminfo/z/z29a-nkc-bc +/usr/share/ncurses4/terminfo/z/z29a-nkc-uc +/usr/share/ncurses4/terminfo/z/z29b +/usr/share/ncurses4/terminfo/z/z30 +/usr/share/ncurses4/terminfo/z/z340 +/usr/share/ncurses4/terminfo/z/z340-nam +/usr/share/ncurses4/terminfo/z/z39-a +/usr/share/ncurses4/terminfo/z/z39a +/usr/share/ncurses4/terminfo/z/z50 +/usr/share/ncurses4/terminfo/z/z8001 +/usr/share/ncurses4/terminfo/z/zen30 +/usr/share/ncurses4/terminfo/z/zen50 +/usr/share/ncurses4/terminfo/z/zen8001 +/usr/share/ncurses4/terminfo/z/zenith +/usr/share/ncurses4/terminfo/z/zenith29 +/usr/share/ncurses4/terminfo/z/zenith39-a +/usr/share/ncurses4/terminfo/z/zenith39-ansi +/usr/share/ncurses4/terminfo/z/zt-1 +/usr/share/ncurses4/terminfo/z/ztx +/usr/share/ncurses4/terminfo/z/ztx-1-a +/usr/share/ncurses4/terminfo/z/ztx11 + +2 15 RPM:Files 0 0 +2 14 #text 0 1 + +1 15 RDF:Description 0 0 +1 14 #text 0 1 + +0 15 RDF:RDF 0 0 diff --git a/result/rdf2.sax b/result/rdf2.sax new file mode 100644 index 0000000..f6686c1 --- /dev/null +++ b/result/rdf2.sax @@ -0,0 +1,191 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(RDF:RDF, xmlns:RDF='http://www.w3.org/TR/WD-rdf-syntax#', xmlns:RPM='http://www.rpm.org/') +SAX.characters( + , 3) +SAX.startElement(RDF:Description, about='ftp://rufus.w3.org/linux/dld/5.4/i386/RPMS/i386/ncurses4-4.2-3.i386.rpm') +SAX.characters( + , 5) +SAX.startElement(RPM:Name) +SAX.characters(ncurses4, 8) +SAX.endElement(RPM:Name) +SAX.characters( + , 5) +SAX.startElement(RPM:Version) +SAX.characters(4.2, 3) +SAX.endElement(RPM:Version) +SAX.characters( + , 5) +SAX.startElement(RPM:Release) +SAX.characters(3, 1) +SAX.endElement(RPM:Release) +SAX.characters( + , 5) +SAX.startElement(RPM:Arch) +SAX.characters(i386, 4) +SAX.endElement(RPM:Arch) +SAX.characters( + , 5) +SAX.startElement(RPM:Os) +SAX.characters(Linux, 5) +SAX.endElement(RPM:Os) +SAX.characters( + , 5) +SAX.startElement(RPM:Distribution) +SAX.characters(DLD, 3) +SAX.endElement(RPM:Distribution) +SAX.characters( + , 5) +SAX.startElement(RPM:Vendor) +SAX.characters(delix Computer GmbH, 19) +SAX.endElement(RPM:Vendor) +SAX.characters( + , 5) +SAX.startElement(RPM:Packager) +SAX.characters(Till Bubeck , 12) +SAX.characters(<, 1) +SAX.characters(bubeck@delix.de, 15) +SAX.characters(>, 1) +SAX.characters(, Ngo Than , 11) +SAX.characters(<, 1) +SAX.characters(than@delix.de, 13) +SAX.characters(>, 1) +SAX.endElement(RPM:Packager) +SAX.characters( + , 5) +SAX.startElement(RPM:Group) +SAX.characters(Libraries, 9) +SAX.endElement(RPM:Group) +SAX.characters( + , 5) +SAX.startElement(RPM:Summary) +SAX.characters(Bibliothek zur Ansteuerung von, 40) +SAX.endElement(RPM:Summary) +SAX.characters( + , 5) +SAX.startElement(RPM:Description) +SAX.characters(Diese Library stellt dem Progr, 57) +SAX.characters(ä, 2) +SAX.characters(ngige +Routinen zur Ansteuerung, 57) +SAX.characters(ü, 2) +SAX.characters(gung, die +speziell optimiert s, 57) +SAX.characters(', 1) +SAX.characters(new curses, 10) +SAX.characters(', 1) +SAX.characters( (ncurses) Variante und ist de, 51) +SAX.characters(ü, 2) +SAX.characters(r die klassische Curses-Librar, 70) +SAX.endElement(RPM:Description) +SAX.characters( + , 5) +SAX.startElement(RPM:Copyright) +SAX.characters(GPL, 3) +SAX.endElement(RPM:Copyright) +SAX.characters( + , 5) +SAX.startElement(RPM:Sources) +SAX.characters(ncurses4-4.2-3.src.rpm, 22) +SAX.endElement(RPM:Sources) +SAX.characters( + , 5) +SAX.startElement(RPM:BuildDate) +SAX.characters(Tue May 12 19:30:26 1998, 24) +SAX.endElement(RPM:BuildDate) +SAX.characters( + , 5) +SAX.startElement(RPM:Date) +SAX.characters(895015826, 9) +SAX.endElement(RPM:Date) +SAX.characters( + , 5) +SAX.startElement(RPM:Size) +SAX.characters(1373513, 7) +SAX.endElement(RPM:Size) +SAX.characters( + , 5) +SAX.startElement(RPM:BuildHost) +SAX.characters(erdbeere.delix.de, 17) +SAX.endElement(RPM:BuildHost) +SAX.characters( + , 5) +SAX.startElement(RPM:Provides) +SAX.characters( + , 7) +SAX.startElement(RDF:Bag) +SAX.characters( + , 9) +SAX.startElement(RPM:Resource, href='../../../../../resources/ncurses4.rdf') +SAX.characters(ncurses4, 8) +SAX.endElement(RPM:Resource) +SAX.characters( + , 9) +SAX.startElement(RPM:Resource, href='../../../../../resources/libpanel.so.4.rdf') +SAX.characters(libpanel.so.4, 13) +SAX.endElement(RPM:Resource) +SAX.characters( + , 9) +SAX.startElement(RPM:Resource, href='../../../../../resources/libncurses.so.4.rdf') +SAX.characters(libncurses.so.4, 15) +SAX.endElement(RPM:Resource) +SAX.characters( + , 9) +SAX.startElement(RPM:Resource, href='../../../../../resources/libmenu.so.4.rdf') +SAX.characters(libmenu.so.4, 12) +SAX.endElement(RPM:Resource) +SAX.characters( + , 9) +SAX.startElement(RPM:Resource, href='../../../../../resources/libform.so.4.rdf') +SAX.characters(libform.so.4, 12) +SAX.endElement(RPM:Resource) +SAX.characters( + , 9) +SAX.startElement(RPM:Resource, href='../../../../../resources/ncurses.rdf') +SAX.characters(ncurses, 7) +SAX.endElement(RPM:Resource) +SAX.characters( + , 7) +SAX.endElement(RDF:Bag) +SAX.characters( + , 5) +SAX.endElement(RPM:Provides) +SAX.characters( + , 5) +SAX.startElement(RPM:Files) +SAX.characters(/lib/libncurses.so.4 +/lib/libn, 2008) +SAX.characters(/share/ncurses4/terminfo/P/P14, 4000) +SAX.characters(es4/terminfo/a/alt7pc +/usr/sha, 4000) +SAX.characters(/a/att4415-w +/usr/share/ncurse, 4000) +SAX.characters(ses4/terminfo/b/bee +/usr/share, 4000) +SAX.characters(r/share/ncurses4/terminfo/c/co, 4000) +SAX.characters(/usr/share/ncurses4/terminfo/d, 4000) +SAX.characters(sr/share/ncurses4/terminfo/g/g, 4000) +SAX.characters(/terminfo/h/hp2626-12x40 +/usr/, 4000) +SAX.characters(e/ncurses4/terminfo/i/intertub, 4000) +SAX.characters(rses4/terminfo/m/mskermit22714, 4000) +SAX.characters(are/ncurses4/terminfo/p/p12-m +, 4000) +SAX.characters(pt100w +/usr/share/ncurses4/ter, 4000) +SAX.characters(sr/share/ncurses4/terminfo/s/s, 4000) +SAX.characters(usr/share/ncurses4/terminfo/t/, 4000) +SAX.characters(share/ncurses4/terminfo/v/vi55, 4000) +SAX.characters(are/ncurses4/terminfo/w/wy160-, 4000) +SAX.characters(/wy99gt-vb +/usr/share/ncurses4, 4000) +SAX.characters(/w/wyse99gt +/usr/share/ncurses, 2907) +SAX.endElement(RPM:Files) +SAX.characters( + , 3) +SAX.endElement(RDF:Description) +SAX.characters( +, 1) +SAX.endElement(RDF:RDF) +SAX.endDocument() diff --git a/result/rdf2.sax2 b/result/rdf2.sax2 new file mode 100644 index 0000000..388174f --- /dev/null +++ b/result/rdf2.sax2 @@ -0,0 +1,191 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(RDF, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 2, xmlns:RDF='http://www.w3.org/TR/WD-rdf-syntax#', xmlns:RPM='http://www.rpm.org/', 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(Description, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 0, 1, 0, about='ftp:...', 71) +SAX.characters( + , 5) +SAX.startElementNs(Name, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(ncurses4, 8) +SAX.endElementNs(Name, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Version, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(4.2, 3) +SAX.endElementNs(Version, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Release, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(3, 1) +SAX.endElementNs(Release, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Arch, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(i386, 4) +SAX.endElementNs(Arch, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Os, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(Linux, 5) +SAX.endElementNs(Os, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Distribution, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(DLD, 3) +SAX.endElementNs(Distribution, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Vendor, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(delix Computer GmbH, 19) +SAX.endElementNs(Vendor, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Packager, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(Till Bubeck , 12) +SAX.characters(<, 1) +SAX.characters(bubeck@delix.de, 15) +SAX.characters(>, 1) +SAX.characters(, Ngo Than , 11) +SAX.characters(<, 1) +SAX.characters(than@delix.de, 13) +SAX.characters(>, 1) +SAX.endElementNs(Packager, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Group, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(Libraries, 9) +SAX.endElementNs(Group, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Summary, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(Bibliothek zur Ansteuerung von, 40) +SAX.endElementNs(Summary, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Description, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(Diese Library stellt dem Progr, 57) +SAX.characters(ä, 2) +SAX.characters(ngige +Routinen zur Ansteuerung, 57) +SAX.characters(ü, 2) +SAX.characters(gung, die +speziell optimiert s, 57) +SAX.characters(', 1) +SAX.characters(new curses, 10) +SAX.characters(', 1) +SAX.characters( (ncurses) Variante und ist de, 51) +SAX.characters(ü, 2) +SAX.characters(r die klassische Curses-Librar, 70) +SAX.endElementNs(Description, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Copyright, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(GPL, 3) +SAX.endElementNs(Copyright, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Sources, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(ncurses4-4.2-3.src.rpm, 22) +SAX.endElementNs(Sources, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(BuildDate, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(Tue May 12 19:30:26 1998, 24) +SAX.endElementNs(BuildDate, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Date, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(895015826, 9) +SAX.endElementNs(Date, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Size, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(1373513, 7) +SAX.endElementNs(Size, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(BuildHost, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(erdbeere.delix.de, 17) +SAX.endElementNs(BuildHost, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Provides, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters( + , 7) +SAX.startElementNs(Bag, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 0, 0, 0) +SAX.characters( + , 9) +SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 1, 0, href='../....', 37) +SAX.characters(ncurses4, 8) +SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/') +SAX.characters( + , 9) +SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 1, 0, href='../....', 42) +SAX.characters(libpanel.so.4, 13) +SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/') +SAX.characters( + , 9) +SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 1, 0, href='../....', 44) +SAX.characters(libncurses.so.4, 15) +SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/') +SAX.characters( + , 9) +SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 1, 0, href='../....', 41) +SAX.characters(libmenu.so.4, 12) +SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/') +SAX.characters( + , 9) +SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 1, 0, href='../....', 41) +SAX.characters(libform.so.4, 12) +SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/') +SAX.characters( + , 9) +SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 1, 0, href='../....', 36) +SAX.characters(ncurses, 7) +SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/') +SAX.characters( + , 7) +SAX.endElementNs(Bag, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#') +SAX.characters( + , 5) +SAX.endElementNs(Provides, RPM, 'http://www.rpm.org/') +SAX.characters( + , 5) +SAX.startElementNs(Files, RPM, 'http://www.rpm.org/', 0, 0, 0) +SAX.characters(/lib/libncurses.so.4 +/lib/libn, 2008) +SAX.characters(/share/ncurses4/terminfo/P/P14, 4000) +SAX.characters(es4/terminfo/a/alt7pc +/usr/sha, 4000) +SAX.characters(/a/att4415-w +/usr/share/ncurse, 4000) +SAX.characters(ses4/terminfo/b/bee +/usr/share, 4000) +SAX.characters(r/share/ncurses4/terminfo/c/co, 4000) +SAX.characters(/usr/share/ncurses4/terminfo/d, 4000) +SAX.characters(sr/share/ncurses4/terminfo/g/g, 4000) +SAX.characters(/terminfo/h/hp2626-12x40 +/usr/, 4000) +SAX.characters(e/ncurses4/terminfo/i/intertub, 4000) +SAX.characters(rses4/terminfo/m/mskermit22714, 4000) +SAX.characters(are/ncurses4/terminfo/p/p12-m +, 4000) +SAX.characters(pt100w +/usr/share/ncurses4/ter, 4000) +SAX.characters(sr/share/ncurses4/terminfo/s/s, 4000) +SAX.characters(usr/share/ncurses4/terminfo/t/, 4000) +SAX.characters(share/ncurses4/terminfo/v/vi55, 4000) +SAX.characters(are/ncurses4/terminfo/w/wy160-, 4000) +SAX.characters(/wy99gt-vb +/usr/share/ncurses4, 4000) +SAX.characters(/w/wyse99gt +/usr/share/ncurses, 2907) +SAX.endElementNs(Files, RPM, 'http://www.rpm.org/') +SAX.characters( + , 3) +SAX.endElementNs(Description, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#') +SAX.characters( +, 1) +SAX.endElementNs(RDF, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#') +SAX.endDocument() diff --git a/result/regexp/branch b/result/regexp/branch new file mode 100644 index 0000000..dd703ac --- /dev/null +++ b/result/regexp/branch @@ -0,0 +1,14 @@ +Regexp: a|b(d|e(g|h|i)|f)|c +a: Ok +c: Ok +bd: Ok +bf: Ok +beg: Ok +beh: Ok +bei: Ok +b: Fail +be: Fail +bi: Fail +f: Fail +ab: Fail +ac: Fail diff --git a/result/regexp/bug316338 b/result/regexp/bug316338 new file mode 100644 index 0000000..1cd1ac0 --- /dev/null +++ b/result/regexp/bug316338 @@ -0,0 +1,20 @@ +Regexp: (((C|c)(([\s]*\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?){3})+[\s]*))+ +C 433: Ok +C 433 12: Fail +C 433 123: Ok +C 433 123 456: Ok +C 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12: Fail +Regexp: (((C|c)(([\s]+\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?){3})+[\s]*))+ +C 433: Fail +C 433 12: Fail +C 433 123: Fail +C 433 123 456: Ok +C 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12: Fail +Regexp: (((C|c)(([\s]+\-?[0-9]+(\.[0-9]+)?[\s]*,[\s]*\-?[0-9]+(\.[0-9]+)?){3})+[\s]*))+ +C 433: Fail +C 433 12: Fail +C 433 123: Fail +C 433 123 456: Fail +C 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12: Fail +Regexp: (((M|m)([\s]+\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?[\s]*,[\s]*\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?)[\s]*)|((L|l)([\s]+\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?[\s]*,[\s]*\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?)+[\s]*)|((H|h)([\s]+\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?)+[\s]*)|((V|v)([\s]+\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?)+[\s]*)|((C|c)(([\s]+\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?[\s]*,[\s]*\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?){3})+[\s]*)|((Q|q)(([\s]+\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?[\s]*,[\s]*\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?){2})+[\s]*)|((S|s)(([\s]+\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?[\s]*,[\s]*\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?){2})+[\s]*)|((A|a)([\s]+\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?[\s]*,[\s]*\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?[\s]*\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?[\s]+[0-1][\s]+[0-1][\s]+\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?[\s]*,[\s]*\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?)+[\s]*)|((Z|z)[\s]*))* +M 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12: Fail diff --git a/result/regexp/bug420596 b/result/regexp/bug420596 new file mode 100644 index 0000000..d23b303 --- /dev/null +++ b/result/regexp/bug420596 @@ -0,0 +1,10 @@ +Regexp: (\+|-)(0[0-9]|1[0-1]) ++01: Ok +-01: Ok ++10: Ok +-10: Ok +Regexp: [+-](0[0-9]|1[0-1]) ++01: Ok +-01: Ok ++10: Ok +-10: Ok diff --git a/result/regexp/content b/result/regexp/content new file mode 100644 index 0000000..220fd47 --- /dev/null +++ b/result/regexp/content @@ -0,0 +1,12 @@ +Regexp: ((a|b|c)def) +adef: Ok +bdef: Ok +adefg: Fail +aaef: Fail +Regexp: ((a|b|c|d|e|f)?(g|h|i)+(k|l)*) +g: Ok +gi: Ok +fil: Ok +gikl: Ok +cghhhiill: Ok +ak: Fail diff --git a/result/regexp/hard b/result/regexp/hard new file mode 100644 index 0000000..28d6164 --- /dev/null +++ b/result/regexp/hard @@ -0,0 +1,12 @@ +Regexp: ((a|b|\p{Nd}){1,2}|aaa|bbbb){1,2} +bab: Ok +aaca: Fail +aaabbbb: Ok +a0b: Ok +aa0aaa: Fail +b0aaa: Ok +Regexp: (\d{1,3}\.){3}\d{1,3} +1.2.3.4: Ok +1.22.333.44: Ok +1.2.3: Fail +1..2.3: Fail diff --git a/result/regexp/ncname b/result/regexp/ncname new file mode 100644 index 0000000..3f16d95 --- /dev/null +++ b/result/regexp/ncname @@ -0,0 +1,6 @@ +Regexp: [\i-[:]][\c-[:]]* +a: Ok +abc: Ok +abc1d: Ok +1ac: Fail +a1b:c: Fail diff --git a/result/regexp/ranges b/result/regexp/ranges new file mode 100644 index 0000000..4cbf298 --- /dev/null +++ b/result/regexp/ranges @@ -0,0 +1,15 @@ +Regexp: a{2,3} +a: Fail +aa: Ok +aaa: Ok +aaaa: Fail +Regexp: ba{2,3}c +bac: Fail +baac: Ok +baaac: Ok +baaaac: Fail +Regexp: a(b|c){2,3}d +abcd: Ok +acccd: Ok +abd: Fail +accccd: Fail diff --git a/result/regexp/ranges2 b/result/regexp/ranges2 new file mode 100644 index 0000000..8305732 --- /dev/null +++ b/result/regexp/ranges2 @@ -0,0 +1,14 @@ +Regexp: (a|b{0,3}){0,1} +a: Ok +aa: Fail +b: Ok +bb: Ok +bbb: Ok +bbbb: Fail +ab: Fail +ba: Fail +Regexp: ([0-9]{0,3}|([0-9]{0}|[0-9]{0,3})){0,3} +0: Ok +00: Ok +123: Ok +abc: Fail diff --git a/result/regexp/xpath b/result/regexp/xpath new file mode 100644 index 0000000..4f6b13c --- /dev/null +++ b/result/regexp/xpath @@ -0,0 +1,32 @@ +Regexp: (\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*(\|(\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*)* +a: Ok +a12/b312/b312/b312/b312/b312/b312/b312/b312/b312/b312/b312/b3: Ok +*: Ok +a|b: Ok +.//a:b: Ok +a/b/c: Ok +a/*/b: Ok +a:*/b:*/c:*: Ok +child::a/child::b:*: Ok +child::a/child::b:*|a/*/b|.//a:b: Ok +1: Fail +1ab: Fail +a:1: Ok +@a: Fail +ancestor::a: Ok +Regexp: (\.//)?(((child::)?(([\i-[:]][\c-[:]]*:)?([\i-[:]][\c-[:]]*|\*)))|\.)(/(((child::)?(([\i-[:]][\c-[:]]*:)?([\i-[:]][\c-[:]]*|\*)))|\.))*(\|(\.//)?(((child::)?(([\i-[:]][\c-[:]]*:)?([\i-[:]][\c-[:]]*|\*)))|\.)(/(((child::)?(([\i-[:]][\c-[:]]*:)?([\i-[:]][\c-[:]]*|\*)))|\.))*)* +a: Ok +a12/b312/b312/b312/b312/b312/b312/b312/b312/b312/b312/b312/b3: Ok +*: Ok +a|b: Ok +.//a:b: Ok +a/b/c: Ok +a/*/b: Ok +a:*/b:*/c:*: Ok +child::a/child::b:*: Ok +child::a/child::b:*|a/*/b|.//a:b: Ok +1: Fail +1ab: Fail +a:1: Fail +@a: Fail +ancestor::a: Fail diff --git a/result/relaxng/302836_0 b/result/relaxng/302836_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/302836_0.err b/result/relaxng/302836_0.err new file mode 100644 index 0000000..46ae43c --- /dev/null +++ b/result/relaxng/302836_0.err @@ -0,0 +1 @@ +./test/relaxng/302836_0.xml validates diff --git a/result/relaxng/302836_err b/result/relaxng/302836_err new file mode 100644 index 0000000..fab2d78 --- /dev/null +++ b/result/relaxng/302836_err @@ -0,0 +1 @@ +./test/relaxng/302836.rng validates diff --git a/result/relaxng/302836_valid b/result/relaxng/302836_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/307377_0 b/result/relaxng/307377_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/307377_0.err b/result/relaxng/307377_0.err new file mode 100644 index 0000000..1f465bb --- /dev/null +++ b/result/relaxng/307377_0.err @@ -0,0 +1,2 @@ +./test/relaxng/307377_0.xml:1: element number: Relax-NG validity error : Element number failed to validate attributes +./test/relaxng/307377_0.xml fails to validate diff --git a/result/relaxng/307377_1 b/result/relaxng/307377_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/307377_1.err b/result/relaxng/307377_1.err new file mode 100644 index 0000000..abfb533 --- /dev/null +++ b/result/relaxng/307377_1.err @@ -0,0 +1,3 @@ +./test/relaxng/307377_1.xml:1: element number: Relax-NG validity error : Extra data in list: a +./test/relaxng/307377_1.xml:1: element number: Relax-NG validity error : Element number failed to validate attributes +./test/relaxng/307377_1.xml fails to validate diff --git a/result/relaxng/307377_2 b/result/relaxng/307377_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/307377_2.err b/result/relaxng/307377_2.err new file mode 100644 index 0000000..158ea42 --- /dev/null +++ b/result/relaxng/307377_2.err @@ -0,0 +1 @@ +./test/relaxng/307377_2.xml validates diff --git a/result/relaxng/307377_err b/result/relaxng/307377_err new file mode 100644 index 0000000..5705eab --- /dev/null +++ b/result/relaxng/307377_err @@ -0,0 +1 @@ +./test/relaxng/307377.rng validates diff --git a/result/relaxng/307377_valid b/result/relaxng/307377_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/492317_0 b/result/relaxng/492317_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/492317_0.err b/result/relaxng/492317_0.err new file mode 100644 index 0000000..9b8db15 --- /dev/null +++ b/result/relaxng/492317_0.err @@ -0,0 +1 @@ +./test/relaxng/492317_0.xml validates diff --git a/result/relaxng/492317_1 b/result/relaxng/492317_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/492317_1.err b/result/relaxng/492317_1.err new file mode 100644 index 0000000..177ee7b --- /dev/null +++ b/result/relaxng/492317_1.err @@ -0,0 +1 @@ +./test/relaxng/492317_1.xml validates diff --git a/result/relaxng/492317_2 b/result/relaxng/492317_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/492317_2.err b/result/relaxng/492317_2.err new file mode 100644 index 0000000..e8b22e7 --- /dev/null +++ b/result/relaxng/492317_2.err @@ -0,0 +1,3 @@ +./test/relaxng/492317_2.xml:2: element child: Relax-NG validity error : Element child failed to validate attributes +./test/relaxng/492317_2.xml:1: element root: Relax-NG validity error : Element root failed to validate content +./test/relaxng/492317_2.xml fails to validate diff --git a/result/relaxng/492317_err b/result/relaxng/492317_err new file mode 100644 index 0000000..1f07539 --- /dev/null +++ b/result/relaxng/492317_err @@ -0,0 +1 @@ +./test/relaxng/492317.rng validates diff --git a/result/relaxng/492317_valid b/result/relaxng/492317_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/558452_0 b/result/relaxng/558452_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/558452_0.err b/result/relaxng/558452_0.err new file mode 100644 index 0000000..fecc3e9 --- /dev/null +++ b/result/relaxng/558452_0.err @@ -0,0 +1 @@ +./test/relaxng/558452_0.xml validates diff --git a/result/relaxng/558452_1 b/result/relaxng/558452_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/558452_1.err b/result/relaxng/558452_1.err new file mode 100644 index 0000000..1e225be --- /dev/null +++ b/result/relaxng/558452_1.err @@ -0,0 +1,2 @@ +./test/relaxng/558452_1.xml:2: element doc: Relax-NG validity error : Expecting an element , got nothing +./test/relaxng/558452_1.xml fails to validate diff --git a/result/relaxng/558452_2 b/result/relaxng/558452_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/558452_2.err b/result/relaxng/558452_2.err new file mode 100644 index 0000000..d48287c --- /dev/null +++ b/result/relaxng/558452_2.err @@ -0,0 +1 @@ +./test/relaxng/558452_2.xml validates diff --git a/result/relaxng/558452_3 b/result/relaxng/558452_3 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/558452_3.err b/result/relaxng/558452_3.err new file mode 100644 index 0000000..0d33cdb --- /dev/null +++ b/result/relaxng/558452_3.err @@ -0,0 +1 @@ +./test/relaxng/558452_3.xml validates diff --git a/result/relaxng/558452_4 b/result/relaxng/558452_4 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/558452_4.err b/result/relaxng/558452_4.err new file mode 100644 index 0000000..22e12fa --- /dev/null +++ b/result/relaxng/558452_4.err @@ -0,0 +1,2 @@ +./test/relaxng/558452_4.xml:6: element elem: Relax-NG validity error : Did not expect element elem there +./test/relaxng/558452_4.xml fails to validate diff --git a/result/relaxng/558452_err b/result/relaxng/558452_err new file mode 100644 index 0000000..b162846 --- /dev/null +++ b/result/relaxng/558452_err @@ -0,0 +1 @@ +./test/relaxng/558452.rng validates diff --git a/result/relaxng/558452_valid b/result/relaxng/558452_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/595792-ext_err b/result/relaxng/595792-ext_err new file mode 100644 index 0000000..092fdbd --- /dev/null +++ b/result/relaxng/595792-ext_err @@ -0,0 +1 @@ +./test/relaxng/595792-ext.rng validates diff --git a/result/relaxng/595792-ext_valid b/result/relaxng/595792-ext_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/595792_0 b/result/relaxng/595792_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/595792_0.err b/result/relaxng/595792_0.err new file mode 100644 index 0000000..abd73cd --- /dev/null +++ b/result/relaxng/595792_0.err @@ -0,0 +1 @@ +./test/relaxng/595792_0.xml validates diff --git a/result/relaxng/595792_err b/result/relaxng/595792_err new file mode 100644 index 0000000..e9f3192 --- /dev/null +++ b/result/relaxng/595792_err @@ -0,0 +1 @@ +./test/relaxng/595792.rng validates diff --git a/result/relaxng/595792_valid b/result/relaxng/595792_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/OpenDocumentSub_0 b/result/relaxng/OpenDocumentSub_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/OpenDocumentSub_0.err b/result/relaxng/OpenDocumentSub_0.err new file mode 100644 index 0000000..d1c6917 --- /dev/null +++ b/result/relaxng/OpenDocumentSub_0.err @@ -0,0 +1 @@ +./test/relaxng/OpenDocumentSub_0.xml validates diff --git a/result/relaxng/OpenDocumentSub_err b/result/relaxng/OpenDocumentSub_err new file mode 100644 index 0000000..941d6c4 --- /dev/null +++ b/result/relaxng/OpenDocumentSub_err @@ -0,0 +1 @@ +./test/relaxng/OpenDocumentSub.rng validates diff --git a/result/relaxng/OpenDocumentSub_valid b/result/relaxng/OpenDocumentSub_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/addressBook_err b/result/relaxng/addressBook_err new file mode 100644 index 0000000..584d55a --- /dev/null +++ b/result/relaxng/addressBook_err @@ -0,0 +1 @@ +./test/relaxng/addressBook.rng validates diff --git a/result/relaxng/addressBook_valid b/result/relaxng/addressBook_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/choice0_0 b/result/relaxng/choice0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/choice0_0.err b/result/relaxng/choice0_0.err new file mode 100644 index 0000000..5198fa7 --- /dev/null +++ b/result/relaxng/choice0_0.err @@ -0,0 +1 @@ +./test/relaxng/choice0_0.xml validates diff --git a/result/relaxng/choice0_1 b/result/relaxng/choice0_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/choice0_1.err b/result/relaxng/choice0_1.err new file mode 100644 index 0000000..51214ba --- /dev/null +++ b/result/relaxng/choice0_1.err @@ -0,0 +1 @@ +./test/relaxng/choice0_1.xml validates diff --git a/result/relaxng/choice0_2 b/result/relaxng/choice0_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/choice0_2.err b/result/relaxng/choice0_2.err new file mode 100644 index 0000000..19bd3cc --- /dev/null +++ b/result/relaxng/choice0_2.err @@ -0,0 +1 @@ +./test/relaxng/choice0_2.xml validates diff --git a/result/relaxng/choice0_3 b/result/relaxng/choice0_3 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/choice0_3.err b/result/relaxng/choice0_3.err new file mode 100644 index 0000000..c82345f --- /dev/null +++ b/result/relaxng/choice0_3.err @@ -0,0 +1 @@ +./test/relaxng/choice0_3.xml validates diff --git a/result/relaxng/choice0_4 b/result/relaxng/choice0_4 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/choice0_4.err b/result/relaxng/choice0_4.err new file mode 100644 index 0000000..dca145b --- /dev/null +++ b/result/relaxng/choice0_4.err @@ -0,0 +1,2 @@ +./test/relaxng/choice0_4.xml:1: element device: Relax-NG validity error : Element device failed to validate content +./test/relaxng/choice0_4.xml fails to validate diff --git a/result/relaxng/choice0_5 b/result/relaxng/choice0_5 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/choice0_5.err b/result/relaxng/choice0_5.err new file mode 100644 index 0000000..a8dd1c9 --- /dev/null +++ b/result/relaxng/choice0_5.err @@ -0,0 +1,2 @@ +./test/relaxng/choice0_5.xml:1: element device: Relax-NG validity error : Element device failed to validate content +./test/relaxng/choice0_5.xml fails to validate diff --git a/result/relaxng/choice0_6 b/result/relaxng/choice0_6 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/choice0_6.err b/result/relaxng/choice0_6.err new file mode 100644 index 0000000..4facb03 --- /dev/null +++ b/result/relaxng/choice0_6.err @@ -0,0 +1,2 @@ +./test/relaxng/choice0_6.xml:1: element device: Relax-NG validity error : Element device failed to validate content +./test/relaxng/choice0_6.xml fails to validate diff --git a/result/relaxng/choice0_7 b/result/relaxng/choice0_7 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/choice0_7.err b/result/relaxng/choice0_7.err new file mode 100644 index 0000000..89b9e32 --- /dev/null +++ b/result/relaxng/choice0_7.err @@ -0,0 +1,3 @@ +./test/relaxng/choice0_7.xml:1: element device: Relax-NG validity error : Did not expect element unknown-element there +./test/relaxng/choice0_7.xml:1: element device: Relax-NG validity error : Element device failed to validate content +./test/relaxng/choice0_7.xml fails to validate diff --git a/result/relaxng/choice0_8 b/result/relaxng/choice0_8 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/choice0_8.err b/result/relaxng/choice0_8.err new file mode 100644 index 0000000..7094ecc --- /dev/null +++ b/result/relaxng/choice0_8.err @@ -0,0 +1,3 @@ +./test/relaxng/choice0_8.xml:1: element device: Relax-NG validity error : Did not expect element unknown-element there +./test/relaxng/choice0_8.xml:1: element device: Relax-NG validity error : Element device failed to validate content +./test/relaxng/choice0_8.xml fails to validate diff --git a/result/relaxng/choice0_err b/result/relaxng/choice0_err new file mode 100644 index 0000000..cf12431 --- /dev/null +++ b/result/relaxng/choice0_err @@ -0,0 +1 @@ +./test/relaxng/choice0.rng validates diff --git a/result/relaxng/choice0_valid b/result/relaxng/choice0_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/compare0_0 b/result/relaxng/compare0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/compare0_0.err b/result/relaxng/compare0_0.err new file mode 100644 index 0000000..9328f27 --- /dev/null +++ b/result/relaxng/compare0_0.err @@ -0,0 +1,3 @@ +./test/relaxng/compare0_0.xml:2: element number: Relax-NG validity error : failed to compare type integer +./test/relaxng/compare0_0.xml:2: element number: Relax-NG validity error : Element number failed to validate attributes +./test/relaxng/compare0_0.xml fails to validate diff --git a/result/relaxng/compare0_err b/result/relaxng/compare0_err new file mode 100644 index 0000000..543d734 --- /dev/null +++ b/result/relaxng/compare0_err @@ -0,0 +1 @@ +./test/relaxng/compare0.rng validates diff --git a/result/relaxng/compare0_valid b/result/relaxng/compare0_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/comps_0 b/result/relaxng/comps_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/comps_0.err b/result/relaxng/comps_0.err new file mode 100644 index 0000000..cdefe63 --- /dev/null +++ b/result/relaxng/comps_0.err @@ -0,0 +1 @@ +./test/relaxng/comps_0.xml validates diff --git a/result/relaxng/comps_err b/result/relaxng/comps_err new file mode 100644 index 0000000..67dd402 --- /dev/null +++ b/result/relaxng/comps_err @@ -0,0 +1 @@ +./test/relaxng/comps.rng validates diff --git a/result/relaxng/comps_valid b/result/relaxng/comps_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/demo2_err b/result/relaxng/demo2_err new file mode 100644 index 0000000..9bdaeb9 --- /dev/null +++ b/result/relaxng/demo2_err @@ -0,0 +1 @@ +./test/relaxng/demo2.rng validates diff --git a/result/relaxng/demo2_valid b/result/relaxng/demo2_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/demo3_err b/result/relaxng/demo3_err new file mode 100644 index 0000000..ccced98 --- /dev/null +++ b/result/relaxng/demo3_err @@ -0,0 +1 @@ +./test/relaxng/demo3.rng validates diff --git a/result/relaxng/demo3_valid b/result/relaxng/demo3_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/demo_err b/result/relaxng/demo_err new file mode 100644 index 0000000..4f397f8 --- /dev/null +++ b/result/relaxng/demo_err @@ -0,0 +1 @@ +./test/relaxng/demo.rng validates diff --git a/result/relaxng/demo_valid b/result/relaxng/demo_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/docbook_0 b/result/relaxng/docbook_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/docbook_0.err b/result/relaxng/docbook_0.err new file mode 100644 index 0000000..98d1971 --- /dev/null +++ b/result/relaxng/docbook_0.err @@ -0,0 +1 @@ +./test/relaxng/docbook_0.xml validates diff --git a/result/relaxng/docbook_err b/result/relaxng/docbook_err new file mode 100644 index 0000000..8124012 --- /dev/null +++ b/result/relaxng/docbook_err @@ -0,0 +1 @@ +./test/relaxng/docbook.rng validates diff --git a/result/relaxng/docbook_valid b/result/relaxng/docbook_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/empty0_0 b/result/relaxng/empty0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/empty0_0.err b/result/relaxng/empty0_0.err new file mode 100644 index 0000000..97d0c9d --- /dev/null +++ b/result/relaxng/empty0_0.err @@ -0,0 +1 @@ +./test/relaxng/empty0_0.xml validates diff --git a/result/relaxng/empty0_err b/result/relaxng/empty0_err new file mode 100644 index 0000000..c4060cf --- /dev/null +++ b/result/relaxng/empty0_err @@ -0,0 +1 @@ +./test/relaxng/empty0.rng validates diff --git a/result/relaxng/empty0_valid b/result/relaxng/empty0_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/empty1_0 b/result/relaxng/empty1_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/empty1_0.err b/result/relaxng/empty1_0.err new file mode 100644 index 0000000..4c1a9af --- /dev/null +++ b/result/relaxng/empty1_0.err @@ -0,0 +1 @@ +./test/relaxng/empty1_0.xml validates diff --git a/result/relaxng/empty1_1 b/result/relaxng/empty1_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/empty1_1.err b/result/relaxng/empty1_1.err new file mode 100644 index 0000000..6a71bb0 --- /dev/null +++ b/result/relaxng/empty1_1.err @@ -0,0 +1 @@ +./test/relaxng/empty1_1.xml validates diff --git a/result/relaxng/empty1_err b/result/relaxng/empty1_err new file mode 100644 index 0000000..f52d95c --- /dev/null +++ b/result/relaxng/empty1_err @@ -0,0 +1 @@ +./test/relaxng/empty1.rng validates diff --git a/result/relaxng/empty1_valid b/result/relaxng/empty1_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/inline2_err b/result/relaxng/inline2_err new file mode 100644 index 0000000..027408e --- /dev/null +++ b/result/relaxng/inline2_err @@ -0,0 +1 @@ +./test/relaxng/inline2.rng validates diff --git a/result/relaxng/inline2_valid b/result/relaxng/inline2_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/inline3_err b/result/relaxng/inline3_err new file mode 100644 index 0000000..1ceccb8 --- /dev/null +++ b/result/relaxng/inline3_err @@ -0,0 +1 @@ +./test/relaxng/inline3.rng validates diff --git a/result/relaxng/inline3_valid b/result/relaxng/inline3_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/inline_err b/result/relaxng/inline_err new file mode 100644 index 0000000..8ba0e5c --- /dev/null +++ b/result/relaxng/inline_err @@ -0,0 +1 @@ +./test/relaxng/inline.rng validates diff --git a/result/relaxng/inline_valid b/result/relaxng/inline_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/interleave0_0_err b/result/relaxng/interleave0_0_err new file mode 100644 index 0000000..0d865ec --- /dev/null +++ b/result/relaxng/interleave0_0_err @@ -0,0 +1 @@ +./test/relaxng/interleave0_0.rng validates diff --git a/result/relaxng/interleave0_0_valid b/result/relaxng/interleave0_0_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/interleave1_0_err b/result/relaxng/interleave1_0_err new file mode 100644 index 0000000..4802352 --- /dev/null +++ b/result/relaxng/interleave1_0_err @@ -0,0 +1 @@ +./test/relaxng/interleave1_0.rng validates diff --git a/result/relaxng/interleave1_0_valid b/result/relaxng/interleave1_0_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/libvirt_0 b/result/relaxng/libvirt_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/libvirt_0.err b/result/relaxng/libvirt_0.err new file mode 100644 index 0000000..29535b8 --- /dev/null +++ b/result/relaxng/libvirt_0.err @@ -0,0 +1 @@ +./test/relaxng/libvirt_0.xml validates diff --git a/result/relaxng/libvirt_err b/result/relaxng/libvirt_err new file mode 100644 index 0000000..4acf3ed --- /dev/null +++ b/result/relaxng/libvirt_err @@ -0,0 +1 @@ +./test/relaxng/libvirt.rng validates diff --git a/result/relaxng/libvirt_valid b/result/relaxng/libvirt_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/list_0 b/result/relaxng/list_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/list_0.err b/result/relaxng/list_0.err new file mode 100644 index 0000000..5c8ca7c --- /dev/null +++ b/result/relaxng/list_0.err @@ -0,0 +1 @@ +./test/relaxng/list_0.xml validates diff --git a/result/relaxng/list_1 b/result/relaxng/list_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/list_1.err b/result/relaxng/list_1.err new file mode 100644 index 0000000..3ae35ae --- /dev/null +++ b/result/relaxng/list_1.err @@ -0,0 +1,2 @@ +./test/relaxng/list_1.xml:1: element elem1: Relax-NG validity error : Element elem1 failed to validate attributes +./test/relaxng/list_1.xml fails to validate diff --git a/result/relaxng/list_err b/result/relaxng/list_err new file mode 100644 index 0000000..748e21b --- /dev/null +++ b/result/relaxng/list_err @@ -0,0 +1 @@ +./test/relaxng/list.rng validates diff --git a/result/relaxng/list_valid b/result/relaxng/list_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/pattern1_err b/result/relaxng/pattern1_err new file mode 100644 index 0000000..8856446 --- /dev/null +++ b/result/relaxng/pattern1_err @@ -0,0 +1 @@ +./test/relaxng/pattern1.rng validates diff --git a/result/relaxng/pattern1_valid b/result/relaxng/pattern1_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/pattern2_err b/result/relaxng/pattern2_err new file mode 100644 index 0000000..acccc55 --- /dev/null +++ b/result/relaxng/pattern2_err @@ -0,0 +1 @@ +./test/relaxng/pattern2.rng validates diff --git a/result/relaxng/pattern2_valid b/result/relaxng/pattern2_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/proofsystem_err b/result/relaxng/proofsystem_err new file mode 100644 index 0000000..9fbcfdc --- /dev/null +++ b/result/relaxng/proofsystem_err @@ -0,0 +1 @@ +./test/relaxng/proofsystem.rng validates diff --git a/result/relaxng/proofsystem_valid b/result/relaxng/proofsystem_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/rngbug-001_err b/result/relaxng/rngbug-001_err new file mode 100644 index 0000000..4c30153 --- /dev/null +++ b/result/relaxng/rngbug-001_err @@ -0,0 +1 @@ +./test/relaxng/rngbug-001.rng validates diff --git a/result/relaxng/rngbug-001_valid b/result/relaxng/rngbug-001_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/spec1_1 b/result/relaxng/spec1_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/spec1_1.err b/result/relaxng/spec1_1.err new file mode 100644 index 0000000..1e213a2 --- /dev/null +++ b/result/relaxng/spec1_1.err @@ -0,0 +1 @@ +./test/relaxng/spec1_1.xml validates diff --git a/result/relaxng/spec1_err b/result/relaxng/spec1_err new file mode 100644 index 0000000..8551c1e --- /dev/null +++ b/result/relaxng/spec1_err @@ -0,0 +1 @@ +./test/relaxng/spec1.rng validates diff --git a/result/relaxng/spec1_valid b/result/relaxng/spec1_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/spec_0 b/result/relaxng/spec_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/spec_0.err b/result/relaxng/spec_0.err new file mode 100644 index 0000000..df30e8a --- /dev/null +++ b/result/relaxng/spec_0.err @@ -0,0 +1 @@ +./test/relaxng/spec_0.xml validates diff --git a/result/relaxng/spec_err b/result/relaxng/spec_err new file mode 100644 index 0000000..27336e1 --- /dev/null +++ b/result/relaxng/spec_err @@ -0,0 +1 @@ +./test/relaxng/spec.rng validates diff --git a/result/relaxng/spec_valid b/result/relaxng/spec_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/table_err b/result/relaxng/table_err new file mode 100644 index 0000000..47e7996 --- /dev/null +++ b/result/relaxng/table_err @@ -0,0 +1 @@ +./test/relaxng/table.rng validates diff --git a/result/relaxng/table_valid b/result/relaxng/table_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_10_1 b/result/relaxng/tutor10_10_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_10_1.err b/result/relaxng/tutor10_10_1.err new file mode 100644 index 0000000..2370ff2 --- /dev/null +++ b/result/relaxng/tutor10_10_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor10_10_1.xml validates diff --git a/result/relaxng/tutor10_10_err b/result/relaxng/tutor10_10_err new file mode 100644 index 0000000..24a5f7e --- /dev/null +++ b/result/relaxng/tutor10_10_err @@ -0,0 +1 @@ +./test/relaxng/tutor10_10.rng validates diff --git a/result/relaxng/tutor10_10_valid b/result/relaxng/tutor10_10_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_1_1 b/result/relaxng/tutor10_1_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_1_1.err b/result/relaxng/tutor10_1_1.err new file mode 100644 index 0000000..361e1e8 --- /dev/null +++ b/result/relaxng/tutor10_1_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor10_1_1.xml validates diff --git a/result/relaxng/tutor10_1_2 b/result/relaxng/tutor10_1_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_1_2.err b/result/relaxng/tutor10_1_2.err new file mode 100644 index 0000000..6092d7e --- /dev/null +++ b/result/relaxng/tutor10_1_2.err @@ -0,0 +1 @@ +./test/relaxng/tutor10_1_2.xml validates diff --git a/result/relaxng/tutor10_1_3 b/result/relaxng/tutor10_1_3 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_1_3.err b/result/relaxng/tutor10_1_3.err new file mode 100644 index 0000000..1c5b68d --- /dev/null +++ b/result/relaxng/tutor10_1_3.err @@ -0,0 +1 @@ +./test/relaxng/tutor10_1_3.xml validates diff --git a/result/relaxng/tutor10_1_4 b/result/relaxng/tutor10_1_4 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_1_4.err b/result/relaxng/tutor10_1_4.err new file mode 100644 index 0000000..4030e14 --- /dev/null +++ b/result/relaxng/tutor10_1_4.err @@ -0,0 +1,2 @@ +./test/relaxng/tutor10_1_4.xml:1: element foo: Relax-NG validity error : Expecting a namespace for element foo +./test/relaxng/tutor10_1_4.xml fails to validate diff --git a/result/relaxng/tutor10_1_5 b/result/relaxng/tutor10_1_5 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_1_5.err b/result/relaxng/tutor10_1_5.err new file mode 100644 index 0000000..2ab8d90 --- /dev/null +++ b/result/relaxng/tutor10_1_5.err @@ -0,0 +1,2 @@ +./test/relaxng/tutor10_1_5.xml:1: element foo: Relax-NG validity error : Element foo has wrong namespace: expecting http://www.example.com +./test/relaxng/tutor10_1_5.xml fails to validate diff --git a/result/relaxng/tutor10_1_6 b/result/relaxng/tutor10_1_6 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_1_6.err b/result/relaxng/tutor10_1_6.err new file mode 100644 index 0000000..cafeb15 --- /dev/null +++ b/result/relaxng/tutor10_1_6.err @@ -0,0 +1,2 @@ +./test/relaxng/tutor10_1_6.xml:1: element foo: Relax-NG validity error : Element foo has wrong namespace: expecting http://www.example.com +./test/relaxng/tutor10_1_6.xml fails to validate diff --git a/result/relaxng/tutor10_1_err b/result/relaxng/tutor10_1_err new file mode 100644 index 0000000..85be3be --- /dev/null +++ b/result/relaxng/tutor10_1_err @@ -0,0 +1 @@ +./test/relaxng/tutor10_1.rng validates diff --git a/result/relaxng/tutor10_1_valid b/result/relaxng/tutor10_1_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_2_1 b/result/relaxng/tutor10_2_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_2_1.err b/result/relaxng/tutor10_2_1.err new file mode 100644 index 0000000..836dbf7 --- /dev/null +++ b/result/relaxng/tutor10_2_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor10_2_1.xml validates diff --git a/result/relaxng/tutor10_2_2 b/result/relaxng/tutor10_2_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_2_2.err b/result/relaxng/tutor10_2_2.err new file mode 100644 index 0000000..7e6ce31 --- /dev/null +++ b/result/relaxng/tutor10_2_2.err @@ -0,0 +1 @@ +./test/relaxng/tutor10_2_2.xml validates diff --git a/result/relaxng/tutor10_2_3 b/result/relaxng/tutor10_2_3 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_2_3.err b/result/relaxng/tutor10_2_3.err new file mode 100644 index 0000000..2ff2a82 --- /dev/null +++ b/result/relaxng/tutor10_2_3.err @@ -0,0 +1,2 @@ +./test/relaxng/tutor10_2_3.xml:1: element foo: Relax-NG validity error : Expecting no namespace for element foo +./test/relaxng/tutor10_2_3.xml fails to validate diff --git a/result/relaxng/tutor10_2_4 b/result/relaxng/tutor10_2_4 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_2_4.err b/result/relaxng/tutor10_2_4.err new file mode 100644 index 0000000..d716b9b --- /dev/null +++ b/result/relaxng/tutor10_2_4.err @@ -0,0 +1,2 @@ +./test/relaxng/tutor10_2_4.xml:1: element foo: Relax-NG validity error : Expecting no namespace for element foo +./test/relaxng/tutor10_2_4.xml fails to validate diff --git a/result/relaxng/tutor10_2_err b/result/relaxng/tutor10_2_err new file mode 100644 index 0000000..b3e32a6 --- /dev/null +++ b/result/relaxng/tutor10_2_err @@ -0,0 +1 @@ +./test/relaxng/tutor10_2.rng validates diff --git a/result/relaxng/tutor10_2_valid b/result/relaxng/tutor10_2_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_3_1 b/result/relaxng/tutor10_3_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_3_1.err b/result/relaxng/tutor10_3_1.err new file mode 100644 index 0000000..5f9a3b0 --- /dev/null +++ b/result/relaxng/tutor10_3_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor10_3_1.xml validates diff --git a/result/relaxng/tutor10_3_err b/result/relaxng/tutor10_3_err new file mode 100644 index 0000000..3c714aa --- /dev/null +++ b/result/relaxng/tutor10_3_err @@ -0,0 +1 @@ +./test/relaxng/tutor10_3.rng validates diff --git a/result/relaxng/tutor10_3_valid b/result/relaxng/tutor10_3_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_4_1 b/result/relaxng/tutor10_4_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_4_1.err b/result/relaxng/tutor10_4_1.err new file mode 100644 index 0000000..833c5ee --- /dev/null +++ b/result/relaxng/tutor10_4_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor10_4_1.xml validates diff --git a/result/relaxng/tutor10_4_err b/result/relaxng/tutor10_4_err new file mode 100644 index 0000000..3208137 --- /dev/null +++ b/result/relaxng/tutor10_4_err @@ -0,0 +1 @@ +./test/relaxng/tutor10_4.rng validates diff --git a/result/relaxng/tutor10_4_valid b/result/relaxng/tutor10_4_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_5_1 b/result/relaxng/tutor10_5_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_5_1.err b/result/relaxng/tutor10_5_1.err new file mode 100644 index 0000000..fb0bd96 --- /dev/null +++ b/result/relaxng/tutor10_5_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor10_5_1.xml validates diff --git a/result/relaxng/tutor10_5_err b/result/relaxng/tutor10_5_err new file mode 100644 index 0000000..49808cf --- /dev/null +++ b/result/relaxng/tutor10_5_err @@ -0,0 +1 @@ +./test/relaxng/tutor10_5.rng validates diff --git a/result/relaxng/tutor10_5_valid b/result/relaxng/tutor10_5_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_6_1 b/result/relaxng/tutor10_6_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_6_1.err b/result/relaxng/tutor10_6_1.err new file mode 100644 index 0000000..4fed8f7 --- /dev/null +++ b/result/relaxng/tutor10_6_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor10_6_1.xml validates diff --git a/result/relaxng/tutor10_6_err b/result/relaxng/tutor10_6_err new file mode 100644 index 0000000..09368c1 --- /dev/null +++ b/result/relaxng/tutor10_6_err @@ -0,0 +1 @@ +./test/relaxng/tutor10_6.rng validates diff --git a/result/relaxng/tutor10_6_valid b/result/relaxng/tutor10_6_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_7_1 b/result/relaxng/tutor10_7_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_7_1.err b/result/relaxng/tutor10_7_1.err new file mode 100644 index 0000000..bbaab53 --- /dev/null +++ b/result/relaxng/tutor10_7_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor10_7_1.xml validates diff --git a/result/relaxng/tutor10_7_2 b/result/relaxng/tutor10_7_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_7_2.err b/result/relaxng/tutor10_7_2.err new file mode 100644 index 0000000..f618988 --- /dev/null +++ b/result/relaxng/tutor10_7_2.err @@ -0,0 +1 @@ +./test/relaxng/tutor10_7_2.xml validates diff --git a/result/relaxng/tutor10_7_3 b/result/relaxng/tutor10_7_3 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_7_3.err b/result/relaxng/tutor10_7_3.err new file mode 100644 index 0000000..913dfaf --- /dev/null +++ b/result/relaxng/tutor10_7_3.err @@ -0,0 +1,2 @@ +./test/relaxng/tutor10_7_3.xml:2: element card: Relax-NG validity error : Element card failed to validate attributes +./test/relaxng/tutor10_7_3.xml fails to validate diff --git a/result/relaxng/tutor10_7_err b/result/relaxng/tutor10_7_err new file mode 100644 index 0000000..081a230 --- /dev/null +++ b/result/relaxng/tutor10_7_err @@ -0,0 +1 @@ +./test/relaxng/tutor10_7.rng validates diff --git a/result/relaxng/tutor10_7_valid b/result/relaxng/tutor10_7_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_8_1 b/result/relaxng/tutor10_8_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_8_1.err b/result/relaxng/tutor10_8_1.err new file mode 100644 index 0000000..2412108 --- /dev/null +++ b/result/relaxng/tutor10_8_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor10_8_1.xml validates diff --git a/result/relaxng/tutor10_8_2 b/result/relaxng/tutor10_8_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_8_2.err b/result/relaxng/tutor10_8_2.err new file mode 100644 index 0000000..6becf86 --- /dev/null +++ b/result/relaxng/tutor10_8_2.err @@ -0,0 +1 @@ +./test/relaxng/tutor10_8_2.xml validates diff --git a/result/relaxng/tutor10_8_3 b/result/relaxng/tutor10_8_3 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_8_3.err b/result/relaxng/tutor10_8_3.err new file mode 100644 index 0000000..ee0eb55 --- /dev/null +++ b/result/relaxng/tutor10_8_3.err @@ -0,0 +1,2 @@ +./test/relaxng/tutor10_8_3.xml:2: element card: Relax-NG validity error : Element card failed to validate attributes +./test/relaxng/tutor10_8_3.xml fails to validate diff --git a/result/relaxng/tutor10_8_err b/result/relaxng/tutor10_8_err new file mode 100644 index 0000000..1a864cc --- /dev/null +++ b/result/relaxng/tutor10_8_err @@ -0,0 +1 @@ +./test/relaxng/tutor10_8.rng validates diff --git a/result/relaxng/tutor10_8_valid b/result/relaxng/tutor10_8_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_9_1 b/result/relaxng/tutor10_9_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor10_9_1.err b/result/relaxng/tutor10_9_1.err new file mode 100644 index 0000000..3e82887 --- /dev/null +++ b/result/relaxng/tutor10_9_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor10_9_1.xml validates diff --git a/result/relaxng/tutor10_9_err b/result/relaxng/tutor10_9_err new file mode 100644 index 0000000..942058e --- /dev/null +++ b/result/relaxng/tutor10_9_err @@ -0,0 +1 @@ +./test/relaxng/tutor10_9.rng validates diff --git a/result/relaxng/tutor10_9_valid b/result/relaxng/tutor10_9_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor11_1_1 b/result/relaxng/tutor11_1_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor11_1_1.err b/result/relaxng/tutor11_1_1.err new file mode 100644 index 0000000..a8283fa --- /dev/null +++ b/result/relaxng/tutor11_1_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor11_1_1.xml validates diff --git a/result/relaxng/tutor11_1_2 b/result/relaxng/tutor11_1_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor11_1_2.err b/result/relaxng/tutor11_1_2.err new file mode 100644 index 0000000..72a72fa --- /dev/null +++ b/result/relaxng/tutor11_1_2.err @@ -0,0 +1 @@ +./test/relaxng/tutor11_1_2.xml validates diff --git a/result/relaxng/tutor11_1_3 b/result/relaxng/tutor11_1_3 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor11_1_3.err b/result/relaxng/tutor11_1_3.err new file mode 100644 index 0000000..4c19cc9 --- /dev/null +++ b/result/relaxng/tutor11_1_3.err @@ -0,0 +1 @@ +./test/relaxng/tutor11_1_3.xml validates diff --git a/result/relaxng/tutor11_1_err b/result/relaxng/tutor11_1_err new file mode 100644 index 0000000..88347fe --- /dev/null +++ b/result/relaxng/tutor11_1_err @@ -0,0 +1 @@ +./test/relaxng/tutor11_1.rng validates diff --git a/result/relaxng/tutor11_1_valid b/result/relaxng/tutor11_1_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor11_2_1 b/result/relaxng/tutor11_2_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor11_2_1.err b/result/relaxng/tutor11_2_1.err new file mode 100644 index 0000000..eec60ec --- /dev/null +++ b/result/relaxng/tutor11_2_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor11_2_1.xml validates diff --git a/result/relaxng/tutor11_2_2 b/result/relaxng/tutor11_2_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor11_2_2.err b/result/relaxng/tutor11_2_2.err new file mode 100644 index 0000000..f0abba0 --- /dev/null +++ b/result/relaxng/tutor11_2_2.err @@ -0,0 +1,2 @@ +./test/relaxng/tutor11_2_2.xml:3: element card: Relax-NG validity error : Invalid attribute foo for element card +./test/relaxng/tutor11_2_2.xml fails to validate diff --git a/result/relaxng/tutor11_2_3 b/result/relaxng/tutor11_2_3 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor11_2_3.err b/result/relaxng/tutor11_2_3.err new file mode 100644 index 0000000..f07ea78 --- /dev/null +++ b/result/relaxng/tutor11_2_3.err @@ -0,0 +1,2 @@ +./test/relaxng/tutor11_2_3.xml:3: element card: Relax-NG validity error : Invalid attribute b for element card +./test/relaxng/tutor11_2_3.xml fails to validate diff --git a/result/relaxng/tutor11_2_err b/result/relaxng/tutor11_2_err new file mode 100644 index 0000000..3294c13 --- /dev/null +++ b/result/relaxng/tutor11_2_err @@ -0,0 +1 @@ +./test/relaxng/tutor11_2.rng validates diff --git a/result/relaxng/tutor11_2_valid b/result/relaxng/tutor11_2_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor11_3_1 b/result/relaxng/tutor11_3_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor11_3_1.err b/result/relaxng/tutor11_3_1.err new file mode 100644 index 0000000..de9db32 --- /dev/null +++ b/result/relaxng/tutor11_3_1.err @@ -0,0 +1,2 @@ +./test/relaxng/tutor11_3.rng:1: element element: Relax-NG parser error : Attributes conflicts in group +Relax-NG schema ./test/relaxng/tutor11_3.rng failed to compile diff --git a/result/relaxng/tutor11_3_err b/result/relaxng/tutor11_3_err new file mode 100644 index 0000000..14d9d44 --- /dev/null +++ b/result/relaxng/tutor11_3_err @@ -0,0 +1 @@ +./test/relaxng/tutor11_3.rng validates diff --git a/result/relaxng/tutor11_3_valid b/result/relaxng/tutor11_3_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor11_4_1 b/result/relaxng/tutor11_4_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor11_4_1.err b/result/relaxng/tutor11_4_1.err new file mode 100644 index 0000000..16aed5c --- /dev/null +++ b/result/relaxng/tutor11_4_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor11_4_1.xml validates diff --git a/result/relaxng/tutor11_4_err b/result/relaxng/tutor11_4_err new file mode 100644 index 0000000..f0a8339 --- /dev/null +++ b/result/relaxng/tutor11_4_err @@ -0,0 +1 @@ +./test/relaxng/tutor11_4.rng validates diff --git a/result/relaxng/tutor11_4_valid b/result/relaxng/tutor11_4_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor12_1_1 b/result/relaxng/tutor12_1_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor12_1_1.err b/result/relaxng/tutor12_1_1.err new file mode 100644 index 0000000..aab20d3 --- /dev/null +++ b/result/relaxng/tutor12_1_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor12_1_1.xml validates diff --git a/result/relaxng/tutor12_1_err b/result/relaxng/tutor12_1_err new file mode 100644 index 0000000..a02fb41 --- /dev/null +++ b/result/relaxng/tutor12_1_err @@ -0,0 +1 @@ +./test/relaxng/tutor12_1.rng validates diff --git a/result/relaxng/tutor12_1_valid b/result/relaxng/tutor12_1_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor13_1_1 b/result/relaxng/tutor13_1_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor13_1_1.err b/result/relaxng/tutor13_1_1.err new file mode 100644 index 0000000..3a3f2ae --- /dev/null +++ b/result/relaxng/tutor13_1_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor13_1_1.xml validates diff --git a/result/relaxng/tutor13_1_err b/result/relaxng/tutor13_1_err new file mode 100644 index 0000000..ccd11ad --- /dev/null +++ b/result/relaxng/tutor13_1_err @@ -0,0 +1 @@ +./test/relaxng/tutor13_1.rng validates diff --git a/result/relaxng/tutor13_1_valid b/result/relaxng/tutor13_1_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor14_1_err b/result/relaxng/tutor14_1_err new file mode 100644 index 0000000..191ec3d --- /dev/null +++ b/result/relaxng/tutor14_1_err @@ -0,0 +1 @@ +./test/relaxng/tutor14_1.rng validates diff --git a/result/relaxng/tutor14_1_valid b/result/relaxng/tutor14_1_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor1_1_1 b/result/relaxng/tutor1_1_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor1_1_1.err b/result/relaxng/tutor1_1_1.err new file mode 100644 index 0000000..b6767f2 --- /dev/null +++ b/result/relaxng/tutor1_1_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor1_1_1.xml validates diff --git a/result/relaxng/tutor1_1_err b/result/relaxng/tutor1_1_err new file mode 100644 index 0000000..d7cbfe8 --- /dev/null +++ b/result/relaxng/tutor1_1_err @@ -0,0 +1 @@ +./test/relaxng/tutor1_1.rng validates diff --git a/result/relaxng/tutor1_1_valid b/result/relaxng/tutor1_1_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor1_2_1 b/result/relaxng/tutor1_2_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor1_2_1.err b/result/relaxng/tutor1_2_1.err new file mode 100644 index 0000000..2dc3698 --- /dev/null +++ b/result/relaxng/tutor1_2_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor1_2_1.xml validates diff --git a/result/relaxng/tutor1_2_err b/result/relaxng/tutor1_2_err new file mode 100644 index 0000000..97d32b2 --- /dev/null +++ b/result/relaxng/tutor1_2_err @@ -0,0 +1 @@ +./test/relaxng/tutor1_2.rng validates diff --git a/result/relaxng/tutor1_2_valid b/result/relaxng/tutor1_2_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor1_3_1 b/result/relaxng/tutor1_3_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor1_3_1.err b/result/relaxng/tutor1_3_1.err new file mode 100644 index 0000000..9c116d8 --- /dev/null +++ b/result/relaxng/tutor1_3_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor1_3_1.xml validates diff --git a/result/relaxng/tutor1_3_err b/result/relaxng/tutor1_3_err new file mode 100644 index 0000000..4941f8f --- /dev/null +++ b/result/relaxng/tutor1_3_err @@ -0,0 +1 @@ +./test/relaxng/tutor1_3.rng validates diff --git a/result/relaxng/tutor1_3_valid b/result/relaxng/tutor1_3_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor1_4_1 b/result/relaxng/tutor1_4_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor1_4_1.err b/result/relaxng/tutor1_4_1.err new file mode 100644 index 0000000..9dc35e6 --- /dev/null +++ b/result/relaxng/tutor1_4_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor1_4_1.xml validates diff --git a/result/relaxng/tutor1_4_err b/result/relaxng/tutor1_4_err new file mode 100644 index 0000000..a1fd60c --- /dev/null +++ b/result/relaxng/tutor1_4_err @@ -0,0 +1 @@ +./test/relaxng/tutor1_4.rng validates diff --git a/result/relaxng/tutor1_4_valid b/result/relaxng/tutor1_4_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor2_1_1 b/result/relaxng/tutor2_1_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor2_1_1.err b/result/relaxng/tutor2_1_1.err new file mode 100644 index 0000000..5da7633 --- /dev/null +++ b/result/relaxng/tutor2_1_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor2_1_1.xml validates diff --git a/result/relaxng/tutor2_1_err b/result/relaxng/tutor2_1_err new file mode 100644 index 0000000..df4778e --- /dev/null +++ b/result/relaxng/tutor2_1_err @@ -0,0 +1 @@ +./test/relaxng/tutor2_1.rng validates diff --git a/result/relaxng/tutor2_1_valid b/result/relaxng/tutor2_1_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor3_1_1 b/result/relaxng/tutor3_1_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor3_1_1.err b/result/relaxng/tutor3_1_1.err new file mode 100644 index 0000000..815f1f0 --- /dev/null +++ b/result/relaxng/tutor3_1_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor3_1_1.xml validates diff --git a/result/relaxng/tutor3_1_2 b/result/relaxng/tutor3_1_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor3_1_2.err b/result/relaxng/tutor3_1_2.err new file mode 100644 index 0000000..e126430 --- /dev/null +++ b/result/relaxng/tutor3_1_2.err @@ -0,0 +1 @@ +./test/relaxng/tutor3_1_2.xml validates diff --git a/result/relaxng/tutor3_1_err b/result/relaxng/tutor3_1_err new file mode 100644 index 0000000..949ef9a --- /dev/null +++ b/result/relaxng/tutor3_1_err @@ -0,0 +1 @@ +./test/relaxng/tutor3_1.rng validates diff --git a/result/relaxng/tutor3_1_valid b/result/relaxng/tutor3_1_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor3_2_1 b/result/relaxng/tutor3_2_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor3_2_1.err b/result/relaxng/tutor3_2_1.err new file mode 100644 index 0000000..380250a --- /dev/null +++ b/result/relaxng/tutor3_2_1.err @@ -0,0 +1,2 @@ +./test/relaxng/tutor3_2_1.xml:1: element email: Relax-NG validity error : Did not expect element email there +./test/relaxng/tutor3_2_1.xml fails to validate diff --git a/result/relaxng/tutor3_2_err b/result/relaxng/tutor3_2_err new file mode 100644 index 0000000..b6cb1ad --- /dev/null +++ b/result/relaxng/tutor3_2_err @@ -0,0 +1 @@ +./test/relaxng/tutor3_2.rng validates diff --git a/result/relaxng/tutor3_2_valid b/result/relaxng/tutor3_2_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor3_3_1 b/result/relaxng/tutor3_3_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor3_3_1.err b/result/relaxng/tutor3_3_1.err new file mode 100644 index 0000000..3cd5e05 --- /dev/null +++ b/result/relaxng/tutor3_3_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor3_3_1.xml validates diff --git a/result/relaxng/tutor3_3_err b/result/relaxng/tutor3_3_err new file mode 100644 index 0000000..92e83b6 --- /dev/null +++ b/result/relaxng/tutor3_3_err @@ -0,0 +1 @@ +./test/relaxng/tutor3_3.rng validates diff --git a/result/relaxng/tutor3_3_valid b/result/relaxng/tutor3_3_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor3_4_1 b/result/relaxng/tutor3_4_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor3_4_1.err b/result/relaxng/tutor3_4_1.err new file mode 100644 index 0000000..62956f7 --- /dev/null +++ b/result/relaxng/tutor3_4_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor3_4_1.xml validates diff --git a/result/relaxng/tutor3_4_err b/result/relaxng/tutor3_4_err new file mode 100644 index 0000000..61ef41f --- /dev/null +++ b/result/relaxng/tutor3_4_err @@ -0,0 +1 @@ +./test/relaxng/tutor3_4.rng validates diff --git a/result/relaxng/tutor3_4_valid b/result/relaxng/tutor3_4_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor3_5_1 b/result/relaxng/tutor3_5_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor3_5_1.err b/result/relaxng/tutor3_5_1.err new file mode 100644 index 0000000..715b160 --- /dev/null +++ b/result/relaxng/tutor3_5_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor3_5_1.xml validates diff --git a/result/relaxng/tutor3_5_2 b/result/relaxng/tutor3_5_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor3_5_2.err b/result/relaxng/tutor3_5_2.err new file mode 100644 index 0000000..16e6627 --- /dev/null +++ b/result/relaxng/tutor3_5_2.err @@ -0,0 +1,3 @@ +./test/relaxng/tutor3_5_2.xml:2: element email: Relax-NG validity error : Expecting element name, got email +./test/relaxng/tutor3_5_2.xml:2: element email: Relax-NG validity error : Element card failed to validate content +./test/relaxng/tutor3_5_2.xml fails to validate diff --git a/result/relaxng/tutor3_5_err b/result/relaxng/tutor3_5_err new file mode 100644 index 0000000..2e36868 --- /dev/null +++ b/result/relaxng/tutor3_5_err @@ -0,0 +1 @@ +./test/relaxng/tutor3_5.rng validates diff --git a/result/relaxng/tutor3_5_valid b/result/relaxng/tutor3_5_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor3_6_1 b/result/relaxng/tutor3_6_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor3_6_1.err b/result/relaxng/tutor3_6_1.err new file mode 100644 index 0000000..ba6456e --- /dev/null +++ b/result/relaxng/tutor3_6_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor3_6_1.xml validates diff --git a/result/relaxng/tutor3_6_err b/result/relaxng/tutor3_6_err new file mode 100644 index 0000000..8479bea --- /dev/null +++ b/result/relaxng/tutor3_6_err @@ -0,0 +1 @@ +./test/relaxng/tutor3_6.rng validates diff --git a/result/relaxng/tutor3_6_valid b/result/relaxng/tutor3_6_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor3_7_1 b/result/relaxng/tutor3_7_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor3_7_1.err b/result/relaxng/tutor3_7_1.err new file mode 100644 index 0000000..88b2132 --- /dev/null +++ b/result/relaxng/tutor3_7_1.err @@ -0,0 +1,2 @@ +./test/relaxng/tutor3_7.rng:1: element element: Relax-NG parser error : xmlRelaxNGParseElement: element has no content +Relax-NG schema ./test/relaxng/tutor3_7.rng failed to compile diff --git a/result/relaxng/tutor3_7_err b/result/relaxng/tutor3_7_err new file mode 100644 index 0000000..2546132 --- /dev/null +++ b/result/relaxng/tutor3_7_err @@ -0,0 +1,4 @@ +./test/relaxng/tutor3_7.rng:1: element element: Relax-NG validity error : Expecting an element , got nothing +./test/relaxng/tutor3_7.rng:1: element element: Relax-NG validity error : Invalid sequence in interleave +./test/relaxng/tutor3_7.rng:1: element element: Relax-NG validity error : Element element failed to validate content +./test/relaxng/tutor3_7.rng fails to validate diff --git a/result/relaxng/tutor3_7_valid b/result/relaxng/tutor3_7_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor3_8_1 b/result/relaxng/tutor3_8_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor3_8_1.err b/result/relaxng/tutor3_8_1.err new file mode 100644 index 0000000..89894a9 --- /dev/null +++ b/result/relaxng/tutor3_8_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor3_8_1.xml validates diff --git a/result/relaxng/tutor3_8_err b/result/relaxng/tutor3_8_err new file mode 100644 index 0000000..44fe75d --- /dev/null +++ b/result/relaxng/tutor3_8_err @@ -0,0 +1 @@ +./test/relaxng/tutor3_8.rng validates diff --git a/result/relaxng/tutor3_8_valid b/result/relaxng/tutor3_8_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor3_9_1 b/result/relaxng/tutor3_9_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor3_9_1.err b/result/relaxng/tutor3_9_1.err new file mode 100644 index 0000000..1ee50c2 --- /dev/null +++ b/result/relaxng/tutor3_9_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor3_9_1.xml validates diff --git a/result/relaxng/tutor3_9_err b/result/relaxng/tutor3_9_err new file mode 100644 index 0000000..d54fbe0 --- /dev/null +++ b/result/relaxng/tutor3_9_err @@ -0,0 +1 @@ +./test/relaxng/tutor3_9.rng validates diff --git a/result/relaxng/tutor3_9_valid b/result/relaxng/tutor3_9_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor4_1_1 b/result/relaxng/tutor4_1_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor4_1_1.err b/result/relaxng/tutor4_1_1.err new file mode 100644 index 0000000..d8f436d --- /dev/null +++ b/result/relaxng/tutor4_1_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor4_1_1.xml validates diff --git a/result/relaxng/tutor4_1_err b/result/relaxng/tutor4_1_err new file mode 100644 index 0000000..94f0289 --- /dev/null +++ b/result/relaxng/tutor4_1_err @@ -0,0 +1 @@ +./test/relaxng/tutor4_1.rng validates diff --git a/result/relaxng/tutor4_1_valid b/result/relaxng/tutor4_1_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor4_2_1 b/result/relaxng/tutor4_2_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor4_2_1.err b/result/relaxng/tutor4_2_1.err new file mode 100644 index 0000000..d44dcb8 --- /dev/null +++ b/result/relaxng/tutor4_2_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor4_2_1.xml validates diff --git a/result/relaxng/tutor4_2_err b/result/relaxng/tutor4_2_err new file mode 100644 index 0000000..82085d0 --- /dev/null +++ b/result/relaxng/tutor4_2_err @@ -0,0 +1 @@ +./test/relaxng/tutor4_2.rng validates diff --git a/result/relaxng/tutor4_2_valid b/result/relaxng/tutor4_2_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor4_3_1 b/result/relaxng/tutor4_3_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor4_3_1.err b/result/relaxng/tutor4_3_1.err new file mode 100644 index 0000000..7ff3afe --- /dev/null +++ b/result/relaxng/tutor4_3_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor4_3_1.xml validates diff --git a/result/relaxng/tutor4_3_2 b/result/relaxng/tutor4_3_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor4_3_2.err b/result/relaxng/tutor4_3_2.err new file mode 100644 index 0000000..d3eeffd --- /dev/null +++ b/result/relaxng/tutor4_3_2.err @@ -0,0 +1 @@ +./test/relaxng/tutor4_3_2.xml validates diff --git a/result/relaxng/tutor4_3_3 b/result/relaxng/tutor4_3_3 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor4_3_3.err b/result/relaxng/tutor4_3_3.err new file mode 100644 index 0000000..5ae9811 --- /dev/null +++ b/result/relaxng/tutor4_3_3.err @@ -0,0 +1 @@ +./test/relaxng/tutor4_3_3.xml validates diff --git a/result/relaxng/tutor4_3_4 b/result/relaxng/tutor4_3_4 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor4_3_4.err b/result/relaxng/tutor4_3_4.err new file mode 100644 index 0000000..e550043 --- /dev/null +++ b/result/relaxng/tutor4_3_4.err @@ -0,0 +1 @@ +./test/relaxng/tutor4_3_4.xml validates diff --git a/result/relaxng/tutor4_3_5 b/result/relaxng/tutor4_3_5 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor4_3_5.err b/result/relaxng/tutor4_3_5.err new file mode 100644 index 0000000..cf76480 --- /dev/null +++ b/result/relaxng/tutor4_3_5.err @@ -0,0 +1 @@ +./test/relaxng/tutor4_3_5.xml validates diff --git a/result/relaxng/tutor4_3_6 b/result/relaxng/tutor4_3_6 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor4_3_6.err b/result/relaxng/tutor4_3_6.err new file mode 100644 index 0000000..df80a81 --- /dev/null +++ b/result/relaxng/tutor4_3_6.err @@ -0,0 +1 @@ +./test/relaxng/tutor4_3_6.xml validates diff --git a/result/relaxng/tutor4_3_err b/result/relaxng/tutor4_3_err new file mode 100644 index 0000000..74eb8b2 --- /dev/null +++ b/result/relaxng/tutor4_3_err @@ -0,0 +1 @@ +./test/relaxng/tutor4_3.rng validates diff --git a/result/relaxng/tutor4_3_valid b/result/relaxng/tutor4_3_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor4_4_1 b/result/relaxng/tutor4_4_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor4_4_1.err b/result/relaxng/tutor4_4_1.err new file mode 100644 index 0000000..595bd6e --- /dev/null +++ b/result/relaxng/tutor4_4_1.err @@ -0,0 +1,2 @@ +./test/relaxng/tutor4_4.rng:25: element ref: Relax-NG parser error : Detected a cycle in inline references +Relax-NG schema ./test/relaxng/tutor4_4.rng failed to compile diff --git a/result/relaxng/tutor4_4_err b/result/relaxng/tutor4_4_err new file mode 100644 index 0000000..641ee87 --- /dev/null +++ b/result/relaxng/tutor4_4_err @@ -0,0 +1 @@ +./test/relaxng/tutor4_4.rng validates diff --git a/result/relaxng/tutor4_4_valid b/result/relaxng/tutor4_4_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor5_1_1 b/result/relaxng/tutor5_1_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor5_1_1.err b/result/relaxng/tutor5_1_1.err new file mode 100644 index 0000000..e6c2842 --- /dev/null +++ b/result/relaxng/tutor5_1_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor5_1_1.xml validates diff --git a/result/relaxng/tutor5_1_err b/result/relaxng/tutor5_1_err new file mode 100644 index 0000000..586fd98 --- /dev/null +++ b/result/relaxng/tutor5_1_err @@ -0,0 +1 @@ +./test/relaxng/tutor5_1.rng validates diff --git a/result/relaxng/tutor5_1_valid b/result/relaxng/tutor5_1_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor5_2_1 b/result/relaxng/tutor5_2_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor5_2_1.err b/result/relaxng/tutor5_2_1.err new file mode 100644 index 0000000..a64df3b --- /dev/null +++ b/result/relaxng/tutor5_2_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor5_2_1.xml validates diff --git a/result/relaxng/tutor5_2_err b/result/relaxng/tutor5_2_err new file mode 100644 index 0000000..de8f423 --- /dev/null +++ b/result/relaxng/tutor5_2_err @@ -0,0 +1 @@ +./test/relaxng/tutor5_2.rng validates diff --git a/result/relaxng/tutor5_2_valid b/result/relaxng/tutor5_2_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor5_3_1 b/result/relaxng/tutor5_3_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor5_3_1.err b/result/relaxng/tutor5_3_1.err new file mode 100644 index 0000000..72f4379 --- /dev/null +++ b/result/relaxng/tutor5_3_1.err @@ -0,0 +1,2 @@ +./test/relaxng/tutor5_3.rng:1: element element: Relax-NG parser error : Element bad has a content type error +Relax-NG schema ./test/relaxng/tutor5_3.rng failed to compile diff --git a/result/relaxng/tutor5_3_err b/result/relaxng/tutor5_3_err new file mode 100644 index 0000000..f00a543 --- /dev/null +++ b/result/relaxng/tutor5_3_err @@ -0,0 +1 @@ +./test/relaxng/tutor5_3.rng validates diff --git a/result/relaxng/tutor5_3_valid b/result/relaxng/tutor5_3_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor5_4_1 b/result/relaxng/tutor5_4_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor5_4_1.err b/result/relaxng/tutor5_4_1.err new file mode 100644 index 0000000..13ac9bc --- /dev/null +++ b/result/relaxng/tutor5_4_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor5_4_1.xml validates diff --git a/result/relaxng/tutor5_4_err b/result/relaxng/tutor5_4_err new file mode 100644 index 0000000..669b41d --- /dev/null +++ b/result/relaxng/tutor5_4_err @@ -0,0 +1 @@ +./test/relaxng/tutor5_4.rng validates diff --git a/result/relaxng/tutor5_4_valid b/result/relaxng/tutor5_4_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor5_5_err b/result/relaxng/tutor5_5_err new file mode 100644 index 0000000..4f9f0f5 --- /dev/null +++ b/result/relaxng/tutor5_5_err @@ -0,0 +1 @@ +./test/relaxng/tutor5_5.rng validates diff --git a/result/relaxng/tutor5_5_valid b/result/relaxng/tutor5_5_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor6_1_1 b/result/relaxng/tutor6_1_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor6_1_1.err b/result/relaxng/tutor6_1_1.err new file mode 100644 index 0000000..3c44662 --- /dev/null +++ b/result/relaxng/tutor6_1_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor6_1_1.xml validates diff --git a/result/relaxng/tutor6_1_2 b/result/relaxng/tutor6_1_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor6_1_2.err b/result/relaxng/tutor6_1_2.err new file mode 100644 index 0000000..6c70fed --- /dev/null +++ b/result/relaxng/tutor6_1_2.err @@ -0,0 +1 @@ +./test/relaxng/tutor6_1_2.xml validates diff --git a/result/relaxng/tutor6_1_3 b/result/relaxng/tutor6_1_3 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor6_1_3.err b/result/relaxng/tutor6_1_3.err new file mode 100644 index 0000000..f0f6e7f --- /dev/null +++ b/result/relaxng/tutor6_1_3.err @@ -0,0 +1,2 @@ +./test/relaxng/tutor6_1_3.xml:1: element card: Relax-NG validity error : Element card failed to validate attributes +./test/relaxng/tutor6_1_3.xml fails to validate diff --git a/result/relaxng/tutor6_1_4 b/result/relaxng/tutor6_1_4 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor6_1_4.err b/result/relaxng/tutor6_1_4.err new file mode 100644 index 0000000..d9b2291 --- /dev/null +++ b/result/relaxng/tutor6_1_4.err @@ -0,0 +1 @@ +./test/relaxng/tutor6_1_4.xml validates diff --git a/result/relaxng/tutor6_1_5 b/result/relaxng/tutor6_1_5 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor6_1_5.err b/result/relaxng/tutor6_1_5.err new file mode 100644 index 0000000..f601d7e --- /dev/null +++ b/result/relaxng/tutor6_1_5.err @@ -0,0 +1 @@ +./test/relaxng/tutor6_1_5.xml validates diff --git a/result/relaxng/tutor6_1_err b/result/relaxng/tutor6_1_err new file mode 100644 index 0000000..7440829 --- /dev/null +++ b/result/relaxng/tutor6_1_err @@ -0,0 +1 @@ +./test/relaxng/tutor6_1.rng validates diff --git a/result/relaxng/tutor6_1_valid b/result/relaxng/tutor6_1_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor6_2_1 b/result/relaxng/tutor6_2_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor6_2_1.err b/result/relaxng/tutor6_2_1.err new file mode 100644 index 0000000..d07807b --- /dev/null +++ b/result/relaxng/tutor6_2_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor6_2_1.xml validates diff --git a/result/relaxng/tutor6_2_2 b/result/relaxng/tutor6_2_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor6_2_2.err b/result/relaxng/tutor6_2_2.err new file mode 100644 index 0000000..df10075 --- /dev/null +++ b/result/relaxng/tutor6_2_2.err @@ -0,0 +1 @@ +./test/relaxng/tutor6_2_2.xml validates diff --git a/result/relaxng/tutor6_2_3 b/result/relaxng/tutor6_2_3 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor6_2_3.err b/result/relaxng/tutor6_2_3.err new file mode 100644 index 0000000..17602d3 --- /dev/null +++ b/result/relaxng/tutor6_2_3.err @@ -0,0 +1 @@ +./test/relaxng/tutor6_2_3.xml validates diff --git a/result/relaxng/tutor6_2_4 b/result/relaxng/tutor6_2_4 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor6_2_4.err b/result/relaxng/tutor6_2_4.err new file mode 100644 index 0000000..b28ac23 --- /dev/null +++ b/result/relaxng/tutor6_2_4.err @@ -0,0 +1,3 @@ +./test/relaxng/tutor6_2_4.xml:4: element preferredFormat: Relax-NG validity error : Error validating value +./test/relaxng/tutor6_2_4.xml:4: element preferredFormat: Relax-NG validity error : Element preferredFormat failed to validate content +./test/relaxng/tutor6_2_4.xml fails to validate diff --git a/result/relaxng/tutor6_2_err b/result/relaxng/tutor6_2_err new file mode 100644 index 0000000..ba78ec9 --- /dev/null +++ b/result/relaxng/tutor6_2_err @@ -0,0 +1 @@ +./test/relaxng/tutor6_2.rng validates diff --git a/result/relaxng/tutor6_2_valid b/result/relaxng/tutor6_2_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor6_3_1 b/result/relaxng/tutor6_3_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor6_3_1.err b/result/relaxng/tutor6_3_1.err new file mode 100644 index 0000000..91f721a --- /dev/null +++ b/result/relaxng/tutor6_3_1.err @@ -0,0 +1,2 @@ +./test/relaxng/tutor6_3_1.xml:1: element card: Relax-NG validity error : Element card failed to validate attributes +./test/relaxng/tutor6_3_1.xml fails to validate diff --git a/result/relaxng/tutor6_3_err b/result/relaxng/tutor6_3_err new file mode 100644 index 0000000..35dbe51 --- /dev/null +++ b/result/relaxng/tutor6_3_err @@ -0,0 +1 @@ +./test/relaxng/tutor6_3.rng validates diff --git a/result/relaxng/tutor6_3_valid b/result/relaxng/tutor6_3_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor7_1_1 b/result/relaxng/tutor7_1_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor7_1_1.err b/result/relaxng/tutor7_1_1.err new file mode 100644 index 0000000..6cae548 --- /dev/null +++ b/result/relaxng/tutor7_1_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor7_1_1.xml validates diff --git a/result/relaxng/tutor7_1_2 b/result/relaxng/tutor7_1_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor7_1_2.err b/result/relaxng/tutor7_1_2.err new file mode 100644 index 0000000..395f407 --- /dev/null +++ b/result/relaxng/tutor7_1_2.err @@ -0,0 +1,4 @@ +./test/relaxng/tutor7_1_2.xml:1: element vector: Relax-NG validity error : failed to validate type float +./test/relaxng/tutor7_1_2.xml:1: element vector: Relax-NG validity error : Error validating list +./test/relaxng/tutor7_1_2.xml:1: element vector: Relax-NG validity error : Element vector failed to validate content +./test/relaxng/tutor7_1_2.xml fails to validate diff --git a/result/relaxng/tutor7_1_3 b/result/relaxng/tutor7_1_3 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor7_1_3.err b/result/relaxng/tutor7_1_3.err new file mode 100644 index 0000000..90fb8f9 --- /dev/null +++ b/result/relaxng/tutor7_1_3.err @@ -0,0 +1,4 @@ +./test/relaxng/tutor7_1_3.xml:1: element vector: Relax-NG validity error : Extra data in list: 5.6 +./test/relaxng/tutor7_1_3.xml:1: element vector: Relax-NG validity error : Error validating list +./test/relaxng/tutor7_1_3.xml:1: element vector: Relax-NG validity error : Element vector failed to validate content +./test/relaxng/tutor7_1_3.xml fails to validate diff --git a/result/relaxng/tutor7_1_4 b/result/relaxng/tutor7_1_4 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor7_1_4.err b/result/relaxng/tutor7_1_4.err new file mode 100644 index 0000000..81b9f58 --- /dev/null +++ b/result/relaxng/tutor7_1_4.err @@ -0,0 +1 @@ +./test/relaxng/tutor7_1_4.xml validates diff --git a/result/relaxng/tutor7_1_err b/result/relaxng/tutor7_1_err new file mode 100644 index 0000000..03d273f --- /dev/null +++ b/result/relaxng/tutor7_1_err @@ -0,0 +1 @@ +./test/relaxng/tutor7_1.rng validates diff --git a/result/relaxng/tutor7_1_valid b/result/relaxng/tutor7_1_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor7_2_1 b/result/relaxng/tutor7_2_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor7_2_1.err b/result/relaxng/tutor7_2_1.err new file mode 100644 index 0000000..8673462 --- /dev/null +++ b/result/relaxng/tutor7_2_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor7_2_1.xml validates diff --git a/result/relaxng/tutor7_2_2 b/result/relaxng/tutor7_2_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor7_2_2.err b/result/relaxng/tutor7_2_2.err new file mode 100644 index 0000000..d03cb32 --- /dev/null +++ b/result/relaxng/tutor7_2_2.err @@ -0,0 +1 @@ +./test/relaxng/tutor7_2_2.xml validates diff --git a/result/relaxng/tutor7_2_3 b/result/relaxng/tutor7_2_3 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor7_2_3.err b/result/relaxng/tutor7_2_3.err new file mode 100644 index 0000000..baf1190 --- /dev/null +++ b/result/relaxng/tutor7_2_3.err @@ -0,0 +1 @@ +./test/relaxng/tutor7_2_3.xml validates diff --git a/result/relaxng/tutor7_2_4 b/result/relaxng/tutor7_2_4 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor7_2_4.err b/result/relaxng/tutor7_2_4.err new file mode 100644 index 0000000..b1c22a8 --- /dev/null +++ b/result/relaxng/tutor7_2_4.err @@ -0,0 +1,4 @@ +./test/relaxng/tutor7_2_4.xml:1: element vector: Relax-NG validity error : failed to validate type double +./test/relaxng/tutor7_2_4.xml:1: element vector: Relax-NG validity error : Error validating list +./test/relaxng/tutor7_2_4.xml:1: element vector: Relax-NG validity error : Element vector failed to validate content +./test/relaxng/tutor7_2_4.xml fails to validate diff --git a/result/relaxng/tutor7_2_err b/result/relaxng/tutor7_2_err new file mode 100644 index 0000000..cec5245 --- /dev/null +++ b/result/relaxng/tutor7_2_err @@ -0,0 +1 @@ +./test/relaxng/tutor7_2.rng validates diff --git a/result/relaxng/tutor7_2_valid b/result/relaxng/tutor7_2_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor7_3_1 b/result/relaxng/tutor7_3_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor7_3_1.err b/result/relaxng/tutor7_3_1.err new file mode 100644 index 0000000..e096b53 --- /dev/null +++ b/result/relaxng/tutor7_3_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor7_3_1.xml validates diff --git a/result/relaxng/tutor7_3_2 b/result/relaxng/tutor7_3_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor7_3_2.err b/result/relaxng/tutor7_3_2.err new file mode 100644 index 0000000..24e394d --- /dev/null +++ b/result/relaxng/tutor7_3_2.err @@ -0,0 +1 @@ +./test/relaxng/tutor7_3_2.xml validates diff --git a/result/relaxng/tutor7_3_3 b/result/relaxng/tutor7_3_3 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor7_3_3.err b/result/relaxng/tutor7_3_3.err new file mode 100644 index 0000000..4919675 --- /dev/null +++ b/result/relaxng/tutor7_3_3.err @@ -0,0 +1 @@ +./test/relaxng/tutor7_3_3.xml validates diff --git a/result/relaxng/tutor7_3_4 b/result/relaxng/tutor7_3_4 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor7_3_4.err b/result/relaxng/tutor7_3_4.err new file mode 100644 index 0000000..70531e4 --- /dev/null +++ b/result/relaxng/tutor7_3_4.err @@ -0,0 +1,4 @@ +./test/relaxng/tutor7_3_4.xml:1: element path: Relax-NG validity error : Extra data in list: 5.6 +./test/relaxng/tutor7_3_4.xml:1: element path: Relax-NG validity error : Error validating list +./test/relaxng/tutor7_3_4.xml:1: element path: Relax-NG validity error : Element path failed to validate content +./test/relaxng/tutor7_3_4.xml fails to validate diff --git a/result/relaxng/tutor7_3_5 b/result/relaxng/tutor7_3_5 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor7_3_5.err b/result/relaxng/tutor7_3_5.err new file mode 100644 index 0000000..601a68b --- /dev/null +++ b/result/relaxng/tutor7_3_5.err @@ -0,0 +1,4 @@ +./test/relaxng/tutor7_3_5.xml:1: element path: Relax-NG validity error : failed to validate type double +./test/relaxng/tutor7_3_5.xml:1: element path: Relax-NG validity error : Error validating list +./test/relaxng/tutor7_3_5.xml:1: element path: Relax-NG validity error : Element path failed to validate content +./test/relaxng/tutor7_3_5.xml fails to validate diff --git a/result/relaxng/tutor7_3_err b/result/relaxng/tutor7_3_err new file mode 100644 index 0000000..9f1c5a3 --- /dev/null +++ b/result/relaxng/tutor7_3_err @@ -0,0 +1 @@ +./test/relaxng/tutor7_3.rng validates diff --git a/result/relaxng/tutor7_3_valid b/result/relaxng/tutor7_3_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor8_1_1 b/result/relaxng/tutor8_1_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor8_1_1.err b/result/relaxng/tutor8_1_1.err new file mode 100644 index 0000000..578c396 --- /dev/null +++ b/result/relaxng/tutor8_1_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor8_1_1.xml validates diff --git a/result/relaxng/tutor8_1_2 b/result/relaxng/tutor8_1_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor8_1_2.err b/result/relaxng/tutor8_1_2.err new file mode 100644 index 0000000..11c1611 --- /dev/null +++ b/result/relaxng/tutor8_1_2.err @@ -0,0 +1 @@ +./test/relaxng/tutor8_1_2.xml validates diff --git a/result/relaxng/tutor8_1_err b/result/relaxng/tutor8_1_err new file mode 100644 index 0000000..a4f6ce5 --- /dev/null +++ b/result/relaxng/tutor8_1_err @@ -0,0 +1 @@ +./test/relaxng/tutor8_1.rng validates diff --git a/result/relaxng/tutor8_1_valid b/result/relaxng/tutor8_1_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor8_2_1 b/result/relaxng/tutor8_2_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor8_2_1.err b/result/relaxng/tutor8_2_1.err new file mode 100644 index 0000000..4c6b3d4 --- /dev/null +++ b/result/relaxng/tutor8_2_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor8_2_1.xml validates diff --git a/result/relaxng/tutor8_2_2 b/result/relaxng/tutor8_2_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor8_2_2.err b/result/relaxng/tutor8_2_2.err new file mode 100644 index 0000000..7f959b9 --- /dev/null +++ b/result/relaxng/tutor8_2_2.err @@ -0,0 +1 @@ +./test/relaxng/tutor8_2_2.xml validates diff --git a/result/relaxng/tutor8_2_3 b/result/relaxng/tutor8_2_3 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor8_2_3.err b/result/relaxng/tutor8_2_3.err new file mode 100644 index 0000000..21abe93 --- /dev/null +++ b/result/relaxng/tutor8_2_3.err @@ -0,0 +1 @@ +./test/relaxng/tutor8_2_3.xml validates diff --git a/result/relaxng/tutor8_2_4 b/result/relaxng/tutor8_2_4 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor8_2_4.err b/result/relaxng/tutor8_2_4.err new file mode 100644 index 0000000..40a08b4 --- /dev/null +++ b/result/relaxng/tutor8_2_4.err @@ -0,0 +1,3 @@ +Relax-NG validity error : Extra element title in interleave +./test/relaxng/tutor8_2_4.xml:5: element title: Relax-NG validity error : Element head failed to validate content +./test/relaxng/tutor8_2_4.xml fails to validate diff --git a/result/relaxng/tutor8_2_5 b/result/relaxng/tutor8_2_5 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor8_2_5.err b/result/relaxng/tutor8_2_5.err new file mode 100644 index 0000000..c215d76 --- /dev/null +++ b/result/relaxng/tutor8_2_5.err @@ -0,0 +1,4 @@ +./test/relaxng/tutor8_2_5.xml:1: element head: Relax-NG validity error : Expecting an element title, got nothing +./test/relaxng/tutor8_2_5.xml:1: element head: Relax-NG validity error : Invalid sequence in interleave +./test/relaxng/tutor8_2_5.xml:1: element head: Relax-NG validity error : Element head failed to validate content +./test/relaxng/tutor8_2_5.xml fails to validate diff --git a/result/relaxng/tutor8_2_6 b/result/relaxng/tutor8_2_6 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor8_2_6.err b/result/relaxng/tutor8_2_6.err new file mode 100644 index 0000000..b959768 --- /dev/null +++ b/result/relaxng/tutor8_2_6.err @@ -0,0 +1,3 @@ +Relax-NG validity error : Extra element base in interleave +./test/relaxng/tutor8_2_6.xml:4: element base: Relax-NG validity error : Element head failed to validate content +./test/relaxng/tutor8_2_6.xml fails to validate diff --git a/result/relaxng/tutor8_2_err b/result/relaxng/tutor8_2_err new file mode 100644 index 0000000..fa3dcb2 --- /dev/null +++ b/result/relaxng/tutor8_2_err @@ -0,0 +1 @@ +./test/relaxng/tutor8_2.rng validates diff --git a/result/relaxng/tutor8_2_valid b/result/relaxng/tutor8_2_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor8_3_1 b/result/relaxng/tutor8_3_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor8_3_1.err b/result/relaxng/tutor8_3_1.err new file mode 100644 index 0000000..9b637eb --- /dev/null +++ b/result/relaxng/tutor8_3_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor8_3_1.xml validates diff --git a/result/relaxng/tutor8_3_err b/result/relaxng/tutor8_3_err new file mode 100644 index 0000000..01c6184 --- /dev/null +++ b/result/relaxng/tutor8_3_err @@ -0,0 +1 @@ +./test/relaxng/tutor8_3.rng validates diff --git a/result/relaxng/tutor8_3_valid b/result/relaxng/tutor8_3_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_10_1 b/result/relaxng/tutor9_10_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_10_1.err b/result/relaxng/tutor9_10_1.err new file mode 100644 index 0000000..7c6117f --- /dev/null +++ b/result/relaxng/tutor9_10_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor9_10_1.xml validates diff --git a/result/relaxng/tutor9_10_err b/result/relaxng/tutor9_10_err new file mode 100644 index 0000000..a8a7cb6 --- /dev/null +++ b/result/relaxng/tutor9_10_err @@ -0,0 +1 @@ +./test/relaxng/tutor9_10.rng validates diff --git a/result/relaxng/tutor9_10_valid b/result/relaxng/tutor9_10_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_11_1 b/result/relaxng/tutor9_11_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_11_1.err b/result/relaxng/tutor9_11_1.err new file mode 100644 index 0000000..02a1f2a --- /dev/null +++ b/result/relaxng/tutor9_11_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor9_11_1.xml validates diff --git a/result/relaxng/tutor9_11_err b/result/relaxng/tutor9_11_err new file mode 100644 index 0000000..edd98bf --- /dev/null +++ b/result/relaxng/tutor9_11_err @@ -0,0 +1 @@ +./test/relaxng/tutor9_11.rng validates diff --git a/result/relaxng/tutor9_11_valid b/result/relaxng/tutor9_11_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_12_1 b/result/relaxng/tutor9_12_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_12_1.err b/result/relaxng/tutor9_12_1.err new file mode 100644 index 0000000..08f2a8a --- /dev/null +++ b/result/relaxng/tutor9_12_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor9_12_1.xml validates diff --git a/result/relaxng/tutor9_12_err b/result/relaxng/tutor9_12_err new file mode 100644 index 0000000..8881730 --- /dev/null +++ b/result/relaxng/tutor9_12_err @@ -0,0 +1 @@ +./test/relaxng/tutor9_12.rng validates diff --git a/result/relaxng/tutor9_12_valid b/result/relaxng/tutor9_12_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_1_1 b/result/relaxng/tutor9_1_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_1_1.err b/result/relaxng/tutor9_1_1.err new file mode 100644 index 0000000..42d03d1 --- /dev/null +++ b/result/relaxng/tutor9_1_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor9_1_1.xml validates diff --git a/result/relaxng/tutor9_1_err b/result/relaxng/tutor9_1_err new file mode 100644 index 0000000..22c5f37 --- /dev/null +++ b/result/relaxng/tutor9_1_err @@ -0,0 +1 @@ +./test/relaxng/tutor9_1.rng validates diff --git a/result/relaxng/tutor9_1_valid b/result/relaxng/tutor9_1_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_2_1 b/result/relaxng/tutor9_2_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_2_1.err b/result/relaxng/tutor9_2_1.err new file mode 100644 index 0000000..fc174ff --- /dev/null +++ b/result/relaxng/tutor9_2_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor9_2_1.xml validates diff --git a/result/relaxng/tutor9_2_2 b/result/relaxng/tutor9_2_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_2_2.err b/result/relaxng/tutor9_2_2.err new file mode 100644 index 0000000..a07aa0d --- /dev/null +++ b/result/relaxng/tutor9_2_2.err @@ -0,0 +1 @@ +./test/relaxng/tutor9_2_2.xml validates diff --git a/result/relaxng/tutor9_2_err b/result/relaxng/tutor9_2_err new file mode 100644 index 0000000..83c34ff --- /dev/null +++ b/result/relaxng/tutor9_2_err @@ -0,0 +1 @@ +./test/relaxng/tutor9_2.rng validates diff --git a/result/relaxng/tutor9_2_valid b/result/relaxng/tutor9_2_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_3_1 b/result/relaxng/tutor9_3_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_3_1.err b/result/relaxng/tutor9_3_1.err new file mode 100644 index 0000000..80ac24c --- /dev/null +++ b/result/relaxng/tutor9_3_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor9_3_1.xml validates diff --git a/result/relaxng/tutor9_3_2 b/result/relaxng/tutor9_3_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_3_2.err b/result/relaxng/tutor9_3_2.err new file mode 100644 index 0000000..a361c93 --- /dev/null +++ b/result/relaxng/tutor9_3_2.err @@ -0,0 +1 @@ +./test/relaxng/tutor9_3_2.xml validates diff --git a/result/relaxng/tutor9_3_err b/result/relaxng/tutor9_3_err new file mode 100644 index 0000000..0a82f8e --- /dev/null +++ b/result/relaxng/tutor9_3_err @@ -0,0 +1 @@ +./test/relaxng/tutor9_3.rng validates diff --git a/result/relaxng/tutor9_3_valid b/result/relaxng/tutor9_3_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_4_1 b/result/relaxng/tutor9_4_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_4_1.err b/result/relaxng/tutor9_4_1.err new file mode 100644 index 0000000..514eb98 --- /dev/null +++ b/result/relaxng/tutor9_4_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor9_4_1.xml validates diff --git a/result/relaxng/tutor9_4_2 b/result/relaxng/tutor9_4_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_4_2.err b/result/relaxng/tutor9_4_2.err new file mode 100644 index 0000000..ba780dc --- /dev/null +++ b/result/relaxng/tutor9_4_2.err @@ -0,0 +1 @@ +./test/relaxng/tutor9_4_2.xml validates diff --git a/result/relaxng/tutor9_4_err b/result/relaxng/tutor9_4_err new file mode 100644 index 0000000..42d087f --- /dev/null +++ b/result/relaxng/tutor9_4_err @@ -0,0 +1 @@ +./test/relaxng/tutor9_4.rng validates diff --git a/result/relaxng/tutor9_4_valid b/result/relaxng/tutor9_4_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_5_1 b/result/relaxng/tutor9_5_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_5_1.err b/result/relaxng/tutor9_5_1.err new file mode 100644 index 0000000..54f5d6a --- /dev/null +++ b/result/relaxng/tutor9_5_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor9_5_1.xml validates diff --git a/result/relaxng/tutor9_5_2 b/result/relaxng/tutor9_5_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_5_2.err b/result/relaxng/tutor9_5_2.err new file mode 100644 index 0000000..1384617 --- /dev/null +++ b/result/relaxng/tutor9_5_2.err @@ -0,0 +1,3 @@ +./test/relaxng/tutor9_5_2.xml:2: element card: Relax-NG validity error : Invalid sequence in interleave +./test/relaxng/tutor9_5_2.xml:2: element card: Relax-NG validity error : Element card failed to validate attributes +./test/relaxng/tutor9_5_2.xml fails to validate diff --git a/result/relaxng/tutor9_5_3 b/result/relaxng/tutor9_5_3 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_5_3.err b/result/relaxng/tutor9_5_3.err new file mode 100644 index 0000000..db5d0ae --- /dev/null +++ b/result/relaxng/tutor9_5_3.err @@ -0,0 +1,2 @@ +./test/relaxng/tutor9_5_3.xml:2: element card: Relax-NG validity error : Invalid attribute error for element card +./test/relaxng/tutor9_5_3.xml fails to validate diff --git a/result/relaxng/tutor9_5_err b/result/relaxng/tutor9_5_err new file mode 100644 index 0000000..e6ddd7a --- /dev/null +++ b/result/relaxng/tutor9_5_err @@ -0,0 +1 @@ +./test/relaxng/tutor9_5.rng validates diff --git a/result/relaxng/tutor9_5_valid b/result/relaxng/tutor9_5_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_6.rng b/result/relaxng/tutor9_6.rng new file mode 100644 index 0000000..17e6492 --- /dev/null +++ b/result/relaxng/tutor9_6.rng @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/result/relaxng/tutor9_6_1 b/result/relaxng/tutor9_6_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_6_1.err b/result/relaxng/tutor9_6_1.err new file mode 100644 index 0000000..15724e5 --- /dev/null +++ b/result/relaxng/tutor9_6_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor9_6_1.xml validates diff --git a/result/relaxng/tutor9_6_2 b/result/relaxng/tutor9_6_2 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_6_2.err b/result/relaxng/tutor9_6_2.err new file mode 100644 index 0000000..f7ec97f --- /dev/null +++ b/result/relaxng/tutor9_6_2.err @@ -0,0 +1,2 @@ +./test/relaxng/tutor9_6_2.xml:2: element card: Relax-NG validity error : Element card failed to validate attributes +./test/relaxng/tutor9_6_2.xml fails to validate diff --git a/result/relaxng/tutor9_6_3 b/result/relaxng/tutor9_6_3 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_6_3.err b/result/relaxng/tutor9_6_3.err new file mode 100644 index 0000000..5fe5f57 --- /dev/null +++ b/result/relaxng/tutor9_6_3.err @@ -0,0 +1,2 @@ +./test/relaxng/tutor9_6_3.xml:2: element card: Relax-NG validity error : Invalid attribute error for element card +./test/relaxng/tutor9_6_3.xml fails to validate diff --git a/result/relaxng/tutor9_6_err b/result/relaxng/tutor9_6_err new file mode 100644 index 0000000..897a092 --- /dev/null +++ b/result/relaxng/tutor9_6_err @@ -0,0 +1 @@ +./test/relaxng/tutor9_6.rng validates diff --git a/result/relaxng/tutor9_6_valid b/result/relaxng/tutor9_6_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_7_1 b/result/relaxng/tutor9_7_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_7_1.err b/result/relaxng/tutor9_7_1.err new file mode 100644 index 0000000..00d1502 --- /dev/null +++ b/result/relaxng/tutor9_7_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor9_7_1.xml validates diff --git a/result/relaxng/tutor9_7_err b/result/relaxng/tutor9_7_err new file mode 100644 index 0000000..e171320 --- /dev/null +++ b/result/relaxng/tutor9_7_err @@ -0,0 +1 @@ +./test/relaxng/tutor9_7.rng validates diff --git a/result/relaxng/tutor9_7_valid b/result/relaxng/tutor9_7_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_8_1 b/result/relaxng/tutor9_8_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_8_1.err b/result/relaxng/tutor9_8_1.err new file mode 100644 index 0000000..1849f8b --- /dev/null +++ b/result/relaxng/tutor9_8_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor9_8_1.xml validates diff --git a/result/relaxng/tutor9_8_err b/result/relaxng/tutor9_8_err new file mode 100644 index 0000000..41a926c --- /dev/null +++ b/result/relaxng/tutor9_8_err @@ -0,0 +1 @@ +./test/relaxng/tutor9_8.rng validates diff --git a/result/relaxng/tutor9_8_valid b/result/relaxng/tutor9_8_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_9_1 b/result/relaxng/tutor9_9_1 new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutor9_9_1.err b/result/relaxng/tutor9_9_1.err new file mode 100644 index 0000000..d88f01a --- /dev/null +++ b/result/relaxng/tutor9_9_1.err @@ -0,0 +1 @@ +./test/relaxng/tutor9_9_1.xml validates diff --git a/result/relaxng/tutor9_9_err b/result/relaxng/tutor9_9_err new file mode 100644 index 0000000..c4a95fd --- /dev/null +++ b/result/relaxng/tutor9_9_err @@ -0,0 +1 @@ +./test/relaxng/tutor9_9.rng validates diff --git a/result/relaxng/tutor9_9_valid b/result/relaxng/tutor9_9_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/relaxng/tutorA_err b/result/relaxng/tutorA_err new file mode 100644 index 0000000..b4ab892 --- /dev/null +++ b/result/relaxng/tutorA_err @@ -0,0 +1 @@ +./test/relaxng/tutorA.rng validates diff --git a/result/relaxng/tutorA_valid b/result/relaxng/tutorA_valid new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/570702_0_0 b/result/schemas/570702_0_0 new file mode 100644 index 0000000..41716e7 --- /dev/null +++ b/result/schemas/570702_0_0 @@ -0,0 +1 @@ +./test/schemas/570702_0.xml validates diff --git a/result/schemas/570702_0_0.err b/result/schemas/570702_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/579746_0_0 b/result/schemas/579746_0_0 new file mode 100644 index 0000000..c9a24f2 --- /dev/null +++ b/result/schemas/579746_0_0 @@ -0,0 +1 @@ +./test/schemas/579746_0.xml validates diff --git a/result/schemas/579746_0_0.err b/result/schemas/579746_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/579746_0_1 b/result/schemas/579746_0_1 new file mode 100644 index 0000000..8e3d39a --- /dev/null +++ b/result/schemas/579746_0_1 @@ -0,0 +1 @@ +./test/schemas/579746_1.xml validates diff --git a/result/schemas/579746_0_1.err b/result/schemas/579746_0_1.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/579746_0_2 b/result/schemas/579746_0_2 new file mode 100644 index 0000000..a11eaf1 --- /dev/null +++ b/result/schemas/579746_0_2 @@ -0,0 +1 @@ +./test/schemas/579746_2.xml validates diff --git a/result/schemas/579746_0_2.err b/result/schemas/579746_0_2.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/579746_0_3 b/result/schemas/579746_0_3 new file mode 100644 index 0000000..cf06bc5 --- /dev/null +++ b/result/schemas/579746_0_3 @@ -0,0 +1 @@ +./test/schemas/579746_3.xml fails to validate diff --git a/result/schemas/579746_0_3.err b/result/schemas/579746_0_3.err new file mode 100644 index 0000000..5e4c25e --- /dev/null +++ b/result/schemas/579746_0_3.err @@ -0,0 +1 @@ +./test/schemas/579746_3.xml:5: element customer: Schemas validity error : Element 'customer': This element is not expected. diff --git a/result/schemas/579746_0_4 b/result/schemas/579746_0_4 new file mode 100644 index 0000000..4763001 --- /dev/null +++ b/result/schemas/579746_0_4 @@ -0,0 +1 @@ +./test/schemas/579746_4.xml validates diff --git a/result/schemas/579746_0_4.err b/result/schemas/579746_0_4.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/579746_0_5 b/result/schemas/579746_0_5 new file mode 100644 index 0000000..91738e4 --- /dev/null +++ b/result/schemas/579746_0_5 @@ -0,0 +1 @@ +./test/schemas/579746_5.xml fails to validate diff --git a/result/schemas/579746_0_5.err b/result/schemas/579746_0_5.err new file mode 100644 index 0000000..1e5680d --- /dev/null +++ b/result/schemas/579746_0_5.err @@ -0,0 +1 @@ +./test/schemas/579746_5.xml:5: element comment: Schemas validity error : Element 'comment': This element is not expected. diff --git a/result/schemas/579746_1_0 b/result/schemas/579746_1_0 new file mode 100644 index 0000000..c9a24f2 --- /dev/null +++ b/result/schemas/579746_1_0 @@ -0,0 +1 @@ +./test/schemas/579746_0.xml validates diff --git a/result/schemas/579746_1_0.err b/result/schemas/579746_1_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/579746_1_1 b/result/schemas/579746_1_1 new file mode 100644 index 0000000..8e3d39a --- /dev/null +++ b/result/schemas/579746_1_1 @@ -0,0 +1 @@ +./test/schemas/579746_1.xml validates diff --git a/result/schemas/579746_1_1.err b/result/schemas/579746_1_1.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/579746_1_2 b/result/schemas/579746_1_2 new file mode 100644 index 0000000..a11eaf1 --- /dev/null +++ b/result/schemas/579746_1_2 @@ -0,0 +1 @@ +./test/schemas/579746_2.xml validates diff --git a/result/schemas/579746_1_2.err b/result/schemas/579746_1_2.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/579746_1_3 b/result/schemas/579746_1_3 new file mode 100644 index 0000000..cf06bc5 --- /dev/null +++ b/result/schemas/579746_1_3 @@ -0,0 +1 @@ +./test/schemas/579746_3.xml fails to validate diff --git a/result/schemas/579746_1_3.err b/result/schemas/579746_1_3.err new file mode 100644 index 0000000..5e4c25e --- /dev/null +++ b/result/schemas/579746_1_3.err @@ -0,0 +1 @@ +./test/schemas/579746_3.xml:5: element customer: Schemas validity error : Element 'customer': This element is not expected. diff --git a/result/schemas/579746_1_4 b/result/schemas/579746_1_4 new file mode 100644 index 0000000..4763001 --- /dev/null +++ b/result/schemas/579746_1_4 @@ -0,0 +1 @@ +./test/schemas/579746_4.xml validates diff --git a/result/schemas/579746_1_4.err b/result/schemas/579746_1_4.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/579746_1_5 b/result/schemas/579746_1_5 new file mode 100644 index 0000000..91738e4 --- /dev/null +++ b/result/schemas/579746_1_5 @@ -0,0 +1 @@ +./test/schemas/579746_5.xml fails to validate diff --git a/result/schemas/579746_1_5.err b/result/schemas/579746_1_5.err new file mode 100644 index 0000000..1e5680d --- /dev/null +++ b/result/schemas/579746_1_5.err @@ -0,0 +1 @@ +./test/schemas/579746_5.xml:5: element comment: Schemas validity error : Element 'comment': This element is not expected. diff --git a/result/schemas/582887_0_0 b/result/schemas/582887_0_0 new file mode 100644 index 0000000..4ae8482 --- /dev/null +++ b/result/schemas/582887_0_0 @@ -0,0 +1 @@ +./test/schemas/582887_0.xml validates diff --git a/result/schemas/582887_0_0.err b/result/schemas/582887_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/582906-1_0_0 b/result/schemas/582906-1_0_0 new file mode 100644 index 0000000..e1abbf5 --- /dev/null +++ b/result/schemas/582906-1_0_0 @@ -0,0 +1 @@ +./test/schemas/582906-1_0.xml validates diff --git a/result/schemas/582906-1_0_0.err b/result/schemas/582906-1_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/582906-2_0_0 b/result/schemas/582906-2_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/582906-2_0_0.err b/result/schemas/582906-2_0_0.err new file mode 100644 index 0000000..c1f8204 --- /dev/null +++ b/result/schemas/582906-2_0_0.err @@ -0,0 +1 @@ +test/schemas/582906-2-prog1.xsd:9: element include: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}include': The target namespace 'http://example.com/xml/Prog3' of the included/redefined schema 'test/schemas/582906-2-common.xsd' differs from 'http://example.com/xml/Prog1' of the including/redefining schema. diff --git a/result/schemas/all1_0_0 b/result/schemas/all1_0_0 new file mode 100644 index 0000000..327cec7 --- /dev/null +++ b/result/schemas/all1_0_0 @@ -0,0 +1 @@ +./test/schemas/all1_0.xml validates diff --git a/result/schemas/all1_0_0.err b/result/schemas/all1_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/all_0_0 b/result/schemas/all_0_0 new file mode 100644 index 0000000..08eb108 --- /dev/null +++ b/result/schemas/all_0_0 @@ -0,0 +1 @@ +./test/schemas/all_0.xml validates diff --git a/result/schemas/all_0_0.err b/result/schemas/all_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/all_0_1 b/result/schemas/all_0_1 new file mode 100644 index 0000000..eaf4a1a --- /dev/null +++ b/result/schemas/all_0_1 @@ -0,0 +1 @@ +./test/schemas/all_1.xml validates diff --git a/result/schemas/all_0_1.err b/result/schemas/all_0_1.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/all_0_2 b/result/schemas/all_0_2 new file mode 100644 index 0000000..62af901 --- /dev/null +++ b/result/schemas/all_0_2 @@ -0,0 +1 @@ +./test/schemas/all_2.xml validates diff --git a/result/schemas/all_0_2.err b/result/schemas/all_0_2.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/all_0_3 b/result/schemas/all_0_3 new file mode 100644 index 0000000..55a2a4d --- /dev/null +++ b/result/schemas/all_0_3 @@ -0,0 +1 @@ +./test/schemas/all_3.xml fails to validate diff --git a/result/schemas/all_0_3.err b/result/schemas/all_0_3.err new file mode 100644 index 0000000..6933fb7 --- /dev/null +++ b/result/schemas/all_0_3.err @@ -0,0 +1 @@ +./test/schemas/all_3.xml:1: element doc: Schemas validity error : Element 'doc': Missing child element(s). Expected is ( c ). diff --git a/result/schemas/all_0_4 b/result/schemas/all_0_4 new file mode 100644 index 0000000..cdd8824 --- /dev/null +++ b/result/schemas/all_0_4 @@ -0,0 +1 @@ +./test/schemas/all_4.xml fails to validate diff --git a/result/schemas/all_0_4.err b/result/schemas/all_0_4.err new file mode 100644 index 0000000..f846d15 --- /dev/null +++ b/result/schemas/all_0_4.err @@ -0,0 +1 @@ +./test/schemas/all_4.xml:1: element doc: Schemas validity error : Element 'doc': Missing child element(s). Expected is one of ( a, b, c ). diff --git a/result/schemas/all_0_5 b/result/schemas/all_0_5 new file mode 100644 index 0000000..f939f65 --- /dev/null +++ b/result/schemas/all_0_5 @@ -0,0 +1 @@ +./test/schemas/all_5.xml fails to validate diff --git a/result/schemas/all_0_5.err b/result/schemas/all_0_5.err new file mode 100644 index 0000000..d8ca9a7 --- /dev/null +++ b/result/schemas/all_0_5.err @@ -0,0 +1 @@ +./test/schemas/all_5.xml:1: element a: Schemas validity error : Element 'a': This element is not expected. Expected is ( c ). diff --git a/result/schemas/all_0_6 b/result/schemas/all_0_6 new file mode 100644 index 0000000..c3705c7 --- /dev/null +++ b/result/schemas/all_0_6 @@ -0,0 +1 @@ +./test/schemas/all_6.xml fails to validate diff --git a/result/schemas/all_0_6.err b/result/schemas/all_0_6.err new file mode 100644 index 0000000..c31d91b --- /dev/null +++ b/result/schemas/all_0_6.err @@ -0,0 +1 @@ +./test/schemas/all_6.xml:1: element doc: Schemas validity error : Element 'doc': Missing child element(s). Expected is one of ( b, c ). diff --git a/result/schemas/all_0_7 b/result/schemas/all_0_7 new file mode 100644 index 0000000..d144d2d --- /dev/null +++ b/result/schemas/all_0_7 @@ -0,0 +1 @@ +./test/schemas/all_7.xml fails to validate diff --git a/result/schemas/all_0_7.err b/result/schemas/all_0_7.err new file mode 100644 index 0000000..d5c5428 --- /dev/null +++ b/result/schemas/all_0_7.err @@ -0,0 +1 @@ +./test/schemas/all_7.xml:1: element doc: Schemas validity error : Element 'doc': Missing child element(s). Expected is ( c ). diff --git a/result/schemas/all_1_0 b/result/schemas/all_1_0 new file mode 100644 index 0000000..08eb108 --- /dev/null +++ b/result/schemas/all_1_0 @@ -0,0 +1 @@ +./test/schemas/all_0.xml validates diff --git a/result/schemas/all_1_0.err b/result/schemas/all_1_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/all_1_1 b/result/schemas/all_1_1 new file mode 100644 index 0000000..eaf4a1a --- /dev/null +++ b/result/schemas/all_1_1 @@ -0,0 +1 @@ +./test/schemas/all_1.xml validates diff --git a/result/schemas/all_1_1.err b/result/schemas/all_1_1.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/all_1_2 b/result/schemas/all_1_2 new file mode 100644 index 0000000..62af901 --- /dev/null +++ b/result/schemas/all_1_2 @@ -0,0 +1 @@ +./test/schemas/all_2.xml validates diff --git a/result/schemas/all_1_2.err b/result/schemas/all_1_2.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/all_1_3 b/result/schemas/all_1_3 new file mode 100644 index 0000000..55a2a4d --- /dev/null +++ b/result/schemas/all_1_3 @@ -0,0 +1 @@ +./test/schemas/all_3.xml fails to validate diff --git a/result/schemas/all_1_3.err b/result/schemas/all_1_3.err new file mode 100644 index 0000000..6933fb7 --- /dev/null +++ b/result/schemas/all_1_3.err @@ -0,0 +1 @@ +./test/schemas/all_3.xml:1: element doc: Schemas validity error : Element 'doc': Missing child element(s). Expected is ( c ). diff --git a/result/schemas/all_1_4 b/result/schemas/all_1_4 new file mode 100644 index 0000000..2eb22ae --- /dev/null +++ b/result/schemas/all_1_4 @@ -0,0 +1 @@ +./test/schemas/all_4.xml validates diff --git a/result/schemas/all_1_4.err b/result/schemas/all_1_4.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/all_1_5 b/result/schemas/all_1_5 new file mode 100644 index 0000000..f939f65 --- /dev/null +++ b/result/schemas/all_1_5 @@ -0,0 +1 @@ +./test/schemas/all_5.xml fails to validate diff --git a/result/schemas/all_1_5.err b/result/schemas/all_1_5.err new file mode 100644 index 0000000..d8ca9a7 --- /dev/null +++ b/result/schemas/all_1_5.err @@ -0,0 +1 @@ +./test/schemas/all_5.xml:1: element a: Schemas validity error : Element 'a': This element is not expected. Expected is ( c ). diff --git a/result/schemas/all_1_6 b/result/schemas/all_1_6 new file mode 100644 index 0000000..c3705c7 --- /dev/null +++ b/result/schemas/all_1_6 @@ -0,0 +1 @@ +./test/schemas/all_6.xml fails to validate diff --git a/result/schemas/all_1_6.err b/result/schemas/all_1_6.err new file mode 100644 index 0000000..c31d91b --- /dev/null +++ b/result/schemas/all_1_6.err @@ -0,0 +1 @@ +./test/schemas/all_6.xml:1: element doc: Schemas validity error : Element 'doc': Missing child element(s). Expected is one of ( b, c ). diff --git a/result/schemas/all_1_7 b/result/schemas/all_1_7 new file mode 100644 index 0000000..d144d2d --- /dev/null +++ b/result/schemas/all_1_7 @@ -0,0 +1 @@ +./test/schemas/all_7.xml fails to validate diff --git a/result/schemas/all_1_7.err b/result/schemas/all_1_7.err new file mode 100644 index 0000000..d5c5428 --- /dev/null +++ b/result/schemas/all_1_7.err @@ -0,0 +1 @@ +./test/schemas/all_7.xml:1: element doc: Schemas validity error : Element 'doc': Missing child element(s). Expected is ( c ). diff --git a/result/schemas/all_2_0 b/result/schemas/all_2_0 new file mode 100644 index 0000000..77066e0 --- /dev/null +++ b/result/schemas/all_2_0 @@ -0,0 +1 @@ +./test/schemas/all_0.xml fails to validate diff --git a/result/schemas/all_2_0.err b/result/schemas/all_2_0.err new file mode 100644 index 0000000..6ef8590 --- /dev/null +++ b/result/schemas/all_2_0.err @@ -0,0 +1 @@ +./test/schemas/all_0.xml:1: element c: Schemas validity error : Element 'c': This element is not expected. diff --git a/result/schemas/all_2_1 b/result/schemas/all_2_1 new file mode 100644 index 0000000..cbda1fe --- /dev/null +++ b/result/schemas/all_2_1 @@ -0,0 +1 @@ +./test/schemas/all_1.xml fails to validate diff --git a/result/schemas/all_2_1.err b/result/schemas/all_2_1.err new file mode 100644 index 0000000..fd8cb48 --- /dev/null +++ b/result/schemas/all_2_1.err @@ -0,0 +1 @@ +./test/schemas/all_1.xml:1: element c: Schemas validity error : Element 'c': This element is not expected. Expected is ( a ). diff --git a/result/schemas/all_2_2 b/result/schemas/all_2_2 new file mode 100644 index 0000000..27db643 --- /dev/null +++ b/result/schemas/all_2_2 @@ -0,0 +1 @@ +./test/schemas/all_2.xml fails to validate diff --git a/result/schemas/all_2_2.err b/result/schemas/all_2_2.err new file mode 100644 index 0000000..1f04462 --- /dev/null +++ b/result/schemas/all_2_2.err @@ -0,0 +1 @@ +./test/schemas/all_2.xml:1: element c: Schemas validity error : Element 'c': This element is not expected. diff --git a/result/schemas/all_2_3 b/result/schemas/all_2_3 new file mode 100644 index 0000000..8186e82 --- /dev/null +++ b/result/schemas/all_2_3 @@ -0,0 +1 @@ +./test/schemas/all_3.xml validates diff --git a/result/schemas/all_2_3.err b/result/schemas/all_2_3.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/all_2_4 b/result/schemas/all_2_4 new file mode 100644 index 0000000..cdd8824 --- /dev/null +++ b/result/schemas/all_2_4 @@ -0,0 +1 @@ +./test/schemas/all_4.xml fails to validate diff --git a/result/schemas/all_2_4.err b/result/schemas/all_2_4.err new file mode 100644 index 0000000..31dcf12 --- /dev/null +++ b/result/schemas/all_2_4.err @@ -0,0 +1 @@ +./test/schemas/all_4.xml:1: element doc: Schemas validity error : Element 'doc': Missing child element(s). Expected is one of ( a, b ). diff --git a/result/schemas/all_2_5 b/result/schemas/all_2_5 new file mode 100644 index 0000000..f939f65 --- /dev/null +++ b/result/schemas/all_2_5 @@ -0,0 +1 @@ +./test/schemas/all_5.xml fails to validate diff --git a/result/schemas/all_2_5.err b/result/schemas/all_2_5.err new file mode 100644 index 0000000..e859ebd --- /dev/null +++ b/result/schemas/all_2_5.err @@ -0,0 +1 @@ +./test/schemas/all_5.xml:1: element a: Schemas validity error : Element 'a': This element is not expected. diff --git a/result/schemas/all_2_6 b/result/schemas/all_2_6 new file mode 100644 index 0000000..d4a9594 --- /dev/null +++ b/result/schemas/all_2_6 @@ -0,0 +1 @@ +./test/schemas/all_6.xml validates diff --git a/result/schemas/all_2_6.err b/result/schemas/all_2_6.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/all_2_7 b/result/schemas/all_2_7 new file mode 100644 index 0000000..6ad4fc6 --- /dev/null +++ b/result/schemas/all_2_7 @@ -0,0 +1 @@ +./test/schemas/all_7.xml validates diff --git a/result/schemas/all_2_7.err b/result/schemas/all_2_7.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/allsg_0_0 b/result/schemas/allsg_0_0 new file mode 100644 index 0000000..a078f05 --- /dev/null +++ b/result/schemas/allsg_0_0 @@ -0,0 +1 @@ +./test/schemas/allsg_0.xml validates diff --git a/result/schemas/allsg_0_0.err b/result/schemas/allsg_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/allsg_0_1 b/result/schemas/allsg_0_1 new file mode 100644 index 0000000..ab3cf58 --- /dev/null +++ b/result/schemas/allsg_0_1 @@ -0,0 +1 @@ +./test/schemas/allsg_1.xml validates diff --git a/result/schemas/allsg_0_1.err b/result/schemas/allsg_0_1.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/allsg_0_2 b/result/schemas/allsg_0_2 new file mode 100644 index 0000000..da3de52 --- /dev/null +++ b/result/schemas/allsg_0_2 @@ -0,0 +1 @@ +./test/schemas/allsg_2.xml validates diff --git a/result/schemas/allsg_0_2.err b/result/schemas/allsg_0_2.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/allsg_0_3 b/result/schemas/allsg_0_3 new file mode 100644 index 0000000..f98152b --- /dev/null +++ b/result/schemas/allsg_0_3 @@ -0,0 +1 @@ +./test/schemas/allsg_3.xml fails to validate diff --git a/result/schemas/allsg_0_3.err b/result/schemas/allsg_0_3.err new file mode 100644 index 0000000..628a360 --- /dev/null +++ b/result/schemas/allsg_0_3.err @@ -0,0 +1 @@ +./test/schemas/allsg_3.xml:6: element gm-B-1: Schemas validity error : Element '{urn:test:foo}gm-B-1': This element is not expected. Expected is one of ( {urn:test:foo}gh-A, {urn:test:foo}gm-A-1, {urn:test:foo}gm-A-2 ). diff --git a/result/schemas/allsg_0_4 b/result/schemas/allsg_0_4 new file mode 100644 index 0000000..3fe69c1 --- /dev/null +++ b/result/schemas/allsg_0_4 @@ -0,0 +1 @@ +./test/schemas/allsg_4.xml fails to validate diff --git a/result/schemas/allsg_0_4.err b/result/schemas/allsg_0_4.err new file mode 100644 index 0000000..e72288d --- /dev/null +++ b/result/schemas/allsg_0_4.err @@ -0,0 +1 @@ +./test/schemas/allsg_4.xml:6: element gm-A-1: Schemas validity error : Element '{urn:test:foo}gm-A-1': This element is not expected. Expected is one of ( {urn:test:foo}gh-B, {urn:test:foo}gm-B-1, {urn:test:foo}gm-B-2 ). diff --git a/result/schemas/allsg_0_5 b/result/schemas/allsg_0_5 new file mode 100644 index 0000000..2689cf0 --- /dev/null +++ b/result/schemas/allsg_0_5 @@ -0,0 +1 @@ +./test/schemas/allsg_5.xml fails to validate diff --git a/result/schemas/allsg_0_5.err b/result/schemas/allsg_0_5.err new file mode 100644 index 0000000..26a1446 --- /dev/null +++ b/result/schemas/allsg_0_5.err @@ -0,0 +1 @@ +./test/schemas/allsg_5.xml:7: element gm-B-2: Schemas validity error : Element '{urn:test:foo}gm-B-2': This element is not expected. diff --git a/result/schemas/annot-err_0_0 b/result/schemas/annot-err_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/annot-err_0_0.err b/result/schemas/annot-err_0_0.err new file mode 100644 index 0000000..78c0c72 --- /dev/null +++ b/result/schemas/annot-err_0_0.err @@ -0,0 +1,7 @@ +./test/schemas/annot-err_0.xsd:7: element annotation: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}annotation': The attribute 'death' is not allowed. +./test/schemas/annot-err_0.xsd:7: element annotation: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}annotation': The content is not valid. Expected is (appinfo | documentation)*. +./test/schemas/annot-err_0.xsd:10: element appinfo: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}appinfo': The attribute 'id' is not allowed. +./test/schemas/annot-err_0.xsd:10: element appinfo: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}appinfo': The attribute 'fun' is not allowed. +./test/schemas/annot-err_0.xsd:14: element documentation: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}documentation': The attribute 'id' is not allowed. +./test/schemas/annot-err_0.xsd:14: element documentation: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}documentation': The attribute 'mothers' is not allowed. +./test/schemas/annot-err_0.xsd:14: element documentation: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}documentation', attribute '{http://www.w3.org/XML/1998/namespace}lang': '*' is not a valid value of the atomic type 'xs:language'. diff --git a/result/schemas/any1_0_0 b/result/schemas/any1_0_0 new file mode 100644 index 0000000..7eec0fc --- /dev/null +++ b/result/schemas/any1_0_0 @@ -0,0 +1 @@ +./test/schemas/any1_0.xml validates diff --git a/result/schemas/any1_0_0.err b/result/schemas/any1_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/any2_0_0 b/result/schemas/any2_0_0 new file mode 100644 index 0000000..eef73b8 --- /dev/null +++ b/result/schemas/any2_0_0 @@ -0,0 +1 @@ +./test/schemas/any2_0.xml validates diff --git a/result/schemas/any2_0_0.err b/result/schemas/any2_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/any3_0_0 b/result/schemas/any3_0_0 new file mode 100644 index 0000000..568af4f --- /dev/null +++ b/result/schemas/any3_0_0 @@ -0,0 +1 @@ +./test/schemas/any3_0.xml fails to validate diff --git a/result/schemas/any3_0_0.err b/result/schemas/any3_0_0.err new file mode 100644 index 0000000..49ce581 --- /dev/null +++ b/result/schemas/any3_0_0.err @@ -0,0 +1 @@ +./test/schemas/any3_0.xml:12: element bar.A: Schemas validity error : Element 'bar.A': This element is not expected. Expected is ( ##other{http://FOO}* ). diff --git a/result/schemas/any4_0_0 b/result/schemas/any4_0_0 new file mode 100644 index 0000000..42ea454 --- /dev/null +++ b/result/schemas/any4_0_0 @@ -0,0 +1 @@ +./test/schemas/any4_0.xml validates diff --git a/result/schemas/any4_0_0.err b/result/schemas/any4_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/any5_0_0 b/result/schemas/any5_0_0 new file mode 100644 index 0000000..910f8bb --- /dev/null +++ b/result/schemas/any5_0_0 @@ -0,0 +1 @@ +./test/schemas/any5_0.xml fails to validate diff --git a/result/schemas/any5_0_0.err b/result/schemas/any5_0_0.err new file mode 100644 index 0000000..b69fd57 --- /dev/null +++ b/result/schemas/any5_0_0.err @@ -0,0 +1 @@ +./test/schemas/any5_0.xml:6: element boo: Schemas validity error : Element '{urn:test:foo}boo': This element is not expected. Expected is ( ##other{urn:test:foo}* ). diff --git a/result/schemas/any5_0_1 b/result/schemas/any5_0_1 new file mode 100644 index 0000000..5e2c461 --- /dev/null +++ b/result/schemas/any5_0_1 @@ -0,0 +1 @@ +./test/schemas/any5_1.xml fails to validate diff --git a/result/schemas/any5_0_1.err b/result/schemas/any5_0_1.err new file mode 100644 index 0000000..79d7e35 --- /dev/null +++ b/result/schemas/any5_0_1.err @@ -0,0 +1 @@ +./test/schemas/any5_1.xml:11: element boo: Schemas validity error : Element '{urn:test:bar}boo': This element is not expected. diff --git a/result/schemas/any5_0_2 b/result/schemas/any5_0_2 new file mode 100644 index 0000000..b049478 --- /dev/null +++ b/result/schemas/any5_0_2 @@ -0,0 +1 @@ +./test/schemas/any5_2.xml fails to validate diff --git a/result/schemas/any5_0_2.err b/result/schemas/any5_0_2.err new file mode 100644 index 0000000..a5bf4c0 --- /dev/null +++ b/result/schemas/any5_0_2.err @@ -0,0 +1 @@ +./test/schemas/any5_2.xml:7: element boo: Schemas validity error : Element '{urn:test:foo}boo': This element is not expected. diff --git a/result/schemas/any5_0_3 b/result/schemas/any5_0_3 new file mode 100644 index 0000000..8cfb94e --- /dev/null +++ b/result/schemas/any5_0_3 @@ -0,0 +1 @@ +./test/schemas/any5_3.xml validates diff --git a/result/schemas/any5_0_3.err b/result/schemas/any5_0_3.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/any5_0_4 b/result/schemas/any5_0_4 new file mode 100644 index 0000000..0a4bce0 --- /dev/null +++ b/result/schemas/any5_0_4 @@ -0,0 +1 @@ +./test/schemas/any5_4.xml fails to validate diff --git a/result/schemas/any5_0_4.err b/result/schemas/any5_0_4.err new file mode 100644 index 0000000..74a6bda --- /dev/null +++ b/result/schemas/any5_0_4.err @@ -0,0 +1 @@ +./test/schemas/any5_4.xml:11: element boo: Schemas validity error : Element '{urn:test:bar}boo': This element is not expected. diff --git a/result/schemas/any5_0_5 b/result/schemas/any5_0_5 new file mode 100644 index 0000000..6c15d25 --- /dev/null +++ b/result/schemas/any5_0_5 @@ -0,0 +1 @@ +./test/schemas/any5_5.xml fails to validate diff --git a/result/schemas/any5_0_5.err b/result/schemas/any5_0_5.err new file mode 100644 index 0000000..e50113f --- /dev/null +++ b/result/schemas/any5_0_5.err @@ -0,0 +1 @@ +./test/schemas/any5_5.xml:11: element boo: Schemas validity error : Element '{urn:test:foo}boo': This element is not expected. diff --git a/result/schemas/any5_0_6 b/result/schemas/any5_0_6 new file mode 100644 index 0000000..c9df562 --- /dev/null +++ b/result/schemas/any5_0_6 @@ -0,0 +1 @@ +./test/schemas/any5_6.xml fails to validate diff --git a/result/schemas/any5_0_6.err b/result/schemas/any5_0_6.err new file mode 100644 index 0000000..b64cd4f --- /dev/null +++ b/result/schemas/any5_0_6.err @@ -0,0 +1 @@ +./test/schemas/any5_6.xml:11: element boo: Schemas validity error : Element '{urn:test:bar}boo': This element is not expected. diff --git a/result/schemas/any5_1_0 b/result/schemas/any5_1_0 new file mode 100644 index 0000000..910f8bb --- /dev/null +++ b/result/schemas/any5_1_0 @@ -0,0 +1 @@ +./test/schemas/any5_0.xml fails to validate diff --git a/result/schemas/any5_1_0.err b/result/schemas/any5_1_0.err new file mode 100644 index 0000000..b69fd57 --- /dev/null +++ b/result/schemas/any5_1_0.err @@ -0,0 +1 @@ +./test/schemas/any5_0.xml:6: element boo: Schemas validity error : Element '{urn:test:foo}boo': This element is not expected. Expected is ( ##other{urn:test:foo}* ). diff --git a/result/schemas/any5_1_1 b/result/schemas/any5_1_1 new file mode 100644 index 0000000..5e2c461 --- /dev/null +++ b/result/schemas/any5_1_1 @@ -0,0 +1 @@ +./test/schemas/any5_1.xml fails to validate diff --git a/result/schemas/any5_1_1.err b/result/schemas/any5_1_1.err new file mode 100644 index 0000000..bbfccb4 --- /dev/null +++ b/result/schemas/any5_1_1.err @@ -0,0 +1 @@ +./test/schemas/any5_1.xml:11: element boo: Schemas validity error : Element '{urn:test:bar}boo': This element is not expected. Expected is ( {urn:test:foo}boo ). diff --git a/result/schemas/any5_1_2 b/result/schemas/any5_1_2 new file mode 100644 index 0000000..6eab2bb --- /dev/null +++ b/result/schemas/any5_1_2 @@ -0,0 +1 @@ +./test/schemas/any5_2.xml validates diff --git a/result/schemas/any5_1_2.err b/result/schemas/any5_1_2.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/any5_1_3 b/result/schemas/any5_1_3 new file mode 100644 index 0000000..f114a67 --- /dev/null +++ b/result/schemas/any5_1_3 @@ -0,0 +1 @@ +./test/schemas/any5_3.xml fails to validate diff --git a/result/schemas/any5_1_3.err b/result/schemas/any5_1_3.err new file mode 100644 index 0000000..e6c07b2 --- /dev/null +++ b/result/schemas/any5_1_3.err @@ -0,0 +1 @@ +./test/schemas/any5_3.xml:4: element foo: Schemas validity error : Element '{urn:test:foo}foo': Missing child element(s). diff --git a/result/schemas/any5_1_4 b/result/schemas/any5_1_4 new file mode 100644 index 0000000..0a4bce0 --- /dev/null +++ b/result/schemas/any5_1_4 @@ -0,0 +1 @@ +./test/schemas/any5_4.xml fails to validate diff --git a/result/schemas/any5_1_4.err b/result/schemas/any5_1_4.err new file mode 100644 index 0000000..6d89773 --- /dev/null +++ b/result/schemas/any5_1_4.err @@ -0,0 +1 @@ +./test/schemas/any5_4.xml:11: element boo: Schemas validity error : Element '{urn:test:bar}boo': This element is not expected. Expected is ( {urn:test:foo}boo ). diff --git a/result/schemas/any5_1_5 b/result/schemas/any5_1_5 new file mode 100644 index 0000000..e573d46 --- /dev/null +++ b/result/schemas/any5_1_5 @@ -0,0 +1 @@ +./test/schemas/any5_5.xml validates diff --git a/result/schemas/any5_1_5.err b/result/schemas/any5_1_5.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/any5_1_6 b/result/schemas/any5_1_6 new file mode 100644 index 0000000..c9df562 --- /dev/null +++ b/result/schemas/any5_1_6 @@ -0,0 +1 @@ +./test/schemas/any5_6.xml fails to validate diff --git a/result/schemas/any5_1_6.err b/result/schemas/any5_1_6.err new file mode 100644 index 0000000..8c3f020 --- /dev/null +++ b/result/schemas/any5_1_6.err @@ -0,0 +1 @@ +./test/schemas/any5_6.xml:11: element boo: Schemas validity error : Element '{urn:test:bar}boo': This element is not expected. Expected is ( {urn:test:foo}boo ). diff --git a/result/schemas/any6_1_0 b/result/schemas/any6_1_0 new file mode 100644 index 0000000..1bb493c --- /dev/null +++ b/result/schemas/any6_1_0 @@ -0,0 +1 @@ +./test/schemas/any6_0.xml validates diff --git a/result/schemas/any6_1_0.err b/result/schemas/any6_1_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/any6_2_0 b/result/schemas/any6_2_0 new file mode 100644 index 0000000..1bb493c --- /dev/null +++ b/result/schemas/any6_2_0 @@ -0,0 +1 @@ +./test/schemas/any6_0.xml validates diff --git a/result/schemas/any6_2_0.err b/result/schemas/any6_2_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/any7_1_0 b/result/schemas/any7_1_0 new file mode 100644 index 0000000..cfd9dcc --- /dev/null +++ b/result/schemas/any7_1_0 @@ -0,0 +1 @@ +./test/schemas/any7_0.xml fails to validate diff --git a/result/schemas/any7_1_0.err b/result/schemas/any7_1_0.err new file mode 100644 index 0000000..a4274f8 --- /dev/null +++ b/result/schemas/any7_1_0.err @@ -0,0 +1 @@ +./test/schemas/any7_0.xml:18: element moo: Schemas validity error : Element 'moo': This element is not expected. Expected is ( ##other{urn:test:foo}* ). diff --git a/result/schemas/any7_1_1 b/result/schemas/any7_1_1 new file mode 100644 index 0000000..2a6f5d7 --- /dev/null +++ b/result/schemas/any7_1_1 @@ -0,0 +1 @@ +./test/schemas/any7_1.xml fails to validate diff --git a/result/schemas/any7_1_1.err b/result/schemas/any7_1_1.err new file mode 100644 index 0000000..8745468 --- /dev/null +++ b/result/schemas/any7_1_1.err @@ -0,0 +1 @@ +./test/schemas/any7_1.xml:17: element bar: Schemas validity error : Element '{urn:test:foo}bar': This element is not expected. Expected is ( ##other{urn:test:foo}* ). diff --git a/result/schemas/any7_1_2 b/result/schemas/any7_1_2 new file mode 100644 index 0000000..6f35e2d --- /dev/null +++ b/result/schemas/any7_1_2 @@ -0,0 +1 @@ +./test/schemas/any7_2.xml validates diff --git a/result/schemas/any7_1_2.err b/result/schemas/any7_1_2.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/any7_2_0 b/result/schemas/any7_2_0 new file mode 100644 index 0000000..cfd9dcc --- /dev/null +++ b/result/schemas/any7_2_0 @@ -0,0 +1 @@ +./test/schemas/any7_0.xml fails to validate diff --git a/result/schemas/any7_2_0.err b/result/schemas/any7_2_0.err new file mode 100644 index 0000000..a4274f8 --- /dev/null +++ b/result/schemas/any7_2_0.err @@ -0,0 +1 @@ +./test/schemas/any7_0.xml:18: element moo: Schemas validity error : Element 'moo': This element is not expected. Expected is ( ##other{urn:test:foo}* ). diff --git a/result/schemas/any7_2_1 b/result/schemas/any7_2_1 new file mode 100644 index 0000000..2a6f5d7 --- /dev/null +++ b/result/schemas/any7_2_1 @@ -0,0 +1 @@ +./test/schemas/any7_1.xml fails to validate diff --git a/result/schemas/any7_2_1.err b/result/schemas/any7_2_1.err new file mode 100644 index 0000000..8745468 --- /dev/null +++ b/result/schemas/any7_2_1.err @@ -0,0 +1 @@ +./test/schemas/any7_1.xml:17: element bar: Schemas validity error : Element '{urn:test:foo}bar': This element is not expected. Expected is ( ##other{urn:test:foo}* ). diff --git a/result/schemas/any7_2_2 b/result/schemas/any7_2_2 new file mode 100644 index 0000000..6f35e2d --- /dev/null +++ b/result/schemas/any7_2_2 @@ -0,0 +1 @@ +./test/schemas/any7_2.xml validates diff --git a/result/schemas/any7_2_2.err b/result/schemas/any7_2_2.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/any8_1_0 b/result/schemas/any8_1_0 new file mode 100644 index 0000000..f5f4ed9 --- /dev/null +++ b/result/schemas/any8_1_0 @@ -0,0 +1 @@ +./test/schemas/any8_0.xml validates diff --git a/result/schemas/any8_1_0.err b/result/schemas/any8_1_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/anyAttr-derive-errors1_0_0 b/result/schemas/anyAttr-derive-errors1_0_0 new file mode 100644 index 0000000..d8e465e --- /dev/null +++ b/result/schemas/anyAttr-derive-errors1_0_0 @@ -0,0 +1 @@ +./test/schemas/anyAttr-derive-errors1_0.xml validates diff --git a/result/schemas/anyAttr-derive-errors1_0_0.err b/result/schemas/anyAttr-derive-errors1_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/anyAttr-derive1_0_0 b/result/schemas/anyAttr-derive1_0_0 new file mode 100644 index 0000000..adae13d --- /dev/null +++ b/result/schemas/anyAttr-derive1_0_0 @@ -0,0 +1 @@ +./test/schemas/anyAttr-derive1_0.xml validates diff --git a/result/schemas/anyAttr-derive1_0_0.err b/result/schemas/anyAttr-derive1_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/anyAttr-derive2_0_0 b/result/schemas/anyAttr-derive2_0_0 new file mode 100644 index 0000000..dccc6e2 --- /dev/null +++ b/result/schemas/anyAttr-derive2_0_0 @@ -0,0 +1 @@ +./test/schemas/anyAttr-derive2_0.xml validates diff --git a/result/schemas/anyAttr-derive2_0_0.err b/result/schemas/anyAttr-derive2_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/anyAttr-processContents-err1_0_0 b/result/schemas/anyAttr-processContents-err1_0_0 new file mode 100644 index 0000000..43e77aa --- /dev/null +++ b/result/schemas/anyAttr-processContents-err1_0_0 @@ -0,0 +1 @@ +./test/schemas/anyAttr-processContents-err1_0.xml fails to validate diff --git a/result/schemas/anyAttr-processContents-err1_0_0.err b/result/schemas/anyAttr-processContents-err1_0_0.err new file mode 100644 index 0000000..dc4766b --- /dev/null +++ b/result/schemas/anyAttr-processContents-err1_0_0.err @@ -0,0 +1,2 @@ +./test/schemas/anyAttr-processContents-err1_0.xml:8: element elem.lax: Schemas validity error : Element '{http://FOO}elem.lax', attribute '{http://FOO}bar': 'o o' is not a valid value of the atomic type 'xs:language'. +./test/schemas/anyAttr-processContents-err1_0.xml:9: element elem.strict: Schemas validity error : Element '{http://FOO}elem.strict', attribute '{http://FOO}barB': No matching global attribute declaration available, but demanded by the strict wildcard. diff --git a/result/schemas/anyAttr-processContents1_0_0 b/result/schemas/anyAttr-processContents1_0_0 new file mode 100644 index 0000000..30d0cc2 --- /dev/null +++ b/result/schemas/anyAttr-processContents1_0_0 @@ -0,0 +1 @@ +./test/schemas/anyAttr-processContents1_0.xml validates diff --git a/result/schemas/anyAttr-processContents1_0_0.err b/result/schemas/anyAttr-processContents1_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/anyAttr1_0_0 b/result/schemas/anyAttr1_0_0 new file mode 100644 index 0000000..8afc23a --- /dev/null +++ b/result/schemas/anyAttr1_0_0 @@ -0,0 +1 @@ +./test/schemas/anyAttr1_0.xml validates diff --git a/result/schemas/anyAttr1_0_0.err b/result/schemas/anyAttr1_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/attr0_0_0 b/result/schemas/attr0_0_0 new file mode 100644 index 0000000..d054be5 --- /dev/null +++ b/result/schemas/attr0_0_0 @@ -0,0 +1 @@ +./test/schemas/attr0_0.xml validates diff --git a/result/schemas/attr0_0_0.err b/result/schemas/attr0_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/attruse_0_0 b/result/schemas/attruse_0_0 new file mode 100644 index 0000000..c645bc5 --- /dev/null +++ b/result/schemas/attruse_0_0 @@ -0,0 +1 @@ +./test/schemas/attruse_0_0.xml validates diff --git a/result/schemas/attruse_0_0.err b/result/schemas/attruse_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/attruse_0_1 b/result/schemas/attruse_0_1 new file mode 100644 index 0000000..dd23d0b --- /dev/null +++ b/result/schemas/attruse_0_1 @@ -0,0 +1 @@ +./test/schemas/attruse_0_1.xml fails to validate diff --git a/result/schemas/attruse_0_1.err b/result/schemas/attruse_0_1.err new file mode 100644 index 0000000..5dd4fb1 --- /dev/null +++ b/result/schemas/attruse_0_1.err @@ -0,0 +1 @@ +./test/schemas/attruse_0_1.xml:3: element barA: Schemas validity error : Element 'barA': The attribute 'attr' is required but missing. diff --git a/result/schemas/attruse_0_2 b/result/schemas/attruse_0_2 new file mode 100644 index 0000000..0ea3301 --- /dev/null +++ b/result/schemas/attruse_0_2 @@ -0,0 +1 @@ +./test/schemas/attruse_0_2.xml fails to validate diff --git a/result/schemas/attruse_0_2.err b/result/schemas/attruse_0_2.err new file mode 100644 index 0000000..01cf822 --- /dev/null +++ b/result/schemas/attruse_0_2.err @@ -0,0 +1 @@ +./test/schemas/attruse_0_2.xml:6: element barC: Schemas validity error : Element 'barC', attribute 'attr': The attribute 'attr' is not allowed. diff --git a/result/schemas/bug141312_0_0 b/result/schemas/bug141312_0_0 new file mode 100644 index 0000000..d8048a7 --- /dev/null +++ b/result/schemas/bug141312_0_0 @@ -0,0 +1 @@ +./test/schemas/bug141312_0.xml validates diff --git a/result/schemas/bug141312_0_0.err b/result/schemas/bug141312_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/bug141333_0_0 b/result/schemas/bug141333_0_0 new file mode 100644 index 0000000..189660f --- /dev/null +++ b/result/schemas/bug141333_0_0 @@ -0,0 +1 @@ +./test/schemas/bug141333_0.xml validates diff --git a/result/schemas/bug141333_0_0.err b/result/schemas/bug141333_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/bug143951_0_0 b/result/schemas/bug143951_0_0 new file mode 100644 index 0000000..2d0e3e7 --- /dev/null +++ b/result/schemas/bug143951_0_0 @@ -0,0 +1 @@ +./test/schemas/bug143951_0.xml validates diff --git a/result/schemas/bug143951_0_0.err b/result/schemas/bug143951_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/bug145246_0_0 b/result/schemas/bug145246_0_0 new file mode 100644 index 0000000..d28ccf7 --- /dev/null +++ b/result/schemas/bug145246_0_0 @@ -0,0 +1 @@ +./test/schemas/bug145246_0.xml validates diff --git a/result/schemas/bug145246_0_0.err b/result/schemas/bug145246_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/bug152470_1_1 b/result/schemas/bug152470_1_1 new file mode 100644 index 0000000..b158caa --- /dev/null +++ b/result/schemas/bug152470_1_1 @@ -0,0 +1 @@ +./test/schemas/bug152470_1.xml validates diff --git a/result/schemas/bug152470_1_1.err b/result/schemas/bug152470_1_1.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/bug167754_0_0 b/result/schemas/bug167754_0_0 new file mode 100644 index 0000000..27b50fc --- /dev/null +++ b/result/schemas/bug167754_0_0 @@ -0,0 +1 @@ +./test/schemas/bug167754_0.xml validates diff --git a/result/schemas/bug167754_0_0.err b/result/schemas/bug167754_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/bug303566_1_1 b/result/schemas/bug303566_1_1 new file mode 100644 index 0000000..8092bf0 --- /dev/null +++ b/result/schemas/bug303566_1_1 @@ -0,0 +1 @@ +./test/schemas/bug303566_1.xml fails to validate diff --git a/result/schemas/bug303566_1_1.err b/result/schemas/bug303566_1_1.err new file mode 100644 index 0000000..9156981 --- /dev/null +++ b/result/schemas/bug303566_1_1.err @@ -0,0 +1 @@ +./test/schemas/bug303566_1.xml:9: Schemas validity error : Element 'Part': No match found for key-sequence ['B'] of keyref 'PartRefCountryDummy'. diff --git a/result/schemas/bug306806_1_0 b/result/schemas/bug306806_1_0 new file mode 100644 index 0000000..c2cb7c8 --- /dev/null +++ b/result/schemas/bug306806_1_0 @@ -0,0 +1 @@ +./test/schemas/bug306806_0.xml validates diff --git a/result/schemas/bug306806_1_0.err b/result/schemas/bug306806_1_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/bug309338_1_0 b/result/schemas/bug309338_1_0 new file mode 100644 index 0000000..65331f1 --- /dev/null +++ b/result/schemas/bug309338_1_0 @@ -0,0 +1 @@ +./test/schemas/bug309338_0.xml validates diff --git a/result/schemas/bug309338_1_0.err b/result/schemas/bug309338_1_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/bug310264_0_0 b/result/schemas/bug310264_0_0 new file mode 100644 index 0000000..e07293d --- /dev/null +++ b/result/schemas/bug310264_0_0 @@ -0,0 +1 @@ +./test/schemas/bug310264_0.xml validates diff --git a/result/schemas/bug310264_0_0.err b/result/schemas/bug310264_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/bug312957_1_0 b/result/schemas/bug312957_1_0 new file mode 100644 index 0000000..1ec6269 --- /dev/null +++ b/result/schemas/bug312957_1_0 @@ -0,0 +1 @@ +./test/schemas/bug312957_0.xml fails to validate diff --git a/result/schemas/bug312957_1_0.err b/result/schemas/bug312957_1_0.err new file mode 100644 index 0000000..40e58ff --- /dev/null +++ b/result/schemas/bug312957_1_0.err @@ -0,0 +1 @@ +./test/schemas/bug312957_0.xml:10: Schemas validity error : Element 'sister': No match found for key-sequence ['annie'] of keyref 'sibling_key_ref'. diff --git a/result/schemas/bug313982_0_0 b/result/schemas/bug313982_0_0 new file mode 100644 index 0000000..19855cf --- /dev/null +++ b/result/schemas/bug313982_0_0 @@ -0,0 +1 @@ +./test/schemas/bug313982_0.xml validates diff --git a/result/schemas/bug313982_0_0.err b/result/schemas/bug313982_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/bug321475_1_0 b/result/schemas/bug321475_1_0 new file mode 100644 index 0000000..f943041 --- /dev/null +++ b/result/schemas/bug321475_1_0 @@ -0,0 +1 @@ +./test/schemas/bug321475_0.xml validates diff --git a/result/schemas/bug321475_1_0.err b/result/schemas/bug321475_1_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/bug322411_1_0 b/result/schemas/bug322411_1_0 new file mode 100644 index 0000000..79560fb --- /dev/null +++ b/result/schemas/bug322411_1_0 @@ -0,0 +1 @@ +./test/schemas/bug322411_0.xml validates diff --git a/result/schemas/bug322411_1_0.err b/result/schemas/bug322411_1_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/bug323510_1_0 b/result/schemas/bug323510_1_0 new file mode 100644 index 0000000..c33d685 --- /dev/null +++ b/result/schemas/bug323510_1_0 @@ -0,0 +1 @@ +./test/schemas/bug323510_0.xml fails to validate diff --git a/result/schemas/bug323510_1_0.err b/result/schemas/bug323510_1_0.err new file mode 100644 index 0000000..1655070 --- /dev/null +++ b/result/schemas/bug323510_1_0.err @@ -0,0 +1 @@ +./test/schemas/bug323510_0.xml:2: element foo: Schemas validity error : Element 'foo': Missing child element(s). Expected is ( bar ). diff --git a/result/schemas/bug455953_0_0 b/result/schemas/bug455953_0_0 new file mode 100644 index 0000000..6175d1e --- /dev/null +++ b/result/schemas/bug455953_0_0 @@ -0,0 +1 @@ +./test/schemas/bug455953_0.xml validates diff --git a/result/schemas/bug455953_0_0.err b/result/schemas/bug455953_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/changelog093_1_0 b/result/schemas/changelog093_1_0 new file mode 100644 index 0000000..13f83ef --- /dev/null +++ b/result/schemas/changelog093_1_0 @@ -0,0 +1 @@ +./test/schemas/changelog093_0.xml fails to validate diff --git a/result/schemas/changelog093_1_0.err b/result/schemas/changelog093_1_0.err new file mode 100644 index 0000000..ef0b1ec --- /dev/null +++ b/result/schemas/changelog093_1_0.err @@ -0,0 +1 @@ +./test/schemas/changelog093_0.xml:7: element description: Schemas validity error : Element '{http://www.blackperl.com/XML/ChangeLog}description': Duplicate key-sequence ['PL'] in unique identity-constraint '{http://www.blackperl.com/XML/ChangeLog}changelogDescriptionLangConstraint'. diff --git a/result/schemas/choice_0_0 b/result/schemas/choice_0_0 new file mode 100644 index 0000000..eda062e --- /dev/null +++ b/result/schemas/choice_0_0 @@ -0,0 +1 @@ +./test/schemas/choice_0.xml validates diff --git a/result/schemas/choice_0_0.err b/result/schemas/choice_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/choice_0_1 b/result/schemas/choice_0_1 new file mode 100644 index 0000000..e4338de --- /dev/null +++ b/result/schemas/choice_0_1 @@ -0,0 +1 @@ +./test/schemas/choice_1.xml validates diff --git a/result/schemas/choice_0_1.err b/result/schemas/choice_0_1.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/choice_0_2 b/result/schemas/choice_0_2 new file mode 100644 index 0000000..4071315 --- /dev/null +++ b/result/schemas/choice_0_2 @@ -0,0 +1 @@ +./test/schemas/choice_2.xml fails to validate diff --git a/result/schemas/choice_0_2.err b/result/schemas/choice_0_2.err new file mode 100644 index 0000000..5141445 --- /dev/null +++ b/result/schemas/choice_0_2.err @@ -0,0 +1 @@ +./test/schemas/choice_2.xml:3: element b: Schemas validity error : Element 'b': This element is not expected. diff --git a/result/schemas/choice_0_3 b/result/schemas/choice_0_3 new file mode 100644 index 0000000..bef604b --- /dev/null +++ b/result/schemas/choice_0_3 @@ -0,0 +1 @@ +./test/schemas/choice_3.xml fails to validate diff --git a/result/schemas/choice_0_3.err b/result/schemas/choice_0_3.err new file mode 100644 index 0000000..ece5d69 --- /dev/null +++ b/result/schemas/choice_0_3.err @@ -0,0 +1 @@ +./test/schemas/choice_3.xml:3: element a: Schemas validity error : Element 'a': This element is not expected. diff --git a/result/schemas/choice_0_4 b/result/schemas/choice_0_4 new file mode 100644 index 0000000..0643e3b --- /dev/null +++ b/result/schemas/choice_0_4 @@ -0,0 +1 @@ +./test/schemas/choice_4.xml fails to validate diff --git a/result/schemas/choice_0_4.err b/result/schemas/choice_0_4.err new file mode 100644 index 0000000..3d3af59 --- /dev/null +++ b/result/schemas/choice_0_4.err @@ -0,0 +1 @@ +./test/schemas/choice_4.xml:1: element doc: Schemas validity error : Element 'doc': Missing child element(s). Expected is one of ( a, b ). diff --git a/result/schemas/choice_0_5 b/result/schemas/choice_0_5 new file mode 100644 index 0000000..acaaddd --- /dev/null +++ b/result/schemas/choice_0_5 @@ -0,0 +1 @@ +./test/schemas/choice_5.xml fails to validate diff --git a/result/schemas/choice_0_5.err b/result/schemas/choice_0_5.err new file mode 100644 index 0000000..39d413c --- /dev/null +++ b/result/schemas/choice_0_5.err @@ -0,0 +1 @@ +./test/schemas/choice_5.xml:3: element b: Schemas validity error : Element 'b': This element is not expected. diff --git a/result/schemas/choice_0_6 b/result/schemas/choice_0_6 new file mode 100644 index 0000000..ee4ceae --- /dev/null +++ b/result/schemas/choice_0_6 @@ -0,0 +1 @@ +./test/schemas/choice_6.xml fails to validate diff --git a/result/schemas/choice_0_6.err b/result/schemas/choice_0_6.err new file mode 100644 index 0000000..414d1e2 --- /dev/null +++ b/result/schemas/choice_0_6.err @@ -0,0 +1 @@ +./test/schemas/choice_6.xml:3: element b: Schemas validity error : Element 'b': This element is not expected. diff --git a/result/schemas/choice_1_0 b/result/schemas/choice_1_0 new file mode 100644 index 0000000..eda062e --- /dev/null +++ b/result/schemas/choice_1_0 @@ -0,0 +1 @@ +./test/schemas/choice_0.xml validates diff --git a/result/schemas/choice_1_0.err b/result/schemas/choice_1_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/choice_1_1 b/result/schemas/choice_1_1 new file mode 100644 index 0000000..e4338de --- /dev/null +++ b/result/schemas/choice_1_1 @@ -0,0 +1 @@ +./test/schemas/choice_1.xml validates diff --git a/result/schemas/choice_1_1.err b/result/schemas/choice_1_1.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/choice_1_2 b/result/schemas/choice_1_2 new file mode 100644 index 0000000..4071315 --- /dev/null +++ b/result/schemas/choice_1_2 @@ -0,0 +1 @@ +./test/schemas/choice_2.xml fails to validate diff --git a/result/schemas/choice_1_2.err b/result/schemas/choice_1_2.err new file mode 100644 index 0000000..5141445 --- /dev/null +++ b/result/schemas/choice_1_2.err @@ -0,0 +1 @@ +./test/schemas/choice_2.xml:3: element b: Schemas validity error : Element 'b': This element is not expected. diff --git a/result/schemas/choice_1_3 b/result/schemas/choice_1_3 new file mode 100644 index 0000000..bef604b --- /dev/null +++ b/result/schemas/choice_1_3 @@ -0,0 +1 @@ +./test/schemas/choice_3.xml fails to validate diff --git a/result/schemas/choice_1_3.err b/result/schemas/choice_1_3.err new file mode 100644 index 0000000..ece5d69 --- /dev/null +++ b/result/schemas/choice_1_3.err @@ -0,0 +1 @@ +./test/schemas/choice_3.xml:3: element a: Schemas validity error : Element 'a': This element is not expected. diff --git a/result/schemas/choice_1_4 b/result/schemas/choice_1_4 new file mode 100644 index 0000000..36b3827 --- /dev/null +++ b/result/schemas/choice_1_4 @@ -0,0 +1 @@ +./test/schemas/choice_4.xml validates diff --git a/result/schemas/choice_1_4.err b/result/schemas/choice_1_4.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/choice_1_5 b/result/schemas/choice_1_5 new file mode 100644 index 0000000..acaaddd --- /dev/null +++ b/result/schemas/choice_1_5 @@ -0,0 +1 @@ +./test/schemas/choice_5.xml fails to validate diff --git a/result/schemas/choice_1_5.err b/result/schemas/choice_1_5.err new file mode 100644 index 0000000..39d413c --- /dev/null +++ b/result/schemas/choice_1_5.err @@ -0,0 +1 @@ +./test/schemas/choice_5.xml:3: element b: Schemas validity error : Element 'b': This element is not expected. diff --git a/result/schemas/choice_1_6 b/result/schemas/choice_1_6 new file mode 100644 index 0000000..ee4ceae --- /dev/null +++ b/result/schemas/choice_1_6 @@ -0,0 +1 @@ +./test/schemas/choice_6.xml fails to validate diff --git a/result/schemas/choice_1_6.err b/result/schemas/choice_1_6.err new file mode 100644 index 0000000..414d1e2 --- /dev/null +++ b/result/schemas/choice_1_6.err @@ -0,0 +1 @@ +./test/schemas/choice_6.xml:3: element b: Schemas validity error : Element 'b': This element is not expected. diff --git a/result/schemas/choice_2_0 b/result/schemas/choice_2_0 new file mode 100644 index 0000000..eda062e --- /dev/null +++ b/result/schemas/choice_2_0 @@ -0,0 +1 @@ +./test/schemas/choice_0.xml validates diff --git a/result/schemas/choice_2_0.err b/result/schemas/choice_2_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/choice_2_1 b/result/schemas/choice_2_1 new file mode 100644 index 0000000..e4338de --- /dev/null +++ b/result/schemas/choice_2_1 @@ -0,0 +1 @@ +./test/schemas/choice_1.xml validates diff --git a/result/schemas/choice_2_1.err b/result/schemas/choice_2_1.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/choice_2_2 b/result/schemas/choice_2_2 new file mode 100644 index 0000000..c58e154 --- /dev/null +++ b/result/schemas/choice_2_2 @@ -0,0 +1 @@ +./test/schemas/choice_2.xml validates diff --git a/result/schemas/choice_2_2.err b/result/schemas/choice_2_2.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/choice_2_3 b/result/schemas/choice_2_3 new file mode 100644 index 0000000..1058f7e --- /dev/null +++ b/result/schemas/choice_2_3 @@ -0,0 +1 @@ +./test/schemas/choice_3.xml validates diff --git a/result/schemas/choice_2_3.err b/result/schemas/choice_2_3.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/choice_2_4 b/result/schemas/choice_2_4 new file mode 100644 index 0000000..0643e3b --- /dev/null +++ b/result/schemas/choice_2_4 @@ -0,0 +1 @@ +./test/schemas/choice_4.xml fails to validate diff --git a/result/schemas/choice_2_4.err b/result/schemas/choice_2_4.err new file mode 100644 index 0000000..3d3af59 --- /dev/null +++ b/result/schemas/choice_2_4.err @@ -0,0 +1 @@ +./test/schemas/choice_4.xml:1: element doc: Schemas validity error : Element 'doc': Missing child element(s). Expected is one of ( a, b ). diff --git a/result/schemas/choice_2_5 b/result/schemas/choice_2_5 new file mode 100644 index 0000000..67e79ba --- /dev/null +++ b/result/schemas/choice_2_5 @@ -0,0 +1 @@ +./test/schemas/choice_5.xml validates diff --git a/result/schemas/choice_2_5.err b/result/schemas/choice_2_5.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/choice_2_6 b/result/schemas/choice_2_6 new file mode 100644 index 0000000..ee4ceae --- /dev/null +++ b/result/schemas/choice_2_6 @@ -0,0 +1 @@ +./test/schemas/choice_6.xml fails to validate diff --git a/result/schemas/choice_2_6.err b/result/schemas/choice_2_6.err new file mode 100644 index 0000000..bef56da --- /dev/null +++ b/result/schemas/choice_2_6.err @@ -0,0 +1 @@ +./test/schemas/choice_6.xml:5: element a: Schemas validity error : Element 'a': This element is not expected. diff --git a/result/schemas/complex-type-extension_0_0 b/result/schemas/complex-type-extension_0_0 new file mode 100644 index 0000000..ef15215 --- /dev/null +++ b/result/schemas/complex-type-extension_0_0 @@ -0,0 +1 @@ +./test/schemas/complex-type-extension_0.xml validates diff --git a/result/schemas/complex-type-extension_0_0.err b/result/schemas/complex-type-extension_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/cos-ct-extends-1-3_0_0 b/result/schemas/cos-ct-extends-1-3_0_0 new file mode 100644 index 0000000..5dd5bd7 --- /dev/null +++ b/result/schemas/cos-ct-extends-1-3_0_0 @@ -0,0 +1 @@ +./test/schemas/cos-ct-extends-1-3_0.xml validates diff --git a/result/schemas/cos-ct-extends-1-3_0_0.err b/result/schemas/cos-ct-extends-1-3_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/cos-st-restricts-1-2-err_0_0 b/result/schemas/cos-st-restricts-1-2-err_0_0 new file mode 100644 index 0000000..dc34253 --- /dev/null +++ b/result/schemas/cos-st-restricts-1-2-err_0_0 @@ -0,0 +1 @@ +./test/schemas/cos-st-restricts-1-2-err_0.xml fails to validate diff --git a/result/schemas/cos-st-restricts-1-2-err_0_0.err b/result/schemas/cos-st-restricts-1-2-err_0_0.err new file mode 100644 index 0000000..ccc12b6 --- /dev/null +++ b/result/schemas/cos-st-restricts-1-2-err_0_0.err @@ -0,0 +1,2 @@ +./test/schemas/cos-st-restricts-1-2-err_0.xml:3: element foo: Schemas validity error : Element '{http://FOO}foo': [facet 'length'] The value has a length of '2'; this differs from the allowed length of '3'. +./test/schemas/cos-st-restricts-1-2-err_0.xml:3: element foo: Schemas validity error : Element '{http://FOO}foo': '1 2' is not a valid value of the list type '{http://FOO}type.A'. diff --git a/result/schemas/ct-sc-nobase_0_0 b/result/schemas/ct-sc-nobase_0_0 new file mode 100644 index 0000000..168712a --- /dev/null +++ b/result/schemas/ct-sc-nobase_0_0 @@ -0,0 +1 @@ +./test/schemas/ct-sc-nobase_0.xml validates diff --git a/result/schemas/ct-sc-nobase_0_0.err b/result/schemas/ct-sc-nobase_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/date_0_0 b/result/schemas/date_0_0 new file mode 100644 index 0000000..2554d30 --- /dev/null +++ b/result/schemas/date_0_0 @@ -0,0 +1 @@ +./test/schemas/date_0.xml validates diff --git a/result/schemas/date_0_0.err b/result/schemas/date_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/decimal-1_1_0 b/result/schemas/decimal-1_1_0 new file mode 100644 index 0000000..041b31d --- /dev/null +++ b/result/schemas/decimal-1_1_0 @@ -0,0 +1 @@ +./test/schemas/decimal-1_0.xml fails to validate diff --git a/result/schemas/decimal-1_1_0.err b/result/schemas/decimal-1_1_0.err new file mode 100644 index 0000000..7f4fa9c --- /dev/null +++ b/result/schemas/decimal-1_1_0.err @@ -0,0 +1,8 @@ +./test/schemas/decimal-1_0.xml:16: element val: Schemas validity error : Element 'val': '.' is not a valid value of the atomic type 'myDecimal'. +./test/schemas/decimal-1_0.xml:17: element val: Schemas validity error : Element 'val': '-' is not a valid value of the atomic type 'myDecimal'. +./test/schemas/decimal-1_0.xml:18: element val: Schemas validity error : Element 'val': '+' is not a valid value of the atomic type 'myDecimal'. +./test/schemas/decimal-1_0.xml:19: element val: Schemas validity error : Element 'val': '*' is not a valid value of the atomic type 'myDecimal'. +./test/schemas/decimal-1_0.xml:20: element val: Schemas validity error : Element 'val': '- 1' is not a valid value of the atomic type 'myDecimal'. +./test/schemas/decimal-1_0.xml:21: element val: Schemas validity error : Element 'val': '+ 1' is not a valid value of the atomic type 'myDecimal'. +./test/schemas/decimal-1_0.xml:22: element val: Schemas validity error : Element 'val': '+ 0' is not a valid value of the atomic type 'myDecimal'. +./test/schemas/decimal-1_0.xml:23: element val: Schemas validity error : Element 'val': '- 0' is not a valid value of the atomic type 'myDecimal'. diff --git a/result/schemas/decimal-2_1_0 b/result/schemas/decimal-2_1_0 new file mode 100644 index 0000000..f68ca92 --- /dev/null +++ b/result/schemas/decimal-2_1_0 @@ -0,0 +1 @@ +./test/schemas/decimal-2_0.xml fails to validate diff --git a/result/schemas/decimal-2_1_0.err b/result/schemas/decimal-2_1_0.err new file mode 100644 index 0000000..fe663c2 --- /dev/null +++ b/result/schemas/decimal-2_1_0.err @@ -0,0 +1,4 @@ +./test/schemas/decimal-2_0.xml:12: element val: Schemas validity error : Element 'val': [facet 'minInclusive'] The value '-0.1' is less than the minimum value allowed ('0'). +./test/schemas/decimal-2_0.xml:12: element val: Schemas validity error : Element 'val': '-0.1' is not a valid value of the atomic type 'myDecimal'. +./test/schemas/decimal-2_0.xml:13: element val: Schemas validity error : Element 'val': [facet 'minInclusive'] The value '-1' is less than the minimum value allowed ('0'). +./test/schemas/decimal-2_0.xml:13: element val: Schemas validity error : Element 'val': '-1' is not a valid value of the atomic type 'myDecimal'. diff --git a/result/schemas/decimal-3_1_0 b/result/schemas/decimal-3_1_0 new file mode 100644 index 0000000..5601535 --- /dev/null +++ b/result/schemas/decimal-3_1_0 @@ -0,0 +1 @@ +./test/schemas/decimal-3_0.xml fails to validate diff --git a/result/schemas/decimal-3_1_0.err b/result/schemas/decimal-3_1_0.err new file mode 100644 index 0000000..bba8cf9 --- /dev/null +++ b/result/schemas/decimal-3_1_0.err @@ -0,0 +1,8 @@ +./test/schemas/decimal-3_0.xml:12: element val: Schemas validity error : Element 'val': [facet 'totalDigits'] The value '0.123' has more digits than are allowed ('2'). +./test/schemas/decimal-3_0.xml:12: element val: Schemas validity error : Element 'val': '0.123' is not a valid value of the atomic type 'myDecimal'. +./test/schemas/decimal-3_0.xml:13: element val: Schemas validity error : Element 'val': [facet 'totalDigits'] The value '0.023' has more digits than are allowed ('2'). +./test/schemas/decimal-3_0.xml:13: element val: Schemas validity error : Element 'val': '0.023' is not a valid value of the atomic type 'myDecimal'. +./test/schemas/decimal-3_0.xml:14: element val: Schemas validity error : Element 'val': [facet 'totalDigits'] The value '123' has more digits than are allowed ('2'). +./test/schemas/decimal-3_0.xml:14: element val: Schemas validity error : Element 'val': '123' is not a valid value of the atomic type 'myDecimal'. +./test/schemas/decimal-3_0.xml:15: element val: Schemas validity error : Element 'val': [facet 'totalDigits'] The value '12.3' has more digits than are allowed ('2'). +./test/schemas/decimal-3_0.xml:15: element val: Schemas validity error : Element 'val': '12.3' is not a valid value of the atomic type 'myDecimal'. diff --git a/result/schemas/derivation-ok-extension-err_0_0 b/result/schemas/derivation-ok-extension-err_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/derivation-ok-extension-err_0_0.err b/result/schemas/derivation-ok-extension-err_0_0.err new file mode 100644 index 0000000..a0fba52 --- /dev/null +++ b/result/schemas/derivation-ok-extension-err_0_0.err @@ -0,0 +1 @@ +./test/schemas/derivation-ok-extension-err_0.xsd:6: element complexType: Schemas parser error : local complex type: Duplicate attribute use 'barA_1'. diff --git a/result/schemas/derivation-ok-extension_0_0 b/result/schemas/derivation-ok-extension_0_0 new file mode 100644 index 0000000..0947365 --- /dev/null +++ b/result/schemas/derivation-ok-extension_0_0 @@ -0,0 +1 @@ +./test/schemas/derivation-ok-extension_0.xml validates diff --git a/result/schemas/derivation-ok-extension_0_0.err b/result/schemas/derivation-ok-extension_0_0.err new file mode 100644 index 0000000..1314232 --- /dev/null +++ b/result/schemas/derivation-ok-extension_0_0.err @@ -0,0 +1 @@ +./test/schemas/derivation-ok-extension_0.xsd:10: element attribute: Schemas parser warning : Element '{http://www.w3.org/2001/XMLSchema}attribute': Skipping attribute use prohibition, since it is pointless when extending a type. diff --git a/result/schemas/derivation-ok-restriction-2-1-1_0_0 b/result/schemas/derivation-ok-restriction-2-1-1_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/derivation-ok-restriction-2-1-1_0_0.err b/result/schemas/derivation-ok-restriction-2-1-1_0_0.err new file mode 100644 index 0000000..bd38dd2 --- /dev/null +++ b/result/schemas/derivation-ok-restriction-2-1-1_0_0.err @@ -0,0 +1,6 @@ +./test/schemas/derivation-ok-restriction-2-1-1_0.xsd:6: element complexType: Schemas parser error : local complex type, attribute use 'barB_1': The 'optional' attribute use is inconsistent with the corresponding 'required' attribute use of the base complex type definition '{http://FOO}typeA'. +./test/schemas/derivation-ok-restriction-2-1-1_0.xsd:6: element complexType: Schemas parser error : local complex type, attribute use 'barC_1': Neither a matching attribute use, nor a matching wildcard exists in the base complex type definition '{http://FOO}typeA'. +./test/schemas/derivation-ok-restriction-2-1-1_0.xsd:6: element complexType: Schemas parser error : local complex type, attribute use 'barC_2': Neither a matching attribute use, nor a matching wildcard exists in the base complex type definition '{http://FOO}typeA'. +./test/schemas/derivation-ok-restriction-2-1-1_0.xsd:6: element complexType: Schemas parser error : local complex type, attribute use 'barD_1': Neither a matching attribute use, nor a matching wildcard exists in the base complex type definition '{http://FOO}typeA'. +./test/schemas/derivation-ok-restriction-2-1-1_0.xsd:6: element complexType: Schemas parser error : local complex type, attribute use 'barD_2': Neither a matching attribute use, nor a matching wildcard exists in the base complex type definition '{http://FOO}typeA'. +./test/schemas/derivation-ok-restriction-2-1-1_0.xsd:6: element complexType: Schemas parser error : local complex type: A matching attribute use for the 'required' attribute use 'barB_3' of the base complex type definition '{http://FOO}typeA' is missing. diff --git a/result/schemas/derivation-ok-restriction-4-1-err_0_0 b/result/schemas/derivation-ok-restriction-4-1-err_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/derivation-ok-restriction-4-1-err_0_0.err b/result/schemas/derivation-ok-restriction-4-1-err_0_0.err new file mode 100644 index 0000000..72283fb --- /dev/null +++ b/result/schemas/derivation-ok-restriction-4-1-err_0_0.err @@ -0,0 +1,3 @@ +./test/schemas/derivation-ok-restriction-4-1-err_0.xsd:33: element complexType: Schemas parser error : complex type 'type.A': The complex type definition has an attribute wildcard, but the base complex type definition '{http://FOO}base.type.A' does not have one. +./test/schemas/derivation-ok-restriction-4-1-err_0.xsd:45: element complexType: Schemas parser error : complex type 'type.B': The attribute wildcard is not a valid subset of the wildcard in the base complex type definition '{http://FOO}base.type.B'. +./test/schemas/derivation-ok-restriction-4-1-err_0.xsd:65: element complexType: Schemas parser error : complex type 'base.type.C': The {process contents} of the attribute wildcard is weaker than the one in the base complex type definition '{http://FOO}base.type.C'. diff --git a/result/schemas/derivation-restriction-anyAttr_0_0 b/result/schemas/derivation-restriction-anyAttr_0_0 new file mode 100644 index 0000000..4e04176 --- /dev/null +++ b/result/schemas/derivation-restriction-anyAttr_0_0 @@ -0,0 +1 @@ +./test/schemas/derivation-restriction-anyAttr_0.xml validates diff --git a/result/schemas/derivation-restriction-anyAttr_0_0.err b/result/schemas/derivation-restriction-anyAttr_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/deter0_0_0 b/result/schemas/deter0_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/deter0_0_0.err b/result/schemas/deter0_0_0.err new file mode 100644 index 0000000..d2c8b4e --- /dev/null +++ b/result/schemas/deter0_0_0.err @@ -0,0 +1 @@ +./test/schemas/deter0_0.xsd:6: element complexType: Schemas parser error : local complex type: The content model is not determinist. diff --git a/result/schemas/dur_0_0 b/result/schemas/dur_0_0 new file mode 100644 index 0000000..5b3a2c9 --- /dev/null +++ b/result/schemas/dur_0_0 @@ -0,0 +1 @@ +./test/schemas/dur_0.xml validates diff --git a/result/schemas/dur_0_0.err b/result/schemas/dur_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/elem0_0_0 b/result/schemas/elem0_0_0 new file mode 100644 index 0000000..0ab06b4 --- /dev/null +++ b/result/schemas/elem0_0_0 @@ -0,0 +1 @@ +./test/schemas/elem0_0.xml validates diff --git a/result/schemas/elem0_0_0.err b/result/schemas/elem0_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/element-err_0_0 b/result/schemas/element-err_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/element-err_0_0.err b/result/schemas/element-err_0_0.err new file mode 100644 index 0000000..70524f6 --- /dev/null +++ b/result/schemas/element-err_0_0.err @@ -0,0 +1,20 @@ +./test/schemas/element-err_0.xsd:8: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': The attribute 'name' is required but missing. +./test/schemas/element-err_0.xsd:14: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': The attribute 'ref' is not allowed. +./test/schemas/element-err_0.xsd:14: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': The attribute 'minOccurs' is not allowed. +./test/schemas/element-err_0.xsd:14: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': The attribute 'maxOccurs' is not allowed. +./test/schemas/element-err_0.xsd:14: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': The attribute 'form' is not allowed. +./test/schemas/element-err_0.xsd:14: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element', attribute 'final': The value 'fantasy' is not valid. Expected is '(#all | List of (extension | restriction))'. +./test/schemas/element-err_0.xsd:14: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element', attribute 'block': The value 'flute' is not valid. Expected is '(#all | List of (extension | restriction | substitution))'. +./test/schemas/element-err_0.xsd:14: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': The attributes 'default' and 'fixed' are mutually exclusive. +./test/schemas/element-err_0.xsd:22: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element', attribute 'minOccurs': The value must not be greater than the value of 'maxOccurs'. +./test/schemas/element-err_0.xsd:22: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': The attributes 'ref' and 'name' are mutually exclusive. +./test/schemas/element-err_0.xsd:22: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element', attribute 'abstract': Only the attributes 'minOccurs', 'maxOccurs' and 'id' are allowed in addition to 'ref'. +./test/schemas/element-err_0.xsd:23: element complexType: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': The content is not valid. Expected is (annotation?). +./test/schemas/element-err_0.xsd:30: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element', attribute 'maxOccurs': The value must be greater than or equal to 1. +./test/schemas/element-err_0.xsd:30: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': The attribute 'abstract' is not allowed. +./test/schemas/element-err_0.xsd:30: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': The attribute 'substitutionGroup' is not allowed. +./test/schemas/element-err_0.xsd:30: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': The attribute 'final' is not allowed. +./test/schemas/element-err_0.xsd:30: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element', attribute 'block': The value 'flute' is not valid. Expected is '(#all | List of (extension | restriction | substitution))'. +./test/schemas/element-err_0.xsd:30: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': The attributes 'default' and 'fixed' are mutually exclusive. +./test/schemas/element-err_0.xsd:31: element complexType: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': The attribute 'type' and the child are mutually exclusive. +./test/schemas/element-err_0.xsd:32: element simpleType: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': The content is not valid. Expected is (annotation?, ((simpleType | complexType)?, (unique | key | keyref)*)). diff --git a/result/schemas/element-minmax-err_0_0 b/result/schemas/element-minmax-err_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/element-minmax-err_0_0.err b/result/schemas/element-minmax-err_0_0.err new file mode 100644 index 0000000..e53f3d8 --- /dev/null +++ b/result/schemas/element-minmax-err_0_0.err @@ -0,0 +1 @@ +./test/schemas/element-minmax-err_0.xsd:6: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element', attribute 'maxOccurs': The value must be greater than or equal to 1. diff --git a/result/schemas/empty-value_1_0 b/result/schemas/empty-value_1_0 new file mode 100644 index 0000000..5864557 --- /dev/null +++ b/result/schemas/empty-value_1_0 @@ -0,0 +1 @@ +./test/schemas/empty-value_0.xml validates diff --git a/result/schemas/empty-value_1_0.err b/result/schemas/empty-value_1_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/empty-value_1_1 b/result/schemas/empty-value_1_1 new file mode 100644 index 0000000..2e2d329 --- /dev/null +++ b/result/schemas/empty-value_1_1 @@ -0,0 +1 @@ +./test/schemas/empty-value_1.xml validates diff --git a/result/schemas/empty-value_1_1.err b/result/schemas/empty-value_1_1.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/empty_0_0 b/result/schemas/empty_0_0 new file mode 100644 index 0000000..88fc52b --- /dev/null +++ b/result/schemas/empty_0_0 @@ -0,0 +1 @@ +./test/schemas/empty_0.xml validates diff --git a/result/schemas/empty_0_0.err b/result/schemas/empty_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/empty_1_0 b/result/schemas/empty_1_0 new file mode 100644 index 0000000..88fc52b --- /dev/null +++ b/result/schemas/empty_1_0 @@ -0,0 +1 @@ +./test/schemas/empty_0.xml validates diff --git a/result/schemas/empty_1_0.err b/result/schemas/empty_1_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/extension0_0_0 b/result/schemas/extension0_0_0 new file mode 100644 index 0000000..d3dca7b --- /dev/null +++ b/result/schemas/extension0_0_0 @@ -0,0 +1 @@ +./test/schemas/extension0_0.xml validates diff --git a/result/schemas/extension0_0_0.err b/result/schemas/extension0_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/extension1_0_0 b/result/schemas/extension1_0_0 new file mode 100644 index 0000000..23da9ea --- /dev/null +++ b/result/schemas/extension1_0_0 @@ -0,0 +1 @@ +./test/schemas/extension1_0.xml validates diff --git a/result/schemas/extension1_0_0.err b/result/schemas/extension1_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/extension1_0_1 b/result/schemas/extension1_0_1 new file mode 100644 index 0000000..4a47b86 --- /dev/null +++ b/result/schemas/extension1_0_1 @@ -0,0 +1 @@ +./test/schemas/extension1_1.xml fails to validate diff --git a/result/schemas/extension1_0_1.err b/result/schemas/extension1_0_1.err new file mode 100644 index 0000000..bb5b047 --- /dev/null +++ b/result/schemas/extension1_0_1.err @@ -0,0 +1 @@ +./test/schemas/extension1_1.xml:1: element title: Schemas validity error : Element 'title', attribute 'langue': The attribute 'langue' is not allowed. diff --git a/result/schemas/extension1_0_2 b/result/schemas/extension1_0_2 new file mode 100644 index 0000000..fc8eccc --- /dev/null +++ b/result/schemas/extension1_0_2 @@ -0,0 +1 @@ +./test/schemas/extension1_2.xml fails to validate diff --git a/result/schemas/extension1_0_2.err b/result/schemas/extension1_0_2.err new file mode 100644 index 0000000..161fe9e --- /dev/null +++ b/result/schemas/extension1_0_2.err @@ -0,0 +1 @@ +./test/schemas/extension1_2.xml:1: element title: Schemas validity error : Element 'title': Element content is not allowed, because the content type is a simple type definition. diff --git a/result/schemas/extension2_1_0 b/result/schemas/extension2_1_0 new file mode 100644 index 0000000..88c15aa --- /dev/null +++ b/result/schemas/extension2_1_0 @@ -0,0 +1 @@ +./test/schemas/extension2_0.xml validates diff --git a/result/schemas/extension2_1_0.err b/result/schemas/extension2_1_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/facet-unionST-err1_0_0 b/result/schemas/facet-unionST-err1_0_0 new file mode 100644 index 0000000..baf8280 --- /dev/null +++ b/result/schemas/facet-unionST-err1_0_0 @@ -0,0 +1 @@ +./test/schemas/facet-unionST-err1_0.xml fails to validate diff --git a/result/schemas/facet-unionST-err1_0_0.err b/result/schemas/facet-unionST-err1_0_0.err new file mode 100644 index 0000000..392dbe5 --- /dev/null +++ b/result/schemas/facet-unionST-err1_0_0.err @@ -0,0 +1 @@ +./test/schemas/facet-unionST-err1_0.xml:3: element foo: Schemas validity error : Element '{http://FOO}foo': 'tiny' is not a valid value of the union type '{http://FOO}fooType.B'. diff --git a/result/schemas/facet-whiteSpace_0_0 b/result/schemas/facet-whiteSpace_0_0 new file mode 100644 index 0000000..63276c6 --- /dev/null +++ b/result/schemas/facet-whiteSpace_0_0 @@ -0,0 +1 @@ +./test/schemas/facet-whiteSpace_0.xml validates diff --git a/result/schemas/facet-whiteSpace_0_0.err b/result/schemas/facet-whiteSpace_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/group0_0_0 b/result/schemas/group0_0_0 new file mode 100644 index 0000000..587a74a --- /dev/null +++ b/result/schemas/group0_0_0 @@ -0,0 +1 @@ +./test/schemas/group0_0.xml validates diff --git a/result/schemas/group0_0_0.err b/result/schemas/group0_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/hexbinary_0_0 b/result/schemas/hexbinary_0_0 new file mode 100644 index 0000000..783bab4 --- /dev/null +++ b/result/schemas/hexbinary_0_0 @@ -0,0 +1 @@ +./test/schemas/hexbinary_0.xml validates diff --git a/result/schemas/hexbinary_0_0.err b/result/schemas/hexbinary_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/hexbinary_0_1 b/result/schemas/hexbinary_0_1 new file mode 100644 index 0000000..37b10d1 --- /dev/null +++ b/result/schemas/hexbinary_0_1 @@ -0,0 +1 @@ +./test/schemas/hexbinary_1.xml fails to validate diff --git a/result/schemas/hexbinary_0_1.err b/result/schemas/hexbinary_0_1.err new file mode 100644 index 0000000..eb0c74c --- /dev/null +++ b/result/schemas/hexbinary_0_1.err @@ -0,0 +1,10 @@ +./test/schemas/hexbinary_1.xml:6: element hex: Schemas validity error : Element 'hex': '0' is not a valid value of the atomic type 'xs:hexBinary'. +./test/schemas/hexbinary_1.xml:7: element hex: Schemas validity error : Element 'hex': '0123456789ABCDEFGH' is not a valid value of the atomic type 'xs:hexBinary'. +./test/schemas/hexbinary_1.xml:8: element hex: Schemas validity error : Element 'hex': '+abcdef0123456789' is not a valid value of the atomic type 'xs:hexBinary'. +./test/schemas/hexbinary_1.xml:9: element hex: Schemas validity error : Element 'hex': '-0123456789abcdef' is not a valid value of the atomic type 'xs:hexBinary'. +./test/schemas/hexbinary_1.xml:11: element hex2: Schemas validity error : Element 'hex2': [facet 'maxLength'] The value has a length of '9'; this exceeds the allowed maximum length of '8'. +./test/schemas/hexbinary_1.xml:11: element hex2: Schemas validity error : Element 'hex2': '112233445566778899' is not a valid value of the local atomic type. +./test/schemas/hexbinary_1.xml:13: element hex3: Schemas validity error : Element 'hex3': [facet 'length'] The value has a length of '1'; this differs from the allowed length of '2'. +./test/schemas/hexbinary_1.xml:13: element hex3: Schemas validity error : Element 'hex3': 'ab' is not a valid value of the local atomic type. +./test/schemas/hexbinary_1.xml:14: element hex3: Schemas validity error : Element 'hex3': [facet 'length'] The value has a length of '3'; this differs from the allowed length of '2'. +./test/schemas/hexbinary_1.xml:14: element hex3: Schemas validity error : Element 'hex3': '00fedc' is not a valid value of the local atomic type. diff --git a/result/schemas/idc-keyref-err1_1_0 b/result/schemas/idc-keyref-err1_1_0 new file mode 100644 index 0000000..d4333a9 --- /dev/null +++ b/result/schemas/idc-keyref-err1_1_0 @@ -0,0 +1 @@ +./test/schemas/idc-keyref-err1_0.xml fails to validate diff --git a/result/schemas/idc-keyref-err1_1_0.err b/result/schemas/idc-keyref-err1_1_0.err new file mode 100644 index 0000000..8e9cb20 --- /dev/null +++ b/result/schemas/idc-keyref-err1_1_0.err @@ -0,0 +1 @@ +./test/schemas/idc-keyref-err1_0.xml:12: Schemas validity error : Element '{urn:test:foo}Ref': No match found for key-sequence ['L4'] of keyref '{urn:test:foo}LinkKeyRef'. diff --git a/result/schemas/import0_0_0 b/result/schemas/import0_0_0 new file mode 100644 index 0000000..1231800 --- /dev/null +++ b/result/schemas/import0_0_0 @@ -0,0 +1 @@ +./test/schemas/import0_0.xml validates diff --git a/result/schemas/import0_0_0.err b/result/schemas/import0_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/import1_0_0 b/result/schemas/import1_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/import1_0_0.err b/result/schemas/import1_0_0.err new file mode 100644 index 0000000..96f572f --- /dev/null +++ b/result/schemas/import1_0_0.err @@ -0,0 +1,4 @@ +I/O warning : failed to load external entity "test/schemas/import1_0bc.imp" +./test/schemas/import1_0.xsd:11: element import: Schemas parser warning : Element '{http://www.w3.org/2001/XMLSchema}import': Failed to locate a schema at location 'test/schemas/import1_0bc.imp'. Skipping the import. +./test/schemas/import1_0.xsd:16: element import: Schemas parser warning : Element '{http://www.w3.org/2001/XMLSchema}import': Skipping import of schema located at 'test/schemas/import1_0b.imp' for the namespace 'http://BAR', since this namespace was already imported with the schema located at 'test/schemas/import1_0.imp'. +./test/schemas/import1_0.xsd:26: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element', attribute 'ref': The QName value '{http://BAR}bar.B' does not resolve to a(n) element declaration. diff --git a/result/schemas/import2_0_0 b/result/schemas/import2_0_0 new file mode 100644 index 0000000..2960b48 --- /dev/null +++ b/result/schemas/import2_0_0 @@ -0,0 +1 @@ +./test/schemas/import2_0.xml validates diff --git a/result/schemas/import2_0_0.err b/result/schemas/import2_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/include1_0_0 b/result/schemas/include1_0_0 new file mode 100644 index 0000000..8ba8a2e --- /dev/null +++ b/result/schemas/include1_0_0 @@ -0,0 +1 @@ +./test/schemas/include1_0.xml validates diff --git a/result/schemas/include1_0_0.err b/result/schemas/include1_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/include2_0_0 b/result/schemas/include2_0_0 new file mode 100644 index 0000000..7aea2b0 --- /dev/null +++ b/result/schemas/include2_0_0 @@ -0,0 +1 @@ +./test/schemas/include2_0.xml validates diff --git a/result/schemas/include2_0_0.err b/result/schemas/include2_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/include3_0_0 b/result/schemas/include3_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/include3_0_0.err b/result/schemas/include3_0_0.err new file mode 100644 index 0000000..27bb5d0 --- /dev/null +++ b/result/schemas/include3_0_0.err @@ -0,0 +1 @@ +test/schemas/include3_0.inc:4: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': A global element declaration '{http://FOO}bar' does already exist. diff --git a/result/schemas/item_0_0 b/result/schemas/item_0_0 new file mode 100644 index 0000000..90fa561 --- /dev/null +++ b/result/schemas/item_0_0 @@ -0,0 +1 @@ +./test/schemas/item_0.xml validates diff --git a/result/schemas/item_0_0.err b/result/schemas/item_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/item_1_0 b/result/schemas/item_1_0 new file mode 100644 index 0000000..90fa561 --- /dev/null +++ b/result/schemas/item_1_0 @@ -0,0 +1 @@ +./test/schemas/item_0.xml validates diff --git a/result/schemas/item_1_0.err b/result/schemas/item_1_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/length1_0_0 b/result/schemas/length1_0_0 new file mode 100644 index 0000000..58cbe24 --- /dev/null +++ b/result/schemas/length1_0_0 @@ -0,0 +1 @@ +./test/schemas/length1_0.xml validates diff --git a/result/schemas/length1_0_0.err b/result/schemas/length1_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/length2_0_0 b/result/schemas/length2_0_0 new file mode 100644 index 0000000..4fd27d6 --- /dev/null +++ b/result/schemas/length2_0_0 @@ -0,0 +1 @@ +./test/schemas/length2_0.xml validates diff --git a/result/schemas/length2_0_0.err b/result/schemas/length2_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/length3_0_0 b/result/schemas/length3_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/length3_0_0.err b/result/schemas/length3_0_0.err new file mode 100644 index 0000000..65afcd7 --- /dev/null +++ b/result/schemas/length3_0_0.err @@ -0,0 +1 @@ +./test/schemas/length3_0.xsd:5: element element: Schemas parser error : element decl. 'size', attribute 'type': The QName value '{http://www.w3.org/2001/XMLSchema}non-positive-integer' does not resolve to a(n) type definition. diff --git a/result/schemas/list0_0_0 b/result/schemas/list0_0_0 new file mode 100644 index 0000000..37a2cdc --- /dev/null +++ b/result/schemas/list0_0_0 @@ -0,0 +1 @@ +./test/schemas/list0_0.xml validates diff --git a/result/schemas/list0_0_0.err b/result/schemas/list0_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/list0_0_1 b/result/schemas/list0_0_1 new file mode 100644 index 0000000..da757f6 --- /dev/null +++ b/result/schemas/list0_0_1 @@ -0,0 +1 @@ +./test/schemas/list0_1.xml fails to validate diff --git a/result/schemas/list0_0_1.err b/result/schemas/list0_0_1.err new file mode 100644 index 0000000..7a3b63b --- /dev/null +++ b/result/schemas/list0_0_1.err @@ -0,0 +1 @@ +./test/schemas/list0_1.xml:1: element test: Schemas validity error : Element 'test': Missing child element(s). Expected is ( string ). diff --git a/result/schemas/list0_0_2 b/result/schemas/list0_0_2 new file mode 100644 index 0000000..0ec6237 --- /dev/null +++ b/result/schemas/list0_0_2 @@ -0,0 +1 @@ +./test/schemas/list0_2.xml validates diff --git a/result/schemas/list0_0_2.err b/result/schemas/list0_0_2.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/list0_1_0 b/result/schemas/list0_1_0 new file mode 100644 index 0000000..2cf9806 --- /dev/null +++ b/result/schemas/list0_1_0 @@ -0,0 +1 @@ +./test/schemas/list0_0.xml fails to validate diff --git a/result/schemas/list0_1_0.err b/result/schemas/list0_1_0.err new file mode 100644 index 0000000..0bc3c8a --- /dev/null +++ b/result/schemas/list0_1_0.err @@ -0,0 +1 @@ +./test/schemas/list0_0.xml:5: element string: Schemas validity error : Element 'string': This element is not expected. diff --git a/result/schemas/list0_1_1 b/result/schemas/list0_1_1 new file mode 100644 index 0000000..da757f6 --- /dev/null +++ b/result/schemas/list0_1_1 @@ -0,0 +1 @@ +./test/schemas/list0_1.xml fails to validate diff --git a/result/schemas/list0_1_1.err b/result/schemas/list0_1_1.err new file mode 100644 index 0000000..7a3b63b --- /dev/null +++ b/result/schemas/list0_1_1.err @@ -0,0 +1 @@ +./test/schemas/list0_1.xml:1: element test: Schemas validity error : Element 'test': Missing child element(s). Expected is ( string ). diff --git a/result/schemas/list0_1_2 b/result/schemas/list0_1_2 new file mode 100644 index 0000000..0ec6237 --- /dev/null +++ b/result/schemas/list0_1_2 @@ -0,0 +1 @@ +./test/schemas/list0_2.xml validates diff --git a/result/schemas/list0_1_2.err b/result/schemas/list0_1_2.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/mixed0_0_0 b/result/schemas/mixed0_0_0 new file mode 100644 index 0000000..bd2f0ed --- /dev/null +++ b/result/schemas/mixed0_0_0 @@ -0,0 +1 @@ +./test/schemas/mixed0_0.xml validates diff --git a/result/schemas/mixed0_0_0.err b/result/schemas/mixed0_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/mixed1_0_0 b/result/schemas/mixed1_0_0 new file mode 100644 index 0000000..e9a6b01 --- /dev/null +++ b/result/schemas/mixed1_0_0 @@ -0,0 +1 @@ +./test/schemas/mixed1_0.xml validates diff --git a/result/schemas/mixed1_0_0.err b/result/schemas/mixed1_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/ns0_0_0 b/result/schemas/ns0_0_0 new file mode 100644 index 0000000..44d1d44 --- /dev/null +++ b/result/schemas/ns0_0_0 @@ -0,0 +1 @@ +./test/schemas/ns0_0.xml validates diff --git a/result/schemas/ns0_0_0.err b/result/schemas/ns0_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/ns0_0_1 b/result/schemas/ns0_0_1 new file mode 100644 index 0000000..2110249 --- /dev/null +++ b/result/schemas/ns0_0_1 @@ -0,0 +1 @@ +./test/schemas/ns0_1.xml validates diff --git a/result/schemas/ns0_0_1.err b/result/schemas/ns0_0_1.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/ns0_0_2 b/result/schemas/ns0_0_2 new file mode 100644 index 0000000..03e85f7 --- /dev/null +++ b/result/schemas/ns0_0_2 @@ -0,0 +1 @@ +./test/schemas/ns0_2.xml fails to validate diff --git a/result/schemas/ns0_0_2.err b/result/schemas/ns0_0_2.err new file mode 100644 index 0000000..346af26 --- /dev/null +++ b/result/schemas/ns0_0_2.err @@ -0,0 +1 @@ +./test/schemas/ns0_2.xml:1: element foo: Schemas validity error : Element 'foo': No matching global declaration available for the validation root. diff --git a/result/schemas/ns0_0_3 b/result/schemas/ns0_0_3 new file mode 100644 index 0000000..473206c --- /dev/null +++ b/result/schemas/ns0_0_3 @@ -0,0 +1 @@ +./test/schemas/ns0_3.xml fails to validate diff --git a/result/schemas/ns0_0_3.err b/result/schemas/ns0_0_3.err new file mode 100644 index 0000000..fd1cbd5 --- /dev/null +++ b/result/schemas/ns0_0_3.err @@ -0,0 +1 @@ +./test/schemas/ns0_3.xml:1: element foo: Schemas validity error : Element '{http://example.com/xsd/ns}foo', attribute '{http://example.com/xsd/ns}id': The attribute '{http://example.com/xsd/ns}id' is not allowed. diff --git a/result/schemas/ns0_0_4 b/result/schemas/ns0_0_4 new file mode 100644 index 0000000..f10f45e --- /dev/null +++ b/result/schemas/ns0_0_4 @@ -0,0 +1 @@ +./test/schemas/ns0_4.xml fails to validate diff --git a/result/schemas/ns0_0_4.err b/result/schemas/ns0_0_4.err new file mode 100644 index 0000000..2512e8d --- /dev/null +++ b/result/schemas/ns0_0_4.err @@ -0,0 +1 @@ +./test/schemas/ns0_4.xml:2: element foo: Schemas validity error : Element '{http://example.com/xsd/ns}foo', attribute '{http://example.com/xsd/ns}id': The attribute '{http://example.com/xsd/ns}id' is not allowed. diff --git a/result/schemas/ns0_1_0 b/result/schemas/ns0_1_0 new file mode 100644 index 0000000..9ba0471 --- /dev/null +++ b/result/schemas/ns0_1_0 @@ -0,0 +1 @@ +./test/schemas/ns0_0.xml fails to validate diff --git a/result/schemas/ns0_1_0.err b/result/schemas/ns0_1_0.err new file mode 100644 index 0000000..1282888 --- /dev/null +++ b/result/schemas/ns0_1_0.err @@ -0,0 +1 @@ +./test/schemas/ns0_0.xml:1: element foo: Schemas validity error : Element '{http://example.com/xsd/ns}foo', attribute 'id': The attribute 'id' is not allowed. diff --git a/result/schemas/ns0_1_1 b/result/schemas/ns0_1_1 new file mode 100644 index 0000000..9f464de --- /dev/null +++ b/result/schemas/ns0_1_1 @@ -0,0 +1 @@ +./test/schemas/ns0_1.xml fails to validate diff --git a/result/schemas/ns0_1_1.err b/result/schemas/ns0_1_1.err new file mode 100644 index 0000000..99b2880 --- /dev/null +++ b/result/schemas/ns0_1_1.err @@ -0,0 +1 @@ +./test/schemas/ns0_1.xml:1: element foo: Schemas validity error : Element '{http://example.com/xsd/ns}foo', attribute 'id': The attribute 'id' is not allowed. diff --git a/result/schemas/ns0_1_2 b/result/schemas/ns0_1_2 new file mode 100644 index 0000000..03e85f7 --- /dev/null +++ b/result/schemas/ns0_1_2 @@ -0,0 +1 @@ +./test/schemas/ns0_2.xml fails to validate diff --git a/result/schemas/ns0_1_2.err b/result/schemas/ns0_1_2.err new file mode 100644 index 0000000..346af26 --- /dev/null +++ b/result/schemas/ns0_1_2.err @@ -0,0 +1 @@ +./test/schemas/ns0_2.xml:1: element foo: Schemas validity error : Element 'foo': No matching global declaration available for the validation root. diff --git a/result/schemas/ns0_1_3 b/result/schemas/ns0_1_3 new file mode 100644 index 0000000..1fc8772 --- /dev/null +++ b/result/schemas/ns0_1_3 @@ -0,0 +1 @@ +./test/schemas/ns0_3.xml validates diff --git a/result/schemas/ns0_1_3.err b/result/schemas/ns0_1_3.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/ns0_1_4 b/result/schemas/ns0_1_4 new file mode 100644 index 0000000..7374ebf --- /dev/null +++ b/result/schemas/ns0_1_4 @@ -0,0 +1 @@ +./test/schemas/ns0_4.xml validates diff --git a/result/schemas/ns0_1_4.err b/result/schemas/ns0_1_4.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/ns1_0_0 b/result/schemas/ns1_0_0 new file mode 100644 index 0000000..ffcfb6c --- /dev/null +++ b/result/schemas/ns1_0_0 @@ -0,0 +1 @@ +./test/schemas/ns1_0.xml validates diff --git a/result/schemas/ns1_0_0.err b/result/schemas/ns1_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/ns2_0_0 b/result/schemas/ns2_0_0 new file mode 100644 index 0000000..b2c181e --- /dev/null +++ b/result/schemas/ns2_0_0 @@ -0,0 +1 @@ +./test/schemas/ns2_0.xml validates diff --git a/result/schemas/ns2_0_0.err b/result/schemas/ns2_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/nvdcve_0_0 b/result/schemas/nvdcve_0_0 new file mode 100644 index 0000000..18e7c7c --- /dev/null +++ b/result/schemas/nvdcve_0_0 @@ -0,0 +1 @@ +./test/schemas/nvdcve_0.xml validates diff --git a/result/schemas/nvdcve_0_0.err b/result/schemas/nvdcve_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/po0_0_0 b/result/schemas/po0_0_0 new file mode 100644 index 0000000..9687b9d --- /dev/null +++ b/result/schemas/po0_0_0 @@ -0,0 +1 @@ +./test/schemas/po0_0.xml validates diff --git a/result/schemas/po0_0_0.err b/result/schemas/po0_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/po1_0_0 b/result/schemas/po1_0_0 new file mode 100644 index 0000000..2c264ce --- /dev/null +++ b/result/schemas/po1_0_0 @@ -0,0 +1 @@ +./test/schemas/po1_0.xml validates diff --git a/result/schemas/po1_0_0.err b/result/schemas/po1_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/poschargrp0_0_0 b/result/schemas/poschargrp0_0_0 new file mode 100644 index 0000000..de14f4d --- /dev/null +++ b/result/schemas/poschargrp0_0_0 @@ -0,0 +1 @@ +./test/schemas/poschargrp0_0.xml validates diff --git a/result/schemas/poschargrp0_0_0.err b/result/schemas/poschargrp0_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/regexp-char-ref_0_0 b/result/schemas/regexp-char-ref_0_0 new file mode 100644 index 0000000..40ceb7f --- /dev/null +++ b/result/schemas/regexp-char-ref_0_0 @@ -0,0 +1 @@ +./test/schemas/regexp-char-ref_0.xml validates diff --git a/result/schemas/regexp-char-ref_1_0 b/result/schemas/regexp-char-ref_1_0 new file mode 100644 index 0000000..40ceb7f --- /dev/null +++ b/result/schemas/regexp-char-ref_1_0 @@ -0,0 +1 @@ +./test/schemas/regexp-char-ref_0.xml validates diff --git a/result/schemas/restrict-CT-attr-ref_0_0 b/result/schemas/restrict-CT-attr-ref_0_0 new file mode 100644 index 0000000..77dba75 --- /dev/null +++ b/result/schemas/restrict-CT-attr-ref_0_0 @@ -0,0 +1 @@ +./test/schemas/restrict-CT-attr-ref_0.xml validates diff --git a/result/schemas/restrict-CT-attr-ref_0_0.err b/result/schemas/restrict-CT-attr-ref_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/restriction-attr1_0_0 b/result/schemas/restriction-attr1_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/restriction-attr1_0_0.err b/result/schemas/restriction-attr1_0_0.err new file mode 100644 index 0000000..cdf003d --- /dev/null +++ b/result/schemas/restriction-attr1_0_0.err @@ -0,0 +1 @@ +./test/schemas/restriction-attr1_0.xsd:5: element complexType: Schemas parser error : local complex type, attribute use 'barA': The 'optional' attribute use is inconsistent with the corresponding 'required' attribute use of the base complex type definition '{http://FOO}typeA'. diff --git a/result/schemas/restriction-enum-1_1_0 b/result/schemas/restriction-enum-1_1_0 new file mode 100644 index 0000000..68e26cf --- /dev/null +++ b/result/schemas/restriction-enum-1_1_0 @@ -0,0 +1 @@ +./test/schemas/restriction-enum-1_0.xml fails to validate diff --git a/result/schemas/restriction-enum-1_1_0.err b/result/schemas/restriction-enum-1_1_0.err new file mode 100644 index 0000000..086d2de --- /dev/null +++ b/result/schemas/restriction-enum-1_1_0.err @@ -0,0 +1,2 @@ +./test/schemas/restriction-enum-1_0.xml:7: element foo: Schemas validity error : Element 'foo': [facet 'enumeration'] The value 'c' is not an element of the set {'a', 'b', 'd'}. +./test/schemas/restriction-enum-1_0.xml:7: element foo: Schemas validity error : Element 'foo': 'c' is not a valid value of the atomic type 'barType'. diff --git a/result/schemas/restriction0_0_0 b/result/schemas/restriction0_0_0 new file mode 100644 index 0000000..16ef2bc --- /dev/null +++ b/result/schemas/restriction0_0_0 @@ -0,0 +1 @@ +./test/schemas/restriction0_0.xml validates diff --git a/result/schemas/restriction0_0_0.err b/result/schemas/restriction0_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/scc-no-xmlns_0_0 b/result/schemas/scc-no-xmlns_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/scc-no-xmlns_0_0.err b/result/schemas/scc-no-xmlns_0_0.err new file mode 100644 index 0000000..aad2b68 --- /dev/null +++ b/result/schemas/scc-no-xmlns_0_0.err @@ -0,0 +1 @@ +./test/schemas/scc-no-xmlns_0.xsd:7: element attribute: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}attribute', attribute 'name': The value of the attribute must not match 'xmlns'. diff --git a/result/schemas/scc-no-xsi_0_0 b/result/schemas/scc-no-xsi_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/scc-no-xsi_0_0.err b/result/schemas/scc-no-xsi_0_0.err new file mode 100644 index 0000000..e04e3e4 --- /dev/null +++ b/result/schemas/scc-no-xsi_0_0.err @@ -0,0 +1 @@ +./test/schemas/scc-no-xsi_0.xsd:7: element attribute: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}attribute': The target namespace must not match 'http://www.w3.org/2001/XMLSchema-instance'. diff --git a/result/schemas/seq-dubl-elem1_0_0 b/result/schemas/seq-dubl-elem1_0_0 new file mode 100644 index 0000000..466d3a8 --- /dev/null +++ b/result/schemas/seq-dubl-elem1_0_0 @@ -0,0 +1 @@ +./test/schemas/seq-dubl-elem1_0.xml validates diff --git a/result/schemas/seq-dubl-elem1_0_0.err b/result/schemas/seq-dubl-elem1_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/seq0_0_0 b/result/schemas/seq0_0_0 new file mode 100644 index 0000000..d4c8431 --- /dev/null +++ b/result/schemas/seq0_0_0 @@ -0,0 +1 @@ +./test/schemas/seq0_0.xml validates diff --git a/result/schemas/seq0_0_0.err b/result/schemas/seq0_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/src-attribute1_0_0 b/result/schemas/src-attribute1_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/src-attribute1_0_0.err b/result/schemas/src-attribute1_0_0.err new file mode 100644 index 0000000..368d97c --- /dev/null +++ b/result/schemas/src-attribute1_0_0.err @@ -0,0 +1 @@ +./test/schemas/src-attribute1_0.xsd:9: element attribute: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}attribute': The attributes 'default' and 'fixed' are mutually exclusive. diff --git a/result/schemas/src-attribute2_0_0 b/result/schemas/src-attribute2_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/src-attribute2_0_0.err b/result/schemas/src-attribute2_0_0.err new file mode 100644 index 0000000..ac6df6f --- /dev/null +++ b/result/schemas/src-attribute2_0_0.err @@ -0,0 +1 @@ +./test/schemas/src-attribute2_0.xsd:9: element attribute: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}attribute': The value of the attribute 'use' must be 'optional' if the attribute 'default' is present. diff --git a/result/schemas/src-attribute3-1_0_0 b/result/schemas/src-attribute3-1_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/src-attribute3-1_0_0.err b/result/schemas/src-attribute3-1_0_0.err new file mode 100644 index 0000000..3345b3c --- /dev/null +++ b/result/schemas/src-attribute3-1_0_0.err @@ -0,0 +1 @@ +./test/schemas/src-attribute3-1_0.xsd:9: element attribute: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}attribute': The attribute 'name' is not allowed. diff --git a/result/schemas/src-attribute3-2-form_0_0 b/result/schemas/src-attribute3-2-form_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/src-attribute3-2-form_0_0.err b/result/schemas/src-attribute3-2-form_0_0.err new file mode 100644 index 0000000..ad3667b --- /dev/null +++ b/result/schemas/src-attribute3-2-form_0_0.err @@ -0,0 +1 @@ +./test/schemas/src-attribute3-2-form_0.xsd:10: element attribute: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}attribute': The attribute 'form' is not allowed. diff --git a/result/schemas/src-attribute3-2-st_0_0 b/result/schemas/src-attribute3-2-st_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/src-attribute3-2-st_0_0.err b/result/schemas/src-attribute3-2-st_0_0.err new file mode 100644 index 0000000..ae85e0a --- /dev/null +++ b/result/schemas/src-attribute3-2-st_0_0.err @@ -0,0 +1 @@ +./test/schemas/src-attribute3-2-st_0.xsd:11: element simpleType: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}attribute': The content is not valid. Expected is (annotation?). diff --git a/result/schemas/src-attribute3-2-type_0_0 b/result/schemas/src-attribute3-2-type_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/src-attribute3-2-type_0_0.err b/result/schemas/src-attribute3-2-type_0_0.err new file mode 100644 index 0000000..50016d8 --- /dev/null +++ b/result/schemas/src-attribute3-2-type_0_0.err @@ -0,0 +1 @@ +./test/schemas/src-attribute3-2-type_0.xsd:10: element attribute: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}attribute': The attribute 'type' is not allowed. diff --git a/result/schemas/src-attribute4_0_0 b/result/schemas/src-attribute4_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/src-attribute4_0_0.err b/result/schemas/src-attribute4_0_0.err new file mode 100644 index 0000000..cac6718 --- /dev/null +++ b/result/schemas/src-attribute4_0_0.err @@ -0,0 +1 @@ +./test/schemas/src-attribute4_0.xsd:8: element simpleType: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}attribute': The attribute 'type' and the child are mutually exclusive. diff --git a/result/schemas/src-element1_0_0 b/result/schemas/src-element1_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/src-element1_0_0.err b/result/schemas/src-element1_0_0.err new file mode 100644 index 0000000..9d8b198 --- /dev/null +++ b/result/schemas/src-element1_0_0.err @@ -0,0 +1 @@ +./test/schemas/src-element1_0.xsd:7: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': The attributes 'default' and 'fixed' are mutually exclusive. diff --git a/result/schemas/src-element2-1_0_0 b/result/schemas/src-element2-1_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/src-element2-1_0_0.err b/result/schemas/src-element2-1_0_0.err new file mode 100644 index 0000000..01d89d6 --- /dev/null +++ b/result/schemas/src-element2-1_0_0.err @@ -0,0 +1 @@ +./test/schemas/src-element2-1_0.xsd:12: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': The attributes 'ref' and 'name' are mutually exclusive. diff --git a/result/schemas/src-element2-2_0_0 b/result/schemas/src-element2-2_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/src-element2-2_0_0.err b/result/schemas/src-element2-2_0_0.err new file mode 100644 index 0000000..90cd79a --- /dev/null +++ b/result/schemas/src-element2-2_0_0.err @@ -0,0 +1,9 @@ +./test/schemas/src-element2-2_0.xsd:18: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element', attribute 'maxOccurs': The value must be greater than or equal to 1. +./test/schemas/src-element2-2_0.xsd:23: element complexType: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': The content is not valid. Expected is (annotation?). +./test/schemas/src-element2-2_0.xsd:29: element simpleType: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': The content is not valid. Expected is (annotation?). +./test/schemas/src-element2-2_0.xsd:36: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element', attribute 'type': Only the attributes 'minOccurs', 'maxOccurs' and 'id' are allowed in addition to 'ref'. +./test/schemas/src-element2-2_0.xsd:37: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element', attribute 'nillable': Only the attributes 'minOccurs', 'maxOccurs' and 'id' are allowed in addition to 'ref'. +./test/schemas/src-element2-2_0.xsd:38: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element', attribute 'default': Only the attributes 'minOccurs', 'maxOccurs' and 'id' are allowed in addition to 'ref'. +./test/schemas/src-element2-2_0.xsd:39: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element', attribute 'fixed': Only the attributes 'minOccurs', 'maxOccurs' and 'id' are allowed in addition to 'ref'. +./test/schemas/src-element2-2_0.xsd:40: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element', attribute 'form': Only the attributes 'minOccurs', 'maxOccurs' and 'id' are allowed in addition to 'ref'. +./test/schemas/src-element2-2_0.xsd:41: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element', attribute 'block': Only the attributes 'minOccurs', 'maxOccurs' and 'id' are allowed in addition to 'ref'. diff --git a/result/schemas/src-element3_0_0 b/result/schemas/src-element3_0_0 new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/src-element3_0_0.err b/result/schemas/src-element3_0_0.err new file mode 100644 index 0000000..b8bd817 --- /dev/null +++ b/result/schemas/src-element3_0_0.err @@ -0,0 +1,2 @@ +./test/schemas/src-element3_0.xsd:8: element complexType: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': The attribute 'type' and the child are mutually exclusive. +./test/schemas/src-element3_0.xsd:16: element simpleType: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element': The attribute 'type' and the child are mutually exclusive. diff --git a/result/schemas/subst-group-1_0_1 b/result/schemas/subst-group-1_0_1 new file mode 100644 index 0000000..0775cdd --- /dev/null +++ b/result/schemas/subst-group-1_0_1 @@ -0,0 +1 @@ +./test/schemas/subst-group-1_1.xml validates diff --git a/result/schemas/subst-group-1_0_1.err b/result/schemas/subst-group-1_0_1.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/union2_1_1 b/result/schemas/union2_1_1 new file mode 100644 index 0000000..0d4ee15 --- /dev/null +++ b/result/schemas/union2_1_1 @@ -0,0 +1 @@ +./test/schemas/union2_1.xml fails to validate diff --git a/result/schemas/union2_1_1.err b/result/schemas/union2_1_1.err new file mode 100644 index 0000000..a66ad59 --- /dev/null +++ b/result/schemas/union2_1_1.err @@ -0,0 +1,3 @@ +./test/schemas/union2_1.xml:4: element ELEMENTS: Schemas validity error : Element '{urn:test:foo}ELEMENTS': ' + 5 +' is not a valid value of the local union type. diff --git a/result/schemas/union_0_0 b/result/schemas/union_0_0 new file mode 100644 index 0000000..3dbc861 --- /dev/null +++ b/result/schemas/union_0_0 @@ -0,0 +1 @@ +./test/schemas/union_0_0.xml validates diff --git a/result/schemas/union_0_0.err b/result/schemas/union_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/vdv-first0_0_0 b/result/schemas/vdv-first0_0_0 new file mode 100644 index 0000000..6d39ecb --- /dev/null +++ b/result/schemas/vdv-first0_0_0 @@ -0,0 +1 @@ +./test/schemas/vdv-first0_0.xml validates diff --git a/result/schemas/vdv-first0_0_0.err b/result/schemas/vdv-first0_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/vdv-first1_0_0 b/result/schemas/vdv-first1_0_0 new file mode 100644 index 0000000..54f4b15 --- /dev/null +++ b/result/schemas/vdv-first1_0_0 @@ -0,0 +1 @@ +./test/schemas/vdv-first1_0.xml validates diff --git a/result/schemas/vdv-first1_0_0.err b/result/schemas/vdv-first1_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/vdv-first2_0_0 b/result/schemas/vdv-first2_0_0 new file mode 100644 index 0000000..7430eda --- /dev/null +++ b/result/schemas/vdv-first2_0_0 @@ -0,0 +1 @@ +./test/schemas/vdv-first2_0.xml validates diff --git a/result/schemas/vdv-first2_0_0.err b/result/schemas/vdv-first2_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/vdv-first3_0_0 b/result/schemas/vdv-first3_0_0 new file mode 100644 index 0000000..943e3e1 --- /dev/null +++ b/result/schemas/vdv-first3_0_0 @@ -0,0 +1 @@ +./test/schemas/vdv-first3_0.xml validates diff --git a/result/schemas/vdv-first3_0_0.err b/result/schemas/vdv-first3_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/vdv-first4_0_0 b/result/schemas/vdv-first4_0_0 new file mode 100644 index 0000000..bfa9b29 --- /dev/null +++ b/result/schemas/vdv-first4_0_0 @@ -0,0 +1 @@ +./test/schemas/vdv-first4_0.xml validates diff --git a/result/schemas/vdv-first4_0_0.err b/result/schemas/vdv-first4_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/vdv-first4_0_1 b/result/schemas/vdv-first4_0_1 new file mode 100644 index 0000000..19a7ac1 --- /dev/null +++ b/result/schemas/vdv-first4_0_1 @@ -0,0 +1 @@ +./test/schemas/vdv-first4_1.xml fails to validate diff --git a/result/schemas/vdv-first4_0_1.err b/result/schemas/vdv-first4_0_1.err new file mode 100644 index 0000000..1b964b2 --- /dev/null +++ b/result/schemas/vdv-first4_0_1.err @@ -0,0 +1 @@ +./test/schemas/vdv-first4_1.xml:14: element born: Schemas validity error : Element 'born': '196T6-08-22' is not a valid value of the atomic type 'date'. diff --git a/result/schemas/vdv-first4_0_2 b/result/schemas/vdv-first4_0_2 new file mode 100644 index 0000000..fb59b67 --- /dev/null +++ b/result/schemas/vdv-first4_0_2 @@ -0,0 +1 @@ +./test/schemas/vdv-first4_2.xml fails to validate diff --git a/result/schemas/vdv-first4_0_2.err b/result/schemas/vdv-first4_0_2.err new file mode 100644 index 0000000..6c6e52f --- /dev/null +++ b/result/schemas/vdv-first4_0_2.err @@ -0,0 +1,2 @@ +./test/schemas/vdv-first4_2.xml:24: element born: Schemas validity error : Element 'born': [facet 'pattern'] The value '2000-01-20Z' is not accepted by the pattern '[^:Z]*'. +./test/schemas/vdv-first4_2.xml:24: element born: Schemas validity error : Element 'born': '2000-01-20Z' is not a valid value of the atomic type 'date'. diff --git a/result/schemas/vdv-first5_0_0 b/result/schemas/vdv-first5_0_0 new file mode 100644 index 0000000..3f09315 --- /dev/null +++ b/result/schemas/vdv-first5_0_0 @@ -0,0 +1 @@ +./test/schemas/vdv-first5_0.xml validates diff --git a/result/schemas/vdv-first5_0_0.err b/result/schemas/vdv-first5_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/xsd-list-itemType_0_0 b/result/schemas/xsd-list-itemType_0_0 new file mode 100644 index 0000000..5ecd885 --- /dev/null +++ b/result/schemas/xsd-list-itemType_0_0 @@ -0,0 +1 @@ +./test/schemas/xsd-list-itemType_0.xml validates diff --git a/result/schemas/xsd-list-itemType_0_0.err b/result/schemas/xsd-list-itemType_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schemas/xsd-simpleType-varieties_0_0 b/result/schemas/xsd-simpleType-varieties_0_0 new file mode 100644 index 0000000..a66506a --- /dev/null +++ b/result/schemas/xsd-simpleType-varieties_0_0 @@ -0,0 +1 @@ +./test/schemas/xsd-simpleType-varieties_0.xml validates diff --git a/result/schemas/xsd-simpleType-varieties_0_0.err b/result/schemas/xsd-simpleType-varieties_0_0.err new file mode 100644 index 0000000..e69de29 diff --git a/result/schematron/zvon10_0 b/result/schematron/zvon10_0 new file mode 100644 index 0000000..9aae4b1 --- /dev/null +++ b/result/schematron/zvon10_0 @@ -0,0 +1,4 @@ + + + + diff --git a/result/schematron/zvon10_0.err b/result/schematron/zvon10_0.err new file mode 100644 index 0000000..524ecd8 --- /dev/null +++ b/result/schematron/zvon10_0.err @@ -0,0 +1,5 @@ +Pattern: Open model +/AAA line 1: CCC element is not present +Pattern: Closed model +/AAA line 1: CCC element is not present +./test/schematron/zvon10_0.xml fails to validate diff --git a/result/schematron/zvon10_1 b/result/schematron/zvon10_1 new file mode 100644 index 0000000..d82353a --- /dev/null +++ b/result/schematron/zvon10_1 @@ -0,0 +1,5 @@ + + + + + diff --git a/result/schematron/zvon10_1.err b/result/schematron/zvon10_1.err new file mode 100644 index 0000000..9bc361c --- /dev/null +++ b/result/schematron/zvon10_1.err @@ -0,0 +1,6 @@ +Pattern: Open model +/AAA line 1: CCC element is not present +Pattern: Closed model +/AAA line 1: CCC element is not present +/AAA line 1: There is an extra element +./test/schematron/zvon10_1.xml fails to validate diff --git a/result/schematron/zvon11_0 b/result/schematron/zvon11_0 new file mode 100644 index 0000000..49c8005 --- /dev/null +++ b/result/schematron/zvon11_0 @@ -0,0 +1,4 @@ + + + + diff --git a/result/schematron/zvon11_0.err b/result/schematron/zvon11_0.err new file mode 100644 index 0000000..ab4aa74 --- /dev/null +++ b/result/schematron/zvon11_0.err @@ -0,0 +1,2 @@ +Pattern: Attributes present +./test/schematron/zvon11_0.xml validates diff --git a/result/schematron/zvon11_1 b/result/schematron/zvon11_1 new file mode 100644 index 0000000..a5328e0 --- /dev/null +++ b/result/schematron/zvon11_1 @@ -0,0 +1,4 @@ + + + + diff --git a/result/schematron/zvon11_1.err b/result/schematron/zvon11_1.err new file mode 100644 index 0000000..c1ae243 --- /dev/null +++ b/result/schematron/zvon11_1.err @@ -0,0 +1,3 @@ +Pattern: Attributes present +/AAA/BBB line 2: The element must not have an isolated bbb attribute +./test/schematron/zvon11_1.xml fails to validate diff --git a/result/schematron/zvon11_2 b/result/schematron/zvon11_2 new file mode 100644 index 0000000..673a7af --- /dev/null +++ b/result/schematron/zvon11_2 @@ -0,0 +1,4 @@ + + + + diff --git a/result/schematron/zvon11_2.err b/result/schematron/zvon11_2.err new file mode 100644 index 0000000..35117f7 --- /dev/null +++ b/result/schematron/zvon11_2.err @@ -0,0 +1,3 @@ +Pattern: Attributes present +/AAA/BBB line 2: The element must not have an isolated aaa attribute +./test/schematron/zvon11_2.xml fails to validate diff --git a/result/schematron/zvon11_3 b/result/schematron/zvon11_3 new file mode 100644 index 0000000..9aae4b1 --- /dev/null +++ b/result/schematron/zvon11_3 @@ -0,0 +1,4 @@ + + + + diff --git a/result/schematron/zvon11_3.err b/result/schematron/zvon11_3.err new file mode 100644 index 0000000..18517e5 --- /dev/null +++ b/result/schematron/zvon11_3.err @@ -0,0 +1,2 @@ +Pattern: Attributes present +./test/schematron/zvon11_3.xml validates diff --git a/result/schematron/zvon12_0 b/result/schematron/zvon12_0 new file mode 100644 index 0000000..7220804 --- /dev/null +++ b/result/schematron/zvon12_0 @@ -0,0 +1,4 @@ + + + + diff --git a/result/schematron/zvon12_0.err b/result/schematron/zvon12_0.err new file mode 100644 index 0000000..c7e9ed2 --- /dev/null +++ b/result/schematron/zvon12_0.err @@ -0,0 +1,3 @@ +Pattern: Number of characters in an abbreviation +/AAA/BBB line 2: There is not enough letters in the abbreviation +./test/schematron/zvon12_0.xml fails to validate diff --git a/result/schematron/zvon12_1 b/result/schematron/zvon12_1 new file mode 100644 index 0000000..362de34 --- /dev/null +++ b/result/schematron/zvon12_1 @@ -0,0 +1,4 @@ + + + + diff --git a/result/schematron/zvon12_1.err b/result/schematron/zvon12_1.err new file mode 100644 index 0000000..486c0be --- /dev/null +++ b/result/schematron/zvon12_1.err @@ -0,0 +1,2 @@ +Pattern: Number of characters in an abbreviation +./test/schematron/zvon12_1.xml validates diff --git a/result/schematron/zvon12_2 b/result/schematron/zvon12_2 new file mode 100644 index 0000000..bbbf7c7 --- /dev/null +++ b/result/schematron/zvon12_2 @@ -0,0 +1,4 @@ + + + + diff --git a/result/schematron/zvon12_2.err b/result/schematron/zvon12_2.err new file mode 100644 index 0000000..5edaf30 --- /dev/null +++ b/result/schematron/zvon12_2.err @@ -0,0 +1,3 @@ +Pattern: Number of characters in an abbreviation +/AAA/BBB line 2: There is too much letters in the abbreviation +./test/schematron/zvon12_2.xml fails to validate diff --git a/result/schematron/zvon13_0 b/result/schematron/zvon13_0 new file mode 100644 index 0000000..e1295c3 --- /dev/null +++ b/result/schematron/zvon13_0 @@ -0,0 +1,7 @@ + + + 20 + 30 + 10 + 50 + diff --git a/result/schematron/zvon13_0.err b/result/schematron/zvon13_0.err new file mode 100644 index 0000000..ed98cb3 --- /dev/null +++ b/result/schematron/zvon13_0.err @@ -0,0 +1,3 @@ +Pattern: Sum equals 100%. +/Total line 1: The values do not sum to 100%. +./test/schematron/zvon13_0.xml fails to validate diff --git a/result/schematron/zvon13_1 b/result/schematron/zvon13_1 new file mode 100644 index 0000000..401e919 --- /dev/null +++ b/result/schematron/zvon13_1 @@ -0,0 +1,6 @@ + + + 20 + 10 + 50 + diff --git a/result/schematron/zvon13_1.err b/result/schematron/zvon13_1.err new file mode 100644 index 0000000..e0f02c2 --- /dev/null +++ b/result/schematron/zvon13_1.err @@ -0,0 +1,3 @@ +Pattern: Sum equals 100%. +/Total line 1: The values do not sum to 100%. +./test/schematron/zvon13_1.xml fails to validate diff --git a/result/schematron/zvon13_2 b/result/schematron/zvon13_2 new file mode 100644 index 0000000..cb1df2e --- /dev/null +++ b/result/schematron/zvon13_2 @@ -0,0 +1,6 @@ + + + 20 + 30 + 50 + diff --git a/result/schematron/zvon13_2.err b/result/schematron/zvon13_2.err new file mode 100644 index 0000000..dfab61f --- /dev/null +++ b/result/schematron/zvon13_2.err @@ -0,0 +1,2 @@ +Pattern: Sum equals 100%. +./test/schematron/zvon13_2.xml validates diff --git a/result/schematron/zvon14_0 b/result/schematron/zvon14_0 new file mode 100644 index 0000000..c72e0c2 --- /dev/null +++ b/result/schematron/zvon14_0 @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/result/schematron/zvon14_0.err b/result/schematron/zvon14_0.err new file mode 100644 index 0000000..60155da --- /dev/null +++ b/result/schematron/zvon14_0.err @@ -0,0 +1,4 @@ +Pattern: a child of selected elements +/AAA/CCC line 5: Element CCC must not be a child of element AAA +/AAA/DDD/EEE/CCC line 9: Element CCC must not be a child of element EEE +./test/schematron/zvon14_0.xml fails to validate diff --git a/result/schematron/zvon15_0 b/result/schematron/zvon15_0 new file mode 100644 index 0000000..56500fe --- /dev/null +++ b/result/schematron/zvon15_0 @@ -0,0 +1,5 @@ + + + + + diff --git a/result/schematron/zvon15_0.err b/result/schematron/zvon15_0.err new file mode 100644 index 0000000..5234889 --- /dev/null +++ b/result/schematron/zvon15_0.err @@ -0,0 +1,4 @@ +Pattern: id is the only permited attribute name +/AAA line 1: Attribute name is forbidden in element AAA +/AAA/CCC line 3: Attribute color is forbidden in element CCC +./test/schematron/zvon15_0.xml fails to validate diff --git a/result/schematron/zvon1_0 b/result/schematron/zvon1_0 new file mode 100644 index 0000000..9aae4b1 --- /dev/null +++ b/result/schematron/zvon1_0 @@ -0,0 +1,4 @@ + + + + diff --git a/result/schematron/zvon1_0.err b/result/schematron/zvon1_0.err new file mode 100644 index 0000000..0d42184 --- /dev/null +++ b/result/schematron/zvon1_0.err @@ -0,0 +1,8 @@ +Pattern: Print both cases +/AAA line 1: BBB element is present. +/AAA line 1: AAA misses attribute name. +Pattern: Print positive result only +/AAA line 1: BBB element is present. +Pattern: Print negative result only +/AAA line 1: AAA misses attribute name. +./test/schematron/zvon1_0.xml fails to validate diff --git a/result/schematron/zvon1_1 b/result/schematron/zvon1_1 new file mode 100644 index 0000000..0a06953 --- /dev/null +++ b/result/schematron/zvon1_1 @@ -0,0 +1,4 @@ + + + + diff --git a/result/schematron/zvon1_1.err b/result/schematron/zvon1_1.err new file mode 100644 index 0000000..70ee87a --- /dev/null +++ b/result/schematron/zvon1_1.err @@ -0,0 +1,8 @@ +Pattern: Print both cases +/AAA line 1: BBB element is missing. +/AAA line 1: AAA misses attribute name. +Pattern: Print positive result only +Pattern: Print negative result only +/AAA line 1: BBB element is missing. +/AAA line 1: AAA misses attribute name. +./test/schematron/zvon1_1.xml fails to validate diff --git a/result/schematron/zvon2_0 b/result/schematron/zvon2_0 new file mode 100644 index 0000000..695bc8f --- /dev/null +++ b/result/schematron/zvon2_0 @@ -0,0 +1,5 @@ + + + bbbb + cccc + diff --git a/result/schematron/zvon2_0.err b/result/schematron/zvon2_0.err new file mode 100644 index 0000000..f4e4a7f --- /dev/null +++ b/result/schematron/zvon2_0.err @@ -0,0 +1,2 @@ +Pattern: Character @ forbidden +./test/schematron/zvon2_0.xml validates diff --git a/result/schematron/zvon2_1 b/result/schematron/zvon2_1 new file mode 100644 index 0000000..2af2cd0 --- /dev/null +++ b/result/schematron/zvon2_1 @@ -0,0 +1,5 @@ + + + bbbb@bbb.com + ccc@ccc.com + diff --git a/result/schematron/zvon2_1.err b/result/schematron/zvon2_1.err new file mode 100644 index 0000000..28f3e99 --- /dev/null +++ b/result/schematron/zvon2_1.err @@ -0,0 +1,5 @@ +Pattern: Character @ forbidden +/AAA line 1: Text in element AAA must not contain character @ +/AAA/BBB line 2: Text in element BBB must not contain character @ +/AAA/CCC line 3: Text in element CCC must not contain character @ +./test/schematron/zvon2_1.xml fails to validate diff --git a/result/schematron/zvon2_2 b/result/schematron/zvon2_2 new file mode 100644 index 0000000..585cf0c --- /dev/null +++ b/result/schematron/zvon2_2 @@ -0,0 +1,6 @@ + + + bbbb + cccc + aaa@aaa.net + diff --git a/result/schematron/zvon2_2.err b/result/schematron/zvon2_2.err new file mode 100644 index 0000000..40dc7ca --- /dev/null +++ b/result/schematron/zvon2_2.err @@ -0,0 +1,3 @@ +Pattern: Character @ forbidden +/AAA line 1: Text in element AAA must not contain character @ +./test/schematron/zvon2_2.xml fails to validate diff --git a/result/schematron/zvon3_0 b/result/schematron/zvon3_0 new file mode 100644 index 0000000..a8a6ed7 --- /dev/null +++ b/result/schematron/zvon3_0 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/result/schematron/zvon3_0.err b/result/schematron/zvon3_0.err new file mode 100644 index 0000000..419e729 --- /dev/null +++ b/result/schematron/zvon3_0.err @@ -0,0 +1,6 @@ +Pattern: Attribute test +/AAA/BBB/CCC[1] line 3: attribute name is not present +/AAA/BBB/CCC[2] line 4: attribute name is not present +/AAA/CCC[1] line 6: attribute name is present +/AAA/CCC[2] line 7: attribute name is present +./test/schematron/zvon3_0.xml fails to validate diff --git a/result/schematron/zvon4_0 b/result/schematron/zvon4_0 new file mode 100644 index 0000000..b1e694e --- /dev/null +++ b/result/schematron/zvon4_0 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/result/schematron/zvon4_0.err b/result/schematron/zvon4_0.err new file mode 100644 index 0000000..6aa6b2b --- /dev/null +++ b/result/schematron/zvon4_0.err @@ -0,0 +1,3 @@ +Pattern: Root test +/AAA line 1: Root element is AAA +./test/schematron/zvon4_0.xml fails to validate diff --git a/result/schematron/zvon4_1 b/result/schematron/zvon4_1 new file mode 100644 index 0000000..6b1facc --- /dev/null +++ b/result/schematron/zvon4_1 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/result/schematron/zvon4_1.err b/result/schematron/zvon4_1.err new file mode 100644 index 0000000..4ad324f --- /dev/null +++ b/result/schematron/zvon4_1.err @@ -0,0 +1,3 @@ +Pattern: Root test +/XXX line 1: Root element is XXX, not AAA +./test/schematron/zvon4_1.xml fails to validate diff --git a/result/schematron/zvon5_0 b/result/schematron/zvon5_0 new file mode 100644 index 0000000..d763505 --- /dev/null +++ b/result/schematron/zvon5_0 @@ -0,0 +1,6 @@ + + + + + + diff --git a/result/schematron/zvon5_0.err b/result/schematron/zvon5_0.err new file mode 100644 index 0000000..91ef5f2 --- /dev/null +++ b/result/schematron/zvon5_0.err @@ -0,0 +1,7 @@ +Pattern: Select empty elements CCC +/AAA/BBB/CCC line 3: Source contains an empty element CCC +/AAA/BBB/CCC line 3: [1]An element CCC does not contain any text +/AAA/BBB/CCC line 3: [2]An element CCC does not contain any text +/AAA/BBB/CCC line 3: [1]An element CCC does not contain any child element +/AAA/BBB/CCC line 3: [2]An element CCC does not contain any child element +./test/schematron/zvon5_0.xml fails to validate diff --git a/result/schematron/zvon5_1 b/result/schematron/zvon5_1 new file mode 100644 index 0000000..c76b756 --- /dev/null +++ b/result/schematron/zvon5_1 @@ -0,0 +1,6 @@ + + + + I am CCC element + + diff --git a/result/schematron/zvon5_1.err b/result/schematron/zvon5_1.err new file mode 100644 index 0000000..f4ce6d4 --- /dev/null +++ b/result/schematron/zvon5_1.err @@ -0,0 +1,5 @@ +Pattern: Select empty elements CCC +/AAA/BBB/CCC line 3: Source contains an empty element CCC +/AAA/BBB/CCC line 3: [1]An element CCC does not contain any child element +/AAA/BBB/CCC line 3: [2]An element CCC does not contain any child element +./test/schematron/zvon5_1.xml fails to validate diff --git a/result/schematron/zvon5_2 b/result/schematron/zvon5_2 new file mode 100644 index 0000000..ddc11fe --- /dev/null +++ b/result/schematron/zvon5_2 @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/result/schematron/zvon5_2.err b/result/schematron/zvon5_2.err new file mode 100644 index 0000000..8c69e79 --- /dev/null +++ b/result/schematron/zvon5_2.err @@ -0,0 +1,5 @@ +Pattern: Select empty elements CCC +/AAA/BBB/CCC line 3: Source contains an empty element CCC +/AAA/BBB/CCC line 3: [1]An element CCC does not contain any text +/AAA/BBB/CCC line 3: [2]An element CCC does not contain any text +./test/schematron/zvon5_2.xml fails to validate diff --git a/result/schematron/zvon6_0 b/result/schematron/zvon6_0 new file mode 100644 index 0000000..6539765 --- /dev/null +++ b/result/schematron/zvon6_0 @@ -0,0 +1,4 @@ + + +aaa + diff --git a/result/schematron/zvon6_0.err b/result/schematron/zvon6_0.err new file mode 100644 index 0000000..5cc3b37 --- /dev/null +++ b/result/schematron/zvon6_0.err @@ -0,0 +1,3 @@ +Pattern: Predefined values +/AAA line 1: O.K. +./test/schematron/zvon6_0.xml fails to validate diff --git a/result/schematron/zvon6_1 b/result/schematron/zvon6_1 new file mode 100644 index 0000000..e0c2e73 --- /dev/null +++ b/result/schematron/zvon6_1 @@ -0,0 +1,4 @@ + + + bbb + diff --git a/result/schematron/zvon6_1.err b/result/schematron/zvon6_1.err new file mode 100644 index 0000000..8b728d4 --- /dev/null +++ b/result/schematron/zvon6_1.err @@ -0,0 +1,3 @@ +Pattern: Predefined values +/AAA line 1: O.K. +./test/schematron/zvon6_1.xml fails to validate diff --git a/result/schematron/zvon6_2 b/result/schematron/zvon6_2 new file mode 100644 index 0000000..edc24a9 --- /dev/null +++ b/result/schematron/zvon6_2 @@ -0,0 +1,4 @@ + + + ccc + diff --git a/result/schematron/zvon6_2.err b/result/schematron/zvon6_2.err new file mode 100644 index 0000000..1868934 --- /dev/null +++ b/result/schematron/zvon6_2.err @@ -0,0 +1,3 @@ +Pattern: Predefined values +/AAA line 1: The AAA value is not permitted. +./test/schematron/zvon6_2.xml fails to validate diff --git a/result/schematron/zvon7_0 b/result/schematron/zvon7_0 new file mode 100644 index 0000000..6539765 --- /dev/null +++ b/result/schematron/zvon7_0 @@ -0,0 +1,4 @@ + + +aaa + diff --git a/result/schematron/zvon7_0.err b/result/schematron/zvon7_0.err new file mode 100644 index 0000000..df427d6 --- /dev/null +++ b/result/schematron/zvon7_0.err @@ -0,0 +1,3 @@ +Pattern: Test integer +/AAA line 1: The AAA value is not an integer. +./test/schematron/zvon7_0.xml fails to validate diff --git a/result/schematron/zvon7_1 b/result/schematron/zvon7_1 new file mode 100644 index 0000000..0a4007a --- /dev/null +++ b/result/schematron/zvon7_1 @@ -0,0 +1,4 @@ + + + 12.234 + diff --git a/result/schematron/zvon7_1.err b/result/schematron/zvon7_1.err new file mode 100644 index 0000000..aa1e0a1 --- /dev/null +++ b/result/schematron/zvon7_1.err @@ -0,0 +1,3 @@ +Pattern: Test integer +/AAA line 1: The AAA value is not an integer. +./test/schematron/zvon7_1.xml fails to validate diff --git a/result/schematron/zvon7_2 b/result/schematron/zvon7_2 new file mode 100644 index 0000000..8eb45e3 --- /dev/null +++ b/result/schematron/zvon7_2 @@ -0,0 +1,4 @@ + + +45 + diff --git a/result/schematron/zvon7_2.err b/result/schematron/zvon7_2.err new file mode 100644 index 0000000..abf8cc7 --- /dev/null +++ b/result/schematron/zvon7_2.err @@ -0,0 +1,3 @@ +Pattern: Test integer +/AAA line 1: O.K. +./test/schematron/zvon7_2.xml fails to validate diff --git a/result/schematron/zvon7_3 b/result/schematron/zvon7_3 new file mode 100644 index 0000000..35089dd --- /dev/null +++ b/result/schematron/zvon7_3 @@ -0,0 +1,4 @@ + + +0 + diff --git a/result/schematron/zvon7_3.err b/result/schematron/zvon7_3.err new file mode 100644 index 0000000..5b4b59f --- /dev/null +++ b/result/schematron/zvon7_3.err @@ -0,0 +1,3 @@ +Pattern: Test integer +/AAA line 1: O.K. +./test/schematron/zvon7_3.xml fails to validate diff --git a/result/schematron/zvon7_4 b/result/schematron/zvon7_4 new file mode 100644 index 0000000..0739eb4 --- /dev/null +++ b/result/schematron/zvon7_4 @@ -0,0 +1,4 @@ + + +-45 + diff --git a/result/schematron/zvon7_4.err b/result/schematron/zvon7_4.err new file mode 100644 index 0000000..de1ee89 --- /dev/null +++ b/result/schematron/zvon7_4.err @@ -0,0 +1,3 @@ +Pattern: Test integer +/AAA line 1: O.K. +./test/schematron/zvon7_4.xml fails to validate diff --git a/result/schematron/zvon8_0 b/result/schematron/zvon8_0 new file mode 100644 index 0000000..1932cd0 --- /dev/null +++ b/result/schematron/zvon8_0 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/result/schematron/zvon8_0.err b/result/schematron/zvon8_0.err new file mode 100644 index 0000000..085e1de --- /dev/null +++ b/result/schematron/zvon8_0.err @@ -0,0 +1,3 @@ +Pattern: Test count +/XXX line 1: O.K. +./test/schematron/zvon8_0.xml fails to validate diff --git a/result/schematron/zvon8_1 b/result/schematron/zvon8_1 new file mode 100644 index 0000000..93e5cfd --- /dev/null +++ b/result/schematron/zvon8_1 @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/result/schematron/zvon8_1.err b/result/schematron/zvon8_1.err new file mode 100644 index 0000000..ae07d05 --- /dev/null +++ b/result/schematron/zvon8_1.err @@ -0,0 +1,3 @@ +Pattern: Test count +/XXX line 1: Some BBB are missing +./test/schematron/zvon8_1.xml fails to validate diff --git a/result/schematron/zvon8_2 b/result/schematron/zvon8_2 new file mode 100644 index 0000000..4eea77b --- /dev/null +++ b/result/schematron/zvon8_2 @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/result/schematron/zvon8_2.err b/result/schematron/zvon8_2.err new file mode 100644 index 0000000..37e8432 --- /dev/null +++ b/result/schematron/zvon8_2.err @@ -0,0 +1,3 @@ +Pattern: Test count +/XXX line 1: Some AAA are missing +./test/schematron/zvon8_2.xml fails to validate diff --git a/result/schematron/zvon9_0 b/result/schematron/zvon9_0 new file mode 100644 index 0000000..1f254ec --- /dev/null +++ b/result/schematron/zvon9_0 @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/result/schematron/zvon9_0.err b/result/schematron/zvon9_0.err new file mode 100644 index 0000000..a39ceeb --- /dev/null +++ b/result/schematron/zvon9_0.err @@ -0,0 +1,2 @@ +Pattern: Test attribute +./test/schematron/zvon9_0.xml validates diff --git a/result/schematron/zvon9_1 b/result/schematron/zvon9_1 new file mode 100644 index 0000000..0dc0df7 --- /dev/null +++ b/result/schematron/zvon9_1 @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/result/schematron/zvon9_1.err b/result/schematron/zvon9_1.err new file mode 100644 index 0000000..44c6f67 --- /dev/null +++ b/result/schematron/zvon9_1.err @@ -0,0 +1,3 @@ +Pattern: Test attribute +/AAA/CCC[1] line 2: Attribute id is used in wrong context +./test/schematron/zvon9_1.xml fails to validate diff --git a/result/schematron/zvon9_2 b/result/schematron/zvon9_2 new file mode 100644 index 0000000..b9218fc --- /dev/null +++ b/result/schematron/zvon9_2 @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/result/schematron/zvon9_2.err b/result/schematron/zvon9_2.err new file mode 100644 index 0000000..20b0884 --- /dev/null +++ b/result/schematron/zvon9_2.err @@ -0,0 +1,3 @@ +Pattern: Test attribute +/AAA/BBB/CCC line 5: Attribute id is missing +./test/schematron/zvon9_2.xml fails to validate diff --git a/result/scripts/base b/result/scripts/base new file mode 100644 index 0000000..f64231a --- /dev/null +++ b/result/scripts/base @@ -0,0 +1,4 @@ +/ > ./test/scripts/base.xml +/ > e > http://example.com/base/ +e > img > http://example.com/base/images/ +img > \ No newline at end of file diff --git a/result/scripts/base.err b/result/scripts/base.err new file mode 100644 index 0000000..e69de29 diff --git a/result/scripts/base2 b/result/scripts/base2 new file mode 100644 index 0000000..93edf37 --- /dev/null +++ b/result/scripts/base2 @@ -0,0 +1,4 @@ +/ > ./test/scripts/base2.xml +/ > e > test/scripts/html/ +e > img > test/scripts/images/ +img > \ No newline at end of file diff --git a/result/scripts/base2.err b/result/scripts/base2.err new file mode 100644 index 0000000..e69de29 diff --git a/result/scripts/set1 b/result/scripts/set1 new file mode 100644 index 0000000..b4c2c9a --- /dev/null +++ b/result/scripts/set1 @@ -0,0 +1,3 @@ +/ > / > + +/ > \ No newline at end of file diff --git a/result/scripts/set1.err b/result/scripts/set1.err new file mode 100644 index 0000000..e69de29 diff --git a/result/scripts/set3 b/result/scripts/set3 new file mode 100644 index 0000000..812b35f --- /dev/null +++ b/result/scripts/set3 @@ -0,0 +1,12 @@ +/ > a > Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT a + default namespace href=bar +a > a > Object is a Node Set : +Set contains 2 nodes: +1 ELEMENT a + default namespace href=bar +2 ELEMENT b +a > + +a > \ No newline at end of file diff --git a/result/scripts/set3.err b/result/scripts/set3.err new file mode 100644 index 0000000..18f0d69 --- /dev/null +++ b/result/scripts/set3.err @@ -0,0 +1,3 @@ +./test/scripts/set3.xml:1: parser warning : xmlns: URI bar is not absolute +foo + ^ diff --git a/result/scripts/set4 b/result/scripts/set4 new file mode 100644 index 0000000..19e9a58 --- /dev/null +++ b/result/scripts/set4 @@ -0,0 +1,6 @@ +/ > b > b > Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT a:c +b > + +b > \ No newline at end of file diff --git a/result/scripts/set4.err b/result/scripts/set4.err new file mode 100644 index 0000000..e69de29 diff --git a/result/slashdot.rdf b/result/slashdot.rdf new file mode 100644 index 0000000..33008ab --- /dev/null +++ b/result/slashdot.rdf @@ -0,0 +1,65 @@ + + + + + Slashdot:News for Nerds. Stuff that Matters. + http://slashdot.org/ + News for Nerds. Stuff that Matters + + + + Slashdot + http://slashdot.org/images/slashdotlg.gif + http://slashdot.org + + + + 100 Mbit/s on Fibre to the home + http://slashdot.org/articles/99/06/06/1440211.shtml + + + + Gimp 1.2 Preview + http://slashdot.org/articles/99/06/06/1438246.shtml + + + + Sony's AIBO robot Sold Out + http://slashdot.org/articles/99/06/06/1432256.shtml + + + + Ask Slashdot: Another Word for "Hacker"? + http://slashdot.org/askslashdot/99/06/05/1815225.shtml + + + + Corel Linux FAQ + http://slashdot.org/articles/99/06/05/1842218.shtml + + + + Upside downsides MP3.COM. + http://slashdot.org/articles/99/06/05/1558210.shtml + + + + 2 Terabits of Bandwidth + http://slashdot.org/articles/99/06/05/1554258.shtml + + + + Suppression of cold fusion research? + http://slashdot.org/articles/99/06/04/2313200.shtml + + + + California Gov. Halts Wage Info Sale + http://slashdot.org/articles/99/06/04/235256.shtml + + + + Red Hat Announces IPO + http://slashdot.org/articles/99/06/04/0849207.shtml + + diff --git a/result/slashdot.rdf.rde b/result/slashdot.rdf.rde new file mode 100644 index 0000000..fecd24d --- /dev/null +++ b/result/slashdot.rdf.rde @@ -0,0 +1,218 @@ +0 1 rdf:RDF 0 0 +1 14 #text 0 1 + + +1 1 channel 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Slashdot:News for Nerds. Stuff that Matters. +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/ +2 15 link 0 0 +2 14 #text 0 1 + +2 1 description 0 0 +3 3 #text 0 1 News for Nerds. Stuff that Matters +2 15 description 0 0 +2 14 #text 0 1 + +1 15 channel 0 0 +1 14 #text 0 1 + + +1 1 image 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Slashdot +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/images/slashdotlg.gif +2 15 url 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org +2 15 link 0 0 +2 14 #text 0 1 + +1 15 image 0 0 +1 14 #text 0 1 + + +1 1 item 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 100 Mbit/s on Fibre to the home +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1440211.shtml +2 15 link 0 0 +2 14 #text 0 1 + +1 15 item 0 0 +1 14 #text 0 1 + + +1 1 item 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Gimp 1.2 Preview +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1438246.shtml +2 15 link 0 0 +2 14 #text 0 1 + +1 15 item 0 0 +1 14 #text 0 1 + + +1 1 item 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Sony's AIBO robot Sold Out +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1432256.shtml +2 15 link 0 0 +2 14 #text 0 1 + +1 15 item 0 0 +1 14 #text 0 1 + + +1 1 item 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Ask Slashdot: Another Word for "Hacker"? +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/askslashdot/99/06/05/1815225.shtml +2 15 link 0 0 +2 14 #text 0 1 + +1 15 item 0 0 +1 14 #text 0 1 + + +1 1 item 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Corel Linux FAQ +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1842218.shtml +2 15 link 0 0 +2 14 #text 0 1 + +1 15 item 0 0 +1 14 #text 0 1 + + +1 1 item 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Upside downsides MP3.COM. +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1558210.shtml +2 15 link 0 0 +2 14 #text 0 1 + +1 15 item 0 0 +1 14 #text 0 1 + + +1 1 item 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 2 Terabits of Bandwidth +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1554258.shtml +2 15 link 0 0 +2 14 #text 0 1 + +1 15 item 0 0 +1 14 #text 0 1 + + +1 1 item 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Suppression of cold fusion research? +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/04/2313200.shtml +2 15 link 0 0 +2 14 #text 0 1 + +1 15 item 0 0 +1 14 #text 0 1 + + +1 1 item 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 California Gov. Halts Wage Info Sale +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/04/235256.shtml +2 15 link 0 0 +2 14 #text 0 1 + +1 15 item 0 0 +1 14 #text 0 1 + + +1 1 item 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Red Hat Announces IPO +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/04/0849207.shtml +2 15 link 0 0 +2 14 #text 0 1 + +1 15 item 0 0 +1 14 #text 0 1 + +0 15 rdf:RDF 0 0 diff --git a/result/slashdot.rdf.rdr b/result/slashdot.rdf.rdr new file mode 100644 index 0000000..fecd24d --- /dev/null +++ b/result/slashdot.rdf.rdr @@ -0,0 +1,218 @@ +0 1 rdf:RDF 0 0 +1 14 #text 0 1 + + +1 1 channel 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Slashdot:News for Nerds. Stuff that Matters. +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/ +2 15 link 0 0 +2 14 #text 0 1 + +2 1 description 0 0 +3 3 #text 0 1 News for Nerds. Stuff that Matters +2 15 description 0 0 +2 14 #text 0 1 + +1 15 channel 0 0 +1 14 #text 0 1 + + +1 1 image 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Slashdot +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/images/slashdotlg.gif +2 15 url 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org +2 15 link 0 0 +2 14 #text 0 1 + +1 15 image 0 0 +1 14 #text 0 1 + + +1 1 item 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 100 Mbit/s on Fibre to the home +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1440211.shtml +2 15 link 0 0 +2 14 #text 0 1 + +1 15 item 0 0 +1 14 #text 0 1 + + +1 1 item 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Gimp 1.2 Preview +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1438246.shtml +2 15 link 0 0 +2 14 #text 0 1 + +1 15 item 0 0 +1 14 #text 0 1 + + +1 1 item 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Sony's AIBO robot Sold Out +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1432256.shtml +2 15 link 0 0 +2 14 #text 0 1 + +1 15 item 0 0 +1 14 #text 0 1 + + +1 1 item 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Ask Slashdot: Another Word for "Hacker"? +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/askslashdot/99/06/05/1815225.shtml +2 15 link 0 0 +2 14 #text 0 1 + +1 15 item 0 0 +1 14 #text 0 1 + + +1 1 item 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Corel Linux FAQ +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1842218.shtml +2 15 link 0 0 +2 14 #text 0 1 + +1 15 item 0 0 +1 14 #text 0 1 + + +1 1 item 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Upside downsides MP3.COM. +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1558210.shtml +2 15 link 0 0 +2 14 #text 0 1 + +1 15 item 0 0 +1 14 #text 0 1 + + +1 1 item 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 2 Terabits of Bandwidth +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1554258.shtml +2 15 link 0 0 +2 14 #text 0 1 + +1 15 item 0 0 +1 14 #text 0 1 + + +1 1 item 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Suppression of cold fusion research? +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/04/2313200.shtml +2 15 link 0 0 +2 14 #text 0 1 + +1 15 item 0 0 +1 14 #text 0 1 + + +1 1 item 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 California Gov. Halts Wage Info Sale +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/04/235256.shtml +2 15 link 0 0 +2 14 #text 0 1 + +1 15 item 0 0 +1 14 #text 0 1 + + +1 1 item 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Red Hat Announces IPO +2 15 title 0 0 +2 14 #text 0 1 + +2 1 link 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/04/0849207.shtml +2 15 link 0 0 +2 14 #text 0 1 + +1 15 item 0 0 +1 14 #text 0 1 + +0 15 rdf:RDF 0 0 diff --git a/result/slashdot.rdf.sax b/result/slashdot.rdf.sax new file mode 100644 index 0000000..fe54376 --- /dev/null +++ b/result/slashdot.rdf.sax @@ -0,0 +1,221 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(rdf:RDF, xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#', xmlns='http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + + , 4) +SAX.startElement(channel) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Slashdot:News for Nerds. Stuff, 44) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(link) +SAX.characters(http://slashdot.org/, 20) +SAX.endElement(link) +SAX.characters( + , 5) +SAX.startElement(description) +SAX.characters(News for Nerds. Stuff that Ma, 35) +SAX.endElement(description) +SAX.characters( + , 3) +SAX.endElement(channel) +SAX.characters( + + , 4) +SAX.startElement(image) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Slashdot, 8) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/images/sla, 41) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(link) +SAX.characters(http://slashdot.org, 19) +SAX.endElement(link) +SAX.characters( + , 3) +SAX.endElement(image) +SAX.characters( + + , 6) +SAX.startElement(item) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(100 Mbit/s on Fibre to the hom, 31) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(link) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(link) +SAX.characters( + , 3) +SAX.endElement(item) +SAX.characters( + + , 6) +SAX.startElement(item) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Gimp 1.2 Preview, 16) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(link) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(link) +SAX.characters( + , 3) +SAX.endElement(item) +SAX.characters( + + , 6) +SAX.startElement(item) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Sony's AIBO robot Sold Out, 26) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(link) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(link) +SAX.characters( + , 3) +SAX.endElement(item) +SAX.characters( + + , 6) +SAX.startElement(item) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Ask Slashdot: Another Word for, 40) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(link) +SAX.characters(http://slashdot.org/askslashdo, 54) +SAX.endElement(link) +SAX.characters( + , 3) +SAX.endElement(item) +SAX.characters( + + , 6) +SAX.startElement(item) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Corel Linux FAQ, 15) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(link) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(link) +SAX.characters( + , 3) +SAX.endElement(item) +SAX.characters( + + , 6) +SAX.startElement(item) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Upside downsides MP3.COM., 25) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(link) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(link) +SAX.characters( + , 3) +SAX.endElement(item) +SAX.characters( + + , 6) +SAX.startElement(item) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(2 Terabits of Bandwidth, 23) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(link) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(link) +SAX.characters( + , 3) +SAX.endElement(item) +SAX.characters( + + , 6) +SAX.startElement(item) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Suppression of cold fusion res, 36) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(link) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(link) +SAX.characters( + , 3) +SAX.endElement(item) +SAX.characters( + + , 6) +SAX.startElement(item) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(California Gov. Halts Wage Inf, 36) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(link) +SAX.characters(http://slashdot.org/articles/9, 50) +SAX.endElement(link) +SAX.characters( + , 3) +SAX.endElement(item) +SAX.characters( + + , 6) +SAX.startElement(item) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Red Hat Announces IPO, 21) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(link) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(link) +SAX.characters( + , 3) +SAX.endElement(item) +SAX.characters( +, 1) +SAX.endElement(rdf:RDF) +SAX.endDocument() diff --git a/result/slashdot.rdf.sax2 b/result/slashdot.rdf.sax2 new file mode 100644 index 0000000..c561cf8 --- /dev/null +++ b/result/slashdot.rdf.sax2 @@ -0,0 +1,221 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(RDF, rdf, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#', 2, xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#', xmlns='http://my.netscape.com/rdf/simple/0.9/', 0, 0) +SAX.characters( + + , 4) +SAX.startElementNs(channel, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(Slashdot:News for Nerds. Stuff, 44) +SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 5) +SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(http://slashdot.org/, 20) +SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 5) +SAX.startElementNs(description, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(News for Nerds. Stuff that Ma, 35) +SAX.endElementNs(description, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 3) +SAX.endElementNs(channel, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + + , 4) +SAX.startElementNs(image, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(Slashdot, 8) +SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(http://slashdot.org/images/sla, 41) +SAX.endElementNs(url, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 5) +SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(http://slashdot.org, 19) +SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 3) +SAX.endElementNs(image, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + + , 6) +SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(100 Mbit/s on Fibre to the hom, 31) +SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 5) +SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 3) +SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + + , 6) +SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(Gimp 1.2 Preview, 16) +SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 5) +SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 3) +SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + + , 6) +SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(Sony's AIBO robot Sold Out, 26) +SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 5) +SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 3) +SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + + , 6) +SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(Ask Slashdot: Another Word for, 40) +SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 5) +SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(http://slashdot.org/askslashdo, 54) +SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 3) +SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + + , 6) +SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(Corel Linux FAQ, 15) +SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 5) +SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 3) +SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + + , 6) +SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(Upside downsides MP3.COM., 25) +SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 5) +SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 3) +SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + + , 6) +SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(2 Terabits of Bandwidth, 23) +SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 5) +SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 3) +SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + + , 6) +SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(Suppression of cold fusion res, 36) +SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 5) +SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 3) +SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + + , 6) +SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(California Gov. Halts Wage Inf, 36) +SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 5) +SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 50) +SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 3) +SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + + , 6) +SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(Red Hat Announces IPO, 21) +SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 5) +SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( + , 3) +SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/') +SAX.characters( +, 1) +SAX.endElementNs(RDF, rdf, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#') +SAX.endDocument() diff --git a/result/slashdot.xml b/result/slashdot.xml new file mode 100644 index 0000000..b648d5e --- /dev/null +++ b/result/slashdot.xml @@ -0,0 +1,113 @@ + + + + 100 Mbit/s on Fibre to the home + http://slashdot.org/articles/99/06/06/1440211.shtml + + CmdrTaco + wouldn't-it-be-nice + internet + 20 +
      articles
      + topicinternet.jpg +
      + + Gimp 1.2 Preview + http://slashdot.org/articles/99/06/06/1438246.shtml + + CmdrTaco + stuff-to-read + gimp + 12 +
      articles
      + topicgimp.gif +
      + + Sony's AIBO robot Sold Out + http://slashdot.org/articles/99/06/06/1432256.shtml + + CmdrTaco + stuff-to-see + tech + 10 +
      articles
      + topictech2.jpg +
      + + Ask Slashdot: Another Word for "Hacker"? + http://slashdot.org/askslashdot/99/06/05/1815225.shtml + + Cliff + hacker-vs-cracker + news + 385 +
      askslashdot
      + topicnews.gif +
      + + Corel Linux FAQ + http://slashdot.org/articles/99/06/05/1842218.shtml + + CmdrTaco + stuff-to-read + corel + 164 +
      articles
      + topiccorel.gif +
      + + Upside downsides MP3.COM. + http://slashdot.org/articles/99/06/05/1558210.shtml + + CmdrTaco + stuff-to-think-about + music + 48 +
      articles
      + topicmusic.gif +
      + + 2 Terabits of Bandwidth + http://slashdot.org/articles/99/06/05/1554258.shtml + + CmdrTaco + faster-porn + internet + 66 +
      articles
      + topicinternet.jpg +
      + + Suppression of cold fusion research? + http://slashdot.org/articles/99/06/04/2313200.shtml + + Hemos + possibly-probably + science + 217 +
      articles
      + topicscience.gif +
      + + California Gov. Halts Wage Info Sale + http://slashdot.org/articles/99/06/04/235256.shtml + + Hemos + woo-hoo! + usa + 16 +
      articles
      + topicus.gif +
      + + Red Hat Announces IPO + http://slashdot.org/articles/99/06/04/0849207.shtml + + Justin + details-sketchy + redhat + 155 +
      articles
      + topicredhat.gif +
      +
      diff --git a/result/slashdot.xml.rde b/result/slashdot.xml.rde new file mode 100644 index 0000000..56b6836 --- /dev/null +++ b/result/slashdot.xml.rde @@ -0,0 +1,514 @@ +0 1 ultramode 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 100 Mbit/s on Fibre to the home +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1440211.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-06 14:39:59 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 wouldn't-it-be-nice +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 internet +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 20 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicinternet.jpg +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Gimp 1.2 Preview +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1438246.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-06 14:38:40 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 stuff-to-read +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 gimp +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 12 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicgimp.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Sony's AIBO robot Sold Out +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1432256.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-06 14:32:51 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 stuff-to-see +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 tech +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 10 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topictech2.jpg +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Ask Slashdot: Another Word for "Hacker"? +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/askslashdot/99/06/05/1815225.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-05 20:00:00 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 Cliff +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 hacker-vs-cracker +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 news +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 385 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 askslashdot +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicnews.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Corel Linux FAQ +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1842218.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-05 18:42:06 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 stuff-to-read +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 corel +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 164 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topiccorel.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Upside downsides MP3.COM. +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1558210.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-05 15:56:45 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 stuff-to-think-about +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 music +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 48 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicmusic.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 2 Terabits of Bandwidth +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1554258.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-05 15:53:43 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 faster-porn +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 internet +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 66 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicinternet.jpg +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Suppression of cold fusion research? +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/04/2313200.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-04 23:12:29 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 Hemos +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 possibly-probably +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 science +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 217 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicscience.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 California Gov. Halts Wage Info Sale +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/04/235256.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-04 23:05:34 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 Hemos +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 woo-hoo! +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 usa +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 16 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicus.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Red Hat Announces IPO +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/04/0849207.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-04 19:30:18 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 Justin +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 details-sketchy +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 redhat +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 155 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicredhat.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +0 15 ultramode 0 0 diff --git a/result/slashdot.xml.rdr b/result/slashdot.xml.rdr new file mode 100644 index 0000000..56b6836 --- /dev/null +++ b/result/slashdot.xml.rdr @@ -0,0 +1,514 @@ +0 1 ultramode 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 100 Mbit/s on Fibre to the home +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1440211.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-06 14:39:59 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 wouldn't-it-be-nice +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 internet +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 20 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicinternet.jpg +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Gimp 1.2 Preview +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1438246.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-06 14:38:40 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 stuff-to-read +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 gimp +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 12 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicgimp.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Sony's AIBO robot Sold Out +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1432256.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-06 14:32:51 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 stuff-to-see +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 tech +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 10 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topictech2.jpg +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Ask Slashdot: Another Word for "Hacker"? +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/askslashdot/99/06/05/1815225.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-05 20:00:00 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 Cliff +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 hacker-vs-cracker +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 news +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 385 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 askslashdot +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicnews.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Corel Linux FAQ +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1842218.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-05 18:42:06 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 stuff-to-read +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 corel +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 164 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topiccorel.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Upside downsides MP3.COM. +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1558210.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-05 15:56:45 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 stuff-to-think-about +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 music +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 48 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicmusic.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 2 Terabits of Bandwidth +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1554258.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-05 15:53:43 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 faster-porn +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 internet +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 66 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicinternet.jpg +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Suppression of cold fusion research? +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/04/2313200.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-04 23:12:29 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 Hemos +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 possibly-probably +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 science +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 217 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicscience.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 California Gov. Halts Wage Info Sale +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/04/235256.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-04 23:05:34 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 Hemos +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 woo-hoo! +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 usa +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 16 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicus.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Red Hat Announces IPO +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/04/0849207.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-04 19:30:18 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 Justin +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 details-sketchy +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 redhat +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 155 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicredhat.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +0 15 ultramode 0 0 diff --git a/result/slashdot.xml.sax b/result/slashdot.xml.sax new file mode 100644 index 0000000..63b5f0d --- /dev/null +++ b/result/slashdot.xml.sax @@ -0,0 +1,517 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(ultramode) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(100 Mbit/s on Fibre to the hom, 31) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-06 14:39:59, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(CmdrTaco, 8) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(wouldn't-it-be-nice, 19) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(internet, 8) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(20, 2) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(articles, 8) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topicinternet.jpg, 17) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Gimp 1.2 Preview, 16) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-06 14:38:40, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(CmdrTaco, 8) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(stuff-to-read, 13) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(gimp, 4) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(12, 2) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(articles, 8) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topicgimp.gif, 13) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Sony's AIBO robot Sold Out, 26) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-06 14:32:51, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(CmdrTaco, 8) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(stuff-to-see, 12) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(tech, 4) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(10, 2) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(articles, 8) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topictech2.jpg, 14) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Ask Slashdot: Another Word for, 40) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/askslashdo, 54) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-05 20:00:00, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(Cliff, 5) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(hacker-vs-cracker, 17) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(news, 4) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(385, 3) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(askslashdot, 11) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topicnews.gif, 13) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Corel Linux FAQ, 15) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-05 18:42:06, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(CmdrTaco, 8) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(stuff-to-read, 13) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(corel, 5) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(164, 3) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(articles, 8) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topiccorel.gif, 14) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Upside downsides MP3.COM., 25) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-05 15:56:45, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(CmdrTaco, 8) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(stuff-to-think-about, 20) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(music, 5) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(48, 2) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(articles, 8) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topicmusic.gif, 14) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(2 Terabits of Bandwidth, 23) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-05 15:53:43, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(CmdrTaco, 8) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(faster-porn, 11) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(internet, 8) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(66, 2) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(articles, 8) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topicinternet.jpg, 17) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Suppression of cold fusion res, 36) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-04 23:12:29, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(Hemos, 5) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(possibly-probably, 17) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(science, 7) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(217, 3) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(articles, 8) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topicscience.gif, 16) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(California Gov. Halts Wage Inf, 36) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/articles/9, 50) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-04 23:05:34, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(Hemos, 5) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(woo-hoo!, 8) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(usa, 3) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(16, 2) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(articles, 8) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topicus.gif, 11) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Red Hat Announces IPO, 21) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-04 19:30:18, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(Justin, 6) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(details-sketchy, 15) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(redhat, 6) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(155, 3) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(articles, 8) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topicredhat.gif, 15) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( +, 1) +SAX.endElement(ultramode) +SAX.endDocument() diff --git a/result/slashdot.xml.sax2 b/result/slashdot.xml.sax2 new file mode 100644 index 0000000..2ead70d --- /dev/null +++ b/result/slashdot.xml.sax2 @@ -0,0 +1,517 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(ultramode, NULL, NULL, 0, 0, 0) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(100 Mbit/s on Fibre to the hom, 31) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-06 14:39:59, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(CmdrTaco, 8) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(wouldn't-it-be-nice, 19) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(internet, 8) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(20, 2) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(articles, 8) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topicinternet.jpg, 17) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(Gimp 1.2 Preview, 16) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-06 14:38:40, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(CmdrTaco, 8) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(stuff-to-read, 13) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(gimp, 4) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(12, 2) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(articles, 8) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topicgimp.gif, 13) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(Sony's AIBO robot Sold Out, 26) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-06 14:32:51, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(CmdrTaco, 8) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(stuff-to-see, 12) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(tech, 4) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(10, 2) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(articles, 8) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topictech2.jpg, 14) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(Ask Slashdot: Another Word for, 40) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/askslashdo, 54) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-05 20:00:00, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(Cliff, 5) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(hacker-vs-cracker, 17) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(news, 4) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(385, 3) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(askslashdot, 11) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topicnews.gif, 13) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(Corel Linux FAQ, 15) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-05 18:42:06, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(CmdrTaco, 8) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(stuff-to-read, 13) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(corel, 5) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(164, 3) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(articles, 8) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topiccorel.gif, 14) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(Upside downsides MP3.COM., 25) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-05 15:56:45, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(CmdrTaco, 8) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(stuff-to-think-about, 20) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(music, 5) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(48, 2) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(articles, 8) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topicmusic.gif, 14) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(2 Terabits of Bandwidth, 23) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-05 15:53:43, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(CmdrTaco, 8) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(faster-porn, 11) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(internet, 8) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(66, 2) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(articles, 8) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topicinternet.jpg, 17) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(Suppression of cold fusion res, 36) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-04 23:12:29, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(Hemos, 5) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(possibly-probably, 17) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(science, 7) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(217, 3) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(articles, 8) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topicscience.gif, 16) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(California Gov. Halts Wage Inf, 36) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 50) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-04 23:05:34, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(Hemos, 5) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(woo-hoo!, 8) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(usa, 3) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(16, 2) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(articles, 8) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topicus.gif, 11) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(Red Hat Announces IPO, 21) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-04 19:30:18, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(Justin, 6) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(details-sketchy, 15) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(redhat, 6) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(155, 3) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(articles, 8) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topicredhat.gif, 15) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(ultramode, NULL, NULL) +SAX.endDocument() diff --git a/result/slashdot16.xml b/result/slashdot16.xml new file mode 100644 index 0000000..f6a7f2a Binary files /dev/null and b/result/slashdot16.xml differ diff --git a/result/slashdot16.xml.rde b/result/slashdot16.xml.rde new file mode 100644 index 0000000..cb7a86c --- /dev/null +++ b/result/slashdot16.xml.rde @@ -0,0 +1,718 @@ +0 1 ultramode 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 100 Mbit/s on Fibre to the home +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1440211.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-06 14:39:59 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 wouldn't-it-be-nice +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 internet +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 20 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicinternet.jpg +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Gimp 1.2 Preview +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1438246.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-06 14:38:40 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 stuff-to-read +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 gimp +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 12 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicgimp.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Sony's AIBO robot Sold Out +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1432256.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-06 14:32:51 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 stuff-to-see +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 tech +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 10 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topictech2.jpg +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Ask Slashdot: Another Word for "Hacker"? +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/askslashdot/99/06/05/1815225.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-05 20:00:00 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 Cliff +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 hacker-vs-cracker +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 news +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 385 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 askslashdot +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicnews.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 100 Mbit/s on Fibre to the home +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1440211.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-06 14:39:59 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 wouldn't-it-be-nice +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 internet +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 20 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicinternet.jpg +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Gimp 1.2 Preview +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1438246.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-06 14:38:40 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 stuff-to-read +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 gimp +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 12 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicgimp.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Sony's AIBO robot Sold Out +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1432256.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-06 14:32:51 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 stuff-to-see +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 tech +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 10 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topictech2.jpg +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Ask Slashdot: Another Word for "Hacker"? +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/askslashdot/99/06/05/1815225.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-05 20:00:00 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 Cliff +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 hacker-vs-cracker +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 news +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 385 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 askslashdot +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicnews.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Corel Linux FAQ +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1842218.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-05 18:42:06 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 stuff-to-read +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 corel +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 164 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topiccorel.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Upside downsides MP3.COM. +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1558210.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-05 15:56:45 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 stuff-to-think-about +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 music +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 48 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicmusic.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 2 Terabits of Bandwidth +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1554258.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-05 15:53:43 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 faster-porn +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 internet +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 66 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicinternet.jpg +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Suppression of cold fusion research? +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/04/2313200.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-04 23:12:29 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 Hemos +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 possibly-probably +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 science +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 217 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicscience.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 California Gov. Halts Wage Info Sale +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/04/235256.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-04 23:05:34 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 Hemos +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 woo-hoo! +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 usa +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 16 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicus.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Red Hat Announces IPO +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/04/0849207.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-04 19:30:18 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 Justin +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 details-sketchy +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 redhat +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 155 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicredhat.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +0 15 ultramode 0 0 diff --git a/result/slashdot16.xml.rdr b/result/slashdot16.xml.rdr new file mode 100644 index 0000000..cb7a86c --- /dev/null +++ b/result/slashdot16.xml.rdr @@ -0,0 +1,718 @@ +0 1 ultramode 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 100 Mbit/s on Fibre to the home +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1440211.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-06 14:39:59 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 wouldn't-it-be-nice +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 internet +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 20 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicinternet.jpg +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Gimp 1.2 Preview +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1438246.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-06 14:38:40 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 stuff-to-read +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 gimp +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 12 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicgimp.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Sony's AIBO robot Sold Out +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1432256.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-06 14:32:51 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 stuff-to-see +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 tech +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 10 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topictech2.jpg +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Ask Slashdot: Another Word for "Hacker"? +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/askslashdot/99/06/05/1815225.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-05 20:00:00 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 Cliff +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 hacker-vs-cracker +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 news +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 385 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 askslashdot +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicnews.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 100 Mbit/s on Fibre to the home +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1440211.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-06 14:39:59 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 wouldn't-it-be-nice +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 internet +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 20 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicinternet.jpg +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Gimp 1.2 Preview +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1438246.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-06 14:38:40 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 stuff-to-read +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 gimp +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 12 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicgimp.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Sony's AIBO robot Sold Out +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/06/1432256.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-06 14:32:51 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 stuff-to-see +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 tech +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 10 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topictech2.jpg +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Ask Slashdot: Another Word for "Hacker"? +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/askslashdot/99/06/05/1815225.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-05 20:00:00 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 Cliff +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 hacker-vs-cracker +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 news +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 385 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 askslashdot +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicnews.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Corel Linux FAQ +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1842218.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-05 18:42:06 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 stuff-to-read +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 corel +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 164 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topiccorel.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Upside downsides MP3.COM. +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1558210.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-05 15:56:45 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 stuff-to-think-about +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 music +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 48 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicmusic.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 2 Terabits of Bandwidth +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/05/1554258.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-05 15:53:43 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 CmdrTaco +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 faster-porn +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 internet +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 66 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicinternet.jpg +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Suppression of cold fusion research? +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/04/2313200.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-04 23:12:29 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 Hemos +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 possibly-probably +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 science +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 217 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicscience.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 California Gov. Halts Wage Info Sale +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/04/235256.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-04 23:05:34 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 Hemos +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 woo-hoo! +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 usa +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 16 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicus.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +1 1 story 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Red Hat Announces IPO +2 15 title 0 0 +2 14 #text 0 1 + +2 1 url 0 0 +3 3 #text 0 1 http://slashdot.org/articles/99/06/04/0849207.shtml +2 15 url 0 0 +2 14 #text 0 1 + +2 1 time 0 0 +3 3 #text 0 1 1999-06-04 19:30:18 +2 15 time 0 0 +2 14 #text 0 1 + +2 1 author 0 0 +3 3 #text 0 1 Justin +2 15 author 0 0 +2 14 #text 0 1 + +2 1 department 0 0 +3 3 #text 0 1 details-sketchy +2 15 department 0 0 +2 14 #text 0 1 + +2 1 topic 0 0 +3 3 #text 0 1 redhat +2 15 topic 0 0 +2 14 #text 0 1 + +2 1 comments 0 0 +3 3 #text 0 1 155 +2 15 comments 0 0 +2 14 #text 0 1 + +2 1 section 0 0 +3 3 #text 0 1 articles +2 15 section 0 0 +2 14 #text 0 1 + +2 1 image 0 0 +3 3 #text 0 1 topicredhat.gif +2 15 image 0 0 +2 14 #text 0 1 + +1 15 story 0 0 +1 14 #text 0 1 + +0 15 ultramode 0 0 diff --git a/result/slashdot16.xml.sax b/result/slashdot16.xml.sax new file mode 100644 index 0000000..07cfaf0 --- /dev/null +++ b/result/slashdot16.xml.sax @@ -0,0 +1,721 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(ultramode) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(100 Mbit/s on Fibre to the hom, 31) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-06 14:39:59, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(CmdrTaco, 8) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(wouldn't-it-be-nice, 19) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(internet, 8) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(20, 2) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(articles, 8) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topicinternet.jpg, 17) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Gimp 1.2 Preview, 16) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-06 14:38:40, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(CmdrTaco, 8) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(stuff-to-read, 13) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(gimp, 4) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(12, 2) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(articles, 8) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topicgimp.gif, 13) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Sony's AIBO robot Sold Out, 26) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-06 14:32:51, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(CmdrTaco, 8) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(stuff-to-see, 12) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(tech, 4) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(10, 2) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(articles, 8) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topictech2.jpg, 14) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Ask Slashdot: Another Word for, 40) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/askslashdo, 54) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-05 20:00:00, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(Cliff, 5) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(hacker-vs-cracker, 17) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(news, 4) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(385, 3) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(askslashdot, 11) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topicnews.gif, 13) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( + , 3) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(100 Mbit/s on Fibre to the hom, 31) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-06 14:39:59, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(CmdrTaco, 8) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(wouldn't-it-be-nice, 19) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(internet, 8) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(20, 2) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(articles, 8) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topicinternet.jpg, 17) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Gimp 1.2 Preview, 16) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-06 14:38:40, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(CmdrTaco, 8) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(stuff-to-read, 13) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(gimp, 4) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(12, 2) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(articles, 8) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topicgimp.gif, 13) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Sony's AIBO robot Sold Out, 26) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-06 14:32:51, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(CmdrTaco, 8) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(stuff-to-see, 12) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(tech, 4) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(10, 2) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(articles, 8) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topictech2.jpg, 14) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Ask Slashdot: Another Word for, 40) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/askslashdo, 54) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-05 20:00:00, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(Cliff, 5) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(hacker-vs-cracker, 17) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(news, 4) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(385, 3) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(askslashdot, 11) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topicnews.gif, 13) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( +, 1) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Corel Linux FAQ, 15) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-05 18:42:06, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(CmdrTaco, 8) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(stuff-to-read, 13) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(corel, 5) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(164, 3) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(articles, 8) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topiccorel.gif, 14) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Upside downsides MP3.COM., 25) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-05 15:56:45, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(CmdrTaco, 8) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(stuff-to-think-about, 20) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(music, 5) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(48, 2) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(articles, 8) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topicmusic.gif, 14) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(2 Terabits of Bandwidth, 23) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-05 15:53:43, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(CmdrTaco, 8) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(faster-porn, 11) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(internet, 8) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(66, 2) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(articles, 8) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topicinternet.jpg, 17) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Suppression of cold fusion res, 36) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-04 23:12:29, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(Hemos, 5) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(possibly-probably, 17) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(science, 7) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(217, 3) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(articles, 8) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topicscience.gif, 16) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(California Gov. Halts Wage Inf, 36) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/articles/9, 50) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-04 23:05:34, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(Hemos, 5) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(woo-hoo!, 8) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(usa, 3) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(16, 2) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(articles, 8) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topicus.gif, 11) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( + , 2) +SAX.startElement(story) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Red Hat Announces IPO, 21) +SAX.endElement(title) +SAX.characters( + , 5) +SAX.startElement(url) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElement(url) +SAX.characters( + , 5) +SAX.startElement(time) +SAX.characters(1999-06-04 19:30:18, 19) +SAX.endElement(time) +SAX.characters( + , 5) +SAX.startElement(author) +SAX.characters(Justin, 6) +SAX.endElement(author) +SAX.characters( + , 5) +SAX.startElement(department) +SAX.characters(details-sketchy, 15) +SAX.endElement(department) +SAX.characters( + , 5) +SAX.startElement(topic) +SAX.characters(redhat, 6) +SAX.endElement(topic) +SAX.characters( + , 5) +SAX.startElement(comments) +SAX.characters(155, 3) +SAX.endElement(comments) +SAX.characters( + , 5) +SAX.startElement(section) +SAX.characters(articles, 8) +SAX.endElement(section) +SAX.characters( + , 5) +SAX.startElement(image) +SAX.characters(topicredhat.gif, 15) +SAX.endElement(image) +SAX.characters( + , 3) +SAX.endElement(story) +SAX.characters( +, 1) +SAX.endElement(ultramode) +SAX.endDocument() diff --git a/result/slashdot16.xml.sax2 b/result/slashdot16.xml.sax2 new file mode 100644 index 0000000..785e699 --- /dev/null +++ b/result/slashdot16.xml.sax2 @@ -0,0 +1,721 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(ultramode, NULL, NULL, 0, 0, 0) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(100 Mbit/s on Fibre to the hom, 31) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-06 14:39:59, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(CmdrTaco, 8) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(wouldn't-it-be-nice, 19) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(internet, 8) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(20, 2) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(articles, 8) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topicinternet.jpg, 17) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(Gimp 1.2 Preview, 16) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-06 14:38:40, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(CmdrTaco, 8) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(stuff-to-read, 13) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(gimp, 4) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(12, 2) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(articles, 8) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topicgimp.gif, 13) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(Sony's AIBO robot Sold Out, 26) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-06 14:32:51, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(CmdrTaco, 8) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(stuff-to-see, 12) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(tech, 4) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(10, 2) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(articles, 8) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topictech2.jpg, 14) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(Ask Slashdot: Another Word for, 40) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/askslashdo, 54) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-05 20:00:00, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(Cliff, 5) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(hacker-vs-cracker, 17) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(news, 4) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(385, 3) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(askslashdot, 11) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topicnews.gif, 13) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( + , 3) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(100 Mbit/s on Fibre to the hom, 31) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-06 14:39:59, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(CmdrTaco, 8) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(wouldn't-it-be-nice, 19) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(internet, 8) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(20, 2) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(articles, 8) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topicinternet.jpg, 17) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(Gimp 1.2 Preview, 16) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-06 14:38:40, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(CmdrTaco, 8) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(stuff-to-read, 13) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(gimp, 4) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(12, 2) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(articles, 8) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topicgimp.gif, 13) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(Sony's AIBO robot Sold Out, 26) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-06 14:32:51, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(CmdrTaco, 8) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(stuff-to-see, 12) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(tech, 4) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(10, 2) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(articles, 8) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topictech2.jpg, 14) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(Ask Slashdot: Another Word for, 40) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/askslashdo, 54) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-05 20:00:00, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(Cliff, 5) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(hacker-vs-cracker, 17) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(news, 4) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(385, 3) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(askslashdot, 11) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topicnews.gif, 13) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( +, 1) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(Corel Linux FAQ, 15) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-05 18:42:06, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(CmdrTaco, 8) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(stuff-to-read, 13) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(corel, 5) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(164, 3) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(articles, 8) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topiccorel.gif, 14) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(Upside downsides MP3.COM., 25) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-05 15:56:45, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(CmdrTaco, 8) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(stuff-to-think-about, 20) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(music, 5) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(48, 2) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(articles, 8) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topicmusic.gif, 14) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(2 Terabits of Bandwidth, 23) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-05 15:53:43, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(CmdrTaco, 8) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(faster-porn, 11) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(internet, 8) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(66, 2) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(articles, 8) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topicinternet.jpg, 17) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(Suppression of cold fusion res, 36) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-04 23:12:29, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(Hemos, 5) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(possibly-probably, 17) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(science, 7) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(217, 3) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(articles, 8) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topicscience.gif, 16) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(California Gov. Halts Wage Inf, 36) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 50) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-04 23:05:34, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(Hemos, 5) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(woo-hoo!, 8) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(usa, 3) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(16, 2) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(articles, 8) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topicus.gif, 11) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(story, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(Red Hat Announces IPO, 21) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(url, NULL, NULL, 0, 0, 0) +SAX.characters(http://slashdot.org/articles/9, 51) +SAX.endElementNs(url, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(time, NULL, NULL, 0, 0, 0) +SAX.characters(1999-06-04 19:30:18, 19) +SAX.endElementNs(time, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(author, NULL, NULL, 0, 0, 0) +SAX.characters(Justin, 6) +SAX.endElementNs(author, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(department, NULL, NULL, 0, 0, 0) +SAX.characters(details-sketchy, 15) +SAX.endElementNs(department, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(topic, NULL, NULL, 0, 0, 0) +SAX.characters(redhat, 6) +SAX.endElementNs(topic, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(comments, NULL, NULL, 0, 0, 0) +SAX.characters(155, 3) +SAX.endElementNs(comments, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(section, NULL, NULL, 0, 0, 0) +SAX.characters(articles, 8) +SAX.endElementNs(section, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(image, NULL, NULL, 0, 0, 0) +SAX.characters(topicredhat.gif, 15) +SAX.endElementNs(image, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(story, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(ultramode, NULL, NULL) +SAX.endDocument() diff --git a/result/svg1 b/result/svg1 new file mode 100644 index 0000000..359bd45 --- /dev/null +++ b/result/svg1 @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/result/svg1.rde b/result/svg1.rde new file mode 100644 index 0000000..91497d2 --- /dev/null +++ b/result/svg1.rde @@ -0,0 +1,477 @@ +0 10 svg 0 0 +0 1 svg 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +0 15 svg 0 0 diff --git a/result/svg1.rdr b/result/svg1.rdr new file mode 100644 index 0000000..91497d2 --- /dev/null +++ b/result/svg1.rdr @@ -0,0 +1,477 @@ +0 10 svg 0 0 +0 1 svg 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +0 15 svg 0 0 diff --git a/result/svg1.sax b/result/svg1.sax new file mode 100644 index 0000000..b09f01f --- /dev/null +++ b/result/svg1.sax @@ -0,0 +1,613 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(svg, -//W3C//DTD SVG April 1999//EN, http://www.w3.org/Graphics/SVG/svg-19990412.dtd) +SAX.externalSubset(svg, -//W3C//DTD SVG April 1999//EN, http://www.w3.org/Graphics/SVG/svg-19990412.dtd) +SAX.startElement(svg, width='242px', height='383px') +SAX.characters( +, 1) +SAX.startElement(g, style='stroke: #000000') +SAX.characters( +, 2) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='fill: #f2cc99') +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 69,18 82,8 99,3 118,5 135,12 149,21 156,13 165,9 177,13 183,28 180,50 164,91 155,107 154,114 151,121 141,127 139,136 155,206 157,251 126,342 133,357 128,376 83,376 75,368 67,350 61,350 53,369 4,369 2,361 5,354 12,342 16,321 4,257 4,244 7,218 9,179 26,127 43,93 32,77 30,70 24,67 16,49 17,35 18,23 30,12 40,7 53,7 62,12 69,18 69,18 69,18') +SAX.endElement(polyline) +SAX.characters( +, 2) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='fill: #e5b27f') +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 142,79 136,74 138,82 133,78 133,84 127,78 128,85 124,80 125,87 119,82 119,90 125,99 125,96 128,100 128,94 131,98 132,93 135,97 136,93 138,97 139,94 141,98 143,94 144,85 142,79 142,79 142,79') +SAX.endElement(polyline) +SAX.characters( +, 2) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='fill: #eb8080') +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 127,101 132,100 137,99 144,101 143,105 135,110 127,101 127,101 127,101') +SAX.endElement(polyline) +SAX.characters( +, 2) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='fill: #f2cc99') +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 178,229 157,248 139,296 126,349 137,356 158,357 183,342 212,332 235,288 235,261 228,252 212,250 188,251 178,229 178,229 178,229') +SAX.endElement(polyline) +SAX.characters( +, 2) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='fill: #9c826b') +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 56,229 48,241 48,250 57,281 63,325 71,338 81,315 76,321 79,311 83,301 75,308 80,298 73,303 76,296 71,298 74,292 69,293 74,284 78,278 71,278 74,274 68,273 70,268 66,267 68,261 60,266 62,259 65,253 57,258 59,251 55,254 55,248 60,237 54,240 58,234 54,236 56,229 56,229 56,229') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 74,363 79,368 81,368 85,362 89,363 92,370 96,373 101,372 108,361 110,371 113,373 116,371 120,358 122,363 123,371 126,371 129,367 132,357 135,361 130,376 127,377 94,378 84,376 76,371 74,363 74,363 74,363') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 212,250 219,251 228,258 236,270 235,287 225,304 205,332 177,343 171,352 158,357 166,352 168,346 168,339 165,333 155,327 155,323 161,320 165,316 169,316 167,312 171,313 168,308 173,309 170,306 177,306 175,308 177,311 174,311 176,316 171,315 174,319 168,320 168,323 175,327 179,332 183,326 184,332 189,323 190,328 194,320 194,325 199,316 201,320 204,313 206,316 208,310 211,305 219,298 226,288 229,279 228,266 224,259 217,253 212,250 212,250 212,250') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 151,205 151,238 149,252 141,268 128,282 121,301 130,300 126,313 118,324 116,337 120,346 133,352 133,340 137,333 145,329 156,327 153,319 153,291 157,271 170,259 178,277 193,250 174,216 151,205 151,205 151,205') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 78,127 90,142 95,155 108,164 125,167 139,175 150,206 152,191 141,140 121,148 100,136 78,127 78,127 78,127') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 21,58 35,63 38,68 32,69 42,74 40,79 47,80 54,83 45,94 34,81 32,73 24,66 21,58 21,58 21,58') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 71,34 67,34 66,27 59,24 54,17 48,17 39,22 30,26 28,31 31,39 38,46 29,45 36,54 41,61 41,70 50,69 54,71 55,58 67,52 76,43 76,39 68,44 71,34 71,34 71,34') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 139,74 141,83 143,89 144,104 148,104 155,106 154,86 157,77 155,72 150,77 144,77 139,74 139,74 139,74') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 105,44 102,53 108,58 111,62 112,55 105,44 105,44 105,44') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 141,48 141,54 144,58 139,62 137,66 136,59 137,52 141,48 141,48 141,48') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 98,135 104,130 105,134 108,132 108,135 112,134 113,137 116,136 116,139 119,139 124,141 128,140 133,138 140,133 139,140 126,146 104,144 98,135 98,135 98,135') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 97,116 103,119 103,116 111,118 116,117 122,114 127,107 135,111 142,107 141,114 145,118 149,121 145,125 140,124 127,121 113,125 100,124 97,116 97,116 97,116') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 147,33 152,35 157,34 153,31 160,31 156,28 161,28 159,24 163,25 163,21 165,22 170,23 167,17 172,21 174,18 175,23 176,22 177,28 177,33 174,37 176,39 174,44 171,49 168,53 164,57 159,68 156,70 154,60 150,51 146,43 144,35 147,33 147,33 147,33') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 85,72 89,74 93,75 100,76 105,75 102,79 94,79 88,76 85,72 85,72 85,72') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 86,214 79,221 76,232 82,225 78,239 82,234 78,245 81,243 79,255 84,250 84,267 87,254 90,271 90,257 95,271 93,256 95,249 92,252 93,243 89,253 89,241 86,250 87,236 83,245 87,231 82,231 90,219 84,221 86,214 86,214 86,214') +SAX.endElement(polyline) +SAX.characters( +, 2) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='fill: #ffcc7f') +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 93,68 96,72 100,73 106,72 108,66 105,63 100,62 93,68 93,68 93,68') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 144,64 142,68 142,73 146,74 150,73 154,64 149,62 144,64 144,64 144,64') +SAX.endElement(polyline) +SAX.characters( +, 2) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='fill: #9c826b') +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 57,91 42,111 52,105 41,117 53,112 46,120 53,116 50,124 57,119 55,127 61,122 60,130 67,126 66,134 71,129 72,136 77,130 76,137 80,133 82,138 86,135 96,135 94,129 86,124 83,117 77,123 79,117 73,120 75,112 68,116 71,111 65,114 69,107 63,110 68,102 61,107 66,98 61,103 63,97 57,99 57,91 57,91 57,91') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 83,79 76,79 67,82 75,83 65,88 76,87 65,92 76,91 68,96 77,95 70,99 80,98 72,104 80,102 76,108 85,103 92,101 87,98 93,96 86,94 91,93 85,91 93,89 99,89 105,93 107,85 102,82 92,80 83,79 83,79 83,79') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 109,77 111,83 109,89 113,94 117,90 117,81 114,78 109,77 109,77 109,77') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 122,128 127,126 134,127 136,129 134,130 130,128 124,129 122,128 122,128 122,128') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 78,27 82,32 80,33 82,36 78,37 82,40 78,42 81,46 76,47 78,49 74,50 82,52 87,50 83,48 91,46 86,45 91,42 88,40 92,37 86,34 90,31 86,29 89,26 78,27 78,27 78,27') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 82,17 92,20 79,21 90,25 81,25 94,28 93,26 101,30 101,26 107,33 108,28 111,40 113,34 115,45 117,39 119,54 121,46 124,58 126,47 129,59 130,49 134,58 133,44 137,48 133,37 137,40 133,32 126,20 135,26 132,19 138,23 135,17 142,18 132,11 116,6 94,6 78,11 92,12 80,14 90,16 82,17 82,17 82,17') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 142,234 132,227 124,223 115,220 110,225 118,224 127,229 135,236 122,234 115,237 113,242 121,238 139,243 121,245 111,254 95,254 102,244 104,235 110,229 100,231 104,224 113,216 122,215 132,217 141,224 145,230 149,240 142,234 142,234 142,234') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 115,252 125,248 137,249 143,258 134,255 125,254 115,252 115,252 115,252') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 114,212 130,213 140,219 147,225 144,214 137,209 128,207 114,212 114,212 114,212') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 102,263 108,258 117,257 131,258 116,260 109,265 102,263 102,263 102,263') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 51,241 35,224 40,238 23,224 31,242 19,239 28,247 17,246 25,250 37,254 39,263 44,271 47,294 48,317 51,328 60,351 60,323 53,262 47,246 51,241 51,241 51,241') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 2,364 9,367 14,366 18,355 20,364 26,366 31,357 35,364 39,364 42,357 47,363 53,360 59,357 54,369 7,373 2,364 2,364 2,364') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 7,349 19,345 25,339 18,341 23,333 28,326 23,326 27,320 23,316 25,311 20,298 15,277 12,264 9,249 10,223 3,248 5,261 15,307 17,326 11,343 7,349 7,349 7,349') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 11,226 15,231 25,236 18,227 11,226 11,226 11,226') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 13,214 19,217 32,227 23,214 16,208 15,190 24,148 31,121 24,137 14,170 8,189 13,214 13,214 13,214') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 202,254 195,258 199,260 193,263 197,263 190,268 196,268 191,273 188,282 200,272 194,272 201,266 197,265 204,262 200,258 204,256 202,254 202,254 202,254') +SAX.endElement(polyline) +SAX.characters( +, 2) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='fill: #845433') +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 151,213 165,212 179,225 189,246 187,262 179,275 176,263 177,247 171,233 163,230 165,251 157,264 146,298 145,321 133,326 143,285 154,260 153,240 151,213 151,213 151,213') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 91,132 95,145 97,154 104,148 107,155 109,150 111,158 115,152 118,159 120,153 125,161 126,155 133,164 132,154 137,163 137,152 142,163 147,186 152,192 148,167 141,143 124,145 105,143 91,132 91,132 91,132') +SAX.endElement(polyline) +SAX.characters( +, 2) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='fill: #9c826b') +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 31,57 23,52 26,51 20,44 23,42 21,36 22,29 25,23 24,32 30,43 26,41 30,50 26,48 31,57 31,57 31,57') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 147,21 149,28 155,21 161,16 167,14 175,15 173,11 161,9 147,21 147,21 147,21') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 181,39 175,51 169,57 171,65 165,68 165,75 160,76 162,91 171,71 180,51 181,39 181,39 181,39') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 132,346 139,348 141,346 142,341 147,342 143,355 133,350 132,346 132,346 132,346') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 146,355 151,352 155,348 157,343 160,349 151,356 147,357 146,355 146,355 146,355') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 99,266 100,281 94,305 86,322 78,332 72,346 73,331 91,291 99,266 99,266 99,266') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 20,347 32,342 45,340 54,345 45,350 42,353 38,350 31,353 29,356 23,350 19,353 15,349 20,347 20,347 20,347') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 78,344 86,344 92,349 88,358 84,352 78,344 78,344 78,344') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 93,347 104,344 117,345 124,354 121,357 116,351 112,351 108,355 102,351 93,347 93,347 93,347') +SAX.endElement(polyline) +SAX.characters( +, 2) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 105,12 111,18 113,24 113,29 119,34 116,23 112,16 105,12 105,12 105,12') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 122,27 125,34 127,43 128,34 125,29 122,27 122,27 122,27') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 115,13 122,19 122,15 113,10 115,13 115,13 115,13') +SAX.endElement(polyline) +SAX.characters( +, 2) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='fill: #ffe5b2') +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 116,172 107,182 98,193 98,183 90,199 89,189 84,207 88,206 87,215 95,206 93,219 91,230 98,216 97,226 104,214 112,209 104,208 113,202 126,200 139,207 132,198 142,203 134,192 142,195 134,187 140,185 130,181 136,177 126,177 125,171 116,180 116,172 116,172 116,172') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 74,220 67,230 67,221 59,235 63,233 60,248 70,232 65,249 71,243 67,256 73,250 69,262 73,259 71,267 76,262 72,271 78,270 76,275 82,274 78,290 86,279 86,289 92,274 88,275 87,264 82,270 82,258 77,257 78,247 73,246 77,233 72,236 74,220 74,220 74,220') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 133,230 147,242 148,250 145,254 138,247 129,246 142,245 138,241 128,237 137,238 133,230 133,230 133,230') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 133,261 125,261 116,263 111,267 125,265 133,261 133,261 133,261') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 121,271 109,273 103,279 99,305 92,316 85,327 83,335 89,340 97,341 94,336 101,336 96,331 103,330 97,327 108,325 99,322 109,321 100,318 110,317 105,314 110,312 107,310 113,308 105,306 114,303 105,301 115,298 107,295 115,294 108,293 117,291 109,289 117,286 109,286 118,283 112,281 118,279 114,278 119,276 115,274 121,271 121,271 121,271') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 79,364 74,359 74,353 76,347 80,351 83,356 82,360 79,364 79,364 79,364') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 91,363 93,356 97,353 103,355 105,360 103,366 99,371 94,368 91,363 91,363 91,363') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 110,355 114,353 118,357 117,363 113,369 111,362 110,355 110,355 110,355') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 126,354 123,358 124,367 126,369 129,361 129,357 126,354 126,354 126,354') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 30,154 24,166 20,182 23,194 29,208 37,218 41,210 41,223 46,214 46,227 52,216 52,227 61,216 59,225 68,213 73,219 70,207 77,212 69,200 77,202 70,194 78,197 68,187 76,182 64,182 58,175 58,185 53,177 50,186 46,171 44,182 39,167 36,172 36,162 30,166 30,154 30,154 30,154') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 44,130 41,137 45,136 43,150 48,142 48,157 53,150 52,164 60,156 61,169 64,165 66,175 70,167 74,176 77,168 80,183 85,172 90,182 93,174 98,181 99,173 104,175 105,169 114,168 102,163 95,157 94,166 90,154 87,162 82,149 75,159 72,148 68,155 67,143 62,148 62,138 58,145 56,133 52,142 52,128 49,134 47,125 44,130 44,130 44,130') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 13,216 19,219 36,231 22,223 16,222 22,227 12,224 13,220 16,220 13,216 13,216 13,216') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 10,231 14,236 25,239 27,237 19,234 10,231 10,231 10,231') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 9,245 14,242 25,245 13,245 9,245 9,245 9,245') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 33,255 26,253 18,254 25,256 18,258 27,260 18,263 27,265 19,267 29,270 21,272 29,276 21,278 30,281 22,283 31,287 24,288 32,292 23,293 34,298 26,299 37,303 32,305 39,309 33,309 39,314 34,314 40,318 34,317 40,321 34,321 41,326 33,326 40,330 33,332 39,333 33,337 42,337 54,341 49,337 52,335 47,330 50,330 45,325 49,325 45,321 48,321 45,316 46,306 45,286 43,274 36,261 33,255 33,255 33,255') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 7,358 9,351 14,351 17,359 11,364 7,358 7,358 7,358') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 44,354 49,351 52,355 49,361 44,354 44,354 44,354') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 32,357 37,353 40,358 36,361 32,357 32,357 32,357') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 139,334 145,330 154,330 158,334 154,341 152,348 145,350 149,340 147,336 141,339 139,345 136,342 136,339 139,334 139,334 139,334') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 208,259 215,259 212,255 220,259 224,263 225,274 224,283 220,292 208,300 206,308 203,304 199,315 197,309 195,318 193,313 190,322 190,316 185,325 182,318 180,325 172,321 178,320 176,313 186,312 180,307 188,307 184,303 191,302 186,299 195,294 187,290 197,288 192,286 201,283 194,280 203,277 198,275 207,271 200,269 209,265 204,265 212,262 208,259 208,259 208,259') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 106,126 106,131 109,132 111,134 115,132 115,135 119,133 118,137 123,137 128,137 133,134 136,130 136,127 132,124 118,128 112,128 106,126 106,126 106,126') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 107,114 101,110 98,102 105,97 111,98 119,102 121,108 118,112 113,115 107,114 107,114 107,114') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 148,106 145,110 146,116 150,118 152,111 151,107 148,106 148,106 148,106') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 80,55 70,52 75,58 63,57 72,61 57,61 67,66 57,67 62,69 54,71 61,73 54,77 63,78 53,85 60,84 56,90 69,84 63,82 75,76 70,75 77,72 72,71 78,69 72,66 81,67 78,64 82,63 80,60 86,62 80,55 80,55 80,55') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 87,56 91,52 96,50 102,56 98,56 92,60 87,56 87,56 87,56') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 85,68 89,73 98,76 106,74 96,73 91,70 85,68 85,68 85,68') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 115,57 114,64 111,64 115,75 122,81 122,74 126,79 126,74 131,78 130,72 133,77 131,68 126,61 119,57 115,57 115,57 115,57') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 145,48 143,53 147,59 151,59 150,55 145,48 145,48 145,48') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 26,22 34,15 43,10 52,10 59,16 47,15 32,22 26,22 26,22 26,22') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 160,19 152,26 149,34 154,33 152,30 157,30 155,26 158,27 157,23 161,23 160,19 160,19 160,19') +SAX.endElement(polyline) +SAX.characters( +, 2) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 98,117 105,122 109,122 105,117 113,120 121,120 130,112 128,108 123,103 123,99 128,101 132,106 135,109 142,105 142,101 145,101 145,91 148,101 145,105 136,112 135,116 143,124 148,120 150,122 142,128 133,122 121,125 112,126 103,125 100,129 96,124 98,117 98,117 98,117') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 146,118 152,118 152,115 149,115 146,118 146,118 146,118') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 148,112 154,111 154,109 149,109 148,112 148,112 148,112') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 106,112 108,115 114,116 118,114 106,112 106,112 106,112') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 108,108 111,110 116,110 119,108 108,108 108,108 108,108') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 106,104 109,105 117,106 115,104 106,104 106,104 106,104') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 50,25 41,26 34,33 39,43 49,58 36,51 47,68 55,69 54,59 61,57 74,46 60,52 67,42 57,48 61,40 54,45 60,36 59,29 48,38 52,30 47,32 50,25 50,25 50,25') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 147,34 152,41 155,49 161,53 157,47 164,47 158,43 168,44 159,40 164,37 169,37 164,33 169,34 165,28 170,30 170,25 173,29 175,27 176,32 173,36 175,39 172,42 172,46 168,49 170,55 162,57 158,63 155,58 153,50 149,46 147,34 147,34 147,34') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 155,71 159,80 157,93 157,102 155,108 150,101 149,93 154,101 152,91 151,83 155,79 155,71 155,71 155,71') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 112,78 115,81 114,91 112,87 113,82 112,78 112,78 112,78') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 78,28 64,17 58,11 47,9 36,10 28,16 21,26 18,41 20,51 23,61 33,65 28,68 37,74 36,81 43,87 48,90 43,100 40,98 39,90 31,80 30,72 22,71 17,61 14,46 16,28 23,17 33,9 45,6 54,6 65,12 78,28 78,28 78,28') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 67,18 76,9 87,5 101,2 118,3 135,8 149,20 149,26 144,19 132,12 121,9 105,7 89,8 76,14 70,20 67,18 67,18 67,18') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 56,98 48,106 56,103 47,112 56,110 52,115 57,113 52,121 62,115 58,123 65,119 63,125 69,121 68,127 74,125 74,129 79,128 83,132 94,135 93,129 85,127 81,122 76,126 75,121 71,124 71,117 66,121 66,117 62,117 64,112 60,113 60,110 57,111 61,105 57,107 60,101 55,102 56,98 56,98 56,98') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 101,132 103,138 106,134 106,139 112,136 111,142 115,139 114,143 119,142 125,145 131,142 135,138 140,134 140,129 143,135 145,149 150,171 149,184 145,165 141,150 136,147 132,151 131,149 126,152 125,150 121,152 117,148 111,152 110,148 105,149 104,145 98,150 96,138 94,132 94,130 98,132 101,132 101,132 101,132') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 41,94 32,110 23,132 12,163 6,190 7,217 5,236 3,247 9,230 12,211 12,185 18,160 26,134 35,110 43,99 41,94 41,94 41,94') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 32,246 41,250 50,257 52,267 53,295 53,323 59,350 54,363 51,365 44,366 42,360 40,372 54,372 59,366 62,353 71,352 75,335 73,330 66,318 68,302 64,294 67,288 63,286 63,279 59,275 58,267 56,262 50,247 42,235 44,246 32,236 35,244 32,246 32,246 32,246') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 134,324 146,320 159,322 173,327 179,337 179,349 172,355 158,357 170,350 174,343 170,333 163,328 152,326 134,329 134,324 134,324 134,324') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 173,339 183,334 184,338 191,329 194,332 199,323 202,325 206,318 209,320 213,309 221,303 228,296 232,289 234,279 233,269 230,262 225,256 219,253 208,252 198,252 210,249 223,250 232,257 237,265 238,277 238,291 232,305 221,323 218,335 212,342 200,349 178,348 173,339 173,339 173,339') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 165,296 158,301 156,310 156,323 162,324 159,318 162,308 162,304 165,296 165,296 165,296') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 99,252 105,244 107,234 115,228 121,228 131,235 122,233 113,235 109,246 121,239 133,243 121,243 110,251 99,252 99,252 99,252') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 117,252 124,247 134,249 136,253 126,252 117,252 117,252 117,252') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 117,218 132,224 144,233 140,225 132,219 117,218 117,218 117,218') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 122,212 134,214 143,221 141,213 132,210 122,212 122,212 122,212') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 69,352 70,363 76,373 86,378 97,379 108,379 120,377 128,378 132,373 135,361 133,358 132,366 127,375 121,374 121,362 119,367 117,374 110,376 110,362 107,357 106,371 104,375 97,376 90,375 90,368 86,362 83,364 86,369 85,373 78,370 73,362 71,351 69,352 69,352 69,352') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 100,360 96,363 99,369 102,364 100,360 100,360 100,360') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 115,360 112,363 114,369 117,364 115,360 115,360 115,360') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 127,362 125,364 126,369 128,365 127,362 127,362 127,362') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 5,255 7,276 11,304 15,320 13,334 6,348 2,353 0,363 5,372 12,374 25,372 38,372 44,369 42,367 36,368 31,369 30,360 27,368 20,370 16,361 15,368 10,369 3,366 3,359 6,352 11,348 17,331 19,316 12,291 9,274 5,255 5,255 5,255') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 10,358 7,362 10,366 11,362 10,358 10,358 10,358') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 25,357 22,360 24,366 27,360 25,357 25,357 25,357') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 37,357 34,361 36,365 38,361 37,357 37,357 37,357') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 49,356 46,359 47,364 50,360 49,356 49,356 49,356') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 130,101 132,102 135,101 139,102 143,103 142,101 137,100 133,100 130,101 130,101 130,101') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 106,48 105,52 108,56 109,52 106,48 106,48 106,48') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 139,52 139,56 140,60 142,58 141,56 139,52 139,52 139,52') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 25,349 29,351 30,355 33,350 37,348 42,351 45,347 49,345 44,343 36,345 25,349 25,349 25,349') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 98,347 105,351 107,354 109,349 115,349 120,353 118,349 113,346 104,346 98,347 98,347 98,347') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 83,348 87,352 87,357 89,351 87,348 83,348 83,348 83,348') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 155,107 163,107 170,107 186,108 175,109 155,109 155,107 155,107 155,107') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 153,114 162,113 175,112 192,114 173,114 154,115 153,114 153,114 153,114') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 152,118 164,120 180,123 197,129 169,123 151,120 152,118 152,118 152,118') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 68,109 87,106 107,106 106,108 88,108 68,109 68,109 68,109') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 105,111 95,112 79,114 71,116 85,115 102,113 105,111 105,111 105,111') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 108,101 98,99 87,99 78,99 93,100 105,102 108,101 108,101 108,101') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 85,63 91,63 97,60 104,60 108,62 111,69 112,75 110,74 108,71 103,73 106,69 105,65 103,64 103,67 102,70 99,70 97,66 94,67 97,72 88,67 84,66 85,63 85,63 85,63') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 140,74 141,66 144,61 150,61 156,62 153,70 150,73 152,65 150,65 151,68 149,71 146,71 144,66 143,70 143,74 140,74 140,74 140,74') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 146,20 156,11 163,9 172,9 178,14 182,18 184,32 182,42 182,52 177,58 176,67 171,76 165,90 157,105 160,92 164,85 168,78 167,73 173,66 172,62 175,59 174,55 177,53 180,46 181,29 179,21 173,13 166,11 159,13 153,18 148,23 146,20 146,20 146,20') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 150,187 148,211 150,233 153,247 148,267 135,283 125,299 136,292 131,313 122,328 122,345 129,352 133,359 133,367 137,359 148,356 140,350 131,347 129,340 132,332 140,328 137,322 140,304 154,265 157,244 155,223 161,220 175,229 186,247 185,260 176,275 178,287 185,277 188,261 196,253 189,236 174,213 150,187 150,187 150,187') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 147,338 142,341 143,345 141,354 147,343 147,338 147,338 147,338') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 157,342 156,349 150,356 157,353 163,346 162,342 157,342 157,342 157,342') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 99,265 96,284 92,299 73,339 73,333 87,300 99,265 99,265 99,265') +SAX.endElement(polyline) +SAX.characters( +, 2) +SAX.endElement(g) +SAX.endElement(svg) +SAX.endDocument() diff --git a/result/svg1.sax2 b/result/svg1.sax2 new file mode 100644 index 0000000..7b81459 --- /dev/null +++ b/result/svg1.sax2 @@ -0,0 +1,613 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(svg, -//W3C//DTD SVG April 1999//EN, http://www.w3.org/Graphics/SVG/svg-19990412.dtd) +SAX.externalSubset(svg, -//W3C//DTD SVG April 1999//EN, http://www.w3.org/Graphics/SVG/svg-19990412.dtd) +SAX.startElementNs(svg, NULL, NULL, 0, 2, 0, width='242p...', 5, height='383p...', 5) +SAX.characters( +, 1) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15) +SAX.characters( +, 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 69,...', 337) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( +, 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 142...', 190) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( +, 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 127...', 71) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( +, 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 178...', 128) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( +, 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 56,...', 273) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 74,...', 203) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 212...', 448) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 151...', 208) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 78,...', 106) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 21,...', 90) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 71,...', 150) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 139...', 101) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 105...', 56) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 141...', 70) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 98,...', 156) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 97,...', 156) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 147...', 238) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 85,...', 69) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 86,...', 217) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( +, 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 93,...', 65) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 144...', 70) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( +, 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 57,...', 294) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 83,...', 194) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 109...', 70) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 122...', 80) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 78,...', 156) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 82,...', 284) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 142...', 239) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 115...', 72) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 114...', 80) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 102...', 72) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 51,...', 154) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 2,3...', 120) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 7,3...', 154) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 11,...', 49) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 13,...', 97) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 202...', 152) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( +, 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 151...', 168) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 91,...', 202) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( +, 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 31,...', 96) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 147...', 76) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 181...', 91) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 132...', 80) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 146...', 80) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 99,...', 78) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 20,...', 105) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 78,...', 56) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 93,...', 92) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( +, 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 105...', 70) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 122...', 56) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 115...', 49) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( +, 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 116...', 260) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 74,...', 245) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 133...', 104) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 133...', 64) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 121...', 334) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 79,...', 70) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 91,...', 80) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 110...', 72) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 126...', 72) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 30,...', 266) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 44,...', 319) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 13,...', 84) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 10,...', 56) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 9,2...', 45) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 33,...', 385) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 7,3...', 51) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 44,...', 49) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 32,...', 49) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 139...', 128) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 208...', 360) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 106...', 152) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 107...', 93) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 148...', 72) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 80,...', 192) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 87,...', 55) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 85,...', 55) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 115...', 119) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 145...', 56) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 26,...', 60) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 160...', 91) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( +, 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 98,...', 265) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 146...', 56) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 148...', 56) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 106...', 56) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 108...', 56) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 106...', 56) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 50,...', 144) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 147...', 231) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 155...', 102) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 112...', 56) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 78,...', 195) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 67,...', 109) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 56,...', 276) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 101...', 307) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 41,...', 116) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 32,...', 245) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 134...', 136) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 173...', 280) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 165...', 88) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 99,...', 124) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 117...', 64) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 117...', 64) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 122...', 64) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 69,...', 262) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 100...', 54) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 115...', 56) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 127...', 56) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 5,2...', 218) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 10,...', 48) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 25,...', 49) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 37,...', 49) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 49,...', 49) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 130...', 88) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 106...', 49) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 139...', 56) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 25,...', 91) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 98,...', 92) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 83,...', 56) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 155...', 72) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 153...', 72) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 152...', 72) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 68,...', 58) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 105...', 68) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 108...', 65) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 85,...', 156) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 140...', 126) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 146...', 237) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 150...', 320) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 147...', 64) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 157...', 72) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 99,...', 63) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( +, 2) +SAX.endElementNs(g, NULL, NULL) +SAX.endElementNs(svg, NULL, NULL) +SAX.endDocument() diff --git a/result/svg2 b/result/svg2 new file mode 100644 index 0000000..6c3990c --- /dev/null +++ b/result/svg2 @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + Java Font definition:Dialog 0 + + + Java Font definition:Helvetica 0 + + + + this is text + + + + Java Font definition:Dialog 0 + + + Java Font definition:Helvetica 700 + + + + sadfsadfsad + + + + + + + + + + + Java Font definition:Dialog 700 + + + Java Font definition:Dialog 700 + + diff --git a/result/svg2.rde b/result/svg2.rde new file mode 100644 index 0000000..1eab152 --- /dev/null +++ b/result/svg2.rde @@ -0,0 +1,178 @@ +0 10 svg 0 0 +0 1 svg 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 rect 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 ellipse 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 g 0 0 +3 14 #text 0 1 + +3 1 desc 0 0 +4 3 #text 0 1 Java Font definition:Dialog 0 +3 15 desc 0 0 +3 14 #text 0 1 + +2 15 g 0 0 +2 14 #text 0 1 + +2 1 g 0 0 +3 14 #text 0 1 + +3 1 desc 0 0 +4 3 #text 0 1 Java Font definition:Helvetica 0 +3 15 desc 0 0 +3 14 #text 0 1 + +2 15 g 0 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 text 0 0 +3 3 #text 0 1 this is text +2 15 text 0 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 g 0 0 +3 14 #text 0 1 + +3 1 desc 0 0 +4 3 #text 0 1 Java Font definition:Dialog 0 +3 15 desc 0 0 +3 14 #text 0 1 + +2 15 g 0 0 +2 14 #text 0 1 + +2 1 g 0 0 +3 14 #text 0 1 + +3 1 desc 0 0 +4 3 #text 0 1 Java Font definition:Helvetica 700 +3 15 desc 0 0 +3 14 #text 0 1 + +2 15 g 0 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 text 0 0 +3 3 #text 0 1 sadfsadfsad +2 15 text 0 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 ellipse 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 g 0 0 +3 14 #text 0 1 + +3 1 desc 0 0 +4 3 #text 0 1 Java Font definition:Dialog 700 +3 15 desc 0 0 +3 14 #text 0 1 + +2 15 g 0 0 +2 14 #text 0 1 + +2 1 g 0 0 +3 14 #text 0 1 + +3 1 desc 0 0 +4 3 #text 0 1 Java Font definition:Dialog 700 +3 15 desc 0 0 +3 14 #text 0 1 + +2 15 g 0 0 +2 14 #text 0 1 + +1 15 g 0 0 +0 15 svg 0 0 diff --git a/result/svg2.rdr b/result/svg2.rdr new file mode 100644 index 0000000..1eab152 --- /dev/null +++ b/result/svg2.rdr @@ -0,0 +1,178 @@ +0 10 svg 0 0 +0 1 svg 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 rect 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 ellipse 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 polyline 1 0 +2 14 #text 0 1 + +2 1 g 0 0 +3 14 #text 0 1 + +3 1 desc 0 0 +4 3 #text 0 1 Java Font definition:Dialog 0 +3 15 desc 0 0 +3 14 #text 0 1 + +2 15 g 0 0 +2 14 #text 0 1 + +2 1 g 0 0 +3 14 #text 0 1 + +3 1 desc 0 0 +4 3 #text 0 1 Java Font definition:Helvetica 0 +3 15 desc 0 0 +3 14 #text 0 1 + +2 15 g 0 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 text 0 0 +3 3 #text 0 1 this is text +2 15 text 0 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 g 0 0 +3 14 #text 0 1 + +3 1 desc 0 0 +4 3 #text 0 1 Java Font definition:Dialog 0 +3 15 desc 0 0 +3 14 #text 0 1 + +2 15 g 0 0 +2 14 #text 0 1 + +2 1 g 0 0 +3 14 #text 0 1 + +3 1 desc 0 0 +4 3 #text 0 1 Java Font definition:Helvetica 700 +3 15 desc 0 0 +3 14 #text 0 1 + +2 15 g 0 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 text 0 0 +3 3 #text 0 1 sadfsadfsad +2 15 text 0 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 ellipse 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 g 0 0 +3 14 #text 0 1 + +3 1 desc 0 0 +4 3 #text 0 1 Java Font definition:Dialog 700 +3 15 desc 0 0 +3 14 #text 0 1 + +2 15 g 0 0 +2 14 #text 0 1 + +2 1 g 0 0 +3 14 #text 0 1 + +3 1 desc 0 0 +4 3 #text 0 1 Java Font definition:Dialog 700 +3 15 desc 0 0 +3 14 #text 0 1 + +2 15 g 0 0 +2 14 #text 0 1 + +1 15 g 0 0 +0 15 svg 0 0 diff --git a/result/svg2.sax b/result/svg2.sax new file mode 100644 index 0000000..0134545 --- /dev/null +++ b/result/svg2.sax @@ -0,0 +1,189 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(svg, -//W3C//DTD SVG April 1999//EN, http://www.w3.org/Graphics/SVG/svg-19990412.dtd) +SAX.externalSubset(svg, -//W3C//DTD SVG April 1999//EN, http://www.w3.org/Graphics/SVG/svg-19990412.dtd) +SAX.startElement(svg, width='268px', height='207px') +SAX.characters( +, 1) +SAX.startElement(g, style='stroke: #000000') +SAX.characters( + , 5) +SAX.startElement(path, d=' M 29 28 ') +SAX.endElement(path) +SAX.characters( + , 5) +SAX.startElement(path, d=' L 19 74 ') +SAX.endElement(path) +SAX.characters( +, 2) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='stroke: #800040') +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 32,100 72,50 90,82 73,16 120,64 152,9 177,107') +SAX.endElement(polyline) +SAX.characters( +, 2) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='stroke: #000000') +SAX.characters( +, 2) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='stroke: #0000ff') +SAX.characters( + , 5) +SAX.startElement(rect, x='30', y='101', width='51', height='33') +SAX.endElement(rect) +SAX.characters( +, 1) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='fill: #0000ff') +SAX.characters( + , 5) +SAX.startElement(ellipse, cx='182', cy='127', major='37', minor='31', angle='90') +SAX.endElement(ellipse) +SAX.characters( +, 1) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='fill: #ff0000') +SAX.characters( + , 5) +SAX.startElement(polyline, verts=' 78,180 76,151 131,149 136,182 135,182 134,183 127,185 117,186 109,192 104,194 98,199 96,200 95,201 94,202 92,202 85,202 70,200 54,199 47,198 46,197 45,197 37,195 26,193 17,187 9,181 8,181 7,176 6,175 6,173 6,172 6,170 8,164 8,163 8,162 9,162 10,162 11,162 13,162 20,162 26,162 27,162 28,162 30,162 30,163 31,163 32,164 34,166 35,166 36,167 36,168 37,169 38,169 39,169 41,170 43,170 45,170 47,170 49,170 50,168 50,161 50,160 50,159 47,162 78,180') +SAX.endElement(polyline) +SAX.characters( + , 5) +SAX.startElement(g) +SAX.characters( + , 6) +SAX.startElement(desc) +SAX.characters( Java Font definition:Dialog 0, 30) +SAX.endElement(desc) +SAX.characters( + , 5) +SAX.endElement(g) +SAX.characters( + , 4) +SAX.startElement(g) +SAX.characters( + , 6) +SAX.startElement(desc) +SAX.characters( Java Font definition:Helvetic, 33) +SAX.endElement(desc) +SAX.characters( + , 5) +SAX.endElement(g) +SAX.characters( +, 1) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='stroke: #000000') +SAX.characters( + , 5) +SAX.startElement(text, x='188', y='36') +SAX.characters(this is text, 12) +SAX.endElement(text) +SAX.characters( +, 1) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='stroke: #000000') +SAX.characters( + , 5) +SAX.startElement(g) +SAX.characters( + , 6) +SAX.startElement(desc) +SAX.characters( Java Font definition:Dialog 0, 30) +SAX.endElement(desc) +SAX.characters( + , 5) +SAX.endElement(g) +SAX.characters( + , 4) +SAX.startElement(g) +SAX.characters( + , 6) +SAX.startElement(desc) +SAX.characters( Java Font definition:Helvetic, 35) +SAX.endElement(desc) +SAX.characters( + , 5) +SAX.endElement(g) +SAX.characters( +, 1) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='stroke: #008080') +SAX.characters( + , 5) +SAX.startElement(text, x='176', y='85') +SAX.characters(sadfsadfsad, 11) +SAX.endElement(text) +SAX.characters( +, 1) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='stroke: #000000') +SAX.characters( +, 2) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='fill: #800040') +SAX.characters( + , 5) +SAX.startElement(ellipse, cx='208', cy='180', major='45', minor='31', angle='0') +SAX.endElement(ellipse) +SAX.characters( +, 1) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='stroke: #000000') +SAX.characters( +, 2) +SAX.endElement(g) +SAX.characters( +, 2) +SAX.startElement(g, style='fill: #ffffff') +SAX.characters( + , 5) +SAX.startElement(g) +SAX.characters( + , 6) +SAX.startElement(desc) +SAX.characters( Java Font definition:Dialog 7, 32) +SAX.endElement(desc) +SAX.characters( + , 5) +SAX.endElement(g) +SAX.characters( + , 4) +SAX.startElement(g) +SAX.characters( + , 6) +SAX.startElement(desc) +SAX.characters( Java Font definition:Dialog 7, 32) +SAX.endElement(desc) +SAX.characters( + , 5) +SAX.endElement(g) +SAX.characters( +, 1) +SAX.endElement(g) +SAX.endElement(svg) +SAX.endDocument() diff --git a/result/svg2.sax2 b/result/svg2.sax2 new file mode 100644 index 0000000..ab73992 --- /dev/null +++ b/result/svg2.sax2 @@ -0,0 +1,189 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(svg, -//W3C//DTD SVG April 1999//EN, http://www.w3.org/Graphics/SVG/svg-19990412.dtd) +SAX.externalSubset(svg, -//W3C//DTD SVG April 1999//EN, http://www.w3.org/Graphics/SVG/svg-19990412.dtd) +SAX.startElementNs(svg, NULL, NULL, 0, 2, 0, width='268p...', 5, height='207p...', 5) +SAX.characters( +, 1) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15) +SAX.characters( + , 5) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d=' M 2...', 9) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d=' L 1...', 9) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( +, 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 32,...', 46) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( +, 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15) +SAX.characters( +, 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15) +SAX.characters( + , 5) +SAX.startElementNs(rect, NULL, NULL, 0, 4, 0, x='30" ...', 2, y='101"...', 3, width='51" ...', 2, height='33"/...', 2) +SAX.endElementNs(rect, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 5) +SAX.startElementNs(ellipse, NULL, NULL, 0, 5, 0, cx='182"...', 3, cy='127"...', 3, major='37" ...', 2, minor='31" ...', 2, angle='90"/...', 2) +SAX.endElementNs(ellipse, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 5) +SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 78,...', 445) +SAX.endElementNs(polyline, NULL, NULL) +SAX.characters( + , 5) +SAX.startElementNs(g, NULL, NULL, 0, 0, 0) +SAX.characters( + , 6) +SAX.startElementNs(desc, NULL, NULL, 0, 0, 0) +SAX.characters( Java Font definition:Dialog 0, 30) +SAX.endElementNs(desc, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(g, NULL, NULL, 0, 0, 0) +SAX.characters( + , 6) +SAX.startElementNs(desc, NULL, NULL, 0, 0, 0) +SAX.characters( Java Font definition:Helvetic, 33) +SAX.endElementNs(desc, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15) +SAX.characters( + , 5) +SAX.startElementNs(text, NULL, NULL, 0, 2, 0, x='188"...', 3, y='36" ...', 2) +SAX.characters(this is text, 12) +SAX.endElementNs(text, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15) +SAX.characters( + , 5) +SAX.startElementNs(g, NULL, NULL, 0, 0, 0) +SAX.characters( + , 6) +SAX.startElementNs(desc, NULL, NULL, 0, 0, 0) +SAX.characters( Java Font definition:Dialog 0, 30) +SAX.endElementNs(desc, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(g, NULL, NULL, 0, 0, 0) +SAX.characters( + , 6) +SAX.startElementNs(desc, NULL, NULL, 0, 0, 0) +SAX.characters( Java Font definition:Helvetic, 35) +SAX.endElementNs(desc, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15) +SAX.characters( + , 5) +SAX.startElementNs(text, NULL, NULL, 0, 2, 0, x='176"...', 3, y='85" ...', 2) +SAX.characters(sadfsadfsad, 11) +SAX.endElementNs(text, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15) +SAX.characters( +, 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 5) +SAX.startElementNs(ellipse, NULL, NULL, 0, 5, 0, cx='208"...', 3, cy='180"...', 3, major='45" ...', 2, minor='31" ...', 2, angle='0"/>...', 1) +SAX.endElementNs(ellipse, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15) +SAX.characters( +, 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 5) +SAX.startElementNs(g, NULL, NULL, 0, 0, 0) +SAX.characters( + , 6) +SAX.startElementNs(desc, NULL, NULL, 0, 0, 0) +SAX.characters( Java Font definition:Dialog 7, 32) +SAX.endElementNs(desc, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 4) +SAX.startElementNs(g, NULL, NULL, 0, 0, 0) +SAX.characters( + , 6) +SAX.startElementNs(desc, NULL, NULL, 0, 0, 0) +SAX.characters( Java Font definition:Dialog 7, 32) +SAX.endElementNs(desc, NULL, NULL) +SAX.characters( + , 5) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(g, NULL, NULL) +SAX.endElementNs(svg, NULL, NULL) +SAX.endDocument() diff --git a/result/svg3 b/result/svg3 new file mode 100644 index 0000000..c4994b8 --- /dev/null +++ b/result/svg3 @@ -0,0 +1,723 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/result/svg3.rde b/result/svg3.rde new file mode 100644 index 0000000..e4642a9 --- /dev/null +++ b/result/svg3.rde @@ -0,0 +1,2164 @@ +0 1 svg 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +0 15 svg 0 0 diff --git a/result/svg3.rdr b/result/svg3.rdr new file mode 100644 index 0000000..e4642a9 --- /dev/null +++ b/result/svg3.rdr @@ -0,0 +1,2164 @@ +0 1 svg 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +1 1 g 0 0 +2 14 #text 0 1 + +2 1 path 1 0 +2 14 #text 0 1 + +1 15 g 0 0 +1 14 #text 0 1 + +0 15 svg 0 0 diff --git a/result/svg3.sax b/result/svg3.sax new file mode 100644 index 0000000..3bb3da3 --- /dev/null +++ b/result/svg3.sax @@ -0,0 +1,2407 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(svg) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.172') +SAX.characters( + , 3) +SAX.startElement(path, d='M77.696 284.285C77.696 284.285 77.797 286.179 76.973 286.16C76.149 286.141 59.695 238.066 39.167 240.309C39.167 240.309 56.95 232.956 77.696 284.285z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.172') +SAX.characters( + , 3) +SAX.startElement(path, d='M81.226 281.262C81.226 281.262 80.677 283.078 79.908 282.779C79.14 282.481 80.023 231.675 59.957 226.801C59.957 226.801 79.18 225.937 81.226 281.262z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.172') +SAX.characters( + , 3) +SAX.startElement(path, d='M108.716 323.59C108.716 323.59 110.352 324.55 109.882 325.227C109.411 325.904 60.237 313.102 50.782 331.459C50.782 331.459 54.461 312.572 108.716 323.59z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.172') +SAX.characters( + , 3) +SAX.startElement(path, d='M105.907 333.801C105.907 333.801 107.763 334.197 107.529 334.988C107.296 335.779 56.593 339.121 53.403 359.522C53.403 359.522 50.945 340.437 105.907 333.801z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.172') +SAX.characters( + , 3) +SAX.startElement(path, d='M101.696 328.276C101.696 328.276 103.474 328.939 103.128 329.687C102.782 330.435 52.134 326.346 46.002 346.064C46.002 346.064 46.354 326.825 101.696 328.276z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.172') +SAX.characters( + , 3) +SAX.startElement(path, d='M90.991 310.072C90.991 310.072 92.299 311.446 91.66 311.967C91.021 312.488 47.278 286.634 33.131 301.676C33.131 301.676 41.872 284.533 90.991 310.072z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.172') +SAX.characters( + , 3) +SAX.startElement(path, d='M83.446 314.263C83.446 314.263 84.902 315.48 84.326 316.071C83.75 316.661 37.362 295.922 25.008 312.469C25.008 312.469 31.753 294.447 83.446 314.263z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.172') +SAX.characters( + , 3) +SAX.startElement(path, d='M80.846 318.335C80.846 318.335 82.454 319.343 81.964 320.006C81.474 320.669 32.692 306.446 22.709 324.522C22.709 324.522 26.934 305.749 80.846 318.335z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.172') +SAX.characters( + , 3) +SAX.startElement(path, d='M91.58 318.949C91.58 318.949 92.702 320.48 92.001 320.915C91.3 321.35 51.231 290.102 35.273 303.207C35.273 303.207 46.138 287.326 91.58 318.949z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.172') +SAX.characters( + , 3) +SAX.startElement(path, d='M71.8 290C71.8 290 72.4 291.8 71.6 292C70.8 292.2 42.2 250.2 22.999 257.8C22.999 257.8 38.2 246 71.8 290z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.172') +SAX.characters( + , 3) +SAX.startElement(path, d='M72.495 296.979C72.495 296.979 73.47 298.608 72.731 298.975C71.993 299.343 35.008 264.499 17.899 276.061C17.899 276.061 30.196 261.261 72.495 296.979z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.172') +SAX.characters( + , 3) +SAX.startElement(path, d='M72.38 301.349C72.38 301.349 73.502 302.88 72.801 303.315C72.1 303.749 32.031 272.502 16.073 285.607C16.073 285.607 26.938 269.726 72.38 301.349z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M70.17 303.065C70.673 309.113 71.661 315.682 73.4 318.801C73.4 318.801 69.8 331.201 78.6 344.401C78.6 344.401 78.2 351.601 79.8 354.801C79.8 354.801 83.8 363.201 88.6 364.001C92.484 364.648 101.207 367.717 111.068 369.121C111.068 369.121 128.2 383.201 125 396.001C125 396.001 124.6 412.401 121 414.001C121 414.001 132.6 402.801 123 419.601L118.6 438.401C118.6 438.401 144.2 416.801 128.6 435.201L118.6 461.201C118.6 461.201 138.2 442.801 131 451.201L127.8 460.001C127.8 460.001 171 432.801 140.2 462.401C140.2 462.401 148.2 458.801 152.6 461.601C152.6 461.601 159.4 460.401 158.6 462.001C158.6 462.001 137.8 472.401 134.2 490.801C134.2 490.801 142.6 480.801 139.4 491.601L139.8 503.201C139.8 503.201 143.8 481.601 143.4 519.201C143.4 519.201 162.6 501.201 151 522.001L151 538.801C151 538.801 166.2 522.401 159.8 535.201C159.8 535.201 169.8 526.401 165.8 541.601C165.8 541.601 165 552.001 169.4 540.801C169.4 540.801 185.4 510.201 179.4 536.401C179.4 536.401 178.6 555.601 183.4 540.801C183.4 540.801 183.8 551.201 193 558.401C193 558.401 191.8 507.601 204.6 543.601L208.6 560.001C208.6 560.001 211.4 550.801 211 545.601C211 545.601 225.8 529.201 219 553.601C219 553.601 234.2 530.801 231 544.001C231 544.001 223.4 560.001 225 564.801C225 564.801 241.8 530.001 243 528.401C243 528.401 241 570.802 251.8 534.801C251.8 534.801 257.4 546.801 254.6 551.201C254.6 551.201 262.6 543.201 261.8 540.001C261.8 540.001 266.4 531.801 269.2 545.401C269.2 545.401 271 554.801 272.6 551.601C272.6 551.601 276.6 575.602 277.8 552.801C277.8 552.801 279.4 539.201 272.2 527.601C272.2 527.601 273 524.401 270.2 520.401C270.2 520.401 283.8 542.001 276.6 513.201C276.6 513.201 287.801 521.201 289.001 521.201C289.001 521.201 275.4 498.001 284.2 502.801C284.2 502.801 279 492.401 297.001 504.401C297.001 504.401 281 488.401 298.601 498.001C298.601 498.001 306.601 504.401 299.001 494.401C299.001 494.401 284.6 478.401 306.601 496.401C306.601 496.401 318.201 512.801 319.001 515.601C319.001 515.601 309.001 486.401 304.601 483.601C304.601 483.601 313.001 447.201 354.201 462.801C354.201 462.801 361.001 480.001 365.401 461.601C365.401 461.601 378.201 455.201 389.401 482.801C389.401 482.801 393.401 469.201 392.601 466.401C392.601 466.401 399.401 467.601 398.601 466.401C398.601 466.401 411.801 470.801 413.001 470.001C413.001 470.001 419.801 476.801 420.201 473.201C420.201 473.201 429.401 476.001 427.401 472.401C427.401 472.401 436.201 488.001 436.601 491.601L439.001 477.601L441.001 480.401C441.001 480.401 442.601 472.801 441.801 471.601C441.001 470.401 461.801 478.401 466.601 499.201L468.601 507.601C468.601 507.601 474.601 492.801 473.001 488.801C473.001 488.801 478.201 489.601 478.601 494.001C478.601 494.001 482.601 470.801 477.801 464.801C477.801 464.801 482.201 464.001 483.401 467.601L483.401 460.401C483.401 460.401 490.601 461.201 490.601 458.801C490.601 458.801 495.001 454.801 497.001 459.601C497.001 459.601 484.601 424.401 503.001 443.601C503.001 443.601 510.201 454.401 506.601 435.601C503.001 416.801 499.001 415.201 503.801 414.801C503.801 414.801 504.601 411.201 502.601 409.601C500.601 408.001 503.801 409.601 503.801 409.601C503.801 409.601 508.601 413.601 503.401 391.601C503.401 391.601 509.801 393.201 497.801 364.001C497.801 364.001 500.601 361.601 496.601 353.201C496.601 353.201 504.601 357.601 507.401 356.001C507.401 356.001 507.001 354.401 503.801 350.401C503.801 350.401 482.201 295.6 502.601 317.601C502.601 317.601 514.451 331.151 508.051 308.351C508.051 308.351 498.94 284.341 499.717 280.045L70.17 303.065z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cc7226; stroke:#000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M499.717 280.245C500.345 280.426 502.551 281.55 503.801 283.2C503.801 283.2 510.601 294 505.401 275.6C505.401 275.6 496.201 246.8 505.001 258C505.001 258 511.001 265.2 507.801 251.6C503.936 235.173 501.401 228.8 501.401 228.8C501.401 228.8 513.001 233.6 486.201 194L495.001 197.6C495.001 197.6 475.401 158 453.801 152.8L445.801 146.8C445.801 146.8 484.201 108.8 471.401 72C471.401 72 464.601 66.8 455.001 76C455.001 76 448.601 80.8 442.601 79.2C442.601 79.2 411.801 80.4 409.801 80.4C407.801 80.4 373.001 43.2 307.401 60.8C307.401 60.8 302.201 62.8 297.801 61.6C297.801 61.6 279.4 45.6 230.6 68.4C230.6 68.4 220.6 70.4 219 70.4C217.4 70.4 214.6 70.4 206.6 76.8C198.6 83.2 198.2 84 196.2 85.6C196.2 85.6 179.8 96.8 175 97.6C175 97.6 163.4 104 159 114L155.4 115.2C155.4 115.2 153.8 122.4 153.4 123.6C153.4 123.6 148.6 127.2 147.8 132.8C147.8 132.8 139 138.8 139.4 143.2C139.4 143.2 137.8 148.4 137 153.2C137 153.2 129.8 158 130.6 160.8C130.6 160.8 123 174.8 124.2 181.6C124.2 181.6 117.8 181.2 115 183.6C115 183.6 114.2 188.4 112.6 188.8C112.6 188.8 109.8 190 112.2 194C112.2 194 110.6 196.8 110.2 198.4C110.2 198.4 111 201.2 106.6 206.8C106.6 206.8 100.2 225.6 102.2 230.8C102.2 230.8 102.6 235.6 99.8 237.2C99.8 237.2 96.2 236.8 104.6 248.8C104.6 248.8 105.4 250 102.2 252.4C102.2 252.4 85 256 82.6 272.4C82.6 272.4 69 287.2 69 292.4C69 294.705 69.271 297.852 69.97 302.465C69.97 302.465 69.4 310.801 97 311.601C124.6 312.401 499.717 280.245 499.717 280.245z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cc7226') +SAX.characters( + , 3) +SAX.startElement(path, d='M84.4 302.6C59.4 263.2 73.8 319.601 73.8 319.601C82.6 354.001 212.2 316.401 212.2 316.401C212.2 316.401 381.001 286 392.201 282C403.401 278 498.601 284.4 498.601 284.4L493.001 267.6C428.201 221.2 409.001 244.4 395.401 240.4C381.801 236.4 384.201 246 381.001 246.8C377.801 247.6 338.601 222.8 332.201 223.6C325.801 224.4 300.459 200.649 315.401 232.4C331.401 266.4 257 271.6 240.2 260.4C223.4 249.2 247.4 278.8 247.4 278.8C265.8 298.8 231.4 282 231.4 282C197 269.2 173 294.8 169.8 295.6C166.6 296.4 161.8 299.6 161 293.2C160.2 286.8 152.69 270.099 121 296.4C101 313.001 87.2 291 87.2 291L84.4 302.6z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #e87f3a') +SAX.characters( + , 3) +SAX.startElement(path, d='M333.51 225.346C327.11 226.146 301.743 202.407 316.71 234.146C333.31 269.346 258.31 273.346 241.51 262.146C224.709 250.946 248.71 280.546 248.71 280.546C267.11 300.546 232.709 283.746 232.709 283.746C198.309 270.946 174.309 296.546 171.109 297.346C167.909 298.146 163.109 301.346 162.309 294.946C161.509 288.546 154.13 272.012 122.309 298.146C101.073 315.492 87.582 294.037 87.582 294.037L84.382 304.146C59.382 264.346 74.454 322.655 74.454 322.655C83.255 357.056 213.509 318.146 213.509 318.146C213.509 318.146 382.31 287.746 393.51 283.746C404.71 279.746 499.038 286.073 499.038 286.073L493.51 268.764C428.71 222.364 410.31 246.146 396.71 242.146C383.11 238.146 385.51 247.746 382.31 248.546C379.11 249.346 339.91 224.546 333.51 225.346z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ea8c4d') +SAX.characters( + , 3) +SAX.startElement(path, d='M334.819 227.091C328.419 227.891 303.685 203.862 318.019 235.891C334.219 272.092 259.619 275.092 242.819 263.892C226.019 252.692 250.019 282.292 250.019 282.292C268.419 302.292 234.019 285.492 234.019 285.492C199.619 272.692 175.618 298.292 172.418 299.092C169.218 299.892 164.418 303.092 163.618 296.692C162.818 290.292 155.57 273.925 123.618 299.892C101.145 317.983 87.964 297.074 87.964 297.074L84.364 305.692C60.564 266.692 75.109 325.71 75.109 325.71C83.909 360.11 214.819 319.892 214.819 319.892C214.819 319.892 383.619 289.492 394.819 285.492C406.019 281.492 499.474 287.746 499.474 287.746L494.02 269.928C429.219 223.528 411.619 247.891 398.019 243.891C384.419 239.891 386.819 249.491 383.619 250.292C380.419 251.092 341.219 226.291 334.819 227.091z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ec9961') +SAX.characters( + , 3) +SAX.startElement(path, d='M336.128 228.837C329.728 229.637 304.999 205.605 319.328 237.637C336.128 275.193 260.394 276.482 244.128 265.637C227.328 254.437 251.328 284.037 251.328 284.037C269.728 304.037 235.328 287.237 235.328 287.237C200.928 274.437 176.928 300.037 173.728 300.837C170.528 301.637 165.728 304.837 164.928 298.437C164.128 292.037 157.011 275.839 124.927 301.637C101.218 320.474 88.345 300.11 88.345 300.11L84.345 307.237C62.545 270.437 75.764 328.765 75.764 328.765C84.564 363.165 216.128 321.637 216.128 321.637C216.128 321.637 384.928 291.237 396.129 287.237C407.329 283.237 499.911 289.419 499.911 289.419L494.529 271.092C429.729 224.691 412.929 249.637 399.329 245.637C385.728 241.637 388.128 251.237 384.928 252.037C381.728 252.837 342.528 228.037 336.128 228.837z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #eea575') +SAX.characters( + , 3) +SAX.startElement(path, d='M337.438 230.583C331.037 231.383 306.814 207.129 320.637 239.383C337.438 278.583 262.237 278.583 245.437 267.383C228.637 256.183 252.637 285.783 252.637 285.783C271.037 305.783 236.637 288.983 236.637 288.983C202.237 276.183 178.237 301.783 175.037 302.583C171.837 303.383 167.037 306.583 166.237 300.183C165.437 293.783 158.452 277.752 126.237 303.383C101.291 322.965 88.727 303.146 88.727 303.146L84.327 308.783C64.527 273.982 76.418 331.819 76.418 331.819C85.218 366.22 217.437 323.383 217.437 323.383C217.437 323.383 386.238 292.983 397.438 288.983C408.638 284.983 500.347 291.092 500.347 291.092L495.038 272.255C430.238 225.855 414.238 251.383 400.638 247.383C387.038 243.383 389.438 252.983 386.238 253.783C383.038 254.583 343.838 229.783 337.438 230.583z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #f1b288') +SAX.characters( + , 3) +SAX.startElement(path, d='M338.747 232.328C332.347 233.128 306.383 209.677 321.947 241.128C341.147 279.928 263.546 280.328 246.746 269.128C229.946 257.928 253.946 287.528 253.946 287.528C272.346 307.528 237.946 290.728 237.946 290.728C203.546 277.928 179.546 303.528 176.346 304.328C173.146 305.128 168.346 308.328 167.546 301.928C166.746 295.528 159.892 279.665 127.546 305.128C101.364 325.456 89.109 306.183 89.109 306.183L84.309 310.328C66.309 277.128 77.073 334.874 77.073 334.874C85.873 369.274 218.746 325.128 218.746 325.128C218.746 325.128 387.547 294.728 398.747 290.728C409.947 286.728 500.783 292.764 500.783 292.764L495.547 273.419C430.747 227.019 415.547 253.128 401.947 249.128C388.347 245.128 390.747 254.728 387.547 255.528C384.347 256.328 345.147 231.528 338.747 232.328z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #f3bf9c') +SAX.characters( + , 3) +SAX.startElement(path, d='M340.056 234.073C333.655 234.873 307.313 211.613 323.255 242.873C343.656 282.874 264.855 282.074 248.055 270.874C231.255 259.674 255.255 289.274 255.255 289.274C273.655 309.274 239.255 292.474 239.255 292.474C204.855 279.674 180.855 305.274 177.655 306.074C174.455 306.874 169.655 310.074 168.855 303.674C168.055 297.274 161.332 281.578 128.855 306.874C101.436 327.947 89.491 309.219 89.491 309.219L84.291 311.874C68.291 281.674 77.727 337.929 77.727 337.929C86.527 372.329 220.055 326.874 220.055 326.874C220.055 326.874 388.856 296.474 400.056 292.474C411.256 288.474 501.22 294.437 501.22 294.437L496.056 274.583C431.256 228.183 416.856 254.874 403.256 250.874C389.656 246.873 392.056 256.474 388.856 257.274C385.656 258.074 346.456 233.273 340.056 234.073z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #f5ccb0') +SAX.characters( + , 3) +SAX.startElement(path, d='M341.365 235.819C334.965 236.619 307.523 213.944 324.565 244.619C346.565 284.219 266.164 283.819 249.364 272.619C232.564 261.419 256.564 291.019 256.564 291.019C274.964 311.019 240.564 294.219 240.564 294.219C206.164 281.419 182.164 307.019 178.964 307.819C175.764 308.619 170.964 311.819 170.164 305.419C169.364 299.019 162.773 283.492 130.164 308.619C101.509 330.438 89.873 312.256 89.873 312.256L84.273 313.419C69.872 285.019 78.382 340.983 78.382 340.983C87.182 375.384 221.364 328.619 221.364 328.619C221.364 328.619 390.165 298.219 401.365 294.219C412.565 290.219 501.656 296.11 501.656 296.11L496.565 275.746C431.765 229.346 418.165 256.619 404.565 252.619C390.965 248.619 393.365 258.219 390.165 259.019C386.965 259.819 347.765 235.019 341.365 235.819z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #f8d8c4') +SAX.characters( + , 3) +SAX.startElement(path, d='M342.674 237.565C336.274 238.365 308.832 215.689 325.874 246.365C347.874 285.965 267.474 285.565 250.674 274.365C233.874 263.165 257.874 292.765 257.874 292.765C276.274 312.765 241.874 295.965 241.874 295.965C207.473 283.165 183.473 308.765 180.273 309.565C177.073 310.365 172.273 313.565 171.473 307.165C170.673 300.765 164.214 285.405 131.473 310.365C101.582 332.929 90.255 315.293 90.255 315.293L84.255 314.965C70.654 288.564 79.037 344.038 79.037 344.038C87.837 378.438 222.673 330.365 222.673 330.365C222.673 330.365 391.474 299.965 402.674 295.965C413.874 291.965 502.093 297.783 502.093 297.783L497.075 276.91C432.274 230.51 419.474 258.365 405.874 254.365C392.274 250.365 394.674 259.965 391.474 260.765C388.274 261.565 349.074 236.765 342.674 237.565z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #fae5d7') +SAX.characters( + , 3) +SAX.startElement(path, d='M343.983 239.31C337.583 240.11 310.529 217.223 327.183 248.11C349.183 288.91 268.783 287.31 251.983 276.11C235.183 264.91 259.183 294.51 259.183 294.51C277.583 314.51 243.183 297.71 243.183 297.71C208.783 284.91 184.783 310.51 181.583 311.31C178.382 312.11 173.582 315.31 172.782 308.91C171.982 302.51 165.654 287.318 132.782 312.11C101.655 335.42 90.637 318.329 90.637 318.329L84.236 316.51C71.236 292.51 79.691 347.093 79.691 347.093C88.491 381.493 223.983 332.11 223.983 332.11C223.983 332.11 392.783 301.71 403.983 297.71C415.183 293.71 502.529 299.456 502.529 299.456L497.583 278.074C432.783 231.673 420.783 260.11 407.183 256.11C393.583 252.11 395.983 261.71 392.783 262.51C389.583 263.31 350.383 238.51 343.983 239.31z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #fcf2eb') +SAX.characters( + , 3) +SAX.startElement(path, d='M345.292 241.055C338.892 241.855 312.917 218.411 328.492 249.855C349.692 292.656 270.092 289.056 253.292 277.856C236.492 266.656 260.492 296.256 260.492 296.256C278.892 316.256 244.492 299.456 244.492 299.456C210.092 286.656 186.092 312.256 182.892 313.056C179.692 313.856 174.892 317.056 174.092 310.656C173.292 304.256 167.095 289.232 134.092 313.856C101.727 337.911 91.018 321.365 91.018 321.365L84.218 318.056C71.418 294.856 80.346 350.147 80.346 350.147C89.146 384.547 225.292 333.856 225.292 333.856C225.292 333.856 394.093 303.456 405.293 299.456C416.493 295.456 502.965 301.128 502.965 301.128L498.093 279.237C433.292 232.837 422.093 261.856 408.493 257.856C394.893 253.855 397.293 263.456 394.093 264.256C390.892 265.056 351.692 240.255 345.292 241.055z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff') +SAX.characters( + , 3) +SAX.startElement(path, d='M84.2 319.601C71.4 297.6 81 353.201 81 353.201C89.8 387.601 226.6 335.601 226.6 335.601C226.6 335.601 395.401 305.2 406.601 301.2C417.801 297.2 503.401 302.8 503.401 302.8L498.601 280.4C433.801 234 423.401 263.6 409.801 259.6C396.201 255.6 398.601 265.2 395.401 266C392.201 266.8 353.001 242 346.601 242.8C340.201 243.6 314.981 219.793 329.801 251.6C352.028 299.307 269.041 289.227 254.6 279.6C237.8 268.4 261.8 298 261.8 298C280.2 318.001 245.8 301.2 245.8 301.2C211.4 288.4 187.4 314.001 184.2 314.801C181 315.601 176.2 318.801 175.4 312.401C174.6 306 168.535 291.144 135.4 315.601C101.8 340.401 91.4 324.401 91.4 324.401L84.2 319.601z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M125.8 349.601C125.8 349.601 118.6 361.201 139.4 374.401C139.4 374.401 140.8 375.801 122.8 371.601C122.8 371.601 116.6 369.601 115 359.201C115 359.201 110.2 354.801 105.4 349.201C100.6 343.601 125.8 349.601 125.8 349.601z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M265.8 302C265.8 302 283.498 328.821 282.9 333.601C281.6 344.001 281.4 353.601 284.6 357.601C287.801 361.601 296.601 394.801 296.601 394.801C296.601 394.801 296.201 396.001 308.601 358.001C308.601 358.001 320.201 342.001 300.201 323.601C300.201 323.601 265 294.8 265.8 302z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M145.8 376.401C145.8 376.401 157 383.601 142.6 414.801L149 412.401C149 412.401 148.2 423.601 145 426.001L152.2 422.801C152.2 422.801 157 430.801 153 435.601C153 435.601 169.8 443.601 169 450.001C169 450.001 175.4 442.001 171.4 435.601C167.4 429.201 160.2 433.201 161 414.801L152.2 418.001C152.2 418.001 157.8 409.201 157.8 402.801L149.8 405.201C149.8 405.201 165.269 378.623 154.6 377.201C148.6 376.401 145.8 376.401 145.8 376.401z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M178.2 393.201C178.2 393.201 181 388.801 178.2 389.601C175.4 390.401 144.2 405.201 138.2 414.801C138.2 414.801 172.6 390.401 178.2 393.201z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M188.6 401.201C188.6 401.201 191.4 396.801 188.6 397.601C185.8 398.401 154.6 413.201 148.6 422.801C148.6 422.801 183 398.401 188.6 401.201z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M201.8 386.001C201.8 386.001 204.6 381.601 201.8 382.401C199 383.201 167.8 398.001 161.8 407.601C161.8 407.601 196.2 383.201 201.8 386.001z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M178.6 429.601C178.6 429.601 178.6 423.601 175.8 424.401C173 425.201 137 442.801 131 452.401C131 452.401 173 426.801 178.6 429.601z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M179.8 418.801C179.8 418.801 181 414.001 178.2 414.801C176.2 414.801 149.8 426.401 143.8 436.001C143.8 436.001 173.4 414.401 179.8 418.801z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M165.4 466.401L155.4 474.001C155.4 474.001 165.8 466.401 169.4 467.601C169.4 467.601 162.6 478.801 161.8 484.001C161.8 484.001 172.2 471.201 177.8 471.601C177.8 471.601 185.4 472.001 185.4 482.801C185.4 482.801 191 472.401 194.2 472.801C194.2 472.801 195.4 479.201 194.2 486.001C194.2 486.001 198.2 478.401 202.2 480.001C202.2 480.001 208.6 478.001 207.8 489.601C207.8 489.601 207.8 500.001 207 502.801C207 502.801 212.6 476.401 215 476.001C215 476.001 223 474.801 227.8 483.601C227.8 483.601 223.8 476.001 228.6 478.001C228.6 478.001 239.4 479.601 242.6 486.401C242.6 486.401 235.8 474.401 241.4 477.601C241.4 477.601 248.2 477.601 249.4 484.001C249.4 484.001 257.8 505.201 259.8 506.801C259.8 506.801 252.2 485.201 253.8 485.201C253.8 485.201 251.8 473.201 257 488.001C257 488.001 253.8 474.001 259.4 474.801C265 475.601 269.4 485.601 277.8 483.201C277.8 483.201 287.401 488.801 289.401 419.601L165.4 466.401z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M170.2 373.601C170.2 373.601 185 367.601 225 373.601C225 373.601 232.2 374.001 239 365.201C245.8 356.401 272.6 349.201 279 351.201L288.601 357.601L289.401 358.801C289.401 358.801 301.801 369.201 302.201 376.801C302.601 384.401 287.801 432.401 278.2 448.401C268.6 464.401 259 476.801 239.8 474.401C239.8 474.401 219 470.401 193.4 474.401C193.4 474.401 164.2 472.801 161.4 464.801C158.6 456.801 172.6 441.601 172.6 441.601C172.6 441.601 177 433.201 175.8 418.801C174.6 404.401 175 376.401 170.2 373.601z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #e5668c') +SAX.characters( + , 3) +SAX.startElement(path, d='M192.2 375.601C200.6 394.001 171 459.201 171 459.201C169 460.801 183.66 466.846 193.8 464.401C204.746 461.763 245 466.001 245 466.001C268.6 450.401 281.4 406.001 281.4 406.001C281.4 406.001 291.801 382.001 274.2 378.801C256.6 375.601 192.2 375.601 192.2 375.601z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #b23259') +SAX.characters( + , 3) +SAX.startElement(path, d='M190.169 406.497C193.495 393.707 195.079 381.906 192.2 375.601C192.2 375.601 254.6 382.001 265.8 361.201C270.041 353.326 284.801 384.001 284.4 393.601C284.4 393.601 221.4 408.001 206.6 396.801L190.169 406.497z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #a5264c') +SAX.characters( + , 3) +SAX.startElement(path, d='M194.6 422.801C194.6 422.801 196.6 430.001 194.2 434.001C194.2 434.001 192.6 434.801 191.4 435.201C191.4 435.201 192.6 438.801 198.6 440.401C198.6 440.401 200.6 444.801 203 445.201C205.4 445.601 210.2 451.201 214.2 450.001C218.2 448.801 229.4 444.801 229.4 444.801C229.4 444.801 235 441.601 243.8 445.201C243.8 445.201 246.175 444.399 246.6 440.401C247.1 435.701 250.2 432.001 252.2 430.001C254.2 428.001 263.8 415.201 262.6 414.801C261.4 414.401 194.6 422.801 194.6 422.801z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ff727f; stroke:#000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M190.2 374.401C190.2 374.401 187.4 396.801 190.6 405.201C193.8 413.601 193 415.601 192.2 419.601C191.4 423.601 195.8 433.601 201.4 439.601L213.4 441.201C213.4 441.201 228.6 437.601 237.8 440.401C237.8 440.401 246.794 441.744 250.2 426.801C250.2 426.801 255 420.401 262.2 417.601C269.4 414.801 276.6 373.201 272.6 365.201C268.6 357.201 254.2 352.801 238.2 368.401C222.2 384.001 220.2 367.201 190.2 374.401z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffcc; stroke:#000000; stroke-width:0.5') +SAX.characters( + , 3) +SAX.startElement(path, d='M191.8 449.201C191.8 449.201 191 447.201 186.6 446.801C186.6 446.801 164.2 443.201 155.8 430.801C155.8 430.801 149 425.201 153.4 436.801C153.4 436.801 163.8 457.201 170.6 460.001C170.6 460.001 187 464.001 191.8 449.201z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cc3f4c') +SAX.characters( + , 3) +SAX.startElement(path, d='M271.742 385.229C272.401 377.323 274.354 368.709 272.6 365.201C266.154 352.307 249.181 357.695 238.2 368.401C222.2 384.001 220.2 367.201 190.2 374.401C190.2 374.401 188.455 388.364 189.295 398.376C189.295 398.376 226.6 386.801 227.4 392.401C227.4 392.401 229 389.201 238.2 389.201C247.4 389.201 270.142 388.029 271.742 385.229z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='stroke:#a51926; stroke-width:2') +SAX.characters( + , 3) +SAX.startElement(path, d='M228.6 375.201C228.6 375.201 233.4 380.001 229.8 389.601C229.8 389.601 215.4 405.601 217.4 419.601') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffcc; stroke:#000000; stroke-width:0.5') +SAX.characters( + , 3) +SAX.startElement(path, d='M180.6 460.001C180.6 460.001 176.2 447.201 185 454.001C185 454.001 189.8 456.001 188.6 457.601C187.4 459.201 181.8 463.201 180.6 460.001z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffcc; stroke:#000000; stroke-width:0.5') +SAX.characters( + , 3) +SAX.startElement(path, d='M185.64 461.201C185.64 461.201 182.12 450.961 189.16 456.401C189.16 456.401 193.581 458.849 192.04 459.281C187.48 460.561 192.04 463.121 185.64 461.201z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffcc; stroke:#000000; stroke-width:0.5') +SAX.characters( + , 3) +SAX.startElement(path, d='M190.44 461.201C190.44 461.201 186.92 450.961 193.96 456.401C193.96 456.401 198.335 458.711 196.84 459.281C193.48 460.561 196.84 463.121 190.44 461.201z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffcc; stroke:#000000; stroke-width:0.5') +SAX.characters( + , 3) +SAX.startElement(path, d='M197.04 461.401C197.04 461.401 193.52 451.161 200.56 456.601C200.56 456.601 204.943 458.933 203.441 459.481C200.48 460.561 203.441 463.321 197.04 461.401z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffcc; stroke:#000000; stroke-width:0.5') +SAX.characters( + , 3) +SAX.startElement(path, d='M203.52 461.321C203.52 461.321 200 451.081 207.041 456.521C207.041 456.521 210.881 458.121 209.921 459.401C208.961 460.681 209.921 463.241 203.52 461.321z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffcc; stroke:#000000; stroke-width:0.5') +SAX.characters( + , 3) +SAX.startElement(path, d='M210.2 462.001C210.2 462.001 205.4 449.601 214.6 456.001C214.6 456.001 219.4 458.001 218.2 459.601C217 461.201 218.2 464.401 210.2 462.001z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='stroke:#a5264c; stroke-width:2') +SAX.characters( + , 3) +SAX.startElement(path, d='M181.8 444.801C181.8 444.801 195 442.001 201 445.201C201 445.201 207 446.401 208.2 446.001C209.4 445.601 212.6 445.201 212.6 445.201') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='stroke:#a5264c; stroke-width:2') +SAX.characters( + , 3) +SAX.startElement(path, d='M215.8 453.601C215.8 453.601 227.8 440.001 239.8 444.401C246.816 446.974 245.8 443.601 246.6 440.801C247.4 438.001 247.6 433.801 252.6 430.801') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffcc; stroke:#000000; stroke-width:0.5') +SAX.characters( + , 3) +SAX.startElement(path, d='M233 437.601C233 437.601 229 426.801 226.2 439.601C223.4 452.401 220.2 456.001 218.6 458.801C218.6 458.801 218.6 464.001 227 463.601C227 463.601 237.8 463.201 238.2 460.401C238.6 457.601 237 446.001 233 437.601z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='stroke:#a5264c; stroke-width:2') +SAX.characters( + , 3) +SAX.startElement(path, d='M247 444.801C247 444.801 250.6 442.401 253 443.601') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='stroke:#a5264c; stroke-width:2') +SAX.characters( + , 3) +SAX.startElement(path, d='M253.5 428.401C253.5 428.401 256.4 423.501 261.2 422.701') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #b2b2b2') +SAX.characters( + , 3) +SAX.startElement(path, d='M174.2 465.201C174.2 465.201 192.2 468.401 196.6 466.801C196.6 466.801 205.4 466.801 197 468.801C197 468.801 184.2 468.801 176.2 467.601C176.2 467.601 164.6 462.001 174.2 465.201z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffcc; stroke:#000000; stroke-width:0.5') +SAX.characters( + , 3) +SAX.startElement(path, d='M188.2 372.001C188.2 372.001 205.8 372.001 207.8 372.801C207.8 372.801 215 403.601 211.4 411.201C211.4 411.201 210.2 414.001 207.4 408.401C207.4 408.401 189 375.601 185.8 373.601C182.6 371.601 187 372.001 188.2 372.001z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffcc; stroke:#000000; stroke-width:0.5') +SAX.characters( + , 3) +SAX.startElement(path, d='M111.1 369.301C111.1 369.301 120 371.001 132.6 373.601C132.6 373.601 137.4 396.001 140.6 400.801C143.8 405.601 140.2 405.601 136.6 402.801C133 400.001 118.2 386.001 116.2 381.601C114.2 377.201 111.1 369.301 111.1 369.301z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffcc; stroke:#000000; stroke-width:0.5') +SAX.characters( + , 3) +SAX.startElement(path, d='M132.961 373.818C132.961 373.818 138.761 375.366 139.77 377.581C140.778 379.795 138.568 383.092 138.568 383.092C138.568 383.092 137.568 386.397 136.366 384.235C135.164 382.072 132.292 374.412 132.961 373.818z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M133 373.601C133 373.601 136.6 378.801 140.2 378.801C143.8 378.801 144.182 378.388 147 379.001C151.6 380.001 151.2 378.001 157.8 379.201C160.44 379.681 163 378.801 165.8 380.001C168.6 381.201 171.8 380.401 173 378.401C174.2 376.401 179 372.201 179 372.201C179 372.201 166.2 374.001 163.4 374.801C163.4 374.801 141 376.001 133 373.601z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffcc; stroke:#000000; stroke-width:0.5') +SAX.characters( + , 3) +SAX.startElement(path, d='M177.6 373.801C177.6 373.801 171.15 377.301 170.75 379.701C170.35 382.101 176 385.801 176 385.801C176 385.801 178.75 390.401 179.35 388.001C179.95 385.601 178.4 374.201 177.6 373.801z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffcc; stroke:#000000; stroke-width:0.5') +SAX.characters( + , 3) +SAX.startElement(path, d='M140.115 379.265C140.115 379.265 147.122 390.453 147.339 379.242C147.339 379.242 147.896 377.984 146.136 377.962C140.061 377.886 141.582 373.784 140.115 379.265z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffcc; stroke:#000000; stroke-width:0.5') +SAX.characters( + , 3) +SAX.startElement(path, d='M147.293 379.514C147.293 379.514 155.214 390.701 154.578 379.421C154.578 379.421 154.585 379.089 152.832 378.936C148.085 378.522 148.43 374.004 147.293 379.514z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffcc; stroke:#000000; stroke-width:0.5') +SAX.characters( + , 3) +SAX.startElement(path, d='M154.506 379.522C154.506 379.522 162.466 390.15 161.797 380.484C161.797 380.484 161.916 379.251 160.262 378.95C156.37 378.244 156.159 374.995 154.506 379.522z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffcc; stroke:#000000; stroke-width:0.5') +SAX.characters( + , 3) +SAX.startElement(path, d='M161.382 379.602C161.382 379.602 169.282 391.163 169.63 381.382C169.63 381.382 171.274 380.004 169.528 379.782C163.71 379.042 164.508 374.588 161.382 379.602z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #e5e5b2') +SAX.characters( + , 3) +SAX.startElement(path, d='M125.208 383.132L117.55 381.601C114.95 376.601 112.85 370.451 112.85 370.451C112.85 370.451 119.2 371.451 131.7 374.251C131.7 374.251 132.576 377.569 134.048 383.364L125.208 383.132z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #e5e5b2') +SAX.characters( + , 3) +SAX.startElement(path, d='M190.276 378.47C188.61 375.964 187.293 374.206 186.643 373.8C183.63 371.917 187.773 372.294 188.902 372.294C188.902 372.294 205.473 372.294 207.356 373.047C207.356 373.047 207.88 375.289 208.564 378.68C208.564 378.68 198.476 376.67 190.276 378.47z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cc7226') +SAX.characters( + , 3) +SAX.startElement(path, d='M243.88 240.321C271.601 244.281 297.121 208.641 298.881 198.96C300.641 189.28 290.521 177.4 290.521 177.4C291.841 174.32 287.001 160.24 281.721 151C276.441 141.76 260.54 142.734 243 141.76C227.16 140.88 208.68 164.2 207.36 165.96C206.04 167.72 212.2 206.001 213.52 211.721C214.84 217.441 212.2 243.841 212.2 243.841C246.44 234.741 216.16 236.361 243.88 240.321z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ea8e51') +SAX.characters( + , 3) +SAX.startElement(path, d='M208.088 166.608C206.792 168.336 212.84 205.921 214.136 211.537C215.432 217.153 212.84 243.073 212.84 243.073C245.512 234.193 216.728 235.729 243.944 239.617C271.161 243.505 296.217 208.513 297.945 199.008C299.673 189.504 289.737 177.84 289.737 177.84C291.033 174.816 286.281 160.992 281.097 151.92C275.913 142.848 260.302 143.805 243.08 142.848C227.528 141.984 209.384 164.88 208.088 166.608z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #efaa7c') +SAX.characters( + , 3) +SAX.startElement(path, d='M208.816 167.256C207.544 168.952 213.48 205.841 214.752 211.353C216.024 216.865 213.48 242.305 213.48 242.305C244.884 233.145 217.296 235.097 244.008 238.913C270.721 242.729 295.313 208.385 297.009 199.056C298.705 189.728 288.953 178.28 288.953 178.28C290.225 175.312 285.561 161.744 280.473 152.84C275.385 143.936 260.063 144.875 243.16 143.936C227.896 143.088 210.088 165.56 208.816 167.256z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #f4c6a8') +SAX.characters( + , 3) +SAX.startElement(path, d='M209.544 167.904C208.296 169.568 214.12 205.761 215.368 211.169C216.616 216.577 214.12 241.537 214.12 241.537C243.556 232.497 217.864 234.465 244.072 238.209C270.281 241.953 294.409 208.257 296.073 199.105C297.737 189.952 288.169 178.72 288.169 178.72C289.417 175.808 284.841 162.496 279.849 153.76C274.857 145.024 259.824 145.945 243.24 145.024C228.264 144.192 210.792 166.24 209.544 167.904z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #f9e2d3') +SAX.characters( + , 3) +SAX.startElement(path, d='M210.272 168.552C209.048 170.184 214.76 205.681 215.984 210.985C217.208 216.289 214.76 240.769 214.76 240.769C242.628 231.849 218.432 233.833 244.136 237.505C269.841 241.177 293.505 208.129 295.137 199.152C296.769 190.176 287.385 179.16 287.385 179.16C288.609 176.304 284.121 163.248 279.225 154.68C274.329 146.112 259.585 147.015 243.32 146.112C228.632 145.296 211.496 166.92 210.272 168.552z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff') +SAX.characters( + , 3) +SAX.startElement(path, d='M244.2 236.8C269.4 240.4 292.601 208 294.201 199.2C295.801 190.4 286.601 179.6 286.601 179.6C287.801 176.8 283.4 164 278.6 155.6C273.8 147.2 259.346 148.086 243.4 147.2C229 146.4 212.2 167.6 211 169.2C209.8 170.8 215.4 205.6 216.6 210.8C217.8 216 215.4 240 215.4 240C240.9 231.4 219 233.2 244.2 236.8z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M290.601 202.8C290.601 202.8 262.8 210.4 251.2 208.8C251.2 208.8 235.4 202.2 226.6 224C226.6 224 223 231.2 221 233.2C219 235.2 290.601 202.8 290.601 202.8z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M294.401 200.6C294.401 200.6 265.4 212.8 255.4 212.4C255.4 212.4 239 207.8 230.6 222.4C230.6 222.4 222.2 231.6 219 233.2C219 233.2 218.6 234.8 225 230.8L235.4 236C235.4 236 250.2 245.6 259.8 229.6C259.8 229.6 263.8 218.4 263.8 216.4C263.8 214.4 285 208.8 286.601 208.4C288.201 208 294.801 203.8 294.401 200.6z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #99cc32') +SAX.characters( + , 3) +SAX.startElement(path, d='M247 236.514C240.128 236.514 231.755 232.649 231.755 226.4C231.755 220.152 240.128 213.887 247 213.887C253.874 213.887 259.446 218.952 259.446 225.2C259.446 231.449 253.874 236.514 247 236.514z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #659900') +SAX.characters( + , 3) +SAX.startElement(path, d='M243.377 219.83C238.531 220.552 233.442 222.055 233.514 221.839C235.054 217.22 241.415 213.887 247 213.887C251.296 213.887 255.084 215.865 257.32 218.875C257.32 218.875 252.004 218.545 243.377 219.83z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff') +SAX.characters( + , 3) +SAX.startElement(path, d='M255.4 219.6C255.4 219.6 251 216.4 251 218.6C251 218.6 254.6 223 255.4 219.6z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M245.4 227.726C242.901 227.726 240.875 225.7 240.875 223.2C240.875 220.701 242.901 218.675 245.4 218.675C247.9 218.675 249.926 220.701 249.926 223.2C249.926 225.7 247.9 227.726 245.4 227.726z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cc7226') +SAX.characters( + , 3) +SAX.startElement(path, d='M141.4 214.4C141.4 214.4 138.2 193.2 140.6 188.8C140.6 188.8 151.4 178.8 151 175.2C151 175.2 150.6 157.2 149.4 156.4C148.2 155.6 140.6 149.6 134.6 156C134.6 156 124.2 174 125 180.4L125 182.4C125 182.4 117.4 182 115.8 184C115.8 184 114.6 189.2 113.4 189.6C113.4 189.6 110.6 192 112.6 194.8C112.6 194.8 110.6 197.2 111 201.2L118.6 205.2C118.6 205.2 120.6 219.6 131.4 224.8C136.236 227.129 139.4 220.4 141.4 214.4z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff') +SAX.characters( + , 3) +SAX.startElement(path, d='M140.4 212.56C140.4 212.56 137.52 193.48 139.68 189.52C139.68 189.52 149.4 180.52 149.04 177.28C149.04 177.28 148.68 161.08 147.6 160.36C146.52 159.64 139.68 154.24 134.28 160C134.28 160 124.92 176.2 125.64 181.96L125.64 183.76C125.64 183.76 118.8 183.4 117.36 185.2C117.36 185.2 116.28 189.88 115.2 190.24C115.2 190.24 112.68 192.4 114.48 194.92C114.48 194.92 112.68 197.08 113.04 200.68L119.88 204.28C119.88 204.28 121.68 217.24 131.4 221.92C135.752 224.015 138.6 217.96 140.4 212.56z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #eb955c') +SAX.characters( + , 3) +SAX.startElement(path, d='M148.95 157.39C147.86 156.53 140.37 150.76 134.52 157C134.52 157 124.38 174.55 125.16 180.79L125.16 182.74C125.16 182.74 117.75 182.35 116.19 184.3C116.19 184.3 115.02 189.37 113.85 189.76C113.85 189.76 111.12 192.1 113.07 194.83C113.07 194.83 111.12 197.17 111.51 201.07L118.92 204.97C118.92 204.97 120.87 219.01 131.4 224.08C136.114 226.35 139.2 219.79 141.15 213.94C141.15 213.94 138.03 193.27 140.37 188.98C140.37 188.98 150.9 179.23 150.51 175.72C150.51 175.72 150.12 158.17 148.95 157.39z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #f2b892') +SAX.characters( + , 3) +SAX.startElement(path, d='M148.5 158.38C147.52 157.46 140.14 151.92 134.44 158C134.44 158 124.56 175.1 125.32 181.18L125.32 183.08C125.32 183.08 118.1 182.7 116.58 184.6C116.58 184.6 115.44 189.54 114.3 189.92C114.3 189.92 111.64 192.2 113.54 194.86C113.54 194.86 111.64 197.14 112.02 200.94L119.24 204.74C119.24 204.74 121.14 218.42 131.4 223.36C135.994 225.572 139 219.18 140.9 213.48C140.9 213.48 137.86 193.34 140.14 189.16C140.14 189.16 150.4 179.66 150.02 176.24C150.02 176.24 149.64 159.14 148.5 158.38z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #f8dcc8') +SAX.characters( + , 3) +SAX.startElement(path, d='M148.05 159.37C147.18 158.39 139.91 153.08 134.36 159C134.36 159 124.74 175.65 125.48 181.57L125.48 183.42C125.48 183.42 118.45 183.05 116.97 184.9C116.97 184.9 115.86 189.71 114.75 190.08C114.75 190.08 112.16 192.3 114.01 194.89C114.01 194.89 112.16 197.11 112.53 200.81L119.56 204.51C119.56 204.51 121.41 217.83 131.4 222.64C135.873 224.794 138.8 218.57 140.65 213.02C140.65 213.02 137.69 193.41 139.91 189.34C139.91 189.34 149.9 180.09 149.53 176.76C149.53 176.76 149.16 160.11 148.05 159.37z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff') +SAX.characters( + , 3) +SAX.startElement(path, d='M140.4 212.46C140.4 212.46 137.52 193.48 139.68 189.52C139.68 189.52 149.4 180.52 149.04 177.28C149.04 177.28 148.68 161.08 147.6 160.36C146.84 159.32 139.68 154.24 134.28 160C134.28 160 124.92 176.2 125.64 181.96L125.64 183.76C125.64 183.76 118.8 183.4 117.36 185.2C117.36 185.2 116.28 189.88 115.2 190.24C115.2 190.24 112.68 192.4 114.48 194.92C114.48 194.92 112.68 197.08 113.04 200.68L119.88 204.28C119.88 204.28 121.68 217.24 131.4 221.92C135.752 224.015 138.6 217.86 140.4 212.46z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M137.3 206.2C137.3 206.2 115.7 196 114.8 195.2C114.8 195.2 123.9 203.4 124.7 203.4C125.5 203.4 137.3 206.2 137.3 206.2z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M120.2 200C120.2 200 138.6 203.6 138.6 208C138.6 210.912 138.357 224.331 133 222.8C124.6 220.4 128.2 206 120.2 200z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #99cc32') +SAX.characters( + , 3) +SAX.startElement(path, d='M128.6 203.8C128.6 203.8 137.578 205.274 138.6 208C139.2 209.6 139.863 217.908 134.4 219C129.848 219.911 127.618 209.69 128.6 203.8z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M214.595 246.349C214.098 244.607 215.409 244.738 217.2 244.2C219.2 243.6 231.4 239.8 232.2 237.2C233 234.6 246.2 239 246.2 239C248 239.8 252.4 242.4 252.4 242.4C257.2 243.6 263.8 244 263.8 244C266.2 245 269.6 247.8 269.6 247.8C284.2 258 296.601 250.8 296.601 250.8C316.601 244.2 310.601 227 310.601 227C307.601 218 310.801 214.6 310.801 214.6C311.001 210.8 318.201 217.2 318.201 217.2C320.801 221.4 321.601 226.4 321.601 226.4C329.601 237.6 326.201 219.8 326.201 219.8C326.401 218.8 323.601 215.2 323.601 214C323.601 212.8 321.801 209.4 321.801 209.4C318.801 206 321.201 199 321.201 199C323.001 185.2 320.801 187 320.801 187C319.601 185.2 310.401 195.2 310.401 195.2C308.201 198.6 302.201 200.2 302.201 200.2C299.401 202 296.001 200.6 296.001 200.6C293.401 200.2 287.801 207.2 287.801 207.2C290.601 207 293.001 211.4 295.401 211.6C297.801 211.8 299.601 209.2 301.201 208.6C302.801 208 305.601 213.8 305.601 213.8C306.001 216.4 300.401 221.2 300.401 221.2C300.001 225.8 298.401 224.2 298.401 224.2C295.401 223.6 294.201 227.4 293.201 232C292.201 236.6 288.001 237 288.001 237C286.401 244.4 285.2 241.4 285.2 241.4C285 235.8 279 241.6 279 241.6C277.8 243.6 273.2 241.4 273.2 241.4C266.4 239.4 268.8 237.4 268.8 237.4C270.6 235.2 281.8 237.4 281.8 237.4C284 235.8 276 231.8 276 231.8C275.4 230 276.4 225.6 276.4 225.6C277.6 222.4 284.4 216.8 284.4 216.8C293.801 215.6 291.001 214 291.001 214C284.801 208.8 279 216.4 279 216.4C276.8 222.6 259.4 237.6 259.4 237.6C254.6 241 257.2 234.2 253.2 237.6C249.2 241 228.6 232 228.6 232C217.038 230.807 214.306 246.549 210.777 243.429C210.777 243.429 216.195 251.949 214.595 246.349z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M409.401 80C409.401 80 383.801 88 381.001 106.8C381.001 106.8 378.601 129.6 399.001 147.2C399.001 147.2 399.401 153.6 401.401 156.8C401.401 156.8 399.801 161.6 418.601 154L445.801 145.6C445.801 145.6 452.201 143.2 457.401 134.4C462.601 125.6 477.801 106.8 474.201 81.6C474.201 81.6 475.401 70.4 469.401 70C469.401 70 461.001 68.4 453.801 76C453.801 76 447.001 79.2 444.601 78.8L409.401 80z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M464.022 79.01C464.022 79.01 466.122 70.08 461.282 74.92C461.282 74.92 454.242 80.64 446.761 80.64C446.761 80.64 432.241 82.84 427.841 96.04C427.841 96.04 423.881 122.88 431.801 128.6C431.801 128.6 436.641 136.08 443.681 129.48C450.722 122.88 466.222 92.65 464.022 79.01z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #323232') +SAX.characters( + , 3) +SAX.startElement(path, d='M463.648 79.368C463.648 79.368 465.738 70.624 460.986 75.376C460.986 75.376 454.074 80.992 446.729 80.992C446.729 80.992 432.473 83.152 428.153 96.112C428.153 96.112 424.265 122.464 432.041 128.08C432.041 128.08 436.793 135.424 443.705 128.944C450.618 122.464 465.808 92.76 463.648 79.368z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #666666') +SAX.characters( + , 3) +SAX.startElement(path, d='M463.274 79.726C463.274 79.726 465.354 71.168 460.69 75.832C460.69 75.832 453.906 81.344 446.697 81.344C446.697 81.344 432.705 83.464 428.465 96.184C428.465 96.184 424.649 122.048 432.281 127.56C432.281 127.56 436.945 134.768 443.729 128.408C450.514 122.048 465.394 92.87 463.274 79.726z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #999999') +SAX.characters( + , 3) +SAX.startElement(path, d='M462.9 80.084C462.9 80.084 464.97 71.712 460.394 76.288C460.394 76.288 453.738 81.696 446.665 81.696C446.665 81.696 432.937 83.776 428.777 96.256C428.777 96.256 425.033 121.632 432.521 127.04C432.521 127.04 437.097 134.112 443.753 127.872C450.41 121.632 464.98 92.98 462.9 80.084z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M462.526 80.442C462.526 80.442 464.586 72.256 460.098 76.744C460.098 76.744 453.569 82.048 446.633 82.048C446.633 82.048 433.169 84.088 429.089 96.328C429.089 96.328 425.417 121.216 432.761 126.52C432.761 126.52 437.249 133.456 443.777 127.336C450.305 121.216 464.566 93.09 462.526 80.442z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff') +SAX.characters( + , 3) +SAX.startElement(path, d='M462.151 80.8C462.151 80.8 464.201 72.8 459.801 77.2C459.801 77.2 453.401 82.4 446.601 82.4C446.601 82.4 433.401 84.4 429.401 96.4C429.401 96.4 425.801 120.8 433.001 126C433.001 126 437.401 132.8 443.801 126.8C450.201 120.8 464.151 93.2 462.151 80.8z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #992600') +SAX.characters( + , 3) +SAX.startElement(path, d='M250.6 284C250.6 284 230.2 264.8 222.2 264C222.2 264 187.8 260 173 278C173 278 190.6 257.6 218.2 263.2C218.2 263.2 196.6 258.8 184.2 262C184.2 262 167.4 262 157.8 276L155 280.8C155 280.8 159 266 177.4 260C177.4 260 200.2 255.2 211 260C211 260 189.4 253.2 179.4 255.2C179.4 255.2 149 252.8 136.2 279.2C136.2 279.2 140.2 264.8 155 257.6C155 257.6 168.6 248.8 189 251.6C189 251.6 203.4 254.8 208.6 257.2C213.8 259.6 212.6 256.8 204.2 252C204.2 252 198.6 242 184.6 242.4C184.6 242.4 141.8 246 131.4 258C131.4 258 145 246.8 155.4 244C155.4 244 177.8 236 186.2 236.8C186.2 236.8 211 237.8 218.6 233.8C218.6 233.8 207.4 238.8 210.6 242C213.8 245.2 220.6 252.8 220.6 254C220.6 255.2 244.8 277.3 248.4 281.7L250.6 284z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M389 478C389 478 373.5 441.5 361 432C361 432 387 448 390.5 466C390.5 466 390.5 476 389 478z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M436 485.5C436 485.5 409.5 430.5 391 406.5C391 406.5 434.5 444 439.5 470.5L440 476L437 473.5C437 473.5 436.5 482.5 436 485.5z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M492.5 437C492.5 437 430 377.5 428.5 375C428.5 375 489 441 492 448.5C492 448.5 490 439.5 492.5 437z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M304 480.5C304 480.5 323.5 428.5 342.5 451C342.5 451 357.5 461 357 464C357 464 353 457.5 335 458C335 458 316 455 304 480.5z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M494.5 353C494.5 353 449.5 324.5 442 323C430.193 320.639 491.5 352 496.5 362.5C496.5 362.5 498.5 360 494.5 353z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M343.801 459.601C343.801 459.601 364.201 457.601 371.001 450.801L375.401 454.401L393.001 416.001L396.601 421.201C396.601 421.201 411.001 406.401 410.201 398.401C409.401 390.401 423.001 404.401 423.001 404.401C423.001 404.401 422.201 392.801 429.401 399.601C429.401 399.601 427.001 384.001 435.401 392.001C435.401 392.001 424.864 361.844 447.401 387.601C453.001 394.001 448.601 387.201 448.601 387.201C448.601 387.201 422.601 339.201 444.201 353.601C444.201 353.601 446.201 330.801 445.001 326.401C443.801 322.001 441.801 299.6 437.001 294.4C432.201 289.2 437.401 287.6 443.001 292.8C443.001 292.8 431.801 268.8 445.001 280.8C445.001 280.8 441.401 265.6 437.001 262.8C437.001 262.8 431.401 245.6 446.601 256.4C446.601 256.4 442.201 244 439.001 240.8C439.001 240.8 427.401 213.2 434.601 218L439.001 221.6C439.001 221.6 432.201 207.6 438.601 212C445.001 216.4 445.001 216 445.001 216C445.001 216 423.801 182.8 444.201 200.4C444.201 200.4 436.042 186.482 432.601 179.6C432.601 179.6 413.801 159.2 428.201 165.6L433.001 167.2C433.001 167.2 424.201 157.2 416.201 155.6C408.201 154 418.601 147.6 425.001 149.6C431.401 151.6 447.001 159.2 447.001 159.2C447.001 159.2 459.801 178 463.801 178.4C463.801 178.4 443.801 170.8 449.801 178.8C449.801 178.8 464.201 192.8 457.001 192.4C457.001 192.4 451.001 199.6 455.801 208.4C455.801 208.4 437.342 190.009 452.201 215.6L459.001 232C459.001 232 434.601 207.2 445.801 229.2C445.801 229.2 463.001 252.8 465.001 253.2C467.001 253.6 471.401 262.4 471.401 262.4L467.001 260.4L472.201 269.2C472.201 269.2 461.001 257.2 467.001 270.4L472.601 284.8C472.601 284.8 452.201 262.8 465.801 292.4C465.801 292.4 449.401 287.2 458.201 304.4C458.201 304.4 456.601 320.401 457.001 325.601C457.401 330.801 458.601 359.201 454.201 367.201C449.801 375.201 460.201 394.401 462.201 398.401C464.201 402.401 467.801 413.201 459.001 404.001C450.201 394.801 454.601 400.401 456.601 409.201C458.601 418.001 464.601 433.601 463.801 439.201C463.801 439.201 462.601 440.401 459.401 436.801C459.401 436.801 444.601 414.001 446.201 428.401C446.201 428.401 445.001 436.401 441.801 445.201C441.801 445.201 438.601 456.001 438.601 447.201C438.601 447.201 435.401 430.401 432.601 438.001C429.801 445.601 426.201 451.601 423.401 454.001C420.601 456.401 415.401 433.601 414.201 444.001C414.201 444.001 402.201 431.601 397.401 448.001L385.801 464.401C385.801 464.401 385.401 452.001 384.201 458.001C384.201 458.001 354.201 464.001 343.801 459.601z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M309.401 102.8C309.401 102.8 297.801 94.8 293.801 95.2C289.801 95.6 321.401 86.4 362.601 114C362.601 114 367.401 116.8 371.001 116.4C371.001 116.4 374.201 118.8 371.401 122.4C371.401 122.4 362.601 132 373.801 143.2C373.801 143.2 392.201 150 386.601 141.2C386.601 141.2 397.401 145.2 399.801 149.2C402.201 153.2 401.001 149.2 401.001 149.2C401.001 149.2 394.601 142 388.601 136.8C388.601 136.8 383.401 134.8 380.601 126.4C377.801 118 375.401 108 379.801 104.8C379.801 104.8 375.801 109.2 376.601 105.2C377.401 101.2 381.001 97.6 382.601 97.2C384.201 96.8 400.601 81 407.401 80.6C407.401 80.6 398.201 82 395.201 81C392.201 80 365.601 68.6 359.601 67.4C359.601 67.4 342.801 60.8 354.801 62.8C354.801 62.8 390.601 66.6 408.801 79.8C408.801 79.8 401.601 71.4 383.201 64.4C383.201 64.4 361.001 51.8 325.801 56.8C325.801 56.8 308.001 60 300.201 61.8C300.201 61.8 297.601 61.2 297.001 60.8C296.401 60.4 284.6 51.4 257 58.4C257 58.4 240 63 231.4 67.8C231.4 67.8 216.2 69 212.6 72.2C212.6 72.2 194 86.8 192 87.6C190 88.4 178.6 96 177.8 96.4C177.8 96.4 202.4 89.8 204.8 87.4C207.2 85 224.6 82.4 227 83.8C229.4 85.2 237.8 84.6 228.2 85.2C228.2 85.2 303.801 100 304.601 102C305.401 104 309.401 102.8 309.401 102.8z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cc7226') +SAX.characters( + , 3) +SAX.startElement(path, d='M380.801 93.6C380.801 93.6 370.601 86.2 368.601 86.2C366.601 86.2 354.201 76 350.001 76.4C345.801 76.8 333.601 66.8 306.201 75C306.201 75 305.601 73 309.201 72.2C309.201 72.2 315.601 70 316.001 69.4C316.001 69.4 336.201 65.2 343.401 68.8C343.401 68.8 352.601 71.4 358.801 77.6C358.801 77.6 370.001 80.8 373.201 79.8C373.201 79.8 382.001 82 382.401 83.8C382.401 83.8 388.201 86.8 386.401 89.4C386.401 89.4 386.801 91 380.801 93.6z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cc7226') +SAX.characters( + , 3) +SAX.startElement(path, d='M368.33 91.491C369.137 92.123 370.156 92.221 370.761 93.03C370.995 93.344 370.706 93.67 370.391 93.767C369.348 94.084 368.292 93.514 367.15 94.102C366.748 94.309 366.106 94.127 365.553 93.978C363.921 93.537 362.092 93.512 360.401 94.2C358.416 93.071 356.056 93.655 353.975 92.654C353.917 92.627 353.695 92.973 353.621 92.946C350.575 91.801 346.832 92.084 344.401 89.8C341.973 89.388 339.616 88.926 337.188 88.246C335.37 87.737 333.961 86.748 332.341 85.916C330.964 85.208 329.507 84.686 327.973 84.314C326.11 83.862 324.279 83.974 322.386 83.454C322.293 83.429 322.101 83.773 322.019 83.746C321.695 83.638 321.405 83.055 321.234 83.108C319.553 83.63 318.065 82.658 316.401 83C315.223 81.776 313.495 82.021 311.949 81.579C308.985 80.731 305.831 82.001 302.801 81C306.914 79.158 311.601 80.39 315.663 78.321C317.991 77.135 320.653 78.237 323.223 77.477C323.71 77.333 324.401 77.131 324.801 77.8C324.935 77.665 325.117 77.426 325.175 77.454C327.625 78.611 329.94 79.885 332.422 80.951C332.763 81.097 333.295 80.865 333.547 81.067C335.067 82.283 337.01 82.18 338.401 83.4C340.099 82.898 341.892 83.278 343.621 82.654C343.698 82.627 343.932 82.968 343.965 82.946C345.095 82.198 346.25 82.469 347.142 82.773C347.48 82.888 348.143 83.135 348.448 83.209C349.574 83.485 350.43 83.965 351.609 84.148C351.723 84.166 351.908 83.826 351.98 83.854C353.103 84.292 354.145 84.236 354.801 85.4C354.936 85.265 355.101 85.027 355.183 85.054C356.21 85.392 356.859 86.147 357.96 86.388C358.445 86.494 359.057 87.12 359.633 87.296C362.025 88.027 363.868 89.556 366.062 90.451C366.821 90.761 367.697 90.995 368.33 91.491z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cc7226') +SAX.characters( + , 3) +SAX.startElement(path, d='M291.696 77.261C289.178 75.536 286.81 74.43 284.368 72.644C284.187 72.511 283.827 72.681 283.625 72.559C282.618 71.95 281.73 71.369 280.748 70.673C280.209 70.291 279.388 70.302 278.88 70.044C276.336 68.752 273.707 68.194 271.2 67C271.882 66.362 273.004 66.606 273.6 65.8C273.795 66.08 274.033 66.364 274.386 66.173C276.064 65.269 277.914 65.116 279.59 65.206C281.294 65.298 283.014 65.603 284.789 65.875C285.096 65.922 285.295 66.445 285.618 66.542C287.846 67.205 290.235 66.68 292.354 67.518C293.945 68.147 295.515 68.97 296.754 70.245C297.006 70.505 296.681 70.806 296.401 71C296.789 70.891 297.062 71.097 297.173 71.41C297.257 71.649 297.257 71.951 297.173 72.19C297.061 72.502 296.782 72.603 296.408 72.654C295.001 72.844 296.773 71.464 296.073 71.912C294.8 72.726 295.546 74.132 294.801 75.4C294.521 75.206 294.291 74.988 294.401 74.6C294.635 75.122 294.033 75.412 293.865 75.728C293.48 76.453 292.581 77.868 291.696 77.261z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cc7226') +SAX.characters( + , 3) +SAX.startElement(path, d='M259.198 84.609C256.044 83.815 252.994 83.93 249.978 82.654C249.911 82.626 249.688 82.973 249.624 82.946C248.258 82.352 247.34 81.386 246.264 80.34C245.351 79.452 243.693 79.839 242.419 79.352C242.095 79.228 241.892 78.716 241.591 78.677C240.372 78.52 239.445 77.571 238.4 77C240.736 76.205 243.147 76.236 245.609 75.852C245.722 75.834 245.867 76.155 246 76.155C246.136 76.155 246.266 75.934 246.4 75.8C246.595 76.08 246.897 76.406 247.154 76.152C247.702 75.612 248.258 75.802 248.798 75.842C248.942 75.852 249.067 76.155 249.2 76.155C249.336 76.155 249.467 75.844 249.6 75.844C249.736 75.845 249.867 76.155 250 76.155C250.136 76.155 250.266 75.934 250.4 75.8C251.092 76.582 251.977 76.028 252.799 76.207C253.837 76.434 254.104 77.582 255.178 77.88C259.893 79.184 264.03 81.329 268.393 83.416C268.7 83.563 268.91 83.811 268.8 84.2C269.067 84.2 269.38 84.112 269.57 84.244C270.628 84.976 271.669 85.524 272.366 86.622C272.582 86.961 272.253 87.368 272.02 87.316C267.591 86.321 263.585 85.713 259.198 84.609z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cc7226') +SAX.characters( + , 3) +SAX.startElement(path, d='M245.338 128.821C243.746 127.602 243.162 125.571 242.034 123.779C241.82 123.439 242.094 123.125 242.411 123.036C242.971 122.877 243.514 123.355 243.923 123.557C245.668 124.419 247.203 125.661 249.2 125.8C251.19 128.034 255.45 128.419 255.457 131.8C255.458 132.659 254.03 131.741 253.6 132.6C251.149 131.597 248.76 131.7 246.38 130.233C245.763 129.852 246.093 129.399 245.338 128.821z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cc7226') +SAX.characters( + , 3) +SAX.startElement(path, d='M217.8 76.244C217.935 76.245 224.966 76.478 224.949 76.592C224.904 76.901 217.174 77.95 216.81 77.78C216.646 77.704 209.134 80.134 209 80C209.268 79.865 217.534 76.244 217.8 76.244z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M233.2 86C233.2 86 218.4 87.8 214 89C209.6 90.2 191 97.8 188 99.8C188 99.8 174.6 105.2 157.6 125.2C157.6 125.2 165.2 121.8 167.4 119C167.4 119 181 106.4 180.8 109C180.8 109 193 100.4 192.4 102.6C192.4 102.6 216.8 91.4 214.8 94.6C214.8 94.6 236.4 90 235.4 92C235.4 92 254.2 96.4 251.4 96.6C251.4 96.6 245.6 97.8 252 101.4C252 101.4 248.6 105.8 243.2 101.8C237.8 97.8 240.8 100 235.8 101C235.8 101 233.2 101.8 228.6 97.8C228.6 97.8 223 93.2 214.2 96.8C214.2 96.8 183.6 109.4 181.6 110C181.6 110 178 112.8 175.6 116.4C175.6 116.4 169.8 120.8 166.8 122.2C166.8 122.2 154 133.8 152.8 135.2C152.8 135.2 149.4 140.4 148.6 140.8C148.6 140.8 155 137 157 135C157 135 171 125 176.4 124.2C176.4 124.2 180.8 121.2 181.6 119.8C181.6 119.8 196 110.6 200.2 110.6C200.2 110.6 209.4 115.8 211.8 108.8C211.8 108.8 217.6 107 223.2 108.2C223.2 108.2 226.4 105.6 225.6 103.4C225.6 103.4 227.2 101.6 228.2 105.4C228.2 105.4 231.6 109 236.4 107C236.4 107 240.4 106.8 238.4 109.2C238.4 109.2 234 113 222.2 113.2C222.2 113.2 209.8 113.8 193.4 121.4C193.4 121.4 163.6 131.8 154.4 142.2C154.4 142.2 148 151 142.6 152.2C142.6 152.2 136.8 153 130.8 160.4C130.8 160.4 140.6 154.6 149.6 154.6C149.6 154.6 153.6 152.2 149.8 155.8C149.8 155.8 146.2 163.4 147.8 168.8C147.8 168.8 147.2 174 146.4 175.6C146.4 175.6 138.6 188.4 138.6 190.8C138.6 193.2 139.8 203 140.2 203.6C140.6 204.2 139.2 202 143 204.4C146.8 206.8 149.6 208.4 150.4 211.2C151.2 214 148.4 205.8 148.2 204C148 202.2 143.8 195 144.6 192.6C144.6 192.6 145.6 193.6 146.4 195C146.4 195 145.8 194.4 146.4 190.8C146.4 190.8 147.2 185.6 148.6 182.4C150 179.2 152 175.4 152.4 174.6C152.8 173.8 152.8 168 154.2 170.6L157.6 173.2C157.6 173.2 154.8 170.6 157 168.4C157 168.4 156 162.8 157.8 160.2C157.8 160.2 164.8 151.8 166.4 150.8C168 149.8 166.6 150.2 166.6 150.2C166.6 150.2 172.6 146 166.8 147.6C166.8 147.6 162.8 149.2 159.8 149.2C159.8 149.2 152.2 151.2 156.2 147C160.2 142.8 170.2 137.4 174 137.6L174.8 139.2L186 136.8L184.8 137.6C184.8 137.6 184.6 137.4 188.8 137C193 136.6 198.8 138 200.2 136.2C201.6 134.4 205 133.4 204.6 134.8C204.2 136.2 204 138.2 204 138.2C204 138.2 209 132.4 208.4 134.6C207.8 136.8 199.6 142 198.2 148.2L208.6 140L212.2 137C212.2 137 215.8 139.2 216 137.6C216.2 136 220.8 130.2 222 130.4C223.2 130.6 225.2 127.8 225 130.4C224.8 133 232.4 138.4 232.4 138.4C232.4 138.4 235.6 136.6 237 138C238.4 139.4 242.6 118.2 242.6 118.2L267.6 107.6L311.201 104.2L294.201 97.4L233.2 86z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='stroke:#4c0000; stroke-width:2') +SAX.characters( + , 3) +SAX.startElement(path, d='M251.4 285C251.4 285 236.4 268.2 228 265.6C228 265.6 214.6 258.8 190 266.6') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='stroke:#4c0000; stroke-width:2') +SAX.characters( + , 3) +SAX.startElement(path, d='M224.8 264.2C224.8 264.2 199.6 256.2 184.2 260.4C184.2 260.4 165.8 262.4 157.4 276.2') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='stroke:#4c0000; stroke-width:2') +SAX.characters( + , 3) +SAX.startElement(path, d='M221.2 263C221.2 263 204.2 255.8 189.4 253.6C189.4 253.6 172.8 251 156.2 258.2C156.2 258.2 144 264.2 138.6 274.4') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='stroke:#4c0000; stroke-width:2') +SAX.characters( + , 3) +SAX.startElement(path, d='M222.2 263.4C222.2 263.4 206.8 252.4 205.8 251C205.8 251 198.8 240 185.8 239.6C185.8 239.6 164.4 240.4 147.2 248.4') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M220.895 254.407C222.437 255.87 249.4 284.8 249.4 284.8C284.6 321.401 256.6 287.2 256.6 287.2C249 282.4 239.8 263.6 239.8 263.6C238.6 260.8 253.8 270.8 253.8 270.8C257.8 271.6 271.4 290.8 271.4 290.8C264.6 288.4 269.4 295.6 269.4 295.6C272.2 297.6 292.601 313.201 292.601 313.201C296.201 317.201 300.201 318.801 300.201 318.801C314.201 313.601 307.801 326.801 307.801 326.801C310.201 333.601 315.801 322.001 315.801 322.001C327.001 305.2 310.601 307.601 310.601 307.601C280.6 310.401 273.8 294.4 273.8 294.4C271.4 292 280.2 294.4 280.2 294.4C288.601 296.4 273 282 273 282C275.4 282 284.6 288.8 284.6 288.8C295.001 298 297.001 296 297.001 296C315.001 287.2 325.401 294.8 325.401 294.8C327.401 296.4 321.801 303.2 323.401 308.401C325.001 313.601 329.801 326.001 329.801 326.001C327.401 327.601 327.801 338.401 327.801 338.401C344.601 361.601 335.001 359.601 335.001 359.601C319.401 359.201 334.201 366.801 334.201 366.801C337.401 368.801 346.201 376.001 346.201 376.001C343.401 374.801 341.801 380.001 341.801 380.001C346.601 384.001 343.801 388.801 343.801 388.801C337.801 390.001 336.601 394.001 336.601 394.001C343.401 402.001 333.401 402.401 333.401 402.401C337.001 406.801 332.201 418.801 332.201 418.801C327.401 418.801 321.001 424.401 321.001 424.401C323.401 429.201 313.001 434.801 313.001 434.801C304.601 436.401 307.401 443.201 307.401 443.201C299.401 449.201 297.001 465.201 297.001 465.201C296.201 475.601 293.801 478.801 299.001 476.801C304.201 474.801 303.401 462.401 303.401 462.401C298.601 446.801 341.401 430.801 341.401 430.801C345.401 429.201 346.201 424.001 346.201 424.001C348.201 424.401 357.001 432.001 357.001 432.001C364.601 443.201 365.001 434.001 365.001 434.001C366.201 430.401 364.601 424.401 364.601 424.401C370.601 402.801 356.601 396.401 356.601 396.401C346.601 362.801 360.601 371.201 360.601 371.201C363.401 376.801 374.201 382.001 374.201 382.001L377.801 379.601C376.201 374.801 384.601 368.801 384.601 368.801C387.401 375.201 393.401 367.201 393.401 367.201C397.001 342.801 409.401 357.201 409.401 357.201C413.401 358.401 414.601 351.601 414.601 351.601C418.201 341.201 414.601 327.601 414.601 327.601C418.201 327.201 427.801 333.201 427.801 333.201C430.601 329.601 421.401 312.801 425.401 315.201C429.401 317.601 433.801 319.201 433.801 319.201C434.601 317.201 424.601 304.801 424.601 304.801C420.201 302 415.001 281.6 415.001 281.6C422.201 285.2 412.201 270 412.201 270C412.201 266.8 418.201 255.6 418.201 255.6C417.401 248.8 418.201 249.2 418.201 249.2C421.001 250.4 429.001 252 422.201 245.6C415.401 239.2 423.001 234.4 423.001 234.4C427.401 231.6 413.801 232 413.801 232C408.601 227.6 409.001 223.6 409.001 223.6C417.001 225.6 402.601 211.2 400.201 207.6C397.801 204 407.401 198.8 407.401 198.8C420.601 195.2 409.001 192 409.001 192C389.401 192.4 400.201 181.6 400.201 181.6C406.201 182 404.601 179.6 404.601 179.6C399.401 178.4 389.801 172 389.801 172C385.801 168.4 389.401 169.2 389.401 169.2C406.201 170.4 377.401 159.2 377.401 159.2C385.401 159.2 367.401 148.8 367.401 148.8C365.401 147.2 362.201 139.6 362.201 139.6C356.201 134.4 351.401 127.6 351.401 127.6C351.001 123.2 346.201 118.4 346.201 118.4C334.601 104.8 329.001 105.2 329.001 105.2C314.201 101.6 309.001 102.4 309.001 102.4L256.2 106.8C229.8 119.6 237.6 140.6 237.6 140.6C244 149 253.2 145.2 253.2 145.2C257.8 139 269.4 141.2 269.4 141.2C289.801 144.4 287.201 140.8 287.201 140.8C284.801 136.2 268.6 130 268.4 129.4C268.2 128.8 259.4 125.4 259.4 125.4C256.4 124.2 252 115 252 115C248.8 111.6 264.6 117.4 264.6 117.4C263.4 118.4 270.8 122.4 270.8 122.4C288.201 121.4 298.801 132.2 298.801 132.2C309.601 148.8 309.801 140.6 309.801 140.6C312.601 131.2 300.801 110 300.801 110C301.201 108 309.401 114.6 309.401 114.6C310.801 112.6 311.601 118.4 311.601 118.4C311.801 120.8 315.601 128.8 315.601 128.8C318.401 141.8 322.001 134.4 322.001 134.4L326.601 143.8C328.001 146.4 322.001 154 322.001 154C321.801 156.8 322.601 156.6 317.001 164.2C311.401 171.8 314.801 176.2 314.801 176.2C313.401 182.8 322.201 182.4 322.201 182.4C324.801 184.6 328.201 184.6 328.201 184.6C330.001 186.6 332.401 186 332.401 186C334.001 182.2 340.201 184.2 340.201 184.2C341.601 181.8 349.801 181.4 349.801 181.4C350.801 178.8 351.201 177.2 354.601 176.6C358.001 176 333.401 133 333.401 133C339.801 132.2 331.601 119.8 331.601 119.8C329.401 113.2 340.801 127.8 343.001 129.2C345.201 130.6 346.201 132.8 344.601 132.6C343.001 132.4 341.201 134.6 342.601 134.8C344.001 135 357.001 150 360.401 160.2C363.801 170.4 369.801 174.4 376.001 180.4C382.201 186.4 381.401 210.6 381.401 210.6C381.001 219.4 387.001 230 387.001 230C389.001 233.8 384.801 252 384.801 252C382.801 254.2 384.201 255 384.201 255C385.201 256.2 392.001 269.4 392.001 269.4C390.201 269.2 393.801 272.8 393.801 272.8C399.001 278.8 392.601 275.8 392.601 275.8C386.601 274.2 393.601 284 393.601 284C394.801 285.8 385.801 281.2 385.801 281.2C376.601 280.6 388.201 287.8 388.201 287.8C396.801 295 385.401 290.6 385.401 290.6C380.801 288.8 384.001 295.6 384.001 295.6C387.201 297.2 404.401 304.2 404.401 304.2C404.801 308.001 401.801 313.001 401.801 313.001C402.201 317.001 400.001 320.401 400.001 320.401C398.801 328.601 398.201 329.401 398.201 329.401C394.001 329.601 386.601 343.401 386.601 343.401C384.801 346.001 374.601 358.001 374.601 358.001C372.601 365.001 354.601 357.801 354.601 357.801C348.001 361.201 350.001 357.801 350.001 357.801C349.601 355.601 354.401 349.601 354.401 349.601C361.401 347.001 358.801 336.201 358.801 336.201C362.801 334.801 351.601 332.001 351.801 330.801C352.001 329.601 357.801 328.201 357.801 328.201C365.801 326.201 361.401 323.801 361.401 323.801C360.801 319.801 363.801 314.201 363.801 314.201C375.401 313.401 363.801 297.2 363.801 297.2C353.001 289.6 352.001 283.8 352.001 283.8C364.601 275.6 356.401 263.2 356.601 259.6C356.801 256 358.001 234.4 358.001 234.4C356.001 228.2 353.001 214.6 353.001 214.6C355.201 209.4 362.601 196.8 362.601 196.8C365.401 192.6 374.201 187.8 372.001 184.8C369.801 181.8 362.001 183.6 362.001 183.6C354.201 182.2 354.801 187.4 354.801 187.4C353.201 188.4 352.401 193.4 352.401 193.4C351.68 201.333 342.801 207.6 342.801 207.6C331.601 213.8 340.801 217.8 340.801 217.8C346.801 224.4 337.001 224.6 337.001 224.6C326.001 222.8 334.201 233 334.201 233C345.001 245.8 342.001 248.6 342.001 248.6C331.801 249.6 344.401 258.8 344.401 258.8C344.401 258.8 343.601 256.8 343.801 258.6C344.001 260.4 347.001 264.6 347.801 266.6C348.601 268.6 344.601 268.8 344.601 268.8C345.201 278.4 329.801 274.2 329.801 274.2C329.801 274.2 329.801 274.2 328.201 274.4C326.601 274.6 315.401 273.8 309.601 271.6C303.801 269.4 297.001 269.4 297.001 269.4C297.001 269.4 293.001 271.2 285.4 271C277.8 270.8 269.8 273.6 269.8 273.6C265.4 273.2 274 268.8 274.2 269C274.4 269.2 280 263.6 272 264.2C250.203 265.835 239.4 255.6 239.4 255.6C237.4 254.2 234.8 251.4 234.8 251.4C224.8 249.4 236.2 263.8 236.2 263.8C237.4 265.2 236 266.2 236 266.2C235.2 264.6 227.4 259.2 227.4 259.2C224.589 258.227 223.226 256.893 220.895 254.407z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #4c0000') +SAX.characters( + , 3) +SAX.startElement(path, d='M197 242.8C197 242.8 208.6 248.4 211.2 251.2C213.8 254 227.8 265.4 227.8 265.4C227.8 265.4 222.4 263.4 219.8 261.6C217.2 259.8 206.4 251.6 206.4 251.6C206.4 251.6 202.6 245.6 197 242.8z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #99cc32') +SAX.characters( + , 3) +SAX.startElement(path, d='M138.991 211.603C139.328 211.455 138.804 208.743 138.6 208.2C137.578 205.474 128.6 204 128.6 204C128.373 205.365 128.318 206.961 128.424 208.599C128.424 208.599 133.292 214.118 138.991 211.603z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #659900') +SAX.characters( + , 3) +SAX.startElement(path, d='M138.991 211.403C138.542 211.561 138.976 208.669 138.8 208.2C137.778 205.474 128.6 203.9 128.6 203.9C128.373 205.265 128.318 206.861 128.424 208.499C128.424 208.499 132.692 213.618 138.991 211.403z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M134.6 211.546C133.975 211.546 133.469 210.406 133.469 209C133.469 207.595 133.975 206.455 134.6 206.455C135.225 206.455 135.732 207.595 135.732 209C135.732 210.406 135.225 211.546 134.6 211.546z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M134.6 209z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M89 309.601C89 309.601 83.4 319.601 108.2 313.601C108.2 313.601 122.2 312.401 124.6 310.001C125.8 310.801 134.166 313.734 137 314.401C143.8 316.001 152.2 306 152.2 306C152.2 306 156.8 295.5 159.6 295.5C162.4 295.5 159.2 297.1 159.2 297.1C159.2 297.1 152.6 307.201 153 308.801C153 308.801 147.8 328.801 131.8 329.601C131.8 329.601 115.65 330.551 117 336.401C117 336.401 125.8 334.001 128.2 336.401C128.2 336.401 139 336.001 131 342.401L124.2 354.001C124.2 354.001 124.34 357.919 114.2 354.401C104.4 351.001 94.1 338.101 94.1 338.101C94.1 338.101 78.15 323.551 89 309.601z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #e59999') +SAX.characters( + , 3) +SAX.startElement(path, d='M87.8 313.601C87.8 313.601 85.8 323.201 122.6 312.801C122.6 312.801 127 312.801 129.4 313.601C131.8 314.401 143.8 317.201 145.8 316.001C145.8 316.001 138.6 329.601 127 328.001C127 328.001 113.8 329.601 114.2 334.401C114.2 334.401 118.2 341.601 123 344.001C123 344.001 125.8 346.401 125.4 349.601C125 352.801 122.2 354.401 120.2 355.201C118.2 356.001 115 352.801 113.4 352.801C111.8 352.801 103.4 346.401 99 341.601C94.6 336.801 86.2 324.801 86.6 322.001C87 319.201 87.8 313.601 87.8 313.601z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #b26565') +SAX.characters( + , 3) +SAX.startElement(path, d='M91 331.051C93.6 335.001 96.8 339.201 99 341.601C103.4 346.401 111.8 352.801 113.4 352.801C115 352.801 118.2 356.001 120.2 355.201C122.2 354.401 125 352.801 125.4 349.601C125.8 346.401 123 344.001 123 344.001C119.934 342.468 117.194 338.976 115.615 336.653C115.615 336.653 115.8 339.201 110.6 338.401C105.4 337.601 100.2 334.801 98.6 331.601C97 328.401 94.6 326.001 96.2 329.601C97.8 333.201 100.2 336.801 101.8 337.201C103.4 337.601 103 338.801 100.6 338.401C98.2 338.001 95.4 337.601 91 332.401z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #992600') +SAX.characters( + , 3) +SAX.startElement(path, d='M88.4 310.001C88.4 310.001 90.2 296.4 91.4 292.4C91.4 292.4 90.6 285.6 93 281.4C95.4 277.2 97.4 271 100.4 265.6C103.4 260.2 103.6 256.2 107.6 254.6C111.6 253 117.6 244.4 120.4 243.4C123.2 242.4 123 243.2 123 243.2C123 243.2 129.8 228.4 143.4 232.4C143.4 232.4 127.2 229.6 143 220.2C143 220.2 138.2 221.3 141.5 214.3C143.701 209.632 143.2 216.4 132.2 228.2C132.2 228.2 127.2 236.8 122 239.8C116.8 242.8 104.8 249.8 103.6 253.6C102.4 257.4 99.2 263.2 97.2 264.8C95.2 266.4 92.4 270.6 92 274C92 274 90.8 278 89.4 279.2C88 280.4 87.8 283.6 87.8 285.6C87.8 287.6 85.8 290.4 86 292.8C86 292.8 86.8 311.801 86.4 313.801L88.4 310.001z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff') +SAX.characters( + , 3) +SAX.startElement(path, d='M79.8 314.601C79.8 314.601 77.8 313.201 73.4 319.201C73.4 319.201 80.7 352.201 80.7 353.601C80.7 353.601 81.8 351.501 80.5 344.301C79.2 337.101 78.3 324.401 78.3 324.401L79.8 314.601z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #992600') +SAX.characters( + , 3) +SAX.startElement(path, d='M101.4 254C101.4 254 83.8 257.2 84.2 286.4L83.4 311.201C83.4 311.201 82.2 285.6 81 284C79.8 282.4 83.8 271.2 80.6 277.2C80.6 277.2 66.6 291.2 74.6 312.401C74.6 312.401 76.1 315.701 73.1 311.101C73.1 311.101 68.5 298.5 69.6 292.1C69.6 292.1 69.8 289.9 71.7 287.1C71.7 287.1 80.3 275.4 83 273.1C83 273.1 84.8 258.7 100.2 253.5C100.2 253.5 105.9 251.2 101.4 254z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M240.8 187.8C241.46 187.446 241.451 186.476 242.031 186.303C243.18 185.959 243.344 184.892 243.862 184.108C244.735 182.789 244.928 181.256 245.51 179.765C245.782 179.065 245.809 178.11 245.496 177.45C244.322 174.969 243.62 172.52 242.178 170.094C241.91 169.644 241.648 168.85 241.447 168.252C240.984 166.868 239.727 165.877 238.867 164.557C238.579 164.116 239.104 163.191 238.388 163.107C237.491 163.002 236.042 162.422 235.809 163.448C235.221 166.035 236.232 168.558 237.2 171C236.418 171.692 236.752 172.613 236.904 173.38C237.614 176.986 236.416 180.338 235.655 183.812C235.632 183.916 235.974 184.114 235.946 184.176C234.724 186.862 233.272 189.307 231.453 191.688C230.695 192.68 229.823 193.596 229.326 194.659C228.958 195.446 228.55 196.412 228.8 197.4C225.365 200.18 223.115 204.025 220.504 207.871C220.042 208.551 220.333 209.76 220.884 210.029C221.697 210.427 222.653 209.403 223.123 208.557C223.512 207.859 223.865 207.209 224.356 206.566C224.489 206.391 224.31 205.972 224.445 205.851C227.078 203.504 228.747 200.568 231.2 198.2C233.15 197.871 234.687 196.873 236.435 195.86C236.743 195.681 237.267 195.93 237.557 195.735C239.31 194.558 239.308 192.522 239.414 190.612C239.464 189.728 239.66 188.411 240.8 187.8z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M231.959 183.334C232.083 183.257 231.928 182.834 232.037 182.618C232.199 182.294 232.602 182.106 232.764 181.782C232.873 181.566 232.71 181.186 232.846 181.044C235.179 178.597 235.436 175.573 234.4 172.6C235.424 171.98 235.485 170.718 235.06 169.871C234.207 168.171 234.014 166.245 233.039 164.702C232.237 163.433 230.659 162.189 229.288 163.492C228.867 163.892 228.546 164.679 228.824 165.391C228.888 165.554 229.173 165.7 229.146 165.782C229.039 166.106 228.493 166.33 228.487 166.602C228.457 168.098 227.503 169.609 228.133 170.938C228.905 172.567 229.724 174.424 230.4 176.2C229.166 178.316 230.199 180.765 228.446 182.642C228.31 182.788 228.319 183.174 228.441 183.376C228.733 183.862 229.139 184.268 229.625 184.56C229.827 184.681 230.175 184.683 230.375 184.559C230.953 184.197 231.351 183.71 231.959 183.334z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M294.771 173.023C296.16 174.815 296.45 177.61 294.401 179C294.951 182.309 298.302 180.33 300.401 179.8C300.292 179.412 300.519 179.068 300.802 179.063C301.859 179.048 302.539 178.016 303.601 178.2C304.035 176.643 305.673 175.941 306.317 174.561C308.043 170.866 307.452 166.593 304.868 163.347C304.666 163.093 304.883 162.576 304.759 162.214C304.003 160.003 301.935 159.688 300.001 159C298.824 155.125 298.163 151.094 296.401 147.4C294.787 147.15 294.089 145.411 292.752 144.691C291.419 143.972 290.851 145.551 290.892 146.597C290.899 146.802 291.351 147.026 291.181 147.391C291.105 147.555 290.845 147.666 290.845 147.8C290.846 147.935 291.067 148.066 291.201 148.2C290.283 149.02 288.86 149.497 288.565 150.642C287.611 154.352 290.184 157.477 291.852 160.678C292.443 161.813 291.707 163.084 290.947 164.292C290.509 164.987 290.617 166.114 290.893 166.97C291.645 169.301 293.236 171.04 294.771 173.023z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M257.611 191.409C256.124 193.26 252.712 195.829 255.629 197.757C255.823 197.886 256.193 197.89 256.366 197.756C258.387 196.191 260.39 195.288 262.826 194.706C262.95 194.677 263.224 195.144 263.593 194.983C265.206 194.28 267.216 194.338 268.4 193C272.167 193.224 275.732 192.108 279.123 190.8C280.284 190.352 281.554 189.793 282.755 189.291C284.131 188.715 285.335 187.787 286.447 186.646C286.58 186.51 286.934 186.6 287.201 186.6C287.161 185.737 288.123 185.61 288.37 184.988C288.462 184.756 288.312 184.36 288.445 184.258C290.583 182.628 291.503 180.61 290.334 178.233C290.049 177.655 289.8 177.037 289.234 176.561C288.149 175.65 287.047 176.504 286 176.2C285.841 176.828 285.112 176.656 284.726 176.854C283.867 177.293 282.534 176.708 281.675 177.146C280.313 177.841 279.072 178.01 277.65 178.387C277.338 178.469 276.56 178.373 276.4 179C276.266 178.866 276.118 178.632 276.012 178.654C274.104 179.05 272.844 179.264 271.543 180.956C271.44 181.089 270.998 180.91 270.839 181.045C269.882 181.853 269.477 183.087 268.376 183.759C268.175 183.882 267.823 183.714 267.629 183.843C266.983 184.274 266.616 184.915 265.974 185.362C265.645 185.591 265.245 185.266 265.277 185.01C265.522 183.063 266.175 181.276 265.6 179.4C267.677 176.88 270.194 174.931 272 172.2C272.015 170.034 272.707 167.888 272.594 165.811C272.584 165.618 272.296 164.885 272.17 164.538C271.858 163.684 272.764 162.618 271.92 161.894C270.516 160.691 269.224 161.567 268.4 163C266.562 163.39 264.496 164.083 262.918 162.849C261.911 162.062 261.333 161.156 260.534 160.1C259.549 158.798 259.884 157.362 259.954 155.798C259.96 155.67 259.645 155.534 259.645 155.4C259.646 155.265 259.866 155.134 260 155C259.294 154.374 259.019 153.316 258 153C258.305 151.908 257.629 151.024 256.758 150.722C254.763 150.031 253.086 151.943 251.194 152.016C250.68 152.035 250.213 150.997 249.564 150.672C249.132 150.456 248.428 150.423 248.066 150.689C247.378 151.193 246.789 151.307 246.031 151.512C244.414 151.948 243.136 153.042 241.656 153.897C240.171 154.754 239.216 156.191 238.136 157.511C237.195 158.663 237.059 161.077 238.479 161.577C240.322 162.227 241.626 159.524 243.592 159.85C243.904 159.901 244.11 160.212 244 160.6C244.389 160.709 244.607 160.48 244.8 160.2C245.658 161.219 246.822 161.556 247.76 162.429C248.73 163.333 250.476 162.915 251.491 163.912C253.02 165.414 252.461 168.095 254.4 169.4C253.814 170.713 253.207 171.99 252.872 173.417C252.59 174.623 253.584 175.82 254.795 175.729C256.053 175.635 256.315 174.876 256.8 173.8C257.067 174.067 257.536 174.364 257.495 174.58C257.038 176.967 256.011 178.96 255.553 181.391C255.494 181.708 255.189 181.91 254.8 181.8C254.332 185.949 250.28 188.343 247.735 191.508C247.332 192.01 247.328 193.259 247.737 193.662C249.14 195.049 251.1 193.503 252.8 193C253.013 191.794 253.872 190.852 255.204 190.908C255.46 190.918 255.695 190.376 256.019 190.246C256.367 190.108 256.869 190.332 257.155 190.134C258.884 188.939 260.292 187.833 262.03 186.644C262.222 186.513 262.566 186.672 262.782 186.564C263.107 186.402 263.294 186.015 263.617 185.83C263.965 185.63 264.207 185.92 264.4 186.2C263.754 186.549 263.75 187.506 263.168 187.708C262.393 187.976 261.832 188.489 261.158 188.936C260.866 189.129 260.207 188.881 260.103 189.06C259.505 190.088 258.321 190.526 257.611 191.409z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M202.2 142C202.2 142 192.962 139.128 181.8 164.8C181.8 164.8 179.4 170 177 172C174.6 174 163.4 177.6 161.4 181.6L151 197.6C151 197.6 165.8 181.6 169 179.2C169 179.2 177 170.8 173.8 177.6C173.8 177.6 159.8 188.4 161 197.6C161 197.6 155.4 212 154.6 214C154.6 214 170.6 182 173 180.8C175.4 179.6 176.6 179.6 175.4 183.2C174.2 186.8 173.8 203.2 171 205.2C171 205.2 179 184.8 178.2 181.6C178.2 181.6 181.4 178 183.8 183.2L182.6 199.2L187 211.2C187 211.2 184.6 200 186.2 184.4C186.2 184.4 184.2 174 188.2 179.6C192.2 185.2 201.8 191.2 201.8 196C201.8 196 196.6 178.4 187.4 173.6L183.4 179.6L182.2 177.6C182.2 177.6 178.6 176.8 183 170C187.4 163.2 187 162.4 187 162.4C187 162.4 193.4 169.6 195 169.6C195 169.6 208.2 162 209.4 186.4C209.4 186.4 216.2 172 207 165.2C207 165.2 192.2 163.2 193.4 158L200.6 145.6C204.2 140.4 202.6 143.2 202.6 143.2z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M182.2 158.4C182.2 158.4 169.4 158.4 166.2 163.6L159 173.2C159 173.2 176.2 163.2 180.2 162C184.2 160.8 182.2 158.4 182.2 158.4z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M142.2 164.8C142.2 164.8 140.2 166 139.8 168.8C139.4 171.6 137 172 137.8 174.8C138.6 177.6 140.6 180 140.6 176C140.6 172 142.2 170 143 168.8C143.8 167.6 145.4 163.2 142.2 164.8z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M133.4 226C133.4 226 125 222 121.8 218.4C118.6 214.8 119.052 219.966 114.2 219.6C108.353 219.159 109.4 203.2 109.4 203.2L105.4 210.8C105.4 210.8 104.2 225.2 112.2 222.8C116.107 221.628 117.4 223.2 115.8 224C114.2 224.8 121.4 225.2 118.6 226.8C115.8 228.4 130.2 223.2 127.8 233.6L133.4 226z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M120.8 240.4C120.8 240.4 105.4 244.8 101.8 235.2C101.8 235.2 97 237.6 99.2 240.6C101.4 243.6 102.6 244 102.6 244C102.6 244 108 245.2 107.4 246C106.8 246.8 104.4 250.2 104.4 250.2C104.4 250.2 114.6 244.2 120.8 240.4z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff') +SAX.characters( + , 3) +SAX.startElement(path, d='M349.201 318.601C348.774 320.735 347.103 321.536 345.201 322.201C343.284 321.243 340.686 318.137 338.801 320.201C338.327 319.721 337.548 319.661 337.204 318.999C336.739 318.101 337.011 317.055 336.669 316.257C336.124 314.985 335.415 313.619 335.601 312.201C337.407 311.489 338.002 309.583 337.528 307.82C337.459 307.563 337.03 307.366 337.23 307.017C337.416 306.694 337.734 306.467 338.001 306.2C337.866 306.335 337.721 306.568 337.61 306.548C337 306.442 337.124 305.805 337.254 305.418C337.839 303.672 339.853 303.408 341.201 304.6C341.457 304.035 341.966 304.229 342.401 304.2C342.351 303.621 342.759 303.094 342.957 302.674C343.475 301.576 345.104 302.682 345.901 302.07C346.977 301.245 348.04 300.546 349.118 301.149C350.927 302.162 352.636 303.374 353.835 305.115C354.41 305.949 354.65 307.23 354.592 308.188C354.554 308.835 353.173 308.483 352.83 309.412C352.185 311.16 354.016 311.679 354.772 313.017C354.97 313.366 354.706 313.67 354.391 313.768C353.98 313.896 353.196 313.707 353.334 314.16C354.306 317.353 351.55 318.031 349.201 318.601z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff') +SAX.characters( + , 3) +SAX.startElement(path, d='M339.6 338.201C339.593 336.463 337.992 334.707 339.201 333.001C339.336 333.135 339.467 333.356 339.601 333.356C339.736 333.356 339.867 333.135 340.001 333.001C341.496 335.217 345.148 336.145 345.006 338.991C344.984 339.438 343.897 340.356 344.801 341.001C342.988 342.349 342.933 344.719 342.001 346.601C340.763 346.315 339.551 345.952 338.401 345.401C338.753 343.915 338.636 342.231 339.456 340.911C339.89 340.213 339.603 339.134 339.6 338.201z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M173.4 329.201C173.4 329.201 156.542 339.337 170.6 324.001C179.4 314.401 189.4 308.801 189.4 308.801C189.4 308.801 199.8 304.4 203.4 303.2C207 302 222.2 296.8 225.4 296.4C228.6 296 238.2 292 245 296C251.8 300 259.8 304.4 259.8 304.4C259.8 304.4 243.4 296 239.8 298.4C236.2 300.8 229 300.4 223 303.6C223 303.6 208.2 308.001 205 310.001C201.8 312.001 191.4 323.601 189.8 322.801C188.2 322.001 190.2 321.601 191.4 318.801C192.6 316.001 190.6 314.401 182.6 320.801C174.6 327.201 173.4 329.201 173.4 329.201z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M180.805 323.234C180.805 323.234 182.215 310.194 190.693 311.859C190.693 311.859 198.919 307.689 201.641 305.721C201.641 305.721 209.78 304.019 211.09 303.402C229.569 294.702 244.288 299.221 244.835 298.101C245.381 296.982 265.006 304.099 268.615 308.185C269.006 308.628 258.384 302.588 248.686 300.697C240.413 299.083 218.811 300.944 207.905 306.48C204.932 307.989 195.987 313.773 193.456 313.662C190.925 313.55 180.805 323.234 180.805 323.234z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M177 348.801C177 348.801 161.8 346.401 178.6 344.801C178.6 344.801 196.6 342.801 200.6 337.601C200.6 337.601 214.2 328.401 217 328.001C219.8 327.601 249.8 320.401 250.2 318.001C250.6 315.601 256.2 315.601 257.8 316.401C259.4 317.201 258.6 318.401 255.8 319.201C253 320.001 221.8 336.401 215.4 337.601C209 338.801 197.4 346.401 192.6 347.601C187.8 348.801 177 348.801 177 348.801z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M196.52 341.403C196.52 341.403 187.938 340.574 196.539 339.755C196.539 339.755 205.355 336.331 207.403 333.668C207.403 333.668 214.367 328.957 215.8 328.753C217.234 328.548 231.194 324.861 231.399 323.633C231.604 322.404 265.67 309.823 270.09 313.013C273.001 315.114 263.1 313.437 253.466 317.847C252.111 318.467 218.258 333.054 214.981 333.668C211.704 334.283 205.765 338.174 203.307 338.788C200.85 339.403 196.52 341.403 196.52 341.403z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M188.6 343.601C188.6 343.601 193.8 343.201 192.6 344.801C191.4 346.401 189 345.601 189 345.601L188.6 343.601z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M181.4 345.201C181.4 345.201 186.6 344.801 185.4 346.401C184.2 348.001 181.8 347.201 181.8 347.201L181.4 345.201z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M171 346.801C171 346.801 176.2 346.401 175 348.001C173.8 349.601 171.4 348.801 171.4 348.801L171 346.801z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M163.4 347.601C163.4 347.601 168.6 347.201 167.4 348.801C166.2 350.401 163.8 349.601 163.8 349.601L163.4 347.601z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M201.8 308.001C201.8 308.001 206.2 308.001 205 309.601C203.8 311.201 200.6 310.801 200.6 310.801L201.8 308.001z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M191.8 313.601C191.8 313.601 198.306 311.46 195.8 314.801C194.6 316.401 192.2 315.601 192.2 315.601L191.8 313.601z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M180.6 318.401C180.6 318.401 185.8 318.001 184.6 319.601C183.4 321.201 181 320.401 181 320.401L180.6 318.401z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M173 324.401C173 324.401 178.2 324.001 177 325.601C175.8 327.201 173.4 326.401 173.4 326.401L173 324.401z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M166.2 329.201C166.2 329.201 171.4 328.801 170.2 330.401C169 332.001 166.6 331.201 166.6 331.201L166.2 329.201z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M205.282 335.598C205.282 335.598 212.203 335.066 210.606 337.195C209.009 339.325 205.814 338.26 205.814 338.26L205.282 335.598z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M215.682 330.798C215.682 330.798 222.603 330.266 221.006 332.395C219.409 334.525 216.214 333.46 216.214 333.46L215.682 330.798z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M226.482 326.398C226.482 326.398 233.403 325.866 231.806 327.995C230.209 330.125 227.014 329.06 227.014 329.06L226.482 326.398z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M236.882 321.598C236.882 321.598 243.803 321.066 242.206 323.195C240.609 325.325 237.414 324.26 237.414 324.26L236.882 321.598z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M209.282 303.598C209.282 303.598 216.203 303.066 214.606 305.195C213.009 307.325 209.014 307.06 209.014 307.06L209.282 303.598z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M219.282 300.398C219.282 300.398 226.203 299.866 224.606 301.995C223.009 304.125 218.614 303.86 218.614 303.86L219.282 300.398z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M196.6 340.401C196.6 340.401 201.8 340.001 200.6 341.601C199.4 343.201 197 342.401 197 342.401L196.6 340.401z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #992600') +SAX.characters( + , 3) +SAX.startElement(path, d='M123.4 241.2C123.4 241.2 119 250 118.6 253.2C118.6 253.2 119.4 244.4 120.6 242.4C121.8 240.4 123.4 241.2 123.4 241.2z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #992600') +SAX.characters( + , 3) +SAX.startElement(path, d='M105 255.2C105 255.2 101.8 269.6 102.2 272.4C102.2 272.4 101 260.8 101.4 259.6C101.8 258.4 105 255.2 105 255.2z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M125.8 180.6L125.6 183.8L123.4 184C123.4 184 137.6 196.6 138.2 204.2C138.2 204.2 139 196 125.8 180.6z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M129.784 181.865C129.353 181.449 129.572 180.704 129.164 180.444C128.355 179.928 130.462 179.871 130.234 179.155C129.851 177.949 130.038 177.928 129.916 176.652C129.859 176.054 130.447 174.514 130.832 174.074C132.278 172.422 130.954 169.49 132.594 167.939C132.898 167.65 133.274 167.098 133.559 166.68C134.218 165.717 135.402 165.229 136.352 164.401C136.67 164.125 136.469 163.298 137.038 163.39C137.752 163.505 138.993 163.375 138.948 164.216C138.835 166.336 137.506 168.056 136.226 169.724C136.677 170.428 136.219 171.063 135.935 171.62C134.6 174.24 134.789 177.081 134.615 179.921C134.61 180.006 134.303 180.084 134.311 180.137C134.664 182.472 135.248 184.671 136.127 186.9C136.493 187.83 136.964 188.725 137.114 189.652C137.225 190.338 137.328 191.171 136.92 191.876C138.955 194.766 137.646 197.417 138.815 200.948C139.022 201.573 140.714 203.487 140.251 203.326C137.738 202.455 137.626 202.057 137.449 201.304C137.303 200.681 136.973 199.304 136.736 198.702C136.672 198.538 136.501 196.654 136.423 196.532C134.91 194.15 136.268 194.326 134.898 191.968C133.47 191.288 132.504 190.184 131.381 189.022C131.183 188.818 132.326 188.094 132.145 187.881C131.053 186.592 129.9 185.825 130.236 184.332C130.391 183.642 130.528 182.585 129.784 181.865z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M126.2 183.6C126.2 183.6 126.6 190.4 129 192C131.4 193.6 130.2 192.8 127 191.6C123.8 190.4 125 189.6 125 189.6C125 189.6 122.2 190 124.6 192C127 194 130.6 196.4 129 196.4C127.4 196.4 119.8 192.4 119.8 189.6C119.8 186.8 118.8 182.7 118.8 182.7C118.8 182.7 119.9 181.9 124.7 182C124.7 182 126.1 182.7 126.2 183.6z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M125.4 202.2C125.4 202.2 116.88 199.409 98.4 202.8C98.4 202.8 107.431 200.722 126.2 203C136.5 204.25 125.4 202.2 125.4 202.2z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M127.498 202.129C127.498 202.129 119.252 198.611 100.547 200.392C100.547 200.392 109.725 199.103 128.226 202.995C138.38 205.131 127.498 202.129 127.498 202.129z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M129.286 202.222C129.286 202.222 121.324 198.101 102.539 198.486C102.539 198.486 111.787 197.882 129.948 203.14C139.914 206.025 129.286 202.222 129.286 202.222z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M130.556 202.445C130.556 202.445 123.732 198.138 106.858 197.04C106.858 197.04 115.197 197.21 131.078 203.319C139.794 206.672 130.556 202.445 130.556 202.445z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M245.84 212.961C245.84 212.961 244.91 213.605 245.124 212.424C245.339 211.243 273.547 198.073 277.161 198.323C277.161 198.323 246.913 211.529 245.84 212.961z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M242.446 213.6C242.446 213.6 241.57 214.315 241.691 213.121C241.812 211.927 268.899 196.582 272.521 196.548C272.521 196.548 243.404 212.089 242.446 213.6z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M239.16 214.975C239.16 214.975 238.332 215.747 238.374 214.547C238.416 213.348 258.233 197.851 268.045 195.977C268.045 195.977 250.015 204.104 239.16 214.975z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M236.284 216.838C236.284 216.838 235.539 217.532 235.577 216.453C235.615 215.373 253.449 201.426 262.28 199.74C262.28 199.74 246.054 207.054 236.284 216.838z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M204.6 364.801C204.6 364.801 189.4 362.401 206.2 360.801C206.2 360.801 224.2 358.801 228.2 353.601C228.2 353.601 241.8 344.401 244.6 344.001C247.4 343.601 263.8 340.001 264.2 337.601C264.6 335.201 270.6 332.801 272.2 333.601C273.8 334.401 273.8 343.601 271 344.401C268.2 345.201 249.4 352.401 243 353.601C236.6 354.801 225 362.401 220.2 363.601C215.4 364.801 204.6 364.801 204.6 364.801z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M277.6 327.401C277.6 327.401 274.6 329.001 273.4 331.601C273.4 331.601 267 342.201 252.8 345.401C252.8 345.401 229.8 354.401 222 356.401C222 356.401 208.6 361.401 201.2 360.601C201.2 360.601 194.2 360.801 200.4 362.401C200.4 362.401 220.6 360.401 224 358.601C224 358.601 239.6 353.401 242.6 350.801C245.6 348.201 263.8 343.201 266 341.201C268.2 339.201 278 330.801 277.6 327.401z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M218.882 358.911C218.882 358.911 224.111 358.685 222.958 360.234C221.805 361.784 219.357 360.91 219.357 360.91L218.882 358.911z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M211.68 360.263C211.68 360.263 216.908 360.037 215.756 361.586C214.603 363.136 212.155 362.263 212.155 362.263L211.68 360.263z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M201.251 361.511C201.251 361.511 206.48 361.284 205.327 362.834C204.174 364.383 201.726 363.51 201.726 363.51L201.251 361.511z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M193.617 362.055C193.617 362.055 198.846 361.829 197.693 363.378C196.54 364.928 194.092 364.054 194.092 364.054L193.617 362.055z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M235.415 351.513C235.415 351.513 242.375 351.212 240.84 353.274C239.306 355.336 236.047 354.174 236.047 354.174L235.415 351.513z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M245.73 347.088C245.73 347.088 251.689 343.787 251.155 348.849C250.885 351.405 246.362 349.749 246.362 349.749L245.73 347.088z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M254.862 344.274C254.862 344.274 262.021 340.573 260.287 346.035C259.509 348.485 255.493 346.935 255.493 346.935L254.862 344.274z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M264.376 339.449C264.376 339.449 268.735 334.548 269.801 341.21C270.207 343.748 265.008 342.11 265.008 342.11L264.376 339.449z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M226.834 355.997C226.834 355.997 232.062 355.77 230.91 357.32C229.757 358.869 227.308 357.996 227.308 357.996L226.834 355.997z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M262.434 234.603C262.434 234.603 261.708 235.268 261.707 234.197C261.707 233.127 279.191 219.863 288.034 218.479C288.034 218.479 271.935 225.208 262.434 234.603z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M265.4 298.4C265.4 298.4 287.401 320.801 296.601 324.401C296.601 324.401 305.801 335.601 301.801 361.601C301.801 361.601 298.601 369.201 295.401 348.401C295.401 348.401 298.601 323.201 287.401 339.201C287.401 339.201 279 329.301 285.4 329.601C285.4 329.601 288.601 331.601 289.001 330.001C289.401 328.401 281.4 314.801 264.2 300.4C247 286 265.4 298.4 265.4 298.4z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M207 337.201C207 337.201 206.8 335.401 208.6 336.201C210.4 337.001 304.601 343.201 336.201 367.201C336.201 367.201 291.001 344.001 207 337.201z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M217.4 332.801C217.4 332.801 217.2 331.001 219 331.801C220.8 332.601 357.401 331.601 381.001 364.001C381.001 364.001 359.001 338.801 217.4 332.801z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M229 328.801C229 328.801 228.8 327.001 230.6 327.801C232.4 328.601 405.801 315.601 429.401 348.001C429.401 348.001 419.801 322.401 229 328.801z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M239 324.001C239 324.001 238.8 322.201 240.6 323.001C242.4 323.801 364.601 285.2 388.201 317.601C388.201 317.601 374.801 293 239 324.001z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M181 346.801C181 346.801 180.8 345.001 182.6 345.801C184.4 346.601 202.2 348.801 204.2 387.601C204.2 387.601 197 345.601 181 346.801z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M172.2 348.401C172.2 348.401 172 346.601 173.8 347.401C175.6 348.201 189.8 343.601 187 382.401C187 382.401 188.2 347.201 172.2 348.401z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M164.2 348.801C164.2 348.801 164 347.001 165.8 347.801C167.6 348.601 183 349.201 170.6 371.601C170.6 371.601 180.2 347.601 164.2 348.801z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M211.526 304.465C211.526 304.465 211.082 306.464 212.631 305.247C228.699 292.622 261.141 233.72 316.826 228.086C316.826 228.086 278.518 215.976 211.526 304.465z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M222.726 302.665C222.726 302.665 221.363 301.472 223.231 300.847C225.099 300.222 337.541 227.72 376.826 235.686C376.826 235.686 349.719 228.176 222.726 302.665z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M201.885 308.767C201.885 308.767 201.376 310.366 203.087 309.39C212.062 304.27 215.677 247.059 259.254 245.804C259.254 245.804 226.843 231.09 201.885 308.767z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M181.962 319.793C181.962 319.793 180.885 321.079 182.838 320.825C193.084 319.493 214.489 278.222 258.928 283.301C258.928 283.301 226.962 268.955 181.962 319.793z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M193.2 313.667C193.2 313.667 192.389 315.136 194.258 314.511C204.057 311.237 217.141 266.625 261.729 263.078C261.729 263.078 227.603 255.135 193.2 313.667z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M174.922 324.912C174.922 324.912 174.049 325.954 175.631 325.748C183.93 324.669 201.268 291.24 237.264 295.354C237.264 295.354 211.371 283.734 174.922 324.912z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M167.323 330.821C167.323 330.821 166.318 331.866 167.909 331.748C172.077 331.439 202.715 298.36 221.183 313.862C221.183 313.862 209.168 295.139 167.323 330.821z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M236.855 298.898C236.855 298.898 235.654 297.543 237.586 297.158C239.518 296.774 360.221 239.061 398.184 251.927C398.184 251.927 372.243 241.053 236.855 298.898z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M203.4 363.201C203.4 363.201 203.2 361.401 205 362.201C206.8 363.001 222.2 363.601 209.8 386.001C209.8 386.001 219.4 362.001 203.4 363.201z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M213.8 361.601C213.8 361.601 213.6 359.801 215.4 360.601C217.2 361.401 235 363.601 237 402.401C237 402.401 229.8 360.401 213.8 361.601z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M220.6 360.001C220.6 360.001 220.4 358.201 222.2 359.001C224 359.801 248.6 363.201 272.2 395.601C272.2 395.601 236.6 358.801 220.6 360.001z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M228.225 357.972C228.225 357.972 227.788 356.214 229.678 356.768C231.568 357.322 252.002 355.423 290.099 389.599C290.099 389.599 243.924 354.656 228.225 357.972z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M238.625 353.572C238.625 353.572 238.188 351.814 240.078 352.368C241.968 352.922 276.802 357.423 328.499 392.399C328.499 392.399 254.324 350.256 238.625 353.572z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M198.2 342.001C198.2 342.001 198 340.201 199.8 341.001C201.6 341.801 255 344.401 285.4 371.201C285.4 371.201 250.499 346.426 198.2 342.001z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M188.2 346.001C188.2 346.001 188 344.201 189.8 345.001C191.6 345.801 216.2 349.201 239.8 381.601C239.8 381.601 204.2 344.801 188.2 346.001z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M249.503 348.962C249.503 348.962 248.938 347.241 250.864 347.655C252.79 348.068 287.86 350.004 341.981 381.098C341.981 381.098 264.317 346.704 249.503 348.962z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M257.903 346.562C257.903 346.562 257.338 344.841 259.264 345.255C261.19 345.668 296.26 347.604 350.381 378.698C350.381 378.698 273.317 343.904 257.903 346.562z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #ffffff; stroke:#000000; stroke-width:0.1') +SAX.characters( + , 3) +SAX.startElement(path, d='M267.503 341.562C267.503 341.562 266.938 339.841 268.864 340.255C270.79 340.668 313.86 345.004 403.582 379.298C403.582 379.298 282.917 338.904 267.503 341.562z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M156.2 348.401C156.2 348.401 161.4 348.001 160.2 349.601C159 351.201 156.6 350.401 156.6 350.401L156.2 348.401z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M187 362.401C187 362.401 192.2 362.001 191 363.601C189.8 365.201 187.4 364.401 187.4 364.401L187 362.401z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M178.2 362.001C178.2 362.001 183.4 361.601 182.2 363.201C181 364.801 178.6 364.001 178.6 364.001L178.2 362.001z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M82.831 350.182C82.831 350.182 87.876 351.505 86.218 352.624C84.561 353.744 82.554 352.202 82.554 352.202L82.831 350.182z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M84.831 340.582C84.831 340.582 89.876 341.905 88.218 343.024C86.561 344.144 84.554 342.602 84.554 342.602L84.831 340.582z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M77.631 336.182C77.631 336.182 82.676 337.505 81.018 338.624C79.361 339.744 77.354 338.202 77.354 338.202L77.631 336.182z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M157.4 411.201C157.4 411.201 155.8 411.201 151.8 413.201C149.8 413.201 138.6 416.801 133 426.801C133 426.801 145.4 417.201 157.4 411.201z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M245.116 503.847C245.257 504.105 245.312 504.525 245.604 504.542C246.262 504.582 247.495 504.883 247.37 504.247C246.522 499.941 245.648 495.004 241.515 493.197C240.876 492.918 239.434 493.331 239.36 494.215C239.233 495.739 239.116 497.088 239.425 498.554C239.725 499.975 241.883 499.985 242.8 498.601C243.736 500.273 244.168 502.116 245.116 503.847z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M234.038 508.581C234.786 509.994 234.659 511.853 236.074 512.416C236.814 512.71 238.664 511.735 238.246 510.661C237.444 508.6 237.056 506.361 235.667 504.55C235.467 504.288 235.707 503.755 235.547 503.427C234.953 502.207 233.808 501.472 232.4 501.801C231.285 504.004 232.433 506.133 233.955 507.842C234.091 507.994 233.925 508.37 234.038 508.581z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M194.436 503.391C194.328 503.014 194.29 502.551 194.455 502.23C194.986 501.197 195.779 500.075 195.442 499.053C195.094 497.997 193.978 498.179 193.328 498.748C192.193 499.742 192.144 501.568 191.453 502.927C191.257 503.313 191.308 503.886 190.867 504.277C190.393 504.698 189.953 506.222 190.049 506.793C190.102 507.106 189.919 517.014 190.141 516.751C190.76 516.018 193.81 506.284 193.879 505.392C193.936 504.661 194.668 504.196 194.436 503.391z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M168.798 496.599C171.432 494.1 174.222 491.139 173.78 487.427C173.664 486.451 171.889 486.978 171.702 487.824C170.9 491.449 168.861 494.11 166.293 496.502C164.097 498.549 162.235 504.893 162 505.401C165.697 500.145 167.954 497.399 168.798 496.599z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M155.224 490.635C155.747 490.265 155.445 489.774 155.662 489.442C156.615 487.984 157.916 486.738 157.934 485C157.937 484.723 157.559 484.414 157.224 484.638C156.947 484.822 156.605 484.952 156.497 485.082C154.467 487.531 153.067 490.202 151.624 493.014C151.441 493.371 150.297 497.862 150.61 497.973C150.849 498.058 152.569 493.877 152.779 493.763C154.042 493.077 154.054 491.462 155.224 490.635z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M171.957 510.179C172.401 509.31 173.977 508.108 173.864 507.219C173.746 506.291 174.214 504.848 173.302 505.536C172.045 506.484 168.596 507.833 168.326 513.641C168.3 514.212 171.274 511.519 171.957 510.179z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M186.4 493.001C186.8 492.333 187.508 492.806 187.967 492.543C188.615 492.171 189.226 491.613 189.518 490.964C190.488 488.815 192.257 486.995 192.4 484.601C190.909 483.196 190.23 485.236 189.6 486.201C188.277 484.554 187.278 486.428 185.978 486.947C185.908 486.975 185.695 486.628 185.62 486.655C184.443 487.095 183.763 488.176 182.765 488.957C182.594 489.091 182.189 488.911 182.042 489.047C181.39 489.65 180.417 489.975 180.137 490.657C179.027 493.364 175.887 495.459 174 503.001C174.381 503.91 178.512 496.359 178.999 495.661C179.835 494.465 179.953 497.322 181.229 496.656C181.28 496.629 181.466 496.867 181.6 497.001C181.794 496.721 182.012 496.492 182.4 496.601C182.4 496.201 182.266 495.645 182.467 495.486C183.704 494.509 183.62 493.441 184.4 492.201C184.858 492.99 185.919 492.271 186.4 493.001z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M246.2 547.401C246.2 547.401 253.6 527.001 249.2 515.801C249.2 515.801 260.6 537.401 256 548.601C256 548.601 255.6 538.201 251.6 533.201C251.6 533.201 247.6 546.001 246.2 547.401z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M231.4 544.801C231.4 544.801 236.8 536.001 228.8 517.601C228.8 517.601 228 538.001 221.2 549.001C221.2 549.001 235.4 528.801 231.4 544.801z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M221.4 542.801C221.4 542.801 221.2 522.801 221.6 519.801C221.6 519.801 217.8 536.401 207.6 546.001C207.6 546.001 222 534.001 221.4 542.801z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M211.8 510.801C211.8 510.801 217.8 524.401 207.8 542.801C207.8 542.801 214.2 530.601 209.4 523.601C209.4 523.601 212 520.201 211.8 510.801z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M192.6 542.401C192.6 542.401 191.6 526.801 193.4 524.601C193.4 524.601 193.6 518.201 193.2 517.201C193.2 517.201 197.2 511.001 197.4 518.401C197.4 518.401 198.8 526.201 201.6 530.801C201.6 530.801 205.2 536.201 205 542.601C205 542.601 195 512.401 192.6 542.401z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M189 514.801C189 514.801 182.4 525.601 180.6 544.601C180.6 544.601 179.2 538.401 183 524.001C183 524.001 187.2 508.601 189 514.801z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M167.2 534.601C167.2 534.601 172.2 529.201 173.6 524.201C173.6 524.201 177.2 508.401 170.8 517.001C170.8 517.001 171 525.001 162.8 532.401C162.8 532.401 167.6 530.001 167.2 534.601z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M161.4 529.601C161.4 529.601 164.8 512.201 165.6 511.401C165.6 511.401 167.4 508.001 164.6 511.201C164.6 511.201 155.8 530.401 151.8 537.001C151.8 537.001 159.8 527.801 161.4 529.601z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M155.6 513.001C155.6 513.001 167.2 490.601 145.4 516.401C145.4 516.401 156.4 506.601 155.6 513.001z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M140.2 498.401C140.2 498.401 145 479.601 147.6 479.801C147.6 479.801 155.8 470.801 149.2 481.401C149.2 481.401 143.2 491.001 143.8 500.801C143.8 500.801 143.2 491.201 140.2 498.401z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M470.5 487C470.5 487 458.5 477 456 473.5C456 473.5 469.5 492 469.5 499C469.5 499 472 491.5 470.5 487z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M476 465C476 465 455 450 451.5 442.5C451.5 442.5 478 472 478 476.5C478 476.5 478.5 467.5 476 465z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M493 311C493 311 481 303 479.5 305C479.5 305 490 311.5 492.5 320C492.5 320 491 311 493 311z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='fill: #cccccc') +SAX.characters( + , 3) +SAX.startElement(path, d='M501.5 391.5L484 379.5C484 379.5 503 396.5 503.5 400.5L501.5 391.5z') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='stroke:#000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M110.75 369L132.75 373.75') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='stroke:#000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M161 531C161 531 160.5 527.5 151.5 538') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='stroke:#000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M166.5 536C166.5 536 168.5 529.5 162 534') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( + , 2) +SAX.startElement(g, style='stroke:#000000') +SAX.characters( + , 3) +SAX.startElement(path, d='M220.5 544.5C220.5 544.5 222 533.5 210.5 546.5') +SAX.endElement(path) +SAX.characters( + , 2) +SAX.endElement(g) +SAX.characters( +, 1) +SAX.endElement(svg) +SAX.endDocument() diff --git a/result/svg3.sax2 b/result/svg3.sax2 new file mode 100644 index 0000000..b63dff0 --- /dev/null +++ b/result/svg3.sax2 @@ -0,0 +1,2407 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(svg, NULL, NULL, 0, 0, 0) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M77....', 149) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M81....', 149) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M108...', 153) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M105...', 157) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M101...', 157) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M90....', 150) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M83....', 149) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M80....', 151) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M91....', 144) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M71....', 105) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M72....', 150) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M72....', 145) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 29) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M70....', 3523) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 29) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M499...', 1458) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M84....', 598) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M333...', 739) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M334...', 757) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M336...', 760) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M337...', 761) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M338...', 762) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M340...', 760) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M341...', 760) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M342...', 760) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M343...', 725) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M345...', 762) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M84....', 637) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M125...', 221) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M265...', 273) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M145...', 431) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M178...', 139) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M188...', 139) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M201...', 139) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M178...', 131) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M179...', 139) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M165...', 911) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M170...', 501) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M192...', 262) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M190...', 209) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M194...', 475) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 29) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M190...', 405) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M191...', 219) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M271...', 327) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M228...', 98) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M180...', 137) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M185...', 152) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M190...', 152) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M197...', 154) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M203...', 154) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M210...', 139) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M181...', 132) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M215...', 142) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M233...', 211) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M247...', 50) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M253...', 56) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M174...', 179) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M188...', 219) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M111...', 221) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M132...', 208) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M133...', 334) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M177...', 183) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M140...', 161) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M147...', 160) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M154...', 158) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M161...', 158) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M125...', 182) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M190...', 247) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M243...', 361) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M208...', 393) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M208...', 393) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M209...', 393) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M210...', 393) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M244...', 301) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M290...', 155) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M294...', 309) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M247...', 193) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M243...', 200) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M255...', 77) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M245...', 191) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M141...', 411) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M140...', 486) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M148...', 494) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M148...', 484) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M148...', 495) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M140...', 486) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M137...', 119) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M120...', 115) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M128...', 132) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M214...', 1619) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M409...', 389) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M464...', 271) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M463...', 289) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M463...', 287) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M462...', 280) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M462...', 289) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M462...', 250) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M250...', 709) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M389...', 91) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M436...', 125) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M492...', 99) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M304...', 123) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M494...', 111) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M343...', 2441) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M309...', 1201) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M380...', 429) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M368...', 1598) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M291...', 929) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M259...', 1006) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M245...', 383) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M217...', 181) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M233...', 2425) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M251...', 74) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M224...', 84) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M221...', 112) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M222...', 114) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M220...', 6993) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M197...', 185) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M138...', 193) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M138...', 197) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M134...', 195) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M134...', 11) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M89 ...', 570) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M87....', 491) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M91 ...', 497) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M88....', 626) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M79....', 183) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M101...', 359) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M240...', 1223) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M231...', 816) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M294...', 902) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M257...', 3281) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M202...', 837) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M182...', 127) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M142...', 177) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M133...', 289) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M120...', 215) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M349...', 1047) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M339...', 444) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M173...', 503) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M180...', 445) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M177...', 379) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M196...', 438) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M188...', 109) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M181...', 113) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M171...', 105) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M163...', 113) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M201...', 111) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M191...', 114) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M180...', 109) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M173...', 105) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M166...', 111) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M205...', 127) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M215...', 127) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M226...', 127) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M236...', 127) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M209...', 127) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M219...', 127) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M196...', 109) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M123...', 117) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M105...', 111) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M125...', 101) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M129...', 1246) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M126...', 311) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M125...', 125) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M127...', 160) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M129...', 160) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M130...', 158) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M245...', 157) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M242...', 154) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M239...', 158) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M236...', 157) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M204...', 387) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M277...', 379) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M218...', 127) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M211...', 126) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M201...', 126) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M193...', 128) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M235...', 128) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M245...', 126) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M254...', 129) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M264...', 126) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M226...', 126) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M262...', 161) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M265...', 363) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M207...', 143) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M217...', 147) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M229...', 143) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M239...', 137) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M181...', 133) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M172...', 135) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M164...', 137) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M211...', 160) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M222...', 160) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M201...', 158) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M181...', 161) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M193...', 155) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M174...', 159) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M167...', 160) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M236...', 161) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M203...', 139) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M213...', 135) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M220...', 139) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M228...', 161) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M238...', 161) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M198...', 139) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M188...', 139) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M249...', 159) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M257...', 159) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M267...', 159) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M156...', 111) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M187...', 105) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M178...', 111) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M82....', 121) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M84....', 121) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M77....', 121) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M157...', 137) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M245...', 349) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M234...', 346) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M194...', 445) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M168...', 247) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M155...', 396) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M171...', 206) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M186...', 803) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M246...', 179) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M231...', 139) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M221...', 139) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M211...', 139) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M192...', 261) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M189...', 131) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M167...', 181) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M161...', 183) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M155...', 99) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M140...', 181) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M470...', 101) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M476...', 97) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M493...', 91) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M501...', 67) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 14) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M110...', 25) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 14) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M161...', 38) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 14) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M166...', 40) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( + , 2) +SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 14) +SAX.characters( + , 3) +SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M220...', 46) +SAX.endElementNs(path, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(g, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(svg, NULL, NULL) +SAX.endDocument() diff --git a/result/title.xml b/result/title.xml new file mode 100644 index 0000000..1b3fe07 --- /dev/null +++ b/result/title.xml @@ -0,0 +1,2 @@ + +my title diff --git a/result/title.xml.rde b/result/title.xml.rde new file mode 100644 index 0000000..b0d2be0 --- /dev/null +++ b/result/title.xml.rde @@ -0,0 +1,3 @@ +0 1 title 0 0 +1 3 #text 0 1 my title +0 15 title 0 0 diff --git a/result/title.xml.rdr b/result/title.xml.rdr new file mode 100644 index 0000000..b0d2be0 --- /dev/null +++ b/result/title.xml.rdr @@ -0,0 +1,3 @@ +0 1 title 0 0 +1 3 #text 0 1 my title +0 15 title 0 0 diff --git a/result/title.xml.sax b/result/title.xml.sax new file mode 100644 index 0000000..2af71e9 --- /dev/null +++ b/result/title.xml.sax @@ -0,0 +1,6 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(title) +SAX.characters(my title, 8) +SAX.endElement(title) +SAX.endDocument() diff --git a/result/title.xml.sax2 b/result/title.xml.sax2 new file mode 100644 index 0000000..6fa4fa9 --- /dev/null +++ b/result/title.xml.sax2 @@ -0,0 +1,6 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(my title, 8) +SAX.endElementNs(title, NULL, NULL) +SAX.endDocument() diff --git a/result/tstblanks.xml b/result/tstblanks.xml new file mode 100644 index 0000000..2561859 --- /dev/null +++ b/result/tstblanks.xml @@ -0,0 +1,2 @@ + +content diff --git a/result/tstblanks.xml.rde b/result/tstblanks.xml.rde new file mode 100644 index 0000000..7d2e5fa --- /dev/null +++ b/result/tstblanks.xml.rde @@ -0,0 +1,3 @@ +0 1 a 0 0 +1 3 #text 0 1 content +0 15 a 0 0 diff --git a/result/tstblanks.xml.rdr b/result/tstblanks.xml.rdr new file mode 100644 index 0000000..7d2e5fa --- /dev/null +++ b/result/tstblanks.xml.rdr @@ -0,0 +1,3 @@ +0 1 a 0 0 +1 3 #text 0 1 content +0 15 a 0 0 diff --git a/result/tstblanks.xml.sax b/result/tstblanks.xml.sax new file mode 100644 index 0000000..a1f7b8b --- /dev/null +++ b/result/tstblanks.xml.sax @@ -0,0 +1,6 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(a, test='passed') +SAX.characters(content, 7) +SAX.endElement(a) +SAX.endDocument() diff --git a/result/tstblanks.xml.sax2 b/result/tstblanks.xml.sax2 new file mode 100644 index 0000000..45563a4 --- /dev/null +++ b/result/tstblanks.xml.sax2 @@ -0,0 +1,6 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(a, NULL, NULL, 0, 1, 0, test='pass...', 6) +SAX.characters(content, 7) +SAX.endElementNs(a, NULL, NULL) +SAX.endDocument() diff --git a/result/utf16bebom.xml b/result/utf16bebom.xml new file mode 100644 index 0000000..3b5466d Binary files /dev/null and b/result/utf16bebom.xml differ diff --git a/result/utf16bebom.xml.rde b/result/utf16bebom.xml.rde new file mode 100644 index 0000000..f69338a --- /dev/null +++ b/result/utf16bebom.xml.rde @@ -0,0 +1,4 @@ +0 8 #comment 0 1 This file is encoded in UTF-16BE +0 1 repository 0 0 +1 1 namespace 1 0 +0 15 repository 0 0 diff --git a/result/utf16bebom.xml.rdr b/result/utf16bebom.xml.rdr new file mode 100644 index 0000000..f69338a --- /dev/null +++ b/result/utf16bebom.xml.rdr @@ -0,0 +1,4 @@ +0 8 #comment 0 1 This file is encoded in UTF-16BE +0 1 repository 0 0 +1 1 namespace 1 0 +0 15 repository 0 0 diff --git a/result/utf16bebom.xml.sax b/result/utf16bebom.xml.sax new file mode 100644 index 0000000..5b74a6d --- /dev/null +++ b/result/utf16bebom.xml.sax @@ -0,0 +1,8 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.comment( This file is encoded in UTF-16BE ) +SAX.startElement(repository, repositroy_id='test') +SAX.startElement(namespace, name='test') +SAX.endElement(namespace) +SAX.endElement(repository) +SAX.endDocument() diff --git a/result/utf16bebom.xml.sax2 b/result/utf16bebom.xml.sax2 new file mode 100644 index 0000000..4326890 --- /dev/null +++ b/result/utf16bebom.xml.sax2 @@ -0,0 +1,8 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.comment( This file is encoded in UTF-16BE ) +SAX.startElementNs(repository, NULL, NULL, 0, 1, 0, repositroy_id='test...', 4) +SAX.startElementNs(namespace, NULL, NULL, 0, 1, 0, name='test...', 4) +SAX.endElementNs(namespace, NULL, NULL) +SAX.endElementNs(repository, NULL, NULL) +SAX.endDocument() diff --git a/result/utf16bom.xml b/result/utf16bom.xml new file mode 100644 index 0000000..6ea296e Binary files /dev/null and b/result/utf16bom.xml differ diff --git a/result/utf16bom.xml.rde b/result/utf16bom.xml.rde new file mode 100644 index 0000000..0fb84c6 --- /dev/null +++ b/result/utf16bom.xml.rde @@ -0,0 +1,3 @@ +0 1 repository 0 0 +1 1 namespace 1 0 +0 15 repository 0 0 diff --git a/result/utf16bom.xml.rdr b/result/utf16bom.xml.rdr new file mode 100644 index 0000000..0fb84c6 --- /dev/null +++ b/result/utf16bom.xml.rdr @@ -0,0 +1,3 @@ +0 1 repository 0 0 +1 1 namespace 1 0 +0 15 repository 0 0 diff --git a/result/utf16bom.xml.sax b/result/utf16bom.xml.sax new file mode 100644 index 0000000..bd9386e --- /dev/null +++ b/result/utf16bom.xml.sax @@ -0,0 +1,7 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(repository, repositroy_id='test') +SAX.startElement(namespace, name='test') +SAX.endElement(namespace) +SAX.endElement(repository) +SAX.endDocument() diff --git a/result/utf16bom.xml.sax2 b/result/utf16bom.xml.sax2 new file mode 100644 index 0000000..2b2db15 --- /dev/null +++ b/result/utf16bom.xml.sax2 @@ -0,0 +1,7 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(repository, NULL, NULL, 0, 1, 0, repositroy_id='test...', 4) +SAX.startElementNs(namespace, NULL, NULL, 0, 1, 0, name='test...', 4) +SAX.endElementNs(namespace, NULL, NULL) +SAX.endElementNs(repository, NULL, NULL) +SAX.endDocument() diff --git a/result/utf16lebom.xml b/result/utf16lebom.xml new file mode 100644 index 0000000..933640c Binary files /dev/null and b/result/utf16lebom.xml differ diff --git a/result/utf16lebom.xml.rde b/result/utf16lebom.xml.rde new file mode 100644 index 0000000..32a91e4 --- /dev/null +++ b/result/utf16lebom.xml.rde @@ -0,0 +1,4 @@ +0 8 #comment 0 1 This file is encoded in UTF-16LE +0 1 repository 0 0 +1 1 namespace 1 0 +0 15 repository 0 0 diff --git a/result/utf16lebom.xml.rdr b/result/utf16lebom.xml.rdr new file mode 100644 index 0000000..32a91e4 --- /dev/null +++ b/result/utf16lebom.xml.rdr @@ -0,0 +1,4 @@ +0 8 #comment 0 1 This file is encoded in UTF-16LE +0 1 repository 0 0 +1 1 namespace 1 0 +0 15 repository 0 0 diff --git a/result/utf16lebom.xml.sax b/result/utf16lebom.xml.sax new file mode 100644 index 0000000..e699631 --- /dev/null +++ b/result/utf16lebom.xml.sax @@ -0,0 +1,8 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.comment( This file is encoded in UTF-16LE ) +SAX.startElement(repository, repositroy_id='test') +SAX.startElement(namespace, name='test') +SAX.endElement(namespace) +SAX.endElement(repository) +SAX.endDocument() diff --git a/result/utf16lebom.xml.sax2 b/result/utf16lebom.xml.sax2 new file mode 100644 index 0000000..3b62346 --- /dev/null +++ b/result/utf16lebom.xml.sax2 @@ -0,0 +1,8 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.comment( This file is encoded in UTF-16LE ) +SAX.startElementNs(repository, NULL, NULL, 0, 1, 0, repositroy_id='test...', 4) +SAX.startElementNs(namespace, NULL, NULL, 0, 1, 0, name='test...', 4) +SAX.endElementNs(namespace, NULL, NULL) +SAX.endElementNs(repository, NULL, NULL) +SAX.endDocument() diff --git a/result/utf8bom.xml b/result/utf8bom.xml new file mode 100644 index 0000000..f4e5164 --- /dev/null +++ b/result/utf8bom.xml @@ -0,0 +1,2 @@ + + diff --git a/result/utf8bom.xml.rde b/result/utf8bom.xml.rde new file mode 100644 index 0000000..55ad211 --- /dev/null +++ b/result/utf8bom.xml.rde @@ -0,0 +1 @@ +0 1 foo 1 0 diff --git a/result/utf8bom.xml.rdr b/result/utf8bom.xml.rdr new file mode 100644 index 0000000..55ad211 --- /dev/null +++ b/result/utf8bom.xml.rdr @@ -0,0 +1 @@ +0 1 foo 1 0 diff --git a/result/utf8bom.xml.sax b/result/utf8bom.xml.sax new file mode 100644 index 0000000..792eb94 --- /dev/null +++ b/result/utf8bom.xml.sax @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(foo) +SAX.endElement(foo) +SAX.endDocument() diff --git a/result/utf8bom.xml.sax2 b/result/utf8bom.xml.sax2 new file mode 100644 index 0000000..cf7f20f --- /dev/null +++ b/result/utf8bom.xml.sax2 @@ -0,0 +1,5 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(foo, NULL, NULL, 0, 0, 0) +SAX.endElementNs(foo, NULL, NULL) +SAX.endDocument() diff --git a/result/valid/127772.xml b/result/valid/127772.xml new file mode 100644 index 0000000..c1e128f --- /dev/null +++ b/result/valid/127772.xml @@ -0,0 +1,5 @@ + + + + b text + diff --git a/result/valid/127772.xml.err b/result/valid/127772.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/REC-xml-19980210.xml b/result/valid/REC-xml-19980210.xml new file mode 100644 index 0000000..f31e963 --- /dev/null +++ b/result/valid/REC-xml-19980210.xml @@ -0,0 +1,4154 @@ + + + + + + + + + + +"> + +'"> + + + + + + + + +amp, +lt, +gt, +apos, +quot"> + + +]> + + + +
      +Extensible Markup Language (XML) 1.0 + +REC-xml-&iso6.doc.date; +W3C Recommendation +&draft.day;&draft.month;&draft.year; + + + +http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date; + +http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.xml + +http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.html + +http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.pdf + +http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.ps + + + +http://www.w3.org/TR/REC-xml + + + +http://www.w3.org/TR/PR-xml-971208 + + + +Tim Bray +Textuality and Netscape +tbray@textuality.com +Jean Paoli +Microsoft +jeanpa@microsoft.com +C. M. Sperberg-McQueen +University of Illinois at Chicago +cmsmcq@uic.edu + + +

      The Extensible Markup Language (XML) is a subset of +SGML that is completely described in this document. Its goal is to +enable generic SGML to be served, received, and processed on the Web +in the way that is now possible with HTML. XML has been designed for +ease of implementation and for interoperability with both SGML and +HTML.

      +
      + +

      This document has been reviewed by W3C Members and +other interested parties and has been endorsed by the +Director as a W3C Recommendation. It is a stable +document and may be used as reference material or cited +as a normative reference from another document. W3C's +role in making the Recommendation is to draw attention +to the specification and to promote its widespread +deployment. This enhances the functionality and +interoperability of the Web.

      +

      +This document specifies a syntax created by subsetting an existing, +widely used international text processing standard (Standard +Generalized Markup Language, ISO 8879:1986(E) as amended and +corrected) for use on the World Wide Web. It is a product of the W3C +XML Activity, details of which can be found at http://www.w3.org/XML. A list of +current W3C Recommendations and other technical documents can be found +at http://www.w3.org/TR. +

      +

      This specification uses the term URI, which is defined by , a work in progress expected to update and . +

      +

      The list of known errors in this specification is +available at +http://www.w3.org/XML/xml-19980210-errata.

      +

      Please report errors in this document to +xml-editor@w3.org. +

      +
      + + + +

      Chicago, Vancouver, Mountain View, et al.: +World-Wide Web Consortium, XML Working Group, 1996, 1997.

      +
      + +

      Created in electronic form.

      +
      + +English +Extended Backus-Naur Form (formal grammar) + + + +1997-12-03 : CMSMcQ : yet further changes +1997-12-02 : TB : further changes (see TB to XML WG, +2 December 1997) +1997-12-02 : CMSMcQ : deal with as many corrections and +comments from the proofreaders as possible: +entify hard-coded document date in pubdate element, +change expansion of entity WebSGML, +update status description as per Dan Connolly (am not sure +about refernece to Berners-Lee et al.), +add 'The' to abstract as per WG decision, +move Relationship to Existing Standards to back matter and +combine with References, +re-order back matter so normative appendices come first, +re-tag back matter so informative appendices are tagged informdiv1, +remove XXX XXX from list of 'normative' specs in prose, +move some references from Other References to Normative References, +add RFC 1738, 1808, and 2141 to Other References (they are not +normative since we do not require the processor to enforce any +rules based on them), +add reference to 'Fielding draft' (Berners-Lee et al.), +move notation section to end of body, +drop URIchar non-terminal and use SkipLit instead, +lose stray reference to defunct nonterminal 'markupdecls', +move reference to Aho et al. into appendix (Tim's right), +add prose note saying that hash marks and fragment identifiers are +NOT part of the URI formally speaking, and are NOT legal in +system identifiers (processor 'may' signal an error). +Work through: +Tim Bray reacting to James Clark, +Tim Bray on his own, +Eve Maler, + +NOT DONE YET: +change binary / text to unparsed / parsed. +handle James's suggestion about < in attriubte values +uppercase hex characters, +namechar list, + +1997-12-01 : JB : add some column-width parameters +1997-12-01 : CMSMcQ : begin round of changes to incorporate +recent WG decisions and other corrections: +binding sources of character encoding info (27 Aug / 3 Sept), +correct wording of Faust quotation (restore dropped line), +drop SDD from EncodingDecl, +change text at version number 1.0, +drop misleading (wrong!) sentence about ignorables and extenders, +modify definition of PCData to make bar on msc grammatical, +change grammar's handling of internal subset (drop non-terminal markupdecls), +change definition of includeSect to allow conditional sections, +add integral-declaration constraint on internal subset, +drop misleading / dangerous sentence about relationship of +entities with system storage objects, +change table body tag to htbody as per EM change to DTD, +add rule about space normalization in public identifiers, +add description of how to generate our name-space rules from +Unicode character database (needs further work!). + +1997-10-08 : TB : Removed %-constructs again, new rules +for PE appearance. +1997-10-01 : TB : Case-sensitive markup; cleaned up +element-type defs, lotsa little edits for style +1997-09-25 : TB : Change to elm's new DTD, with +substantial detail cleanup as a side-effect +1997-07-24 : CMSMcQ : correct error (lost *) in definition +of ignoreSectContents (thanks to Makoto Murata) +Allow all empty elements to have end-tags, consistent with +SGML TC (as per JJC). +1997-07-23 : CMSMcQ : pre-emptive strike on pending corrections: +introduce the term 'empty-element tag', note that all empty elements +may use it, and elements declared EMPTY must use it. +Add WFC requiring encoding decl to come first in an entity. +Redefine notations to point to PIs as well as binary entities. +Change autodetection table by removing bytes 3 and 4 from +examples with Byte Order Mark. +Add content model as a term and clarify that it applies to both +mixed and element content. + +1997-06-30 : CMSMcQ : change date, some cosmetic changes, +changes to productions for choice, seq, Mixed, NotationType, +Enumeration. Follow James Clark's suggestion and prohibit +conditional sections in internal subset. TO DO: simplify +production for ignored sections as a result, since we don't +need to worry about parsers which don't expand PErefs finding +a conditional section. +1997-06-29 : TB : various edits +1997-06-29 : CMSMcQ : further changes: +Suppress old FINAL EDIT comments and some dead material. +Revise occurrences of % in grammar to exploit Henry Thompson's pun, +especially markupdecl and attdef. +Remove RMD requirement relating to element content (?). + +1997-06-28 : CMSMcQ : Various changes for 1 July draft: +Add text for draconian error handling (introduce +the term Fatal Error). +RE deleta est (changing wording from +original announcement to restrict the requirement to validating +parsers). +Tag definition of validating processor and link to it. +Add colon as name character. +Change def of %operator. +Change standard definitions of lt, gt, amp. +Strip leading zeros from #x00nn forms. +1997-04-02 : CMSMcQ : final corrections of editorial errors +found in last night's proofreading. Reverse course once more on +well-formed: Webster's Second hyphenates it, and that's enough +for me. +1997-04-01 : CMSMcQ : corrections from JJC, EM, HT, and self +1997-03-31 : Tim Bray : many changes +1997-03-29 : CMSMcQ : some Henry Thompson (on entity handling), +some Charles Goldfarb, some ERB decisions (PE handling in miscellaneous +declarations. Changed Ident element to accept def attribute. +Allow normalization of Unicode characters. move def of systemliteral +into section on literals. +1997-03-28 : CMSMcQ : make as many corrections as possible, from +Terry Allen, Norbert Mikula, James Clark, Jon Bosak, Henry Thompson, +Paul Grosso, and self. Among other things: give in on "well formed" +(Terry is right), tentatively rename QuotedCData as AttValue +and Literal as EntityValue to be more informative, since attribute +values are the only place QuotedCData was used, and +vice versa for entity text and Literal. (I'd call it Entity Text, +but 8879 uses that name for both internal and external entities.) +1997-03-26 : CMSMcQ : resynch the two forks of this draft, reapply +my changes dated 03-20 and 03-21. Normalize old 'may not' to 'must not' +except in the one case where it meant 'may or may not'. +1997-03-21 : TB : massive changes on plane flight from Chicago +to Vancouver +1997-03-21 : CMSMcQ : correct as many reported errors as possible. + +1997-03-20 : CMSMcQ : correct typos listed in CMSMcQ hand copy of spec. +1997-03-20 : CMSMcQ : cosmetic changes preparatory to revision for +WWW conference April 1997: restore some of the internal entity +references (e.g. to docdate, etc.), change character xA0 to &nbsp; +and define nbsp as &#160;, and refill a lot of paragraphs for +legibility. +1996-11-12 : CMSMcQ : revise using Tim's edits: +Add list type of NUMBERED and change most lists either to +BULLETS or to NUMBERED. +Suppress QuotedNames, Names (not used). +Correct trivial-grammar doc type decl. +Rename 'marked section' as 'CDATA section' passim. +Also edits from James Clark: +Define the set of characters from which [^abc] subtracts. +Charref should use just [0-9] not Digit. +Location info needs cleaner treatment: remove? (ERB +question). +One example of a PI has wrong pic. +Clarify discussion of encoding names. +Encoding failure should lead to unspecified results; don't +prescribe error recovery. +Don't require exposure of entity boundaries. +Ignore white space in element content. +Reserve entity names of the form u-NNNN. +Clarify relative URLs. +And some of my own: +Correct productions for content model: model cannot +consist of a name, so "elements ::= cp" is no good. + +1996-11-11 : CMSMcQ : revise for style. +Add new rhs to entity declaration, for parameter entities. +1996-11-10 : CMSMcQ : revise for style. +Fix / complete section on names, characters. +Add sections on parameter entities, conditional sections. +Still to do: Add compatibility note on deterministic content models. +Finish stylistic revision. +1996-10-31 : TB : Add Entity Handling section +1996-10-30 : TB : Clean up term & termdef. Slip in +ERB decision re EMPTY. +1996-10-28 : TB : Change DTD. Implement some of Michael's +suggestions. Change comments back to //. Introduce language for +XML namespace reservation. Add section on white-space handling. +Lots more cleanup. +1996-10-24 : CMSMcQ : quick tweaks, implement some ERB +decisions. Characters are not integers. Comments are /* */ not //. +Add bibliographic refs to 10646, HyTime, Unicode. +Rename old Cdata as MsData since it's only seen +in marked sections. Call them attribute-value pairs not +name-value pairs, except once. Internal subset is optional, needs +'?'. Implied attributes should be signaled to the app, not +have values supplied by processor. +1996-10-16 : TB : track down & excise all DSD references; +introduce some EBNF for entity declarations. +1996-10-?? : TB : consistency check, fix up scraps so +they all parse, get formatter working, correct a few productions. +1996-10-10/11 : CMSMcQ : various maintenance, stylistic, and +organizational changes: +Replace a few literals with xmlpio and +pic entities, to make them consistent and ensure we can change pic +reliably when the ERB votes. +Drop paragraph on recognizers from notation section. +Add match, exact match to terminology. +Move old 2.2 XML Processors and Apps into intro. +Mention comments, PIs, and marked sections in discussion of +delimiter escaping. +Streamline discussion of doctype decl syntax. +Drop old section of 'PI syntax' for doctype decl, and add +section on partial-DTD summary PIs to end of Logical Structures +section. +Revise DSD syntax section to use Tim's subset-in-a-PI +mechanism. +1996-10-10 : TB : eliminate name recognizers (and more?) +1996-10-09 : CMSMcQ : revise for style, consistency through 2.3 +(Characters) +1996-10-09 : CMSMcQ : re-unite everything for convenience, +at least temporarily, and revise quickly +1996-10-08 : TB : first major homogenization pass +1996-10-08 : TB : turn "current" attribute on div type into +CDATA +1996-10-02 : TB : remould into skeleton + entities +1996-09-30 : CMSMcQ : add a few more sections prior to exchange + with Tim. +1996-09-20 : CMSMcQ : finish transcribing notes. +1996-09-19 : CMSMcQ : begin transcribing notes for draft. +1996-09-13 : CMSMcQ : made outline from notes of 09-06, +do some housekeeping + + +
      + + +Introduction +

      Extensible Markup Language, abbreviated XML, describes a class of +data objects called XML documents and +partially describes the behavior of +computer programs which process them. XML is an application profile or +restricted form of SGML, the Standard Generalized Markup +Language . +By construction, XML documents +are conforming SGML documents. +

      +

      XML documents are made up of storage units called entities, which contain either parsed +or unparsed data. +Parsed data is made up of characters, +some +of which form character data, +and some of which form markup. +Markup encodes a description of the document's storage layout and +logical structure. XML provides a mechanism to impose constraints on +the storage layout and logical structure.

      +

      A software module +called an XML processor is used to read XML documents +and provide access to their content and structure. It is assumed that an XML processor is +doing its work on behalf of another module, called the +application. This specification describes the +required behavior of an XML processor in terms of how it must read XML +data and the information it must provide to the application.

      + + +Origin and Goals +

      XML was developed by an XML Working Group (originally known as the +SGML Editorial Review Board) formed under the auspices of the World +Wide Web Consortium (W3C) in 1996. +It was chaired by Jon Bosak of Sun +Microsystems with the active participation of an XML Special +Interest Group (previously known as the SGML Working Group) also +organized by the W3C. The membership of the XML Working Group is given +in an appendix. Dan Connolly served as the WG's contact with the W3C. +

      +

      The design goals for XML are: +

      XML shall be straightforwardly usable over the +Internet.

      +

      XML shall support a wide variety of applications.

      +

      XML shall be compatible with SGML.

      +

      It shall be easy to write programs which process XML +documents.

      +

      The number of optional features in XML is to be kept to the +absolute minimum, ideally zero.

      +

      XML documents should be human-legible and reasonably +clear.

      +

      The XML design should be prepared quickly.

      +

      The design of XML shall be formal and concise.

      +

      XML documents shall be easy to create.

      +

      Terseness in XML markup is of minimal importance.

      +

      +

      This specification, +together with associated standards +(Unicode and ISO/IEC 10646 for characters, +Internet RFC 1766 for language identification tags, +ISO 639 for language name codes, and +ISO 3166 for country name codes), +provides all the information necessary to understand +XML Version &XML.version; +and construct computer programs to process it.

      +

      This version of the XML specification + +&doc.distribution;.

      + +
      + + + + + +Terminology + +

      The terminology used to describe XML documents is defined in the body of +this specification. +The terms defined in the following list are used in building those +definitions and in describing the actions of an XML processor: + + + +

      Conforming documents and XML +processors are permitted to but need not behave as +described.

      + + + +

      Conforming documents and XML processors +are required to behave as described; otherwise they are in error. + +

      +
      + + +

      A violation of the rules of this +specification; results are +undefined. Conforming software may detect and report an error and may +recover from it.

      +
      + + +

      An error +which a conforming XML processor +must detect and report to the application. +After encountering a fatal error, the +processor may continue +processing the data to search for further errors and may report such +errors to the application. In order to support correction of errors, +the processor may make unprocessed data from the document (with +intermingled character data and markup) available to the application. +Once a fatal error is detected, however, the processor must not +continue normal processing (i.e., it must not +continue to pass character data and information about the document's +logical structure to the application in the normal way). +

      +
      + + +

      Conforming software may or must (depending on the modal verb in the +sentence) behave as described; if it does, it must +provide users a means to enable or disable the behavior +described.

      +
      + + +

      A rule which applies to all +valid XML documents. +Violations of validity constraints are errors; they must, at user option, +be reported by +validating XML processors.

      +
      + + +

      A rule which applies to all well-formed XML documents. +Violations of well-formedness constraints are +fatal errors.

      +
      + + + +

      (Of strings or names:) +Two strings or names being compared must be identical. +Characters with multiple possible representations in ISO/IEC 10646 (e.g. +characters with +both precomposed and base+diacritic forms) match only if they have the +same representation in both strings. +At user option, processors may normalize such characters to +some canonical form. +No case folding is performed. +(Of strings and rules in the grammar:) +A string matches a grammatical production if it belongs to the +language generated by that production. +(Of content and content models:) +An element matches its declaration when it conforms +in the fashion described in the constraint +. + +

      +
      + + +

      A feature of +XML included solely to ensure that XML remains compatible with SGML. +

      +
      + + +

      A +non-binding recommendation included to increase the chances that XML +documents can be processed by the existing installed base of SGML +processors which predate the +&WebSGML;.

      +
      + +

      +
      + + +
      + + + +Documents + +

      +A data object is an +XML document if it is +well-formed, as +defined in this specification. +A well-formed XML document may in addition be +valid if it meets certain further +constraints.

      + +

      Each XML document has both a logical and a physical structure. +Physically, the document is composed of units called entities. An entity may refer to other entities to cause their +inclusion in the document. A document begins in a "root" or document entity. +Logically, the document is composed of declarations, elements, +comments, +character references, and +processing +instructions, all of which are indicated in the document by explicit +markup. +The logical and physical structures must nest properly, as described +in . +

      + + +Well-Formed XML Documents + +

      +A textual object is +a well-formed XML document if: + +

      Taken as a whole, it +matches the production labeled document.

      +

      It +meets all the well-formedness constraints given in this specification.

      +
      +

      Each of the parsed entities +which is referenced directly or indirectly within the document is +well-formed.

      +

      +

      + +Document +document +prolog +element +Misc* + +

      +

      Matching the document production +implies that: + +

      It contains one or more +elements.

      + + +

      There is exactly +one element, called the root, or document element, no +part of which appears in the content of any other element. +For all other elements, if the start-tag is in the content of another +element, the end-tag is in the content of the same element. More +simply stated, the elements, delimited by start- and end-tags, nest +properly within each other. +

      + +

      +

      As a consequence +of this, +for each non-root element +C in the document, there is one other element P +in the document such that +C is in the content of P, but is not in +the content of any other element that is in the content of +P. +P is referred to as the +parent of C, and C as a +child of P.

      + + +Characters + +

      A parsed entity contains +text, a sequence of +characters, +which may represent markup or character data. +A character +is an atomic unit of text as specified by +ISO/IEC 10646 . +Legal characters are tab, carriage return, line feed, and the legal +graphic characters of Unicode and ISO/IEC 10646. +The use of "compatibility characters", as defined in section 6.8 +of , is discouraged. + + +Character Range + +Char +#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] +| [#x10000-#x10FFFF] +any Unicode character, excluding the +surrogate blocks, FFFE, and FFFF. + + +

      + +

      The mechanism for encoding character code points into bit patterns may +vary from entity to entity. All XML processors must accept the UTF-8 +and UTF-16 encodings of 10646; the mechanisms for signaling which of +the two is in use, or for bringing other encodings into play, are +discussed later, in . +

      + +
      + + +Common Syntactic Constructs + +

      This section defines some symbols used widely in the grammar.

      +

      S (white space) consists of one or more space (#x20) +characters, carriage returns, line feeds, or tabs. + + +White Space + +S +(#x20 | #x9 | #xD | #xA)+ + + +

      +

      Characters are classified for convenience as letters, digits, or other +characters. Letters consist of an alphabetic or syllabic +base character possibly +followed by one or more combining characters, or of an ideographic +character. +Full definitions of the specific characters in each class +are given in .

      +

      A Name is a token +beginning with a letter or one of a few punctuation characters, and continuing +with letters, digits, hyphens, underscores, colons, or full stops, together +known as name characters. +Names beginning with the string "xml", or any string +which would match (('X'|'x') ('M'|'m') ('L'|'l')), are +reserved for standardization in this or future versions of this +specification. +

      + +

      The colon character within XML names is reserved for experimentation with +name spaces. +Its meaning is expected to be +standardized at some future point, at which point those documents +using the colon for experimental purposes may need to be updated. +(There is no guarantee that any name-space mechanism +adopted for XML will in fact use the colon as a name-space delimiter.) +In practice, this means that authors should not use the colon in XML +names except as part of name-space experiments, but that XML processors +should accept the colon as a name character.

      +
      +

      An +Nmtoken (name token) is any mixture of +name characters. + +Names and Tokens +NameChar +Letter +| Digit +| '.' | '-' | '_' | ':' +| CombiningChar +| Extender + +Name +(Letter | '_' | ':') +(NameChar)* +Names +Name +(S Name)* +Nmtoken +(NameChar)+ +Nmtokens +Nmtoken (S Nmtoken)* + +

      +

      Literal data is any quoted string not containing +the quotation mark used as a delimiter for that string. +Literals are used +for specifying the content of internal entities +(EntityValue), +the values of attributes (AttValue), +and external identifiers +(SystemLiteral). +Note that a SystemLiteral +can be parsed without scanning for markup. + +Literals +EntityValue +'"' +([^%&"] +| PEReference +| Reference)* +'"' + +|  +"'" +([^%&'] +| PEReference +| Reference)* +"'" + +AttValue +'"' +([^<&"] +| Reference)* +'"' + +|  +"'" +([^<&'] +| Reference)* +"'" + +SystemLiteral +('"' [^"]* '"') | ("'" [^']* "'") + + +PubidLiteral +'"' PubidChar* +'"' +| "'" (PubidChar - "'")* "'" + +PubidChar +#x20 | #xD | #xA +| [a-zA-Z0-9] +| [-'()+,./:=?;!*#@$_%] + + +

      + +
      + + +Character Data and Markup + +

      Text consists of intermingled +character +data and markup. +Markup takes the form of +start-tags, +end-tags, +empty-element tags, +entity references, +character references, +comments, +CDATA section delimiters, +document type declarations, and +processing instructions. + +

      +

      All text that is not markup +constitutes the character data of +the document.

      +

      The ampersand character (&) and the left angle bracket (<) +may appear in their literal form only when used as markup +delimiters, or within a comment, a +processing instruction, +or a CDATA section. + +They are also legal within the literal entity +value of an internal entity declaration; see +. + +If they are needed elsewhere, +they must be escaped +using either numeric character references +or the strings +"&amp;" and "&lt;" respectively. +The right angle +bracket (>) may be represented using the string +"&gt;", and must, for +compatibility, +be escaped using +"&gt;" or a character reference +when it appears in the string +"]]>" +in content, +when that string is not marking the end of +a CDATA section. +

      +

      +In the content of elements, character data +is any string of characters which does +not contain the start-delimiter of any markup. +In a CDATA section, character data +is any string of characters not including the CDATA-section-close +delimiter, "]]>".

      +

      +To allow attribute values to contain both single and double quotes, the +apostrophe or single-quote character (') may be represented as +"&apos;", and the double-quote character (") as +"&quot;". + +Character Data + +CharData +[^<&]* - ([^<&]* ']]>' [^<&]*) + + +

      +
      + + +Comments + +

      Comments may +appear anywhere in a document outside other +markup; in addition, +they may appear within the document type declaration +at places allowed by the grammar. +They are not part of the document's character +data; an XML +processor may, but need not, make it possible for an application to +retrieve the text of comments. +For compatibility, the string +"--" (double-hyphen) must not occur within +comments. + +Comments +Comment +'<!--' +((Char - '-') +| ('-' (Char - '-')))* +'-->' + + +

      +

      An example of a comment: +<!&como; declarations for <head> & <body> &comc;> +

      +
      + + +Processing Instructions + +

      Processing +instructions (PIs) allow documents to contain instructions +for applications. + + +Processing Instructions +PI +'<?' PITarget +(S +(Char* - +(Char* &pic; Char*)))? +&pic; +PITarget +Name - +(('X' | 'x') ('M' | 'm') ('L' | 'l')) + + +PIs are not part of the document's character +data, but must be passed through to the application. The +PI begins with a target (PITarget) used +to identify the application to which the instruction is directed. +The target names "XML", "xml", and so on are +reserved for standardization in this or future versions of this +specification. +The +XML Notation mechanism +may be used for +formal declaration of PI targets. +

      +
      + + +CDATA Sections + +

      CDATA sections +may occur +anywhere character data may occur; they are +used to escape blocks of text containing characters which would +otherwise be recognized as markup. CDATA sections begin with the +string "<![CDATA[" and end with the string +"]]>": + +CDATA Sections +CDSect +CDStart +CData +CDEnd +CDStart +'<![CDATA[' + +CData +(Char* - +(Char* ']]>' Char*)) + + +CDEnd +']]>' + + + +Within a CDATA section, only the CDEnd string is +recognized as markup, so that left angle brackets and ampersands may occur in +their literal form; they need not (and cannot) be escaped using +"&lt;" and "&amp;". CDATA sections +cannot nest. +

      + +

      An example of a CDATA section, in which "<greeting>" and +"</greeting>" +are recognized as character data, not +markup: +<![CDATA[<greeting>Hello, world!</greeting>]]> +

      +
      + + +Prolog and Document Type Declaration + +

      XML documents +may, and should, +begin with an XML declaration which specifies +the version of +XML being used. +For example, the following is a complete XML document, well-formed but not +valid: + +Hello, world! +]]> +and so is this: +Hello, world! +]]> +

      + +

      The version number "1.0" should be used to indicate +conformance to this version of this specification; it is an error +for a document to use the value "1.0" +if it does not conform to this version of this specification. +It is the intent +of the XML working group to give later versions of this specification +numbers other than "1.0", but this intent does not +indicate a +commitment to produce any future versions of XML, nor if any are produced, to +use any particular numbering scheme. +Since future versions are not ruled out, this construct is provided +as a means to allow the possibility of automatic version recognition, should +it become necessary. +Processors may signal an error if they receive documents labeled with +versions they do not support. +

      +

      The function of the markup in an XML document is to describe its +storage and logical structure and to associate attribute-value pairs +with its logical structures. XML provides a mechanism, the document type declaration, to define +constraints on the logical structure and to support the use of +predefined storage units. + +An XML document is +valid if it has an associated document type +declaration and if the document +complies with the constraints expressed in it.

      +

      The document type declaration must appear before +the first element in the document. + +Prolog + +prolog +XMLDecl? +Misc* +(doctypedecl +Misc*)? +XMLDecl +&xmlpio; +VersionInfo +EncodingDecl? +SDDecl? +S? +&pic; + +VersionInfo +S 'version' Eq +(' VersionNum ' +| " VersionNum ") + +Eq +S? '=' S? + +VersionNum +([a-zA-Z0-9_.:] | '-')+ + +Misc +Comment | PI | +S + +

      + +

      The XML +document type declaration +contains or points to +markup declarations +that provide a grammar for a +class of documents. +This grammar is known as a document type definition, +or DTD. +The document type declaration can point to an external subset (a +special kind of +external entity) containing markup +declarations, or can +contain the markup declarations directly in an internal subset, or can do +both. +The DTD for a document consists of both subsets taken +together. +

      +

      +A markup declaration is +an element type declaration, +an attribute-list declaration, +an entity declaration, or +a notation declaration. + +These declarations may be contained in whole or in part +within parameter entities, +as described in the well-formedness and validity constraints below. +For fuller information, see +.

      + +Document Type Definition + +doctypedecl +'<!DOCTYPE' S +Name (S +ExternalID)? +S? ('[' +(markupdecl +| PEReference +| S)* +']' +S?)? '>' + + +markupdecl +elementdecl +| AttlistDecl +| EntityDecl +| NotationDecl +| PI +| Comment + + + + + + + + +

      The markup declarations may be made up in whole or in part of +the replacement text of +parameter entities. +The productions later in this specification for +individual nonterminals (elementdecl, +AttlistDecl, and so on) describe +the declarations after all the parameter entities have been +included.

      + + +Root Element Type +

      +The Name in the document type declaration must +match the element type of the root element. +

      +
      + + +Proper Declaration/PE Nesting +

      Parameter-entity +replacement text must be properly nested +with markup declarations. +That is to say, if either the first character +or the last character of a markup +declaration (markupdecl above) +is contained in the replacement text for a +parameter-entity reference, +both must be contained in the same replacement text.

      +
      + +PEs in Internal Subset +

      In the internal DTD subset, +parameter-entity references +can occur only where markup declarations can occur, not +within markup declarations. (This does not apply to +references that occur in +external parameter entities or to the external subset.) +

      +
      +

      +Like the internal subset, the external subset and +any external parameter entities referred to in the DTD +must consist of a series of complete markup declarations of the types +allowed by the non-terminal symbol +markupdecl, interspersed with white space +or parameter-entity references. +However, portions of the contents +of the +external subset or of external parameter entities may conditionally be ignored +by using +the conditional section +construct; this is not allowed in the internal subset. + + +External Subset + +extSubset +TextDecl? +extSubsetDecl +extSubsetDecl +( +markupdecl +| conditionalSect +| PEReference +| S +)* + + +

      +

      The external subset and external parameter entities also differ +from the internal subset in that in them, +parameter-entity references +are permitted within markup declarations, +not only between markup declarations.

      +

      An example of an XML document with a document type declaration: + + +Hello, world! +]]> +The system identifier +"hello.dtd" gives the URI of a DTD for the document.

      +

      The declarations can also be given locally, as in this +example: + + +]> +Hello, world! +]]> +If both the external and internal subsets are used, the +internal subset is considered to occur before the external subset. + +This has the effect that entity and attribute-list declarations in the +internal subset take precedence over those in the external subset. +

      +
      + + +Standalone Document Declaration +

      Markup declarations can affect the content of the document, +as passed from an XML processor +to an application; examples are attribute defaults and entity +declarations. +The standalone document declaration, +which may appear as a component of the XML declaration, signals +whether or not there are such declarations which appear external to +the document entity. + +Standalone Document Declaration + +SDDecl + +S +'standalone' Eq +(("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"')) + + + +

      +

      +In a standalone document declaration, the value "yes" indicates +that there +are no markup declarations external to the document +entity (either in the DTD external subset, or in an +external parameter entity referenced from the internal subset) +which affect the information passed from the XML processor to +the application. +The value "no" indicates that there are or may be such +external markup declarations. +Note that the standalone document declaration only +denotes the presence of external declarations; the presence, in a +document, of +references to external entities, when those entities are +internally declared, +does not change its standalone status.

      +

      If there are no external markup declarations, the standalone document +declaration has no meaning. +If there are external markup declarations but there is no standalone +document declaration, the value "no" is assumed.

      +

      Any XML document for which standalone="no" holds can +be converted algorithmically to a standalone document, +which may be desirable for some network delivery applications.

      + +Standalone Document Declaration +

      The standalone document declaration must have +the value "no" if any external markup declarations +contain declarations of:

      +

      attributes with default values, if +elements to which +these attributes apply appear in the document without +specifications of values for these attributes, or

      +

      entities (other than &magicents;), +if references to those +entities appear in the document, or

      +
      +

      attributes with values subject to +normalization, where the +attribute appears in the document with a value which will +change as a result of normalization, or

      +
      + +

      element types with element content, +if white space occurs +directly within any instance of those types. +

      +
      + +
      +

      An example XML declaration with a standalone document declaration:<?xml version="&XML.version;" standalone='yes'?>

      +
      + +White Space Handling + +

      In editing XML documents, it is often convenient to use "white space" +(spaces, tabs, and blank lines, denoted by the nonterminal +S in this specification) to +set apart the markup for greater readability. Such white space is typically +not intended for inclusion in the delivered version of the document. +On the other hand, "significant" white space that should be preserved in the +delivered version is common, for example in poetry and +source code.

      +

      An XML processor +must always pass all characters in a document that are not +markup through to the application. A +validating XML processor must also inform the application +which of these characters constitute white space appearing +in element content. +

      +

      A special attribute +named xml:space may be attached to an element +to signal an intention that in that element, +white space should be preserved by applications. +In valid documents, this attribute, like any other, must be +declared if it is used. +When declared, it must be given as an +enumerated type whose only +possible values are "default" and "preserve". +For example:]]>

      +

      The value "default" signals that applications' +default white-space processing modes are acceptable for this element; the +value "preserve" indicates the intent that applications preserve +all the white space. +This declared intent is considered to apply to all elements within the content +of the element where it is specified, unless overriden with another instance +of the xml:space attribute. +

      +

      The root element of any document +is considered to have signaled no intentions as regards application space +handling, unless it provides a value for +this attribute or the attribute is declared with a default value. +

      + +
      + +End-of-Line Handling +

      XML parsed entities are often stored in +computer files which, for editing convenience, are organized into lines. +These lines are typically separated by some combination of the characters +carriage-return (#xD) and line-feed (#xA).

      +

      To simplify the tasks of applications, +wherever an external parsed entity or the literal entity value +of an internal parsed entity contains either the literal +two-character sequence "#xD#xA" or a standalone literal +#xD, an XML processor must +pass to the application the single character #xA. +(This behavior can +conveniently be produced by normalizing all +line breaks to #xA on input, before parsing.) +

      +
      + +Language Identification +

      In document processing, it is often useful to +identify the natural or formal language +in which the content is +written. +A special attribute named +xml:lang may be inserted in +documents to specify the +language used in the contents and attribute values +of any element in an XML document. +In valid documents, this attribute, like any other, must be +declared if it is used. +The values of the attribute are language identifiers as defined +by , "Tags for the Identification of Languages": + +Language Identification +LanguageID +Langcode +('-' Subcode)* +Langcode +ISO639Code | +IanaCode | +UserCode + +ISO639Code +([a-z] | [A-Z]) ([a-z] | [A-Z]) +IanaCode +('i' | 'I') '-' ([a-z] | [A-Z])+ +UserCode +('x' | 'X') '-' ([a-z] | [A-Z])+ +Subcode +([a-z] | [A-Z])+ + +The Langcode may be any of the following: + +

      a two-letter language code as defined by +, "Codes +for the representation of names of languages"

      +

      a language identifier registered with the Internet +Assigned Numbers Authority ; these begin with the +prefix "i-" (or "I-")

      +

      a language identifier assigned by the user, or agreed on +between parties in private use; these must begin with the +prefix "x-" or "X-" in order to ensure that they do not conflict +with names later standardized or registered with IANA

      +

      +

      There may be any number of Subcode segments; if +the first +subcode segment exists and the Subcode consists of two +letters, then it must be a country code from +, "Codes +for the representation of names of countries." +If the first +subcode consists of more than two letters, it must be +a subcode for the language in question registered with IANA, +unless the Langcode begins with the prefix +"x-" or +"X-".

      +

      It is customary to give the language code in lower case, and +the country code (if any) in upper case. +Note that these values, unlike other names in XML documents, +are case insensitive.

      +

      For example: +The quick brown fox jumps over the lazy dog.

      +

      What colour is it?

      +

      What color is it?

      + + Habe nun, ach! Philosophie, + Juristerei, und Medizin + und leider auch Theologie + durchaus studiert mit heißem Bemüh'n. + ]]>

      + +

      The intent declared with xml:lang is considered to apply to +all attributes and content of the element where it is specified, +unless overridden with an instance of xml:lang +on another element within that content.

      + +

      A simple declaration for xml:lang might take +the form +xml:lang NMTOKEN #IMPLIED +but specific default values may also be given, if appropriate. In a +collection of French poems for English students, with glosses and +notes in English, the xml:lang attribute might be declared this way: + + + ]]> +

      + +
      +
      + + + +Logical Structures + +

      Each XML document contains one or more +elements, the boundaries of which are +either delimited by start-tags +and end-tags, or, for empty elements, by an empty-element tag. Each element has a type, +identified by name, sometimes called its "generic +identifier" (GI), and may have a set of +attribute specifications. Each attribute specification +has a name and a value. +

      +Element +element +EmptyElemTag +| STag content +ETag + + + + +

      This specification does not constrain the semantics, use, or (beyond +syntax) names of the element types and attributes, except that names +beginning with a match to (('X'|'x')('M'|'m')('L'|'l')) +are reserved for standardization in this or future versions of this +specification. +

      + +Element Type Match +

      +The Name in an element's end-tag must match +the element type in +the start-tag. +

      +
      + +Element Valid +

      An element is +valid if +there is a declaration matching +elementdecl where the +Name matches the element type, and +one of the following holds:

      + +

      The declaration matches EMPTY and the element has no +content.

      +

      The declaration matches children and +the sequence of +child elements +belongs to the language generated by the regular expression in +the content model, with optional white space (characters +matching the nonterminal S) between each pair +of child elements.

      +

      The declaration matches Mixed and +the content consists of character +data and child elements +whose types match names in the content model.

      +

      The declaration matches ANY, and the types +of any child elements have +been declared.

      +
      +
      + + +Start-Tags, End-Tags, and Empty-Element Tags + +

      The beginning of every +non-empty XML element is marked by a start-tag. + +Start-tag + +STag +'<' Name +(S Attribute)* +S? '>' + + +Attribute +Name Eq +AttValue + + + + + +The Name in +the start- and end-tags gives the +element's type. + +The Name-AttValue pairs are +referred to as +the attribute specifications of the element, +with the +Name in each pair +referred to as the attribute name and +the content of the +AttValue (the text between the +' or " delimiters) +as the attribute value. +

      + +Unique Att Spec +

      +No attribute name may appear more than once in the same start-tag +or empty-element tag. +

      +
      + +Attribute Value Type +

      +The attribute must have been declared; the value must be of the type +declared for it. +(For attribute types, see .) +

      +
      + +No External Entity References +

      +Attribute values cannot contain direct or indirect entity references +to external entities. +

      +
      + +No < in Attribute Values +

      The replacement text of any entity +referred to directly or indirectly in an attribute +value (other than "&lt;") must not contain +a <. +

      +

      An example of a start-tag: +<termdef id="dt-dog" term="dog">

      +

      The end of every element +that begins with a start-tag must +be marked by an end-tag +containing a name that echoes the element's type as given in the +start-tag: + +End-tag + +ETag +'</' Name +S? '>' + + +

      +

      An example of an end-tag:</termdef>

      +

      The +text between the start-tag and +end-tag is called the element's +content: + +Content of Elements + +content +(element | CharData +| Reference | CDSect +| PI | Comment)* + + + +

      +

      If an element is empty, +it must be represented either by a start-tag immediately followed +by an end-tag or by an empty-element tag. +An +empty-element tag takes a special form: + +Tags for Empty Elements + +EmptyElemTag +'<' Name (S +Attribute)* S? +'/>' + + + + +

      +

      Empty-element tags may be used for any element which has no +content, whether or not it is declared using the keyword +EMPTY. +For interoperability, the empty-element +tag must be used, and can only be used, for elements which are +declared EMPTY.

      +

      Examples of empty elements: +<IMG align="left" + src="http://www.w3.org/Icons/WWW/w3c_home" /> +<br></br> +<br/>

      +
      + + +Element Type Declarations + +

      The element structure of an +XML document may, for +validation purposes, +be constrained +using element type and attribute-list declarations. +An element type declaration constrains the element's +content. +

      + +

      Element type declarations often constrain which element types can +appear as children of the element. +At user option, an XML processor may issue a warning +when a declaration mentions an element type for which no declaration +is provided, but this is not an error.

      +

      An element +type declaration takes the form: + +Element Type Declaration + +elementdecl +'<!ELEMENT' S +Name +S +contentspec +S? '>' + +contentspec +'EMPTY' +| 'ANY' +| Mixed +| children + + + + +where the Name gives the element type +being declared. +

      + + +Unique Element Type Declaration +

      +No element type may be declared more than once. +

      +
      + +

      Examples of element type declarations: +<!ELEMENT br EMPTY> +<!ELEMENT p (#PCDATA|emph)* > +<!ELEMENT %name.para; %content.para; > +<!ELEMENT container ANY>

      + + +Element Content + +

      An element type has +element content when elements of that +type must contain only child +elements (no character data), optionally separated by +white space (characters matching the nonterminal +S). + +In this case, the +constraint includes a content model, a simple grammar governing +the allowed types of the child +elements and the order in which they are allowed to appear. +The grammar is built on +content particles (cps), which consist of names, +choice lists of content particles, or +sequence lists of content particles: + +Element-content Models + +children +(choice +| seq) +('?' | '*' | '+')? +cp +(Name +| choice +| seq) +('?' | '*' | '+')? +choice +'(' S? cp +( S? '|' S? cp )* +S? ')' + +seq +'(' S? cp +( S? ',' S? cp )* +S? ')' + + + + +where each Name is the type of an element which may +appear as a child. +Any content +particle in a choice list may appear in the element content at the location where +the choice list appears in the grammar; +content particles occurring in a sequence list must each +appear in the element content in the +order given in the list. +The optional character following a name or list governs +whether the element or the content particles in the list may occur one +or more (+), zero or more (*), or zero or +one times (?). +The absence of such an operator means that the element or content particle +must appear exactly once. +This syntax +and meaning are identical to those used in the productions in this +specification.

      +

      +The content of an element matches a content model if and only if it is +possible to trace out a path through the content model, obeying the +sequence, choice, and repetition operators and matching each element in +the content against an element type in the content model. For compatibility, it is an error +if an element in the document can +match more than one occurrence of an element type in the content model. +For more information, see . + + +

      + +Proper Group/PE Nesting +

      Parameter-entity +replacement text must be properly nested +with parenthetized groups. +That is to say, if either of the opening or closing parentheses +in a choice, seq, or +Mixed construct +is contained in the replacement text for a +parameter entity, +both must be contained in the same replacement text.

      +

      For interoperability, +if a parameter-entity reference appears in a +choice, seq, or +Mixed construct, its replacement text +should not be empty, and +neither the first nor last non-blank +character of the replacement text should be a connector +(| or ,). +

      +
      +

      Examples of element-content models: +<!ELEMENT spec (front, body, back?)> +<!ELEMENT div1 (head, (p | list | note)*, div2*)> +<!ELEMENT dictionary-body (%div.mix; | %dict.mix;)*>

      +
      + + +Mixed Content + +

      An element +type has +mixed content when elements of that type may contain +character data, optionally interspersed with +child elements. +In this case, the types of the child elements +may be constrained, but not their order or their number of occurrences: + +Mixed-content Declaration + +Mixed +'(' S? +'#PCDATA' +(S? +'|' +S? +Name)* +S? +')*' +| '(' S? '#PCDATA' S? ')' + + + + + + +where the Names give the types of elements +that may appear as children. +

      + +No Duplicate Types +

      The same name must not appear more than once in a single mixed-content +declaration. +

      +

      Examples of mixed content declarations: +<!ELEMENT p (#PCDATA|a|ul|b|i|em)*> +<!ELEMENT p (#PCDATA | %font; | %phrase; | %special; | %form;)* > +<!ELEMENT b (#PCDATA)>

      +
      +
      + + +Attribute-List Declarations + +

      Attributes are used to associate +name-value pairs with elements. +Attribute specifications may appear only within start-tags +and empty-element tags; +thus, the productions used to +recognize them appear in . +Attribute-list +declarations may be used: + +

      To define the set of attributes pertaining to a given +element type.

      +

      To establish type constraints for these +attributes.

      +

      To provide default values +for attributes.

      + +

      +

      +Attribute-list declarations specify the name, data type, and default +value (if any) of each attribute associated with a given element type: + +Attribute-list Declaration +AttlistDecl +'<!ATTLIST' S +Name +AttDef* +S? '>' + +AttDef +S Name +S AttType +S DefaultDecl + + +The Name in the +AttlistDecl rule is the type of an element. At +user option, an XML processor may issue a warning if attributes are +declared for an element type not itself declared, but this is not an +error. The Name in the +AttDef rule is +the name of the attribute.

      +

      +When more than one AttlistDecl is provided for a +given element type, the contents of all those provided are merged. When +more than one definition is provided for the same attribute of a +given element type, the first declaration is binding and later +declarations are ignored. +For interoperability, writers of DTDs +may choose to provide at most one attribute-list declaration +for a given element type, at most one attribute definition +for a given attribute name, and at least one attribute definition +in each attribute-list declaration. +For interoperability, an XML processor may at user option +issue a warning when more than one attribute-list declaration is +provided for a given element type, or more than one attribute definition +is provided +for a given attribute, but this is not an error. +

      + + +Attribute Types + +

      XML attribute types are of three kinds: a string type, a +set of tokenized types, and enumerated types. The string type may take +any literal string as a value; the tokenized types have varying lexical +and semantic constraints, as noted: + +Attribute Types + +AttType +StringType +| TokenizedType +| EnumeratedType + + +StringType +'CDATA' + +TokenizedType +'ID' + + + +| 'IDREF' + +| 'IDREFS' + +| 'ENTITY' + +| 'ENTITIES' + +| 'NMTOKEN' + +| 'NMTOKENS' + + + +

      + +ID +

      +Values of type ID must match the +Name production. +A name must not appear more than once in +an XML document as a value of this type; i.e., ID values must uniquely +identify the elements which bear them. +

      +
      + +One ID per Element Type +

      No element type may have more than one ID attribute specified.

      +
      + +ID Attribute Default +

      An ID attribute must have a declared default of #IMPLIED or +#REQUIRED.

      +
      + +IDREF +

      +Values of type IDREF must match +the Name production, and +values of type IDREFS must match +Names; +each Name must match the value of an ID attribute on +some element in the XML document; i.e. IDREF values must +match the value of some ID attribute. +

      +
      + +Entity Name +

      +Values of type ENTITY +must match the Name production, +values of type ENTITIES must match +Names; +each Name must +match the +name of an unparsed entity declared in the +DTD. +

      +
      + +Name Token +

      +Values of type NMTOKEN must match the +Nmtoken production; +values of type NMTOKENS must +match Nmtokens. +

      +
      + +

      Enumerated attributes can take one +of a list of values provided in the declaration. There are two +kinds of enumerated types: + +Enumerated Attribute Types +EnumeratedType +NotationType +| Enumeration + +NotationType +'NOTATION' +S +'(' +S? +Name +(S? '|' S? +Name)* +S? ')' + + +Enumeration +'(' S? +Nmtoken +(S? '|' +S? +Nmtoken)* +S? +')' + + +A NOTATION attribute identifies a +notation, declared in the +DTD with associated system and/or public identifiers, to +be used in interpreting the element to which the attribute +is attached. +

      + + +Notation Attributes +

      +Values of this type must match +one of the notation names included in +the declaration; all notation names in the declaration must +be declared. +

      +
      + +Enumeration +

      +Values of this type +must match one of the Nmtoken tokens in the +declaration. +

      +
      +

      For interoperability, the same +Nmtoken should not occur more than once in the +enumerated attribute types of a single element type. +

      +
      + + +Attribute Defaults + +

      An attribute declaration provides +information on whether +the attribute's presence is required, and if not, how an XML processor should +react if a declared attribute is absent in a document. + +Attribute Defaults + +DefaultDecl +'#REQUIRED' +| '#IMPLIED' +| (('#FIXED' S)? AttValue) + + + + + + + + +

      +

      In an attribute declaration, #REQUIRED means that the +attribute must always be provided, #IMPLIED that no default +value is provided. + +If the +declaration +is neither #REQUIRED nor #IMPLIED, then the +AttValue value contains the declared +default value; the #FIXED keyword states that +the attribute must always have the default value. +If a default value +is declared, when an XML processor encounters an omitted attribute, it +is to behave as though the attribute were present with +the declared default value.

      + +Required Attribute +

      If the default declaration is the keyword #REQUIRED, then +the attribute must be specified for +all elements of the type in the attribute-list declaration. +

      + +Attribute Default Legal +

      +The declared +default value must meet the lexical constraints of the declared attribute type. +

      +
      + +Fixed Attribute Default +

      If an attribute has a default value declared with the +#FIXED keyword, instances of that attribute must +match the default value. +

      + +

      Examples of attribute-list declarations: +<!ATTLIST termdef + id ID #REQUIRED + name CDATA #IMPLIED> +<!ATTLIST list + type (bullets|ordered|glossary) "ordered"> +<!ATTLIST form + method CDATA #FIXED "POST">

      +
      + +Attribute-Value Normalization +

      Before the value of an attribute is passed to the application +or checked for validity, the +XML processor must normalize it as follows: + +

      a character reference is processed by appending the referenced +character to the attribute value

      +

      an entity reference is processed by recursively processing the +replacement text of the entity

      +

      a whitespace character (#x20, #xD, #xA, #x9) is processed by +appending #x20 to the normalized value, except that only a single #x20 +is appended for a "#xD#xA" sequence that is part of an external +parsed entity or the literal entity value of an internal parsed +entity

      +

      other characters are processed by appending them to the normalized +value

      +
      +

      +

      If the declared value is not CDATA, then the XML processor must +further process the normalized attribute value by discarding any +leading and trailing space (#x20) characters, and by replacing +sequences of space (#x20) characters by a single space (#x20) +character.

      +

      +All attributes for which no declaration has been read should be treated +by a non-validating parser as if declared +CDATA. +

      +
      +
      + +Conditional Sections +

      +Conditional sections are portions of the +document type declaration external subset +which are +included in, or excluded from, the logical structure of the DTD based on +the keyword which governs them. + +Conditional Section + +conditionalSect +includeSect +| ignoreSect + + +includeSect +'<![' S? 'INCLUDE' S? '[' + +extSubsetDecl +']]>' + + +ignoreSect +'<![' S? 'IGNORE' S? '[' +ignoreSectContents* +']]>' + + +ignoreSectContents +Ignore +('<![' ignoreSectContents ']]>' +Ignore)* +Ignore +Char* - +(Char* ('<![' | ']]>') +Char*) + + + + +

      +

      Like the internal and external DTD subsets, a conditional section +may contain one or more complete declarations, +comments, processing instructions, +or nested conditional sections, intermingled with white space. +

      +

      If the keyword of the +conditional section is INCLUDE, then the contents of the conditional +section are part of the DTD. +If the keyword of the conditional +section is IGNORE, then the contents of the conditional section are +not logically part of the DTD. +Note that for reliable parsing, the contents of even ignored +conditional sections must be read in order to +detect nested conditional sections and ensure that the end of the +outermost (ignored) conditional section is properly detected. +If a conditional section with a +keyword of INCLUDE occurs within a larger conditional +section with a keyword of IGNORE, both the outer and the +inner conditional sections are ignored.

      +

      If the keyword of the conditional section is a +parameter-entity reference, the parameter entity must be replaced by its +content before the processor decides whether to +include or ignore the conditional section.

      +

      An example: +<!ENTITY % draft 'INCLUDE' > +<!ENTITY % final 'IGNORE' > + +<![%draft;[ +<!ELEMENT book (comments*, title, body, supplements?)> +]]> +<![%final;[ +<!ELEMENT book (title, body, supplements?)> +]]> + +

      +
      + + + + +
      + + + +Physical Structures + +

      An XML document may consist +of one or many storage units. These are called +entities; they all have content and are all +(except for the document entity, see below, and +the external DTD subset) +identified by name. + +Each XML document has one entity +called the document entity, which serves +as the starting point for the XML +processor and may contain the whole document.

      +

      Entities may be either parsed or unparsed. +A parsed entity's +contents are referred to as its +replacement text; +this text is considered an +integral part of the document.

      + +

      An +unparsed entity +is a resource whose contents may or may not be +text, and if text, may not be XML. +Each unparsed entity +has an associated notation, identified by name. +Beyond a requirement +that an XML processor make the identifiers for the entity and +notation available to the application, +XML places no constraints on the contents of unparsed entities. +

      +

      +Parsed entities are invoked by name using entity references; +unparsed entities by name, given in the value of ENTITY +or ENTITIES +attributes.

      +

      General entities +are entities for use within the document content. +In this specification, general entities are sometimes referred +to with the unqualified term entity when this leads +to no ambiguity. +Parameter entities +are parsed entities for use within the DTD. +These two types of entities use different forms of reference and +are recognized in different contexts. +Furthermore, they occupy different namespaces; a parameter entity and +a general entity with the same name are two distinct entities. +

      + + +Character and Entity References +

      +A character reference refers to a specific character in the +ISO/IEC 10646 character set, for example one not directly accessible from +available input devices. + +Character Reference +CharRef +'&#' [0-9]+ ';' +| '&hcro;' [0-9a-fA-F]+ ';' + + + + +Legal Character +

      Characters referred to using character references must +match the production for +Char.

      + +If the character reference begins with "&#x", the digits and +letters up to the terminating ; provide a hexadecimal +representation of the character's code point in ISO/IEC 10646. +If it begins just with "&#", the digits up to the terminating +; provide a decimal representation of the character's +code point. + +

      +

      An entity +reference refers to the content of a named entity. +References to +parsed general entities +use ampersand (&) and semicolon (;) as +delimiters. + +Parameter-entity references use percent-sign (%) and +semicolon +(;) as delimiters. +

      + +Entity Reference +Reference +EntityRef +| CharRef +EntityRef +'&' Name ';' + + + + + +PEReference +'%' Name ';' + + + + + + + +Entity Declared +

      In a document without any DTD, a document with only an internal +DTD subset which contains no parameter entity references, or a document with +"standalone='yes'", +the Name given in the entity reference must +match that in an +entity declaration, except that +well-formed documents need not declare +any of the following entities: &magicents;. +The declaration of a parameter entity must precede any reference to it. +Similarly, the declaration of a general entity must precede any +reference to it which appears in a default value in an attribute-list +declaration.

      +

      Note that if entities are declared in the external subset or in +external parameter entities, a non-validating processor is +not obligated to read +and process their declarations; for such documents, the rule that +an entity must be declared is a well-formedness constraint only +if standalone='yes'.

      +
      + +Entity Declared +

      In a document with an external subset or external parameter +entities with "standalone='no'", +the Name given in the entity reference must match that in an +entity declaration. +For interoperability, valid documents should declare the entities +&magicents;, in the form +specified in . +The declaration of a parameter entity must precede any reference to it. +Similarly, the declaration of a general entity must precede any +reference to it which appears in a default value in an attribute-list +declaration.

      +
      + + +Parsed Entity +

      +An entity reference must not contain the name of an unparsed entity. Unparsed entities may be referred +to only in attribute values declared to +be of type ENTITY or ENTITIES. +

      +
      + +No Recursion +

      +A parsed entity must not contain a recursive reference to itself, +either directly or indirectly. +

      +
      + +In DTD +

      +Parameter-entity references may only appear in the +DTD. +

      +
      +

      Examples of character and entity references: +Type <key>less-than</key> (&hcro;3C;) to save options. +This document was prepared on &docdate; and +is classified &security-level;.

      +

      Example of a parameter-entity reference: + + + +%ISOLat2;]]>

      +
      + + +Entity Declarations + +

      +Entities are declared thus: + +Entity Declaration + +EntityDecl +GEDecl | PEDecl + + +GEDecl +'<!ENTITY' S Name +S EntityDef +S? '>' + +PEDecl +'<!ENTITY' S '%' S +Name S +PEDef S? '>' + + +EntityDef +EntityValue +| (ExternalID +NDataDecl?) + + + +PEDef +EntityValue +| ExternalID + + +The Name identifies the entity in an +entity reference or, in the case of an +unparsed entity, in the value of an ENTITY or ENTITIES +attribute. +If the same entity is declared more than once, the first declaration +encountered is binding; at user option, an XML processor may issue a +warning if entities are declared multiple times. +

      + + +Internal Entities + +

      If +the entity definition is an +EntityValue, +the defined entity is called an internal entity. +There is no separate physical +storage object, and the content of the entity is given in the +declaration. +Note that some processing of entity and character references in the +literal entity value may be required to +produce the correct replacement +text: see . +

      +

      An internal entity is a parsed +entity.

      +

      Example of an internal entity declaration: +<!ENTITY Pub-Status "This is a pre-release of the + specification.">

      +
      + + +External Entities + +

      If the entity is not +internal, it is an external +entity, declared as follows: + +External Entity Declaration + +ExternalID +'SYSTEM' S +SystemLiteral +| 'PUBLIC' S +PubidLiteral +S +SystemLiteral + + +NDataDecl +S 'NDATA' S +Name + + +If the NDataDecl is present, this is a +general unparsed +entity; otherwise it is a parsed entity.

      + +Notation Declared +

      +The Name must match the declared name of a +notation. +

      +
      +

      The +SystemLiteral +is called the entity's system identifier. It is a URI, +which may be used to retrieve the entity. +Note that the hash mark (#) and fragment identifier +frequently used with URIs are not, formally, part of the URI itself; +an XML processor may signal an error if a fragment identifier is +given as part of a system identifier. +Unless otherwise provided by information outside the scope of this +specification (e.g. a special XML element type defined by a particular +DTD, or a processing instruction defined by a particular application +specification), relative URIs are relative to the location of the +resource within which the entity declaration occurs. +A URI might thus be relative to the +document entity, to the entity +containing the external DTD subset, +or to some other external parameter entity. +

      +

      An XML processor should handle a non-ASCII character in a URI by +representing the character in UTF-8 as one or more bytes, and then +escaping these bytes with the URI escaping mechanism (i.e., by +converting each byte to %HH, where HH is the hexadecimal notation of the +byte value).

      +

      +In addition to a system identifier, an external identifier may +include a public identifier. +An XML processor attempting to retrieve the entity's content may use the public +identifier to try to generate an alternative URI. If the processor +is unable to do so, it must use the URI specified in the system +literal. Before a match is attempted, all strings +of white space in the public identifier must be normalized to single space characters (#x20), +and leading and trailing white space must be removed.

      +

      Examples of external entity declarations: +<!ENTITY open-hatch + SYSTEM "http://www.textuality.com/boilerplate/OpenHatch.xml"> +<!ENTITY open-hatch + PUBLIC "-//Textuality//TEXT Standard open-hatch boilerplate//EN" + "http://www.textuality.com/boilerplate/OpenHatch.xml"> +<!ENTITY hatch-pic + SYSTEM "../grafix/OpenHatch.gif" + NDATA gif >

      +
      + +
      + + +Parsed Entities + +The Text Declaration +

      External parsed entities may each begin with a text +declaration. + +Text Declaration + +TextDecl +&xmlpio; +VersionInfo? +EncodingDecl +S? &pic; + + + +

      +

      The text declaration must be provided literally, not +by reference to a parsed entity. +No text declaration may appear at any position other than the beginning of +an external parsed entity.

      +
      + +Well-Formed Parsed Entities +

      The document entity is well-formed if it matches the production labeled +document. +An external general +parsed entity is well-formed if it matches the production labeled +extParsedEnt. +An external parameter +entity is well-formed if it matches the production labeled +extPE. + +Well-Formed External Parsed Entity +extParsedEnt +TextDecl? +content + +extPE +TextDecl? +extSubsetDecl + + +An internal general parsed entity is well-formed if its replacement text +matches the production labeled +content. +All internal parameter entities are well-formed by definition. +

      +

      A consequence of well-formedness in entities is that the logical +and physical structures in an XML document are properly nested; no +start-tag, +end-tag, +empty-element tag, +element, +comment, +processing instruction, +character +reference, or +entity reference +can begin in one entity and end in another.

      +
      + +Character Encoding in Entities + +

      Each external parsed entity in an XML document may use a different +encoding for its characters. All XML processors must be able to read +entities in either UTF-8 or UTF-16. + +

      +

      Entities encoded in UTF-16 must +begin with the Byte Order Mark described by ISO/IEC 10646 Annex E and +Unicode Appendix B (the ZERO WIDTH NO-BREAK SPACE character, #xFEFF). +This is an encoding signature, not part of either the markup or the +character data of the XML document. +XML processors must be able to use this character to +differentiate between UTF-8 and UTF-16 encoded documents.

      +

      Although an XML processor is required to read only entities in +the UTF-8 and UTF-16 encodings, it is recognized that other encodings are +used around the world, and it may be desired for XML processors +to read entities that use them. +Parsed entities which are stored in an encoding other than +UTF-8 or UTF-16 must begin with a text +declaration containing an encoding declaration: + +Encoding Declaration +EncodingDecl +S +'encoding' Eq +('"' EncName '"' | +"'" EncName "'" ) + + +EncName +[A-Za-z] ([A-Za-z0-9._] | '-')* +Encoding name contains only Latin characters + + +In the document entity, the encoding +declaration is part of the XML declaration. +The EncName is the name of the encoding used. +

      + +

      In an encoding declaration, the values +"UTF-8", +"UTF-16", +"ISO-10646-UCS-2", and +"ISO-10646-UCS-4" should be +used for the various encodings and transformations of Unicode / +ISO/IEC 10646, the values +"ISO-8859-1", +"ISO-8859-2", ... +"ISO-8859-9" should be used for the parts of ISO 8859, and +the values +"ISO-2022-JP", +"Shift_JIS", and +"EUC-JP" +should be used for the various encoded forms of JIS X-0208-1997. XML +processors may recognize other encodings; it is recommended that +character encodings registered (as charsets) +with the Internet Assigned Numbers +Authority , other than those just listed, should be +referred to +using their registered names. +Note that these registered names are defined to be +case-insensitive, so processors wishing to match against them +should do so in a case-insensitive +way.

      +

      In the absence of information provided by an external +transport protocol (e.g. HTTP or MIME), +it is an error for an entity including +an encoding declaration to be presented to the XML processor +in an encoding other than that named in the declaration, +for an encoding declaration to occur other than at the beginning +of an external entity, or for +an entity which begins with neither a Byte Order Mark nor an encoding +declaration to use an encoding other than UTF-8. +Note that since ASCII +is a subset of UTF-8, ordinary ASCII entities do not strictly need +an encoding declaration.

      + +

      It is a fatal error when an XML processor +encounters an entity with an encoding that it is unable to process.

      +

      Examples of encoding declarations: +<?xml encoding='UTF-8'?> +<?xml encoding='EUC-JP'?>

      +
      +
      + +XML Processor Treatment of Entities and References +

      The table below summarizes the contexts in which character references, +entity references, and invocations of unparsed entities might appear and the +required behavior of an XML processor in +each case. +The labels in the leftmost column describe the recognition context: + + +

      as a reference +anywhere after the start-tag and +before the end-tag of an element; corresponds +to the nonterminal content.

      + + + +

      as a reference within either the value of an attribute in a +start-tag, or a default +value in an attribute declaration; +corresponds to the nonterminal +AttValue.

      + + +

      as a Name, not a reference, appearing either as +the value of an +attribute which has been declared as type ENTITY, or as one of +the space-separated tokens in the value of an attribute which has been +declared as type ENTITIES.

      +
      + +

      as a reference +within a parameter or internal entity's +literal entity value in +the entity's declaration; corresponds to the nonterminal +EntityValue.

      + +

      as a reference within either the internal or external subsets of the +DTD, but outside +of an EntityValue or +AttValue.

      +
      +

      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Not Recognized +

      Outside the DTD, the % character has no +special significance; thus, what would be parameter entity references in the +DTD are not recognized as markup in content. +Similarly, the names of unparsed entities are not recognized except +when they appear in the value of an appropriately declared attribute. +

      +
      + +Included +

      An entity is +included when its +replacement text is retrieved +and processed, in place of the reference itself, +as though it were part of the document at the location the +reference was recognized. +The replacement text may contain both +character data +and (except for parameter entities) markup, +which must be recognized in +the usual way, except that the replacement text of entities used to escape +markup delimiters (the entities &magicents;) is always treated as +data. (The string "AT&amp;T;" expands to +"AT&T;" and the remaining ampersand is not recognized +as an entity-reference delimiter.) +A character reference is included when the indicated +character is processed in place of the reference itself. +

      +
      + +Included If Validating +

      When an XML processor recognizes a reference to a parsed entity, in order +to validate +the document, the processor must +include its +replacement text. +If the entity is external, and the processor is not +attempting to validate the XML document, the +processor may, but need not, +include the entity's replacement text. +If a non-validating parser does not include the replacement text, +it must inform the application that it recognized, but did not +read, the entity.

      +

      This rule is based on the recognition that the automatic inclusion +provided by the SGML and XML entity mechanism, primarily designed +to support modularity in authoring, is not necessarily +appropriate for other applications, in particular document browsing. +Browsers, for example, when encountering an external parsed entity reference, +might choose to provide a visual indication of the entity's +presence and retrieve it for display only on demand. +

      +
      + +Forbidden +

      The following are forbidden, and constitute +fatal errors: + +

      the appearance of a reference to an +unparsed entity. +

      +

      the appearance of any character or general-entity reference in the +DTD except within an EntityValue or +AttValue.

      +

      a reference to an external entity in an attribute value.

      +
      + +

      +
      + +Included in Literal +

      When an entity reference appears in an +attribute value, or a parameter entity reference appears in a literal entity +value, its replacement text is +processed in place of the reference itself as though it +were part of the document at the location the reference was recognized, +except that a single or double quote character in the replacement text +is always treated as a normal data character and will not terminate the +literal. +For example, this is well-formed: + +]]> +while this is not: +<!ENTITY EndAttr "27'" > +<element attribute='a-&EndAttr;> +

      + +Notify +

      When the name of an unparsed +entity appears as a token in the +value of an attribute of declared type ENTITY or ENTITIES, +a validating processor must inform the +application of the system +and public (if any) +identifiers for both the entity and its associated +notation.

      +
      + +Bypassed +

      When a general entity reference appears in the +EntityValue in an entity declaration, +it is bypassed and left as is.

      +
      + +Included as PE +

      Just as with external parsed entities, parameter entities +need only be included if +validating. +When a parameter-entity reference is recognized in the DTD +and included, its +replacement +text is enlarged by the attachment of one leading and one following +space (#x20) character; the intent is to constrain the replacement +text of parameter +entities to contain an integral number of grammatical tokens in the DTD. +

      +
      + + + +Construction of Internal Entity Replacement Text +

      In discussing the treatment +of internal entities, it is +useful to distinguish two forms of the entity's value. +The literal +entity value is the quoted string actually +present in the entity declaration, corresponding to the +non-terminal EntityValue. +The replacement +text is the content of the entity, after +replacement of character references and parameter-entity +references. +

      + +

      The literal entity value +as given in an internal entity declaration +(EntityValue) may contain character, +parameter-entity, and general-entity references. +Such references must be contained entirely within the +literal entity value. +The actual replacement text that is +included as described above +must contain the replacement text of any +parameter entities referred to, and must contain the character +referred to, in place of any character references in the +literal entity value; however, +general-entity references must be left as-is, unexpanded. +For example, given the following declarations: + + + +]]> +then the replacement text for the entity "book" is: +La Peste: Albert Camus, +© 1947 Éditions Gallimard. &rights; +The general-entity reference "&rights;" would be expanded +should the reference "&book;" appear in the document's +content or an attribute value.

      +

      These simple rules may have complex interactions; for a detailed +discussion of a difficult example, see +. +

      + +
      + +Predefined Entities +

      Entity and character +references can both be used to escape the left angle bracket, +ampersand, and other delimiters. A set of general entities +(&magicents;) is specified for this purpose. +Numeric character references may also be used; they are +expanded immediately when recognized and must be treated as +character data, so the numeric character references +"&#60;" and "&#38;" may be used to +escape < and & when they occur +in character data.

      +

      All XML processors must recognize these entities whether they +are declared or not. +For interoperability, +valid XML documents should declare these +entities, like any others, before using them. +If the entities in question are declared, they must be declared +as internal entities whose replacement text is the single +character being escaped or a character reference to +that character, as shown below. + + + + + +]]> +Note that the < and & characters +in the declarations of "lt" and "amp" +are doubly escaped to meet the requirement that entity replacement +be well-formed. +

      +
      + + +Notation Declarations + +

      Notations identify by +name the format of unparsed +entities, the +format of elements which bear a notation attribute, +or the application to which +a processing instruction is +addressed.

      +

      +Notation declarations +provide a name for the notation, for use in +entity and attribute-list declarations and in attribute specifications, +and an external identifier for the notation which may allow an XML +processor or its client application to locate a helper application +capable of processing data in the given notation. + +Notation Declarations +NotationDecl +'<!NOTATION' S Name +S +(ExternalID | +PublicID) +S? '>' +PublicID +'PUBLIC' S +PubidLiteral + + +

      +

      XML processors must provide applications with the name and external +identifier(s) of any notation declared and referred to in an attribute +value, attribute definition, or entity declaration. They may +additionally resolve the external identifier into the +system identifier, +file name, or other information needed to allow the +application to call a processor for data in the notation described. (It +is not an error, however, for XML documents to declare and refer to +notations for which notation-specific applications are not available on +the system where the XML processor or application is running.)

      +
      + + + +Document Entity + +

      The document +entity serves as the root of the entity +tree and a starting-point for an XML +processor. +This specification does +not specify how the document entity is to be located by an XML +processor; unlike other entities, the document entity has no name and might +well appear on a processor input stream +without any identification at all.

      +
      + + + + + + +Conformance + + +Validating and Non-Validating Processors +

      Conforming XML processors fall into two +classes: validating and non-validating.

      +

      Validating and non-validating processors alike must report +violations of this specification's well-formedness constraints +in the content of the +document entity and any +other parsed entities that +they read.

      +

      +Validating processors must report +violations of the constraints expressed by the declarations in the +DTD, and +failures to fulfill the validity constraints given +in this specification. + +To accomplish this, validating XML processors must read and process the entire +DTD and all external parsed entities referenced in the document. +

      +

      Non-validating processors are required to check only the +document entity, including +the entire internal DTD subset, for well-formedness. + +While they are not required to check the document for validity, +they are required to +process all the declarations they read in the +internal DTD subset and in any parameter entity that they +read, up to the first reference +to a parameter entity that they do not read; that is to +say, they must +use the information in those declarations to +normalize attribute values, +include the replacement text of +internal entities, and supply +default attribute values. + +They must not process +entity declarations or +attribute-list declarations +encountered after a reference to a parameter entity that is not +read, since the entity may have contained overriding declarations. +

      +
      + +Using XML Processors +

      The behavior of a validating XML processor is highly predictable; it +must read every piece of a document and report all well-formedness and +validity violations. +Less is required of a non-validating processor; it need not read any +part of the document other than the document entity. +This has two effects that may be important to users of XML processors: + +

      Certain well-formedness errors, specifically those that require +reading external entities, may not be detected by a non-validating processor. +Examples include the constraints entitled +Entity Declared, +Parsed Entity, and +No Recursion, as well +as some of the cases described as +forbidden in +.

      +

      The information passed from the processor to the application may +vary, depending on whether the processor reads +parameter and external entities. +For example, a non-validating processor may not +normalize attribute values, +include the replacement text of +internal entities, or supply +default attribute values, +where doing so depends on having read declarations in +external or parameter entities.

      + +

      +

      For maximum reliability in interoperating between different XML +processors, applications which use non-validating processors should not +rely on any behaviors not required of such processors. +Applications which require facilities such as the use of default +attributes or internal entities which are declared in external +entities should use validating XML processors.

      +
      +
      + + +Notation + +

      The formal grammar of XML is given in this specification using a simple +Extended Backus-Naur Form (EBNF) notation. Each rule in the grammar defines +one symbol, in the form +symbol ::= expression

      +

      Symbols are written with an initial capital letter if they are +defined by a regular expression, or with an initial lower case letter +otherwise. +Literal strings are quoted. + +

      + +

      Within the expression on the right-hand side of a rule, the following +expressions are used to match strings of one or more characters: + + + +

      where N is a hexadecimal integer, the +expression matches the character in ISO/IEC 10646 whose canonical +(UCS-4) +code value, when interpreted as an unsigned binary number, has +the value indicated. The number of leading zeros in the +#xN form is insignificant; the number of leading +zeros in the corresponding code value +is governed by the character +encoding in use and is not significant for XML.

      + + + +

      matches any character +with a value in the range(s) indicated (inclusive).

      +
      + + +

      matches any character +with a value outside the +range indicated.

      +
      + + +

      matches any character +with a value not among the characters given.

      +
      + + +

      matches a literal string matching +that given inside the double quotes.

      +
      + + +

      matches a literal string matching +that given inside the single quotes.

      +
      + +These symbols may be combined to match more complex patterns as follows, +where A and B represent simple expressions: + + + +

      expression is treated as a unit +and may be combined as described in this list.

      +
      + + +

      matches A or nothing; optional A.

      +
      + + +

      matches A followed by B.

      +
      + + +

      matches A or B but not both.

      +
      + + +

      matches any string that matches A but does not match +B. +

      +
      + + +

      matches one or more occurrences of A.

      +
      + + +

      matches zero or more occurrences of A.

      +
      + +
      +Other notations used in the productions are: + + + +

      comment.

      +
      + + +

      well-formedness constraint; this identifies by name a +constraint on +well-formed documents +associated with a production.

      +
      + + +

      validity constraint; this identifies by name a constraint on +valid documents associated with +a production.

      +
      +
      +

      + + + + + + + + + +References + +Normative References + + + +(Internet Assigned Numbers Authority) Official Names for +Character Sets, +ed. Keld Simonsen et al. +See ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets. + + + +IETF (Internet Engineering Task Force). +RFC 1766: Tags for the Identification of Languages, +ed. H. Alvestrand. +1995. + + + +(International Organization for Standardization). +ISO 639:1988 (E). +Code for the representation of names of languages. +[Geneva]: International Organization for +Standardization, 1988. + + +(International Organization for Standardization). +ISO 3166-1:1997 (E). +Codes for the representation of names of countries and their subdivisions +— Part 1: Country codes +[Geneva]: International Organization for +Standardization, 1997. + +ISO +(International Organization for Standardization). +ISO/IEC 10646-1993 (E). Information technology — Universal +Multiple-Octet Coded Character Set (UCS) — Part 1: +Architecture and Basic Multilingual Plane. +[Geneva]: International Organization for +Standardization, 1993 (plus amendments AM 1 through AM 7). + + +The Unicode Consortium. +The Unicode Standard, Version 2.0. +Reading, Mass.: Addison-Wesley Developers Press, 1996. + + + + + +Other References + + + +Aho, Alfred V., +Ravi Sethi, and Jeffrey D. Ullman. +Compilers: Principles, Techniques, and Tools. +Reading: Addison-Wesley, 1986, rpt. corr. 1988. + + +Berners-Lee, T., R. Fielding, and L. Masinter. +Uniform Resource Identifiers (URI): Generic Syntax and +Semantics. +1997. +(Work in progress; see updates to RFC1738.) + +Brüggemann-Klein, Anne. +Regular Expressions into Finite Automata. +Extended abstract in I. Simon, Hrsg., LATIN 1992, +S. 97-98. Springer-Verlag, Berlin 1992. +Full Version in Theoretical Computer Science 120: 197-213, 1993. + + + +Brüggemann-Klein, Anne, +and Derick Wood. +Deterministic Regular Languages. +Universität Freiburg, Institut für Informatik, +Bericht 38, Oktober 1991. + + +James Clark. +Comparison of SGML and XML. See +http://www.w3.org/TR/NOTE-sgml-xml-971215. + + +IETF (Internet Engineering Task Force). +RFC 1738: Uniform Resource Locators (URL), +ed. T. Berners-Lee, L. Masinter, M. McCahill. +1994. + + + +IETF (Internet Engineering Task Force). +RFC 1808: Relative Uniform Resource Locators, +ed. R. Fielding. +1995. + + + +IETF (Internet Engineering Task Force). +RFC 2141: URN Syntax, +ed. R. Moats. +1997. + + +ISO +(International Organization for Standardization). +ISO 8879:1986(E). Information processing — Text and Office +Systems — Standard Generalized Markup Language (SGML). First +edition — 1986-10-15. [Geneva]: International Organization for +Standardization, 1986. + + + +ISO +(International Organization for Standardization). +ISO/IEC 10744-1992 (E). Information technology — +Hypermedia/Time-based Structuring Language (HyTime). + +[Geneva]: International Organization for +Standardization, 1992. +Extended Facilities Annexe. +[Geneva]: International Organization for +Standardization, 1996. + + + + + + + + +Character Classes +

      Following the characteristics defined in the Unicode standard, +characters are classed as base characters (among others, these +contain the alphabetic characters of the Latin alphabet, without +diacritics), ideographic characters, and combining characters (among +others, this class contains most diacritics); these classes combine +to form the class of letters. Digits and extenders are +also distinguished. + +Characters + +Letter +BaseChar +| Ideographic +BaseChar +[#x0041-#x005A] +| [#x0061-#x007A] +| [#x00C0-#x00D6] +| [#x00D8-#x00F6] +| [#x00F8-#x00FF] +| [#x0100-#x0131] +| [#x0134-#x013E] +| [#x0141-#x0148] +| [#x014A-#x017E] +| [#x0180-#x01C3] +| [#x01CD-#x01F0] +| [#x01F4-#x01F5] +| [#x01FA-#x0217] +| [#x0250-#x02A8] +| [#x02BB-#x02C1] +| #x0386 +| [#x0388-#x038A] +| #x038C +| [#x038E-#x03A1] +| [#x03A3-#x03CE] +| [#x03D0-#x03D6] +| #x03DA +| #x03DC +| #x03DE +| #x03E0 +| [#x03E2-#x03F3] +| [#x0401-#x040C] +| [#x040E-#x044F] +| [#x0451-#x045C] +| [#x045E-#x0481] +| [#x0490-#x04C4] +| [#x04C7-#x04C8] +| [#x04CB-#x04CC] +| [#x04D0-#x04EB] +| [#x04EE-#x04F5] +| [#x04F8-#x04F9] +| [#x0531-#x0556] +| #x0559 +| [#x0561-#x0586] +| [#x05D0-#x05EA] +| [#x05F0-#x05F2] +| [#x0621-#x063A] +| [#x0641-#x064A] +| [#x0671-#x06B7] +| [#x06BA-#x06BE] +| [#x06C0-#x06CE] +| [#x06D0-#x06D3] +| #x06D5 +| [#x06E5-#x06E6] +| [#x0905-#x0939] +| #x093D +| [#x0958-#x0961] +| [#x0985-#x098C] +| [#x098F-#x0990] +| [#x0993-#x09A8] +| [#x09AA-#x09B0] +| #x09B2 +| [#x09B6-#x09B9] +| [#x09DC-#x09DD] +| [#x09DF-#x09E1] +| [#x09F0-#x09F1] +| [#x0A05-#x0A0A] +| [#x0A0F-#x0A10] +| [#x0A13-#x0A28] +| [#x0A2A-#x0A30] +| [#x0A32-#x0A33] +| [#x0A35-#x0A36] +| [#x0A38-#x0A39] +| [#x0A59-#x0A5C] +| #x0A5E +| [#x0A72-#x0A74] +| [#x0A85-#x0A8B] +| #x0A8D +| [#x0A8F-#x0A91] +| [#x0A93-#x0AA8] +| [#x0AAA-#x0AB0] +| [#x0AB2-#x0AB3] +| [#x0AB5-#x0AB9] +| #x0ABD +| #x0AE0 +| [#x0B05-#x0B0C] +| [#x0B0F-#x0B10] +| [#x0B13-#x0B28] +| [#x0B2A-#x0B30] +| [#x0B32-#x0B33] +| [#x0B36-#x0B39] +| #x0B3D +| [#x0B5C-#x0B5D] +| [#x0B5F-#x0B61] +| [#x0B85-#x0B8A] +| [#x0B8E-#x0B90] +| [#x0B92-#x0B95] +| [#x0B99-#x0B9A] +| #x0B9C +| [#x0B9E-#x0B9F] +| [#x0BA3-#x0BA4] +| [#x0BA8-#x0BAA] +| [#x0BAE-#x0BB5] +| [#x0BB7-#x0BB9] +| [#x0C05-#x0C0C] +| [#x0C0E-#x0C10] +| [#x0C12-#x0C28] +| [#x0C2A-#x0C33] +| [#x0C35-#x0C39] +| [#x0C60-#x0C61] +| [#x0C85-#x0C8C] +| [#x0C8E-#x0C90] +| [#x0C92-#x0CA8] +| [#x0CAA-#x0CB3] +| [#x0CB5-#x0CB9] +| #x0CDE +| [#x0CE0-#x0CE1] +| [#x0D05-#x0D0C] +| [#x0D0E-#x0D10] +| [#x0D12-#x0D28] +| [#x0D2A-#x0D39] +| [#x0D60-#x0D61] +| [#x0E01-#x0E2E] +| #x0E30 +| [#x0E32-#x0E33] +| [#x0E40-#x0E45] +| [#x0E81-#x0E82] +| #x0E84 +| [#x0E87-#x0E88] +| #x0E8A +| #x0E8D +| [#x0E94-#x0E97] +| [#x0E99-#x0E9F] +| [#x0EA1-#x0EA3] +| #x0EA5 +| #x0EA7 +| [#x0EAA-#x0EAB] +| [#x0EAD-#x0EAE] +| #x0EB0 +| [#x0EB2-#x0EB3] +| #x0EBD +| [#x0EC0-#x0EC4] +| [#x0F40-#x0F47] +| [#x0F49-#x0F69] +| [#x10A0-#x10C5] +| [#x10D0-#x10F6] +| #x1100 +| [#x1102-#x1103] +| [#x1105-#x1107] +| #x1109 +| [#x110B-#x110C] +| [#x110E-#x1112] +| #x113C +| #x113E +| #x1140 +| #x114C +| #x114E +| #x1150 +| [#x1154-#x1155] +| #x1159 +| [#x115F-#x1161] +| #x1163 +| #x1165 +| #x1167 +| #x1169 +| [#x116D-#x116E] +| [#x1172-#x1173] +| #x1175 +| #x119E +| #x11A8 +| #x11AB +| [#x11AE-#x11AF] +| [#x11B7-#x11B8] +| #x11BA +| [#x11BC-#x11C2] +| #x11EB +| #x11F0 +| #x11F9 +| [#x1E00-#x1E9B] +| [#x1EA0-#x1EF9] +| [#x1F00-#x1F15] +| [#x1F18-#x1F1D] +| [#x1F20-#x1F45] +| [#x1F48-#x1F4D] +| [#x1F50-#x1F57] +| #x1F59 +| #x1F5B +| #x1F5D +| [#x1F5F-#x1F7D] +| [#x1F80-#x1FB4] +| [#x1FB6-#x1FBC] +| #x1FBE +| [#x1FC2-#x1FC4] +| [#x1FC6-#x1FCC] +| [#x1FD0-#x1FD3] +| [#x1FD6-#x1FDB] +| [#x1FE0-#x1FEC] +| [#x1FF2-#x1FF4] +| [#x1FF6-#x1FFC] +| #x2126 +| [#x212A-#x212B] +| #x212E +| [#x2180-#x2182] +| [#x3041-#x3094] +| [#x30A1-#x30FA] +| [#x3105-#x312C] +| [#xAC00-#xD7A3] + +Ideographic +[#x4E00-#x9FA5] +| #x3007 +| [#x3021-#x3029] + +CombiningChar +[#x0300-#x0345] +| [#x0360-#x0361] +| [#x0483-#x0486] +| [#x0591-#x05A1] +| [#x05A3-#x05B9] +| [#x05BB-#x05BD] +| #x05BF +| [#x05C1-#x05C2] +| #x05C4 +| [#x064B-#x0652] +| #x0670 +| [#x06D6-#x06DC] +| [#x06DD-#x06DF] +| [#x06E0-#x06E4] +| [#x06E7-#x06E8] +| [#x06EA-#x06ED] +| [#x0901-#x0903] +| #x093C +| [#x093E-#x094C] +| #x094D +| [#x0951-#x0954] +| [#x0962-#x0963] +| [#x0981-#x0983] +| #x09BC +| #x09BE +| #x09BF +| [#x09C0-#x09C4] +| [#x09C7-#x09C8] +| [#x09CB-#x09CD] +| #x09D7 +| [#x09E2-#x09E3] +| #x0A02 +| #x0A3C +| #x0A3E +| #x0A3F +| [#x0A40-#x0A42] +| [#x0A47-#x0A48] +| [#x0A4B-#x0A4D] +| [#x0A70-#x0A71] +| [#x0A81-#x0A83] +| #x0ABC +| [#x0ABE-#x0AC5] +| [#x0AC7-#x0AC9] +| [#x0ACB-#x0ACD] +| [#x0B01-#x0B03] +| #x0B3C +| [#x0B3E-#x0B43] +| [#x0B47-#x0B48] +| [#x0B4B-#x0B4D] +| [#x0B56-#x0B57] +| [#x0B82-#x0B83] +| [#x0BBE-#x0BC2] +| [#x0BC6-#x0BC8] +| [#x0BCA-#x0BCD] +| #x0BD7 +| [#x0C01-#x0C03] +| [#x0C3E-#x0C44] +| [#x0C46-#x0C48] +| [#x0C4A-#x0C4D] +| [#x0C55-#x0C56] +| [#x0C82-#x0C83] +| [#x0CBE-#x0CC4] +| [#x0CC6-#x0CC8] +| [#x0CCA-#x0CCD] +| [#x0CD5-#x0CD6] +| [#x0D02-#x0D03] +| [#x0D3E-#x0D43] +| [#x0D46-#x0D48] +| [#x0D4A-#x0D4D] +| #x0D57 +| #x0E31 +| [#x0E34-#x0E3A] +| [#x0E47-#x0E4E] +| #x0EB1 +| [#x0EB4-#x0EB9] +| [#x0EBB-#x0EBC] +| [#x0EC8-#x0ECD] +| [#x0F18-#x0F19] +| #x0F35 +| #x0F37 +| #x0F39 +| #x0F3E +| #x0F3F +| [#x0F71-#x0F84] +| [#x0F86-#x0F8B] +| [#x0F90-#x0F95] +| #x0F97 +| [#x0F99-#x0FAD] +| [#x0FB1-#x0FB7] +| #x0FB9 +| [#x20D0-#x20DC] +| #x20E1 +| [#x302A-#x302F] +| #x3099 +| #x309A + +Digit +[#x0030-#x0039] +| [#x0660-#x0669] +| [#x06F0-#x06F9] +| [#x0966-#x096F] +| [#x09E6-#x09EF] +| [#x0A66-#x0A6F] +| [#x0AE6-#x0AEF] +| [#x0B66-#x0B6F] +| [#x0BE7-#x0BEF] +| [#x0C66-#x0C6F] +| [#x0CE6-#x0CEF] +| [#x0D66-#x0D6F] +| [#x0E50-#x0E59] +| [#x0ED0-#x0ED9] +| [#x0F20-#x0F29] + +Extender +#x00B7 +| #x02D0 +| #x02D1 +| #x0387 +| #x0640 +| #x0E46 +| #x0EC6 +| #x3005 +| [#x3031-#x3035] +| [#x309D-#x309E] +| [#x30FC-#x30FE] + + + + +

      +

      The character classes defined here can be derived from the +Unicode character database as follows: + + +

      Name start characters must have one of the categories Ll, Lu, +Lo, Lt, Nl.

      + + +

      Name characters other than Name-start characters +must have one of the categories Mc, Me, Mn, Lm, or Nd.

      +
      + +

      Characters in the compatibility area (i.e. with character code +greater than #xF900 and less than #xFFFE) are not allowed in XML +names.

      +
      + +

      Characters which have a font or compatibility decomposition (i.e. those +with a "compatibility formatting tag" in field 5 of the database -- +marked by field 5 beginning with a "<") are not allowed.

      +
      + +

      The following characters are treated as name-start characters +rather than name characters, because the property file classifies +them as Alphabetic: [#x02BB-#x02C1], #x0559, #x06E5, #x06E6.

      +
      + +

      Characters #x20DD-#x20E0 are excluded (in accordance with +Unicode, section 5.14).

      +
      + +

      Character #x00B7 is classified as an extender, because the +property list so identifies it.

      +
      + +

      Character #x0387 is added as a name character, because #x00B7 +is its canonical equivalent.

      +
      + +

      Characters ':' and '_' are allowed as name-start characters.

      +
      + +

      Characters '-' and '.' are allowed as name characters.

      +
      + +

      +
      + +XML and SGML + +

      XML is designed to be a subset of SGML, in that every +valid XML document should also be a +conformant SGML document. +For a detailed comparison of the additional restrictions that XML places on +documents beyond those of SGML, see . +

      +
      + +Expansion of Entity and Character References +

      This appendix contains some examples illustrating the +sequence of entity- and character-reference recognition and +expansion, as specified in .

      +

      +If the DTD contains the declaration +An ampersand (&#38;) may be escaped +numerically (&#38;#38;) or with a general entity +(&amp;).

      " > +]]> +then the XML processor will recognize the character references +when it parses the entity declaration, and resolve them before +storing the following string as the +value of the entity "example": +An ampersand (&) may be escaped +numerically (&#38;) or with a general entity +(&amp;).

      +]]>
      +A reference in the document to "&example;" +will cause the text to be reparsed, at which time the +start- and end-tags of the "p" element will be recognized +and the three references will be recognized and expanded, +resulting in a "p" element with the following content +(all data, no delimiters or markup): + +

      +

      A more complex example will illustrate the rules and their +effects fully. In the following example, the line numbers are +solely for reference. + +2 +4 +5 ' > +6 %xx; +7 ]> +8 This sample shows a &tricky; method. +]]> +This produces the following: + +

      in line 4, the reference to character 37 is expanded immediately, +and the parameter entity "xx" is stored in the symbol +table with the value "%zz;". Since the replacement text +is not rescanned, the reference to parameter entity "zz" +is not recognized. (And it would be an error if it were, since +"zz" is not yet declared.)

      +

      in line 5, the character reference "&#60;" is +expanded immediately and the parameter entity "zz" is +stored with the replacement text +"<!ENTITY tricky "error-prone" >", +which is a well-formed entity declaration.

      +

      in line 6, the reference to "xx" is recognized, +and the replacement text of "xx" (namely +"%zz;") is parsed. The reference to "zz" +is recognized in its turn, and its replacement text +("<!ENTITY tricky "error-prone" >") is parsed. +The general entity "tricky" has now been +declared, with the replacement text "error-prone".

      +

      +in line 8, the reference to the general entity "tricky" is +recognized, and it is expanded, so the full content of the +"test" element is the self-describing (and ungrammatical) string +This sample shows a error-prone method. +

      + +

      +
      + +Deterministic Content Models +

      For compatibility, it is +required +that content models in element type declarations be deterministic. +

      + +

      SGML +requires deterministic content models (it calls them +"unambiguous"); XML processors built using SGML systems may +flag non-deterministic content models as errors.

      +

      For example, the content model ((b, c) | (b, d)) is +non-deterministic, because given an initial b the parser +cannot know which b in the model is being matched without +looking ahead to see which element follows the b. +In this case, the two references to +b can be collapsed +into a single reference, making the model read +(b, (c | d)). An initial b now clearly +matches only a single name in the content model. The parser doesn't +need to look ahead to see what follows; either c or +d would be accepted.

      +

      More formally: a finite state automaton may be constructed from the +content model using the standard algorithms, e.g. algorithm 3.5 +in section 3.9 +of Aho, Sethi, and Ullman . +In many such algorithms, a follow set is constructed for each +position in the regular expression (i.e., each leaf +node in the +syntax tree for the regular expression); +if any position has a follow set in which +more than one following position is +labeled with the same element type name, +then the content model is in error +and may be reported as an error. +

      +

      Algorithms exist which allow many but not all non-deterministic +content models to be reduced automatically to equivalent deterministic +models; see Brüggemann-Klein 1991 .

      +
      + +Autodetection of Character Encodings +

      The XML encoding declaration functions as an internal label on each +entity, indicating which character encoding is in use. Before an XML +processor can read the internal label, however, it apparently has to +know what character encoding is in use—which is what the internal label +is trying to indicate. In the general case, this is a hopeless +situation. It is not entirely hopeless in XML, however, because XML +limits the general case in two ways: each implementation is assumed +to support only a finite set of character encodings, and the XML +encoding declaration is restricted in position and content in order to +make it feasible to autodetect the character encoding in use in each +entity in normal cases. Also, in many cases other sources of information +are available in addition to the XML data stream itself. +Two cases may be distinguished, +depending on whether the XML entity is presented to the +processor without, or with, any accompanying +(external) information. We consider the first case first. +

      +

      +Because each XML entity not in UTF-8 or UTF-16 format must +begin with an XML encoding declaration, in which the first characters +must be '<?xml', any conforming processor can detect, +after two to four octets of input, which of the following cases apply. +In reading this list, it may help to know that in UCS-4, '<' is +"#x0000003C" and '?' is "#x0000003F", and the Byte +Order Mark required of UTF-16 data streams is "#xFEFF".

      +

      + + +

      00 00 00 3C: UCS-4, big-endian machine (1234 order)

      + + +

      3C 00 00 00: UCS-4, little-endian machine (4321 order)

      +
      + +

      00 00 3C 00: UCS-4, unusual octet order (2143)

      +
      + +

      00 3C 00 00: UCS-4, unusual octet order (3412)

      +
      + +

      FE FF: UTF-16, big-endian

      +
      + +

      FF FE: UTF-16, little-endian

      +
      + +

      00 3C 00 3F: UTF-16, big-endian, no Byte Order Mark +(and thus, strictly speaking, in error)

      +
      + +

      3C 00 3F 00: UTF-16, little-endian, no Byte Order Mark +(and thus, strictly speaking, in error)

      +
      + +

      3C 3F 78 6D: UTF-8, ISO 646, ASCII, some part of ISO 8859, +Shift-JIS, EUC, or any other 7-bit, 8-bit, or mixed-width encoding +which ensures that the characters of ASCII have their normal positions, +width, +and values; the actual encoding declaration must be read to +detect which of these applies, but since all of these encodings +use the same bit patterns for the ASCII characters, the encoding +declaration itself may be read reliably +

      +
      + +

      4C 6F A7 94: EBCDIC (in some flavor; the full +encoding declaration must be read to tell which code page is in +use)

      +
      + +

      other: UTF-8 without an encoding declaration, or else +the data stream is corrupt, fragmentary, or enclosed in +a wrapper of some kind

      +
      + +

      +

      +This level of autodetection is enough to read the XML encoding +declaration and parse the character-encoding identifier, which is +still necessary to distinguish the individual members of each family +of encodings (e.g. to tell UTF-8 from 8859, and the parts of 8859 +from each other, or to distinguish the specific EBCDIC code page in +use, and so on). +

      +

      +Because the contents of the encoding declaration are restricted to +ASCII characters, a processor can reliably read the entire encoding +declaration as soon as it has detected which family of encodings is in +use. Since in practice, all widely used character encodings fall into +one of the categories above, the XML encoding declaration allows +reasonably reliable in-band labeling of character encodings, even when +external sources of information at the operating-system or +transport-protocol level are unreliable. +

      +

      +Once the processor has detected the character encoding in use, it can +act appropriately, whether by invoking a separate input routine for +each case, or by calling the proper conversion function on each +character of input. +

      +

      +Like any self-labeling system, the XML encoding declaration will not +work if any software changes the entity's character set or encoding +without updating the encoding declaration. Implementors of +character-encoding routines should be careful to ensure the accuracy +of the internal and external information used to label the entity. +

      +

      The second possible case occurs when the XML entity is accompanied +by encoding information, as in some file systems and some network +protocols. +When multiple sources of information are available, + +their relative +priority and the preferred method of handling conflict should be +specified as part of the higher-level protocol used to deliver XML. +Rules for the relative priority of the internal label and the +MIME-type label in an external header, for example, should be part of the +RFC document defining the text/xml and application/xml MIME types. In +the interests of interoperability, however, the following rules +are recommended. + +

      If an XML entity is in a file, the Byte-Order Mark +and encoding-declaration PI are used (if present) to determine the +character encoding. All other heuristics and sources of information +are solely for error recovery. +

      +

      If an XML entity is delivered with a +MIME type of text/xml, then the charset parameter +on the MIME type determines the +character encoding method; all other heuristics and sources of +information are solely for error recovery. +

      +

      If an XML entity is delivered +with a +MIME type of application/xml, then the Byte-Order Mark and +encoding-declaration PI are used (if present) to determine the +character encoding. All other heuristics and sources of +information are solely for error recovery. +

      + +These rules apply only in the absence of protocol-level documentation; +in particular, when the MIME types text/xml and application/xml are +defined, the recommendations of the relevant RFC will supersede +these rules. +

      + +
      + + +W3C XML Working Group + +

      This specification was prepared and approved for publication by the +W3C XML Working Group (WG). WG approval of this specification does +not necessarily imply that all WG members voted for its approval. +The current and former members of the XML WG are:

      + + +Jon Bosak, SunChair +James ClarkTechnical Lead +Tim Bray, Textuality and NetscapeXML Co-editor +Jean Paoli, MicrosoftXML Co-editor +C. M. Sperberg-McQueen, U. of Ill.XML +Co-editor +Dan Connolly, W3CW3C Liaison +Paula Angerstein, Texcel +Steve DeRose, INSO +Dave Hollander, HP +Eliot Kimber, ISOGEN +Eve Maler, ArborText +Tom Magliery, NCSA +Murray Maloney, Muzmo and Grif +Makoto Murata, Fuji Xerox Information Systems +Joel Nava, Adobe +Conleth O'Connell, Vignette +Peter Sharpe, SoftQuad +John Tigue, DataChannel + + +
      +
      + + diff --git a/result/valid/REC-xml-19980210.xml.err b/result/valid/REC-xml-19980210.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/UTF16Entity.xml b/result/valid/UTF16Entity.xml new file mode 100644 index 0000000..63cbba2 --- /dev/null +++ b/result/valid/UTF16Entity.xml @@ -0,0 +1,8 @@ + + + + + +]> + &utf16b; &utf16l; diff --git a/result/valid/UTF16Entity.xml.err b/result/valid/UTF16Entity.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/dia.xml b/result/valid/dia.xml new file mode 100644 index 0000000..01e3253 --- /dev/null +++ b/result/valid/dia.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/result/valid/dia.xml.err b/result/valid/dia.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/id1.xml b/result/valid/id1.xml new file mode 100644 index 0000000..4f0b9f7 --- /dev/null +++ b/result/valid/id1.xml @@ -0,0 +1,13 @@ + + + + + + +]> + + + + + diff --git a/result/valid/id1.xml.err b/result/valid/id1.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/id2.xml b/result/valid/id2.xml new file mode 100644 index 0000000..0cef4a6 --- /dev/null +++ b/result/valid/id2.xml @@ -0,0 +1,14 @@ + + + + + + +"> +]> + + + &dest; + + diff --git a/result/valid/id2.xml.err b/result/valid/id2.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/id3.xml b/result/valid/id3.xml new file mode 100644 index 0000000..623603c --- /dev/null +++ b/result/valid/id3.xml @@ -0,0 +1,14 @@ + + + + + + + +]> + + + &dest; + + diff --git a/result/valid/id3.xml.err b/result/valid/id3.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/index.xml b/result/valid/index.xml new file mode 100644 index 0000000..734fa4d --- /dev/null +++ b/result/valid/index.xml @@ -0,0 +1,808 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]> + + + + 20011022T154508Z + + + + + afp.com + 20011022 + mmd--deutsch--journal--spo + 1 + urn:NewsML:afp.com:20011022:mmd--deutsch--journal--spo:1 + + HINTERGRUND + + + + 20011022T154508Z + 20011022T154508Z + + + + + + + + + + + + + + Berliner SPD führt Gespräche mit FDP und Grünen + + + + + + INFOGRAFIK: Das Berliner Wahlergebnis + + + + + + Schwierige Koalitionsverhandlungen in Berlin + + + + + + Die Lieblingsfarben des Kanzlers sind Rot Gelb Grün + + + + + + INFOGRAFIK: Wen wählt Wowereit? + + + + + + CDU ist auch in kommunalen Rathäusern der Verlierer + + + + + + Gutes Abschneiden der PDS hat verschiedene Gründe + + + + + + Ans Regieren hat sich Klaus Wowereit gewöhnt + + + + + + Steffel brachte CDU nicht auf Erfolgskurs + + + + + + Sibyll Klotz: Vollblutpolitikerin mit "Berliner Schnauze" + + + + + + Mit Gysi muss weiter gerechnet werden + + + + + + Rexrodt - das Stehaufmännchen der Berliner FDP + + + + + + diff --git a/result/valid/index.xml.err b/result/valid/index.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/mixed_ns.xml b/result/valid/mixed_ns.xml new file mode 100644 index 0000000..d8aedb8 --- /dev/null +++ b/result/valid/mixed_ns.xml @@ -0,0 +1,16 @@ + + + + + + + +]> + + Some text. + + Some text. + + Some text. + diff --git a/result/valid/mixed_ns.xml.err b/result/valid/mixed_ns.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/notes.xml b/result/valid/notes.xml new file mode 100644 index 0000000..6ab3aa3 --- /dev/null +++ b/result/valid/notes.xml @@ -0,0 +1,3 @@ + + + diff --git a/result/valid/notes.xml.err b/result/valid/notes.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/ns.xml b/result/valid/ns.xml new file mode 100644 index 0000000..ddade86 --- /dev/null +++ b/result/valid/ns.xml @@ -0,0 +1,7 @@ + + + + +]> + diff --git a/result/valid/ns.xml.err b/result/valid/ns.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/ns2.xml b/result/valid/ns2.xml new file mode 100644 index 0000000..a4c30a8 --- /dev/null +++ b/result/valid/ns2.xml @@ -0,0 +1,11 @@ + + + + + + +]> + + + diff --git a/result/valid/ns2.xml.err b/result/valid/ns2.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/objednavka.xml b/result/valid/objednavka.xml new file mode 100644 index 0000000..b0ffd92 --- /dev/null +++ b/result/valid/objednavka.xml @@ -0,0 +1,39 @@ + + + + + Jan Novák + BÄ›lehradská 147 + Praha 2 + 12000 + + + Petra Nováková + Anglická 15 + Praha 2 + 12000 + + DPD + dobírka + 2004-11-14 + 2004-11-19 + + + 2N7-516 + SekaÄka na trávu + 1 + 2999 + http://example.org/sekacka.html + + + Q3Y-116 + Travní semeno + 2.5 + 127.50 + + + + <Řádka>O dodávku mám zájem pouze v případÄ›, že se jedná o trávu v odrůdÄ› konopí. + <Řádka>Dále jsem se chtÄ›l zeptat, zda je doprava zdarma. + + diff --git a/result/valid/objednavka.xml.err b/result/valid/objednavka.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/rss.xml b/result/valid/rss.xml new file mode 100644 index 0000000..642fb80 --- /dev/null +++ b/result/valid/rss.xml @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]> + + + +PP + + diff --git a/result/valid/rss.xml.err b/result/valid/rss.xml.err new file mode 100644 index 0000000..2ec7c9e --- /dev/null +++ b/result/valid/rss.xml.err @@ -0,0 +1,3 @@ +./test/valid/rss.xml:177: element rss: validity error : Element rss does not carry attribute version + + ^ diff --git a/result/valid/t10.xml b/result/valid/t10.xml new file mode 100644 index 0000000..b60f2f9 --- /dev/null +++ b/result/valid/t10.xml @@ -0,0 +1,12 @@ + + + + +]> + + + + + + diff --git a/result/valid/t10.xml.err b/result/valid/t10.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/t11.xml b/result/valid/t11.xml new file mode 100644 index 0000000..d871787 --- /dev/null +++ b/result/valid/t11.xml @@ -0,0 +1,3 @@ + + +&peInCdata; diff --git a/result/valid/t11.xml.err b/result/valid/t11.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/t4.dtd b/result/valid/t4.dtd new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/t4.dtd.err b/result/valid/t4.dtd.err new file mode 100644 index 0000000..23a3258 --- /dev/null +++ b/result/valid/t4.dtd.err @@ -0,0 +1,6 @@ +./test/valid/t4.dtd:1: parser error : StartTag: invalid element name + + ^ +./test/valid/t4.dtd:1: parser error : Extra content at the end of the document + + ^ diff --git a/result/valid/t4.xml b/result/valid/t4.xml new file mode 100644 index 0000000..c198f76 --- /dev/null +++ b/result/valid/t4.xml @@ -0,0 +1,3 @@ + + +&abc; diff --git a/result/valid/t4.xml.err b/result/valid/t4.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/t4a.dtd b/result/valid/t4a.dtd new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/t4a.dtd.err b/result/valid/t4a.dtd.err new file mode 100644 index 0000000..48cdd5f --- /dev/null +++ b/result/valid/t4a.dtd.err @@ -0,0 +1,6 @@ +./test/valid/t4a.dtd:1: parser error : StartTag: invalid element name + + ^ +./test/valid/t4a.dtd:1: parser error : Extra content at the end of the document + + ^ diff --git a/result/valid/t4a.xml b/result/valid/t4a.xml new file mode 100644 index 0000000..37e80f7 --- /dev/null +++ b/result/valid/t4a.xml @@ -0,0 +1,3 @@ + + +&abc; diff --git a/result/valid/t4a.xml.err b/result/valid/t4a.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/t6.dtd b/result/valid/t6.dtd new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/t6.dtd.err b/result/valid/t6.dtd.err new file mode 100644 index 0000000..6e84d68 --- /dev/null +++ b/result/valid/t6.dtd.err @@ -0,0 +1,6 @@ +./test/valid/t6.dtd:1: parser error : StartTag: invalid element name + + ^ +./test/valid/t6.dtd:1: parser error : Extra content at the end of the document + + ^ diff --git a/result/valid/t6.xml b/result/valid/t6.xml new file mode 100644 index 0000000..23f2d25 --- /dev/null +++ b/result/valid/t6.xml @@ -0,0 +1,3 @@ + + +&abc; diff --git a/result/valid/t6.xml.err b/result/valid/t6.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/t8.xml b/result/valid/t8.xml new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/t8.xml.err b/result/valid/t8.xml.err new file mode 100644 index 0000000..d795788 --- /dev/null +++ b/result/valid/t8.xml.err @@ -0,0 +1,19 @@ +Entity: line 1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration + + %defroot; + ^ +Entity: line 1: +<!ELEMENT root (middle) > +^ +Entity: line 1: parser error : DOCTYPE improperly terminated + %defroot; + ^ +Entity: line 1: +<!ELEMENT root (middle) > +^ +Entity: line 1: parser error : Start tag expected, '<' not found + %defroot; + ^ +Entity: line 1: +<!ELEMENT root (middle) > + ^ diff --git a/result/valid/t8a.xml b/result/valid/t8a.xml new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/t8a.xml.err b/result/valid/t8a.xml.err new file mode 100644 index 0000000..d795788 --- /dev/null +++ b/result/valid/t8a.xml.err @@ -0,0 +1,19 @@ +Entity: line 1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration + + %defroot; + ^ +Entity: line 1: +<!ELEMENT root (middle) > +^ +Entity: line 1: parser error : DOCTYPE improperly terminated + %defroot; + ^ +Entity: line 1: +<!ELEMENT root (middle) > +^ +Entity: line 1: parser error : Start tag expected, '<' not found + %defroot; + ^ +Entity: line 1: +<!ELEMENT root (middle) > + ^ diff --git a/result/valid/t9.xml b/result/valid/t9.xml new file mode 100644 index 0000000..6950b14 --- /dev/null +++ b/result/valid/t9.xml @@ -0,0 +1,10 @@ + +"> +"> +"> + + + +]> +sample diff --git a/result/valid/t9.xml.err b/result/valid/t9.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/t9a.xml b/result/valid/t9a.xml new file mode 100644 index 0000000..6950b14 --- /dev/null +++ b/result/valid/t9a.xml @@ -0,0 +1,10 @@ + +"> +"> +"> + + + +]> +sample diff --git a/result/valid/t9a.xml.err b/result/valid/t9a.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/xhtml1.xhtml b/result/valid/xhtml1.xhtml new file mode 100644 index 0000000..907209b --- /dev/null +++ b/result/valid/xhtml1.xhtml @@ -0,0 +1,1453 @@ + + + + + +XHTML 1.0: The Extensible HyperText Markup +Language + + + + + +

      W3C

      + +

      XHTML 1.0: +The Extensible HyperText Markup Language

      + +

      A Reformulation of HTML 4.0 in XML 1.0

      + +

      W3C Proposed Recommendation 10 December 1999

      + +
      +
      This version:
      + +
      +http://www.w3.org/TR/1999/PR-xhtml1-19991210
      +(Postscript version, +PDF version, +ZIP archive, or +Gzip'd TAR archive) +
      + +
      Latest version:
      + +
      +http://www.w3.org/TR/xhtml1
      + +
      Previous versions:
      + +
      +http://www.w3.org/TR/1999/WD-xhtml1-19991124
      +
      +http://www.w3.org/TR/1999/PR-xhtml1-19990824
      + +
      Authors:
      + +
      See acknowledgements.
      +
      + + +
      +
      + +

      Abstract

      + +

      This specification defines XHTML 1.0, a reformulation of HTML +4.0 as an XML 1.0 application, and three DTDs corresponding to +the ones defined by HTML 4.0. The semantics of the elements and +their attributes are defined in the W3C Recommendation for HTML +4.0. These semantics provide the foundation for future +extensibility of XHTML. Compatibility with existing HTML user +agents is possible by following a small set of guidelines.

      + +

      Status of this document

      + +

      This section describes the status of this document at the time +of its publication. Other documents may supersede this document. The +latest status of this document series is maintained at the W3C.

      + +

      This specification is a Proposed Recommendation of the HTML Working Group. It is +a revision of the Proposed Recommendation dated 24 August +1999 incorporating changes as a result of comments from the Proposed +Recommendation review, and +comments and further deliberations of the W3C HTML Working Group. A +diff-marked version from the previous +proposed recommendation is available for comparison purposes.

      + +

      On 10 December 1999, this document enters a + +Proposed Recommendation review period. From that date until 8 January +2000, +W3C Advisory Committee representatives are encouraged +to review this specification and return comments in their completed +ballots to w3c-html-review@w3.org. Please send any comments of a +confidential nature in separate email to w3t-html@w3.org, which is +visible to the Team only.

      + +

      No sooner than 14 days after the end of the review period, the +Director will announce the document's disposition: it may become a W3C +Recommendation (possibly with minor changes), it may revert to Working +Draft status, or it may be dropped as a W3C work item.

      + +

      Publication as a Proposed Recommendation does not imply endorsement +by the W3C membership. This is still a draft document and may be +updated, replaced or obsoleted by other documents at any time. It is +inappropriate to cite W3C Proposed Recommendation as other than "work +in progress."

      + +

      This document has been produced as part of the W3C HTML Activity. The goals of +the HTML Working +Group (members +only) are discussed in the HTML Working Group +charter (members +only).

      + +

      A list of current W3C Recommendations and other technical documents +can be found at http://www.w3.org/TR.

      + +

      Public discussion on HTML features takes place on the mailing list www-html@w3.org (archive). The W3C +staff contact for work on HTML is Dave +Raggett.

      + +

      Please report errors in this document to www-html-editor@w3.org.

      + +

      The list of known errors in this specification is available at http://www.w3.org/1999/12/PR-xhtml1-19991210-errata.

      + +

      Contents

      + + + + +

      1. What is XHTML?

      + +

      XHTML is a family of current and future document types and modules that +reproduce, subset, and extend HTML 4.0 [HTML]. XHTML family document types are XML based, +and ultimately are designed to work in conjunction with XML-based user agents. +The details of this family and its evolution are +discussed in more detail in the section on Future +Directions.

      + +

      XHTML 1.0 (this specification) is the first document type in the XHTML +family. It is a reformulation of the three HTML 4.0 document types as +applications of XML 1.0 [XML]. It is intended +to be used as a language for content that is both XML-conforming and, if some +simple guidelines are followed, +operates in HTML 4.0 conforming user agents. Developers who migrate +their content to XHTML 1.0 will realize the following benefits:

      + +
        +
      • XHTML documents are XML conforming. As such, they are readily viewed, +edited, and validated with standard XML tools.
      • +
      • XHTML documents can be written to +to operate as well or better than they did before in existing +HTML 4.0-conforming user agents as well as in new, XHTML 1.0 conforming user +agents.
      • +
      • XHTML documents can utilize applications (e.g. scripts and applets) that rely +upon either the HTML Document Object Model or the XML Document Object Model [DOM].
      • +
      • As the XHTML family evolves, documents conforming to XHTML 1.0 will be more +likely to interoperate within and among various XHTML environments.
      • +
      + +

      The XHTML family is the next step in the evolution of the Internet. By +migrating to XHTML today, content developers can enter the XML world with all +of its attendant benefits, while still remaining confident in their +content's backward and future compatibility.

      + +

      1.1 What is HTML 4.0?

      + +

      HTML 4.0 [HTML] is an SGML (Standard +Generalized Markup Language) application conforming to +International Standard ISO 8879, and is widely regarded as the +standard publishing language of the World Wide Web.

      + +

      SGML is a language for describing markup languages, +particularly those used in electronic document exchange, document +management, and document publishing. HTML is an example of a +language defined in SGML.

      + +

      SGML has been around since the middle 1980's and has remained +quite stable. Much of this stability stems from the fact that the +language is both feature-rich and flexible. This flexibility, +however, comes at a price, and that price is a level of +complexity that has inhibited its adoption in a diversity of +environments, including the World Wide Web.

      + +

      HTML, as originally conceived, was to be a language for the +exchange of scientific and other technical documents, suitable +for use by non-document specialists. HTML addressed the problem +of SGML complexity by specifying a small set of structural and +semantic tags suitable for authoring relatively simple documents. +In addition to simplifying the document structure, HTML added +support for hypertext. Multimedia capabilities were added +later.

      + +

      In a remarkably short space of time, HTML became wildly +popular and rapidly outgrew its original purpose. Since HTML's +inception, there has been rapid invention of new elements for use +within HTML (as a standard) and for adapting HTML to vertical, +highly specialized, markets. This plethora of new elements has +led to compatibility problems for documents across different +platforms.

      + +

      As the heterogeneity of both software and platforms rapidly +proliferate, it is clear that the suitability of 'classic' HTML +4.0 for use on these platforms is somewhat limited.

      + +

      1.2 What is XML?

      + +

      XML is the shorthand for Extensible Markup +Language, and is an acronym of Extensible Markup Language [XML].

      + +

      XML was conceived as a means of regaining the power and +flexibility of SGML without most of its complexity. Although a +restricted form of SGML, XML nonetheless preserves most of SGML's +power and richness, and yet still retains all of SGML's commonly +used features.

      + +

      While retaining these beneficial features, XML removes many of +the more complex features of SGML that make the authoring and +design of suitable software both difficult and costly.

      + +

      1.3 Why the need for XHTML?

      + +

      The benefits of migrating to XHTML 1.0 are described above. Some of the +benefits of migrating to XHTML in general are:

      + +
        +
      • Document developers and user agent designers are constantly +discovering new ways to express their ideas through new markup. In XML, it is +relatively easy to introduce new elements or additional element +attributes. The XHTML family is designed to accommodate these extensions +through XHTML modules and techniques for developing new XHTML-conforming +modules (described in the forthcoming XHTML Modularization specification). +These modules will permit the combination of existing and +new feature sets when developing content and when designing new user +agents.
      • + +
      • Alternate ways of accessing the Internet are constantly being +introduced. Some estimates indicate that by the year 2002, 75% of +Internet document viewing will be carried out on these alternate +platforms. The XHTML family is designed with general user agent +interoperability in mind. Through a new user agent and document profiling +mechanism, servers, proxies, and user agents will be able to perform +best effort content transformation. Ultimately, it will be possible to +develop XHTML-conforming content that is usable by any XHTML-conforming +user agent.
      • + +
      + +

      2. Definitions

      + +

      2.1 Terminology

      + +

      The following terms are used in this specification. These +terms extend the definitions in +[RFC2119] in ways based upon similar definitions in ISO/IEC +9945-1:1990 [POSIX.1]:

      + +
      +
      Implementation-defined
      + +
      A value or behavior is implementation-defined when it is left +to the implementation to define [and document] the corresponding +requirements for correct document construction.
      + +
      May
      + +
      With respect to implementations, the word "may" is to be +interpreted as an optional feature that is not required in this +specification but can be provided. With respect to Document Conformance, the word "may" means that +the optional feature must not be used. The term "optional" has +the same definition as "may".
      + +
      Must
      + +
      In this specification, the word "must" is to be interpreted +as a mandatory requirement on the implementation or on Strictly +Conforming XHTML Documents, depending upon the context. The term +"shall" has the same definition as "must".
      + +
      Reserved
      + +
      A value or behavior is unspecified, but it is not allowed to +be used by Conforming Documents nor to be supported by a +Conforming User Agents.
      + +
      Should
      + +
      With respect to implementations, the word "should" is to be +interpreted as an implementation recommendation, but not a +requirement. With respect to documents, the word "should" is to +be interpreted as recommended programming practice for documents +and a requirement for Strictly Conforming XHTML Documents.
      + +
      Supported
      + +
      Certain facilities in this specification are optional. If a +facility is supported, it behaves as specified by this +specification.
      + +
      Unspecified
      + +
      When a value or behavior is unspecified, the specification +defines no portability requirements for a facility on an +implementation even when faced with a document that uses the +facility. A document that requires specific behavior in such an +instance, rather than tolerating any behavior when using that +facility, is not a Strictly Conforming XHTML Document.
      +
      + +

      2.2 General Terms

      + +
      +
      Attribute
      + +
      An attribute is a parameter to an element declared in the +DTD. An attribute's type and value range, including a possible +default value, are defined in the DTD.
      + +
      DTD
      + +
      A DTD, or document type definition, is a collection of XML +declarations that, as a collection, defines the legal structure, +elements, and +attributes that are available for use in a document that +complies to the DTD.
      + +
      Document
      + +
      A document is a stream of data that, after being combined +with any other streams it references, is structured such that it +holds information contained within +elements that are organized as defined in the associated +DTD. See Document +Conformance for more information.
      + +
      Element
      + +
      An element is a document structuring unit declared in the +DTD. The element's content model is +defined in the DTD, and additional +semantics may be defined in the prose description of the +element.
      + +
      Facilities
      + +
      Functionality includes elements, +attributes, and the semantics +associated with those elements and +attributes. An implementation +supporting that functionality is said to provide the necessary +facilities.
      + +
      Implementation
      + +
      An implementation is a system that provides collection of +facilities and services that supports +this specification. See User Agent +Conformance for more information.
      + +
      Parsing
      + +
      Parsing is the act whereby a +document is scanned, and the information contained within +the document is filtered into the +context of the elements in which the +information is structured.
      + +
      Rendering
      + +
      Rendering is the act whereby the information in a document is presented. This presentation is +done in the form most appropriate to the environment (e.g. +aurally, visually, in print).
      + +
      User Agent
      + +
      A user agent is an implementation +that retrieves and processes XHTML documents. See User Agent Conformance for more information.
      + +
      Validation
      + +
      Validation is a process whereby +documents are verified against the associated DTD, ensuring that the structure, use of elements, and use of +attributes are consistent with the definitions in the +DTD.
      + +
      Well-formed
      + +
      A document is well-formed when it +is structured according to the rules defined in Section 2.1 of +the XML 1.0 Recommendation [XML]. +Basically, this definition states that elements, delimited by +their start and end tags, are nested properly within one +another.
      +
      + + +

      3. Normative Definition of +XHTML 1.0

      + +

      3.1 Document +Conformance

      + +

      This version of XHTML provides a definition of strictly +conforming XHTML documents, which are restricted to tags and +attributes from the XHTML namespace. See Section 3.1.2 for information on using XHTML +with other namespaces, for instance, to include metadata +expressed in RDF within XHTML documents.

      + +

      3.1.1 Strictly Conforming +Documents

      + +

      A Strictly Conforming XHTML Document is a document that +requires only the facilities described as mandatory in this +specification. Such a document must meet all of the following +criteria:

      + +
        +
      1. +

        It must validate against one of the three DTDs found in Appendix A.

        +
      2. + +
      3. +

        The root element of the document must be +<html>.

        +
      4. + +
      5. +

        The root element of the document must designate the XHTML +namespace using the xmlns attribute [XMLNAMES]. The namespace for XHTML is +defined to be +http://www.w3.org/1999/xhtml.

        +
      6. + +
      7. +

        There must be a DOCTYPE declaration in the document prior to +the root element. The public identifier included in +the DOCTYPE declaration must reference one of the three DTDs +found in Appendix A using the respective +Formal Public Identifier. The system identifier may be changed to reflect +local system conventions.

        + +
        +<!DOCTYPE html 
        +     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        +     "http://www.w3.org/TR/1999/PR-xhtml1-19991210/DTD/xhtml1-strict.dtd>
        +
        +<!DOCTYPE html 
        +     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        +     "http://www.w3.org/TR/1999/PR-xhtml1-19991210/DTD/xhtml1-transitional.dtd>
        +
        +<!DOCTYPE html 
        +     PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
        +     "http://www.w3.org/TR/1999/PR-xhtml1-19991210/DTD/xhtml1-frameset.dtd>
        +
        +
      8. +
      + +

      Here is an example of a minimal XHTML document.

      + +
      +
      +<?xml version="1.0" encoding="UTF-8"?>
      +<!DOCTYPE html 
      +     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      +    "http://www.w3.org/TR/1999/PR-xhtml1-19991210/DTD/xhtml1-strict.dtd">
      +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
      +  <head>
      +    <title>Virtual Library</title>
      +  </head>
      +  <body>
      +    <p>Moved to <a href="http://vlib.org/">vlib.org</a>.</p>
      +  </body>
      +</html>
      +
      + +

      Note that in this example, the XML declaration is included. An XML +declaration like the one above is +not required in all XML documents. XHTML document authors are strongly encouraged to use XML declarations in all their documents. Such a declaration is required +when the character encoding of the document is other than the default UTF-8 or +UTF-16.

      + +

      3.1.2 Using XHTML with +other namespaces

      + +

      The XHTML namespace may be used with other XML namespaces +as per [XMLNAMES], although such +documents are not strictly conforming XHTML 1.0 documents as +defined above. Future work by W3C will address ways to specify +conformance for documents involving multiple namespaces.

      + +

      The following example shows the way in which XHTML 1.0 could +be used in conjunction with the MathML Recommendation:

      + +
      +
      +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
      +  <head>
      +    <title>A Math Example</title>
      +  </head>
      +  <body>
      +    <p>The following is MathML markup:</p>
      +    <math xmlns="http://www.w3.org/1998/Math/MathML">
      +      <apply> <log/>
      +        <logbase>
      +          <cn> 3 </cn>
      +        </logbase>
      +        <ci> x </ci>
      +      </apply>
      +    </math>
      +  </body>
      +</html>
      +
      +
      + +

      The following example shows the way in which XHTML 1.0 markup +could be incorporated into another XML namespace:

      + +
      +
      +<?xml version="1.0" encoding="UTF-8"?>
      +<!-- initially, the default namespace is "books" -->
      +<book xmlns='urn:loc.gov:books'
      +    xmlns:isbn='urn:ISBN:0-395-36341-6' xml:lang="en" lang="en">
      +  <title>Cheaper by the Dozen</title>
      +  <isbn:number>1568491379</isbn:number>
      +  <notes>
      +    <!-- make HTML the default namespace for a hypertext commentary -->
      +    <p xmlns='http://www.w3.org/1999/xhtml'>
      +        This is also available <a href="http://www.w3.org/">online</a>.
      +    </p>
      +  </notes>
      +</book>
      +
      +
      + +

      3.2 User Agent +Conformance

      + +

      A conforming user agent must meet all of the following +criteria:

      + +
        +
      1. In order to be consistent with the XML 1.0 Recommendation [XML], the user agent must parse and evaluate +an XHTML document for well-formedness. If the user agent claims +to be a validating user agent, it must also validate documents +against their referenced DTDs according to +[XML].
      2. + +
      3. When the user agent claims to support +facilities defined within this specification or required by +this specification through normative reference, it must do so in +ways consistent with the facilities' definition.
      4. + +
      5. When a user agent processes an XHTML document as generic XML, +it shall only recognize attributes of type +ID (e.g. the id attribute on most XHTML elements) +as fragment identifiers.
      6. + +
      7. If a user agent encounters an element it does not recognize, +it must render the element's content.
      8. + +
      9. If a user agent encounters an attribute it does not +recognize, it must ignore the entire attribute specification +(i.e., the attribute and its value).
      10. + +
      11. If a user agent encounters an attribute value it doesn't +recognize, it must use the default attribute value.
      12. + +
      13. If it encounters an entity reference (other than one +of the predefined entities) for which the User Agent has +processed no declaration (which could happen if the declaration +is in the external subset which the User Agent hasn't read), the entity +reference should be rendered as the characters (starting +with the ampersand and ending with the semi-colon) that +make up the entity reference.
      14. + +
      15. When rendering content, User Agents that encounter +characters or character entity references that are recognized but not renderable should display the document in such a way that it is obvious to the user that normal rendering has not taken place.
      16. + +
      17. +The following characters are defined in [XML] as whitespace characters: + +
          +
        • Space (&#x0020;)
        • +
        • Tab (&#x0009;)
        • +
        • Carriage return (&#x000D;)
        • +
        • Line feed (&#x000A;)
        • +
        + +

        +The XML processor normalizes different system's line end codes into one +single line-feed character, that is passed up to the application. The XHTML +user agent in addition, must treat the following characters as whitespace: +

        + +
          +
        • Form feed (&#x000C;)
        • +
        • Zero-width space (&#x200B;)
        • +
        + +

        +In elements where the 'xml:space' attribute is set to 'preserve', the user +agent must leave all whitespace characters intact (with the exception of +leading and trailing whitespace characters, which should be removed). +Otherwise, whitespace +is handled according to the following rules: +

        + +
          +
        • +All whitespace surrounding block elements should be removed. +
        • +
        • +Comments are removed entirely and do not affect whitespace handling. One +whitespace character on either side of a comment is treated as two white +space characters. +
        • +
        • +Leading and trailing whitespace inside a block element must be removed. +
        • +
        • Line feed characters within a block element must be converted into a +space (except when the 'xml:space' attribute is set to 'preserve'). +
        • +
        • +A sequence of white space characters must be reduced to a single space +character (except when the 'xml:space' attribute is set to 'preserve'). +
        • +
        • +With regard to rendition, +the User Agent should render the content in a +manner appropriate to the language in which the content is written. +In languages whose primary script is Latinate, the ASCII space +character is typically used to encode both grammatical word boundaries and +typographic whitespace; in languages whose script is related to Nagari +(e.g., Sanskrit, Thai, etc.), grammatical boundaries may be encoded using +the ZW 'space' character, but will not typically be represented by +typographic whitespace in rendered output; languages using Arabiform scripts +may encode typographic whitespace using a space character, but may also use +the ZW space character to delimit 'internal' grammatical boundaries (what +look like words in Arabic to an English eye frequently encode several words, +e.g. 'kitAbuhum' = 'kitAbu-hum' = 'book them' == their book); and languages +in the Chinese script tradition typically neither encode such delimiters nor +use typographic whitespace in this way. +
        • +
        + +

        Whitespace in attribute values is processed according to [XML].

        +
      18. +
      + + +

      4. Differences with HTML +4.0

      + +

      Due to the fact that XHTML is an XML application, certain +practices that were perfectly legal in SGML-based HTML 4.0 [HTML] must be changed.

      + +

      4.1 Documents must be +well-formed

      + +

      Well-formedness is a new concept +introduced by [XML]. Essentially this +means that all elements must either have closing tags or be +written in a special form (as described below), and that all the +elements must nest.

      + +

      Although overlapping is illegal in SGML, it was widely +tolerated in existing browsers.

      + +
      +

      CORRECT: nested elements.

      + +

      <p>here is an emphasized +<em>paragraph</em>.</p>

      +
      + +
      +

      INCORRECT: overlapping elements

      + +

      <p>here is an emphasized +<em>paragraph.</p></em>

      +
      + +

      4.2 Element and attribute +names must be in lower case

      + +

      XHTML documents must use lower case for all HTML element and +attribute names. This difference is necessary because XML is +case-sensitive e.g. <li> and <LI> are different +tags.

      + +

      4.3 For non-empty elements, +end tags are required

      + +

      In SGML-based HTML 4.0 certain elements were permitted to omit +the end tag; with the elements that followed implying closure. +This omission is not permitted in XML-based XHTML. All elements +other than those declared in the DTD as EMPTY must +have an end tag.

      + +
      +

      CORRECT: terminated elements

      + +

      <p>here is a paragraph.</p><p>here is +another paragraph.</p>

      +
      + +
      +

      INCORRECT: unterminated elements

      + +

      <p>here is a paragraph.<p>here is another +paragraph.

      +
      + +

      4.4 Attribute values must +always be quoted

      + +

      All attribute values must be quoted, even those which appear +to be numeric.

      + +
      +

      CORRECT: quoted attribute values

      + +

      <table rows="3">

      +
      + +
      +

      INCORRECT: unquoted attribute values

      + +

      <table rows=3>

      +
      + +

      4.5 Attribute +Minimization

      + +

      XML does not support attribute minimization. Attribute-value +pairs must be written in full. Attribute names such as +compact and checked cannot occur in elements +without their value being specified.

      + +
      +

      CORRECT: unminimized attributes

      + +

      <dl compact="compact">

      +
      + +
      +

      INCORRECT: minimized attributes

      + +

      <dl compact>

      +
      + +

      4.6 Empty Elements

      + +

      Empty elements must either have an end tag or the start tag must end with />. For instance, +<br/> or <hr></hr>. See HTML Compatibility Guidelines for information on ways to +ensure this is backward compatible with HTML 4.0 user agents.

      + +
      +

      CORRECT: terminated empty tags

      + +

      <br/><hr/>

      +
      + +
      +

      INCORRECT: unterminated empty tags

      + +

      <br><hr>

      +
      + +

      4.7 Whitespace handling in +attribute values

      + +

      In attribute values, user agents will strip leading and +trailing whitespace from attribute values and map sequences +of one or more whitespace characters (including line breaks) to +a single inter-word space (an ASCII space character for western +scripts). See +Section 3.3.3 of [XML].

      + +

      4.8 Script and Style +elements

      + +

      In XHTML, the script and style elements are declared as having +#PCDATA content. As a result, < and +& will be treated as the start of markup, and +entities such as &lt; and &amp; +will be recognized as entity references by the XML processor to +< and & respectively. Wrapping +the content of the script or style element within a +CDATA marked section avoids the expansion of these +entities.

      + +
      +
      +<script>
      + <![CDATA[
      + ... unescaped script content ...
      + ]]>
      + </script>
      +
      +
      + +

      CDATA sections are recognized by the XML +processor and appear as nodes in the Document Object Model, see + +Section 1.3 of the DOM Level 1 Recommendation [DOM].

      + +

      An alternative is to use external script and style +documents.

      + +

      4.9 SGML exclusions

      + +

      SGML gives the writer of a DTD the ability to exclude specific +elements from being contained within an element. Such +prohibitions (called "exclusions") are not possible in XML.

      + +

      For example, the HTML 4.0 Strict DTD forbids the nesting of an +'a' element within another 'a' element +to any descendant depth. It is not possible to spell out such +prohibitions in XML. Even though these prohibitions cannot be +defined in the DTD, certain elements should not be nested. A +summary of such elements and the elements that should not be +nested in them is found in the normative +Appendix B.

      + +

      4.10 The elements with 'id' and 'name' +attributes

      + +

      HTML 4.0 defined the name attribute for the elements +a, +applet, frame, +iframe, img, and map. +HTML 4.0 also introduced +the id attribute. Both of these attributes are designed to be +used as fragment identifiers.

      +

      In XML, fragment identifiers are of type ID, and +there can only be a single attribute of type ID per element. +Therefore, in XHTML 1.0 the id +attribute is defined to be of type ID. In order to +ensure that XHTML 1.0 documents are well-structured XML documents, XHTML 1.0 +documents MUST use the id attribute when defining fragment +identifiers, even on elements that historically have also had a +name attribute. +See the HTML Compatibility +Guidelines for information on ensuring such anchors are backwards +compatible when serving XHTML documents as media type text/html. +

      +

      Note that in XHTML 1.0, the name attribute of these +elements is formally deprecated, and will be removed in a +subsequent version of XHTML.

      + + +

      5. Compatibility Issues

      + +

      Although there is no requirement for XHTML 1.0 documents to be +compatible with existing user agents, in practice this is easy to +accomplish. Guidelines for creating compatible documents can be +found in Appendix C.

      + +

      5.1 Internet Media Type

      +

      As of the publication of this recommendation, the general +recommended MIME labeling for XML-based applications +has yet to be resolved.

      + +

      However, XHTML Documents which follow the guidelines set forth +in Appendix C, "HTML Compatibility Guidelines" may be +labeled with the Internet Media Type "text/html", as they +are compatible with most HTML browsers. This document +makes no recommendation about MIME labeling of other +XHTML documents.

      + + +

      6. Future Directions

      + +

      XHTML 1.0 provides the basis for a family of document types +that will extend and subset XHTML, in order to support a wide +range of new devices and applications, by defining modules and +specifying a mechanism for combining these modules. This +mechanism will enable the extension and sub-setting of XHTML 1.0 +in a uniform way through the definition of new modules.

      + +

      6.1 Modularizing HTML

      + +

      As the use of XHTML moves from the traditional desktop user +agents to other platforms, it is clear that not all of the XHTML +elements will be required on all platforms. For example a hand +held device or a cell-phone may only support a subset of XHTML +elements.

      + +

      The process of modularization breaks XHTML up into a series of +smaller element sets. These elements can then be recombined to +meet the needs of different communities.

      + +

      These modules will be defined in a later W3C document.

      + +

      6.2 Subsets and +Extensibility

      + +

      Modularization brings with it several advantages:

      + +
        +
      • +

        It provides a formal mechanism for sub-setting XHTML.

        +
      • + +
      • +

        It provides a formal mechanism for extending XHTML.

        +
      • + +
      • +

        It simplifies the transformation between document types.

        +
      • + +
      • +

        It promotes the reuse of modules in new document types.

        +
      • +
      + +

      6.3 Document +Profiles

      + +

      A document profile specifies the syntax and semantics of a set +of documents. Conformance to a document profile provides a basis +for interoperability guarantees. The document profile specifies +the facilities required to process documents of that type, e.g. +which image formats can be used, levels of scripting, style sheet +support, and so on.

      + +

      For product designers this enables various groups to define +their own standard profile.

      + +

      For authors this will obviate the need to write several +different versions of documents for different clients.

      + +

      For special groups such as chemists, medical doctors, or +mathematicians this allows a special profile to be built using +standard HTML elements plus a group of elements geared to the +specialist's needs.

      + + +

      +Appendix A. DTDs

      + +

      This appendix is normative.

      + +

      These DTDs and entity sets form a normative part of this +specification. The complete set of DTD files together with an XML +declaration and SGML Open Catalog is included in the zip file for this specification.

      + +

      A.1 Document Type +Definitions

      + +

      These DTDs approximate the HTML 4.0 DTDs. It is likely that +when the DTDs are modularized, a method of DTD construction will +be employed that corresponds more closely to HTML 4.0.

      + + + +

      A.2 Entity Sets

      + +

      The XHTML entity sets are the same as for HTML 4.0, but have +been modified to be valid XML 1.0 entity declarations. Note the +entity for the Euro currency sign (&euro; or +&#8364; or &#x20AC;) is defined +as part of the special characters.

      + + + + +

      Appendix B. Element +Prohibitions

      + +

      This appendix is normative.

      + +

      The following elements have prohibitions on which elements +they can contain (see Section 4.9). This +prohibition applies to all depths of nesting, i.e. it contains +all the descendant elements.

      + +
      a
      +
      +cannot contain other a elements.
      +
      pre
      +
      cannot contain the img, object, +big, small, sub, or +sup elements.
      + +
      button
      +
      cannot contain the input, select, +textarea, label, button, +form, fieldset, iframe or +isindex elements.
      +
      label
      +
      cannot contain other label elements.
      +
      form
      +
      cannot contain other form elements.
      +
      + + +

      Appendix C. +HTML Compatibility Guidelines

      + +

      This appendix is informative.

      + +

      This appendix summarizes design guidelines for authors who +wish their XHTML documents to render on existing HTML user +agents.

      + +

      C.1 Processing Instructions

      +

      Be aware that processing instructions are rendered on some +user agents. However, also note that when the XML declaration is not included +in a document, the document can only use the default character encodings UTF-8 +or UTF-16.

      + +

      C.2 Empty Elements

      +

      Include a space before the trailing / and +> of empty elements, e.g. +<br />, +<hr /> and <img +src="karen.jpg" alt="Karen" />. Also, use the +minimized tag syntax for empty elements, e.g. <br />, as the alternative syntax <br></br> allowed by XML +gives uncertain results in many existing user agents.

      + +

      C.3 Element Minimization and Empty Element Content

      +

      Given an empty instance of an element whose content model is +not EMPTY (for example, an empty title or paragraph) +do not use the minimized form (e.g. use +<p> </p> and not +<p />).

      + +

      C.4 Embedded Style Sheets and Scripts

      +

      Use external style sheets if your style sheet uses +< or & or ]]> or --. Use +external scripts if your script uses < or +& or ]]> or --. Note that XML parsers +are permitted to silently remove the contents of comments. Therefore, the historical +practice of "hiding" scripts and style sheets within comments to make the +documents backward compatible is likely to not work as expected in XML-based +implementations.

      + +

      C.5 Line Breaks within Attribute Values

      +

      Avoid line breaks and multiple whitespace characters within +attribute values. These are handled inconsistently by user +agents.

      + +

      C.6 Isindex

      +

      Don't include more than one isindex element in +the document head. The isindex element +is deprecated in favor of the input element.

      + +

      C.7 The lang and xml:lang Attributes

      +

      Use both the lang and xml:lang +attributes when specifying the language of an element. The value +of the xml:lang attribute takes precedence.

      + +

      C.8 Fragment Identifiers

      +

      In XML, URIs [RFC2396] that end with fragment identifiers of the form +"#foo" do not refer to elements with an attribute +name="foo"; rather, they refer to elements with an +attribute defined to be of type ID, e.g., the +id attribute in HTML 4.0. Many existing HTML clients don't +support the use of ID-type attributes in this way, +so identical values may be supplied for both of these attributes to ensure +maximum forward and backward compatibility (e.g., <a id="foo" name="foo">...</a>).

      + +

      Further, since the set of +legal values for attributes of type ID is much smaller than +for those of type CDATA, the type of the name +attribute has been changed to NMTOKEN. This attribute is +constrained such that it can only have the same values as type +ID, or as the Name production in XML 1.0 Section +2.5, production 5. Unfortunately, this constraint cannot be expressed in the +XHTML 1.0 DTDs. Because of this change, care must be taken when +converting existing HTML documents. The values of these attributes +must be unique within the document, valid, and any references to these +fragment identifiers (both +internal and external) must be updated should the values be changed during +conversion.

      +

      Finally, note that XHTML 1.0 has deprecated the +name attribute of the a, applet, frame, iframe, img, and map +elements, and it will be +removed from XHTML in subsequent versions.

      + +

      C.9 Character Encoding

      +

      To specify a character encoding in the document, use both the +encoding attribute specification on the xml declaration (e.g. +<?xml version="1.0" +encoding="EUC-JP"?>) and a meta http-equiv statement +(e.g. <meta http-equiv="Content-type" +content='text/html; charset="EUC-JP"' />). The +value of the encoding attribute of the xml processing instruction +takes precedence.

      + +

      C.10 Boolean Attributes

      +

      Some HTML user agents are unable to interpret boolean +attributes when these appear in their full (non-minimized) form, +as required by XML 1.0. Note this problem doesn't effect user +agents compliant with HTML 4.0. The following attributes are +involved: compact, nowrap, +ismap, declare, noshade, +checked, disabled, readonly, +multiple, selected, +noresize, defer.

      + +

      C.11 Document Object Model and XHTML

      +

      +The Document Object Model level 1 Recommendation [DOM] +defines document object model interfaces for XML and HTML 4.0. The HTML 4.0 +document object model specifies that HTML element and attribute names are +returned in upper-case. The XML document object model specifies that +element and attribute names are returned in the case they are specified. In +XHTML 1.0, elements and attributes are specified in lower-case. This apparent difference can be +addressed in two ways: +

      +
        +
      1. Applications that access XHTML documents served as Internet media type +text/html +via the DOM can use the HTML DOM, +and can rely upon element and attribute names being returned in +upper-case from those interfaces.
      2. +
      3. Applications that access XHTML documents served as Internet media types +text/xml or application/xml +can also use the XML DOM. Elements and attributes will be returned in lower-case. +Also, some XHTML elements may or may +not appear +in the object tree because they are optional in the content model +(e.g. the tbody element within +table). This occurs because in HTML 4.0 some elements were +permitted to be minimized such that their start and end tags are both omitted +(an SGML feature). +This is not possible in XML. Rather than require document authors to insert +extraneous elements, XHTML has made the elements optional. +Applications need to adapt to this +accordingly.
      4. +
      + +

      C.12 Using Ampersands in Attribute Values

      +

      +When an attribute value contains an ampersand, it must be expressed as a character +entity reference +(e.g. "&amp;"). For example, when the +href attribute +of the a element refers to a +CGI script that takes parameters, it must be expressed as +http://my.site.dom/cgi-bin/myscript.pl?class=guest&amp;name=user +rather than as +http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user. +

      + +

      C.13 Cascading Style Sheets (CSS) and XHTML

      + +

      The Cascading Style Sheets level 2 Recommendation [CSS2] defines style +properties which are applied to the parse tree of the HTML or XML +document. Differences in parsing will produce different visual or +aural results, depending on the selectors used. The following hints +will reduce this effect for documents which are served without +modification as both media types:

      + +
        +
      1. +CSS style sheets for XHTML should use lower case element and +attribute names.
      2. + + +
      3. In tables, the tbody element will be inferred by the parser of an +HTML user agent, but not by the parser of an XML user agent. Therefore +you should always explicitely add a tbody element if it is referred to +in a CSS selector.
      4. + +
      5. Within the XHTML name space, user agents are expected to +recognize the "id" attribute as an attribute of type ID. +Therefore, style sheets should be able to continue using the +shorthand "#" selector syntax even if the user agent does not read +the DTD.
      6. + +
      7. Within the XHTML name space, user agents are expected to +recognize the "class" attribute. Therefore, style sheets should be +able to continue using the shorthand "." selector syntax.
      8. + +
      9. +CSS defines different conformance rules for HTML and XML documents; +be aware that the HTML rules apply to XHTML documents delivered as +HTML and the XML rules apply to XHTML documents delivered as XML.
      10. +
      + +

      Appendix D. +Acknowledgements

      + +

      This appendix is informative.

      + +

      This specification was written with the participation of the +members of the W3C HTML working group:

      + +
      +
      Steven Pemberton, CWI (HTML Working Group Chair)
      +Murray Altheim, Sun Microsystems
      +Daniel Austin, CNET: The Computer Network
      +Frank Boumphrey, HTML Writers Guild
      +John Burger, Mitre
      +Andrew W. Donoho, IBM
      +Sam Dooley, IBM
      +Klaus Hofrichter, GMD
      +Philipp Hoschka, W3C
      +Masayasu Ishikawa, W3C
      +Warner ten Kate, Philips Electronics
      +Peter King, Phone.com
      +Paula Klante, JetForm
      +Shin'ichi Matsui, W3C/Panasonic
      +Shane McCarron, Applied Testing and Technology (The Open Group through August +1999)
      +Ann Navarro, HTML Writers Guild
      +Zach Nies, Quark
      +Dave Raggett, W3C/HP (W3C lead for HTML)
      +Patrick Schmitz, Microsoft
      +Sebastian Schnitzenbaumer, Stack Overflow
      +Chris Wilson, Microsoft
      +Ted Wugofski, Gateway 2000
      +Dan Zigmond, WebTV Networks
      +
      + + +

      Appendix E. References

      + +

      This appendix is informative.

      + +
      + +
      [CSS2]
      + +
      "Cascading Style Sheets, level 2 (CSS2) Specification", B. +Bos, H. W. Lie, C. Lilley, I. Jacobs, 12 May 1998.
      +Available at: +http://www.w3.org/TR/REC-CSS2
      + +
      [DOM]
      + +
      "Document Object Model (DOM) Level 1 Specification", Lauren +Wood et al., 1 October 1998.
      +Available at: +http://www.w3.org/TR/REC-DOM-Level-1
      + +
      [HTML]
      + +
      "HTML 4.01 Specification", D. Raggett, A. Le Hors, I. +Jacobs, 24 August 1999.
      +Available at: +http://www.w3.org/TR/1999/PR-html40-19990824
      + +
      [POSIX.1]
      + +
      "ISO/IEC 9945-1:1990 Information Technology - Portable +Operating System Interface (POSIX) - Part 1: System Application +Program Interface (API) [C Language]", Institute of Electrical +and Electronics Engineers, Inc, 1990.
      + +
      +[RFC2046]
      + +
      "RFC2046: Multipurpose Internet Mail Extensions (MIME) Part +Two: Media Types", N. Freed and N. Borenstein, November +1996.
      +Available at +http://www.ietf.org/rfc/rfc2046.txt. Note that this RFC +obsoletes RFC1521, RFC1522, and RFC1590.
      + +
      +[RFC2119]
      + +
      "RFC2119: Key words for use in RFCs to Indicate Requirement +Levels", S. Bradner, March 1997.
      +Available at: +http://www.ietf.org/rfc/rfc2119.txt
      + +
      +[RFC2376]
      + +
      "RFC2376: XML Media Types", E. Whitehead, M. Murata, July +1998.
      +Available at: +http://www.ietf.org/rfc/rfc2376.txt
      + +
      +[RFC2396]
      + +
      "RFC2396: Uniform Resource Identifiers (URI): Generic +Syntax", T. Berners-Lee, R. Fielding, L. Masinter, August +1998.
      +This document updates RFC1738 and RFC1808.
      +Available at: +http://www.ietf.org/rfc/rfc2396.txt
      + +
      [XML]
      + +
      "Extensible Markup Language (XML) 1.0 Specification", T. +Bray, J. Paoli, C. M. Sperberg-McQueen, 10 February 1998.
      +Available at: +http://www.w3.org/TR/REC-xml
      + +
      [XMLNAMES]
      + +
      "Namespaces in XML", T. Bray, D. Hollander, A. Layman, 14 +January 1999.
      +XML namespaces provide a simple method for qualifying names used +in XML documents by associating them with namespaces identified +by URI.
      +Available at: +http://www.w3.org/TR/REC-xml-names
      + +
      +

      +Level Triple-A conformance icon, W3C-WAI Web Content Accessibility Guidelines 1.0

      + + + diff --git a/result/valid/xhtml1.xhtml.err b/result/valid/xhtml1.xhtml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/valid/xlink.xml b/result/valid/xlink.xml new file mode 100644 index 0000000..7b35a0f --- /dev/null +++ b/result/valid/xlink.xml @@ -0,0 +1,525 @@ + + + +]> + + + + + + + +
      + XML Linking Language (XLink) + Version 1.0 + WD-xlink-19990527 + World Wide Web Consortium Working Draft + 29May1999 + +

      This draft is for public discussion.

      +
      + http://www.w3.org/XML/Group/1999/05/WD-xlink-current + + + http://www.w3.org/XML/Group/1999/05/WD-xlink-19990527 + http://www.w3.org/XML/Group/1999/05/WD-xlink-19990505 + http://www.w3.org/TR/1998/WD-xlink-19980303 + http://www.w3.org/TR/WD-xml-link-970630 + + + + + + Steve DeRose + Inso Corp. and Brown University + Steven_DeRose@Brown.edu + + + David Orchard + IBM Corp. + dorchard@ca.ibm.com + + + Ben Trafford + Invited Expert + bent@exemplary.net + + + + + +

      This is a W3C Working Draft for review by W3C members and other interested parties. It is a draft document and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use W3C Working Drafts as reference material or to cite them as other than "work in progress". A list of current W3C working drafts can be found at http://www.w3.org/TR.

      +

      Note: Since working drafts are subject to frequent change, you are advised to reference the above URI, rather than the URIs for working drafts themselves. Some of the work remaining is described in .

      +

      This work is part of the W3C XML Activity (for current status, see http://www.w3.org/XML/Activity ). For information about the XPointer language which is expected to be used with XLink, see http://www.w3.org/TR/WD-xptr. +

      +

      See http://www.w3.org/TR/NOTE-xlink-principles for additional background on the design principles informing XLink.

      +

      Also see http://www.w3.org/TR/NOTE-xlink-req/ for the XLink requirements that this document attempts to satisfy.

      +
      + + + +

      This specification defines constructs that may be inserted into XML DTDs, schemas and document instances to describe links between objects. It uses XML syntax to create structures that can describe the simple unidirectional hyperlinks of today's HTML as well as more sophisticated links.

      +
      + + +

      Burlington, Seekonk, et al.: World-Wide Web Consortium, XML Working Group, 1998.

      +
      + + +

      Created in electronic form.

      +
      + + + English + Extended Backus-Naur Form (formal grammar) + + + + + 1997-01-15 : Skeleton draft by TB + 1997-01-24 : Fleshed out by sjd + 1997-04-08 : Substantive draft + 1997-06-30 : Public draft + 1997-08-01 : Public draft + 1997-08-05 : Prose/organization work by sjd + 1997-10-14: Conformance and design principles; a bit of cleanup by elm + 1997-11-07: Update for editorial issues per issues doc, by sjd. + 1997-12-01: Update for editorial issues per issues doc in preparation for F2F meeting, by sjd. + 1998-01-13: Editorial cleanup, addition of new design principles, by elm. + 1998-02-27: Splitting out of XLink and XPointer, by elm. + 1998-03-03: Moved most of the XPointer locator stuff here. elm + 1999-04-24: Editorial rewrites to represent new ideas on XLink, especially the inclusion of arcs. bent + 1999-05-05: Prose/organization work by dorchard. Moved much of the semantics section around, from: locators, link semantics, remote resource semantics, local resource semantics; to: resource semantics, locators, behavior semantics, link semantics, arc semantics + 1999-05-12: Prose/organization work. Re-organized some of the sections, removed XML constructs from the document, added descriptive prose, edited document text for clarity. Rewrote the link recognition section. bent + 1999-05-17: Further prose work. Added non-normative examples. Clarified arcs. bent + 1999-05-23: Edited for grammar and clarity. bent + 1999-05-27: Final once-over before sending to group. Fixed sjd's email address. bent + + +
      + + + + Introduction +

      This specification defines constructs that may be inserted into XML DTDs, schemas, and document instances to describe links between objects. A link, as the term is used here, is an explicit relationship between two or more data objects or portions of data objects. This specification is concerned with the syntax used to assert link existence and describe link characteristics. Implicit (unasserted) relationships, for example that of one word to the next or that of a word in a text to its entry in an on-line dictionary are obviously important, but outside its scope.

      +

      Links are asserted by elements contained in XML document instances. The simplest case is very like an HTML A link, and has these characteristics: + +

      The link is expressed at one of its ends (similar to the A element in some document)

      +

      Users can only initiate travel from that end to the other

      +

      The link's effect on windows, frames, go-back lists, stylesheets in use, and so on is mainly determined by browsers, not by the link itself. For example, traveral of A links normally replaces the current view, perhaps with a user option to open a new window.

      +

      The link goes to only one destination (although a server may have great freedom in finding or dynamically creating that destination).

      + +

      +

      While this set of characteristics is already very powerful and obviously has proven itself highly useful and effective, each of these assumptions also limits the range of hypertext functionality. The linking model defined here provides ways to create links that go beyond each of these specific characteristics, thus providing features previously available mostly in dedicated hypermedia systems. +

      + + + Origin and Goals +

      Following is a summary of the design principles governing XLink: + +

      XLink must be straightforwardly usable over the Internet.

      +

      XLink must be usable by a wide variety of link usage domains and classes of linking application software.

      +

      XLink must support HTML 4.0 linking constructs.

      +

      The XLink expression language must be XML.

      +

      The XLink design must be formal, concise, and illustrative.

      +

      XLinks must be human-readable and human-writable.

      +

      XLinks may reside within or outside the documents in which the + participating resources reside.

      +

      XLink must represent the abstract structure and significance of links.

      +

      XLink must be feasible to implement.

      +

      XLink must be informed by knowledge of established hypermedia systems and standards.

      + +

      +
      + + + + Relationship to Existing Standards +

      Three standards have been especially influential: + +

      HTML: Defines several SGML element types that represent links.

      +

      HyTime: Defines inline and out-of-line link structures and some semantic features, including traversal control and presentation of objects. +

      +

      Text Encoding Initiative Guidelines (TEI P3): Provides structures for creating links, aggregate objects, and link collections out of them.

      + +

      +

      Many other linking systems have also informed this design, especially Dexter, FRESS, MicroCosm, and InterMedia.

      +
      + + + Terminology +

      The following basic terms apply in this document. + + + +

      A symbolic representation of traversal behavior in links, especially the direction, context and timing of traversal.

      + + + +

      A representation of the relevant structure specified by the tags and attributes in an XML document, based on "groves" as defined in the ISO DSSSL standard.

      +
      + + +

      Abstractly, a link which serves as one of its own resources. Concretely, a link where the content of the linking element serves as a participating resource. + HTML A, HyTime clink, and TEI XREF + are all inline links.

      +
      + + +

      An explicit relationship between two or more data objects or portions of data objects.

      +
      + + +

      An element that asserts the existence and describes the characteristics of a link.

      +
      + + +

      The content of an inlinelinking element. Note that the content of the linking element could be explicitly pointed to by means of a regular locator in the same linking element, in which case the resource is considered remote, not local.

      +
      + + +

      Data, provided as part of a link, which identifies a + resource.

      +
      + + +

      A link whose traversal can be initiated from more than one of its participating resources. Note that being able to "go back" after following a one-directional link does not make the link multidirectional.

      +
      + + +

      A link whose content does not serve as one of the link's participating resources . Such links presuppose a notion like extended link groups, which instruct application software where to look for links. Out-of-line links are generally required for supporting multidirectional traversal and for allowing read-only resources to have outgoing links.

      +
      + +

      In the context of link behavior, a parsed link is any link whose content is transcluded into the document where the link originated. The use of the term "parsed" directly refers to the concept in XML of a + parsed entity.

      +
      + + +

      A resource that belongs to a link. All resources are potential contributors to a link; participating resources are the actual contributors to a particular link.

      +
      + + +

      Any participating resource of a link that is pointed to with a locator.

      +
      + + +

      In the abstract sense, an addressable unit of information or service that is participating in a link. Examples include files, images, documents, programs, and query results. Concretely, anything reachable by the use of a locator in some linking element. Note that this term and its definition are taken from the basic specifications governing the World Wide Web. +

      +
      + + +

      A portion of a resource, pointed to as the precise destination of a link. As one example, a link might specify that an entire document be retrieved and displayed, but that some specific part(s) of it is the specific linked data, to be treated in an application-appropriate manner such as indication by highlighting, scrolling, etc.

      +
      + + +

      The action of using a link; that is, of accessing a resource. Traversal may be initiated by a user action (for example, clicking on the displayed content of a linking element) or occur under program control.

      +
      + +

      +
      + + + Notation +

      The formal grammar for locators is given using a simple Extended Backus-Naur Form (EBNF) location, as described in the XML specification.

      + +
      +
      + + + Locator Syntax +

      The locator for a resource is typically provided by means of a Uniform Resource Identifier, or URI. XPointers can be used in conjunction with the URI structure, as fragment identifiers, to specify a more precise sub-resource.

      + +

      A locator generally contains a URI, as described in IETF RFCs and . As these RFCs state, the URI may include a trailing query (marked by a leading "?"), and be followed by a "#" and a fragment identifier, with the query interpreted by the host providing the indicated resource, and the interpretation of the fragment identifier dependent on the data type of the indicated resource.

      + +

      In order to locate XML documents and portions of documents, a locator value may contain either a URI or a fragment identifier, or both. Any fragment identifier for pointing into XML must be an XPointer.

      +

      Special syntax may be used to request the use of particular processing models in accessing the locator's resource. This is designed to reflect the realities of network operation, where it may or may not be desirable to exercise fine control over the distribution of work between local and remote processors. + + Locator + + Locator + URI + | Connector (XPointer | Name) + | URI Connector (XPointer | Name) + + + Connector'#' | '|' + + + URIURIchar* + + +

      +

      In this discussion, the term designated resource refers to the resource which an entire locator serves to locate. The following rules apply: + + +

      The URI, if provided, locates a resource called the containing resource.

      + + +

      If the URI is not provided, the containing resource is considered to be the document in which the linking element is contained. +

      + +

      If an XPointer is provided, the designated resource is a sub-resource + of the containing resource; otherwise the designated resource is the + containing resource.

      +
      + + +

      If the Connector is followed directly by a Name, the Name is shorthand for the XPointer"id(Name)"; that is, the sub-resource is the element in the containing resource that has an XML ID attribute whose value matches the Name. This shorthand is to encourage use of the robust id addressing mode.

      +
      + + +

      If the connector is "#", this signals an intent that the containing resource is to be fetched as a whole from the host that provides it, and that the XPointer processing to extract the sub-resource + is to be performed on the client, that is to say on the same system where the linking element is recognized and processed.

      +
      + +

      If the connector is "|", no intent is signaled as to what processing model is to be used to go about accessing the designated resource.

      +
      + +

      +

      Note that the definition of a URI includes an optional query component.

      +

      In the case where the URI contains a query (to be interpreted by the server), information providers and authors of server software are urged to use queries as follows: + + Query + + Query'XML-XPTR=' ( XPointer | Name) + + +

      + +
      + + + Link Recognition +

      The existence of a link is asserted by a linking element. Linking elements must be recognized reliably by application software in order to provide appropriate display and behavior. There are several ways link recognition could be accomplished: for example, reserving element type names, reserving attributes names, leaving the matter of recognition entirely up to stylesheets and application software, or using the XLink namespace to specify element names and attribute names that would be recognized by namespace and XLink-aware processors. Using element and attribute names within the XLink namespace provides a balance between giving users control of their own markup language design and keeping the identification of linking elements simple and unambiguous.

      +

      The two approaches to identifying linking elements are relatively simple to implement. For example, here's how the HTML A element would be declared using attributes within the XLink namespace, and then how an element within the XLink namespace might do the same: + <A xlink:type="simple" xlink:href="http://www.w3.org/TR/wd-xlink/" +xlink:title="The Xlink Working Draft">The XLink Working Draft.</A> + <xlink:simple href="http://www.w3.org/TR/wd-xlink/" +title="The XLink Working Draft">The XLink Working Draft</xlink:simple> + Any arbitrary element can be made into an XLink by using the xlink:type attribute. And, of course, the explicit XLink elements may be used, as well. This document will go on to describe the linking attributes that are associated with linking elements. It may be assumed by the reader that these attributes would require the xlink namespace prefix if they existed within an arbitrary element, or that they may be used directly if they exist within an explicit Xlink element.

      + +
      + + + + Linking Attributes +

      XLink has several attributes associated with the variety of links it may represent. These attributes define four main concepts: locators, arcs, behaviors, and semantics. Locators define where the actual resource is located. Arcs define the traversal of links. Where does the link come from? Where does it go to? All this information can be stored in the arc attributes. Behaviors define how the link is activated, and what the application should do with the resource being linked to. Semantics define useful information that the application may use, and enables the link for such specalized targets as constricted devices and accessibility software.

      + + + Locator Attributes +

      The only locator attribute at this time is href. This attribute must contain either a string in the form of a URI that defines the remote resource being linked to, a string containing a fragment identifier that links to a local resource, or a string containing a URI with a fragment identifier concacenated onto it.

      +
      + + + Arc Attributes +

      Arcs contain two attributes, from and to. The from attribute may contain a string containing the content of a role attribute from the resource being linked from. The purpose of the from attribute is to define where this link is being actuated from.

      +

      The to attribute may contain a string containing the content of a role attribute from the resource being linked to. The purpose of the to attribute is to define where this link traverses to.

      +

      The application may use this information in a number of ways, especially in a complex hypertext system, but it is mainly useful in providing context for application behavior.

      + +
      + + + Behavior Attributes +

      There are two attributes associated with behavior: show and actuate. The show attribute defines how the remote resource is to be revealed to the user. It has three options: new, parsed, and replace. The new option indicates that the remote resource should be shown in a new window (or other device context) without replacing the previous content. The parsed option, relating directly to the XML concept of a parsed entity, indicates that the content should be integrated into the document from which the link was actuated. The replace option is the one most commonly seen on the World Wide Web, where the document being linked from is entirely replaced by the object being linked to.

      +

      The actuate attribute defines how the link is initiated. It has two options: user and auto. The user option indicates that the link must be initiated by some sort of human-initiated selection, such as clicking on an HTML anchor. The auto option indicates that the link is automatically initiated when the application deems that the user has reached the link. It then follows the behavior set out in the show option.

      + +
      + + + Semantic Attributes +

      There are two attributes associated with semantics, role and title. The role attribute is a generic string used to describe the function of the link's content. For example, a poem might have a link with a role="stanza". The role is also used as an identifier for the from and to attributes of arcs.

      +

      The title attribute is designed to provide human-readable text describing the link. It is very useful for those who have text-based applications, whether that be due to a constricted device that cannot display the link's content, or if it's being read by an application to a visually-impaired user, or if it's being used to create a table of links. The title attribute contains a simple, descriptive string.

      +
      +
      + + + Linking Elements +

      There are several kinds of linking elements in XLink: simple links, locators, arcs, and extended links. These elements may be instantiated via element declarations from the XLink namespace, or they may be instantiated via attribute declarations from the XLink namespace. Both kinds of instantiation are described in the definition of each linking element.

      +

      The simple link is used to declare a link that approximates the functionality of the HTML A element. It has, however, a few added features to increase its value, including the potential declaration of semantics and behavior. The locator elements are used to define the resource being linked to. Some links may contain multiple locators, representing a choice of potential links to be traversed. The arcs are used to define the traversal semantics of the link. Finally, an extended linking element differs from a simple link in that it can connect any number of resources, not just one local resource (optionally) and one remote resource, and in that extended links are more often out-of-line than simple links.

      + + + Simple Links + +

      The following are two examples of linking elements, each showing all the possible attributes that can be associated with a simple link. Here is the explicit XLink simple linking element. + <!ELEMENT xlink:simple ANY> +<!ATTLIST xlink:slink + href CDATA #REQUIRED + role CDATA #IMPLIED + title CDATA #IMPLIED + show (new|parsed|replace) "replace" + actuate (user|auto) "user" +> + And here is how to make an arbitrary element into a simple link. + <!ELEMENT xlink:simple ANY> +<!ATTLIST foo + xlink:type (simple|extended|locator|arc) #FIXED "simple" + xlink:href CDATA #REQUIRED + xlink:role CDATA #IMPLIED + xlink:title CDATA #IMPLIED + xlink:show (new|parsed|replace) "replace" + xlink:actuate (user|auto) "user" +> + Here is how the first example might look in a document: +<xlink:simple href="http://www.w3.org/TR/wd-xlink" role="working draft" + title="The XLink Working Draft" show="replace" actuate="user"> +The XLink Working Draft.</xlink:simple> +<foo xlink:href="http://www.w3.org/TR/wd-xlink" xlink:role="working draft" + xlink:title="The XLink Working Draft" xlink:show="new" xlink:actuate="user"> +The XLink Working Draft.</foo> + Alternately, a simple link could be as terse as this: +<foo xlink:href="#stanza1">The First Stanza.</foo> +

      +

      + There are no constraints on the contents of a simple linking element. In + the sample declaration above, it is given a content model of ANY + to illustrate that any content model or declared content is acceptable. In + a valid document, every element that is significant to XLink must still conform + to the constraints expressed in its governing DTD.

      +

      Note that it is meaningful to have an out-of-line simple link, although + such links are uncommon. They are called "one-ended" and are typically used + to associate discrete semantic properties with locations. The properties might + be expressed by attributes on the link, the link's element type name, or in + some other way, and are not considered full-fledged resources of the link. + Most out-of-line links are extended links, as these have a far wider range + of uses.

      +
      + + +Extended Links +

      An extended link differs from a simple link in that it can connect any number of resources, not just one local resource (optionally) and one remote resource, and in that extended links are more often out-of-line than simple links.

      +

      These additional capabilities of extended links are required for: + + +

      Enabling outgoing links in documents that cannot be modified to add an inline link

      + + +

      Creating links to and from resources in formats with no native support for embedded links (such as most multimedia formats)

      +
      + +

      Applying and filtering sets of relevant links on demand

      +
      +

      Enabling other advanced hypermedia capabilities

      + +

      +

      Application software might be expected to provide traversal among all of a link's participating resources (subject to semantic constraints outside the scope of this specification) and to signal the fact that a given resource or sub-resource participates in one or more links when it is displayed (even though there is no markup at exactly that point to signal it).

      +

      A linking element for an extended link contains a series of child elements that serve as locators and arcs. Because an extended link can have more than one remote resource, it separates out linking itself from the mechanisms used to locate each resource (whereas a simple link combines the two).

      +

      The xlink:type attribute value for an extended link must be extended, if the link is being instantiated on an arbitrary element. Note that extended links introduce variants of the show and actuate behavior attributes. These attributes, the showdefault and actuatedefault define the same behavior as their counterparts. However, in this case, they are considered to define the default behavior for all the linking elements that they contain.

      +

      However, when a linking element within an extended link has a show or actuate attribute of its own, that attribute overrides the defaults set on the extended linking element.

      +

      The extended linking element itself retains those attributes relevant to the link as a whole, and to its local resource if any. Following are two sample declaration for an extended link. The first is an example of the explicit XLink extended link: + +<!ELEMENT xlink:extended ((xlink:arc | xlink:locator)*)> +<!ATTLIST xlink:extended + role CDATA #IMPLIED + title CDATA #IMPLIED + showdefault (new|parsed|replace) #IMPLIED + actuatedefault (user|auto) #IMPLIED > + + The second is an example of an arbitrary element being used an extended link: + +<!ELEMENT foo ((xlink:arc | xlink:locator)*)> +<!ATTLIST foo + xlink:type (simple|extended|locator|arc) #FIXED "extended" + xlink:role CDATA #IMPLIED + xlink:title CDATA #IMPLIED + xlink:showdefault (new|parsed|replace) #IMPLIED + xlink:actuatedefault (user|auto) #IMPLIED > + + The following two examples demonstrate how each of the above might appear within a document instance. Note that the content of these examples would be other elements. For brevity's sake, they've been left blank. The first example shows how the link might appear, using an explicit XLink extended link: + +<xlink:extended role="address book" title="Ben's Address Book" showdefault="replace" actuatedefault="user"> ... </xlink:extended> + + And the second shows how the link might appear, using an arbitrary element: + +<foo xlink:type="extended" xlink:role="address book" xlink:title="Ben's Address Book" xlink:showdefault="replace" xlink:actuatedefault="user"> ... </foo> +

      + +
      + + + Arc Elements +

      An arc is contained within an extended link for the purpose of defining traversal behavior. More than one arc may be associated with a link. Otherwise, arc elements function exactly as the arc attributes might lead on to expect.

      + +
      + +
      + +Conformance +

      An element conforms to XLink if: +

      The element has an xml:link attribute whose value is +one of the attribute values prescribed by this specification, and

      +

      the element and all of its attributes and content adhere to the +syntactic +requirements imposed by the chosen xml:link attribute value, +as prescribed in this specification.

      +

      +

      Note that conformance is assessed at the level of individual elements, +rather than whole XML documents, because XLink and non-XLink linking mechanisms +may be used side by side in any one document.

      +

      An application conforms to XLink if it interprets XLink-conforming elements +according to all required semantics prescribed by this specification and, +for any optional semantics it chooses to support, supports them in the way +prescribed.

      +
      + + +Unfinished Work + +Structured Titles +

      The simple title mechanism described in this draft is insufficient to cope +with internationalization or the use of multimedia in link titles. A future +version will provide a mechanism for the use of structured link titles.

      +
      +
      + +References + +Eve Maler and Steve DeRose, editors. +XML Pointer Language (XPointer) V1.0. ArborText, Inso, and Brown +University. Burlington, Seekonk, et al.: World Wide Web Consortium, 1998. +(See http://www.w3.org/TR/WD-xptr + .) +ISO (International Organization for +Standardization). ISO/IEC 10744-1992 (E). Information technology +- Hypermedia/Time-based Structuring Language (HyTime). [Geneva]: +International Organization for Standardization, 1992. Extended +Facilities +Annex. [Geneva]: International Organization for Standardization, +1996. (See http://www.ornl.go +v/sgml/wg8/hytime/html/is10744r.html ). +IETF (Internet Engineering Task +Force). +RFC 1738: Uniform Resource Locators. 1991. (See +http://www.w3.org/Addressing/rfc1738.txt). +IETF (Internet Engineering Task +Force). +RFC 1808: Relative Uniform Resource Locators. 1995. (See http://www.w3.org/Addressing/rfc +1808.txt ). +C. M. Sperberg-McQueen and Lou Burnard, editors. + +Guidelines for Electronic Text Encoding and Interchange. Association +for Computers and the Humanities (ACH), Association for Computational +Linguistics +(ACL), and Association for Literary and Linguistic Computing (ALLC). Chicago, +Oxford: Text Encoding Initiative, 1994. +]Steven J. DeRose and David G. Durand. 1995. "The +TEI Hypertext Guidelines." In Computing and the Humanities +29(3). +Reprinted in Text Encoding Initiative: Background and +Context, +ed. Nancy Ide and Jean ronis , ISBN 0-7923-3704-2. + +
      + diff --git a/result/valid/xlink.xml.err b/result/valid/xlink.xml.err new file mode 100644 index 0000000..c0eea7c --- /dev/null +++ b/result/valid/xlink.xml.err @@ -0,0 +1,4 @@ +./test/valid/xlink.xml:450: element termdef: validity error : ID dt-arc already defined +

      An arc is contained within an e + ^ +./test/valid/xlink.xml:199: element termref: validity error : IDREF attribute def references an unknown ID "dt-xlg" diff --git a/result/wap.xml b/result/wap.xml new file mode 100644 index 0000000..694b49f --- /dev/null +++ b/result/wap.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + +

      If automatic testing failed, select Failed + + + + + .

      + + + diff --git a/result/wap.xml.rde b/result/wap.xml.rde new file mode 100644 index 0000000..6867382 --- /dev/null +++ b/result/wap.xml.rde @@ -0,0 +1,70 @@ +0 10 wml 0 0 +0 8 #comment 0 1 (C) 1999, 2000 WAP Forum Ltd. All rights reserved +0 1 wml 0 0 +1 14 #text 0 1 + +1 1 card 0 0 +2 14 #text 0 1 + +2 1 onevent 0 0 +3 14 #text 0 1 + +3 1 go 0 0 +4 14 #text 0 1 + +4 1 postfield 1 0 +4 14 #text 0 1 + +4 1 postfield 1 0 +4 14 #text 0 1 + +4 1 postfield 1 0 +4 14 #text 0 1 + +4 1 postfield 1 0 +4 14 #text 0 1 + +4 1 postfield 1 0 +4 14 #text 0 1 + +4 1 postfield 1 0 +4 14 #text 0 1 + +3 15 go 0 0 +3 14 #text 0 1 + +2 15 onevent 0 0 +2 14 #text 0 1 + +2 1 p 0 0 +3 3 #text 0 1 If automatic testing failed, select +3 1 anchor 0 0 +4 3 #text 0 1 Failed +4 1 go 0 0 +5 14 #text 0 1 + +5 1 postfield 1 0 +5 1 postfield 1 0 +5 14 #text 0 1 + +5 1 postfield 1 0 +5 14 #text 0 1 + +5 1 postfield 1 0 +5 14 #text 0 1 + +5 1 postfield 1 0 +5 14 #text 0 1 + +5 1 postfield 1 0 +4 15 go 0 0 +3 15 anchor 0 0 +3 3 #text 0 1 . +2 15 p 0 0 +2 14 #text 0 1 + +1 15 card 0 0 +1 14 #text 0 1 + + +0 15 wml 0 0 diff --git a/result/wap.xml.rdr b/result/wap.xml.rdr new file mode 100644 index 0000000..6867382 --- /dev/null +++ b/result/wap.xml.rdr @@ -0,0 +1,70 @@ +0 10 wml 0 0 +0 8 #comment 0 1 (C) 1999, 2000 WAP Forum Ltd. All rights reserved +0 1 wml 0 0 +1 14 #text 0 1 + +1 1 card 0 0 +2 14 #text 0 1 + +2 1 onevent 0 0 +3 14 #text 0 1 + +3 1 go 0 0 +4 14 #text 0 1 + +4 1 postfield 1 0 +4 14 #text 0 1 + +4 1 postfield 1 0 +4 14 #text 0 1 + +4 1 postfield 1 0 +4 14 #text 0 1 + +4 1 postfield 1 0 +4 14 #text 0 1 + +4 1 postfield 1 0 +4 14 #text 0 1 + +4 1 postfield 1 0 +4 14 #text 0 1 + +3 15 go 0 0 +3 14 #text 0 1 + +2 15 onevent 0 0 +2 14 #text 0 1 + +2 1 p 0 0 +3 3 #text 0 1 If automatic testing failed, select +3 1 anchor 0 0 +4 3 #text 0 1 Failed +4 1 go 0 0 +5 14 #text 0 1 + +5 1 postfield 1 0 +5 1 postfield 1 0 +5 14 #text 0 1 + +5 1 postfield 1 0 +5 14 #text 0 1 + +5 1 postfield 1 0 +5 14 #text 0 1 + +5 1 postfield 1 0 +5 14 #text 0 1 + +5 1 postfield 1 0 +4 15 go 0 0 +3 15 anchor 0 0 +3 3 #text 0 1 . +2 15 p 0 0 +2 14 #text 0 1 + +1 15 card 0 0 +1 14 #text 0 1 + + +0 15 wml 0 0 diff --git a/result/wap.xml.sax b/result/wap.xml.sax new file mode 100644 index 0000000..ca89e70 --- /dev/null +++ b/result/wap.xml.sax @@ -0,0 +1,86 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(wml, -//WAPFORUM//DTD WML 1.1//EN, http://dark.wapit.com/vswap/tests/wap/DTD/wml11.dtd) +SAX.externalSubset(wml, -//WAPFORUM//DTD WML 1.1//EN, http://dark.wapit.com/vswap/tests/wap/DTD/wml11.dtd) +SAX.comment( (C) 1999, 2000 WAP Forum Ltd. All rights reserved ) +SAX.startElement(wml) +SAX.characters( +, 1) +SAX.startElement(card, id='card1') +SAX.characters( +, 1) +SAX.startElement(onevent, type='onenterforward') +SAX.characters( +, 1) +SAX.startElement(go, href='/vswap/run/result.eml') +SAX.characters( + , 9) +SAX.startElement(postfield, name='var', value='$test') +SAX.endElement(postfield) +SAX.characters( + , 9) +SAX.startElement(postfield, name='v', value='dark') +SAX.endElement(postfield) +SAX.characters( + , 9) +SAX.startElement(postfield, name='ts', value='0003') +SAX.endElement(postfield) +SAX.characters( + , 9) +SAX.startElement(postfield, name='tp', value='wml/state/variables/parsing/1') +SAX.endElement(postfield) +SAX.characters( + , 9) +SAX.startElement(postfield, name='ti', value='1') +SAX.endElement(postfield) +SAX.characters( + , 9) +SAX.startElement(postfield, name='expected', value='var:pass') +SAX.endElement(postfield) +SAX.characters( +, 1) +SAX.endElement(go) +SAX.characters( +, 1) +SAX.endElement(onevent) +SAX.characters( +, 1) +SAX.startElement(p) +SAX.characters(If automatic testing failed, s, 36) +SAX.startElement(anchor) +SAX.characters(Failed, 6) +SAX.startElement(go, href='/vswap/run/result.eml') +SAX.characters( + , 9) +SAX.startElement(postfield, name='SUBMIT', value='No') +SAX.endElement(postfield) +SAX.startElement(postfield, name='v', value='dark') +SAX.endElement(postfield) +SAX.characters( + , 9) +SAX.startElement(postfield, name='ts', value='0003') +SAX.endElement(postfield) +SAX.characters( + , 9) +SAX.startElement(postfield, name='tp', value='wml/state/variables/parsing/1') +SAX.endElement(postfield) +SAX.characters( + , 9) +SAX.startElement(postfield, name='ti', value='1') +SAX.endElement(postfield) +SAX.characters( + , 9) +SAX.startElement(postfield, name='expected', value='var:pass') +SAX.endElement(postfield) +SAX.endElement(go) +SAX.endElement(anchor) +SAX.characters(., 1) +SAX.endElement(p) +SAX.characters( +, 1) +SAX.endElement(card) +SAX.characters( + +, 2) +SAX.endElement(wml) +SAX.endDocument() diff --git a/result/wap.xml.sax2 b/result/wap.xml.sax2 new file mode 100644 index 0000000..6d40b25 --- /dev/null +++ b/result/wap.xml.sax2 @@ -0,0 +1,87 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(wml, -//WAPFORUM//DTD WML 1.1//EN, http://dark.wapit.com/vswap/tests/wap/DTD/wml11.dtd) +SAX.externalSubset(wml, -//WAPFORUM//DTD WML 1.1//EN, http://dark.wapit.com/vswap/tests/wap/DTD/wml11.dtd) +SAX.comment( (C) 1999, 2000 WAP Forum Ltd. All rights reserved ) +SAX.startElementNs(wml, NULL, NULL, 0, 0, 0) +SAX.characters( +, 1) +SAX.startElementNs(card, NULL, NULL, 0, 1, 0, id='card...', 5) +SAX.characters( +, 1) +SAX.startElementNs(onevent, NULL, NULL, 0, 1, 0, type='onen...', 14) +SAX.characters( +, 1) +SAX.startElementNs(go, NULL, NULL, 0, 1, 0, href='/vsw...', 21) +SAX.characters( + , 9) +SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='var"...', 3, value='$tes...', 5) +SAX.endElementNs(postfield, NULL, NULL) +SAX.characters( + , 9) +SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='v" v...', 1, value='dark...', 4) +SAX.endElementNs(postfield, NULL, NULL) +SAX.characters( + , 9) +SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='ts" ...', 2, value='0003...', 4) +SAX.endElementNs(postfield, NULL, NULL) +SAX.characters( + , 9) +SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='tp" ...', 2, value='wml/...', 29) +SAX.endElementNs(postfield, NULL, NULL) +SAX.characters( + , 9) +SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='ti" ...', 2, value='1"/>...', 1) +SAX.endElementNs(postfield, NULL, NULL) +SAX.characters( + , 9) +SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='expe...', 8, value='var:...', 8) +SAX.endElementNs(postfield, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(go, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(onevent, NULL, NULL) +SAX.characters( +, 1) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters(If automatic testing failed, s, 36) +SAX.startElementNs(anchor, NULL, NULL, 0, 0, 0) +SAX.characters(Failed, 6) +SAX.startElementNs(go, NULL, NULL, 0, 1, 0, href='/vsw...', 21) +SAX.characters( + , 9) +SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='SUBM...', 6, value='No"/...', 2) +SAX.endElementNs(postfield, NULL, NULL) +SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='v" +v...', 1, value='dark...', 4) +SAX.endElementNs(postfield, NULL, NULL) +SAX.characters( + , 9) +SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='ts" ...', 2, value='0003...', 4) +SAX.endElementNs(postfield, NULL, NULL) +SAX.characters( + , 9) +SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='tp" ...', 2, value='wml/...', 29) +SAX.endElementNs(postfield, NULL, NULL) +SAX.characters( + , 9) +SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='ti" ...', 2, value='1"/>...', 1) +SAX.endElementNs(postfield, NULL, NULL) +SAX.characters( + , 9) +SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='expe...', 8, value='var:...', 8) +SAX.endElementNs(postfield, NULL, NULL) +SAX.endElementNs(go, NULL, NULL) +SAX.endElementNs(anchor, NULL, NULL) +SAX.characters(., 1) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(card, NULL, NULL) +SAX.characters( + +, 2) +SAX.endElementNs(wml, NULL, NULL) +SAX.endDocument() diff --git a/result/winblanks.xml b/result/winblanks.xml new file mode 100644 index 0000000..0044aa2 --- /dev/null +++ b/result/winblanks.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/result/winblanks.xml.rde b/result/winblanks.xml.rde new file mode 100644 index 0000000..2f6a5d3 --- /dev/null +++ b/result/winblanks.xml.rde @@ -0,0 +1,13 @@ +0 1 a 0 0 +1 14 #text 0 1 + +1 1 B 0 0 +2 14 #text 0 1 + +2 1 C 1 0 +2 14 #text 0 1 + +1 15 B 0 0 +1 14 #text 0 1 + +0 15 a 0 0 diff --git a/result/winblanks.xml.rdr b/result/winblanks.xml.rdr new file mode 100644 index 0000000..2f6a5d3 --- /dev/null +++ b/result/winblanks.xml.rdr @@ -0,0 +1,13 @@ +0 1 a 0 0 +1 14 #text 0 1 + +1 1 B 0 0 +2 14 #text 0 1 + +2 1 C 1 0 +2 14 #text 0 1 + +1 15 B 0 0 +1 14 #text 0 1 + +0 15 a 0 0 diff --git a/result/winblanks.xml.sax b/result/winblanks.xml.sax new file mode 100644 index 0000000..72e39d5 --- /dev/null +++ b/result/winblanks.xml.sax @@ -0,0 +1,18 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(a) +SAX.characters( + , 5) +SAX.startElement(B) +SAX.characters( + , 9) +SAX.startElement(C) +SAX.endElement(C) +SAX.characters( , 3) +SAX.characters( +, 1) +SAX.endElement(B) +SAX.characters( +, 1) +SAX.endElement(a) +SAX.endDocument() diff --git a/result/winblanks.xml.sax2 b/result/winblanks.xml.sax2 new file mode 100644 index 0000000..6e9d693 --- /dev/null +++ b/result/winblanks.xml.sax2 @@ -0,0 +1,18 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElementNs(a, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(B, NULL, NULL, 0, 0, 0) +SAX.characters( + , 9) +SAX.startElementNs(C, NULL, NULL, 0, 0, 0) +SAX.endElementNs(C, NULL, NULL) +SAX.characters( , 3) +SAX.characters( +, 1) +SAX.endElementNs(B, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(a, NULL, NULL) +SAX.endDocument() diff --git a/result/wml.xml b/result/wml.xml new file mode 100644 index 0000000..3a96562 --- /dev/null +++ b/result/wml.xml @@ -0,0 +1,10 @@ + + + + +

      + Cinéma
      +

      + +
      +
      diff --git a/result/wml.xml.rde b/result/wml.xml.rde new file mode 100644 index 0000000..1bb28d4 --- /dev/null +++ b/result/wml.xml.rde @@ -0,0 +1,24 @@ +0 10 wml 0 0 +0 1 wml 0 0 +1 14 #text 0 1 + +1 1 card 0 0 +2 14 #text 0 1 + +2 1 p 0 0 +3 14 #text 0 1 + +3 1 a 0 0 +4 3 #text 0 1 Cinéma +3 15 a 0 0 +3 1 br 1 0 +3 14 #text 0 1 + +2 15 p 0 0 +2 14 #text 0 1 + + +1 15 card 0 0 +1 14 #text 0 1 + +0 15 wml 0 0 diff --git a/result/wml.xml.rdr b/result/wml.xml.rdr new file mode 100644 index 0000000..1bb28d4 --- /dev/null +++ b/result/wml.xml.rdr @@ -0,0 +1,24 @@ +0 10 wml 0 0 +0 1 wml 0 0 +1 14 #text 0 1 + +1 1 card 0 0 +2 14 #text 0 1 + +2 1 p 0 0 +3 14 #text 0 1 + +3 1 a 0 0 +4 3 #text 0 1 Cinéma +3 15 a 0 0 +3 1 br 1 0 +3 14 #text 0 1 + +2 15 p 0 0 +2 14 #text 0 1 + + +1 15 card 0 0 +1 14 #text 0 1 + +0 15 wml 0 0 diff --git a/result/wml.xml.sax b/result/wml.xml.sax new file mode 100644 index 0000000..46959bb --- /dev/null +++ b/result/wml.xml.sax @@ -0,0 +1,31 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(wml, -//WAPFORUM//DTD WML 1.1//EN, http://www.wapforum.org/DTD/wml_1.1.xml) +SAX.externalSubset(wml, -//WAPFORUM//DTD WML 1.1//EN, http://www.wapforum.org/DTD/wml_1.1.xml) +SAX.startElement(wml) +SAX.characters( + , 3) +SAX.startElement(card, id='card1', title='Rubriques 75008') +SAX.characters( + , 2) +SAX.startElement(p) +SAX.characters( + , 3) +SAX.startElement(a, href='rubmenu.asp?CP=75008&RB=01') +SAX.characters(Cin, 3) +SAX.characters(é, 2) +SAX.characters(ma, 2) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + , 2) +SAX.endElement(p) +SAX.characters( + +, 2) +SAX.endElement(card) +SAX.characters( +, 1) +SAX.endElement(wml) +SAX.endDocument() diff --git a/result/wml.xml.sax2 b/result/wml.xml.sax2 new file mode 100644 index 0000000..bc86149 --- /dev/null +++ b/result/wml.xml.sax2 @@ -0,0 +1,31 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(wml, -//WAPFORUM//DTD WML 1.1//EN, http://www.wapforum.org/DTD/wml_1.1.xml) +SAX.externalSubset(wml, -//WAPFORUM//DTD WML 1.1//EN, http://www.wapforum.org/DTD/wml_1.1.xml) +SAX.startElementNs(wml, NULL, NULL, 0, 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(card, NULL, NULL, 0, 2, 0, id='card...', 5, title='Rubr...', 15) +SAX.characters( + , 2) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(a, NULL, NULL, 0, 1, 0, href='rubm...', 30) +SAX.characters(Cin, 3) +SAX.characters(é, 2) +SAX.characters(ma, 2) +SAX.endElementNs(a, NULL, NULL) +SAX.startElementNs(br, NULL, NULL, 0, 0, 0) +SAX.endElementNs(br, NULL, NULL) +SAX.characters( + , 2) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + +, 2) +SAX.endElementNs(card, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(wml, NULL, NULL) +SAX.endDocument() diff --git a/result/xhtml1 b/result/xhtml1 new file mode 100644 index 0000000..6c06a95 --- /dev/null +++ b/result/xhtml1 @@ -0,0 +1,30 @@ + + + + + + Virtual Library + + + + +

      Moved to example.org.

      + + + foo + +

      + +

      coucou

      +

      salut

      + +

      test

      + +
      +
      Internet Engineering Task Force
      +
      An organization which establishes technical standards for the Internet
      +
      + + diff --git a/result/xhtml1.rde b/result/xhtml1.rde new file mode 100644 index 0000000..4d2cc24 --- /dev/null +++ b/result/xhtml1.rde @@ -0,0 +1,95 @@ +0 10 html 0 0 +0 8 #comment 0 1 3.1.1 3/ +0 1 html 0 0 +1 14 #text 0 1 + +1 1 head 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Virtual Library +2 15 title 0 0 +2 14 #text 0 1 + +1 15 head 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 4.8 +1 14 #text 0 1 + +1 1 script 0 0 +2 3 #text 0 1 + ... unescaped script < content ... + +1 15 script 0 0 +1 14 #text 0 1 + +1 1 body 0 0 +2 14 #text 0 1 + +2 1 p 0 0 +3 3 #text 0 1 Moved to +3 1 a 0 0 +4 3 #text 0 1 example.org +3 15 a 0 0 +3 3 #text 0 1 . +2 15 p 0 0 +2 14 #text 0 1 + +1 15 body 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 C2 +1 14 #text 0 1 + +1 1 img 1 0 +1 14 #text 0 1 + +1 8 #comment 0 1 C3 +1 14 #text 0 1 + +1 1 p 1 0 +1 14 #text 0 1 + +1 8 #comment 0 1 C7 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 coucou +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 salut +1 15 p 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 C8 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 test +1 15 p 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 4.5 +1 14 #text 0 1 + +1 1 dl 0 0 +2 14 #text 0 1 + +2 1 dt 0 0 +3 3 #text 0 1 Internet Engineering Task Force +2 15 dt 0 0 +2 14 #text 0 1 + +2 1 dd 0 0 +3 3 #text 0 1 An organization which establishes technical standards for the Internet +2 15 dd 0 0 +2 14 #text 0 1 + +1 15 dl 0 0 +1 14 #text 0 1 + + +0 15 html 0 0 diff --git a/result/xhtml1.rdr b/result/xhtml1.rdr new file mode 100644 index 0000000..4d2cc24 --- /dev/null +++ b/result/xhtml1.rdr @@ -0,0 +1,95 @@ +0 10 html 0 0 +0 8 #comment 0 1 3.1.1 3/ +0 1 html 0 0 +1 14 #text 0 1 + +1 1 head 0 0 +2 14 #text 0 1 + +2 1 title 0 0 +3 3 #text 0 1 Virtual Library +2 15 title 0 0 +2 14 #text 0 1 + +1 15 head 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 4.8 +1 14 #text 0 1 + +1 1 script 0 0 +2 3 #text 0 1 + ... unescaped script < content ... + +1 15 script 0 0 +1 14 #text 0 1 + +1 1 body 0 0 +2 14 #text 0 1 + +2 1 p 0 0 +3 3 #text 0 1 Moved to +3 1 a 0 0 +4 3 #text 0 1 example.org +3 15 a 0 0 +3 3 #text 0 1 . +2 15 p 0 0 +2 14 #text 0 1 + +1 15 body 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 C2 +1 14 #text 0 1 + +1 1 img 1 0 +1 14 #text 0 1 + +1 8 #comment 0 1 C3 +1 14 #text 0 1 + +1 1 p 1 0 +1 14 #text 0 1 + +1 8 #comment 0 1 C7 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 coucou +1 15 p 0 0 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 salut +1 15 p 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 C8 +1 14 #text 0 1 + +1 1 p 0 0 +2 3 #text 0 1 test +1 15 p 0 0 +1 14 #text 0 1 + +1 8 #comment 0 1 4.5 +1 14 #text 0 1 + +1 1 dl 0 0 +2 14 #text 0 1 + +2 1 dt 0 0 +3 3 #text 0 1 Internet Engineering Task Force +2 15 dt 0 0 +2 14 #text 0 1 + +2 1 dd 0 0 +3 3 #text 0 1 An organization which establishes technical standards for the Internet +2 15 dd 0 0 +2 14 #text 0 1 + +1 15 dl 0 0 +1 14 #text 0 1 + + +0 15 html 0 0 diff --git a/result/xhtml1.sax b/result/xhtml1.sax new file mode 100644 index 0000000..624fa38 --- /dev/null +++ b/result/xhtml1.sax @@ -0,0 +1,103 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(html, -//W3C//DTD XHTML 1.0 Strict//EN, http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd) +SAX.externalSubset(html, -//W3C//DTD XHTML 1.0 Strict//EN, http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd) +SAX.comment( 3.1.1 3/ ) +SAX.startElement(html, xml:lang='en', lang='en') +SAX.characters( + , 3) +SAX.startElement(head) +SAX.characters( + , 5) +SAX.startElement(title) +SAX.characters(Virtual Library, 15) +SAX.endElement(title) +SAX.characters( + , 3) +SAX.endElement(head) +SAX.characters( + , 3) +SAX.comment( 4.8 ) +SAX.characters( + , 3) +SAX.startElement(script, type='text/javascript') +SAX.characters( + ... unescaped script , 24) +SAX.characters(<, 1) +SAX.characters( content ... + , 15) +SAX.endElement(script) +SAX.characters( + , 3) +SAX.startElement(body) +SAX.characters( + , 5) +SAX.startElement(p) +SAX.characters(Moved to , 9) +SAX.startElement(a, href='http://example.org/') +SAX.characters(example.org, 11) +SAX.endElement(a) +SAX.characters(., 1) +SAX.endElement(p) +SAX.characters( + , 3) +SAX.endElement(body) +SAX.characters( + , 3) +SAX.comment( C2 ) +SAX.characters( + , 3) +SAX.startElement(img, src='foo.gif', alt='foo') +SAX.endElement(img) +SAX.characters( + , 3) +SAX.comment( C3 ) +SAX.characters( + , 3) +SAX.startElement(p) +SAX.endElement(p) +SAX.characters( + , 3) +SAX.comment( C7 ) +SAX.characters( + , 3) +SAX.startElement(p, lang='fr') +SAX.characters(coucou, 6) +SAX.endElement(p) +SAX.characters( + , 3) +SAX.startElement(p, xml:lang='fr') +SAX.characters(salut, 5) +SAX.endElement(p) +SAX.characters( + , 3) +SAX.comment( C8 ) +SAX.characters( + , 3) +SAX.startElement(p, name='fragid') +SAX.characters(test, 4) +SAX.endElement(p) +SAX.characters( + , 3) +SAX.comment( 4.5 ) +SAX.characters( + , 3) +SAX.startElement(dl, compact='') +SAX.characters( + , 3) +SAX.startElement(dt) +SAX.characters(Internet Engineering Task Forc, 31) +SAX.endElement(dt) +SAX.characters( + , 3) +SAX.startElement(dd) +SAX.characters(An organization which establis, 70) +SAX.endElement(dd) +SAX.characters( + , 3) +SAX.endElement(dl) +SAX.characters( + +, 2) +SAX.endElement(html) +SAX.endDocument() diff --git a/result/xhtml1.sax2 b/result/xhtml1.sax2 new file mode 100644 index 0000000..e6952c8 --- /dev/null +++ b/result/xhtml1.sax2 @@ -0,0 +1,104 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(html, -//W3C//DTD XHTML 1.0 Strict//EN, http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd) +SAX.externalSubset(html, -//W3C//DTD XHTML 1.0 Strict//EN, http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd) +SAX.comment( 3.1.1 3/ ) +SAX.startElementNs(html, NULL, NULL, 0, 2, 0, xml:lang='en" ...', 2, lang='en">...', 2) +SAX.characters( + , 3) +SAX.startElementNs(head, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(title, NULL, NULL, 0, 0, 0) +SAX.characters(Virtual Library, 15) +SAX.endElementNs(title, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(head, NULL, NULL) +SAX.characters( + , 3) +SAX.comment( 4.8 ) +SAX.characters( + , 3) +SAX.startElementNs(script, NULL, NULL, 0, 1, 0, type='text...', 15) +SAX.characters( + ... unescaped script , 24) +SAX.characters(<, 1) +SAX.characters( content ... + , 15) +SAX.endElementNs(script, NULL, NULL) +SAX.characters( + , 3) +SAX.startElementNs(body, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters(Moved to , 9) +SAX.startElementNs(a, NULL, NULL, 0, 1, 0, href='http...', 19) +SAX.characters(example.org, 11) +SAX.endElementNs(a, NULL, NULL) +SAX.characters(., 1) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(body, NULL, NULL) +SAX.characters( + , 3) +SAX.comment( C2 ) +SAX.characters( + , 3) +SAX.startElementNs(img, NULL, NULL, 0, 2, 0, src='foo....', 7, alt='foo"...', 3) +SAX.endElementNs(img, NULL, NULL) +SAX.characters( + , 3) +SAX.comment( C3 ) +SAX.characters( + , 3) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 3) +SAX.comment( C7 ) +SAX.characters( + , 3) +SAX.startElementNs(p, NULL, NULL, 0, 1, 0, lang='fr">...', 2) +SAX.characters(coucou, 6) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 3) +SAX.startElementNs(p, NULL, NULL, 0, 1, 0, xml:lang='fr">...', 2) +SAX.characters(salut, 5) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 3) +SAX.comment( C8 ) +SAX.characters( + , 3) +SAX.startElementNs(p, NULL, NULL, 0, 1, 0, name='frag...', 6) +SAX.characters(test, 4) +SAX.endElementNs(p, NULL, NULL) +SAX.characters( + , 3) +SAX.comment( 4.5 ) +SAX.characters( + , 3) +SAX.startElementNs(dl, NULL, NULL, 0, 1, 0, compact='"> + ...', 0) +SAX.characters( + , 3) +SAX.startElementNs(dt, NULL, NULL, 0, 0, 0) +SAX.characters(Internet Engineering Task Forc, 31) +SAX.endElementNs(dt, NULL, NULL) +SAX.characters( + , 3) +SAX.startElementNs(dd, NULL, NULL, 0, 0, 0) +SAX.characters(An organization which establis, 70) +SAX.endElementNs(dd, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(dl, NULL, NULL) +SAX.characters( + +, 2) +SAX.endElementNs(html, NULL, NULL) +SAX.endDocument() diff --git a/result/xhtmlcomp b/result/xhtmlcomp new file mode 100644 index 0000000..4ce634c --- /dev/null +++ b/result/xhtmlcomp @@ -0,0 +1,7 @@ + + + + +

      a b

      + + diff --git a/result/xhtmlcomp.rde b/result/xhtmlcomp.rde new file mode 100644 index 0000000..97517b7 --- /dev/null +++ b/result/xhtmlcomp.rde @@ -0,0 +1,19 @@ +0 10 html 0 0 +0 1 html 0 0 +1 14 #text 0 1 + +1 1 body 0 0 +2 14 #text 0 1 + +2 1 h1 0 0 +3 1 abbr 0 0 +4 3 #text 0 1 a +3 15 abbr 0 0 +3 3 #text 0 1 b +2 15 h1 0 0 +2 14 #text 0 1 + +1 15 body 0 0 +1 14 #text 0 1 + +0 15 html 0 0 diff --git a/result/xhtmlcomp.rdr b/result/xhtmlcomp.rdr new file mode 100644 index 0000000..97517b7 --- /dev/null +++ b/result/xhtmlcomp.rdr @@ -0,0 +1,19 @@ +0 10 html 0 0 +0 1 html 0 0 +1 14 #text 0 1 + +1 1 body 0 0 +2 14 #text 0 1 + +2 1 h1 0 0 +3 1 abbr 0 0 +4 3 #text 0 1 a +3 15 abbr 0 0 +3 3 #text 0 1 b +2 15 h1 0 0 +2 14 #text 0 1 + +1 15 body 0 0 +1 14 #text 0 1 + +0 15 html 0 0 diff --git a/result/xhtmlcomp.sax b/result/xhtmlcomp.sax new file mode 100644 index 0000000..a7a0d69 --- /dev/null +++ b/result/xhtmlcomp.sax @@ -0,0 +1,23 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(html, -//W3C//DTD XHTML 1.0 Strict//EN, http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd) +SAX.externalSubset(html, -//W3C//DTD XHTML 1.0 Strict//EN, http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd) +SAX.startElement(html) +SAX.characters( + , 3) +SAX.startElement(body) +SAX.characters( + , 5) +SAX.startElement(h1) +SAX.startElement(abbr) +SAX.characters(a, 1) +SAX.endElement(abbr) +SAX.characters( b, 2) +SAX.endElement(h1) +SAX.characters( + , 3) +SAX.endElement(body) +SAX.characters( +, 1) +SAX.endElement(html) +SAX.endDocument() diff --git a/result/xhtmlcomp.sax2 b/result/xhtmlcomp.sax2 new file mode 100644 index 0000000..085b770 --- /dev/null +++ b/result/xhtmlcomp.sax2 @@ -0,0 +1,23 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(html, -//W3C//DTD XHTML 1.0 Strict//EN, http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd) +SAX.externalSubset(html, -//W3C//DTD XHTML 1.0 Strict//EN, http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd) +SAX.startElementNs(html, NULL, NULL, 0, 0, 0) +SAX.characters( + , 3) +SAX.startElementNs(body, NULL, NULL, 0, 0, 0) +SAX.characters( + , 5) +SAX.startElementNs(h1, NULL, NULL, 0, 0, 0) +SAX.startElementNs(abbr, NULL, NULL, 0, 0, 0) +SAX.characters(a, 1) +SAX.endElementNs(abbr, NULL, NULL) +SAX.characters( b, 2) +SAX.endElementNs(h1, NULL, NULL) +SAX.characters( + , 3) +SAX.endElementNs(body, NULL, NULL) +SAX.characters( +, 1) +SAX.endElementNs(html, NULL, NULL) +SAX.endDocument() diff --git a/result/xml1 b/result/xml1 new file mode 100644 index 0000000..d32f56c --- /dev/null +++ b/result/xml1 @@ -0,0 +1,7 @@ + +An ampersand (&#38;) may be escaped + numerically (&#38;#38;) or with a general entity + (&amp;).

      "> +]> +&example; diff --git a/result/xml1.rde b/result/xml1.rde new file mode 100644 index 0000000..ecd6154 --- /dev/null +++ b/result/xml1.rde @@ -0,0 +1,8 @@ +0 10 test 0 0 +0 1 test 0 0 +1 1 p 0 0 +2 3 #text 0 1 An ampersand (&) may be escaped + numerically (&) or with a general entity + (&). +1 15 p 0 0 +0 15 test 0 0 diff --git a/result/xml1.rdr b/result/xml1.rdr new file mode 100644 index 0000000..9c9b943 --- /dev/null +++ b/result/xml1.rdr @@ -0,0 +1,4 @@ +0 10 test 0 0 +0 1 test 0 0 +1 5 example 0 0 +0 15 test 0 0 diff --git a/result/xml1.sax b/result/xml1.sax new file mode 100644 index 0000000..13f881b --- /dev/null +++ b/result/xml1.sax @@ -0,0 +1,23 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(test, , ) +SAX.entityDecl(example, 1, (null), (null),

      An ampersand (&) may be escaped + numerically (&#38;) or with a general entity + (&amp;).

      ) +SAX.getEntity(example) +SAX.externalSubset(test, , ) +SAX.startElement(test) +SAX.getEntity(example) +SAX.startElement(p) +SAX.characters(An ampersand (, 14) +SAX.characters(&, 1) +SAX.characters() may be escaped + numerically , 31) +SAX.characters(&, 1) +SAX.characters(#38;) or with a general entity, 34) +SAX.characters(&, 1) +SAX.characters(amp;)., 6) +SAX.endElement(p) +SAX.reference(example) +SAX.endElement(test) +SAX.endDocument() diff --git a/result/xml1.sax2 b/result/xml1.sax2 new file mode 100644 index 0000000..7b220f2 --- /dev/null +++ b/result/xml1.sax2 @@ -0,0 +1,23 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(test, , ) +SAX.entityDecl(example, 1, (null), (null),

      An ampersand (&) may be escaped + numerically (&#38;) or with a general entity + (&amp;).

      ) +SAX.getEntity(example) +SAX.externalSubset(test, , ) +SAX.startElementNs(test, NULL, NULL, 0, 0, 0) +SAX.getEntity(example) +SAX.startElementNs(p, NULL, NULL, 0, 0, 0) +SAX.characters(An ampersand (, 14) +SAX.characters(&, 1) +SAX.characters() may be escaped + numerically , 31) +SAX.characters(&, 1) +SAX.characters(#38;) or with a general entity, 34) +SAX.characters(&, 1) +SAX.characters(amp;)., 6) +SAX.endElementNs(p, NULL, NULL) +SAX.reference(example) +SAX.endElementNs(test, NULL, NULL) +SAX.endDocument() diff --git a/result/xml2 b/result/xml2 new file mode 100644 index 0000000..b26b358 --- /dev/null +++ b/result/xml2 @@ -0,0 +1,8 @@ + + + +'> + +]> +This sample shows a &tricky; method. diff --git a/result/xml2.rde b/result/xml2.rde new file mode 100644 index 0000000..cfdf217 --- /dev/null +++ b/result/xml2.rde @@ -0,0 +1,4 @@ +0 10 test 0 0 +0 1 test 0 0 +1 3 #text 0 1 This sample shows a error-prone method. +0 15 test 0 0 diff --git a/result/xml2.rdr b/result/xml2.rdr new file mode 100644 index 0000000..05dce2a --- /dev/null +++ b/result/xml2.rdr @@ -0,0 +1,6 @@ +0 10 test 0 0 +0 1 test 0 0 +1 3 #text 0 1 This sample shows a +1 5 tricky 0 0 +1 3 #text 0 1 method. +0 15 test 0 0 diff --git a/result/xml2.sax b/result/xml2.sax new file mode 100644 index 0000000..141accd --- /dev/null +++ b/result/xml2.sax @@ -0,0 +1,18 @@ +xmlSAXUserParseFile returned error 27 +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(test, , ) +SAX.elementDecl(test, 3, ...) +SAX.entityDecl(xx, 4, (null), (null), %zz;) +SAX.getParameterEntity(xx) +SAX.entityDecl(zz, 4, (null), (null), ) +SAX.getParameterEntity(zz) +SAX.getParameterEntity(xx) +SAX.error: PEReference: %xx; not found +SAX.characters(This sample shows a , 20) +SAX.getEntity(tricky) +SAX.error: Entity 'tricky' not defined +SAX.reference(tricky) +SAX.characters( method., 8) +SAX.endDocument() +xmlSAXUserParseFile returned error 27 diff --git a/result/xml2.sax2 b/result/xml2.sax2 new file mode 100644 index 0000000..141accd --- /dev/null +++ b/result/xml2.sax2 @@ -0,0 +1,18 @@ +xmlSAXUserParseFile returned error 27 +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(test, , ) +SAX.elementDecl(test, 3, ...) +SAX.entityDecl(xx, 4, (null), (null), %zz;) +SAX.getParameterEntity(xx) +SAX.entityDecl(zz, 4, (null), (null), ) +SAX.getParameterEntity(zz) +SAX.getParameterEntity(xx) +SAX.error: PEReference: %xx; not found +SAX.characters(This sample shows a , 20) +SAX.getEntity(tricky) +SAX.error: Entity 'tricky' not defined +SAX.reference(tricky) +SAX.characters( method., 8) +SAX.endDocument() +xmlSAXUserParseFile returned error 27 diff --git a/result/xmlid/id_err1.xml b/result/xmlid/id_err1.xml new file mode 100644 index 0000000..2e47afd --- /dev/null +++ b/result/xmlid/id_err1.xml @@ -0,0 +1,2 @@ +Object is a Node Set : +Set contains 0 nodes: diff --git a/result/xmlid/id_err1.xml.err b/result/xmlid/id_err1.xml.err new file mode 100644 index 0000000..9efeb47 --- /dev/null +++ b/result/xmlid/id_err1.xml.err @@ -0,0 +1,3 @@ +./test/xmlid/id_err1.xml:1: validity error : xml:id : attribute value 0bar is not an NCName + + ^ diff --git a/result/xmlid/id_err2.xml b/result/xmlid/id_err2.xml new file mode 100644 index 0000000..33ee896 --- /dev/null +++ b/result/xmlid/id_err2.xml @@ -0,0 +1,6 @@ +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT foo + ATTRIBUTE id + TEXT + content=bar diff --git a/result/xmlid/id_err2.xml.err b/result/xmlid/id_err2.xml.err new file mode 100644 index 0000000..9e974d4 --- /dev/null +++ b/result/xmlid/id_err2.xml.err @@ -0,0 +1,3 @@ +./test/xmlid/id_err2.xml:3: validity error : xml:id : attribute type should be ID + + ^ diff --git a/result/xmlid/id_tst1.xml b/result/xmlid/id_tst1.xml new file mode 100644 index 0000000..33ee896 --- /dev/null +++ b/result/xmlid/id_tst1.xml @@ -0,0 +1,6 @@ +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT foo + ATTRIBUTE id + TEXT + content=bar diff --git a/result/xmlid/id_tst1.xml.err b/result/xmlid/id_tst1.xml.err new file mode 100644 index 0000000..e69de29 diff --git a/result/xmlid/id_tst2.xml b/result/xmlid/id_tst2.xml new file mode 100644 index 0000000..856a320 --- /dev/null +++ b/result/xmlid/id_tst2.xml @@ -0,0 +1,6 @@ +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT n:foo + ATTRIBUTE id + TEXT + content=bar diff --git a/result/xmlid/id_tst2.xml.err b/result/xmlid/id_tst2.xml.err new file mode 100644 index 0000000..390d48d --- /dev/null +++ b/result/xmlid/id_tst2.xml.err @@ -0,0 +1,3 @@ +./test/xmlid/id_tst2.xml:1: namespace error : Namespace prefix n on foo is not defined + + ^ diff --git a/result/xmlid/id_tst3.xml b/result/xmlid/id_tst3.xml new file mode 100644 index 0000000..6d8865c --- /dev/null +++ b/result/xmlid/id_tst3.xml @@ -0,0 +1,6 @@ +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT f:o:o + ATTRIBUTE id + TEXT + content=bar diff --git a/result/xmlid/id_tst3.xml.err b/result/xmlid/id_tst3.xml.err new file mode 100644 index 0000000..7aa3e1c --- /dev/null +++ b/result/xmlid/id_tst3.xml.err @@ -0,0 +1,6 @@ +./test/xmlid/id_tst3.xml:1: namespace error : Failed to parse QName 'f:o:' + + ^ +./test/xmlid/id_tst3.xml:1: namespace error : Namespace prefix f on o:o is not defined + + ^ diff --git a/result/xmlid/id_tst4.xml b/result/xmlid/id_tst4.xml new file mode 100644 index 0000000..33ee896 --- /dev/null +++ b/result/xmlid/id_tst4.xml @@ -0,0 +1,6 @@ +Object is a Node Set : +Set contains 1 nodes: +1 ELEMENT foo + ATTRIBUTE id + TEXT + content=bar diff --git a/result/xmlid/id_tst4.xml.err b/result/xmlid/id_tst4.xml.err new file mode 100644 index 0000000..36c78c8 --- /dev/null +++ b/result/xmlid/id_tst4.xml.err @@ -0,0 +1,3 @@ +./test/xmlid/id_tst4.xml:3: element err: validity error : ID bar already defined + + ^ diff --git a/runsuite.c b/runsuite.c index d1dc2ca..aaab13e 100644 --- a/runsuite.c +++ b/runsuite.c @@ -1,16 +1,13 @@ /* - * runsuite.c: C program to run libxml2 againts published testsuites + * runsuite.c: C program to run libxml2 againts published testsuites * * See Copyright for the status of this software. * * daniel@veillard.com */ -#ifdef HAVE_CONFIG_H #include "libxml.h" -#else #include -#endif #if !defined(_WIN32) || defined(__CYGWIN__) #include @@ -38,10 +35,6 @@ static FILE *logfile = NULL; static int verbose = 0; -#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__MINGW32__) -#define vsnprintf _vsnprintf -#define snprintf _snprintf -#endif /************************************************************************ * * @@ -130,7 +123,7 @@ static int addEntity(char *name, char *content) { * which is shared to the current running test. We also don't want to have * network downloads modifying tests. */ -static xmlParserInputPtr +static xmlParserInputPtr testExternalEntityLoader(const char *URL, const char *ID, xmlParserCtxtPtr ctxt) { xmlParserInputPtr ret; @@ -159,7 +152,7 @@ testExternalEntityLoader(const char *URL, const char *ID, fprintf(stderr, "Failed to find resource %s\n", URL); } #endif - + return(ret); } @@ -422,7 +415,7 @@ installDirs(xmlNodePtr tst, const xmlChar *base) { xmlFree(res); } -static int +static int xsdTestCase(xmlNodePtr tst) { xmlNodePtr test, tmp, cur; xmlBufferPtr buf; @@ -449,7 +442,7 @@ xsdTestCase(xmlNodePtr tst) { if (cur == NULL) { return(xsdIncorectTestCase(tst)); } - + test = getNext(cur, "./*"); if (test == NULL) { fprintf(stderr, "Failed to find test in correct line %ld\n", @@ -495,7 +488,7 @@ xsdTestCase(xmlNodePtr tst) { if (test == NULL) { fprintf(stderr, "Failed to find test in line %ld\n", xmlGetLineNo(tmp)); - + } else { xmlBufferEmpty(buf); if (dtd != NULL) @@ -554,7 +547,7 @@ xsdTestCase(xmlNodePtr tst) { if (test == NULL) { fprintf(stderr, "Failed to find test in line %ld\n", xmlGetLineNo(tmp)); - + } else { xmlBufferEmpty(buf); xmlNodeDump(buf, test->doc, test, 0, 0); @@ -615,7 +608,7 @@ done: return(ret); } -static int +static int xsdTestSuite(xmlNodePtr cur) { if (verbose) { xmlChar *doc = getString(cur, "string(documentation)"); @@ -630,11 +623,11 @@ xsdTestSuite(xmlNodePtr cur) { xsdTestCase(cur); cur = getNext(cur, "following-sibling::testCase[1]"); } - + return(0); } -static int +static int xsdTest(void) { xmlDocPtr doc; xmlNodePtr cur; @@ -672,7 +665,7 @@ done: return(ret); } -static int +static int rngTestSuite(xmlNodePtr cur) { if (verbose) { xmlChar *doc = getString(cur, "string(documentation)"); @@ -693,11 +686,11 @@ rngTestSuite(xmlNodePtr cur) { xsdTestSuite(cur); cur = getNext(cur, "following-sibling::testSuite[1]"); } - + return(0); } -static int +static int rngTest1(void) { xmlDocPtr doc; xmlNodePtr cur; @@ -735,7 +728,7 @@ done: return(ret); } -static int +static int rngTest2(void) { xmlDocPtr doc; xmlNodePtr cur; @@ -945,7 +938,7 @@ xstcTestGroup(xmlNodePtr cur, const char *base) { instance = getNext(cur, "./ts:instanceTest[1]"); while (instance != NULL) { if (schemas != NULL) { - xstcTestInstance(instance, schemas, path, base); + xstcTestInstance(instance, schemas, path, base); } else { /* * We'll automatically mark the instances as failed diff --git a/runtest.c b/runtest.c index dd74c88..c6517a3 100644 --- a/runtest.c +++ b/runtest.c @@ -11,11 +11,8 @@ * daniel@veillard.com */ -#ifdef HAVE_CONFIG_H #include "libxml.h" -#else #include -#endif #if !defined(_WIN32) || defined(__CYGWIN__) #include @@ -195,10 +192,6 @@ static void globfree(glob_t *pglob) { } } -#if !defined(__MINGW32__) -#define vsnprintf _vsnprintf -#define snprintf _snprintf -#endif #else #include #endif @@ -2731,7 +2724,7 @@ static const char *urip_testURLs[] = { "file:///path/to/a%20b.html", "/path/to/a b.html", "/path/to/a%20b.html", - "urip://example.com/résumé.html", + "urip://example.com/r" "\xe9" "sum" "\xe9" ".html", "urip://example.com/test?a=1&b=2%263&c=4#foo", NULL }; @@ -3939,60 +3932,7 @@ thread_specific_data(void *private_data) return ((void *) Okay); } -#if defined(linux) || defined(__sun) || defined(__APPLE_CC__) - -#include - -static pthread_t tid[MAX_ARGC]; - -static int -testThread(void) -{ - unsigned int i, repeat; - unsigned int num_threads = sizeof(testfiles) / sizeof(testfiles[0]); - void *results[MAX_ARGC]; - int ret; - int res = 0; - - xmlInitParser(); - - for (repeat = 0; repeat < 500; repeat++) { - xmlLoadCatalog(catalog); - nb_tests++; - - for (i = 0; i < num_threads; i++) { - results[i] = NULL; - tid[i] = (pthread_t) - 1; - } - - for (i = 0; i < num_threads; i++) { - ret = pthread_create(&tid[i], 0, thread_specific_data, - (void *) testfiles[i]); - if (ret != 0) { - fprintf(stderr, "pthread_create failed\n"); - return (1); - } - } - for (i = 0; i < num_threads; i++) { - ret = pthread_join(tid[i], &results[i]); - if (ret != 0) { - fprintf(stderr, "pthread_join failed\n"); - return (1); - } - } - - xmlCatalogCleanup(); - for (i = 0; i < num_threads; i++) - if (results[i] != (void *) Okay) { - fprintf(stderr, "Thread %d handling %s failed\n", - i, testfiles[i]); - res = 1; - } - } - return (res); -} - -#elif defined WIN32 +#if defined WIN32 #include #include @@ -4118,6 +4058,59 @@ testThread(void) return(1); return (0); } + +#elif defined HAVE_PTHREAD_H +#include + +static pthread_t tid[MAX_ARGC]; + +static int +testThread(void) +{ + unsigned int i, repeat; + unsigned int num_threads = sizeof(testfiles) / sizeof(testfiles[0]); + void *results[MAX_ARGC]; + int ret; + int res = 0; + + xmlInitParser(); + + for (repeat = 0; repeat < 500; repeat++) { + xmlLoadCatalog(catalog); + nb_tests++; + + for (i = 0; i < num_threads; i++) { + results[i] = NULL; + tid[i] = (pthread_t) - 1; + } + + for (i = 0; i < num_threads; i++) { + ret = pthread_create(&tid[i], 0, thread_specific_data, + (void *) testfiles[i]); + if (ret != 0) { + fprintf(stderr, "pthread_create failed\n"); + return (1); + } + } + for (i = 0; i < num_threads; i++) { + ret = pthread_join(tid[i], &results[i]); + if (ret != 0) { + fprintf(stderr, "pthread_join failed\n"); + return (1); + } + } + + xmlCatalogCleanup(); + for (i = 0; i < num_threads; i++) + if (results[i] != (void *) Okay) { + fprintf(stderr, "Thread %d handling %s failed\n", + i, testfiles[i]); + res = 1; + } + } + return (res); +} + #else static int testThread(void) diff --git a/runxmlconf.c b/runxmlconf.c index 52d50d7..cef20f4 100644 --- a/runxmlconf.c +++ b/runxmlconf.c @@ -6,11 +6,8 @@ * daniel@veillard.com */ -#ifdef HAVE_CONFIG_H #include "libxml.h" -#else #include -#endif #ifdef LIBXML_XPATH_ENABLED @@ -37,10 +34,6 @@ static int verbose = 0; #define NB_EXPECTED_ERRORS 15 -#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__MINGW32__) -#define vsnprintf _vsnprintf -#define snprintf _snprintf -#endif const char *skipped_tests[] = { /* http://lists.w3.org/Archives/Public/public-xml-testsuite/2008Jul/0000.html */ @@ -390,7 +383,7 @@ xmlconfTestItem(xmlDocPtr doc, xmlNodePtr cur) { if (xmlStrEqual(type, BAD_CAST "not-wf")) { if (nstest == 0) xmlconfTestNotWF((char *) id, (char *) filename, options); - else + else xmlconfTestNotNSWF((char *) id, (char *) filename, options); } else if (xmlStrEqual(type, BAD_CAST "valid")) { options |= XML_PARSE_DTDVALID; diff --git a/save.h b/save.h new file mode 100644 index 0000000..2c32a10 --- /dev/null +++ b/save.h @@ -0,0 +1,35 @@ +/* + * Summary: Internal Interfaces for saving in libxml2 + * Description: this module describes a few interfaces which were + * addded along with the API changes in 2.9.0 + * those are private routines at this point + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_SAVE_H__ +#define __XML_SAVE_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef LIBXML_OUTPUT_ENABLED +void xmlBufAttrSerializeTxtContent(xmlBufPtr buf, xmlDocPtr doc, + xmlAttrPtr attr, const xmlChar * string); +void xmlBufDumpNotationTable(xmlBufPtr buf, xmlNotationTablePtr table); +void xmlBufDumpElementDecl(xmlBufPtr buf, xmlElementPtr elem); +void xmlBufDumpAttributeDecl(xmlBufPtr buf, xmlAttributePtr attr); +void xmlBufDumpEntityDecl(xmlBufPtr buf, xmlEntityPtr ent); +xmlChar *xmlEncodeAttributeEntities(xmlDocPtr doc, const xmlChar *input); +#endif + +#ifdef __cplusplus +} +#endif +#endif /* __XML_SAVE_H__ */ + diff --git a/schematron.c b/schematron.c index 07709e2..537b868 100644 --- a/schematron.c +++ b/schematron.c @@ -53,7 +53,7 @@ static const xmlChar *xmlOldSchematronNs = SCT_OLD_NS; #define NEXT_SCHEMATRON(node) \ while (node != NULL) { \ - if ((node->type == XML_ELEMENT_NODE ) && (node->ns != NULL) && \ + if ((node->type == XML_ELEMENT_NODE ) && (node->ns != NULL) && \ ((xmlStrEqual(node->ns->href, xmlSchematronNs)) || \ (xmlStrEqual(node->ns->href, xmlOldSchematronNs)))) \ break; \ @@ -65,7 +65,7 @@ static const xmlChar *xmlOldSchematronNs = SCT_OLD_NS; * * macro to flag unimplemented blocks */ -#define TODO \ +#define TODO \ xmlGenericError(xmlGenericErrorContext, \ "Unimplemented block at %s:%d\n", \ __FILE__, __LINE__); @@ -240,7 +240,7 @@ xmlSchematronPErrMemory(xmlSchematronParserCtxtPtr ctxt, * @msg: the error message * @str1: extra data * @str2: extra data - * + * * Handle a parser error */ static void @@ -568,7 +568,7 @@ xmlSchematronFree(xmlSchematronPtr schema) if (schema->namespaces != NULL) xmlFree((char **) schema->namespaces); - + xmlSchematronFreeRules(schema->rules); xmlSchematronFreePatterns(schema->patterns); xmlDictFree(schema->dict); @@ -826,9 +826,9 @@ xmlSchematronAddNamespace(xmlSchematronParserCtxtPtr ctxt, ctxt->namespaces = tmp; ctxt->maxNamespaces *= 2; } - ctxt->namespaces[2 * ctxt->nbNamespaces] = + ctxt->namespaces[2 * ctxt->nbNamespaces] = xmlDictLookup(ctxt->dict, ns, -1); - ctxt->namespaces[2 * ctxt->nbNamespaces + 1] = + ctxt->namespaces[2 * ctxt->nbNamespaces + 1] = xmlDictLookup(ctxt->dict, prefix, -1); ctxt->nbNamespaces++; ctxt->namespaces[2 * ctxt->nbNamespaces] = NULL; @@ -1288,7 +1288,7 @@ xmlSchematronReportOutput(xmlSchematronValidCtxtPtr ctxt ATTRIBUTE_UNUSED, * to be deallocated by teh caller */ static xmlChar * -xmlSchematronFormatReport(xmlSchematronValidCtxtPtr ctxt, +xmlSchematronFormatReport(xmlSchematronValidCtxtPtr ctxt, xmlNodePtr test, xmlNodePtr cur) { xmlChar *ret = NULL; xmlNodePtr child, node; @@ -1314,7 +1314,7 @@ xmlSchematronFormatReport(xmlSchematronValidCtxtPtr ctxt, xmlFree(path); } - if ((node->ns == NULL) || (node->ns->prefix == NULL)) + if ((node->ns == NULL) || (node->ns->prefix == NULL)) ret = xmlStrcat(ret, node->name); else { ret = xmlStrcat(ret, node->ns->prefix); @@ -1365,7 +1365,7 @@ xmlSchematronFormatReport(xmlSchematronValidCtxtPtr ctxt, * been done. */ static void -xmlSchematronReportSuccess(xmlSchematronValidCtxtPtr ctxt, +xmlSchematronReportSuccess(xmlSchematronValidCtxtPtr ctxt, xmlSchematronTestPtr test, xmlNodePtr cur, xmlSchematronPatternPtr pattern, int success) { if ((ctxt == NULL) || (cur == NULL) || (test == NULL)) return; @@ -1445,7 +1445,7 @@ xmlSchematronReportSuccess(xmlSchematronValidCtxtPtr ctxt, * called from the validation engine when starting to check a pattern */ static void -xmlSchematronReportPattern(xmlSchematronValidCtxtPtr ctxt, +xmlSchematronReportPattern(xmlSchematronValidCtxtPtr ctxt, xmlSchematronPatternPtr pattern) { if ((ctxt == NULL) || (pattern == NULL)) return; @@ -1572,7 +1572,7 @@ xmlSchematronNextNode(xmlNodePtr cur) { (cur->type != XML_DTD_NODE)) return(cur); } - + do { cur = cur->parent; if (cur == NULL) break; @@ -1589,7 +1589,7 @@ xmlSchematronNextNode(xmlNodePtr cur) { * xmlSchematronRunTest: * @ctxt: the schema validation context * @test: the current test - * @instance: the document instace tree + * @instance: the document instace tree * @cur: the current node in the instance * * Validate a rule against a tree instance at a given position @@ -1653,7 +1653,7 @@ xmlSchematronRunTest(xmlSchematronValidCtxtPtr ctxt, /** * xmlSchematronValidateDoc: * @ctxt: the schema validation context - * @instance: the document instace tree + * @instance: the document instace tree * * Validate a tree instance against the schematron * @@ -1697,7 +1697,7 @@ xmlSchematronValidateDoc(xmlSchematronValidCtxtPtr ctxt, xmlDocPtr instance) } rule = rule->next; } - + cur = xmlSchematronNextNode(cur); } } else { @@ -1705,14 +1705,14 @@ xmlSchematronValidateDoc(xmlSchematronValidCtxtPtr ctxt, xmlDocPtr instance) * Process all contexts one at a time */ pattern = ctxt->schema->patterns; - + while (pattern != NULL) { xmlSchematronReportPattern(ctxt, pattern); /* * TODO convert the pattern rule to a direct XPath and * compute directly instead of using the pattern matching - * over the full document... + * over the full document... * Check the exact semantic */ cur = root; @@ -1728,7 +1728,7 @@ xmlSchematronValidateDoc(xmlSchematronValidCtxtPtr ctxt, xmlDocPtr instance) } rule = rule->patnext; } - + cur = xmlSchematronNextNode(cur); } pattern = pattern->next; diff --git a/test/HTML/53867.html b/test/HTML/53867.html new file mode 100644 index 0000000..ac27999 --- /dev/null +++ b/test/HTML/53867.html @@ -0,0 +1,69 @@ + + + + + diff --git a/test/HTML/Down.html b/test/HTML/Down.html new file mode 100644 index 0000000..92eca21 --- /dev/null +++ b/test/HTML/Down.html @@ -0,0 +1,12 @@ + + + This service is temporary down + + + +

      Sorry, this service is temporary down

      +We are doing our best to get it back on-line, + +

      The W3C system administrators

      + + diff --git a/test/HTML/attrents.html b/test/HTML/attrents.html new file mode 100644 index 0000000..8486ec0 --- /dev/null +++ b/test/HTML/attrents.html @@ -0,0 +1,5 @@ + + +
      + + diff --git a/test/HTML/autoclose.html b/test/HTML/autoclose.html new file mode 100644 index 0000000..e123ba7 --- /dev/null +++ b/test/HTML/autoclose.html @@ -0,0 +1 @@ +
      diff --git a/test/HTML/autoclose2.html b/test/HTML/autoclose2.html new file mode 100644 index 0000000..d40082c --- /dev/null +++ b/test/HTML/autoclose2.html @@ -0,0 +1 @@ +

      toto diff --git a/test/HTML/autoclose3.html b/test/HTML/autoclose3.html new file mode 100644 index 0000000..8c7a45a --- /dev/null +++ b/test/HTML/autoclose3.html @@ -0,0 +1,3 @@ +

        +
      • item 1 +
      • item 2 diff --git a/test/HTML/cf_128.html b/test/HTML/cf_128.html new file mode 100644 index 0000000..4cd118c --- /dev/null +++ b/test/HTML/cf_128.html @@ -0,0 +1,20 @@ + + + +gnome-xml push mode bug + + + +

      this module describes the structures found in an tree resulting from an XML or HTML parsing, as well as the API provided for various processing on that tree

      Table of Contents

      #define BASE_BUFFER_SIZE
      #define XML_GET_CONTENT
      #define XML_GET_LINE
      #define XML_LOCAL_NAMESPACE
      #define XML_XML_ID
      #define XML_XML_NAMESPACE
      #define xmlChildrenNode
      #define xmlRootNode
      Structure xmlAttr
      struct _xmlAttr + Module tree from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module tree from libxml2

      API Menu
      API Indexes
      Related links

      this module describes the structures found in an tree resulting from an XML or HTML parsing, as well as the API provided for various processing on that tree

      Table of Contents

      #define BASE_BUFFER_SIZE
      #define LIBXML2_NEW_BUFFER
      #define XML_GET_CONTENT
      #define XML_GET_LINE
      #define XML_LOCAL_NAMESPACE
      #define XML_XML_ID
      #define XML_XML_NAMESPACE
      #define xmlChildrenNode
      #define xmlRootNode
      Structure xmlAttr
      struct _xmlAttr
      Typedef xmlAttr * xmlAttrPtr
       
      Structure xmlAttribute
      struct _xmlAttribute
      Enum xmlAttributeDefault
       
      Typedef xmlAttribute * xmlAttributePtr
       
      Enum xmlAttributeType
      +
      Structure xmlBuf
      struct _xmlBuf +The content of this structure is not made public by the API. +
      Typedef xmlBuf * xmlBufPtr
       
      Structure xmlBuffer
      struct _xmlBuffer
      Enum xmlBufferAllocationScheme
       
      Typedef xmlBuffer * xmlBufferPtr
      @@ -67,6 +70,12 @@ A:link, A:visited, A:active { text-decoration: underline }
       
      xmlNodePtr	xmlAddPrevSibling	(xmlNodePtr cur, 
      xmlNodePtr elem)
      xmlNodePtr	xmlAddSibling		(xmlNodePtr cur, 
      xmlNodePtr elem)
      void	xmlAttrSerializeTxtContent	(xmlBufferPtr buf, 
      xmlDocPtr doc,
      xmlAttrPtr attr,
      const xmlChar * string)
      +
      xmlChar *	xmlBufContent		(const xmlBufPtr buf)
      +
      xmlChar *	xmlBufEnd		(const xmlBufPtr buf)
      +
      int	xmlBufGetNodeContent		(xmlBufPtr buf, 
      xmlNodePtr cur)
      +
      size_t	xmlBufNodeDump			(xmlBufPtr buf, 
      xmlDocPtr doc,
      xmlNodePtr cur,
      int level,
      int format)
      +
      size_t	xmlBufShrink			(xmlBufPtr buf, 
      size_t len)
      +
      size_t	xmlBufUse			(const xmlBufPtr buf)
      int	xmlBufferAdd			(xmlBufferPtr buf, 
      const xmlChar * str,
      int len)
      int	xmlBufferAddHead		(xmlBufferPtr buf, 
      const xmlChar * str,
      int len)
      int	xmlBufferCCat			(xmlBufferPtr buf, 
      const char * str)
      @@ -224,6 +233,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      int	xmlValidateQName		(const xmlChar * value, 
      int space)

      Description

      Macro: BASE_BUFFER_SIZE

      #define BASE_BUFFER_SIZE

      default buffer size 4000.

      +

      Macro: LIBXML2_NEW_BUFFER

      #define LIBXML2_NEW_BUFFER

      Macro used to express that the API use the new buffers for xmlParserInputBuffer and xmlOutputBuffer. The change was introduced in 2.9.0.

      Macro: XML_GET_CONTENT

      #define XML_GET_CONTENT

      Macro to extract the content pointer of a node.

      Macro: XML_GET_LINE

      #define XML_GET_LINE

      Macro to extract the line number of an element node.

      Macro: XML_LOCAL_NAMESPACE

      #define XML_LOCAL_NAMESPACE

      A namespace declaration node.

      @@ -279,7 +289,11 @@ A:link, A:visited, A:active { text-decoration: underline } XML_ATTRIBUTE_ENUMERATION = 9 XML_ATTRIBUTE_NOTATION = 10 } -

      Structure xmlBuffer

      Structure xmlBuffer
      struct _xmlBuffer { +

      Structure xmlBuf

      Structure xmlBuf
      struct _xmlBuf { +The content of this structure is not made public by the API. +}
      + A pointer to a buffer structure, the actual structure internals are not public +

      Structure xmlBuffer

      Structure xmlBuffer
      struct _xmlBuffer { xmlChar * content : The buffer content UTF8 unsigned int use : The buffer size used unsigned int size : The buffer size @@ -478,8 +492,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlOutputWriteCallback writecallback xmlOutputCloseCallback closecallback xmlCharEncodingHandlerPtr encoder : I18N conversions to UTF-8 - xmlBufferPtr buffer : Local buffer encoded in UTF-8 or ISOLat - xmlBufferPtr conv : if encoder != NULL buffer for output + xmlBufPtr buffer : Local buffer encoded in UTF-8 or ISOLat + xmlBufPtr conv : if encoder != NULL buffer for output int written : total number of byte written int error }

      Structure xmlParserCtxt

      Structure xmlParserCtxt
      struct _xmlParserCtxt { @@ -592,8 +606,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlInputReadCallback readcallback xmlInputCloseCallback closecallback xmlCharEncodingHandlerPtr encoder : I18N conversions to UTF-8 - xmlBufferPtr buffer : Local buffer encoded in UTF-8 - xmlBufferPtr raw : if encoder != NULL buffer for raw input + xmlBufPtr buffer : Local buffer encoded in UTF-8 + xmlBufPtr raw : if encoder != NULL buffer for raw input int compressed : -1=unknown, 0=not compressed, 1=compres int error unsigned long rawconsumed : amount consumed from raw @@ -653,7 +667,19 @@ A:link, A:visited, A:active { text-decoration: underline }

      Add a new element @elem to the list of siblings of @cur merging adjacent TEXT nodes (@elem may be freed) If the new element was already inserted in a document it is first unlinked from its existing context.

      cur:the child node
      elem:the new node
      Returns:the new element or NULL in case of error.

      Function: xmlAttrSerializeTxtContent

      void	xmlAttrSerializeTxtContent	(xmlBufferPtr buf, 
      xmlDocPtr doc,
      xmlAttrPtr attr,
      const xmlChar * string)

      Serialize text attribute values to an xml simple buffer

      -
      buf:the XML buffer output
      doc:the document
      attr:the attribute node
      string:the text content

      Function: xmlBufferAdd

      int	xmlBufferAdd			(xmlBufferPtr buf, 
      const xmlChar * str,
      int len)
      +
      buf:the XML buffer output
      doc:the document
      attr:the attribute node
      string:the text content

      Function: xmlBufContent

      xmlChar *	xmlBufContent		(const xmlBufPtr buf)
      +

      Function to extract the content of a buffer

      +
      buf:the buffer
      Returns:the internal content

      Function: xmlBufEnd

      xmlChar *	xmlBufEnd		(const xmlBufPtr buf)
      +

      Function to extract the end of the content of a buffer

      +
      buf:the buffer
      Returns:the end of the internal content or NULL in case of error

      Function: xmlBufGetNodeContent

      int	xmlBufGetNodeContent		(xmlBufPtr buf, 
      xmlNodePtr cur)
      +

      Read the value of a node @cur, this can be either the text carried directly by this node if it's a TEXT node or the aggregate string of the values carried by this node child's (TEXT and ENTITY_REF). Entity references are substituted. Fills up the buffer @buffer with this value

      +
      buf:a buffer xmlBufPtr
      cur:the node being read
      Returns:0 in case of success and -1 in case of error.

      Function: xmlBufNodeDump

      size_t	xmlBufNodeDump			(xmlBufPtr buf, 
      xmlDocPtr doc,
      xmlNodePtr cur,
      int level,
      int format)
      +

      Dump an XML node, recursive behaviour,children are printed too. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called

      +
      buf:the XML buffer output
      doc:the document
      cur:the current node
      level:the imbrication level for indenting
      format:is formatting allowed
      Returns:the number of bytes written to the buffer, in case of error 0 is returned or @buf stores the error

      Function: xmlBufShrink

      size_t	xmlBufShrink			(xmlBufPtr buf, 
      size_t len)
      +

      Remove the beginning of an XML buffer. NOTE that this routine behaviour differs from xmlBufferShrink() as it will return 0 on error instead of -1 due to size_t being used as the return type.

      +
      buf:the buffer to dump
      len:the number of xmlChar to remove
      Returns:the number of byte removed or 0 in case of failure

      Function: xmlBufUse

      size_t	xmlBufUse			(const xmlBufPtr buf)
      +

      Function to get the length of a buffer

      +
      buf:the buffer
      Returns:the length of data in the internal content

      Function: xmlBufferAdd

      int	xmlBufferAdd			(xmlBufferPtr buf, 
      const xmlChar * str,
      int len)

      Add a string range to an XML buffer. if len == -1, the length of str is recomputed.

      buf:the buffer to dump
      str:the #xmlChar string
      len:the number of #xmlChar to add
      Returns:0 successful, a positive error code number otherwise and -1 in case of internal or API error.

      Function: xmlBufferAddHead

      int	xmlBufferAddHead		(xmlBufferPtr buf, 
      const xmlChar * str,
      int len)

      Add a string range to the beginning of an XML buffer. if len == -1, the length of @str is recomputed.

      @@ -781,7 +807,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      doc:the document pointer
      Returns:a pointer to the DTD structure or NULL if not found

      Function: xmlGetLastChild

      xmlNodePtr	xmlGetLastChild		(xmlNodePtr parent)

      Search the last child of a node.

      parent:the parent node
      Returns:the last child or NULL if none.

      Function: xmlGetLineNo

      long	xmlGetLineNo			(xmlNodePtr node)
      -

      Get line number of @node. This requires activation of this option before invoking the parser by calling xmlLineNumbersDefault(1)

      +

      Get line number of @node. Try to override the limitation of lines being store in 16 bits ints if XML_PARSE_BIG_LINES parser option was used

      node:valid node
      Returns:the line number if successful, -1 otherwise

      Function: xmlGetNoNsProp

      xmlChar *	xmlGetNoNsProp		(xmlNodePtr node, 
      const xmlChar * name)

      Search and get the value of an attribute associated to a node This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off. This function is similar to xmlGetProp except it will accept only an attribute in no namespace.

      node:the node
      name:the attribute name
      Returns:the attribute value or NULL if not found. It's up to the caller to free the memory with xmlFree().

      Function: xmlGetNodePath

      xmlChar *	xmlGetNodePath		(xmlNodePtr node)
      @@ -865,7 +891,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      cur:the node being modified
      content:extra content
      len:the size of @content

      Function: xmlNodeBufGetContent

      int	xmlNodeBufGetContent		(xmlBufferPtr buffer, 
      xmlNodePtr cur)

      Read the value of a node @cur, this can be either the text carried directly by this node if it's a TEXT node or the aggregate string of the values carried by this node child's (TEXT and ENTITY_REF). Entity references are substituted. Fills up the buffer @buffer with this value

      buffer:a buffer
      cur:the node being read
      Returns:0 in case of success and -1 in case of error.

      Function: xmlNodeDump

      int	xmlNodeDump			(xmlBufferPtr buf, 
      xmlDocPtr doc,
      xmlNodePtr cur,
      int level,
      int format)
      -

      Dump an XML node, recursive behaviour,children are printed too. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called

      +

      Dump an XML node, recursive behaviour,children are printed too. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called Since this is using xmlBuffer structures it is limited to 2GB and somehow deprecated, use xmlBufNodeDump() instead.

      buf:the XML buffer output
      doc:the document
      cur:the current node
      level:the imbrication level for indenting
      format:is formatting allowed
      Returns:the number of bytes written to the buffer or -1 in case of error

      Function: xmlNodeDumpOutput

      void	xmlNodeDumpOutput		(xmlOutputBufferPtr buf, 
      xmlDocPtr doc,
      xmlNodePtr cur,
      int level,
      int format,
      const char * encoding)

      Dump an XML node, recursive behaviour, children are printed too. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called

      buf:the XML buffer output
      doc:the document
      cur:the current node
      level:the imbrication level for indenting
      format:is formatting allowed
      encoding:an optional encoding string

      Function: xmlNodeGetBase

      xmlChar *	xmlNodeGetBase		(xmlDocPtr doc, 
      xmlNodePtr cur)
      @@ -947,7 +973,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      node:the node
      content:the content
      len:@content length
      Returns:-1 in case of error, 0 otherwise

      Function: xmlTextMerge

      xmlNodePtr	xmlTextMerge		(xmlNodePtr first, 
      xmlNodePtr second)

      Merge two text nodes into one

      first:the first text node
      second:the second text node being merged
      Returns:the first text node augmented

      Function: xmlUnlinkNode

      void	xmlUnlinkNode			(xmlNodePtr cur)
      -

      Unlink a node from it's current context, the node is not freed If one need to free the node, use xmlFreeNode() routine after the unlink to discard it.

      +

      Unlink a node from it's current context, the node is not freed If one need to free the node, use xmlFreeNode() routine after the unlink to discard it. Note that namespace nodes can't be unlinked as they do not have pointer to their parent.

      cur:the node

      Function: xmlUnsetNsProp

      int	xmlUnsetNsProp			(xmlNodePtr node, 
      xmlNsPtr ns,
      const xmlChar * name)

      Remove an attribute carried by a node.

      node:the node
      ns:the namespace definition
      name:the attribute name
      Returns:0 if successful, -1 if not found

      Function: xmlUnsetProp

      int	xmlUnsetProp			(xmlNodePtr node, 
      const xmlChar * name)
      diff --git a/doc/html/libxml-xmlIO.html b/doc/html/libxml-xmlIO.html index e296535..2d2724c 100644 --- a/doc/html/libxml-xmlIO.html +++ b/doc/html/libxml-xmlIO.html @@ -51,6 +51,8 @@ int xmlInputReadCallback (void * context, <
      xmlOutputBufferPtr	xmlOutputBufferCreateFilename	(const char * URI, 
      xmlCharEncodingHandlerPtr encoder,
      int compression)
      xmlOutputBufferPtr	xmlOutputBufferCreateIO	(xmlOutputWriteCallback iowrite, 
      xmlOutputCloseCallback ioclose,
      void * ioctx,
      xmlCharEncodingHandlerPtr encoder)
      int	xmlOutputBufferFlush		(xmlOutputBufferPtr out)
      +
      const xmlChar *	xmlOutputBufferGetContent	(xmlOutputBufferPtr out)
      +
      size_t	xmlOutputBufferGetSize		(xmlOutputBufferPtr out)
      int	xmlOutputBufferWrite		(xmlOutputBufferPtr out, 
      int len,
      const char * buf)
      int	xmlOutputBufferWriteEscape	(xmlOutputBufferPtr out, 
      const xmlChar * str,
      xmlCharEncodingOutputFunc escaping)
      int	xmlOutputBufferWriteString	(xmlOutputBufferPtr out, 
      const char * str)
      @@ -153,7 +155,11 @@ int xmlInputReadCallback (void * context,
      char * buffer,

      Create a buffered output for the progressive saving to an I/O handler

      iowrite:an I/O write function
      ioclose:an I/O close function
      ioctx:an I/O handler
      encoder:the charset encoding if known
      Returns:the new parser output or NULL

      Function: xmlOutputBufferFlush

      int	xmlOutputBufferFlush		(xmlOutputBufferPtr out)

      flushes the output I/O channel

      -
      out:a buffered output
      Returns:the number of byte written or -1 in case of error.

      Function: xmlOutputBufferWrite

      int	xmlOutputBufferWrite		(xmlOutputBufferPtr out, 
      int len,
      const char * buf)
      +
      out:a buffered output
      Returns:the number of byte written or -1 in case of error.

      Function: xmlOutputBufferGetContent

      const xmlChar *	xmlOutputBufferGetContent	(xmlOutputBufferPtr out)
      +

      Gives a pointer to the data currently held in the output buffer

      +
      out:an xmlOutputBufferPtr
      Returns:a pointer to the data or NULL in case of error

      Function: xmlOutputBufferGetSize

      size_t	xmlOutputBufferGetSize		(xmlOutputBufferPtr out)
      +

      Gives the length of the data currently held in the output buffer

      +
      out:an xmlOutputBufferPtr
      Returns:0 in case or error or no data is held, the size otherwise

      Function: xmlOutputBufferWrite

      int	xmlOutputBufferWrite		(xmlOutputBufferPtr out, 
      int len,
      const char * buf)

      Write the content of the array in the output I/O buffer This routine handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.

      out:a buffered parser output
      len:the size in bytes of the array.
      buf:an char array
      Returns:the number of chars immediately written, or -1 in case of error.

      Function: xmlOutputBufferWriteEscape

      int	xmlOutputBufferWriteEscape	(xmlOutputBufferPtr out, 
      const xmlChar * str,
      xmlCharEncodingOutputFunc escaping)

      Write the content of the string in the output I/O buffer This routine escapes the caracters and then handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.

      diff --git a/doc/html/libxml-xmlerror.html b/doc/html/libxml-xmlerror.html index c0ccb53..528a61d 100644 --- a/doc/html/libxml-xmlerror.html +++ b/doc/html/libxml-xmlerror.html @@ -81,6 +81,8 @@ void xmlStructuredErrorFunc (void * userD XML_FROM_MODULE = 26 : The dynamically loaded module modul XML_FROM_I18N = 27 : The module handling character conversion XML_FROM_SCHEMATRONV = 28 : The Schematron validator module + XML_FROM_BUFFER = 29 : The buffers module + XML_FROM_URI = 30 : The URI module }

      Enum xmlErrorLevel

      Enum xmlErrorLevel {
           XML_ERR_NONE = 0
      @@ -199,6 +201,7 @@ void	xmlStructuredErrorFunc		(void * userD
           XML_WAR_ENTITY_REDEFINED = 107 : 107
           XML_ERR_UNKNOWN_VERSION = 108 : 108
           XML_ERR_VERSION_MISMATCH = 109 : 109
      +    XML_ERR_NAME_TOO_LONG = 110 : 110
           XML_NS_ERR_XML_NAMESPACE = 200
           XML_NS_ERR_UNDEFINED_NAMESPACE = 201 : 201
           XML_NS_ERR_QNAME = 202 : 202
      @@ -820,8 +823,7 @@ void	xmlStructuredErrorFunc		(void * userD
           XML_I18N_EXCESS_HANDLER = 6002 : 6002
           XML_I18N_CONV_FAILED = 6003 : 6003
           XML_I18N_NO_OUTPUT = 6004 : 6004
      -    XML_CHECK_ = 6005 : 5033
      -    XML_CHECK_X = 6006 : 503
      +    XML_BUF_OVERFLOW = 7000
       }
       

      Function: initGenericErrorDefaultFunc

      void	initGenericErrorDefaultFunc	(xmlGenericErrorFunc * handler)

      Set or reset (if NULL) the default handler for generic errors to the builtin error function.

      diff --git a/doc/html/libxml-xmlmodule.html b/doc/html/libxml-xmlmodule.html index c28c54b..1e25a92 100644 --- a/doc/html/libxml-xmlmodule.html +++ b/doc/html/libxml-xmlmodule.html @@ -32,7 +32,7 @@ The content of this structure is not made public by the API.
      module:the module handle
      Returns:0 in case of success, -1 in case of argument error and -2 if the module could not be closed/unloaded.

      Function: xmlModuleFree

      int	xmlModuleFree			(xmlModulePtr module)

      The free operations free the data associated to the module but does not unload the associated shared library which may still be in use.

      module:the module handle
      Returns:0 in case of success, -1 in case of argument error

      Function: xmlModuleOpen

      xmlModulePtr	xmlModuleOpen		(const char * name, 
      int options)
      -

      Opens a module/shared library given its name or path TODO: options are not yet implemented.

      +

      Opens a module/shared library given its name or path NOTE: that due to portability issues, behaviour can only be guaranteed with @name using ASCII. We canot guarantee that an UTF-8 string would work, which is why name is a const char * and not a const xmlChar * . TODO: options are not yet implemented.

      name:the module name
      options:a set of xmlModuleOption
      Returns:a handle for the module or NULL in case of error

      Function: xmlModuleSymbol

      int	xmlModuleSymbol			(xmlModulePtr module, 
      const char * name,
      void ** symbol)
      -

      Lookup for a symbol address in the given module

      +

      Lookup for a symbol address in the given module NOTE: that due to portability issues, behaviour can only be guaranteed with @name using ASCII. We canot guarantee that an UTF-8 string would work, which is why name is a const char * and not a const xmlChar * .

      module:the module
      name:the name of the symbol
      symbol:the resulting symbol address
      Returns:0 if the symbol was found, or -1 in case of error

      Daniel Veillard

      diff --git a/doc/html/libxml-xmlschemas.html b/doc/html/libxml-xmlschemas.html index 18402a0..8cb42a1 100644 --- a/doc/html/libxml-xmlschemas.html +++ b/doc/html/libxml-xmlschemas.html @@ -47,10 +47,15 @@ The content of this structure is not made public by the API.
      int	xmlSchemaValidateDoc		(xmlSchemaValidCtxtPtr ctxt, 
      xmlDocPtr doc)
      int	xmlSchemaValidateFile		(xmlSchemaValidCtxtPtr ctxt, 
      const char * filename,
      int options)
      int	xmlSchemaValidateOneElement	(xmlSchemaValidCtxtPtr ctxt, 
      xmlNodePtr elem)
      +
      void	xmlSchemaValidateSetFilename	(xmlSchemaValidCtxtPtr vctxt, 
      const char * filename)
      +
      void	xmlSchemaValidateSetLocator	(xmlSchemaValidCtxtPtr vctxt, 
      xmlSchemaValidityLocatorFunc f,
      void * ctxt)
      int	xmlSchemaValidateStream		(xmlSchemaValidCtxtPtr ctxt, 
      xmlParserInputBufferPtr input,
      xmlCharEncoding enc,
      xmlSAXHandlerPtr sax,
      void * user_data)
      Function type: xmlSchemaValidityErrorFunc
       void	xmlSchemaValidityErrorFunc	(void * ctx, 
      const char * msg,
      ... ...)
      +
      Function type: xmlSchemaValidityLocatorFunc
      +int	xmlSchemaValidityLocatorFunc	(void * ctx, 
      const char ** file,
      unsigned long * line) +
      Function type: xmlSchemaValidityWarningFunc
       void	xmlSchemaValidityWarningFunc	(void * ctx, 
      const char * msg,
      ... ...)
      @@ -162,11 +167,18 @@ The content of this structure is not made public by the API.

      Do a schemas validation of the given resource, it will use the SAX streamable validation internally.

      ctxt:a schema validation context
      filename:the URI of the instance
      options:a future set of options, currently unused
      Returns:0 if the document is valid, a positive error code number otherwise and -1 in case of an internal or API error.

      Function: xmlSchemaValidateOneElement

      int	xmlSchemaValidateOneElement	(xmlSchemaValidCtxtPtr ctxt, 
      xmlNodePtr elem)

      Validate a branch of a tree, starting with the given @elem.

      -
      ctxt:a schema validation context
      elem:an element node
      Returns:0 if the element and its subtree is valid, a positive error code number otherwise and -1 in case of an internal or API error.

      Function: xmlSchemaValidateStream

      int	xmlSchemaValidateStream		(xmlSchemaValidCtxtPtr ctxt, 
      xmlParserInputBufferPtr input,
      xmlCharEncoding enc,
      xmlSAXHandlerPtr sax,
      void * user_data)
      +
      ctxt:a schema validation context
      elem:an element node
      Returns:0 if the element and its subtree is valid, a positive error code number otherwise and -1 in case of an internal or API error.

      Function: xmlSchemaValidateSetFilename

      void	xmlSchemaValidateSetFilename	(xmlSchemaValidCtxtPtr vctxt, 
      const char * filename)
      +

      Workaround to provide file error reporting information when this is not provided by current APIs

      +
      vctxt:the schema validation context
      filename:the file name

      Function: xmlSchemaValidateSetLocator

      void	xmlSchemaValidateSetLocator	(xmlSchemaValidCtxtPtr vctxt, 
      xmlSchemaValidityLocatorFunc f,
      void * ctxt)
      +

      Allows to set a locator function to the validation context, which will be used to provide file and line information since those are not provided as part of the SAX validation flow Setting @f to NULL disable the locator.

      +
      vctxt:a schema validation context
      f:the locator function pointer
      ctxt:the locator context

      Function: xmlSchemaValidateStream

      int	xmlSchemaValidateStream		(xmlSchemaValidCtxtPtr ctxt, 
      xmlParserInputBufferPtr input,
      xmlCharEncoding enc,
      xmlSAXHandlerPtr sax,
      void * user_data)

      Validate an input based on a flow of SAX event from the parser and forward the events to the @sax handler with the provided @user_data the user provided @sax handler must be a SAX2 one.

      ctxt:a schema validation context
      input:the input to use for reading the data
      enc:an optional encoding information
      sax:a SAX handler for the resulting events
      user_data:the context to provide to the SAX handler.
      Returns:0 if the document is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.

      Function type: xmlSchemaValidityErrorFunc

      Function type: xmlSchemaValidityErrorFunc
       void	xmlSchemaValidityErrorFunc	(void * ctx, 
      const char * msg,
      ... ...)

      Signature of an error callback from an XSD validation

      ctx:the validation context
      msg:the message
      ...:extra arguments

      +

      Function type: xmlSchemaValidityLocatorFunc

      Function type: xmlSchemaValidityLocatorFunc
      +int	xmlSchemaValidityLocatorFunc	(void * ctx, 
      const char ** file,
      unsigned long * line) +

      A schemas validation locator, a callback called by the validator. This is used when file or node informations are not available to find out what file and line number are affected

      ctx:user provided context
      file:returned file information
      line:returned line information
      Returns:0 in case of success and -1 in case of error

      Function type: xmlSchemaValidityWarningFunc

      Function type: xmlSchemaValidityWarningFunc
       void	xmlSchemaValidityWarningFunc	(void * ctx, 
      const char * msg,
      ... ...)

      Signature of a warning callback from an XSD validation

      ctx:the validation context
      msg:the message
      ...:extra arguments

      diff --git a/doc/html/libxml-xmlwriter.html b/doc/html/libxml-xmlwriter.html index 3fef445..e09ff59 100644 --- a/doc/html/libxml-xmlwriter.html +++ b/doc/html/libxml-xmlwriter.html @@ -34,6 +34,7 @@ The content of this structure is not made public by the API.
      int	xmlTextWriterFullEndElement	(xmlTextWriterPtr writer)
      int	xmlTextWriterSetIndent		(xmlTextWriterPtr writer, 
      int indent)
      int	xmlTextWriterSetIndentString	(xmlTextWriterPtr writer, 
      const xmlChar * str)
      +
      int	xmlTextWriterSetQuoteChar	(xmlTextWriterPtr writer, 
      xmlChar quotechar)
      int	xmlTextWriterStartAttribute	(xmlTextWriterPtr writer, 
      const xmlChar * name)
      int	xmlTextWriterStartAttributeNS	(xmlTextWriterPtr writer, 
      const xmlChar * prefix,
      const xmlChar * name,
      const xmlChar * namespaceURI)
      int	xmlTextWriterStartCDATA		(xmlTextWriterPtr writer)
      @@ -139,7 +140,9 @@ The content of this structure is not made public by the API.

      Set indentation output. indent = 0 do not indentation. indent > 0 do indentation.

      writer:the xmlTextWriterPtr
      indent:do indentation?
      Returns:-1 on error or 0 otherwise.

      Function: xmlTextWriterSetIndentString

      int	xmlTextWriterSetIndentString	(xmlTextWriterPtr writer, 
      const xmlChar * str)

      Set string indentation.

      -
      writer:the xmlTextWriterPtr
      str:the xmlChar string
      Returns:-1 on error or 0 otherwise.

      Function: xmlTextWriterStartAttribute

      int	xmlTextWriterStartAttribute	(xmlTextWriterPtr writer, 
      const xmlChar * name)
      +
      writer:the xmlTextWriterPtr
      str:the xmlChar string
      Returns:-1 on error or 0 otherwise.

      Function: xmlTextWriterSetQuoteChar

      int	xmlTextWriterSetQuoteChar	(xmlTextWriterPtr writer, 
      xmlChar quotechar)
      +

      Set the character used for quoting attributes.

      +
      writer:the xmlTextWriterPtr
      quotechar:the quote character
      Returns:-1 on error or 0 otherwise.

      Function: xmlTextWriterStartAttribute

      int	xmlTextWriterStartAttribute	(xmlTextWriterPtr writer, 
      const xmlChar * name)

      Start an xml attribute.

      writer:the xmlTextWriterPtr
      name:element name
      Returns:the bytes written (may be 0 because of buffering) or -1 in case of error

      Function: xmlTextWriterStartAttributeNS

      int	xmlTextWriterStartAttributeNS	(xmlTextWriterPtr writer, 
      const xmlChar * prefix,
      const xmlChar * name,
      const xmlChar * namespaceURI)

      Start an xml attribute with namespace support.

      diff --git a/doc/html/libxml-xpath.html b/doc/html/libxml-xpath.html index 1731b2a..a51b864 100644 --- a/doc/html/libxml-xpath.html +++ b/doc/html/libxml-xpath.html @@ -167,6 +167,7 @@ The content of this structure is not made public by the API. XPATH_INVALID_CHAR_ERROR = 21 XPATH_INVALID_CTXT = 22 XPATH_STACK_ERROR = 23 + XPATH_FORBID_VARIABLE_ERROR = 24 }

      Structure xmlXPathFunct

      Structure xmlXPathFunct
      struct _xmlXPathFunct { const xmlChar * name : the function name diff --git a/doc/html/libxml-xpathInternals.html b/doc/html/libxml-xpathInternals.html index 4a6bb2e..f12d808 100644 --- a/doc/html/libxml-xpathInternals.html +++ b/doc/html/libxml-xpathInternals.html @@ -69,9 +69,9 @@ A:link, A:visited, A:active { text-decoration: underline }
      xmlNodePtr	xmlXPathNextSelf	(xmlXPathParserContextPtr ctxt, 
      xmlNodePtr cur)
      xmlNodeSetPtr	xmlXPathNodeLeading	(xmlNodeSetPtr nodes, 
      xmlNodePtr node)
      xmlNodeSetPtr	xmlXPathNodeLeadingSorted	(xmlNodeSetPtr nodes, 
      xmlNodePtr node)
      -
      void	xmlXPathNodeSetAdd		(xmlNodeSetPtr cur, 
      xmlNodePtr val)
      -
      void	xmlXPathNodeSetAddNs		(xmlNodeSetPtr cur, 
      xmlNodePtr node,
      xmlNsPtr ns)
      -
      void	xmlXPathNodeSetAddUnique	(xmlNodeSetPtr cur, 
      xmlNodePtr val)
      +
      int	xmlXPathNodeSetAdd		(xmlNodeSetPtr cur, 
      xmlNodePtr val)
      +
      int	xmlXPathNodeSetAddNs		(xmlNodeSetPtr cur, 
      xmlNodePtr node,
      xmlNsPtr ns)
      +
      int	xmlXPathNodeSetAddUnique	(xmlNodeSetPtr cur, 
      xmlNodePtr val)
      int	xmlXPathNodeSetContains		(xmlNodeSetPtr cur, 
      xmlNodePtr val)
      void	xmlXPathNodeSetDel		(xmlNodeSetPtr cur, 
      xmlNodePtr val)
      void	xmlXPathNodeSetFreeNs		(xmlNsPtr ns)
      @@ -275,13 +275,13 @@ A:link, A:visited, A:active { text-decoration: underline }

      Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set) @nodes is sorted by document order, then #exslSetsNodeLeadingSorted is called.

      nodes:a node-set
      node:a node
      Returns:the nodes in @nodes that precede @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn't contain @node

      Function: xmlXPathNodeLeadingSorted

      xmlNodeSetPtr	xmlXPathNodeLeadingSorted	(xmlNodeSetPtr nodes, 
      xmlNodePtr node)

      Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set)

      -
      nodes:a node-set, sorted by document order
      node:a node
      Returns:the nodes in @nodes that precede @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn't contain @node

      Function: xmlXPathNodeSetAdd

      void	xmlXPathNodeSetAdd		(xmlNodeSetPtr cur, 
      xmlNodePtr val)
      +
      nodes:a node-set, sorted by document order
      node:a node
      Returns:the nodes in @nodes that precede @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn't contain @node

      Function: xmlXPathNodeSetAdd

      int	xmlXPathNodeSetAdd		(xmlNodeSetPtr cur, 
      xmlNodePtr val)

      add a new xmlNodePtr to an existing NodeSet

      -
      cur:the initial node set
      val:a new xmlNodePtr

      Function: xmlXPathNodeSetAddNs

      void	xmlXPathNodeSetAddNs		(xmlNodeSetPtr cur, 
      xmlNodePtr node,
      xmlNsPtr ns)
      +
      cur:the initial node set
      val:a new xmlNodePtr
      Returns:0 in case of success, and -1 in case of error

      Function: xmlXPathNodeSetAddNs

      int	xmlXPathNodeSetAddNs		(xmlNodeSetPtr cur, 
      xmlNodePtr node,
      xmlNsPtr ns)

      add a new namespace node to an existing NodeSet

      -
      cur:the initial node set
      node:the hosting node
      ns:a the namespace node

      Function: xmlXPathNodeSetAddUnique

      void	xmlXPathNodeSetAddUnique	(xmlNodeSetPtr cur, 
      xmlNodePtr val)
      +
      cur:the initial node set
      node:the hosting node
      ns:a the namespace node
      Returns:0 in case of success and -1 in case of error

      Function: xmlXPathNodeSetAddUnique

      int	xmlXPathNodeSetAddUnique	(xmlNodeSetPtr cur, 
      xmlNodePtr val)

      add a new xmlNodePtr to an existing NodeSet, optimized version when we are sure the node is not already in the set.

      -
      cur:the initial node set
      val:a new xmlNodePtr

      Function: xmlXPathNodeSetContains

      int	xmlXPathNodeSetContains		(xmlNodeSetPtr cur, 
      xmlNodePtr val)
      +
      cur:the initial node set
      val:a new xmlNodePtr
      Returns:0 in case of success and -1 in case of failure

      Function: xmlXPathNodeSetContains

      int	xmlXPathNodeSetContains		(xmlNodeSetPtr cur, 
      xmlNodePtr val)

      checks whether @cur contains @val

      cur:the node-set
      val:the node
      Returns:true (1) if @cur contains @val, false (0) otherwise

      Function: xmlXPathNodeSetDel

      void	xmlXPathNodeSetDel		(xmlNodeSetPtr cur, 
      xmlNodePtr val)

      Removes an xmlNodePtr from an existing NodeSet

      diff --git a/doc/html/libxml-xzlib.html b/doc/html/libxml-xzlib.html deleted file mode 100644 index c4dfdc3..0000000 --- a/doc/html/libxml-xzlib.html +++ /dev/null @@ -1,16 +0,0 @@ - - -Module xzlib from libxml2
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      Module xzlib from libxml2

      API Menu
      API Indexes
      Related links

      Table of Contents

      #define LIBXML2_XZLIB_H
      Typedef void * xzFile
      -

      Description

      -

      Macro: LIBXML2_XZLIB_H

      #define LIBXML2_XZLIB_H

      -

      Daniel Veillard

      diff --git a/doc/libxml2-api.xml b/doc/libxml2-api.xml index 3bca246..f14ed01 100644 --- a/doc/libxml2-api.xml +++ b/doc/libxml2-api.xml @@ -372,10 +372,12 @@ Daniel Veillard + + @@ -715,10 +717,11 @@ + - + @@ -880,7 +883,7 @@ - internals routines exported by the parser. + internals routines and limits exported by the parser. this module exports a number of internal parsing routines they are not really all intended for applications but can prove useful doing low level processing. Daniel Veillard @@ -895,14 +898,17 @@ + + + @@ -1406,13 +1412,14 @@ this module describes the structures found in an tree resulting from an XML or HTML parsing, as well as the API provided for various processing on that tree Daniel Veillard - + - + + @@ -1475,7 +1482,7 @@ - + @@ -1486,7 +1493,7 @@ - + @@ -1496,6 +1503,7 @@ + @@ -1504,6 +1512,7 @@ + @@ -1541,8 +1550,9 @@ - + + @@ -1554,15 +1564,16 @@ - + - + + @@ -1608,6 +1619,7 @@ + @@ -1631,6 +1643,7 @@ + @@ -1638,6 +1651,7 @@ + @@ -1682,12 +1696,13 @@ - + + @@ -1922,9 +1937,11 @@ + + @@ -2030,7 +2047,7 @@ - + @@ -2274,6 +2291,7 @@ + @@ -2379,7 +2397,6 @@ - @@ -2449,7 +2466,7 @@ - + @@ -2576,6 +2593,7 @@ + @@ -2591,7 +2609,7 @@ - + @@ -2666,7 +2684,6 @@ - @@ -2674,6 +2691,7 @@ + @@ -2730,6 +2748,7 @@ + @@ -3076,12 +3095,14 @@ + + @@ -3090,6 +3111,7 @@ + @@ -3415,7 +3437,7 @@ - + @@ -3437,7 +3459,7 @@ - + @@ -3463,8 +3485,9 @@ - + + @@ -3527,6 +3550,7 @@ + @@ -3931,6 +3955,9 @@ Same as IS_PUBIDCHAR but for single-byte value + + Macro used to express that the API use the new buffers for xmlParserInputBuffer and xmlOutputBuffer. The change was introduced in 2.9.0. + Macro used to indicate to GCC this is an allocator function @@ -4149,11 +4176,20 @@ A namespace declaration node. + + Maximum size allowed by the parser for a dictionary by default This is not a limitation of the parser but a safety boundary feature, use XML_PARSE_HUGE option to override it. Introduced in 2.9.0 + + + Maximum size allowed by the parser for ahead lookup This is an upper boundary enforced by the parser to avoid bad behaviour on "unfriendly' content Introduced in 2.9.0 + Identifiers can be longer, but this will be more costly at runtime. + + Maximum size allowed for a markup identitier This is not a limitation of the parser but a safety boundary feature, use XML_PARSE_HUGE option to override it. Note that with the use of parsing dictionaries overriding the limit may result in more runtime memory usage in face of "unfriendly' content Introduced in 2.9.0 + - Maximum size allowed for a single text node when building a tree. This is not a limitation of the parser but a safety boundary feature, use XML_PARSE_HUGE option to override it. + Maximum size allowed for a single text node when building a tree. This is not a limitation of the parser but a safety boundary feature, use XML_PARSE_HUGE option to override it. Introduced in 2.9.0 Special constant found in SAX2 blocks initialized fields @@ -4664,6 +4700,7 @@ + @@ -4710,7 +4747,6 @@ - @@ -4749,7 +4785,6 @@ - @@ -4888,6 +4923,7 @@ and not by parsing an instance'/> + @@ -4939,6 +4975,7 @@ and not by parsing an instance'/> + @@ -4960,8 +4997,9 @@ and not by parsing an instance'/> - + + @@ -5081,6 +5119,7 @@ and not by parsing an instance'/> + @@ -5089,7 +5128,7 @@ crash if you try to modify the tree)'/> - + @@ -5827,6 +5866,7 @@ crash if you try to modify the tree)'/> + @@ -5970,6 +6010,10 @@ if necessary or NULL'/> A state int the automata description, + + + A pointer to a buffer structure, the actual structure internals are not public + @@ -6287,8 +6331,8 @@ set at the end of parsing'/> - - + + @@ -6418,8 +6462,8 @@ actually an xmlCharEncoding'/> - - + + @@ -8507,6 +8551,43 @@ Could we use @subtypes for this?'/> + + Function to extract the content of a buffer + + + + + Function to extract the end of the content of a buffer + + + + + Read the value of a node @cur, this can be either the text carried directly by this node if it's a TEXT node or the aggregate string of the values carried by this node child's (TEXT and ENTITY_REF). Entity references are substituted. Fills up the buffer @buffer with this value + + + + + + defined(LIBXML_OUTPUT_ENABLED) + Dump an XML node, recursive behaviour,children are printed too. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called + + + + + + + + + Remove the beginning of an XML buffer. NOTE that this routine behaviour differs from xmlBufferShrink() as it will return 0 on error instead of -1 due to size_t being used as the return type. + + + + + + Function to get the length of a buffer + + + Add a string range to an XML buffer. if len == -1, the length of str is recomputed. @@ -9430,6 +9511,11 @@ Could we use @subtypes for this?'/> + + Get how much memory is used by a dictionary for strings Added in 2.9.0 + + + Add the @name to the dictionnary @dict if not present. @@ -9455,6 +9541,12 @@ Could we use @subtypes for this?'/> + + Set a size limit for the dictionary Added in 2.9.0 + + + + Query the number of elements installed in the hash @dict. @@ -10132,7 +10224,7 @@ Could we use @subtypes for this?'/> - Get line number of @node. This requires activation of this option before invoking the parser by calling xmlLineNumbersDefault(1) + Get line number of @node. Try to override the limitation of lines being store in 16 bits ints if XML_PARSE_BIG_LINES parser option was used @@ -10984,14 +11076,14 @@ Could we use @subtypes for this?'/> defined(LIBXML_MODULES_ENABLED) - Opens a module/shared library given its name or path TODO: options are not yet implemented. + Opens a module/shared library given its name or path NOTE: that due to portability issues, behaviour can only be guaranteed with @name using ASCII. We canot guarantee that an UTF-8 string would work, which is why name is a const char * and not a const xmlChar * . TODO: options are not yet implemented. defined(LIBXML_MODULES_ENABLED) - Lookup for a symbol address in the given module + Lookup for a symbol address in the given module NOTE: that due to portability issues, behaviour can only be guaranteed with @name using ASCII. We canot guarantee that an UTF-8 string would work, which is why name is a const char * and not a const xmlChar * . @@ -11661,7 +11753,7 @@ Could we use @subtypes for this?'/> defined(LIBXML_OUTPUT_ENABLED) - Dump an XML node, recursive behaviour,children are printed too. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called + Dump an XML node, recursive behaviour,children are printed too. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called Since this is using xmlBuffer structures it is limited to 2GB and somehow deprecated, use xmlBufNodeDump() instead. @@ -11835,6 +11927,18 @@ Could we use @subtypes for this?'/> + + defined(LIBXML_OUTPUT_ENABLED) + Gives a pointer to the data currently held in the output buffer + + + + + defined(LIBXML_OUTPUT_ENABLED) + Gives the length of the data currently held in the output buffer + + + defined(LIBXML_OUTPUT_ENABLED) Write the content of the array in the output I/O buffer This routine handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes. @@ -12382,13 +12486,13 @@ Could we use @subtypes for this?'/> This function increase the input for the parser. It tries to preserve pointers to the input buffer, and keep already read data - + - This function refresh the input for the parser. It doesn't try to preserve pointers to the input buffer, and discard already read data - + This function was internal and is deprecated. + @@ -13917,6 +14021,21 @@ Could we use @subtypes for this?'/> + + defined(LIBXML_SCHEMAS_ENABLED) + Workaround to provide file error reporting information when this is not provided by current APIs + + + + + + defined(LIBXML_SCHEMAS_ENABLED) + Allows to set a locator function to the validation context, which will be used to provide file and line information since those are not provided as part of the SAX validation flow Setting @f to NULL disable the locator. + + + + + defined(LIBXML_SCHEMAS_ENABLED) Validate an input based on a flow of SAX event from the parser and forward the events to the @sax handler with the provided @user_data the user provided @sax handler must be a SAX2 one. @@ -13935,6 +14054,14 @@ Could we use @subtypes for this?'/> + + defined(LIBXML_SCHEMAS_ENABLED) + A schemas validation locator, a callback called by the validator. This is used when file or node informations are not available to find out what file and line number are affected + + + + + defined(LIBXML_SCHEMAS_ENABLED) Signature of a warning callback from an XSD validation @@ -15133,6 +15260,13 @@ Could we use @subtypes for this?'/> + + defined(LIBXML_WRITER_ENABLED) + Set the character used for quoting attributes. + + + + defined(LIBXML_WRITER_ENABLED) Start an xml attribute. @@ -16799,7 +16933,7 @@ Could we use @subtypes for this?'/> - Unlink a node from it's current context, the node is not freed If one need to free the node, use xmlFreeNode() routine after the unlink to discard it. + Unlink a node from it's current context, the node is not freed If one need to free the node, use xmlFreeNode() routine after the unlink to discard it. Note that namespace nodes can't be unlinked as they do not have pointer to their parent. @@ -17782,14 +17916,14 @@ Could we use @subtypes for this?'/> defined(LIBXML_XPATH_ENABLED) add a new xmlNodePtr to an existing NodeSet - + defined(LIBXML_XPATH_ENABLED) add a new namespace node to an existing NodeSet - + @@ -17797,7 +17931,7 @@ Could we use @subtypes for this?'/> defined(LIBXML_XPATH_ENABLED) add a new xmlNodePtr to an existing NodeSet, optimized version when we are sure the node is not already in the set. - + diff --git a/doc/libxml2.xsa b/doc/libxml2.xsa index 574f83b..ee6203d 100644 --- a/doc/libxml2.xsa +++ b/doc/libxml2.xsa @@ -8,59 +8,142 @@ libxml2 - 2.7.8 - Nov 4 2010 + 2.8.0 + May 23 2012 http://xmlsoft.org/ - - Features: - 480323 add code to plug in ICU converters by default (Giuseppe Iuculano), - Add xmlSaveOption XML_SAVE_WSNONSIG (Adam Spragg) + - Features: + add lzma compression support (Anders F Bjorklund) - - Documentation: - Fix devhelp documentation installation (Mike Hommey), - Fix web site encoding problems (Daniel Veillard), - Fix a couple of typo in HTML parser error messages (Michael Day), - Forgot to update the news page for 0.7.7 (Daniel Veillard) + - Documentation: + xmlcatalog: Add uri and delegateURI to possible add types in man page. (Ville Skyttä), + Update README.tests (Daniel Veillard), + URI handling code is not OOM resilient (Daniel Veillard), + Fix an error in comment (Daniel Veillard), + Fixed bug #617016 (Daniel Mustieles), + Fixed two typos in the README document (Daniel Neel), + add generated html files (Anders F Bjorklund), + Clarify the need to use xmlFreeNode after xmlUnlinkNode (Daniel Veillard), + Improve documentation a bit (Daniel Veillard), + Updated URL for lxml python bindings (Daniel Veillard) - - Portability: - 607273 Fix python detection on MSys/Windows (LRN), - 614087 Fix Socket API usage to allow Windows64 compilation (Ozkan Sezer), - Fix compilation with Clang (Koop Mast), - Fix Win32 build (Rob Richards) + - Portability: + Restore code for Windows compilation (Daniel Veillard), + Remove git error message during configure (Christian Dywan), + xmllint: Build fix for endTimer if !defined(HAVE_GETTIMEOFDAY) (Patrick R. Gansterer), + remove a bashism in confgure.in (John Hein), + undef ERROR if already defined (Patrick R. Gansterer), + Fix library problems with mingw-w64 (Michael Cronenworth), + fix windows build. ifdef addition from bug 666491 makes no sense (Rob Richards), + prefer native threads on win32 (Sam Thursfield), + Allow to compile with Visual Studio 2010 (Thomas Lemm), + Fix mingw's snprintf configure check (Andoni Morales), + fixed a 64bit big endian issue (Marcus Meissner), + Fix portability failure if netdb.h lacks NO_ADDRESS (Daniel Veillard), + Fix windows build from lzma addition (Rob Richards), + autogen: Only check for libtoolize (Colin Walters), + Fix the Windows build files (Patrick von Reth), + 634846 Remove a linking option breaking Windows VC10 (Daniel Veillard), + 599241 fix an initialization problem on Win64 (Andrew W. Nosenko), + fix win build (Rob Richards) - - Bug Fixes: - 595789 fix a remaining potential Solaris problem (Daniel Veillard), - 617468 fix progressive HTML parsing with style using "'" (Denis Pauk), - 616478 Fix xmllint shell write command (Gwenn Kahz), - 614005 Possible erroneous HTML parsing on unterminated script (Pierre Belzile), - 627987 Fix XSD IDC errors in imported schemas (Jim Panetta), - 629325 XPath rounding errors first cleanup (Phil Shafer), - 630140 fix iso995x encoding error (Daniel Veillard), - make sure htmlCtxtReset do reset the disableSAX field (Daniel Veillard), - Fix a change of semantic on XPath preceding and following axis (Daniel Veillard), - Fix a potential segfault due to weak symbols on pthreads (Mike Hommey), - Fix a leak in XPath compilation (Daniel Veillard), - Fix the semantic of XPath axis for namespace/attribute context nodes (Daniel Veillard), - Avoid a descriptor leak in catalog loading code (Carlo Bramini), - Fix a small bug in XPath evaluation code (Marius Wachtler), - Fix handling of XML-1.0 XML namespace declaration (Daniel Veillard), - Fix errors in XSD double validation check (Csaba Raduly), - Fix handling of apos in URIs (Daniel Veillard), - xmlTextReaderReadOuterXml should handle DTD (Rob Richards), - Autogen.sh needs to create m4 directory (Rob Richards) + - Bug fixes: + Part for rand_r checking missing (Daniel Veillard), + Cleanup on randomization (Daniel Veillard), + Fix undefined reference in python module (Pacho Ramos), + Fix a race in xmlNewInputStream (Daniel Veillard), + Fix weird streaming RelaxNG errors (Noam), + Fix various bugs in new code raised by the API checking (Daniel Veillard), + Fix various problems with "make dist" (Daniel Veillard), + Fix a memory leak in the xzlib code (Daniel Veillard), + HTML parser error with <noscript> in the <head> (Denis Pauk), + XSD: optional element in complex type extension (Remi Gacogne), + Fix html serialization error and htmlSetMetaEncoding() (Daniel Veillard), + Fix a wrong return value in previous patch (Daniel Veillard), + Fix an uninitialized variable use (Daniel Veillard), + Fix a compilation problem with --minimum (Brandon Slack), + Remove redundant and ungarded include of resolv.h (Daniel Veillard), + xinclude with parse="text" does not use the entity loader (Shaun McCance), + Allow to parse 1 byte HTML files (Denis Pauk), + Patch that fixes the skipping of the HTML_PARSE_NOIMPLIED flag (Martin Schröder), + Avoid memory leak if xmlParserInputBufferCreateIO fails (Lin Yi-Li), + Prevent an infinite loop when dumping a node with encoding problems (Timothy Elliott), + xmlParseNodeInContext problems with an empty document (Tim Elliott), + HTML element position is not detected propperly (Pavel Andrejs), + Fix an off by one pointer access (Jüri Aedla), + Try to fix a problem with entities in SAX mode (Daniel Veillard), + Fix a crash with xmllint --path on empty results (Daniel Veillard), + Fixed bug #667946 (Daniel Mustieles), + Fix a logic error in Schemas Component Constraints (Ryan Sleevi), + Fix a wrong enum type use in Schemas Types (Nico Weber), + Fix SAX2 builder in case of undefined attributes namespace (Daniel Veillard), + Fix SAX2 builder in case of undefined element namespaces (Daniel Veillard), + fix reference to STDOUT_FILENO on MSVC (Tay Ray Chuan), + fix a pair of possible out of array char references (Daniel Veillard), + Fix an allocation error when copying entities (Daniel Veillard), + Make sure the parser returns when getting a Stop order (Chris Evans), + Fix some potential problems on reallocation failures(parser.c) (Xia Xinfeng), + Fix a schema type duration comparison overflow (Daniel Veillard), + Fix an unimplemented part in RNG value validation (Daniel Veillard), + Fix missing error status in XPath evaluation (Daniel Veillard), + Hardening of XPath evaluation (Daniel Veillard), + Fix an off by one error in encoding (Daniel Veillard), + Fix RELAX NG include bug #655288 (Shaun McCance), + Fix XSD validation bug #630130 (Toyoda Eizi), + Fix some potential problems on reallocation failures (Chris Evans), + __xmlRaiseError: fix use of the structured callback channel (Dmitry V. Levin), + __xmlRaiseError: fix the structured callback channel's data initialization (Dmitry V. Levin), + Fix memory corruption when xmlParseBalancedChunkMemoryInternal is called from xmlParseBalancedChunk (Rob Richards), + Small fix for previous commit (Daniel Veillard), + Fix a potential freeing error in XPath (Daniel Veillard), + Fix a potential memory access error (Daniel Veillard), + Reactivate the shared library versionning script (Daniel Veillard) - - Improvements: - 606592 update language ID parser to RFC 5646 (Daniel Veillard), - Sort python generated stubs (Mike Hommey), - Add an HTML parser option to avoid a default doctype (Daniel Veillard) + - Improvements: + use mingw C99 compatible functions {v}snprintf instead those from MSVC runtime (Roumen Petrov), + New symbols added for the next release (Daniel Veillard), + xmlTextReader bails too quickly on error (Andy Lutomirski), + Use a hybrid allocation scheme in xmlNodeSetContent (Conrad Irwin), + Use buffers when constructing string node lists. (Conrad Irwin), + Add HTML parser support for HTML5 meta charset encoding declaration (Denis Pauk), + wrong message for double hyphen in comment XML error (Bryan Henderson), + Fix "make tst" to grab lzma lib too (Daniel Veillard), + Add "whereis" command to xmllint shell (Ryan), + Improve xmllint shell (Ryan), + add function xmlTextReaderRelaxNGValidateCtxt() (Noam Postavsky), + Add --system support to autogen.sh (Daniel Veillard), + Add hash randomization to hash and dict structures (Daniel Veillard), + included xzlib in dist (Anders F Bjorklund), + move xz/lzma helpers to separate included files (Anders F Bjorklund), + add generated devhelp files (Anders F Bjorklund), + add XML_WITH_LZMA to api (Anders F Bjorklund), + autogen.sh: Honor NOCONFIGURE environment variable (Colin Walters), + Improve the error report on undefined REFs (Daniel Veillard), + Add exception for new W3C PI xml-model (Daniel Veillard), + Add options to ignore the internal encoding (Daniel Veillard), + testapi: use the right type for the check (Stefan Kost), + various: handle return values of write calls (Stefan Kost), + testWriter: xmlTextWriterWriteFormatElement wants an int instead of a long int (Stefan Kost), + runxmlconf: update to latest testsuite version (Stefan Kost), + configure: add -Wno-long-long to CFLAGS (Stefan Kost), + configure: support silent automake rules if possible (Stefan Kost), + xmlmemory: add a cast as size_t has no portable printf modifier (Stefan Kost), + __xmlRaiseError: remove redundant schannel initialization (Dmitry V. Levin), + __xmlRaiseError: do cheap code check early (Dmitry V. Levin) - - Cleanups: - 618831 don't ship generated files in git (Adrian Bunk), - Switch from the obsolete mkinstalldirs to AC_PROG_MKDIR_P (Adrian Bunk), - Various cleanups on encoding handling (Daniel Veillard), - Fix xmllint to use format=1 for default formatting (Adam Spragg), - Force _xmlSaveCtxt.format to be 0 or 1 (Adam Spragg), - Cleanup encoding pointer comparison (Nikolay Sivov), - Small code cleanup on previous patch (Daniel Veillard) + - Cleanups: + Cleanups before 2.8.0-rc2 (Daniel Veillard), + Avoid an extra operation (Daniel Veillard), + Remove vestigial de-ANSI-fication support. (Javier Jardón), + autogen.sh: Fix typo (Javier Jardón), + Do not use unsigned but unsigned int (Daniel Veillard), + Remove two references to u_short (Daniel Veillard), + Fix -Wempty-body warning from clang (Nico Weber), + Cleanups of lzma support (Daniel Veillard), + Augment the list of ignored files (Daniel Veillard), + python: remove unused variable (Stefan Kost), + python: flag two unused args (Stefan Kost), + configure: acconfig.h is deprecated since autoconf-2.50 (Stefan Kost), + xpath: remove unused variable (Stefan Kost) diff --git a/doc/news.html b/doc/news.html index 1e7da8e..dcea8e7 100644 --- a/doc/news.html +++ b/doc/news.html @@ -7,13 +7,136 @@ H1 {font-family: Verdana,Arial,Helvetica} H2 {font-family: Verdana,Arial,Helvetica} H3 {font-family: Verdana,Arial,Helvetica} A:link, A:visited, A:active { text-decoration: underline } -Releases
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      The XML C parser and toolkit of Gnome

      Releases

      ) +SAX.endElement(tbody) +SAX.endElement(table) +SAX.endElement(div) +SAX.characters( +, 2) +SAX.startElement(script) +SAX.cdata( window.open=NS_ActualOpen; , 28) +SAX.endElement(script) +SAX.characters( +, 2) +SAX.endElement(body) +SAX.endElement(html) +SAX.ignorableWhitespace( +, 2) +SAX.endDocument() diff --git a/result/HTML/entities.html b/result/HTML/entities.html new file mode 100644 index 0000000..f84424c --- /dev/null +++ b/result/HTML/entities.html @@ -0,0 +1,8 @@ + + +

      +a&b +a&b +a & b +

      + diff --git a/result/HTML/entities.html.err b/result/HTML/entities.html.err new file mode 100644 index 0000000..180fa9f --- /dev/null +++ b/result/HTML/entities.html.err @@ -0,0 +1,12 @@ +./test/HTML/entities.html:1: HTML parser error : htmlParseEntityRef: expecting ';' +

      + ^ +./test/HTML/entities.html:1: HTML parser error : htmlParseEntityRef: no name +

      + ^ +./test/HTML/entities.html:3: HTML parser error : htmlParseEntityRef: expecting ';' +a&b + ^ +./test/HTML/entities.html:4: HTML parser error : htmlParseEntityRef: no name +a & b + ^ diff --git a/result/HTML/entities.html.sax b/result/HTML/entities.html.sax new file mode 100644 index 0000000..709b60d --- /dev/null +++ b/result/HTML/entities.html.sax @@ -0,0 +1,27 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(html) +SAX.startElement(body) +SAX.error: htmlParseEntityRef: expecting ';' +SAX.error: htmlParseEntityRef: no name +SAX.startElement(p, tst='a&b', tst2='a&b', tst3='a & b') +SAX.characters( +a, 2) +SAX.characters(&, 1) +SAX.characters(b +a, 3) +SAX.error: htmlParseEntityRef: expecting ';' +SAX.characters(&, 1) +SAX.characters(b, 1) +SAX.characters( +a , 3) +SAX.error: htmlParseEntityRef: no name +SAX.characters(&, 1) +SAX.characters( b +, 3) +SAX.endElement(p) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(body) +SAX.endElement(html) +SAX.endDocument() diff --git a/result/HTML/entities2.html b/result/HTML/entities2.html new file mode 100644 index 0000000..8e854d3 --- /dev/null +++ b/result/HTML/entities2.html @@ -0,0 +1,8 @@ + + + +
      + + + + diff --git a/result/HTML/entities2.html.err b/result/HTML/entities2.html.err new file mode 100644 index 0000000..e69de29 diff --git a/result/HTML/entities2.html.sax b/result/HTML/entities2.html.sax new file mode 100644 index 0000000..c6efbe5 --- /dev/null +++ b/result/HTML/entities2.html.sax @@ -0,0 +1,23 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(body) +SAX.characters( +, 1) +SAX.startElement(form) +SAX.characters( + , 3) +SAX.startElement(input, type='text', name='test', value='š') +SAX.endElement(input) +SAX.characters( +, 1) +SAX.endElement(form) +SAX.characters( +, 1) +SAX.endElement(body) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(html) +SAX.endDocument() diff --git a/result/HTML/fp40.htm b/result/HTML/fp40.htm new file mode 100644 index 0000000..8affc19 --- /dev/null +++ b/result/HTML/fp40.htm @@ -0,0 +1,167 @@ + + + + + +README - Microsoft FrontPage 2000 Server Extensions + + + + + +

      Microsoft FrontPage 2000 Server Extensions, UNIX

      + +© Copyright Microsoft Corporation, 1999  + + +

      The FrontPage Server Extensions are a set of programs on the Web server that support: + +

      +
        +
      • Authoring FrontPage webs
      • +
      • Administering FrontPage webs
      • +
      • Browse-time FrontPage web functionality
      • +
      + + +

      Contents 

      + +Release Notes
      +Resources for More Information +

       

      +
      +

      Release Notes

      + +

      This section provides complementary or late-breaking +information to supplement the Microsoft FrontPage Server Extensions documentation.

      + +

      Apache 1.3.4 Support
      +Upgrading from previous version of FrontPage Server Extensions
      +Uploading files into executable folders

      + + +

      Top of Page

      + + +

      Apache 1.3.4 Support

      + +

      You need to take some special steps to run the FrontPage Server Extensions with Apache 1.3.4. +FrontPage Server Extensions expect to find all resource directives in the main server +configuration file, usually http.conf. To prevent the server extensions from using any secondary +configuration files (access.conf, srm.conf), add the following lines to http.conf:

      + + +
      +
      + +ResourceConfig /dev/null 
      +AccessConfig /dev/null
      +
      + + + +

      If you have some settings stored in secondary configuration files, move them to http.conf.

      + +

      You must stop and restart the web server for your changes to http.conf to take effect.

      + + + +

      Top of Section

      + + + +

      Upgrading from previous version of FrontPage Server Extensions

      + +

      Custom entries in frontpage.cnf are not migrated to FrontPage 2000.

      + +

      When you install FrontPage 2000 Server Extensions, a new frontpage.cnf file is created in the /usr/local/frontpage/version4.0 directory. +Any custom settings stored in a previous-version frontpage.cnf are not used. However, you can copy +your custom settings from the previous-version frontpage.cnf file after you install the FrontPage 2000 Server Extensions.

      + +

      Do not overwrite the FrontPage 2000 frontpage.cnf file with a frontpage.cnf file from an +earlier version of the FrontPage Server Extensions.

      + + + +

      Top of Section

      + + + +

      Uploading files into executable folders

      + + +

      After upgrading to FrontPage 2000, FrontPage authors will not be able to upload files into +executable folders. For security reasons, the default setting on FrontPage 2000 webs does not +allow authors to upload executable files into executable folders in a FrontPage web. This +setting protects servers so that authors do not inadvertently upload a program containing a bug +or a virus.

      + +

      To allow FrontPage authors to upload executables, set the NoExecutableCgiUpload configuration +variable to zero (0). For information about FrontPage Server Extension configuration variables, +see the FrontPage 2000 Server Extensions Resource Kit at http://officeupdate.microsoft.com/frontpage/wpp/serk/.

      + + + +

      Top of Section

      + + + +
      + + + +

      Resources for More Information

      + +

      This section lists sources of more information about the +FrontPage Server Extensions.

      + +

      Server Extensions Resource Kit
      +Server Extensions Resource Kit Update
      +Knowledge Base

      + + +

      Top of Page

      + + +

      Server Extensions Resource Kit

      + +

      The FrontPage 2000 Server Extensions include a full set of documentation: the Server +Extensions Resource Kit. This is an HTML document installed on the server machine (by +default) in /usr/local/frontpage/version4.0/serk. To view the Server Extensions Resource +Kit, open /usr/local/frontpage/version4.0/serk/default.htm in your Web browser.

      + +

      The Server Extensions Resource Kit contains detailed information about installing and +administering the FrontPage Server Extensions along with an overview of the Server +Extensions, a detailed discussion of Server Extensions security on UNIX and Windows, +troubleshooting information, and a full set of appendixes.

      + +

      Top of Section

      + + +

      Server Extensions Resource Kit Update

      + +

      For updated information about installing, setting up, and administrating the FrontPage Server +Extensions, see the Server Extensions Resource Kit Update at: http://officeupdate.microsoft.com/frontpage/wpp/serk/.

      + + +

      Top of Section

      + + +

      Microsoft Knowledge Base

      + +

      For further technical information on FrontPage, please consult Support Online. Use Support +Online to easily search Microsoft Product Support Services' collection of resources including +technical articles from Microsoft's extensive Knowledge Base, FAQs, & troubleshooters to find +fast, accurate answers. You can also customize the site to control your search using either +keywords or the site's natural language search engine, which uses normal everyday language for +answering inquiries, so you can write your question in your own words. To begin, go to +http://support.microsoft.com/support/.

      + +

      Top of Section

      + + +

       

      + +
      + + diff --git a/result/HTML/fp40.htm.err b/result/HTML/fp40.htm.err new file mode 100644 index 0000000..6ab388f --- /dev/null +++ b/result/HTML/fp40.htm.err @@ -0,0 +1,3 @@ +./test/HTML/fp40.htm:153: HTML parser error : htmlParseEntityRef: no name +technical articles from Microsoft's extensive Knowledge Base, FAQs, & troublesho + ^ diff --git a/result/HTML/fp40.htm.sax b/result/HTML/fp40.htm.sax new file mode 100644 index 0000000..6f77794 --- /dev/null +++ b/result/HTML/fp40.htm.sax @@ -0,0 +1,463 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(html, -//IETF//DTD HTML//EN, ) +SAX.startElement(html) +SAX.ignorableWhitespace( + +, 2) +SAX.startElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(meta, name='GENERATOR', content='Microsoft FrontPage 4.0') +SAX.endElement(meta) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(title) +SAX.characters(README - Microsoft FrontPage 2, 51) +SAX.endElement(title) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(meta, name='Microsoft Theme', content='none') +SAX.endElement(meta) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(head) +SAX.ignorableWhitespace( + +, 2) +SAX.startElement(body) +SAX.characters( +, 1) +SAX.startElement(font, face='Verdana') +SAX.characters( +, 1) +SAX.startElement(h1) +SAX.startElement(a, name='top') +SAX.characters(Microsoft FrontPage 2000 Serve, 48) +SAX.endElement(a) +SAX.endElement(h1) +SAX.characters( + +, 2) +SAX.startElement(font, size='2') +SAX.startElement(i) +SAX.characters(© Copyright Microsoft Cor, 40) +SAX.characters( , 2) +SAX.endElement(i) +SAX.endElement(font) +SAX.characters( + + +, 3) +SAX.startElement(p) +SAX.characters(The FrontPage Server Extension, 88) +SAX.endElement(p) +SAX.startElement(ul) +SAX.characters( + , 3) +SAX.startElement(li) +SAX.characters(Authoring FrontPage webs, 24) +SAX.endElement(li) +SAX.characters( + , 3) +SAX.startElement(li) +SAX.characters(Administering FrontPage webs, 28) +SAX.endElement(li) +SAX.characters( + , 3) +SAX.startElement(li) +SAX.characters(Browse-time FrontPage web func, 39) +SAX.endElement(li) +SAX.characters( +, 1) +SAX.endElement(ul) +SAX.characters( + + +, 3) +SAX.startElement(h2) +SAX.characters(Contents, 8) +SAX.characters( , 2) +SAX.endElement(h2) +SAX.characters( + +, 2) +SAX.startElement(a, href='#relnotes') +SAX.characters(Release Notes, 13) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.startElement(a, href='#moreinfo') +SAX.characters(Resources for More Information, 30) +SAX.endElement(a) +SAX.characters( +, 1) +SAX.startElement(p) +SAX.characters( , 2) +SAX.endElement(p) +SAX.characters( +, 1) +SAX.startElement(hr) +SAX.endElement(hr) +SAX.characters( +, 1) +SAX.startElement(h2) +SAX.startElement(a, name='relnotes') +SAX.characters(Release Notes, 13) +SAX.endElement(a) +SAX.endElement(h2) +SAX.characters( + +, 2) +SAX.startElement(p) +SAX.characters(This section provides compleme, 136) +SAX.endElement(p) +SAX.characters( + +, 2) +SAX.startElement(p) +SAX.startElement(a, href='#apache') +SAX.characters(Apache 1.3.4 Support, 20) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.startElement(a, href='#upgrading') +SAX.characters(Upgrading from previous versio, 62) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.startElement(a, href='#executables') +SAX.characters(Uploading files into executabl, 39) +SAX.endElement(a) +SAX.endElement(p) +SAX.characters( + + +, 3) +SAX.startElement(p, align='right') +SAX.startElement(font, size='1') +SAX.startElement(a, href='#top') +SAX.characters(Top of Page, 11) +SAX.endElement(a) +SAX.endElement(font) +SAX.endElement(p) +SAX.characters( + + +, 3) +SAX.startElement(h3) +SAX.startElement(a, name='apache') +SAX.characters(Apache 1.3.4 Support, 20) +SAX.endElement(a) +SAX.endElement(h3) +SAX.characters( + +, 2) +SAX.startElement(p) +SAX.characters(You need to take some special , 360) +SAX.endElement(p) +SAX.characters( + + +, 3) +SAX.endElement(font) +SAX.characters( +, 1) +SAX.startElement(blockquote) +SAX.characters( + , 3) +SAX.startElement(font, face='Courier New') +SAX.characters( +ResourceConfig /dev/null, 25) +SAX.characters( , 2) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +AccessConfig /dev/null, 23) +SAX.endElement(font) +SAX.characters( +, 1) +SAX.endElement(blockquote) +SAX.characters( +, 1) +SAX.startElement(font, face='Verdana') +SAX.characters( + + +, 3) +SAX.startElement(p) +SAX.characters(If you have some settings stor, 90) +SAX.endElement(p) +SAX.characters( + +, 2) +SAX.startElement(p) +SAX.characters(You must stop and restart the , 86) +SAX.endElement(p) +SAX.characters( + + + +, 4) +SAX.startElement(p, align='right') +SAX.startElement(font, size='1') +SAX.startElement(a, href='#relnotes') +SAX.characters(Top of Section, 14) +SAX.endElement(a) +SAX.endElement(font) +SAX.endElement(p) +SAX.characters( + + + +, 4) +SAX.startElement(h3) +SAX.startElement(a, name='upgrading') +SAX.characters(Upgrading from previous versio, 62) +SAX.endElement(a) +SAX.endElement(h3) +SAX.characters( + +, 2) +SAX.startElement(p) +SAX.characters(Custom entries in frontpage.cn, 67) +SAX.endElement(p) +SAX.characters( + +, 2) +SAX.startElement(p) +SAX.characters(When you install FrontPage 200, 359) +SAX.endElement(p) +SAX.characters( + +, 2) +SAX.startElement(p) +SAX.characters(Do not overwrite the FrontPage, 141) +SAX.endElement(p) +SAX.characters( + + + +, 4) +SAX.startElement(p, align='right') +SAX.startElement(font, size='1') +SAX.startElement(a, href='#relnotes') +SAX.characters(Top of Section, 14) +SAX.endElement(a) +SAX.endElement(font) +SAX.endElement(p) +SAX.characters( + + + +, 4) +SAX.startElement(h3) +SAX.startElement(a, name='executables') +SAX.characters(Uploading files into executabl, 39) +SAX.endElement(a) +SAX.endElement(h3) +SAX.characters( + + +, 3) +SAX.startElement(p) +SAX.characters(After upgrading to FrontPage 2, 385) +SAX.endElement(p) +SAX.characters( + +, 3) +SAX.startElement(p) +SAX.characters(To allow FrontPage authors to , 249) +SAX.startElement(a, href='http://officeupdate.microsoft.com/frontpage/wpp/serk/') +SAX.characters(http://officeupdate.microsoft., 53) +SAX.endElement(a) +SAX.characters(., 1) +SAX.endElement(p) +SAX.characters( + + + +, 4) +SAX.startElement(p, align='right') +SAX.startElement(font, size='1') +SAX.startElement(a, href='#relnotes') +SAX.characters(Top of Section, 14) +SAX.endElement(a) +SAX.endElement(font) +SAX.endElement(p) +SAX.characters( + + + +, 4) +SAX.startElement(hr) +SAX.endElement(hr) +SAX.characters( + + + +, 4) +SAX.startElement(h2) +SAX.startElement(a, name='moreinfo') +SAX.characters(Resources for More Information, 30) +SAX.endElement(a) +SAX.endElement(h2) +SAX.characters( + +, 2) +SAX.startElement(p) +SAX.characters(This section lists sources of , 85) +SAX.endElement(p) +SAX.characters( + +, 2) +SAX.startElement(p) +SAX.startElement(a, href='#serk') +SAX.characters(Server Extensions Resource Kit, 30) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.startElement(a, href='#serkupdate') +SAX.characters(Server Extensions Resource Kit, 37) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.startElement(a, href='#kb') +SAX.characters(Knowledge Base, 14) +SAX.endElement(a) +SAX.endElement(p) +SAX.characters( + + +, 3) +SAX.startElement(p, align='right') +SAX.startElement(font, size='1') +SAX.startElement(a, href='#top') +SAX.characters(Top of Page, 11) +SAX.endElement(a) +SAX.endElement(font) +SAX.endElement(p) +SAX.characters( + + +, 3) +SAX.startElement(h3) +SAX.startElement(a, name='serk') +SAX.characters(Server Extensions Resource Kit, 30) +SAX.endElement(a) +SAX.endElement(h3) +SAX.characters( + +, 2) +SAX.startElement(p) +SAX.characters(The FrontPage 2000 Server Exte, 339) +SAX.endElement(p) +SAX.characters( + +, 2) +SAX.startElement(p) +SAX.characters(The Server Extensions Resource, 312) +SAX.endElement(p) +SAX.characters( + +, 2) +SAX.startElement(p, align='right') +SAX.startElement(font, size='1') +SAX.startElement(a, href='#moreinfo') +SAX.characters(Top of Section, 14) +SAX.endElement(a) +SAX.endElement(font) +SAX.endElement(p) +SAX.characters( + + +, 3) +SAX.startElement(h3) +SAX.startElement(a, name='serkupdate') +SAX.characters(Server Extensions Resource Kit, 37) +SAX.endElement(a) +SAX.endElement(h3) +SAX.characters( + +, 2) +SAX.startElement(p) +SAX.characters(For updated information about , 157) +SAX.startElement(a, href='http://officeupdate.microsoft.com/frontpage/wpp/serk/') +SAX.characters(http://officeupdate.microsoft., 53) +SAX.endElement(a) +SAX.characters(., 1) +SAX.endElement(p) +SAX.characters( + + +, 3) +SAX.startElement(p, align='right') +SAX.startElement(font, size='1') +SAX.startElement(a, href='#moreinfo') +SAX.characters(Top of Section, 14) +SAX.endElement(a) +SAX.endElement(font) +SAX.endElement(p) +SAX.characters( + + +, 3) +SAX.startElement(h3) +SAX.startElement(a, name='kb') +SAX.characters(Microsoft Knowledge Base, 24) +SAX.endElement(a) +SAX.endElement(h3) +SAX.characters( + +, 2) +SAX.startElement(p) +SAX.characters(For further technical informat, 254) +SAX.error: htmlParseEntityRef: no name +SAX.characters(&, 1) +SAX.characters( troubleshooters to find +fast, 302) +SAX.startElement(a, href='http://support.microsoft.com/support/') +SAX.characters(http://support.microsoft.com/s, 37) +SAX.endElement(a) +SAX.characters(., 1) +SAX.endElement(p) +SAX.characters( + +, 4) +SAX.startElement(p, align='right') +SAX.startElement(font, size='1') +SAX.startElement(a, href='#moreinfo') +SAX.characters(Top of Section, 14) +SAX.endElement(a) +SAX.endElement(font) +SAX.endElement(p) +SAX.characters( + + +, 3) +SAX.startElement(p) +SAX.characters( , 2) +SAX.endElement(p) +SAX.characters( + +, 4) +SAX.endElement(font) +SAX.characters( +, 1) +SAX.endElement(body) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.endDocument() diff --git a/result/HTML/html5_enc.html b/result/HTML/html5_enc.html new file mode 100644 index 0000000..44ceebc --- /dev/null +++ b/result/HTML/html5_enc.html @@ -0,0 +1,9 @@ + + + + + + +

      très

      + + diff --git a/result/HTML/html5_enc.html.err b/result/HTML/html5_enc.html.err new file mode 100644 index 0000000..e69de29 diff --git a/result/HTML/html5_enc.html.sax b/result/HTML/html5_enc.html.sax new file mode 100644 index 0000000..292be57 --- /dev/null +++ b/result/HTML/html5_enc.html.sax @@ -0,0 +1,30 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(meta, charset='iso-8859-1') +SAX.endElement(meta) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(body) +SAX.characters( + , 3) +SAX.startElement(p) +SAX.characters(très, 5) +SAX.endElement(p) +SAX.characters( +, 1) +SAX.endElement(body) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.endDocument() diff --git a/result/HTML/liclose.html b/result/HTML/liclose.html new file mode 100644 index 0000000..62391dc --- /dev/null +++ b/result/HTML/liclose.html @@ -0,0 +1,15 @@ + + + + + + +
        +
      • First item +
      • +
      • Second item, closes the first one +
      • +
      + + + diff --git a/result/HTML/liclose.html.err b/result/HTML/liclose.html.err new file mode 100644 index 0000000..e69de29 diff --git a/result/HTML/liclose.html.sax b/result/HTML/liclose.html.sax new file mode 100644 index 0000000..eabcdf6 --- /dev/null +++ b/result/HTML/liclose.html.sax @@ -0,0 +1,38 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(HTML, -//W3C//DTD HTML 4.0 Transitional//EN, http://www.w3.org/TR/REC-html40/loose.dtd) +SAX.startElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(head) +SAX.ignorableWhitespace( + , 3) +SAX.startElement(title) +SAX.endElement(title) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(body) +SAX.characters( +, 1) +SAX.startElement(ul) +SAX.characters( +, 1) +SAX.startElement(li) +SAX.characters(First item +, 11) +SAX.endElement(li) +SAX.startElement(li) +SAX.characters(Second item, closes the first , 34) +SAX.endElement(li) +SAX.endElement(ul) +SAX.characters( + +, 2) +SAX.endElement(body) +SAX.endElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.endDocument() diff --git a/result/HTML/lt.html b/result/HTML/lt.html new file mode 100644 index 0000000..c29f74f --- /dev/null +++ b/result/HTML/lt.html @@ -0,0 +1,6 @@ + + + + + + diff --git a/result/HTML/lt.html.err b/result/HTML/lt.html.err new file mode 100644 index 0000000..e69de29 diff --git a/result/HTML/lt.html.sax b/result/HTML/lt.html.sax new file mode 100644 index 0000000..a4ab5e3 --- /dev/null +++ b/result/HTML/lt.html.sax @@ -0,0 +1,19 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(meta, name='Author', content='Root <root@aol.com>') +SAX.endElement(meta) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.endDocument() diff --git a/result/HTML/noscript.html b/result/HTML/noscript.html new file mode 100644 index 0000000..454e943 --- /dev/null +++ b/result/HTML/noscript.html @@ -0,0 +1,10 @@ + + + + omg + + + +

      yo

      + + diff --git a/result/HTML/noscript.html.err b/result/HTML/noscript.html.err new file mode 100644 index 0000000..e69de29 diff --git a/result/HTML/noscript.html.sax b/result/HTML/noscript.html.sax new file mode 100644 index 0000000..b69396f --- /dev/null +++ b/result/HTML/noscript.html.sax @@ -0,0 +1,38 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(html, , ) +SAX.startElement(html) +SAX.ignorableWhitespace( + , 5) +SAX.startElement(head) +SAX.ignorableWhitespace( + , 9) +SAX.startElement(title) +SAX.characters(omg, 3) +SAX.endElement(title) +SAX.ignorableWhitespace( + , 9) +SAX.startElement(noscript) +SAX.startElement(link, rel='stylesheet', href='http://foo.com') +SAX.endElement(link) +SAX.endElement(noscript) +SAX.ignorableWhitespace( + , 5) +SAX.endElement(head) +SAX.ignorableWhitespace( + , 5) +SAX.startElement(body, id='xxx') +SAX.characters( + , 9) +SAX.startElement(p) +SAX.characters(yo, 2) +SAX.endElement(p) +SAX.characters( + , 5) +SAX.endElement(body) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.endDocument() diff --git a/result/HTML/pre.html b/result/HTML/pre.html new file mode 100644 index 0000000..f83a7cb --- /dev/null +++ b/result/HTML/pre.html @@ -0,0 +1,6 @@ + + + +
      + + diff --git a/result/HTML/pre.html.err b/result/HTML/pre.html.err new file mode 100644 index 0000000..e69de29 diff --git a/result/HTML/pre.html.sax b/result/HTML/pre.html.sax new file mode 100644 index 0000000..f8782b7 --- /dev/null +++ b/result/HTML/pre.html.sax @@ -0,0 +1,23 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(body) +SAX.characters( +, 1) +SAX.startElement(pre) +SAX.startElement(a, href='toto') +SAX.endElement(a) +SAX.startElement(img, src='titi') +SAX.endElement(img) +SAX.endElement(pre) +SAX.characters( +, 1) +SAX.endElement(body) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.endDocument() diff --git a/result/HTML/python.html b/result/HTML/python.html new file mode 100644 index 0000000..ea0be18 --- /dev/null +++ b/result/HTML/python.html @@ -0,0 +1,9 @@ + + + + +Python Programming Language + + + + diff --git a/result/HTML/python.html.err b/result/HTML/python.html.err new file mode 100644 index 0000000..e69de29 diff --git a/result/HTML/python.html.sax b/result/HTML/python.html.sax new file mode 100644 index 0000000..665539c --- /dev/null +++ b/result/HTML/python.html.sax @@ -0,0 +1,29 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(html, -//W3C//DTD HTML 4.01 Transitional//EN, http://www.w3.org/TR/html4/loose.dtd) +SAX.processingInstruction(xml-stylesheet, href="./css/ht2html.css" type="text/css"?) +SAX.startElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.comment( THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(title) +SAX.characters(Python Programming Language, 27) +SAX.endElement(title) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(body) +SAX.characters( +, 1) +SAX.endElement(body) +SAX.endElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.endDocument() diff --git a/result/HTML/reg1.html b/result/HTML/reg1.html new file mode 100644 index 0000000..893d6a2 --- /dev/null +++ b/result/HTML/reg1.html @@ -0,0 +1,12 @@ + + + +Regression test 1 + + +

      Regression test 1

      +

      +Ok file no problem +

      + + diff --git a/result/HTML/reg1.html.err b/result/HTML/reg1.html.err new file mode 100644 index 0000000..e69de29 diff --git a/result/HTML/reg1.html.sax b/result/HTML/reg1.html.sax new file mode 100644 index 0000000..c8ee3ac --- /dev/null +++ b/result/HTML/reg1.html.sax @@ -0,0 +1,36 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(title) +SAX.characters(Regression test 1, 17) +SAX.endElement(title) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(body) +SAX.characters( +, 1) +SAX.startElement(h1) +SAX.characters(Regression test 1, 17) +SAX.endElement(h1) +SAX.characters( +, 1) +SAX.startElement(p) +SAX.characters( +Ok file no problem +, 20) +SAX.endElement(p) +SAX.endElement(body) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.endDocument() diff --git a/result/HTML/reg2.html b/result/HTML/reg2.html new file mode 100644 index 0000000..88cf9d3 --- /dev/null +++ b/result/HTML/reg2.html @@ -0,0 +1,15 @@ + + + +Regression test 2 + + +

      Regression test 2

      +

      +Autoclose of tag P +

      +

      +Ok file no problem +

      + + diff --git a/result/HTML/reg2.html.err b/result/HTML/reg2.html.err new file mode 100644 index 0000000..e69de29 diff --git a/result/HTML/reg2.html.sax b/result/HTML/reg2.html.sax new file mode 100644 index 0000000..f85691e --- /dev/null +++ b/result/HTML/reg2.html.sax @@ -0,0 +1,41 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(title) +SAX.characters(Regression test 2, 17) +SAX.endElement(title) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(body) +SAX.characters( +, 1) +SAX.startElement(h1) +SAX.characters(Regression test 2, 17) +SAX.endElement(h1) +SAX.characters( +, 1) +SAX.startElement(p) +SAX.characters( +Autoclose of tag P +, 20) +SAX.endElement(p) +SAX.startElement(p) +SAX.characters( +Ok file no problem +, 20) +SAX.endElement(p) +SAX.endElement(body) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.endDocument() diff --git a/result/HTML/reg3.html b/result/HTML/reg3.html new file mode 100644 index 0000000..d35ac0d --- /dev/null +++ b/result/HTML/reg3.html @@ -0,0 +1,16 @@ + + + +Regression test 3 + + +

      Regression test 3

      +

      +Autoclose of tag P +

      +
      +

      +Ok file no problem +

      + + diff --git a/result/HTML/reg3.html.err b/result/HTML/reg3.html.err new file mode 100644 index 0000000..e69de29 diff --git a/result/HTML/reg3.html.sax b/result/HTML/reg3.html.sax new file mode 100644 index 0000000..ec0f039 --- /dev/null +++ b/result/HTML/reg3.html.sax @@ -0,0 +1,45 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(title) +SAX.characters(Regression test 3, 17) +SAX.endElement(title) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(body) +SAX.characters( +, 1) +SAX.startElement(h1) +SAX.characters(Regression test 3, 17) +SAX.endElement(h1) +SAX.characters( +, 1) +SAX.startElement(p) +SAX.characters( +Autoclose of tag P +, 20) +SAX.endElement(p) +SAX.startElement(hr) +SAX.endElement(hr) +SAX.characters( +, 1) +SAX.startElement(p) +SAX.characters( +Ok file no problem +, 20) +SAX.endElement(p) +SAX.endElement(body) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.endDocument() diff --git a/result/HTML/reg4.html b/result/HTML/reg4.html new file mode 100644 index 0000000..eb1ba09 --- /dev/null +++ b/result/HTML/reg4.html @@ -0,0 +1,14 @@ + + + +Regression test 4 + + +

      Regression test 4

      +

      +Wrong close of tag P +

      +
      + + + diff --git a/result/HTML/reg4.html.err b/result/HTML/reg4.html.err new file mode 100644 index 0000000..6515f70 --- /dev/null +++ b/result/HTML/reg4.html.err @@ -0,0 +1,3 @@ +./test/HTML/reg4.html:10: HTML parser error : Unexpected end tag : p +

      + ^ diff --git a/result/HTML/reg4.html.sax b/result/HTML/reg4.html.sax new file mode 100644 index 0000000..4c5147c --- /dev/null +++ b/result/HTML/reg4.html.sax @@ -0,0 +1,43 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(title) +SAX.characters(Regression test 4, 17) +SAX.endElement(title) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(body) +SAX.characters( +, 1) +SAX.startElement(h1) +SAX.characters(Regression test 4, 17) +SAX.endElement(h1) +SAX.characters( +, 1) +SAX.startElement(p) +SAX.characters( +Wrong close of tag P +, 22) +SAX.endElement(p) +SAX.startElement(hr) +SAX.endElement(hr) +SAX.characters( +, 1) +SAX.error: Unexpected end tag : p +SAX.characters( +, 1) +SAX.endElement(body) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.endDocument() diff --git a/result/HTML/repeat.html b/result/HTML/repeat.html new file mode 100644 index 0000000..71cf72e --- /dev/null +++ b/result/HTML/repeat.html @@ -0,0 +1,7 @@ + + + + + diff --git a/result/HTML/repeat.html.err b/result/HTML/repeat.html.err new file mode 100644 index 0000000..e69de29 diff --git a/result/HTML/repeat.html.sax b/result/HTML/repeat.html.sax new file mode 100644 index 0000000..2dbf35c --- /dev/null +++ b/result/HTML/repeat.html.sax @@ -0,0 +1,14 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(html) +SAX.startElement(body) +SAX.startElement(td) +SAX.endElement(td) +SAX.startElement(td) +SAX.comment( ) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(td) +SAX.endElement(body) +SAX.endElement(html) +SAX.endDocument() diff --git a/result/HTML/script.html b/result/HTML/script.html new file mode 100644 index 0000000..5b95a1f --- /dev/null +++ b/result/HTML/script.html @@ -0,0 +1,10 @@ + + +Script tests + + + + + diff --git a/result/HTML/script.html.err b/result/HTML/script.html.err new file mode 100644 index 0000000..e69de29 diff --git a/result/HTML/script.html.sax b/result/HTML/script.html.sax new file mode 100644 index 0000000..b259f7f --- /dev/null +++ b/result/HTML/script.html.sax @@ -0,0 +1,32 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(head) +SAX.startElement(title) +SAX.characters(Script tests, 12) +SAX.endElement(title) +SAX.endElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(body) +SAX.characters( +, 1) +SAX.startElement(script, language='javascript') +SAX.cdata( + if (window.open<max) ;, 28) +SAX.endElement(script) +SAX.characters( +, 1) +SAX.startElement(input, onclick='if(window.open<max);') +SAX.endElement(input) +SAX.characters( +, 1) +SAX.endElement(body) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.endDocument() diff --git a/result/HTML/script2.html b/result/HTML/script2.html new file mode 100644 index 0000000..2ad9b95 --- /dev/null +++ b/result/HTML/script2.html @@ -0,0 +1,17 @@ + + + + +Test Page + + +
      + +

      + PříliÅ¡ žluÅ¥ouÄký kůň úpÄ›l Äábelksé ódy; +

      +
      + + diff --git a/result/HTML/script2.html.err b/result/HTML/script2.html.err new file mode 100644 index 0000000..e69de29 diff --git a/result/HTML/script2.html.sax b/result/HTML/script2.html.sax new file mode 100644 index 0000000..1971991 --- /dev/null +++ b/result/HTML/script2.html.sax @@ -0,0 +1,50 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(html, -//W3C//DTD XHTML 1.0 Strict//EN, http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd) +SAX.startElement(html, xmlns='http://www.w3.org/1999/xhtml') +SAX.ignorableWhitespace( + , 2) +SAX.startElement(head) +SAX.ignorableWhitespace( + , 3) +SAX.startElement(meta, http-equiv='Content-Type', content='text/html; charset=UTF-8') +SAX.endElement(meta) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(title) +SAX.characters(Test Page, 9) +SAX.endElement(title) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(body) +SAX.characters( +, 1) +SAX.startElement(div, id='portal') +SAX.characters( +, 1) +SAX.startElement(script, type='text/javascript') +SAX.cdata( + documen.write("Př, 74) +SAX.endElement(script) +SAX.characters( + , 2) +SAX.startElement(p) +SAX.characters( + Příliš , 58) +SAX.endElement(p) +SAX.characters( +, 1) +SAX.endElement(div) +SAX.characters( +, 1) +SAX.endElement(body) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(html) +SAX.ignorableWhitespace( + +, 2) +SAX.endDocument() diff --git a/result/HTML/test2.html b/result/HTML/test2.html new file mode 100644 index 0000000..eaa8864 --- /dev/null +++ b/result/HTML/test2.html @@ -0,0 +1,38 @@ + + + Linux Today + + + +
      +
      Main Menu
      Related links
      Code:BP6-hd

       

      Items not finished and worked on, get in touch with the list if you want -to help those

      The change log describes the recents commits -to the SVN code base.

      Here is the list of public releases:

      2.8.0: May 23 2012

      • Features: -- add lzma compression support (Anders F Bjorklund) +Releases
        Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
        Made with Libxml2 Logo

        The XML C parser and toolkit of Gnome

        Releases

        Main Menu
        Related links
        + +

        The change log describes the recents commits +to the GIT code base.

        Here is the list of public releases:

        2.9.0: Sep 11 2012

        • Features:
          + A few new API entry points,
          + More resilient push parser mode,
          + A lot of portability improvement,
          + Faster XPath evaluation
        • + +
        • Documentation:
          + xml2-config.1 markup error (Christian Weisgerber),
          + libxml(3) manpage typo fix (John Bradshaw),
          + More cleanups to the documentation part of libxml2 (Daniel Richard G)
        • + +
        • Portability:
          + Bug 676544 - fails to build with --without-sax1 (Akira TAGOH),
          + fix builds not having stdint.h (Rob Richards),
          + GetProcAddressA is available only on WinCE (Daniel Veillard),
          + More updates and cleanups on autotools and Makefiles (Daniel Richard G),
          + More changes for Win32 compilation (Eric Zurcher),
          + Basic changes for Win32 builds of release 2.9.0: compile buf.c (Eric Zurcher),
          + Bundles all generated files for python into the distribution (Daniel Richard G),
          + Fix compiler warnings of wincecompat.c (Patrick Gansterer),
          + Fix non __GNUC__ build (Patrick Gansterer),
          + Fix windows unicode build (Patrick Gansterer),
          + clean redefinition of {v}snprintf in C-source (Roumen Petrov),
          + use xmlBuf... if DEBUG_INPUT is defined (Roumen Petrov),
          + fix runtests to use pthreads support for various Unix platforms (Daniel Richard G),
          + Various "make distcheck" and portability fixups 2nd part (Daniel Richard G),
          + Various "make distcheck" and portability fixups (Daniel Richard G),
          + Fix compilation on older Visual Studio (Daniel Veillard)
        • + +
        • Bug Fixes:
          + Change the XPath code to percolate allocation errors (Daniel Veillard),
          + Fix reuse of xmlInitParser (Daniel Veillard),
          + Fix potential crash on entities errors (Daniel Veillard),
          + initialize var (Rob Richards),
          + Fix the XPath arity check to also check the XPath stack limits (Daniel Veillard),
          + Fix problem with specific and generic error handlers (Pietro Cerutti),
          + Avoid a potential infinite recursion (Daniel Veillard),
          + Fix an XSD error when generating internal automata (Daniel Veillard),
          + Patch for xinclude of text using multibyte characters (Vitaly Ostanin),
          + Fix a segfault on XSD validation on pattern error (Daniel Veillard),
          + Fix missing xmlsave.h module which was ignored in recent builds (Daniel Veillard),
          + Add a missing element check (Daniel Veillard),
          + Adding various checks on node type though the API (Daniel Veillard),
          + Namespace nodes can't be unlinked with xmlUnlinkNode (Daniel Veillard),
          + Fix make dist to include new private header files (Daniel Veillard),
          + More fixups on the push parser behaviour (Daniel Veillard),
          + Strengthen behaviour of the push parser in problematic situations (Daniel Veillard),
          + Enforce XML_PARSER_EOF state handling through the parser (Daniel Veillard),
          + Fixup limits parser (Daniel Veillard),
          + Do not fetch external parsed entities (Daniel Veillard),
          + Fix an error in previous commit (Aron Xu),
          + Fix entities local buffers size problems (Daniel Veillard),
          + Fix parser local buffers size problems (Daniel Veillard),
          + Fix a failure to report xmlreader parsing failures (Daniel Veillard)
        • + +
        • Improvements:
          + Keep libxml2.syms when running "make distclean" (Daniel Veillard),
          + Allow to set the quoting character of an xmlWriter (Csaba Raduly),
          + Keep non-significant blanks node in HTML parser (Daniel Veillard),
          + Add a forbidden variable error number and message to XPath (Daniel Veillard),
          + Support long path names on WNT (Michael Stahl),
          + Improve HTML escaping of attribute on output (Daniel Veillard),
          + Handle ICU_LIBS as LIBADD, not LDFLAGS to prevent linking errors (Arfrever Frehtes Taifersar Arahesis),
          + Switching XPath node sorting to Timsort (Vojtech Fried),
          + Optimizing '//' in XPath expressions (Nick Wellnhofer),
          + Expose xmlBufShrink in the public tree API (Daniel Veillard),
          + Visible HTML elements close the head tag (Conrad Irwin),
          + Fix file and line report for XSD SAX and reader streaming validation (Daniel Veillard),
          + Fix const qualifyer to definition of xmlBufferDetach (Daniel Veillard),
          + minimize use of HAVE_CONFIG_H (Roumen Petrov),
          + fixup regression in Various "make distcheck" and portability fixups (Roumen Petrov),
          + Add support for big line numbers in error reporting (Daniel Veillard),
          + Avoid using xmlBuffer for serialization (Daniel Veillard),
          + Improve compatibility between xmlBuf and xmlBuffer (Daniel Veillard),
          + Provide new accessors for xmlOutputBuffer (Daniel Veillard),
          + Improvements for old buffer compatibility (Daniel Veillard),
          + Expand the limit test program (Daniel Veillard),
          + Improve error reporting on parser errors (Daniel Veillard),
          + Implement some default limits in the XPath module (Daniel Veillard),
          + Introduce some default parser limits (Daniel Veillard),
          + Cleanups and new limit APIs for dictionaries (Daniel Veillard),
          + Fixup for buf.c (Daniel Veillard),
          + Cleanup URI module memory allocation code (Daniel Veillard),
          + Extend testlimits (Daniel Veillard),
          + More avoid quadratic behaviour (Daniel Veillard),
          + Impose a reasonable limit on PI size (Daniel Veillard),
          + first version of testlimits new test (Daniel Veillard),
          + Avoid quadratic behaviour in some push parsing cases (Daniel Veillard),
          + Impose a reasonable limit on comment size (Daniel Veillard),
          + Impose a reasonable limit on attribute size (Daniel Veillard),
          + Harden the buffer code and make it more compatible (Daniel Veillard),
          + More cleanups for input/buffers code (Daniel Veillard),
          + Cleanup function xmlBufResetInput(),
          to set input from Buffer (Daniel Veillard) + Swicth the test program for characters to new input buffers (Daniel Veillard),
          + Convert the HTML tree module to the new buffers (Daniel Veillard),
          + Convert of the HTML parser to new input buffers (Daniel Veillard),
          + Convert the writer to new output buffer and save APIs (Daniel Veillard),
          + Convert XMLReader to the new input buffers (Daniel Veillard),
          + New saving functions using xmlBuf and conversion (Daniel Veillard),
          + Provide new xmlBuf based saving functions (Daniel Veillard),
          + Convert XInclude to the new input buffers (Daniel Veillard),
          + Convert catalog code to the new input buffers (Daniel Veillard),
          + Convert C14N to the new Input buffer (Daniel Veillard),
          + Convert xmlIO.c to the new input and output buffers (Daniel Veillard),
          + Convert XML parser to the new input buffers (Daniel Veillard),
          + Incompatible change to the Input and Output buffers (Daniel Veillard),
          + Adding new encoding function to deal with the new structures (Daniel Veillard),
          + Convert XPath to xmlBuf (Daniel Veillard),
          + Adding a new buf module for buffers (Daniel Veillard),
          + Memory error within SAX2 reuse common framework (Daniel Veillard),
          + Fix xmllint --xpath node initialization (Daniel Veillard)
        • + +
        • Cleanups:
          + Various cleanups to avoid compiler warnings (Daniel Veillard),
          + Big space and tab cleanup (Daniel Veillard),
          + Followup to LibXML2 docs/examples cleanup patch (Daniel Veillard),
          + Second round of cleanups for LibXML2 docs/examples (Daniel Richard),
          + Remove all .cvsignore as they are not used anymore (Daniel Veillard),
          + Fix a Timsort function helper comment (Daniel Veillard),
          + Small cleanup for valgrind target (Daniel Veillard),
          + Patch for portability of latin characters in C files (Daniel Veillard),
          + Cleanup some of the parser code (Daniel Veillard),
          + Fix a variable name in comment (Daniel Veillard),
          + Regenerated testapi.c (Daniel Veillard),
          + Regenerating docs and API files (Daniel Veillard),
          + Small cleanup of unused variables in test (Daniel Veillard),
          + Expand .gitignore with more files (Daniel Veillard)
        • +

        2.8.0: May 23 2012

        • Features: + add lzma compression support (Anders F Bjorklund)
        • Documentation: diff --git a/doc/symbols.xml b/doc/symbols.xml index 1695bb3..08dcfaa 100644 --- a/doc/symbols.xml +++ b/doc/symbols.xml @@ -1746,4 +1746,19 @@ xmlBufferDetach xmlInitializeDict + + xmlBufContent + xmlBufEnd + xmlBufGetNodeContent + xmlBufNodeDump + xmlBufShrink + xmlBufUse + xmlDictGetUsage + xmlDictSetLimit + xmlSchemaValidateSetFilename + xmlSchemaValidateSetLocator + xmlOutputBufferGetContent + xmlOutputBufferGetSize + xmlTextWriterSetQuoteChar + diff --git a/doc/xml.html b/doc/xml.html index 2f73b54..d2cc00d 100644 --- a/doc/xml.html +++ b/doc/xml.html @@ -704,23 +704,151 @@ href="python.html">bindings section

          Releases

          -

          Items not finished and worked on, get in touch with the list if you want -to help those

          - -

          The change log describes the recents commits -to the SVN code base.

          +to the GIT code base.

          Here is the list of public releases:

          +

          2.9.0: Sep 11 2012

          +
            +
          • Features:
            + A few new API entry points,
            + More resilient push parser mode,
            + A lot of portability improvement,
            + Faster XPath evaluation
            +
          • + +
          • Documentation:
            + xml2-config.1 markup error (Christian Weisgerber),
            + libxml(3) manpage typo fix (John Bradshaw),
            + More cleanups to the documentation part of libxml2 (Daniel Richard G)
            +
          • + +
          • Portability:
            + Bug 676544 - fails to build with --without-sax1 (Akira TAGOH),
            + fix builds not having stdint.h (Rob Richards),
            + GetProcAddressA is available only on WinCE (Daniel Veillard),
            + More updates and cleanups on autotools and Makefiles (Daniel Richard G),
            + More changes for Win32 compilation (Eric Zurcher),
            + Basic changes for Win32 builds of release 2.9.0: compile buf.c (Eric Zurcher),
            + Bundles all generated files for python into the distribution (Daniel Richard G),
            + Fix compiler warnings of wincecompat.c (Patrick Gansterer),
            + Fix non __GNUC__ build (Patrick Gansterer),
            + Fix windows unicode build (Patrick Gansterer),
            + clean redefinition of {v}snprintf in C-source (Roumen Petrov),
            + use xmlBuf... if DEBUG_INPUT is defined (Roumen Petrov),
            + fix runtests to use pthreads support for various Unix platforms (Daniel Richard G),
            + Various "make distcheck" and portability fixups 2nd part (Daniel Richard G),
            + Various "make distcheck" and portability fixups (Daniel Richard G),
            + Fix compilation on older Visual Studio (Daniel Veillard)
            +
          • + +
          • Bug Fixes:
            + Change the XPath code to percolate allocation errors (Daniel Veillard),
            + Fix reuse of xmlInitParser (Daniel Veillard),
            + Fix potential crash on entities errors (Daniel Veillard),
            + initialize var (Rob Richards),
            + Fix the XPath arity check to also check the XPath stack limits (Daniel Veillard),
            + Fix problem with specific and generic error handlers (Pietro Cerutti),
            + Avoid a potential infinite recursion (Daniel Veillard),
            + Fix an XSD error when generating internal automata (Daniel Veillard),
            + Patch for xinclude of text using multibyte characters (Vitaly Ostanin),
            + Fix a segfault on XSD validation on pattern error (Daniel Veillard),
            + Fix missing xmlsave.h module which was ignored in recent builds (Daniel Veillard),
            + Add a missing element check (Daniel Veillard),
            + Adding various checks on node type though the API (Daniel Veillard),
            + Namespace nodes can't be unlinked with xmlUnlinkNode (Daniel Veillard),
            + Fix make dist to include new private header files (Daniel Veillard),
            + More fixups on the push parser behaviour (Daniel Veillard),
            + Strengthen behaviour of the push parser in problematic situations (Daniel Veillard),
            + Enforce XML_PARSER_EOF state handling through the parser (Daniel Veillard),
            + Fixup limits parser (Daniel Veillard),
            + Do not fetch external parsed entities (Daniel Veillard),
            + Fix an error in previous commit (Aron Xu),
            + Fix entities local buffers size problems (Daniel Veillard),
            + Fix parser local buffers size problems (Daniel Veillard),
            + Fix a failure to report xmlreader parsing failures (Daniel Veillard)
            +
          • + +
          • Improvements:
            + Keep libxml2.syms when running "make distclean" (Daniel Veillard),
            + Allow to set the quoting character of an xmlWriter (Csaba Raduly),
            + Keep non-significant blanks node in HTML parser (Daniel Veillard),
            + Add a forbidden variable error number and message to XPath (Daniel Veillard),
            + Support long path names on WNT (Michael Stahl),
            + Improve HTML escaping of attribute on output (Daniel Veillard),
            + Handle ICU_LIBS as LIBADD, not LDFLAGS to prevent linking errors (Arfrever Frehtes Taifersar Arahesis),
            + Switching XPath node sorting to Timsort (Vojtech Fried),
            + Optimizing '//' in XPath expressions (Nick Wellnhofer),
            + Expose xmlBufShrink in the public tree API (Daniel Veillard),
            + Visible HTML elements close the head tag (Conrad Irwin),
            + Fix file and line report for XSD SAX and reader streaming validation (Daniel Veillard),
            + Fix const qualifyer to definition of xmlBufferDetach (Daniel Veillard),
            + minimize use of HAVE_CONFIG_H (Roumen Petrov),
            + fixup regression in Various "make distcheck" and portability fixups (Roumen Petrov),
            + Add support for big line numbers in error reporting (Daniel Veillard),
            + Avoid using xmlBuffer for serialization (Daniel Veillard),
            + Improve compatibility between xmlBuf and xmlBuffer (Daniel Veillard),
            + Provide new accessors for xmlOutputBuffer (Daniel Veillard),
            + Improvements for old buffer compatibility (Daniel Veillard),
            + Expand the limit test program (Daniel Veillard),
            + Improve error reporting on parser errors (Daniel Veillard),
            + Implement some default limits in the XPath module (Daniel Veillard),
            + Introduce some default parser limits (Daniel Veillard),
            + Cleanups and new limit APIs for dictionaries (Daniel Veillard),
            + Fixup for buf.c (Daniel Veillard),
            + Cleanup URI module memory allocation code (Daniel Veillard),
            + Extend testlimits (Daniel Veillard),
            + More avoid quadratic behaviour (Daniel Veillard),
            + Impose a reasonable limit on PI size (Daniel Veillard),
            + first version of testlimits new test (Daniel Veillard),
            + Avoid quadratic behaviour in some push parsing cases (Daniel Veillard),
            + Impose a reasonable limit on comment size (Daniel Veillard),
            + Impose a reasonable limit on attribute size (Daniel Veillard),
            + Harden the buffer code and make it more compatible (Daniel Veillard),
            + More cleanups for input/buffers code (Daniel Veillard),
            + Cleanup function xmlBufResetInput(),
            to set input from Buffer (Daniel Veillard) + Swicth the test program for characters to new input buffers (Daniel Veillard),
            + Convert the HTML tree module to the new buffers (Daniel Veillard),
            + Convert of the HTML parser to new input buffers (Daniel Veillard),
            + Convert the writer to new output buffer and save APIs (Daniel Veillard),
            + Convert XMLReader to the new input buffers (Daniel Veillard),
            + New saving functions using xmlBuf and conversion (Daniel Veillard),
            + Provide new xmlBuf based saving functions (Daniel Veillard),
            + Convert XInclude to the new input buffers (Daniel Veillard),
            + Convert catalog code to the new input buffers (Daniel Veillard),
            + Convert C14N to the new Input buffer (Daniel Veillard),
            + Convert xmlIO.c to the new input and output buffers (Daniel Veillard),
            + Convert XML parser to the new input buffers (Daniel Veillard),
            + Incompatible change to the Input and Output buffers (Daniel Veillard),
            + Adding new encoding function to deal with the new structures (Daniel Veillard),
            + Convert XPath to xmlBuf (Daniel Veillard),
            + Adding a new buf module for buffers (Daniel Veillard),
            + Memory error within SAX2 reuse common framework (Daniel Veillard),
            + Fix xmllint --xpath node initialization (Daniel Veillard)
            +
          • + +
          • Cleanups:
            + Various cleanups to avoid compiler warnings (Daniel Veillard),
            + Big space and tab cleanup (Daniel Veillard),
            + Followup to LibXML2 docs/examples cleanup patch (Daniel Veillard),
            + Second round of cleanups for LibXML2 docs/examples (Daniel Richard),
            + Remove all .cvsignore as they are not used anymore (Daniel Veillard),
            + Fix a Timsort function helper comment (Daniel Veillard),
            + Small cleanup for valgrind target (Daniel Veillard),
            + Patch for portability of latin characters in C files (Daniel Veillard),
            + Cleanup some of the parser code (Daniel Veillard),
            + Fix a variable name in comment (Daniel Veillard),
            + Regenerated testapi.c (Daniel Veillard),
            + Regenerating docs and API files (Daniel Veillard),
            + Small cleanup of unused variables in test (Daniel Veillard),
            + Expand .gitignore with more files (Daniel Veillard)
            +
          • +

          2.8.0: May 23 2012

          • Features: -- add lzma compression support (Anders F Bjorklund) + add lzma compression support (Anders F Bjorklund)
          • Documentation: diff --git a/enc.h b/enc.h new file mode 100644 index 0000000..9197760 --- /dev/null +++ b/enc.h @@ -0,0 +1,32 @@ +/* + * Summary: Internal Interfaces for encoding in libxml2 + * Description: this module describes a few interfaces which were + * addded along with the API changes in 2.9.0 + * those are private routines at this point + * + * Copy: See Copyright for the status of this software. + * + * Author: Daniel Veillard + */ + +#ifndef __XML_ENC_H__ +#define __XML_ENC_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +int xmlCharEncFirstLineInt(xmlCharEncodingHandler *handler, xmlBufferPtr out, + xmlBufferPtr in, int len); +int xmlCharEncFirstLineInput(xmlParserInputBufferPtr input, int len); +int xmlCharEncInput(xmlParserInputBufferPtr input); +int xmlCharEncOutput(xmlOutputBufferPtr output, int init); + +#ifdef __cplusplus +} +#endif +#endif /* __XML_ENC_H__ */ + + diff --git a/encoding.c b/encoding.c index d486dd6..87b1d9b 100644 --- a/encoding.c +++ b/encoding.c @@ -24,6 +24,7 @@ #include "libxml.h" #include +#include #ifdef HAVE_CTYPE_H #include @@ -44,6 +45,9 @@ #include #include +#include "buf.h" +#include "enc.h" + static xmlCharEncodingHandlerPtr xmlUTF16LEHandler = NULL; static xmlCharEncodingHandlerPtr xmlUTF16BEHandler = NULL; @@ -1825,7 +1829,7 @@ xmlIconvWrapper(iconv_t cd, unsigned char *out, int *outlen, /************************************************************************ * * - * ICU based generic conversion functions * + * ICU based generic conversion functions * * * ************************************************************************/ @@ -1897,9 +1901,6 @@ xmlUconvWrapper(uconv_t *cd, int toUnicode, unsigned char *out, int *outlen, * The real API used by libxml for on-the-fly conversion * * * ************************************************************************/ -int -xmlCharEncFirstLineInt(xmlCharEncodingHandler *handler, xmlBufferPtr out, - xmlBufferPtr in, int len); /** * xmlCharEncFirstLineInt: @@ -1946,7 +1947,7 @@ xmlCharEncFirstLineInt(xmlCharEncodingHandler *handler, xmlBufferPtr out, toconv = 180; } if (toconv * 2 >= written) { - xmlBufferGrow(out, toconv); + xmlBufferGrow(out, toconv * 2); written = out->size - out->use - 1; } @@ -2028,6 +2029,251 @@ xmlCharEncFirstLine(xmlCharEncodingHandler *handler, xmlBufferPtr out, return(xmlCharEncFirstLineInt(handler, out, in, -1)); } +/** + * xmlCharEncFirstLineInput: + * @input: a parser input buffer + * @len: number of bytes to convert for the first line, or -1 + * + * Front-end for the encoding handler input function, but handle only + * the very first line. Point is that this is based on autodetection + * of the encoding and once that first line is converted we may find + * out that a different decoder is needed to process the input. + * + * Returns the number of byte written if success, or + * -1 general error + * -2 if the transcoding fails (for *in is not valid utf8 string or + * the result of transformation can't fit into the encoding we want), or + */ +int +xmlCharEncFirstLineInput(xmlParserInputBufferPtr input, int len) +{ + int ret = -2; + size_t written; + size_t toconv; + int c_in; + int c_out; + xmlBufPtr in; + xmlBufPtr out; + + if ((input == NULL) || (input->encoder == NULL) || + (input->buffer == NULL) || (input->raw == NULL)) + return (-1); + out = input->buffer; + in = input->raw; + + toconv = xmlBufUse(in); + if (toconv == 0) + return (0); + written = xmlBufAvail(out) - 1; /* count '\0' */ + /* + * echo '' | wc -c => 38 + * 45 chars should be sufficient to reach the end of the encoding + * declaration without going too far inside the document content. + * on UTF-16 this means 90bytes, on UCS4 this means 180 + * The actual value depending on guessed encoding is passed as @len + * if provided + */ + if (len >= 0) { + if (toconv > (unsigned int) len) + toconv = len; + } else { + if (toconv > 180) + toconv = 180; + } + if (toconv * 2 >= written) { + xmlBufGrow(out, toconv * 2); + written = xmlBufAvail(out) - 1; + } + if (written > 360) + written = 360; + + c_in = toconv; + c_out = written; + if (input->encoder->input != NULL) { + ret = input->encoder->input(xmlBufEnd(out), &c_out, + xmlBufContent(in), &c_in); + xmlBufShrink(in, c_in); + xmlBufAddLen(out, c_out); + } +#ifdef LIBXML_ICONV_ENABLED + else if (input->encoder->iconv_in != NULL) { + ret = xmlIconvWrapper(input->encoder->iconv_in, xmlBufEnd(out), + &c_out, xmlBufContent(in), &c_in); + xmlBufShrink(in, c_in); + xmlBufAddLen(out, c_out); + if (ret == -1) + ret = -3; + } +#endif /* LIBXML_ICONV_ENABLED */ +#ifdef LIBXML_ICU_ENABLED + else if (input->encoder->uconv_in != NULL) { + ret = xmlUconvWrapper(input->encoder->uconv_in, 1, xmlBufEnd(out), + &c_out, xmlBufContent(in), &c_in); + xmlBufShrink(in, c_in); + xmlBufAddLen(out, c_out); + if (ret == -1) + ret = -3; + } +#endif /* LIBXML_ICU_ENABLED */ + switch (ret) { + case 0: +#ifdef DEBUG_ENCODING + xmlGenericError(xmlGenericErrorContext, + "converted %d bytes to %d bytes of input\n", + c_in, c_out); +#endif + break; + case -1: +#ifdef DEBUG_ENCODING + xmlGenericError(xmlGenericErrorContext, + "converted %d bytes to %d bytes of input, %d left\n", + c_in, c_out, (int)xmlBufUse(in)); +#endif + break; + case -3: +#ifdef DEBUG_ENCODING + xmlGenericError(xmlGenericErrorContext, + "converted %d bytes to %d bytes of input, %d left\n", + c_in, c_out, (int)xmlBufUse(in)); +#endif + break; + case -2: { + char buf[50]; + const xmlChar *content = xmlBufContent(in); + + snprintf(&buf[0], 49, "0x%02X 0x%02X 0x%02X 0x%02X", + content[0], content[1], + content[2], content[3]); + buf[49] = 0; + xmlEncodingErr(XML_I18N_CONV_FAILED, + "input conversion failed due to input error, bytes %s\n", + buf); + } + } + /* + * Ignore when input buffer is not on a boundary + */ + if (ret == -3) ret = 0; + if (ret == -1) ret = 0; + return(ret); +} + +/** + * xmlCharEncInput: + * @input: a parser input buffer + * + * Generic front-end for the encoding handler on parser input + * + * Returns the number of byte written if success, or + * -1 general error + * -2 if the transcoding fails (for *in is not valid utf8 string or + * the result of transformation can't fit into the encoding we want), or + */ +int +xmlCharEncInput(xmlParserInputBufferPtr input) +{ + int ret = -2; + size_t written; + size_t toconv; + int c_in; + int c_out; + xmlBufPtr in; + xmlBufPtr out; + + if ((input == NULL) || (input->encoder == NULL) || + (input->buffer == NULL) || (input->raw == NULL)) + return (-1); + out = input->buffer; + in = input->raw; + + toconv = xmlBufUse(in); + if (toconv == 0) + return (0); + if (toconv > 64 * 1024) + toconv = 64 * 1024; + written = xmlBufAvail(out); + if (written > 0) + written--; /* count '\0' */ + if (toconv * 2 >= written) { + xmlBufGrow(out, toconv * 2); + written = xmlBufAvail(out); + if (written > 0) + written--; /* count '\0' */ + } + if (written > 128 * 1024) + written = 128 * 1024; + + c_in = toconv; + c_out = written; + if (input->encoder->input != NULL) { + ret = input->encoder->input(xmlBufEnd(out), &c_out, + xmlBufContent(in), &c_in); + xmlBufShrink(in, c_in); + xmlBufAddLen(out, c_out); + } +#ifdef LIBXML_ICONV_ENABLED + else if (input->encoder->iconv_in != NULL) { + ret = xmlIconvWrapper(input->encoder->iconv_in, xmlBufEnd(out), + &c_out, xmlBufContent(in), &c_in); + xmlBufShrink(in, c_in); + xmlBufAddLen(out, c_out); + if (ret == -1) + ret = -3; + } +#endif /* LIBXML_ICONV_ENABLED */ +#ifdef LIBXML_ICU_ENABLED + else if (input->encoder->uconv_in != NULL) { + ret = xmlUconvWrapper(input->encoder->uconv_in, 1, xmlBufEnd(out), + &c_out, xmlBufContent(in), &c_in); + xmlBufShrink(in, c_in); + xmlBufAddLen(out, c_out); + if (ret == -1) + ret = -3; + } +#endif /* LIBXML_ICU_ENABLED */ + switch (ret) { + case 0: +#ifdef DEBUG_ENCODING + xmlGenericError(xmlGenericErrorContext, + "converted %d bytes to %d bytes of input\n", + c_in, c_out); +#endif + break; + case -1: +#ifdef DEBUG_ENCODING + xmlGenericError(xmlGenericErrorContext, + "converted %d bytes to %d bytes of input, %d left\n", + c_in, c_out, (int)xmlBufUse(in)); +#endif + break; + case -3: +#ifdef DEBUG_ENCODING + xmlGenericError(xmlGenericErrorContext, + "converted %d bytes to %d bytes of input, %d left\n", + c_in, c_out, (int)xmlBufUse(in)); +#endif + break; + case -2: { + char buf[50]; + const xmlChar *content = xmlBufContent(in); + + snprintf(&buf[0], 49, "0x%02X 0x%02X 0x%02X 0x%02X", + content[0], content[1], + content[2], content[3]); + buf[49] = 0; + xmlEncodingErr(XML_I18N_CONV_FAILED, + "input conversion failed due to input error, bytes %s\n", + buf); + } + } + /* + * Ignore when input buffer is not on a boundary + */ + if (ret == -3) + ret = 0; + return (c_out? c_out : ret); +} + /** * xmlCharEncInFunc: * @handler: char encoding transformation data structure @@ -2135,6 +2381,235 @@ xmlCharEncInFunc(xmlCharEncodingHandler * handler, xmlBufferPtr out, return (written? written : ret); } +/** + * xmlCharEncOutput: + * @output: a parser output buffer + * @init: is this an initialization call without data + * + * Generic front-end for the encoding handler on parser output + * a first call with @init == 1 has to be made first to initiate the + * output in case of non-stateless encoding needing to initiate their + * state or the output (like the BOM in UTF16). + * In case of UTF8 sequence conversion errors for the given encoder, + * the content will be automatically remapped to a CharRef sequence. + * + * Returns the number of byte written if success, or + * -1 general error + * -2 if the transcoding fails (for *in is not valid utf8 string or + * the result of transformation can't fit into the encoding we want), or + */ +int +xmlCharEncOutput(xmlOutputBufferPtr output, int init) +{ + int ret = -2; + size_t written; + size_t writtentot = 0; + size_t toconv; + int c_in; + int c_out; + xmlBufPtr in; + xmlBufPtr out; + int charref_len = 0; + + if ((output == NULL) || (output->encoder == NULL) || + (output->buffer == NULL) || (output->conv == NULL)) + return (-1); + out = output->conv; + in = output->buffer; + +retry: + + written = xmlBufAvail(out); + if (written > 0) + written--; /* count '\0' */ + + /* + * First specific handling of the initialization call + */ + if (init) { + c_in = 0; + c_out = written; + if (output->encoder->output != NULL) { + ret = output->encoder->output(xmlBufEnd(out), &c_out, + NULL, &c_in); + if (ret > 0) /* Gennady: check return value */ + xmlBufAddLen(out, c_out); + } +#ifdef LIBXML_ICONV_ENABLED + else if (output->encoder->iconv_out != NULL) { + ret = xmlIconvWrapper(output->encoder->iconv_out, xmlBufEnd(out), + &c_out, NULL, &c_in); + xmlBufAddLen(out, c_out); + } +#endif /* LIBXML_ICONV_ENABLED */ +#ifdef LIBXML_ICU_ENABLED + else if (output->encoder->uconv_out != NULL) { + ret = xmlUconvWrapper(output->encoder->uconv_out, 0, xmlBufEnd(out), + &c_out, NULL, &c_in); + xmlBufAddLen(out, c_out); + } +#endif /* LIBXML_ICU_ENABLED */ +#ifdef DEBUG_ENCODING + xmlGenericError(xmlGenericErrorContext, + "initialized encoder\n"); +#endif + return(0); + } + + /* + * Conversion itself. + */ + toconv = xmlBufUse(in); + if (toconv == 0) + return (0); + if (toconv > 64 * 1024) + toconv = 64 * 1024; + if (toconv * 4 >= written) { + xmlBufGrow(out, toconv * 4); + written = xmlBufAvail(out) - 1; + } + if (written > 256 * 1024) + written = 256 * 1024; + + c_in = toconv; + c_out = written; + if (output->encoder->output != NULL) { + ret = output->encoder->output(xmlBufEnd(out), &c_out, + xmlBufContent(in), &c_in); + if (c_out > 0) { + xmlBufShrink(in, c_in); + xmlBufAddLen(out, c_out); + writtentot += c_out; + } + } +#ifdef LIBXML_ICONV_ENABLED + else if (output->encoder->iconv_out != NULL) { + ret = xmlIconvWrapper(output->encoder->iconv_out, xmlBufEnd(out), + &c_out, xmlBufContent(in), &c_in); + xmlBufShrink(in, c_in); + xmlBufAddLen(out, c_out); + writtentot += c_out; + if (ret == -1) { + if (c_out > 0) { + /* + * Can be a limitation of iconv + */ + charref_len = 0; + goto retry; + } + ret = -3; + } + } +#endif /* LIBXML_ICONV_ENABLED */ +#ifdef LIBXML_ICU_ENABLED + else if (output->encoder->uconv_out != NULL) { + ret = xmlUconvWrapper(output->encoder->uconv_out, 0, xmlBufEnd(out), + &c_out, xmlBufContent(in), &c_in); + xmlBufShrink(in, c_in); + xmlBufAddLen(out, c_out); + writtentot += c_out; + if (ret == -1) { + if (c_out > 0) { + /* + * Can be a limitation of uconv + */ + charref_len = 0; + goto retry; + } + ret = -3; + } + } +#endif /* LIBXML_ICU_ENABLED */ + else { + xmlEncodingErr(XML_I18N_NO_OUTPUT, + "xmlCharEncOutFunc: no output function !\n", NULL); + return(-1); + } + + if (ret >= 0) output += ret; + + /* + * Attempt to handle error cases + */ + switch (ret) { + case 0: +#ifdef DEBUG_ENCODING + xmlGenericError(xmlGenericErrorContext, + "converted %d bytes to %d bytes of output\n", + c_in, c_out); +#endif + break; + case -1: +#ifdef DEBUG_ENCODING + xmlGenericError(xmlGenericErrorContext, + "output conversion failed by lack of space\n"); +#endif + break; + case -3: +#ifdef DEBUG_ENCODING + xmlGenericError(xmlGenericErrorContext,"converted %d bytes to %d bytes of output %d left\n", + c_in, c_out, (int) xmlBufUse(in)); +#endif + break; + case -2: { + int len = (int) xmlBufUse(in); + xmlChar *content = xmlBufContent(in); + int cur; + + cur = xmlGetUTF8Char(content, &len); + if ((charref_len != 0) && (c_out < charref_len)) { + /* + * We attempted to insert a character reference and failed. + * Undo what was written and skip the remaining charref. + */ + xmlBufErase(out, c_out); + writtentot -= c_out; + xmlBufShrink(in, charref_len - c_out); + charref_len = 0; + + ret = -1; + break; + } else if (cur > 0) { + xmlChar charref[20]; + +#ifdef DEBUG_ENCODING + xmlGenericError(xmlGenericErrorContext, + "handling output conversion error\n"); + xmlGenericError(xmlGenericErrorContext, + "Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n", + content[0], content[1], + content[2], content[3]); +#endif + /* + * Removes the UTF8 sequence, and replace it by a charref + * and continue the transcoding phase, hoping the error + * did not mangle the encoder state. + */ + charref_len = snprintf((char *) &charref[0], sizeof(charref), + "&#%d;", cur); + xmlBufShrink(in, len); + xmlBufAddHead(in, charref, -1); + + goto retry; + } else { + char buf[50]; + + snprintf(&buf[0], 49, "0x%02X 0x%02X 0x%02X 0x%02X", + content[0], content[1], + content[2], content[3]); + buf[49] = 0; + xmlEncodingErr(XML_I18N_CONV_FAILED, + "output conversion failed due to conv error, bytes %s\n", + buf); + if (xmlBufGetAllocationScheme(in) != XML_BUFFER_ALLOC_IMMUTABLE) + content[0] = ' '; + } + break; + } + } + return(ret); +} + /** * xmlCharEncOutFunc: * @handler: char enconding transformation data structure @@ -2198,7 +2673,7 @@ retry: else if (handler->uconv_out != NULL) { ret = xmlUconvWrapper(handler->uconv_out, 0, &out->content[out->use], - &written, NULL, &toconv); + &written, NULL, &toconv); out->use += written; out->content[out->use] = 0; } @@ -2619,7 +3094,7 @@ UTF8ToISO8859x(unsigned char* out, int *outlen, c2 = c2 & 0x3F; d = d & 0x0F; d = xlattable [48 + c2 + xlattable [48 + c1 + - xlattable [32 + d] * 64] * 64]; + xlattable [32 + d] * 64] * 64]; if (d == 0) { /* not in character set */ *outlen = out - outstart; diff --git a/entities.c b/entities.c index 6aef49f..5e786a1 100644 --- a/entities.c +++ b/entities.c @@ -22,41 +22,43 @@ #include #include +#include "save.h" + /* * The XML predefined entities. */ static xmlEntity xmlEntityLt = { NULL, XML_ENTITY_DECL, BAD_CAST "lt", - NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, BAD_CAST "<", BAD_CAST "<", 1, XML_INTERNAL_PREDEFINED_ENTITY, NULL, NULL, NULL, NULL, 0, 1 }; static xmlEntity xmlEntityGt = { NULL, XML_ENTITY_DECL, BAD_CAST "gt", - NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, BAD_CAST ">", BAD_CAST ">", 1, XML_INTERNAL_PREDEFINED_ENTITY, NULL, NULL, NULL, NULL, 0, 1 }; static xmlEntity xmlEntityAmp = { NULL, XML_ENTITY_DECL, BAD_CAST "amp", - NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, BAD_CAST "&", BAD_CAST "&", 1, XML_INTERNAL_PREDEFINED_ENTITY, NULL, NULL, NULL, NULL, 0, 1 }; static xmlEntity xmlEntityQuot = { NULL, XML_ENTITY_DECL, BAD_CAST "quot", - NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, BAD_CAST "\"", BAD_CAST "\"", 1, XML_INTERNAL_PREDEFINED_ENTITY, NULL, NULL, NULL, NULL, 0, 1 }; static xmlEntity xmlEntityApos = { NULL, XML_ENTITY_DECL, BAD_CAST "apos", - NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, BAD_CAST "'", BAD_CAST "'", 1, XML_INTERNAL_PREDEFINED_ENTITY, NULL, NULL, NULL, NULL, 0, 1 @@ -426,7 +428,7 @@ xmlNewEntity(xmlDocPtr doc, const xmlChar *name, int type, * * Do an entity lookup in the table. * returns the corresponding parameter entity, if found. - * + * * Returns A pointer to the entity structure or NULL if not found. */ static xmlEntityPtr @@ -441,7 +443,7 @@ xmlGetEntityFromTable(xmlEntitiesTablePtr table, const xmlChar *name) { * * Do an entity lookup in the internal and external subsets and * returns the corresponding parameter entity, if found. - * + * * Returns A pointer to the entity structure or NULL if not found. */ xmlEntityPtr @@ -472,7 +474,7 @@ xmlGetParameterEntity(xmlDocPtr doc, const xmlChar *name) { * Do an entity lookup in the DTD entity hash table and * returns the corresponding entity, if found. * Note: the first argument is the document node, not the DTD node. - * + * * Returns A pointer to the entity structure or NULL if not found. */ xmlEntityPtr @@ -496,7 +498,7 @@ xmlGetDtdEntity(xmlDocPtr doc, const xmlChar *name) { * Do an entity lookup in the document entity hash table and * returns the corresponding entity, otherwise a lookup is done * in the predefined entities too. - * + * * Returns A pointer to the entity structure or NULL if not found. */ xmlEntityPtr @@ -528,20 +530,20 @@ xmlGetDocEntity(xmlDocPtr doc, const xmlChar *name) { * Macro used to grow the current buffer. */ #define growBufferReentrant() { \ - buffer_size *= 2; \ - buffer = (xmlChar *) \ - xmlRealloc(buffer, buffer_size * sizeof(xmlChar)); \ - if (buffer == NULL) { \ - xmlEntitiesErrMemory("xmlEncodeEntitiesReentrant: realloc failed");\ - return(NULL); \ - } \ + xmlChar *tmp; \ + size_t new_size = buffer_size * 2; \ + if (new_size < buffer_size) goto mem_error; \ + tmp = (xmlChar *) xmlRealloc(buffer, new_size); \ + if (tmp == NULL) goto mem_error; \ + buffer = tmp; \ + buffer_size = new_size; \ } - /** - * xmlEncodeEntitiesReentrant: + * xmlEncodeEntitiesInternal: * @doc: the document containing the string * @input: A string to convert to XML. + * @attr: are we handling an atrbute value * * Do a global encoding of a string, replacing the predefined entities * and non ASCII values with their entities and CharRef counterparts. @@ -550,12 +552,12 @@ xmlGetDocEntity(xmlDocPtr doc, const xmlChar *name) { * * Returns A newly allocated string with the substitution done. */ -xmlChar * -xmlEncodeEntitiesReentrant(xmlDocPtr doc, const xmlChar *input) { +static xmlChar * +xmlEncodeEntitiesInternal(xmlDocPtr doc, const xmlChar *input, int attr) { const xmlChar *cur = input; xmlChar *buffer = NULL; xmlChar *out = NULL; - int buffer_size = 0; + size_t buffer_size = 0; int html = 0; if (input == NULL) return(NULL); @@ -568,14 +570,14 @@ xmlEncodeEntitiesReentrant(xmlDocPtr doc, const xmlChar *input) { buffer_size = 1000; buffer = (xmlChar *) xmlMalloc(buffer_size * sizeof(xmlChar)); if (buffer == NULL) { - xmlEntitiesErrMemory("xmlEncodeEntitiesReentrant: malloc failed"); + xmlEntitiesErrMemory("xmlEncodeEntities: malloc failed"); return(NULL); } out = buffer; while (*cur != '\0') { - if (out - buffer > buffer_size - 100) { - int indx = out - buffer; + size_t indx = out - buffer; + if (indx + 100 > buffer_size) { growBufferReentrant(); out = &buffer[indx]; @@ -585,6 +587,27 @@ xmlEncodeEntitiesReentrant(xmlDocPtr doc, const xmlChar *input) { * By default one have to encode at least '<', '>', '"' and '&' ! */ if (*cur == '<') { + const xmlChar *end; + + /* + * Special handling of server side include in HTML attributes + */ + if (html && attr && + (cur[1] == '!') && (cur[2] == '-') && (cur[3] == '-') && + ((end = xmlStrstr(cur, BAD_CAST "-->")) != NULL)) { + while (cur != end) { + *out++ = *cur++; + indx = out - buffer; + if (indx + 100 > buffer_size) { + growBufferReentrant(); + out = &buffer[indx]; + } + } + *out++ = *cur++; + *out++ = *cur++; + *out++ = *cur++; + continue; + } *out++ = '&'; *out++ = 'l'; *out++ = 't'; @@ -595,6 +618,23 @@ xmlEncodeEntitiesReentrant(xmlDocPtr doc, const xmlChar *input) { *out++ = 't'; *out++ = ';'; } else if (*cur == '&') { + /* + * Special handling of &{...} construct from HTML 4, see + * http://www.w3.org/TR/html401/appendix/notes.html#h-B.7.1 + */ + if (html && attr && (cur[1] == '{') && + (strchr((const char *) cur, '}'))) { + while (*cur != '}') { + *out++ = *cur++; + indx = out - buffer; + if (indx + 100 > buffer_size) { + growBufferReentrant(); + out = &buffer[indx]; + } + } + *out++ = *cur++; + continue; + } *out++ = '&'; *out++ = 'a'; *out++ = 'm'; @@ -627,7 +667,7 @@ xmlEncodeEntitiesReentrant(xmlDocPtr doc, const xmlChar *input) { if (*cur < 0xC0) { xmlEntitiesErr(XML_CHECK_NOT_UTF8, - "xmlEncodeEntitiesReentrant : input not UTF-8"); + "xmlEncodeEntities: input not UTF-8"); if (doc != NULL) doc->encoding = xmlStrdup(BAD_CAST "ISO-8859-1"); snprintf(buf, sizeof(buf), "&#%d;", *cur); @@ -660,7 +700,7 @@ xmlEncodeEntitiesReentrant(xmlDocPtr doc, const xmlChar *input) { } if ((l == 1) || (!IS_CHAR(val))) { xmlEntitiesErr(XML_ERR_INVALID_CHAR, - "xmlEncodeEntitiesReentrant : char out of range\n"); + "xmlEncodeEntities: char out of range\n"); if (doc != NULL) doc->encoding = xmlStrdup(BAD_CAST "ISO-8859-1"); snprintf(buf, sizeof(buf), "&#%d;", *cur); @@ -692,6 +732,44 @@ xmlEncodeEntitiesReentrant(xmlDocPtr doc, const xmlChar *input) { } *out = 0; return(buffer); + +mem_error: + xmlEntitiesErrMemory("xmlEncodeEntities: realloc failed"); + xmlFree(buffer); + return(NULL); +} + +/** + * xmlEncodeAttributeEntities: + * @doc: the document containing the string + * @input: A string to convert to XML. + * + * Do a global encoding of a string, replacing the predefined entities + * and non ASCII values with their entities and CharRef counterparts for + * attribute values. + * + * Returns A newly allocated string with the substitution done. + */ +xmlChar * +xmlEncodeAttributeEntities(xmlDocPtr doc, const xmlChar *input) { + return xmlEncodeEntitiesInternal(doc, input, 1); +} + +/** + * xmlEncodeEntitiesReentrant: + * @doc: the document containing the string + * @input: A string to convert to XML. + * + * Do a global encoding of a string, replacing the predefined entities + * and non ASCII values with their entities and CharRef counterparts. + * Contrary to xmlEncodeEntities, this routine is reentrant, and result + * must be deallocated. + * + * Returns A newly allocated string with the substitution done. + */ +xmlChar * +xmlEncodeEntitiesReentrant(xmlDocPtr doc, const xmlChar *input) { + return xmlEncodeEntitiesInternal(doc, input, 0); } /** @@ -709,7 +787,7 @@ xmlEncodeSpecialChars(xmlDocPtr doc ATTRIBUTE_UNUSED, const xmlChar *input) { const xmlChar *cur = input; xmlChar *buffer = NULL; xmlChar *out = NULL; - int buffer_size = 0; + size_t buffer_size = 0; if (input == NULL) return(NULL); /* @@ -724,8 +802,8 @@ xmlEncodeSpecialChars(xmlDocPtr doc ATTRIBUTE_UNUSED, const xmlChar *input) { out = buffer; while (*cur != '\0') { - if (out - buffer > buffer_size - 10) { - int indx = out - buffer; + size_t indx = out - buffer; + if (indx + 10 > buffer_size) { growBufferReentrant(); out = &buffer[indx]; @@ -774,6 +852,11 @@ xmlEncodeSpecialChars(xmlDocPtr doc ATTRIBUTE_UNUSED, const xmlChar *input) { } *out = 0; return(buffer); + +mem_error: + xmlEntitiesErrMemory("xmlEncodeSpecialChars: realloc failed"); + xmlFree(buffer); + return(NULL); } /** @@ -820,7 +903,7 @@ xmlFreeEntitiesTable(xmlEntitiesTablePtr table) { * @ent: An entity * * Build a copy of an entity - * + * * Returns the new xmlEntitiesPtr or NULL in case of error. */ static xmlEntityPtr @@ -856,7 +939,7 @@ xmlCopyEntity(xmlEntityPtr ent) { * @table: An entity table * * Build a copy of an entity table. - * + * * Returns the new xmlEntitiesTablePtr or NULL in case of error. */ xmlEntitiesTablePtr @@ -1005,7 +1088,7 @@ static void xmlDumpEntityDeclScan(xmlEntityPtr ent, xmlBufferPtr buf) { xmlDumpEntityDecl(buf, ent); } - + /** * xmlDumpEntitiesTable: * @buf: An XML buffer. diff --git a/error.c b/error.c index a891faa..cbcf5c9 100644 --- a/error.c +++ b/error.c @@ -33,7 +33,7 @@ void XMLCDECL xmlGenericErrorDefaultFunc (void *ctx ATTRIBUTE_UNUSED, \ while (size < 64000) { \ va_start(ap, msg); \ - chars = vsnprintf(str, size, msg, ap); \ + chars = vsnprintf(str, size, msg, ap); \ va_end(ap); \ if ((chars > -1) && (chars < size)) { \ if (prev_size == chars) { \ @@ -54,9 +54,9 @@ void XMLCDECL xmlGenericErrorDefaultFunc (void *ctx ATTRIBUTE_UNUSED, } /************************************************************************ - * * - * Handling of out of context errors * - * * + * * + * Handling of out of context errors * + * * ************************************************************************/ /** @@ -64,7 +64,7 @@ void XMLCDECL xmlGenericErrorDefaultFunc (void *ctx ATTRIBUTE_UNUSED, * @ctx: an error context * @msg: the message to display/transmit * @...: extra parameters for the message display - * + * * Default handler for out of context error messages. */ void XMLCDECL @@ -82,7 +82,7 @@ xmlGenericErrorDefaultFunc(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...) { /** * initGenericErrorDefaultFunc: * @handler: the handler - * + * * Set or reset (if NULL) the default handler for generic errors * to the builtin error function. */ @@ -137,15 +137,15 @@ xmlSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler) { } /************************************************************************ - * * - * Handling of parsing errors * - * * + * * + * Handling of parsing errors * + * * ************************************************************************/ /** * xmlParserPrintFileInfo: * @input: an xmlParserInputPtr input - * + * * Displays the associated file and line informations for the current input */ @@ -165,12 +165,12 @@ xmlParserPrintFileInfo(xmlParserInputPtr input) { /** * xmlParserPrintFileContext: * @input: an xmlParserInputPtr input - * + * * Displays current context within the input content for error tracking */ static void -xmlParserPrintFileContextInternal(xmlParserInputPtr input , +xmlParserPrintFileContextInternal(xmlParserInputPtr input , xmlGenericErrorFunc channel, void *data ) { const xmlChar *cur, *base; unsigned int n, col; /* GCC warns if signed, because compared with sizeof() */ @@ -186,8 +186,8 @@ xmlParserPrintFileContextInternal(xmlParserInputPtr input , } n = 0; /* search backwards for beginning-of-line (to max buff size) */ - while ((n++ < (sizeof(content)-1)) && (cur > base) && - (*(cur) != '\n') && (*(cur) != '\r')) + while ((n++ < (sizeof(content)-1)) && (cur > base) && + (*(cur) != '\n') && (*(cur) != '\r')) cur--; if ((*(cur) == '\n') || (*(cur) == '\r')) cur++; /* calculate the error position in terms of the current position */ @@ -196,8 +196,8 @@ xmlParserPrintFileContextInternal(xmlParserInputPtr input , n = 0; ctnt = content; /* copy selected text to our buffer */ - while ((*cur != 0) && (*(cur) != '\n') && - (*(cur) != '\r') && (n < sizeof(content)-1)) { + while ((*cur != 0) && (*(cur) != '\n') && + (*(cur) != '\r') && (n < sizeof(content)-1)) { *ctnt++ = *cur++; n++; } @@ -221,7 +221,7 @@ xmlParserPrintFileContextInternal(xmlParserInputPtr input , /** * xmlParserPrintFileContext: * @input: an xmlParserInputPtr input - * + * * Displays current context within the input content for error tracking */ void @@ -292,7 +292,10 @@ xmlReportError(xmlErrorPtr err, xmlParserCtxtPtr ctxt, const char *str, } else { if (file != NULL) channel(data, "%s:%d: ", file, line); - else if ((line != 0) && (domain == XML_FROM_PARSER)) + else if ((line != 0) && + ((domain == XML_FROM_PARSER) || (domain == XML_FROM_SCHEMASV)|| + (domain == XML_FROM_SCHEMASP)||(domain == XML_FROM_DTD) || + (domain == XML_FROM_RELAXNGP)||(domain == XML_FROM_RELAXNGV))) channel(data, "Entity: line %d: ", line); } if (name != NULL) { @@ -360,6 +363,15 @@ xmlReportError(xmlErrorPtr err, xmlParserCtxtPtr ctxt, const char *str, case XML_FROM_I18N: channel(data, "encoding "); break; + case XML_FROM_SCHEMATRONV: + channel(data, "schematron "); + break; + case XML_FROM_BUFFER: + channel(data, "internal buffer "); + break; + case XML_FROM_URI: + channel(data, "URI "); + break; default: break; } @@ -429,7 +441,7 @@ xmlReportError(xmlErrorPtr err, xmlParserCtxtPtr ctxt, const char *str, * @str2: extra string info * @str3: extra string info * @int1: extra int info - * @col: column number of the error or 0 if N/A + * @col: column number of the error or 0 if N/A * @msg: the message to display/transmit * @...: extra parameters for the message display * @@ -521,6 +533,8 @@ __xmlRaiseError(xmlStructuredErrorFunc schannel, if ((node != NULL) && (node->type == XML_ELEMENT_NODE)) line = node->line; + if ((line == 0) || (line == 65535)) + line = xmlGetLineNo(node); } /* @@ -601,8 +615,11 @@ __xmlRaiseError(xmlStructuredErrorFunc schannel, data = ctxt->userData; } else if (channel == NULL) { channel = xmlGenericError; - if (!data) + if (ctxt != NULL) { + data = ctxt; + } else { data = xmlGenericErrorContext; + } } if (channel == NULL) return; @@ -654,7 +671,7 @@ __xmlSimpleError(int domain, int code, xmlNodePtr node, * @ctx: an XML parser context * @msg: the message to display/transmit * @...: extra parameters for the message display - * + * * Display and format an error messages, gives file, line, position and * extra parameters. */ @@ -697,7 +714,7 @@ xmlParserError(void *ctx, const char *msg, ...) * @ctx: an XML parser context * @msg: the message to display/transmit * @...: extra parameters for the message display - * + * * Display and format a warning messages, gives file, line, position and * extra parameters. */ @@ -718,7 +735,7 @@ xmlParserWarning(void *ctx, const char *msg, ...) } xmlParserPrintFileInfo(input); } - + xmlGenericError(xmlGenericErrorContext, "warning: "); XML_GET_VAR_STR(msg, str); xmlGenericError(xmlGenericErrorContext, "%s", str); @@ -736,9 +753,9 @@ xmlParserWarning(void *ctx, const char *msg, ...) } /************************************************************************ - * * - * Handling of validation errors * - * * + * * + * Handling of validation errors * + * * ************************************************************************/ /** @@ -746,7 +763,7 @@ xmlParserWarning(void *ctx, const char *msg, ...) * @ctx: an XML parser context * @msg: the message to display/transmit * @...: extra parameters for the message display - * + * * Display and format an validity error messages, gives file, * line, position and extra parameters. */ @@ -764,7 +781,7 @@ xmlParserValidityError(void *ctx, const char *msg, ...) input = ctxt->input; if ((input->filename == NULL) && (ctxt->inputNr > 1)) input = ctxt->inputTab[ctxt->inputNr - 2]; - + if (had_info == 0) { xmlParserPrintFileInfo(input); } @@ -790,7 +807,7 @@ xmlParserValidityError(void *ctx, const char *msg, ...) * @ctx: an XML parser context * @msg: the message to display/transmit * @...: extra parameters for the message display - * + * * Display and format a validity warning messages, gives file, line, * position and extra parameters. */ @@ -809,7 +826,7 @@ xmlParserValidityWarning(void *ctx, const char *msg, ...) xmlParserPrintFileInfo(input); } - + xmlGenericError(xmlGenericErrorContext, "validity warning: "); XML_GET_VAR_STR(msg, str); xmlGenericError(xmlGenericErrorContext, "%s", str); diff --git a/example/Makefile.am b/example/Makefile.am index 9eb6a76..488ee6e 100644 --- a/example/Makefile.am +++ b/example/Makefile.am @@ -1,10 +1,7 @@ noinst_PROGRAMS = gjobread -INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I@srcdir@/include @THREAD_CFLAGS@ @Z_CFLAGS@ -DEPS = $(top_builddir)/libxml2.la -LDADDS = @STATIC_BINARIES@ $(top_builddir)/libxml2.la @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) -lm @WIN32_EXTRA_LIBADD@ +AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include -I$(srcdir)/include +AM_CFLAGS = $(THREAD_CFLAGS) $(Z_CFLAGS) +LDADD = $(RDL_LIBS) $(STATIC_BINARIES) $(top_builddir)/libxml2.la $(THREAD_LIBS) $(Z_LIBS) $(ICONV_LIBS) -lm $(WIN32_EXTRA_LIBADD) gjobread_SOURCES=gjobread.c -gjobread_LDFLAGS= -gjobread_DEPENDENCIES= $(DEPS) -gjobread_LDADD= @RDL_LIBS@ $(LDADDS) diff --git a/example/Makefile.in b/example/Makefile.in index ad7643f..c29bc80 100644 --- a/example/Makefile.in +++ b/example/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -51,14 +51,15 @@ CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) am_gjobread_OBJECTS = gjobread.$(OBJEXT) gjobread_OBJECTS = $(am_gjobread_OBJECTS) +gjobread_LDADD = $(LDADD) am__DEPENDENCIES_1 = -am__DEPENDENCIES_2 = $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +gjobread_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -gjobread_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(gjobread_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -69,21 +70,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(gjobread_SOURCES) DIST_SOURCES = $(gjobread_SOURCES) @@ -94,7 +95,6 @@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -131,6 +131,7 @@ HTML_DIR = @HTML_DIR@ HTML_OBJ = @HTML_OBJ@ HTTP_OBJ = @HTTP_OBJ@ ICONV_LIBS = @ICONV_LIBS@ +ICU_LIBS = @ICU_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -211,7 +212,6 @@ TEST_VTIME = @TEST_VTIME@ TEST_XINCLUDE = @TEST_XINCLUDE@ TEST_XPATH = @TEST_XPATH@ TEST_XPTR = @TEST_XPTR@ -THREADS_W32 = @THREADS_W32@ THREAD_CFLAGS = @THREAD_CFLAGS@ THREAD_LIBS = @THREAD_LIBS@ VERSION = @VERSION@ @@ -317,13 +317,10 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I@srcdir@/include @THREAD_CFLAGS@ @Z_CFLAGS@ -DEPS = $(top_builddir)/libxml2.la -LDADDS = @STATIC_BINARIES@ $(top_builddir)/libxml2.la @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) -lm @WIN32_EXTRA_LIBADD@ +AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include -I$(srcdir)/include +AM_CFLAGS = $(THREAD_CFLAGS) $(Z_CFLAGS) +LDADD = $(RDL_LIBS) $(STATIC_BINARIES) $(top_builddir)/libxml2.la $(THREAD_LIBS) $(Z_LIBS) $(ICONV_LIBS) -lm $(WIN32_EXTRA_LIBADD) gjobread_SOURCES = gjobread.c -gjobread_LDFLAGS = -gjobread_DEPENDENCIES = $(DEPS) -gjobread_LDADD = @RDL_LIBS@ $(LDADDS) all: all-am .SUFFIXES: @@ -367,9 +364,9 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -gjobread$(EXEEXT): $(gjobread_OBJECTS) $(gjobread_DEPENDENCIES) +gjobread$(EXEEXT): $(gjobread_OBJECTS) $(gjobread_DEPENDENCIES) $(EXTRA_gjobread_DEPENDENCIES) @rm -f gjobread$(EXEEXT) - $(AM_V_CCLD)$(gjobread_LINK) $(gjobread_OBJECTS) $(gjobread_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(gjobread_OBJECTS) $(gjobread_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -382,26 +379,23 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -505,10 +499,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/globals.c b/globals.c index 69002f0..e351b03 100644 --- a/globals.c +++ b/globals.c @@ -65,9 +65,9 @@ void xmlCleanupGlobals(void) } /************************************************************************ - * * + * * * All the user accessible global variables of the library * - * * + * * ************************************************************************/ /* @@ -246,7 +246,7 @@ static int xmlPedanticParserDefaultValueThrDef = 0; * xmlLineNumbersDefaultValue: * * Global setting, indicate that the parser should store the line number - * in the content field of elements in the DOM tree. + * in the content field of elements in the DOM tree. * Disabled by default since this may not be safe for old classes of * applicaton. */ @@ -509,7 +509,7 @@ xmlInitializeGlobalState(xmlGlobalStatePtr gs) #if defined(LIBXML_DOCB_ENABLED) && defined(LIBXML_LEGACY_ENABLED) && defined(LIBXML_SAX1_ENABLED) initdocbDefaultSAXHandler(&gs->docbDefaultSAXHandler); #endif -#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_LEGACY_ENABLED) +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_LEGACY_ENABLED) && defined(LIBXML_SAX1_ENABLED) inithtmlDefaultSAXHandler(&gs->htmlDefaultSAXHandler); #endif @@ -523,7 +523,7 @@ xmlInitializeGlobalState(xmlGlobalStatePtr gs) gs->xmlDefaultSAXLocator.getSystemId = xmlSAX2GetSystemId; gs->xmlDefaultSAXLocator.getLineNumber = xmlSAX2GetLineNumber; gs->xmlDefaultSAXLocator.getColumnNumber = xmlSAX2GetColumnNumber; - gs->xmlDoValidityCheckingDefaultValue = + gs->xmlDoValidityCheckingDefaultValue = xmlDoValidityCheckingDefaultValueThrDef; #if defined(DEBUG_MEMORY_LOCATION) | defined(DEBUG_MEMORY) gs->xmlFree = (xmlFreeFunc) xmlMemFree; @@ -548,7 +548,7 @@ xmlInitializeGlobalState(xmlGlobalStatePtr gs) gs->xmlParserVersion = LIBXML_VERSION_STRING; gs->xmlPedanticParserDefaultValue = xmlPedanticParserDefaultValueThrDef; gs->xmlSaveNoEmptyTags = xmlSaveNoEmptyTagsThrDef; - gs->xmlSubstituteEntitiesDefaultValue = + gs->xmlSubstituteEntitiesDefaultValue = xmlSubstituteEntitiesDefaultValueThrDef; gs->xmlGenericError = xmlGenericErrorThrDef; @@ -600,7 +600,7 @@ xmlRegisterNodeFunc xmlRegisterNodeDefault(xmlRegisterNodeFunc func) { xmlRegisterNodeFunc old = xmlRegisterNodeDefaultValue; - + __xmlRegisterCallbacks = 1; xmlRegisterNodeDefaultValue = func; return(old); @@ -610,10 +610,10 @@ xmlRegisterNodeFunc xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func) { xmlRegisterNodeFunc old; - + xmlMutexLock(xmlThrDefMutex); old = xmlRegisterNodeDefaultValueThrDef; - + __xmlRegisterCallbacks = 1; xmlRegisterNodeDefaultValueThrDef = func; xmlMutexUnlock(xmlThrDefMutex); @@ -633,7 +633,7 @@ xmlDeregisterNodeFunc xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func) { xmlDeregisterNodeFunc old = xmlDeregisterNodeDefaultValue; - + __xmlRegisterCallbacks = 1; xmlDeregisterNodeDefaultValue = func; return(old); @@ -646,7 +646,7 @@ xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func) xmlMutexLock(xmlThrDefMutex); old = xmlDeregisterNodeDefaultValueThrDef; - + __xmlRegisterCallbacks = 1; xmlDeregisterNodeDefaultValueThrDef = func; xmlMutexUnlock(xmlThrDefMutex); @@ -658,7 +658,7 @@ xmlParserInputBufferCreateFilenameFunc xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func) { xmlParserInputBufferCreateFilenameFunc old; - + xmlMutexLock(xmlThrDefMutex); old = xmlParserInputBufferCreateFilenameValueThrDef; if (old == NULL) { @@ -675,7 +675,7 @@ xmlOutputBufferCreateFilenameFunc xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func) { xmlOutputBufferCreateFilenameFunc old; - + xmlMutexLock(xmlThrDefMutex); old = xmlOutputBufferCreateFilenameValueThrDef; #ifdef LIBXML_OUTPUT_ENABLED @@ -732,7 +732,7 @@ __xmlMalloc(void){ if (IS_MAIN_THREAD) return (&xmlMalloc); else - return (&xmlGetGlobalState()->xmlMalloc); + return (&xmlGetGlobalState()->xmlMalloc); } #undef xmlMallocAtomic diff --git a/hash.c b/hash.c index 15e1efe..afabcb1 100644 --- a/hash.c +++ b/hash.c @@ -83,7 +83,7 @@ xmlHashComputeKey(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3) { unsigned long value = 0L; char ch; - + #ifdef HASH_RANDOMIZATION value = table->random_seed; #endif @@ -113,7 +113,7 @@ xmlHashComputeQKey(xmlHashTablePtr table, const xmlChar *prefix3, const xmlChar *name3) { unsigned long value = 0L; char ch; - + #ifdef HASH_RANDOMIZATION value = table->random_seed; #endif @@ -169,10 +169,10 @@ xmlHashComputeQKey(xmlHashTablePtr table, xmlHashTablePtr xmlHashCreate(int size) { xmlHashTablePtr table; - + if (size <= 0) size = 256; - + table = xmlMalloc(sizeof(xmlHashTable)); if (table) { table->dict = NULL; @@ -180,11 +180,11 @@ xmlHashCreate(int size) { table->nbElems = 0; table->table = xmlMalloc(size * sizeof(xmlHashEntry)); if (table->table) { - memset(table->table, 0, size * sizeof(xmlHashEntry)); + memset(table->table, 0, size * sizeof(xmlHashEntry)); #ifdef HASH_RANDOMIZATION table->random_seed = __xmlRandom(); #endif - return(table); + return(table); } xmlFree(table); } @@ -230,7 +230,7 @@ xmlHashGrow(xmlHashTablePtr table, int size) { #ifdef DEBUG_GROW unsigned long nbElem = 0; #endif - + if (table == NULL) return(-1); if (size < 8) @@ -242,7 +242,7 @@ xmlHashGrow(xmlHashTablePtr table, int size) { oldtable = table->table; if (oldtable == NULL) return(-1); - + table->table = xmlMalloc(size * sizeof(xmlHashEntry)); if (table->table == NULL) { table->table = oldtable; @@ -252,13 +252,13 @@ xmlHashGrow(xmlHashTablePtr table, int size) { table->size = size; /* If the two loops are merged, there would be situations where - a new entry needs to allocated and data copied into it from + a new entry needs to allocated and data copied into it from the main table. So instead, we run through the array twice, first copying all the elements in the main array (where we can't get conflicts) and then the rest, so we only free (and don't allocate) */ for (i = 0; i < oldsize; i++) { - if (oldtable[i].valid == 0) + if (oldtable[i].valid == 0) continue; key = xmlHashComputeKey(table, oldtable[i].name, oldtable[i].name2, oldtable[i].name3); @@ -282,8 +282,8 @@ xmlHashGrow(xmlHashTablePtr table, int size) { table->table[key].next = NULL; xmlFree(iter); } else { - iter->next = table->table[key].next; - table->table[key].next = iter; + iter->next = table->table[key].next; + table->table[key].next = iter; } #ifdef DEBUG_GROW @@ -599,7 +599,7 @@ xmlHashAddEntry3(xmlHashTablePtr table, const xmlChar *name, entry->valid = 1; - if (insert != NULL) + if (insert != NULL) insert->next = entry; table->nbElems++; @@ -748,7 +748,7 @@ xmlHashUpdateEntry3(xmlHashTablePtr table, const xmlChar *name, * Returns the a pointer to the userdata */ void * -xmlHashLookup3(xmlHashTablePtr table, const xmlChar *name, +xmlHashLookup3(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3) { unsigned long key; xmlHashEntryPtr entry; @@ -821,14 +821,14 @@ typedef struct { void *data; } stubData; -static void -stubHashScannerFull (void *payload, void *data, const xmlChar *name, +static void +stubHashScannerFull (void *payload, void *data, const xmlChar *name, const xmlChar *name2 ATTRIBUTE_UNUSED, const xmlChar *name3 ATTRIBUTE_UNUSED) { stubData *stubdata = (stubData *) data; stubdata->hashscanner (payload, stubdata->data, (xmlChar *) name); -} - +} + /** * xmlHashScan: * @table: the hash table @@ -841,7 +841,7 @@ void xmlHashScan(xmlHashTablePtr table, xmlHashScanner f, void *data) { stubData stubdata; stubdata.data = data; - stubdata.hashscanner = f; + stubdata.hashscanner = f; xmlHashScanFull (table, stubHashScannerFull, &stubdata); } @@ -866,7 +866,7 @@ xmlHashScanFull(xmlHashTablePtr table, xmlHashScannerFull f, void *data) { if (table->table) { for(i = 0; i < table->size; i++) { - if (table->table[i].valid == 0) + if (table->table[i].valid == 0) continue; iter = &(table->table[i]); while (iter) { @@ -905,7 +905,7 @@ xmlHashScanFull(xmlHashTablePtr table, xmlHashScannerFull f, void *data) { * the comparison is considered to match. */ void -xmlHashScan3(xmlHashTablePtr table, const xmlChar *name, +xmlHashScan3(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3, xmlHashScanner f, void *data) { xmlHashScanFull3 (table, name, name2, name3, @@ -926,7 +926,7 @@ xmlHashScan3(xmlHashTablePtr table, const xmlChar *name, * the comparison is considered to match. */ void -xmlHashScanFull3(xmlHashTablePtr table, const xmlChar *name, +xmlHashScanFull3(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3, xmlHashScannerFull f, void *data) { int i; diff --git a/include/Makefile.in b/include/Makefile.in index 18ab34d..a4bf492 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -46,11 +46,11 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -99,7 +99,6 @@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -136,6 +135,7 @@ HTML_DIR = @HTML_DIR@ HTML_OBJ = @HTML_OBJ@ HTTP_OBJ = @HTTP_OBJ@ ICONV_LIBS = @ICONV_LIBS@ +ICU_LIBS = @ICU_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -216,7 +216,6 @@ TEST_VTIME = @TEST_VTIME@ TEST_XINCLUDE = @TEST_XINCLUDE@ TEST_XPATH = @TEST_XPATH@ TEST_XPTR = @TEST_XPTR@ -THREADS_W32 = @THREADS_W32@ THREAD_CFLAGS = @THREAD_CFLAGS@ THREAD_LIBS = @THREAD_LIBS@ VERSION = @VERSION@ @@ -572,10 +571,15 @@ install-am: all-am installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/include/libxml/DOCBparser.h b/include/libxml/DOCBparser.h index 461d4ee..9394fa7 100644 --- a/include/libxml/DOCBparser.h +++ b/include/libxml/DOCBparser.h @@ -47,44 +47,44 @@ XMLPUBFUN int XMLCALL const unsigned char *in, int *inlen, int quoteChar); -XMLPUBFUN docbDocPtr XMLCALL +XMLPUBFUN docbDocPtr XMLCALL docbSAXParseDoc (xmlChar *cur, const char *encoding, docbSAXHandlerPtr sax, void *userData); -XMLPUBFUN docbDocPtr XMLCALL +XMLPUBFUN docbDocPtr XMLCALL docbParseDoc (xmlChar *cur, const char *encoding); -XMLPUBFUN docbDocPtr XMLCALL +XMLPUBFUN docbDocPtr XMLCALL docbSAXParseFile (const char *filename, const char *encoding, docbSAXHandlerPtr sax, void *userData); -XMLPUBFUN docbDocPtr XMLCALL +XMLPUBFUN docbDocPtr XMLCALL docbParseFile (const char *filename, const char *encoding); /** * Interfaces for the Push mode. */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL docbFreeParserCtxt (docbParserCtxtPtr ctxt); -XMLPUBFUN docbParserCtxtPtr XMLCALL +XMLPUBFUN docbParserCtxtPtr XMLCALL docbCreatePushParserCtxt(docbSAXHandlerPtr sax, void *user_data, const char *chunk, int size, const char *filename, xmlCharEncoding enc); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL docbParseChunk (docbParserCtxtPtr ctxt, const char *chunk, int size, int terminate); -XMLPUBFUN docbParserCtxtPtr XMLCALL +XMLPUBFUN docbParserCtxtPtr XMLCALL docbCreateFileParserCtxt(const char *filename, const char *encoding); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL docbParseDocument (docbParserCtxtPtr ctxt); #ifdef __cplusplus diff --git a/include/libxml/HTMLparser.h b/include/libxml/HTMLparser.h index 10a3d65..551186c 100644 --- a/include/libxml/HTMLparser.h +++ b/include/libxml/HTMLparser.h @@ -83,87 +83,87 @@ struct _htmlEntityDesc { /* * There is only few public functions. */ -XMLPUBFUN const htmlElemDesc * XMLCALL +XMLPUBFUN const htmlElemDesc * XMLCALL htmlTagLookup (const xmlChar *tag); -XMLPUBFUN const htmlEntityDesc * XMLCALL +XMLPUBFUN const htmlEntityDesc * XMLCALL htmlEntityLookup(const xmlChar *name); -XMLPUBFUN const htmlEntityDesc * XMLCALL +XMLPUBFUN const htmlEntityDesc * XMLCALL htmlEntityValueLookup(unsigned int value); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL htmlIsAutoClosed(htmlDocPtr doc, htmlNodePtr elem); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL htmlAutoCloseTag(htmlDocPtr doc, const xmlChar *name, htmlNodePtr elem); -XMLPUBFUN const htmlEntityDesc * XMLCALL +XMLPUBFUN const htmlEntityDesc * XMLCALL htmlParseEntityRef(htmlParserCtxtPtr ctxt, const xmlChar **str); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL htmlParseCharRef(htmlParserCtxtPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL htmlParseElement(htmlParserCtxtPtr ctxt); -XMLPUBFUN htmlParserCtxtPtr XMLCALL +XMLPUBFUN htmlParserCtxtPtr XMLCALL htmlNewParserCtxt(void); -XMLPUBFUN htmlParserCtxtPtr XMLCALL +XMLPUBFUN htmlParserCtxtPtr XMLCALL htmlCreateMemoryParserCtxt(const char *buffer, int size); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL htmlParseDocument(htmlParserCtxtPtr ctxt); -XMLPUBFUN htmlDocPtr XMLCALL +XMLPUBFUN htmlDocPtr XMLCALL htmlSAXParseDoc (xmlChar *cur, const char *encoding, htmlSAXHandlerPtr sax, void *userData); -XMLPUBFUN htmlDocPtr XMLCALL +XMLPUBFUN htmlDocPtr XMLCALL htmlParseDoc (xmlChar *cur, const char *encoding); -XMLPUBFUN htmlDocPtr XMLCALL +XMLPUBFUN htmlDocPtr XMLCALL htmlSAXParseFile(const char *filename, const char *encoding, htmlSAXHandlerPtr sax, void *userData); -XMLPUBFUN htmlDocPtr XMLCALL +XMLPUBFUN htmlDocPtr XMLCALL htmlParseFile (const char *filename, const char *encoding); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL UTF8ToHtml (unsigned char *out, int *outlen, const unsigned char *in, int *inlen); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL htmlEncodeEntities(unsigned char *out, int *outlen, const unsigned char *in, int *inlen, int quoteChar); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL htmlIsScriptAttribute(const xmlChar *name); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL htmlHandleOmittedElem(int val); #ifdef LIBXML_PUSH_ENABLED /** * Interfaces for the Push mode. */ -XMLPUBFUN htmlParserCtxtPtr XMLCALL +XMLPUBFUN htmlParserCtxtPtr XMLCALL htmlCreatePushParserCtxt(htmlSAXHandlerPtr sax, void *user_data, const char *chunk, int size, const char *filename, xmlCharEncoding enc); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL htmlParseChunk (htmlParserCtxtPtr ctxt, const char *chunk, int size, int terminate); #endif /* LIBXML_PUSH_ENABLED */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL htmlFreeParserCtxt (htmlParserCtxtPtr ctxt); /* diff --git a/include/libxml/HTMLtree.h b/include/libxml/HTMLtree.h index 6ea8207..c0e1103 100644 --- a/include/libxml/HTMLtree.h +++ b/include/libxml/HTMLtree.h @@ -62,78 +62,78 @@ extern "C" { XMLPUBFUN htmlDocPtr XMLCALL htmlNewDoc (const xmlChar *URI, const xmlChar *ExternalID); -XMLPUBFUN htmlDocPtr XMLCALL +XMLPUBFUN htmlDocPtr XMLCALL htmlNewDocNoDtD (const xmlChar *URI, const xmlChar *ExternalID); -XMLPUBFUN const xmlChar * XMLCALL +XMLPUBFUN const xmlChar * XMLCALL htmlGetMetaEncoding (htmlDocPtr doc); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL htmlSetMetaEncoding (htmlDocPtr doc, const xmlChar *encoding); #ifdef LIBXML_OUTPUT_ENABLED -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL htmlDocDumpMemory (xmlDocPtr cur, xmlChar **mem, int *size); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL htmlDocDumpMemoryFormat (xmlDocPtr cur, xmlChar **mem, int *size, int format); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL htmlDocDump (FILE *f, xmlDocPtr cur); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL htmlSaveFile (const char *filename, xmlDocPtr cur); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL htmlNodeDump (xmlBufferPtr buf, xmlDocPtr doc, xmlNodePtr cur); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL htmlNodeDumpFile (FILE *out, xmlDocPtr doc, xmlNodePtr cur); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL htmlNodeDumpFileFormat (FILE *out, xmlDocPtr doc, xmlNodePtr cur, const char *encoding, int format); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL htmlSaveFileEnc (const char *filename, xmlDocPtr cur, const char *encoding); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL htmlSaveFileFormat (const char *filename, xmlDocPtr cur, const char *encoding, int format); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc, xmlNodePtr cur, const char *encoding, int format); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL htmlDocContentDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr cur, const char *encoding); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL htmlDocContentDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr cur, const char *encoding, int format); -XMLPUBFUN void XMLCALL - htmlNodeDumpOutput (xmlOutputBufferPtr buf, +XMLPUBFUN void XMLCALL + htmlNodeDumpOutput (xmlOutputBufferPtr buf, xmlDocPtr doc, - xmlNodePtr cur, + xmlNodePtr cur, const char *encoding); #endif /* LIBXML_OUTPUT_ENABLED */ -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL htmlIsBooleanAttr (const xmlChar *name); diff --git a/include/libxml/Makefile.in b/include/libxml/Makefile.in index a45d8ca..2c56fd4 100644 --- a/include/libxml/Makefile.in +++ b/include/libxml/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -48,11 +48,11 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = xmlversion.h CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -77,6 +77,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(xmlincdir)" HEADERS = $(xmlinc_HEADERS) ETAGS = etags @@ -86,7 +92,6 @@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -123,6 +128,7 @@ HTML_DIR = @HTML_DIR@ HTML_OBJ = @HTML_OBJ@ HTTP_OBJ = @HTTP_OBJ@ ICONV_LIBS = @ICONV_LIBS@ +ICU_LIBS = @ICU_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -203,7 +209,6 @@ TEST_VTIME = @TEST_VTIME@ TEST_XINCLUDE = @TEST_XINCLUDE@ TEST_XPATH = @TEST_XPATH@ TEST_XPTR = @TEST_XPTR@ -THREADS_W32 = @THREADS_W32@ THREAD_CFLAGS = @THREAD_CFLAGS@ THREAD_LIBS = @THREAD_LIBS@ VERSION = @VERSION@ @@ -418,9 +423,7 @@ uninstall-xmlincHEADERS: @$(NORMAL_UNINSTALL) @list='$(xmlinc_HEADERS)'; test -n "$(xmlincdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(xmlincdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(xmlincdir)" && rm -f $$files + dir='$(DESTDIR)$(xmlincdir)'; $(am__uninstall_files_from_dir) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ @@ -521,10 +524,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/include/libxml/SAX.h b/include/libxml/SAX.h index 0ca161b..20093ce 100644 --- a/include/libxml/SAX.h +++ b/include/libxml/SAX.h @@ -25,53 +25,53 @@ extern "C" { #endif XMLPUBFUN const xmlChar * XMLCALL getPublicId (void *ctx); -XMLPUBFUN const xmlChar * XMLCALL +XMLPUBFUN const xmlChar * XMLCALL getSystemId (void *ctx); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL setDocumentLocator (void *ctx, xmlSAXLocatorPtr loc); - -XMLPUBFUN int XMLCALL + +XMLPUBFUN int XMLCALL getLineNumber (void *ctx); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL getColumnNumber (void *ctx); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL isStandalone (void *ctx); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL hasInternalSubset (void *ctx); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL hasExternalSubset (void *ctx); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL internalSubset (void *ctx, const xmlChar *name, const xmlChar *ExternalID, const xmlChar *SystemID); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL externalSubset (void *ctx, const xmlChar *name, const xmlChar *ExternalID, const xmlChar *SystemID); -XMLPUBFUN xmlEntityPtr XMLCALL +XMLPUBFUN xmlEntityPtr XMLCALL getEntity (void *ctx, const xmlChar *name); -XMLPUBFUN xmlEntityPtr XMLCALL +XMLPUBFUN xmlEntityPtr XMLCALL getParameterEntity (void *ctx, const xmlChar *name); -XMLPUBFUN xmlParserInputPtr XMLCALL +XMLPUBFUN xmlParserInputPtr XMLCALL resolveEntity (void *ctx, const xmlChar *publicId, const xmlChar *systemId); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL entityDecl (void *ctx, const xmlChar *name, int type, const xmlChar *publicId, const xmlChar *systemId, xmlChar *content); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL attributeDecl (void *ctx, const xmlChar *elem, const xmlChar *fullname, @@ -79,87 +79,87 @@ XMLPUBFUN void XMLCALL int def, const xmlChar *defaultValue, xmlEnumerationPtr tree); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL elementDecl (void *ctx, const xmlChar *name, int type, xmlElementContentPtr content); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL notationDecl (void *ctx, const xmlChar *name, const xmlChar *publicId, const xmlChar *systemId); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL unparsedEntityDecl (void *ctx, const xmlChar *name, const xmlChar *publicId, const xmlChar *systemId, const xmlChar *notationName); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL startDocument (void *ctx); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL endDocument (void *ctx); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL attribute (void *ctx, const xmlChar *fullname, const xmlChar *value); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL startElement (void *ctx, const xmlChar *fullname, const xmlChar **atts); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL endElement (void *ctx, const xmlChar *name); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL reference (void *ctx, const xmlChar *name); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL characters (void *ctx, const xmlChar *ch, int len); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL ignorableWhitespace (void *ctx, const xmlChar *ch, int len); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL processingInstruction (void *ctx, const xmlChar *target, const xmlChar *data); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL globalNamespace (void *ctx, const xmlChar *href, const xmlChar *prefix); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL setNamespace (void *ctx, const xmlChar *name); -XMLPUBFUN xmlNsPtr XMLCALL +XMLPUBFUN xmlNsPtr XMLCALL getNamespace (void *ctx); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL checkNamespace (void *ctx, xmlChar *nameSpace); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL namespaceDecl (void *ctx, const xmlChar *href, const xmlChar *prefix); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL comment (void *ctx, const xmlChar *value); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL cdataBlock (void *ctx, const xmlChar *value, int len); #ifdef LIBXML_SAX1_ENABLED -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL initxmlDefaultSAXHandler (xmlSAXHandlerV1 *hdlr, int warning); #ifdef LIBXML_HTML_ENABLED -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL inithtmlDefaultSAXHandler (xmlSAXHandlerV1 *hdlr); #endif #ifdef LIBXML_DOCB_ENABLED -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL initdocbDefaultSAXHandler (xmlSAXHandlerV1 *hdlr); #endif #endif /* LIBXML_SAX1_ENABLED */ diff --git a/include/libxml/SAX2.h b/include/libxml/SAX2.h index 8d2db02..daafd17 100644 --- a/include/libxml/SAX2.h +++ b/include/libxml/SAX2.h @@ -23,53 +23,53 @@ extern "C" { #endif XMLPUBFUN const xmlChar * XMLCALL xmlSAX2GetPublicId (void *ctx); -XMLPUBFUN const xmlChar * XMLCALL +XMLPUBFUN const xmlChar * XMLCALL xmlSAX2GetSystemId (void *ctx); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSAX2SetDocumentLocator (void *ctx, xmlSAXLocatorPtr loc); - -XMLPUBFUN int XMLCALL + +XMLPUBFUN int XMLCALL xmlSAX2GetLineNumber (void *ctx); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSAX2GetColumnNumber (void *ctx); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSAX2IsStandalone (void *ctx); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSAX2HasInternalSubset (void *ctx); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSAX2HasExternalSubset (void *ctx); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSAX2InternalSubset (void *ctx, const xmlChar *name, const xmlChar *ExternalID, const xmlChar *SystemID); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSAX2ExternalSubset (void *ctx, const xmlChar *name, const xmlChar *ExternalID, const xmlChar *SystemID); -XMLPUBFUN xmlEntityPtr XMLCALL +XMLPUBFUN xmlEntityPtr XMLCALL xmlSAX2GetEntity (void *ctx, const xmlChar *name); -XMLPUBFUN xmlEntityPtr XMLCALL +XMLPUBFUN xmlEntityPtr XMLCALL xmlSAX2GetParameterEntity (void *ctx, const xmlChar *name); -XMLPUBFUN xmlParserInputPtr XMLCALL +XMLPUBFUN xmlParserInputPtr XMLCALL xmlSAX2ResolveEntity (void *ctx, const xmlChar *publicId, const xmlChar *systemId); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSAX2EntityDecl (void *ctx, const xmlChar *name, int type, const xmlChar *publicId, const xmlChar *systemId, xmlChar *content); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSAX2AttributeDecl (void *ctx, const xmlChar *elem, const xmlChar *fullname, @@ -77,33 +77,33 @@ XMLPUBFUN void XMLCALL int def, const xmlChar *defaultValue, xmlEnumerationPtr tree); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSAX2ElementDecl (void *ctx, const xmlChar *name, int type, xmlElementContentPtr content); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSAX2NotationDecl (void *ctx, const xmlChar *name, const xmlChar *publicId, const xmlChar *systemId); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSAX2UnparsedEntityDecl (void *ctx, const xmlChar *name, const xmlChar *publicId, const xmlChar *systemId, const xmlChar *notationName); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSAX2StartDocument (void *ctx); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSAX2EndDocument (void *ctx); #if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSAX2StartElement (void *ctx, const xmlChar *fullname, const xmlChar **atts); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSAX2EndElement (void *ctx, const xmlChar *name); #endif /* LIBXML_SAX1_ENABLED or LIBXML_HTML_ENABLED */ @@ -122,25 +122,25 @@ XMLPUBFUN void XMLCALL const xmlChar *localname, const xmlChar *prefix, const xmlChar *URI); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSAX2Reference (void *ctx, const xmlChar *name); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSAX2Characters (void *ctx, const xmlChar *ch, int len); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSAX2IgnorableWhitespace (void *ctx, const xmlChar *ch, int len); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSAX2ProcessingInstruction (void *ctx, const xmlChar *target, const xmlChar *data); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSAX2Comment (void *ctx, const xmlChar *value); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSAX2CDataBlock (void *ctx, const xmlChar *value, int len); @@ -153,22 +153,22 @@ XMLPUBFUN int XMLCALL XMLPUBFUN int XMLCALL xmlSAXVersion (xmlSAXHandler *hdlr, int version); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSAX2InitDefaultSAXHandler (xmlSAXHandler *hdlr, int warning); #ifdef LIBXML_HTML_ENABLED -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSAX2InitHtmlDefaultSAXHandler(xmlSAXHandler *hdlr); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL htmlDefaultSAXHandlerInit (void); #endif #ifdef LIBXML_DOCB_ENABLED -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSAX2InitDocbDefaultSAXHandler(xmlSAXHandler *hdlr); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL docbDefaultSAXHandlerInit (void); #endif -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlDefaultSAXHandlerInit (void); #ifdef __cplusplus } diff --git a/include/libxml/c14n.h b/include/libxml/c14n.h index 3011af7..b8971d9 100644 --- a/include/libxml/c14n.h +++ b/include/libxml/c14n.h @@ -54,7 +54,7 @@ extern "C" { /* * xmlC14NMode: - * + * * Predefined values for C14N modes * */ diff --git a/include/libxml/catalog.h b/include/libxml/catalog.h index b444137..5a13f51 100644 --- a/include/libxml/catalog.h +++ b/include/libxml/catalog.h @@ -68,111 +68,111 @@ typedef xmlCatalog *xmlCatalogPtr; */ XMLPUBFUN xmlCatalogPtr XMLCALL xmlNewCatalog (int sgml); -XMLPUBFUN xmlCatalogPtr XMLCALL +XMLPUBFUN xmlCatalogPtr XMLCALL xmlLoadACatalog (const char *filename); -XMLPUBFUN xmlCatalogPtr XMLCALL +XMLPUBFUN xmlCatalogPtr XMLCALL xmlLoadSGMLSuperCatalog (const char *filename); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlConvertSGMLCatalog (xmlCatalogPtr catal); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlACatalogAdd (xmlCatalogPtr catal, const xmlChar *type, const xmlChar *orig, const xmlChar *replace); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlACatalogRemove (xmlCatalogPtr catal, const xmlChar *value); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlACatalogResolve (xmlCatalogPtr catal, const xmlChar *pubID, const xmlChar *sysID); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlACatalogResolveSystem(xmlCatalogPtr catal, const xmlChar *sysID); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlACatalogResolvePublic(xmlCatalogPtr catal, const xmlChar *pubID); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlACatalogResolveURI (xmlCatalogPtr catal, const xmlChar *URI); #ifdef LIBXML_OUTPUT_ENABLED -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlACatalogDump (xmlCatalogPtr catal, FILE *out); #endif /* LIBXML_OUTPUT_ENABLED */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeCatalog (xmlCatalogPtr catal); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlCatalogIsEmpty (xmlCatalogPtr catal); /* * Global operations. */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlInitializeCatalog (void); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlLoadCatalog (const char *filename); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlLoadCatalogs (const char *paths); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlCatalogCleanup (void); #ifdef LIBXML_OUTPUT_ENABLED -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlCatalogDump (FILE *out); #endif /* LIBXML_OUTPUT_ENABLED */ -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlCatalogResolve (const xmlChar *pubID, const xmlChar *sysID); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlCatalogResolveSystem (const xmlChar *sysID); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlCatalogResolvePublic (const xmlChar *pubID); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlCatalogResolveURI (const xmlChar *URI); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlCatalogAdd (const xmlChar *type, const xmlChar *orig, const xmlChar *replace); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlCatalogRemove (const xmlChar *value); -XMLPUBFUN xmlDocPtr XMLCALL +XMLPUBFUN xmlDocPtr XMLCALL xmlParseCatalogFile (const char *filename); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlCatalogConvert (void); /* * Strictly minimal interfaces for per-document catalogs used * by the parser. */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlCatalogFreeLocal (void *catalogs); -XMLPUBFUN void * XMLCALL +XMLPUBFUN void * XMLCALL xmlCatalogAddLocal (void *catalogs, const xmlChar *URL); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlCatalogLocalResolve (void *catalogs, const xmlChar *pubID, const xmlChar *sysID); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlCatalogLocalResolveURI(void *catalogs, const xmlChar *URI); /* * Preference settings. */ -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlCatalogSetDebug (int level); -XMLPUBFUN xmlCatalogPrefer XMLCALL +XMLPUBFUN xmlCatalogPrefer XMLCALL xmlCatalogSetDefaultPrefer(xmlCatalogPrefer prefer); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlCatalogSetDefaults (xmlCatalogAllow allow); -XMLPUBFUN xmlCatalogAllow XMLCALL +XMLPUBFUN xmlCatalogAllow XMLCALL xmlCatalogGetDefaults (void); /* DEPRECATED interfaces */ -XMLPUBFUN const xmlChar * XMLCALL +XMLPUBFUN const xmlChar * XMLCALL xmlCatalogGetSystem (const xmlChar *sysID); -XMLPUBFUN const xmlChar * XMLCALL +XMLPUBFUN const xmlChar * XMLCALL xmlCatalogGetPublic (const xmlChar *pubID); #ifdef __cplusplus diff --git a/include/libxml/debugXML.h b/include/libxml/debugXML.h index 5a9d20b..5b3be13 100644 --- a/include/libxml/debugXML.h +++ b/include/libxml/debugXML.h @@ -25,18 +25,18 @@ extern "C" { /* * The standard Dump routines. */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlDebugDumpString (FILE *output, const xmlChar *str); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlDebugDumpAttr (FILE *output, xmlAttrPtr attr, int depth); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlDebugDumpAttrList (FILE *output, xmlAttrPtr attr, int depth); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlDebugDumpOneNode (FILE *output, xmlNodePtr node, int depth); @@ -54,16 +54,16 @@ XMLPUBFUN void XMLCALL XMLPUBFUN void XMLCALL xmlDebugDumpDocument (FILE *output, xmlDocPtr doc); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlDebugDumpDTD (FILE *output, xmlDtdPtr dtd); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlDebugDumpEntities (FILE *output, xmlDocPtr doc); /**************************************************************** * * - * Checking routines * + * Checking routines * * * ****************************************************************/ @@ -73,16 +73,16 @@ XMLPUBFUN int XMLCALL /**************************************************************** * * - * XML shell helpers * + * XML shell helpers * * * ****************************************************************/ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlLsOneNode (FILE *output, xmlNodePtr node); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlLsCountNode (xmlNodePtr node); -XMLPUBFUN const char * XMLCALL +XMLPUBFUN const char * XMLCALL xmlBoolToText (int boolval); /**************************************************************** @@ -136,63 +136,63 @@ typedef int (* xmlShellCmd) (xmlShellCtxtPtr ctxt, xmlNodePtr node, xmlNodePtr node2); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlShellPrintXPathError (int errorType, const char *arg); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlShellPrintXPathResult(xmlXPathObjectPtr list); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlShellList (xmlShellCtxtPtr ctxt, char *arg, xmlNodePtr node, xmlNodePtr node2); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlShellBase (xmlShellCtxtPtr ctxt, char *arg, xmlNodePtr node, xmlNodePtr node2); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlShellDir (xmlShellCtxtPtr ctxt, char *arg, xmlNodePtr node, xmlNodePtr node2); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlShellLoad (xmlShellCtxtPtr ctxt, char *filename, xmlNodePtr node, xmlNodePtr node2); #ifdef LIBXML_OUTPUT_ENABLED -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlShellPrintNode (xmlNodePtr node); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlShellCat (xmlShellCtxtPtr ctxt, char *arg, xmlNodePtr node, xmlNodePtr node2); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlShellWrite (xmlShellCtxtPtr ctxt, char *filename, xmlNodePtr node, xmlNodePtr node2); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlShellSave (xmlShellCtxtPtr ctxt, char *filename, xmlNodePtr node, xmlNodePtr node2); #endif /* LIBXML_OUTPUT_ENABLED */ #ifdef LIBXML_VALID_ENABLED -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlShellValidate (xmlShellCtxtPtr ctxt, char *dtd, xmlNodePtr node, xmlNodePtr node2); #endif /* LIBXML_VALID_ENABLED */ -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlShellDu (xmlShellCtxtPtr ctxt, char *arg, xmlNodePtr tree, xmlNodePtr node2); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlShellPwd (xmlShellCtxtPtr ctxt, char *buffer, xmlNodePtr node, @@ -201,12 +201,12 @@ XMLPUBFUN int XMLCALL /* * The Shell interface. */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlShell (xmlDocPtr doc, char *filename, xmlShellReadlineFunc input, FILE *output); - + #endif /* LIBXML_XPATH_ENABLED */ #ifdef __cplusplus diff --git a/include/libxml/dict.h b/include/libxml/dict.h index 5994868..7022ec8 100644 --- a/include/libxml/dict.h +++ b/include/libxml/dict.h @@ -11,6 +11,7 @@ #ifndef __XML_DICT_H__ #define __XML_DICT_H__ +#include #include #include @@ -34,6 +35,11 @@ XMLPUBFUN int XMLCALL xmlInitializeDict(void); */ XMLPUBFUN xmlDictPtr XMLCALL xmlDictCreate (void); +XMLPUBFUN size_t XMLCALL + xmlDictSetLimit (xmlDictPtr dict, + size_t limit); +XMLPUBFUN size_t XMLCALL + xmlDictGetUsage (xmlDictPtr dict); XMLPUBFUN xmlDictPtr XMLCALL xmlDictCreateSub(xmlDictPtr sub); XMLPUBFUN int XMLCALL diff --git a/include/libxml/encoding.h b/include/libxml/encoding.h index 3a3b9b2..7967cc6 100644 --- a/include/libxml/encoding.h +++ b/include/libxml/encoding.h @@ -163,32 +163,32 @@ extern "C" { /* * Interfaces for encoding handlers. */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlInitCharEncodingHandlers (void); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlCleanupCharEncodingHandlers (void); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlRegisterCharEncodingHandler (xmlCharEncodingHandlerPtr handler); XMLPUBFUN xmlCharEncodingHandlerPtr XMLCALL xmlGetCharEncodingHandler (xmlCharEncoding enc); XMLPUBFUN xmlCharEncodingHandlerPtr XMLCALL xmlFindCharEncodingHandler (const char *name); XMLPUBFUN xmlCharEncodingHandlerPtr XMLCALL - xmlNewCharEncodingHandler (const char *name, - xmlCharEncodingInputFunc input, - xmlCharEncodingOutputFunc output); + xmlNewCharEncodingHandler (const char *name, + xmlCharEncodingInputFunc input, + xmlCharEncodingOutputFunc output); /* * Interfaces for encoding names and aliases. */ -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlAddEncodingAlias (const char *name, const char *alias); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlDelEncodingAlias (const char *alias); XMLPUBFUN const char * XMLCALL xmlGetEncodingAlias (const char *alias); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlCleanupEncodingAliases (void); XMLPUBFUN xmlCharEncoding XMLCALL xmlParseCharEncoding (const char *name); @@ -202,12 +202,12 @@ XMLPUBFUN xmlCharEncoding XMLCALL xmlDetectCharEncoding (const unsigned char *in, int len); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlCharEncOutFunc (xmlCharEncodingHandler *handler, xmlBufferPtr out, xmlBufferPtr in); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlCharEncInFunc (xmlCharEncodingHandler *handler, xmlBufferPtr out, xmlBufferPtr in); @@ -215,20 +215,20 @@ XMLPUBFUN int XMLCALL xmlCharEncFirstLine (xmlCharEncodingHandler *handler, xmlBufferPtr out, xmlBufferPtr in); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlCharEncCloseFunc (xmlCharEncodingHandler *handler); /* * Export a few useful functions */ #ifdef LIBXML_OUTPUT_ENABLED -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL UTF8Toisolat1 (unsigned char *out, int *outlen, const unsigned char *in, int *inlen); #endif /* LIBXML_OUTPUT_ENABLED */ -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL isolat1ToUTF8 (unsigned char *out, int *outlen, const unsigned char *in, diff --git a/include/libxml/hash.h b/include/libxml/hash.h index 7fe4be7..dc8ab7e 100644 --- a/include/libxml/hash.h +++ b/include/libxml/hash.h @@ -1,7 +1,7 @@ /* * Summary: Chained hash tables - * Description: This module implements the hash table support used in - * various places in the library. + * Description: This module implements the hash table support used in + * various places in the library. * * Copy: See Copyright for the status of this software. * @@ -108,40 +108,40 @@ XMLPUBFUN xmlHashTablePtr XMLCALL XMLPUBFUN xmlHashTablePtr XMLCALL xmlHashCreateDict(int size, xmlDictPtr dict); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlHashFree (xmlHashTablePtr table, xmlHashDeallocator f); /* * Add a new entry to the hash table. */ -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlHashAddEntry (xmlHashTablePtr table, const xmlChar *name, void *userdata); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlHashUpdateEntry(xmlHashTablePtr table, const xmlChar *name, void *userdata, xmlHashDeallocator f); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlHashAddEntry2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, void *userdata); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlHashUpdateEntry2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, void *userdata, xmlHashDeallocator f); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlHashAddEntry3(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3, void *userdata); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlHashUpdateEntry3(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, @@ -152,13 +152,13 @@ XMLPUBFUN int XMLCALL /* * Remove an entry from the hash table. */ -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlHashRemoveEntry(xmlHashTablePtr table, const xmlChar *name, xmlHashDeallocator f); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlHashRemoveEntry2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, xmlHashDeallocator f); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlHashRemoveEntry3(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3, xmlHashDeallocator f); @@ -166,29 +166,29 @@ XMLPUBFUN int XMLCALL /* * Retrieve the userdata. */ -XMLPUBFUN void * XMLCALL +XMLPUBFUN void * XMLCALL xmlHashLookup (xmlHashTablePtr table, const xmlChar *name); -XMLPUBFUN void * XMLCALL +XMLPUBFUN void * XMLCALL xmlHashLookup2 (xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2); -XMLPUBFUN void * XMLCALL +XMLPUBFUN void * XMLCALL xmlHashLookup3 (xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3); -XMLPUBFUN void * XMLCALL +XMLPUBFUN void * XMLCALL xmlHashQLookup (xmlHashTablePtr table, const xmlChar *name, const xmlChar *prefix); -XMLPUBFUN void * XMLCALL +XMLPUBFUN void * XMLCALL xmlHashQLookup2 (xmlHashTablePtr table, const xmlChar *name, const xmlChar *prefix, const xmlChar *name2, const xmlChar *prefix2); -XMLPUBFUN void * XMLCALL +XMLPUBFUN void * XMLCALL xmlHashQLookup3 (xmlHashTablePtr table, const xmlChar *name, const xmlChar *prefix, @@ -200,27 +200,27 @@ XMLPUBFUN void * XMLCALL /* * Helpers. */ -XMLPUBFUN xmlHashTablePtr XMLCALL +XMLPUBFUN xmlHashTablePtr XMLCALL xmlHashCopy (xmlHashTablePtr table, xmlHashCopier f); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlHashSize (xmlHashTablePtr table); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlHashScan (xmlHashTablePtr table, xmlHashScanner f, void *data); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlHashScan3 (xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3, xmlHashScanner f, void *data); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlHashScanFull (xmlHashTablePtr table, xmlHashScannerFull f, void *data); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlHashScanFull3(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, diff --git a/include/libxml/list.h b/include/libxml/list.h index 1d83482..0504e0c 100644 --- a/include/libxml/list.h +++ b/include/libxml/list.h @@ -1,6 +1,6 @@ /* * Summary: lists interfaces - * Description: this module implement the list support used in + * Description: this module implement the list support used in * various place in the library. * * Copy: See Copyright for the status of this software. @@ -55,76 +55,76 @@ typedef int (*xmlListWalker) (const void *data, const void *user); XMLPUBFUN xmlListPtr XMLCALL xmlListCreate (xmlListDeallocator deallocator, xmlListDataCompare compare); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlListDelete (xmlListPtr l); /* Basic Operators */ -XMLPUBFUN void * XMLCALL +XMLPUBFUN void * XMLCALL xmlListSearch (xmlListPtr l, void *data); -XMLPUBFUN void * XMLCALL +XMLPUBFUN void * XMLCALL xmlListReverseSearch (xmlListPtr l, void *data); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlListInsert (xmlListPtr l, void *data) ; -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlListAppend (xmlListPtr l, void *data) ; -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlListRemoveFirst (xmlListPtr l, void *data); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlListRemoveLast (xmlListPtr l, void *data); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlListRemoveAll (xmlListPtr l, void *data); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlListClear (xmlListPtr l); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlListEmpty (xmlListPtr l); -XMLPUBFUN xmlLinkPtr XMLCALL +XMLPUBFUN xmlLinkPtr XMLCALL xmlListFront (xmlListPtr l); -XMLPUBFUN xmlLinkPtr XMLCALL +XMLPUBFUN xmlLinkPtr XMLCALL xmlListEnd (xmlListPtr l); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlListSize (xmlListPtr l); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlListPopFront (xmlListPtr l); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlListPopBack (xmlListPtr l); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlListPushFront (xmlListPtr l, void *data); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlListPushBack (xmlListPtr l, void *data); /* Advanced Operators */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlListReverse (xmlListPtr l); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlListSort (xmlListPtr l); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlListWalk (xmlListPtr l, xmlListWalker walker, const void *user); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlListReverseWalk (xmlListPtr l, xmlListWalker walker, const void *user); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlListMerge (xmlListPtr l1, xmlListPtr l2); -XMLPUBFUN xmlListPtr XMLCALL +XMLPUBFUN xmlListPtr XMLCALL xmlListDup (const xmlListPtr old); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlListCopy (xmlListPtr cur, const xmlListPtr old); /* Link operators */ -XMLPUBFUN void * XMLCALL +XMLPUBFUN void * XMLCALL xmlLinkGetData (xmlLinkPtr lk); /* xmlListUnique() */ diff --git a/include/libxml/nanoftp.h b/include/libxml/nanoftp.h index 397bbba..abb4bf7 100644 --- a/include/libxml/nanoftp.h +++ b/include/libxml/nanoftp.h @@ -31,6 +31,7 @@ * macro used to provide portability of code to windows sockets * the value to be used when the socket is not valid */ +#undef INVALID_SOCKET #define INVALID_SOCKET (-1) #endif diff --git a/include/libxml/nanohttp.h b/include/libxml/nanohttp.h index 1d8ac24..22b8fb4 100644 --- a/include/libxml/nanohttp.h +++ b/include/libxml/nanohttp.h @@ -7,7 +7,7 @@ * * Author: Daniel Veillard */ - + #ifndef __NANO_HTTP_H__ #define __NANO_HTTP_H__ @@ -20,22 +20,22 @@ extern "C" { #endif XMLPUBFUN void XMLCALL xmlNanoHTTPInit (void); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlNanoHTTPCleanup (void); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlNanoHTTPScanProxy (const char *URL); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlNanoHTTPFetch (const char *URL, const char *filename, char **contentType); -XMLPUBFUN void * XMLCALL +XMLPUBFUN void * XMLCALL xmlNanoHTTPMethod (const char *URL, const char *method, const char *input, char **contentType, const char *headers, int ilen); -XMLPUBFUN void * XMLCALL +XMLPUBFUN void * XMLCALL xmlNanoHTTPMethodRedir (const char *URL, const char *method, const char *input, @@ -43,16 +43,16 @@ XMLPUBFUN void * XMLCALL char **redir, const char *headers, int ilen); -XMLPUBFUN void * XMLCALL +XMLPUBFUN void * XMLCALL xmlNanoHTTPOpen (const char *URL, char **contentType); -XMLPUBFUN void * XMLCALL +XMLPUBFUN void * XMLCALL xmlNanoHTTPOpenRedir (const char *URL, char **contentType, char **redir); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlNanoHTTPReturnCode (void *ctx); -XMLPUBFUN const char * XMLCALL +XMLPUBFUN const char * XMLCALL xmlNanoHTTPAuthHeader (void *ctx); XMLPUBFUN const char * XMLCALL xmlNanoHTTPRedir (void *ctx); @@ -62,16 +62,16 @@ XMLPUBFUN const char * XMLCALL xmlNanoHTTPEncoding (void *ctx); XMLPUBFUN const char * XMLCALL xmlNanoHTTPMimeType (void *ctx); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlNanoHTTPRead (void *ctx, void *dest, int len); #ifdef LIBXML_OUTPUT_ENABLED -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlNanoHTTPSave (void *ctxt, const char *filename); #endif /* LIBXML_OUTPUT_ENABLED */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlNanoHTTPClose (void *ctx); #ifdef __cplusplus } diff --git a/include/libxml/parser.h b/include/libxml/parser.h index 04edb9d..e1346e4 100644 --- a/include/libxml/parser.h +++ b/include/libxml/parser.h @@ -80,7 +80,7 @@ struct _xmlParserInput { * xmlParserNodeInfo: * * The parser can be asked to collect Node informations, i.e. at what - * place in the file they were detected. + * place in the file they were detected. * NOTE: This is off by default and not very well tested. */ typedef struct _xmlParserNodeInfo xmlParserNodeInfo; @@ -125,9 +125,9 @@ typedef enum { XML_PARSER_ENTITY_VALUE, /* within an entity value in a decl */ XML_PARSER_ATTRIBUTE_VALUE, /* within an attribute value */ XML_PARSER_SYSTEM_LITERAL, /* within a SYSTEM value */ - XML_PARSER_EPILOG, /* the Misc* after the last end tag */ + XML_PARSER_EPILOG, /* the Misc* after the last end tag */ XML_PARSER_IGNORE, /* within an IGNORED section */ - XML_PARSER_PUBLIC_LITERAL /* within a PUBLIC value */ + XML_PARSER_PUBLIC_LITERAL /* within a PUBLIC value */ } xmlParserInputState; /** @@ -221,7 +221,7 @@ struct _xmlParserCtxt { xmlValidCtxt vctxt; /* The validity context */ xmlParserInputState instate; /* current type of input */ - int token; /* next char look-ahead */ + int token; /* next char look-ahead */ char *directory; /* the data directory */ @@ -400,8 +400,8 @@ typedef xmlEntityPtr (*getParameterEntitySAXFunc) (void *ctx, /** * entityDeclSAXFunc: * @ctx: the user data (XML parser context) - * @name: the entity name - * @type: the entity type + * @name: the entity name + * @type: the entity type * @publicId: The public ID of the entity * @systemId: The system ID of the entity * @content: the entity value (without processing). @@ -431,8 +431,8 @@ typedef void (*notationDeclSAXFunc)(void *ctx, * attributeDeclSAXFunc: * @ctx: the user data (XML parser context) * @elem: the name of the element - * @fullname: the attribute name - * @type: the attribute type + * @fullname: the attribute name + * @type: the attribute type * @def: the type of default value * @defaultValue: the attribute default value * @tree: the tree of enumerated value set @@ -449,8 +449,8 @@ typedef void (*attributeDeclSAXFunc)(void *ctx, /** * elementDeclSAXFunc: * @ctx: the user data (XML parser context) - * @name: the element name - * @type: the element type + * @name: the element name + * @type: the element type * @content: the element value tree * * An element definition has been parsed. @@ -537,7 +537,7 @@ typedef void (*attributeSAXFunc) (void *ctx, * @ctx: the user data (XML parser context) * @name: The entity name * - * Called when an entity reference is detected. + * Called when an entity reference is detected. */ typedef void (*referenceSAXFunc) (void *ctx, const xmlChar *name); @@ -601,7 +601,7 @@ typedef void (*cdataBlockSAXFunc) ( * @ctx: an XML parser context * @msg: the message to display/transmit * @...: extra parameters for the message display - * + * * Display and format a warning messages, callback. */ typedef void (XMLCDECL *warningSAXFunc) (void *ctx, @@ -611,7 +611,7 @@ typedef void (XMLCDECL *warningSAXFunc) (void *ctx, * @ctx: an XML parser context * @msg: the message to display/transmit * @...: extra parameters for the message display - * + * * Display and format an error messages, callback. */ typedef void (XMLCDECL *errorSAXFunc) (void *ctx, @@ -621,7 +621,7 @@ typedef void (XMLCDECL *errorSAXFunc) (void *ctx, * @ctx: an XML parser context * @msg: the message to display/transmit * @...: extra parameters for the message display - * + * * Display and format fatal error messages, callback. * Note: so far fatalError() SAX callbacks are not used, error() * get all the callbacks for errors. @@ -697,7 +697,7 @@ typedef void (*startElementNsSAX2Func) (void *ctx, int nb_attributes, int nb_defaulted, const xmlChar **attributes); - + /** * endElementNsSAX2Func: * @ctx: the user data (XML parser context) @@ -792,7 +792,7 @@ struct _xmlSAXHandlerV1 { * xmlExternalEntityLoader: * @URL: The System ID of the resource requested * @ID: The Public ID of the resource requested - * @context: the XML parser context + * @context: the XML parser context * * External entity loaders types. * @@ -818,18 +818,18 @@ extern "C" { /* * Init/Cleanup */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlInitParser (void); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlCleanupParser (void); /* * Input functions */ -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlParserInputRead (xmlParserInputPtr in, int len); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlParserInputGrow (xmlParserInputPtr in, int len); @@ -837,101 +837,101 @@ XMLPUBFUN int XMLCALL * Basic parsing Interfaces */ #ifdef LIBXML_SAX1_ENABLED -XMLPUBFUN xmlDocPtr XMLCALL +XMLPUBFUN xmlDocPtr XMLCALL xmlParseDoc (const xmlChar *cur); -XMLPUBFUN xmlDocPtr XMLCALL +XMLPUBFUN xmlDocPtr XMLCALL xmlParseFile (const char *filename); -XMLPUBFUN xmlDocPtr XMLCALL +XMLPUBFUN xmlDocPtr XMLCALL xmlParseMemory (const char *buffer, int size); #endif /* LIBXML_SAX1_ENABLED */ -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSubstituteEntitiesDefault(int val); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlKeepBlanksDefault (int val); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlStopParser (xmlParserCtxtPtr ctxt); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlPedanticParserDefault(int val); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlLineNumbersDefault (int val); #ifdef LIBXML_SAX1_ENABLED /* - * Recovery mode + * Recovery mode */ -XMLPUBFUN xmlDocPtr XMLCALL +XMLPUBFUN xmlDocPtr XMLCALL xmlRecoverDoc (const xmlChar *cur); -XMLPUBFUN xmlDocPtr XMLCALL +XMLPUBFUN xmlDocPtr XMLCALL xmlRecoverMemory (const char *buffer, int size); -XMLPUBFUN xmlDocPtr XMLCALL +XMLPUBFUN xmlDocPtr XMLCALL xmlRecoverFile (const char *filename); #endif /* LIBXML_SAX1_ENABLED */ /* * Less common routines and SAX interfaces */ -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlParseDocument (xmlParserCtxtPtr ctxt); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlParseExtParsedEnt (xmlParserCtxtPtr ctxt); #ifdef LIBXML_SAX1_ENABLED -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSAXUserParseFile (xmlSAXHandlerPtr sax, void *user_data, const char *filename); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSAXUserParseMemory (xmlSAXHandlerPtr sax, void *user_data, const char *buffer, int size); -XMLPUBFUN xmlDocPtr XMLCALL +XMLPUBFUN xmlDocPtr XMLCALL xmlSAXParseDoc (xmlSAXHandlerPtr sax, const xmlChar *cur, int recovery); -XMLPUBFUN xmlDocPtr XMLCALL +XMLPUBFUN xmlDocPtr XMLCALL xmlSAXParseMemory (xmlSAXHandlerPtr sax, const char *buffer, - int size, + int size, int recovery); -XMLPUBFUN xmlDocPtr XMLCALL +XMLPUBFUN xmlDocPtr XMLCALL xmlSAXParseMemoryWithData (xmlSAXHandlerPtr sax, const char *buffer, - int size, + int size, int recovery, void *data); -XMLPUBFUN xmlDocPtr XMLCALL +XMLPUBFUN xmlDocPtr XMLCALL xmlSAXParseFile (xmlSAXHandlerPtr sax, const char *filename, int recovery); -XMLPUBFUN xmlDocPtr XMLCALL +XMLPUBFUN xmlDocPtr XMLCALL xmlSAXParseFileWithData (xmlSAXHandlerPtr sax, const char *filename, int recovery, void *data); -XMLPUBFUN xmlDocPtr XMLCALL +XMLPUBFUN xmlDocPtr XMLCALL xmlSAXParseEntity (xmlSAXHandlerPtr sax, const char *filename); -XMLPUBFUN xmlDocPtr XMLCALL +XMLPUBFUN xmlDocPtr XMLCALL xmlParseEntity (const char *filename); #endif /* LIBXML_SAX1_ENABLED */ #ifdef LIBXML_VALID_ENABLED -XMLPUBFUN xmlDtdPtr XMLCALL +XMLPUBFUN xmlDtdPtr XMLCALL xmlSAXParseDTD (xmlSAXHandlerPtr sax, const xmlChar *ExternalID, const xmlChar *SystemID); -XMLPUBFUN xmlDtdPtr XMLCALL +XMLPUBFUN xmlDtdPtr XMLCALL xmlParseDTD (const xmlChar *ExternalID, const xmlChar *SystemID); -XMLPUBFUN xmlDtdPtr XMLCALL +XMLPUBFUN xmlDtdPtr XMLCALL xmlIOParseDTD (xmlSAXHandlerPtr sax, xmlParserInputBufferPtr input, xmlCharEncoding enc); #endif /* LIBXML_VALID_ENABLE */ #ifdef LIBXML_SAX1_ENABLED -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlParseBalancedChunkMemory(xmlDocPtr doc, xmlSAXHandlerPtr sax, void *user_data, @@ -946,7 +946,7 @@ XMLPUBFUN xmlParserErrors XMLCALL int options, xmlNodePtr *lst); #ifdef LIBXML_SAX1_ENABLED -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlParseBalancedChunkMemoryRecover(xmlDocPtr doc, xmlSAXHandlerPtr sax, void *user_data, @@ -954,7 +954,7 @@ XMLPUBFUN int XMLCALL const xmlChar *string, xmlNodePtr *lst, int recover); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlParseExternalEntity (xmlDocPtr doc, xmlSAXHandlerPtr sax, void *user_data, @@ -963,7 +963,7 @@ XMLPUBFUN int XMLCALL const xmlChar *ID, xmlNodePtr *lst); #endif /* LIBXML_SAX1_ENABLED */ -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlParseCtxtExternalEntity(xmlParserCtxtPtr ctx, const xmlChar *URL, const xmlChar *ID, @@ -972,35 +972,35 @@ XMLPUBFUN int XMLCALL /* * Parser contexts handling. */ -XMLPUBFUN xmlParserCtxtPtr XMLCALL +XMLPUBFUN xmlParserCtxtPtr XMLCALL xmlNewParserCtxt (void); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlInitParserCtxt (xmlParserCtxtPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlClearParserCtxt (xmlParserCtxtPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeParserCtxt (xmlParserCtxtPtr ctxt); #ifdef LIBXML_SAX1_ENABLED -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSetupParserForBuffer (xmlParserCtxtPtr ctxt, const xmlChar* buffer, const char *filename); #endif /* LIBXML_SAX1_ENABLED */ -XMLPUBFUN xmlParserCtxtPtr XMLCALL +XMLPUBFUN xmlParserCtxtPtr XMLCALL xmlCreateDocParserCtxt (const xmlChar *cur); #ifdef LIBXML_LEGACY_ENABLED /* * Reading/setting optional parsing features. */ -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlGetFeaturesList (int *len, const char **result); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlGetFeature (xmlParserCtxtPtr ctxt, const char *name, void *result); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSetFeature (xmlParserCtxtPtr ctxt, const char *name, void *value); @@ -1010,13 +1010,13 @@ XMLPUBFUN int XMLCALL /* * Interfaces for the Push mode. */ -XMLPUBFUN xmlParserCtxtPtr XMLCALL +XMLPUBFUN xmlParserCtxtPtr XMLCALL xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax, void *user_data, const char *chunk, int size, const char *filename); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlParseChunk (xmlParserCtxtPtr ctxt, const char *chunk, int size, @@ -1027,7 +1027,7 @@ XMLPUBFUN int XMLCALL * Special I/O mode. */ -XMLPUBFUN xmlParserCtxtPtr XMLCALL +XMLPUBFUN xmlParserCtxtPtr XMLCALL xmlCreateIOParserCtxt (xmlSAXHandlerPtr sax, void *user_data, xmlInputReadCallback ioread, @@ -1035,7 +1035,7 @@ XMLPUBFUN xmlParserCtxtPtr XMLCALL void *ioctx, xmlCharEncoding enc); -XMLPUBFUN xmlParserInputPtr XMLCALL +XMLPUBFUN xmlParserInputPtr XMLCALL xmlNewIOInputStream (xmlParserCtxtPtr ctxt, xmlParserInputBufferPtr input, xmlCharEncoding enc); @@ -1046,14 +1046,14 @@ XMLPUBFUN xmlParserInputPtr XMLCALL XMLPUBFUN const xmlParserNodeInfo* XMLCALL xmlParserFindNodeInfo (const xmlParserCtxtPtr ctxt, const xmlNodePtr node); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlInitNodeInfoSeq (xmlParserNodeInfoSeqPtr seq); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlClearNodeInfoSeq (xmlParserNodeInfoSeqPtr seq); -XMLPUBFUN unsigned long XMLCALL +XMLPUBFUN unsigned long XMLCALL xmlParserFindNodeInfoIndex(const xmlParserNodeInfoSeqPtr seq, const xmlNodePtr node); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlParserAddNodeInfo (xmlParserCtxtPtr ctxt, const xmlParserNodeInfoPtr info); @@ -1061,7 +1061,7 @@ XMLPUBFUN void XMLCALL * External entities handling actually implemented in xmlIO. */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSetExternalEntityLoader(xmlExternalEntityLoader f); XMLPUBFUN xmlExternalEntityLoader XMLCALL xmlGetExternalEntityLoader(void); @@ -1109,7 +1109,8 @@ typedef enum { XML_PARSE_NOBASEFIX = 1<<18,/* do not fixup XINCLUDE xml:base uris */ XML_PARSE_HUGE = 1<<19,/* relax any hardcoded limit from the parser */ XML_PARSE_OLDSAX = 1<<20,/* parse using SAX2 interface before 2.7.0 */ - XML_PARSE_IGNORE_ENC= 1<<21 /* ignore internal document encoding hint */ + XML_PARSE_IGNORE_ENC= 1<<21,/* ignore internal document encoding hint */ + XML_PARSE_BIG_LINES = 1<<22 /* Store big lines numbers in text PSVI field */ } xmlParserOption; XMLPUBFUN void XMLCALL diff --git a/include/libxml/parserInternals.h b/include/libxml/parserInternals.h index a5e75b5..6065320 100644 --- a/include/libxml/parserInternals.h +++ b/include/libxml/parserInternals.h @@ -1,5 +1,5 @@ /* - * Summary: internals routines exported by the parser. + * Summary: internals routines and limits exported by the parser. * Description: this module exports a number of internal parsing routines * they are not really all intended for applications but * can prove useful doing low level processing. @@ -36,9 +36,42 @@ XMLPUBVAR unsigned int xmlParserMaxDepth; * Maximum size allowed for a single text node when building a tree. * This is not a limitation of the parser but a safety boundary feature, * use XML_PARSE_HUGE option to override it. + * Introduced in 2.9.0 */ #define XML_MAX_TEXT_LENGTH 10000000 +/** + * XML_MAX_NAME_LENGTH: + * + * Maximum size allowed for a markup identitier + * This is not a limitation of the parser but a safety boundary feature, + * use XML_PARSE_HUGE option to override it. + * Note that with the use of parsing dictionaries overriding the limit + * may result in more runtime memory usage in face of "unfriendly' content + * Introduced in 2.9.0 + */ +#define XML_MAX_NAME_LENGTH 50000 + +/** + * XML_MAX_DICTIONARY_LIMIT: + * + * Maximum size allowed by the parser for a dictionary by default + * This is not a limitation of the parser but a safety boundary feature, + * use XML_PARSE_HUGE option to override it. + * Introduced in 2.9.0 + */ +#define XML_MAX_DICTIONARY_LIMIT 10000000 + +/** + * XML_MAX_LOOKUP_LIMIT: + * + * Maximum size allowed by the parser for ahead lookup + * This is an upper boundary enforced by the parser to avoid bad + * behaviour on "unfriendly' content + * Introduced in 2.9.0 + */ +#define XML_MAX_LOOKUP_LIMIT 10000000 + /** * XML_MAX_NAMELEN: * @@ -57,7 +90,7 @@ XMLPUBVAR unsigned int xmlParserMaxDepth; /************************************************************************ * * - * UNICODE version of the macros. * + * UNICODE version of the macros. * * * ************************************************************************/ /** @@ -153,7 +186,7 @@ XMLPUBVAR unsigned int xmlParserMaxDepth; * * Always false (all combining chars > 0xff) */ -#define IS_COMBINING_CH(c) 0 +#define IS_COMBINING_CH(c) 0 /** * IS_EXTENDER: @@ -194,7 +227,7 @@ XMLPUBVAR unsigned int xmlParserMaxDepth; * Macro to check the following production in the XML spec: * * - * [84] Letter ::= BaseChar | Ideographic + * [84] Letter ::= BaseChar | Ideographic */ #define IS_LETTER(c) (IS_BASECHAR(c) || IS_IDEOGRAPHIC(c)) @@ -251,7 +284,7 @@ XMLPUBVAR unsigned int xmlParserMaxDepth; * * Skips the end of line chars. */ -#define SKIP_EOL(p) \ +#define SKIP_EOL(p) \ if (*(p) == 0x13) { p++ ; if (*(p) == 0x10) p++; } \ if (*(p) == 0x10) { p++ ; if (*(p) == 0x13) p++; } @@ -288,25 +321,25 @@ XMLPUBFUN int XMLCALL xmlIsLetter (int c); /** * Parser context. */ -XMLPUBFUN xmlParserCtxtPtr XMLCALL +XMLPUBFUN xmlParserCtxtPtr XMLCALL xmlCreateFileParserCtxt (const char *filename); -XMLPUBFUN xmlParserCtxtPtr XMLCALL +XMLPUBFUN xmlParserCtxtPtr XMLCALL xmlCreateURLParserCtxt (const char *filename, int options); -XMLPUBFUN xmlParserCtxtPtr XMLCALL +XMLPUBFUN xmlParserCtxtPtr XMLCALL xmlCreateMemoryParserCtxt(const char *buffer, int size); -XMLPUBFUN xmlParserCtxtPtr XMLCALL +XMLPUBFUN xmlParserCtxtPtr XMLCALL xmlCreateEntityParserCtxt(const xmlChar *URL, const xmlChar *ID, const xmlChar *base); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSwitchEncoding (xmlParserCtxtPtr ctxt, xmlCharEncoding enc); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSwitchToEncoding (xmlParserCtxtPtr ctxt, xmlCharEncodingHandlerPtr handler); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSwitchInputEncoding (xmlParserCtxtPtr ctxt, xmlParserInputPtr input, xmlCharEncodingHandlerPtr handler); @@ -324,29 +357,29 @@ XMLPUBFUN void XMLCALL /** * Input Streams. */ -XMLPUBFUN xmlParserInputPtr XMLCALL +XMLPUBFUN xmlParserInputPtr XMLCALL xmlNewStringInputStream (xmlParserCtxtPtr ctxt, const xmlChar *buffer); -XMLPUBFUN xmlParserInputPtr XMLCALL +XMLPUBFUN xmlParserInputPtr XMLCALL xmlNewEntityInputStream (xmlParserCtxtPtr ctxt, xmlEntityPtr entity); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlPushInput (xmlParserCtxtPtr ctxt, xmlParserInputPtr input); -XMLPUBFUN xmlChar XMLCALL +XMLPUBFUN xmlChar XMLCALL xmlPopInput (xmlParserCtxtPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeInputStream (xmlParserInputPtr input); -XMLPUBFUN xmlParserInputPtr XMLCALL +XMLPUBFUN xmlParserInputPtr XMLCALL xmlNewInputFromFile (xmlParserCtxtPtr ctxt, const char *filename); -XMLPUBFUN xmlParserInputPtr XMLCALL +XMLPUBFUN xmlParserInputPtr XMLCALL xmlNewInputStream (xmlParserCtxtPtr ctxt); /** * Namespaces. */ -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlSplitQName (xmlParserCtxtPtr ctxt, const xmlChar *name, xmlChar **prefix); @@ -354,112 +387,112 @@ XMLPUBFUN xmlChar * XMLCALL /** * Generic production rules. */ -XMLPUBFUN const xmlChar * XMLCALL +XMLPUBFUN const xmlChar * XMLCALL xmlParseName (xmlParserCtxtPtr ctxt); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlParseNmtoken (xmlParserCtxtPtr ctxt); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlParseEntityValue (xmlParserCtxtPtr ctxt, xmlChar **orig); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlParseAttValue (xmlParserCtxtPtr ctxt); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlParseSystemLiteral (xmlParserCtxtPtr ctxt); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlParsePubidLiteral (xmlParserCtxtPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlParseCharData (xmlParserCtxtPtr ctxt, int cdata); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlParseExternalID (xmlParserCtxtPtr ctxt, xmlChar **publicID, int strict); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlParseComment (xmlParserCtxtPtr ctxt); -XMLPUBFUN const xmlChar * XMLCALL +XMLPUBFUN const xmlChar * XMLCALL xmlParsePITarget (xmlParserCtxtPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlParsePI (xmlParserCtxtPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlParseNotationDecl (xmlParserCtxtPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlParseEntityDecl (xmlParserCtxtPtr ctxt); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlParseDefaultDecl (xmlParserCtxtPtr ctxt, xmlChar **value); -XMLPUBFUN xmlEnumerationPtr XMLCALL +XMLPUBFUN xmlEnumerationPtr XMLCALL xmlParseNotationType (xmlParserCtxtPtr ctxt); -XMLPUBFUN xmlEnumerationPtr XMLCALL +XMLPUBFUN xmlEnumerationPtr XMLCALL xmlParseEnumerationType (xmlParserCtxtPtr ctxt); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlParseEnumeratedType (xmlParserCtxtPtr ctxt, xmlEnumerationPtr *tree); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlParseAttributeType (xmlParserCtxtPtr ctxt, xmlEnumerationPtr *tree); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlParseAttributeListDecl(xmlParserCtxtPtr ctxt); -XMLPUBFUN xmlElementContentPtr XMLCALL +XMLPUBFUN xmlElementContentPtr XMLCALL xmlParseElementMixedContentDecl (xmlParserCtxtPtr ctxt, int inputchk); -XMLPUBFUN xmlElementContentPtr XMLCALL +XMLPUBFUN xmlElementContentPtr XMLCALL xmlParseElementChildrenContentDecl (xmlParserCtxtPtr ctxt, int inputchk); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlParseElementContentDecl(xmlParserCtxtPtr ctxt, const xmlChar *name, xmlElementContentPtr *result); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlParseElementDecl (xmlParserCtxtPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlParseMarkupDecl (xmlParserCtxtPtr ctxt); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlParseCharRef (xmlParserCtxtPtr ctxt); -XMLPUBFUN xmlEntityPtr XMLCALL +XMLPUBFUN xmlEntityPtr XMLCALL xmlParseEntityRef (xmlParserCtxtPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlParseReference (xmlParserCtxtPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlParsePEReference (xmlParserCtxtPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlParseDocTypeDecl (xmlParserCtxtPtr ctxt); #ifdef LIBXML_SAX1_ENABLED -XMLPUBFUN const xmlChar * XMLCALL +XMLPUBFUN const xmlChar * XMLCALL xmlParseAttribute (xmlParserCtxtPtr ctxt, xmlChar **value); -XMLPUBFUN const xmlChar * XMLCALL +XMLPUBFUN const xmlChar * XMLCALL xmlParseStartTag (xmlParserCtxtPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlParseEndTag (xmlParserCtxtPtr ctxt); #endif /* LIBXML_SAX1_ENABLED */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlParseCDSect (xmlParserCtxtPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlParseContent (xmlParserCtxtPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlParseElement (xmlParserCtxtPtr ctxt); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlParseVersionNum (xmlParserCtxtPtr ctxt); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlParseVersionInfo (xmlParserCtxtPtr ctxt); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlParseEncName (xmlParserCtxtPtr ctxt); -XMLPUBFUN const xmlChar * XMLCALL +XMLPUBFUN const xmlChar * XMLCALL xmlParseEncodingDecl (xmlParserCtxtPtr ctxt); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlParseSDDecl (xmlParserCtxtPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlParseXMLDecl (xmlParserCtxtPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlParseTextDecl (xmlParserCtxtPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlParseMisc (xmlParserCtxtPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlParseExternalSubset (xmlParserCtxtPtr ctxt, const xmlChar *ExternalID, - const xmlChar *SystemID); + const xmlChar *SystemID); /** * XML_SUBSTITUTE_NONE: * @@ -483,7 +516,7 @@ XMLPUBFUN void XMLCALL * * Both general and parameter entities need to be substituted. */ -#define XML_SUBSTITUTE_BOTH 3 +#define XML_SUBSTITUTE_BOTH 3 XMLPUBFUN xmlChar * XMLCALL xmlStringDecodeEntities (xmlParserCtxtPtr ctxt, @@ -563,21 +596,21 @@ XMLPUBFUN htmlParserCtxtPtr XMLCALL htmlCreateFileParserCtxt(const char *filenam typedef void (*xmlEntityReferenceFunc) (xmlEntityPtr ent, xmlNodePtr firstNode, xmlNodePtr lastNode); - + XMLPUBFUN void XMLCALL xmlSetEntityReferenceFunc (xmlEntityReferenceFunc func); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlParseQuotedString (xmlParserCtxtPtr ctxt); XMLPUBFUN void XMLCALL xmlParseNamespace (xmlParserCtxtPtr ctxt); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlNamespaceParseNSDef (xmlParserCtxtPtr ctxt); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlScanName (xmlParserCtxtPtr ctxt); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlNamespaceParseNCName (xmlParserCtxtPtr ctxt); XMLPUBFUN void XMLCALL xmlParserHandleReference(xmlParserCtxtPtr ctxt); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlNamespaceParseQName (xmlParserCtxtPtr ctxt, xmlChar **prefix); /** @@ -590,7 +623,7 @@ XMLPUBFUN xmlChar * XMLCALL xmlChar end, xmlChar end2, xmlChar end3); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlHandleEntity (xmlParserCtxtPtr ctxt, xmlEntityPtr entity); diff --git a/include/libxml/schemasInternals.h b/include/libxml/schemasInternals.h index b68a6e1..4f0ca9a 100644 --- a/include/libxml/schemasInternals.h +++ b/include/libxml/schemasInternals.h @@ -104,8 +104,8 @@ typedef enum { XML_SCHEMA_TYPE_IDC_UNIQUE, XML_SCHEMA_TYPE_IDC_KEY, XML_SCHEMA_TYPE_IDC_KEYREF, - XML_SCHEMA_TYPE_PARTICLE = 25, - XML_SCHEMA_TYPE_ATTRIBUTE_USE, + XML_SCHEMA_TYPE_PARTICLE = 25, + XML_SCHEMA_TYPE_ATTRIBUTE_USE, XML_SCHEMA_FACET_MININCLUSIVE = 1000, XML_SCHEMA_FACET_MINEXCLUSIVE, XML_SCHEMA_FACET_MAXINCLUSIVE, diff --git a/include/libxml/schematron.h b/include/libxml/schematron.h index f442826..364eaec 100644 --- a/include/libxml/schematron.h +++ b/include/libxml/schematron.h @@ -69,17 +69,17 @@ typedef xmlSchematronValidCtxt *xmlSchematronValidCtxtPtr; /* * Interfaces for parsing. */ -XMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL +XMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL xmlSchematronNewParserCtxt (const char *URL); -XMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL +XMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL xmlSchematronNewMemParserCtxt(const char *buffer, int size); XMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL xmlSchematronNewDocParserCtxt(xmlDocPtr doc); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSchematronFreeParserCtxt (xmlSchematronParserCtxtPtr ctxt); /***** -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSchematronSetParserErrors(xmlSchematronParserCtxtPtr ctxt, xmlSchematronValidityErrorFunc err, xmlSchematronValidityWarningFunc warn, @@ -92,9 +92,9 @@ XMLPUBFUN int XMLCALL XMLPUBFUN int XMLCALL xmlSchematronIsValid (xmlSchematronValidCtxtPtr ctxt); *****/ -XMLPUBFUN xmlSchematronPtr XMLCALL +XMLPUBFUN xmlSchematronPtr XMLCALL xmlSchematronParse (xmlSchematronParserCtxtPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSchematronFree (xmlSchematronPtr schema); /* * Interfaces for validating @@ -105,7 +105,7 @@ XMLPUBFUN void XMLCALL xmlStructuredErrorFunc serror, void *ctx); /****** -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSchematronSetValidErrors (xmlSchematronValidCtxtPtr ctxt, xmlSchematronValidityErrorFunc err, xmlSchematronValidityWarningFunc warn, @@ -125,12 +125,12 @@ XMLPUBFUN int XMLCALL xmlNodePtr elem); *******/ -XMLPUBFUN xmlSchematronValidCtxtPtr XMLCALL +XMLPUBFUN xmlSchematronValidCtxtPtr XMLCALL xmlSchematronNewValidCtxt (xmlSchematronPtr schema, - int options); -XMLPUBFUN void XMLCALL + int options); +XMLPUBFUN void XMLCALL xmlSchematronFreeValidCtxt (xmlSchematronValidCtxtPtr ctxt); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSchematronValidateDoc (xmlSchematronValidCtxtPtr ctxt, xmlDocPtr instance); diff --git a/include/libxml/tree.h b/include/libxml/tree.h index 2196f8d..da12daa 100644 --- a/include/libxml/tree.h +++ b/include/libxml/tree.h @@ -13,6 +13,7 @@ #define __XML_TREE_H__ #include +#include #include #include @@ -81,7 +82,8 @@ typedef enum { /** * xmlBuffer: * - * A buffer structure. + * A buffer structure, this old construct is limited to 2GB and + * is being deprecated, use API with xmlBuf instead */ typedef struct _xmlBuffer xmlBuffer; typedef xmlBuffer *xmlBufferPtr; @@ -93,6 +95,41 @@ struct _xmlBuffer { xmlChar *contentIO; /* in IO mode we may have a different base */ }; +/** + * xmlBuf: + * + * A buffer structure, new one, the actual structure internals are not public + */ + +typedef struct _xmlBuf xmlBuf; + +/** + * xmlBufPtr: + * + * A pointer to a buffer structure, the actual structure internals are not + * public + */ + +typedef xmlBuf *xmlBufPtr; + +/* + * A few public routines for xmlBuf. As those are expected to be used + * mostly internally the bulk of the routines are internal in buf.h + */ +XMLPUBFUN xmlChar* XMLCALL xmlBufContent (const xmlBufPtr buf); +XMLPUBFUN xmlChar* XMLCALL xmlBufEnd (const xmlBufPtr buf); +XMLPUBFUN size_t XMLCALL xmlBufUse (xmlBufPtr buf); +XMLPUBFUN size_t XMLCALL xmlBufShrink (xmlBufPtr buf, size_t len); + +/* + * LIBXML2_NEW_BUFFER: + * + * Macro used to express that the API use the new buffers for + * xmlParserInputBuffer and xmlOutputBuffer. The change was + * introduced in 2.9.0. + */ +#define LIBXML2_NEW_BUFFER + /** * XML_XML_NAMESPACE: * @@ -480,7 +517,7 @@ struct _xmlNode { /** * XML_GET_LINE: * - * Macro to extract the line number of an element node. + * Macro to extract the line number of an element node. */ #define XML_GET_LINE(n) \ (xmlGetLineNo(n)) @@ -523,7 +560,7 @@ struct _xmlDoc { /* End of common part */ int compression;/* level of zlib compression */ - int standalone; /* standalone document (no external refs) + int standalone; /* standalone document (no external refs) 1 if standalone="yes" 0 if standalone="no" -1 if there is no XML declaration @@ -554,9 +591,9 @@ typedef xmlDOMWrapCtxt *xmlDOMWrapCtxtPtr; /** * xmlDOMWrapAcquireNsFunction: * @ctxt: a DOM wrapper context - * @node: the context node (element or attribute) + * @node: the context node (element or attribute) * @nsName: the requested namespace name - * @nsPrefix: the requested namespace prefix + * @nsPrefix: the requested namespace prefix * * A function called to acquire namespaces (xmlNs) from the wrapper. * @@ -603,7 +640,7 @@ struct _xmlDOMWrapCtxt { /** * xmlRootNode: * - * Macro for compatibility naming layer with libxml1. Maps + * Macro for compatibility naming layer with libxml1. Maps * to "children". */ #ifndef xmlRootNode @@ -624,431 +661,436 @@ XMLPUBFUN int XMLCALL #endif #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidateQName (const xmlChar *value, int space); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidateName (const xmlChar *value, int space); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidateNMToken (const xmlChar *value, int space); #endif -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlBuildQName (const xmlChar *ncname, const xmlChar *prefix, xmlChar *memory, int len); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlSplitQName2 (const xmlChar *name, xmlChar **prefix); -XMLPUBFUN const xmlChar * XMLCALL +XMLPUBFUN const xmlChar * XMLCALL xmlSplitQName3 (const xmlChar *name, int *len); /* - * Handling Buffers. + * Handling Buffers, the old ones see @xmlBuf for the new ones. */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSetBufferAllocationScheme(xmlBufferAllocationScheme scheme); -XMLPUBFUN xmlBufferAllocationScheme XMLCALL +XMLPUBFUN xmlBufferAllocationScheme XMLCALL xmlGetBufferAllocationScheme(void); -XMLPUBFUN xmlBufferPtr XMLCALL +XMLPUBFUN xmlBufferPtr XMLCALL xmlBufferCreate (void); -XMLPUBFUN xmlBufferPtr XMLCALL +XMLPUBFUN xmlBufferPtr XMLCALL xmlBufferCreateSize (size_t size); -XMLPUBFUN xmlBufferPtr XMLCALL +XMLPUBFUN xmlBufferPtr XMLCALL xmlBufferCreateStatic (void *mem, size_t size); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlBufferResize (xmlBufferPtr buf, unsigned int size); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlBufferFree (xmlBufferPtr buf); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlBufferDump (FILE *file, xmlBufferPtr buf); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlBufferAdd (xmlBufferPtr buf, const xmlChar *str, int len); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlBufferAddHead (xmlBufferPtr buf, const xmlChar *str, int len); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlBufferCat (xmlBufferPtr buf, const xmlChar *str); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlBufferCCat (xmlBufferPtr buf, const char *str); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlBufferShrink (xmlBufferPtr buf, unsigned int len); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlBufferGrow (xmlBufferPtr buf, unsigned int len); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlBufferEmpty (xmlBufferPtr buf); -XMLPUBFUN const xmlChar* XMLCALL +XMLPUBFUN const xmlChar* XMLCALL xmlBufferContent (const xmlBufferPtr buf); XMLPUBFUN xmlChar* XMLCALL - xmlBufferDetach (const xmlBufferPtr buf); -XMLPUBFUN void XMLCALL + xmlBufferDetach (xmlBufferPtr buf); +XMLPUBFUN void XMLCALL xmlBufferSetAllocationScheme(xmlBufferPtr buf, xmlBufferAllocationScheme scheme); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlBufferLength (const xmlBufferPtr buf); /* * Creating/freeing new structures. */ -XMLPUBFUN xmlDtdPtr XMLCALL +XMLPUBFUN xmlDtdPtr XMLCALL xmlCreateIntSubset (xmlDocPtr doc, const xmlChar *name, const xmlChar *ExternalID, const xmlChar *SystemID); -XMLPUBFUN xmlDtdPtr XMLCALL +XMLPUBFUN xmlDtdPtr XMLCALL xmlNewDtd (xmlDocPtr doc, const xmlChar *name, const xmlChar *ExternalID, const xmlChar *SystemID); -XMLPUBFUN xmlDtdPtr XMLCALL +XMLPUBFUN xmlDtdPtr XMLCALL xmlGetIntSubset (xmlDocPtr doc); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeDtd (xmlDtdPtr cur); #ifdef LIBXML_LEGACY_ENABLED -XMLPUBFUN xmlNsPtr XMLCALL +XMLPUBFUN xmlNsPtr XMLCALL xmlNewGlobalNs (xmlDocPtr doc, const xmlChar *href, const xmlChar *prefix); #endif /* LIBXML_LEGACY_ENABLED */ -XMLPUBFUN xmlNsPtr XMLCALL +XMLPUBFUN xmlNsPtr XMLCALL xmlNewNs (xmlNodePtr node, const xmlChar *href, const xmlChar *prefix); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeNs (xmlNsPtr cur); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeNsList (xmlNsPtr cur); -XMLPUBFUN xmlDocPtr XMLCALL +XMLPUBFUN xmlDocPtr XMLCALL xmlNewDoc (const xmlChar *version); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeDoc (xmlDocPtr cur); -XMLPUBFUN xmlAttrPtr XMLCALL +XMLPUBFUN xmlAttrPtr XMLCALL xmlNewDocProp (xmlDocPtr doc, const xmlChar *name, const xmlChar *value); #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \ defined(LIBXML_SCHEMAS_ENABLED) -XMLPUBFUN xmlAttrPtr XMLCALL +XMLPUBFUN xmlAttrPtr XMLCALL xmlNewProp (xmlNodePtr node, const xmlChar *name, const xmlChar *value); #endif -XMLPUBFUN xmlAttrPtr XMLCALL +XMLPUBFUN xmlAttrPtr XMLCALL xmlNewNsProp (xmlNodePtr node, xmlNsPtr ns, const xmlChar *name, const xmlChar *value); -XMLPUBFUN xmlAttrPtr XMLCALL +XMLPUBFUN xmlAttrPtr XMLCALL xmlNewNsPropEatName (xmlNodePtr node, xmlNsPtr ns, xmlChar *name, const xmlChar *value); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreePropList (xmlAttrPtr cur); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeProp (xmlAttrPtr cur); -XMLPUBFUN xmlAttrPtr XMLCALL +XMLPUBFUN xmlAttrPtr XMLCALL xmlCopyProp (xmlNodePtr target, xmlAttrPtr cur); -XMLPUBFUN xmlAttrPtr XMLCALL +XMLPUBFUN xmlAttrPtr XMLCALL xmlCopyPropList (xmlNodePtr target, xmlAttrPtr cur); #ifdef LIBXML_TREE_ENABLED -XMLPUBFUN xmlDtdPtr XMLCALL +XMLPUBFUN xmlDtdPtr XMLCALL xmlCopyDtd (xmlDtdPtr dtd); #endif /* LIBXML_TREE_ENABLED */ #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) -XMLPUBFUN xmlDocPtr XMLCALL +XMLPUBFUN xmlDocPtr XMLCALL xmlCopyDoc (xmlDocPtr doc, int recursive); #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ /* * Creating new nodes. */ -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlNewDocNode (xmlDocPtr doc, xmlNsPtr ns, const xmlChar *name, const xmlChar *content); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlNewDocNodeEatName (xmlDocPtr doc, xmlNsPtr ns, xmlChar *name, const xmlChar *content); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlNewNode (xmlNsPtr ns, const xmlChar *name); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlNewNodeEatName (xmlNsPtr ns, xmlChar *name); #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlNewChild (xmlNodePtr parent, xmlNsPtr ns, const xmlChar *name, const xmlChar *content); #endif -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlNewDocText (xmlDocPtr doc, const xmlChar *content); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlNewText (const xmlChar *content); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlNewDocPI (xmlDocPtr doc, const xmlChar *name, const xmlChar *content); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlNewPI (const xmlChar *name, const xmlChar *content); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlNewDocTextLen (xmlDocPtr doc, const xmlChar *content, int len); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlNewTextLen (const xmlChar *content, int len); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlNewDocComment (xmlDocPtr doc, const xmlChar *content); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlNewComment (const xmlChar *content); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlNewCDataBlock (xmlDocPtr doc, const xmlChar *content, int len); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlNewCharRef (xmlDocPtr doc, const xmlChar *name); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlNewReference (xmlDocPtr doc, const xmlChar *name); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlCopyNode (const xmlNodePtr node, int recursive); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlDocCopyNode (const xmlNodePtr node, xmlDocPtr doc, int recursive); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlDocCopyNodeList (xmlDocPtr doc, const xmlNodePtr node); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlCopyNodeList (const xmlNodePtr node); #ifdef LIBXML_TREE_ENABLED -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlNewTextChild (xmlNodePtr parent, xmlNsPtr ns, const xmlChar *name, const xmlChar *content); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlNewDocRawNode (xmlDocPtr doc, xmlNsPtr ns, const xmlChar *name, const xmlChar *content); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlNewDocFragment (xmlDocPtr doc); #endif /* LIBXML_TREE_ENABLED */ /* * Navigating. */ -XMLPUBFUN long XMLCALL +XMLPUBFUN long XMLCALL xmlGetLineNo (xmlNodePtr node); #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlGetNodePath (xmlNodePtr node); #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) */ -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlDocGetRootElement (xmlDocPtr doc); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlGetLastChild (xmlNodePtr parent); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlNodeIsText (xmlNodePtr node); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlIsBlankNode (xmlNodePtr node); /* * Changing the structure. */ #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlDocSetRootElement (xmlDocPtr doc, xmlNodePtr root); #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */ #ifdef LIBXML_TREE_ENABLED -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlNodeSetName (xmlNodePtr cur, const xmlChar *name); #endif /* LIBXML_TREE_ENABLED */ -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlAddChild (xmlNodePtr parent, xmlNodePtr cur); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlAddChildList (xmlNodePtr parent, xmlNodePtr cur); #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlReplaceNode (xmlNodePtr old, xmlNodePtr cur); #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */ #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \ defined(LIBXML_SCHEMAS_ENABLED) -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlAddPrevSibling (xmlNodePtr cur, xmlNodePtr elem); #endif /* LIBXML_TREE_ENABLED || LIBXML_HTML_ENABLED || LIBXML_SCHEMAS_ENABLED */ -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlAddSibling (xmlNodePtr cur, xmlNodePtr elem); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlAddNextSibling (xmlNodePtr cur, xmlNodePtr elem); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlUnlinkNode (xmlNodePtr cur); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlTextMerge (xmlNodePtr first, xmlNodePtr second); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlTextConcat (xmlNodePtr node, const xmlChar *content, int len); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeNodeList (xmlNodePtr cur); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeNode (xmlNodePtr cur); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSetTreeDoc (xmlNodePtr tree, xmlDocPtr doc); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSetListDoc (xmlNodePtr list, xmlDocPtr doc); /* * Namespaces. */ -XMLPUBFUN xmlNsPtr XMLCALL +XMLPUBFUN xmlNsPtr XMLCALL xmlSearchNs (xmlDocPtr doc, xmlNodePtr node, const xmlChar *nameSpace); -XMLPUBFUN xmlNsPtr XMLCALL +XMLPUBFUN xmlNsPtr XMLCALL xmlSearchNsByHref (xmlDocPtr doc, xmlNodePtr node, const xmlChar *href); #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) -XMLPUBFUN xmlNsPtr * XMLCALL +XMLPUBFUN xmlNsPtr * XMLCALL xmlGetNsList (xmlDocPtr doc, xmlNodePtr node); #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSetNs (xmlNodePtr node, xmlNsPtr ns); -XMLPUBFUN xmlNsPtr XMLCALL +XMLPUBFUN xmlNsPtr XMLCALL xmlCopyNamespace (xmlNsPtr cur); -XMLPUBFUN xmlNsPtr XMLCALL +XMLPUBFUN xmlNsPtr XMLCALL xmlCopyNamespaceList (xmlNsPtr cur); /* * Changing the content. */ #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) -XMLPUBFUN xmlAttrPtr XMLCALL +XMLPUBFUN xmlAttrPtr XMLCALL xmlSetProp (xmlNodePtr node, const xmlChar *name, const xmlChar *value); -XMLPUBFUN xmlAttrPtr XMLCALL +XMLPUBFUN xmlAttrPtr XMLCALL xmlSetNsProp (xmlNodePtr node, xmlNsPtr ns, const xmlChar *name, const xmlChar *value); #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */ -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlGetNoNsProp (xmlNodePtr node, const xmlChar *name); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlGetProp (xmlNodePtr node, const xmlChar *name); -XMLPUBFUN xmlAttrPtr XMLCALL +XMLPUBFUN xmlAttrPtr XMLCALL xmlHasProp (xmlNodePtr node, const xmlChar *name); -XMLPUBFUN xmlAttrPtr XMLCALL +XMLPUBFUN xmlAttrPtr XMLCALL xmlHasNsProp (xmlNodePtr node, const xmlChar *name, const xmlChar *nameSpace); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlGetNsProp (xmlNodePtr node, const xmlChar *name, const xmlChar *nameSpace); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlStringGetNodeList (xmlDocPtr doc, const xmlChar *value); -XMLPUBFUN xmlNodePtr XMLCALL +XMLPUBFUN xmlNodePtr XMLCALL xmlStringLenGetNodeList (xmlDocPtr doc, const xmlChar *value, int len); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlNodeListGetString (xmlDocPtr doc, xmlNodePtr list, int inLine); #ifdef LIBXML_TREE_ENABLED -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlNodeListGetRawString (xmlDocPtr doc, xmlNodePtr list, int inLine); #endif /* LIBXML_TREE_ENABLED */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlNodeSetContent (xmlNodePtr cur, const xmlChar *content); #ifdef LIBXML_TREE_ENABLED -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlNodeSetContentLen (xmlNodePtr cur, const xmlChar *content, int len); #endif /* LIBXML_TREE_ENABLED */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlNodeAddContent (xmlNodePtr cur, const xmlChar *content); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlNodeAddContentLen (xmlNodePtr cur, const xmlChar *content, int len); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlNodeGetContent (xmlNodePtr cur); + XMLPUBFUN int XMLCALL xmlNodeBufGetContent (xmlBufferPtr buffer, xmlNodePtr cur); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN int XMLCALL + xmlBufGetNodeContent (xmlBufPtr buf, + xmlNodePtr cur); + +XMLPUBFUN xmlChar * XMLCALL xmlNodeGetLang (xmlNodePtr cur); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlNodeGetSpacePreserve (xmlNodePtr cur); #ifdef LIBXML_TREE_ENABLED -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlNodeSetLang (xmlNodePtr cur, const xmlChar *lang); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlNodeSetSpacePreserve (xmlNodePtr cur, int val); #endif /* LIBXML_TREE_ENABLED */ -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlNodeGetBase (xmlDocPtr doc, xmlNodePtr cur); #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlNodeSetBase (xmlNodePtr cur, const xmlChar *uri); #endif @@ -1056,14 +1098,14 @@ XMLPUBFUN void XMLCALL /* * Removing content. */ -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlRemoveProp (xmlAttrPtr cur); #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlUnsetNsProp (xmlNodePtr node, xmlNsPtr ns, const xmlChar *name); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlUnsetProp (xmlNodePtr node, const xmlChar *name); #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ @@ -1071,13 +1113,13 @@ XMLPUBFUN int XMLCALL /* * Internal, don't use. */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlBufferWriteCHAR (xmlBufferPtr buf, const xmlChar *string); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlBufferWriteChar (xmlBufferPtr buf, const char *string); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlBufferWriteQuotedString(xmlBufferPtr buf, const xmlChar *string); @@ -1092,7 +1134,7 @@ XMLPUBFUN void xmlAttrSerializeTxtContent(xmlBufferPtr buf, /* * Namespace handling. */ -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlReconciliateNs (xmlDocPtr doc, xmlNodePtr tree); #endif @@ -1101,61 +1143,67 @@ XMLPUBFUN int XMLCALL /* * Saving. */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlDocDumpFormatMemory (xmlDocPtr cur, xmlChar **mem, int *size, int format); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlDocDumpMemory (xmlDocPtr cur, xmlChar **mem, int *size); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlDocDumpMemoryEnc (xmlDocPtr out_doc, xmlChar **doc_txt_ptr, int * doc_txt_len, const char *txt_encoding); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlDocDumpFormatMemoryEnc(xmlDocPtr out_doc, xmlChar **doc_txt_ptr, int * doc_txt_len, const char *txt_encoding, int format); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlDocFormatDump (FILE *f, xmlDocPtr cur, int format); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlDocDump (FILE *f, xmlDocPtr cur); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlElemDump (FILE *f, xmlDocPtr doc, xmlNodePtr cur); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSaveFile (const char *filename, xmlDocPtr cur); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSaveFormatFile (const char *filename, xmlDocPtr cur, int format); -XMLPUBFUN int XMLCALL +XMLPUBFUN size_t XMLCALL + xmlBufNodeDump (xmlBufPtr buf, + xmlDocPtr doc, + xmlNodePtr cur, + int level, + int format); +XMLPUBFUN int XMLCALL xmlNodeDump (xmlBufferPtr buf, xmlDocPtr doc, xmlNodePtr cur, int level, int format); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSaveFileTo (xmlOutputBufferPtr buf, xmlDocPtr cur, const char *encoding); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSaveFormatFileTo (xmlOutputBufferPtr buf, xmlDocPtr cur, const char *encoding, int format); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlNodeDumpOutput (xmlOutputBufferPtr buf, xmlDocPtr doc, xmlNodePtr cur, @@ -1163,13 +1211,13 @@ XMLPUBFUN void XMLCALL int format, const char *encoding); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSaveFormatFileEnc (const char *filename, xmlDocPtr cur, const char *encoding, int format); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSaveFileEnc (const char *filename, xmlDocPtr cur, const char *encoding); @@ -1178,21 +1226,21 @@ XMLPUBFUN int XMLCALL /* * XHTML */ -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlIsXHTML (const xmlChar *systemID, const xmlChar *publicID); /* * Compression. */ -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlGetDocCompressMode (xmlDocPtr doc); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSetDocCompressMode (xmlDocPtr doc, int mode); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlGetCompressMode (void); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSetCompressMode (int mode); /* @@ -1210,7 +1258,7 @@ XMLPUBFUN int XMLCALL xmlDOMWrapAdoptNode (xmlDOMWrapCtxtPtr ctxt, xmlDocPtr sourceDoc, xmlNodePtr node, - xmlDocPtr destDoc, + xmlDocPtr destDoc, xmlNodePtr destParent, int options); XMLPUBFUN int XMLCALL diff --git a/include/libxml/valid.h b/include/libxml/valid.h index a2307f1..2bc7b38 100644 --- a/include/libxml/valid.h +++ b/include/libxml/valid.h @@ -150,55 +150,55 @@ typedef struct _xmlHashTable xmlRefTable; typedef xmlRefTable *xmlRefTablePtr; /* Notation */ -XMLPUBFUN xmlNotationPtr XMLCALL +XMLPUBFUN xmlNotationPtr XMLCALL xmlAddNotationDecl (xmlValidCtxtPtr ctxt, xmlDtdPtr dtd, const xmlChar *name, const xmlChar *PublicID, const xmlChar *SystemID); #ifdef LIBXML_TREE_ENABLED -XMLPUBFUN xmlNotationTablePtr XMLCALL +XMLPUBFUN xmlNotationTablePtr XMLCALL xmlCopyNotationTable (xmlNotationTablePtr table); #endif /* LIBXML_TREE_ENABLED */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeNotationTable (xmlNotationTablePtr table); #ifdef LIBXML_OUTPUT_ENABLED -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlDumpNotationDecl (xmlBufferPtr buf, xmlNotationPtr nota); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlDumpNotationTable (xmlBufferPtr buf, xmlNotationTablePtr table); #endif /* LIBXML_OUTPUT_ENABLED */ /* Element Content */ /* the non Doc version are being deprecated */ -XMLPUBFUN xmlElementContentPtr XMLCALL +XMLPUBFUN xmlElementContentPtr XMLCALL xmlNewElementContent (const xmlChar *name, xmlElementContentType type); -XMLPUBFUN xmlElementContentPtr XMLCALL +XMLPUBFUN xmlElementContentPtr XMLCALL xmlCopyElementContent (xmlElementContentPtr content); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeElementContent (xmlElementContentPtr cur); /* the new versions with doc argument */ -XMLPUBFUN xmlElementContentPtr XMLCALL +XMLPUBFUN xmlElementContentPtr XMLCALL xmlNewDocElementContent (xmlDocPtr doc, const xmlChar *name, xmlElementContentType type); -XMLPUBFUN xmlElementContentPtr XMLCALL +XMLPUBFUN xmlElementContentPtr XMLCALL xmlCopyDocElementContent(xmlDocPtr doc, xmlElementContentPtr content); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeDocElementContent(xmlDocPtr doc, xmlElementContentPtr cur); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSnprintfElementContent(char *buf, int size, xmlElementContentPtr content, int englob); #ifdef LIBXML_OUTPUT_ENABLED /* DEPRECATED */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSprintfElementContent(char *buf, xmlElementContentPtr content, int englob); @@ -206,39 +206,39 @@ XMLPUBFUN void XMLCALL /* DEPRECATED */ /* Element */ -XMLPUBFUN xmlElementPtr XMLCALL +XMLPUBFUN xmlElementPtr XMLCALL xmlAddElementDecl (xmlValidCtxtPtr ctxt, xmlDtdPtr dtd, const xmlChar *name, xmlElementTypeVal type, xmlElementContentPtr content); #ifdef LIBXML_TREE_ENABLED -XMLPUBFUN xmlElementTablePtr XMLCALL +XMLPUBFUN xmlElementTablePtr XMLCALL xmlCopyElementTable (xmlElementTablePtr table); #endif /* LIBXML_TREE_ENABLED */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeElementTable (xmlElementTablePtr table); #ifdef LIBXML_OUTPUT_ENABLED -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlDumpElementTable (xmlBufferPtr buf, xmlElementTablePtr table); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlDumpElementDecl (xmlBufferPtr buf, xmlElementPtr elem); #endif /* LIBXML_OUTPUT_ENABLED */ /* Enumeration */ -XMLPUBFUN xmlEnumerationPtr XMLCALL +XMLPUBFUN xmlEnumerationPtr XMLCALL xmlCreateEnumeration (const xmlChar *name); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeEnumeration (xmlEnumerationPtr cur); #ifdef LIBXML_TREE_ENABLED -XMLPUBFUN xmlEnumerationPtr XMLCALL +XMLPUBFUN xmlEnumerationPtr XMLCALL xmlCopyEnumeration (xmlEnumerationPtr cur); #endif /* LIBXML_TREE_ENABLED */ /* Attribute */ -XMLPUBFUN xmlAttributePtr XMLCALL +XMLPUBFUN xmlAttributePtr XMLCALL xmlAddAttributeDecl (xmlValidCtxtPtr ctxt, xmlDtdPtr dtd, const xmlChar *elem, @@ -249,55 +249,55 @@ XMLPUBFUN xmlAttributePtr XMLCALL const xmlChar *defaultValue, xmlEnumerationPtr tree); #ifdef LIBXML_TREE_ENABLED -XMLPUBFUN xmlAttributeTablePtr XMLCALL +XMLPUBFUN xmlAttributeTablePtr XMLCALL xmlCopyAttributeTable (xmlAttributeTablePtr table); #endif /* LIBXML_TREE_ENABLED */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeAttributeTable (xmlAttributeTablePtr table); #ifdef LIBXML_OUTPUT_ENABLED -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlDumpAttributeTable (xmlBufferPtr buf, xmlAttributeTablePtr table); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlDumpAttributeDecl (xmlBufferPtr buf, xmlAttributePtr attr); #endif /* LIBXML_OUTPUT_ENABLED */ /* IDs */ -XMLPUBFUN xmlIDPtr XMLCALL +XMLPUBFUN xmlIDPtr XMLCALL xmlAddID (xmlValidCtxtPtr ctxt, xmlDocPtr doc, const xmlChar *value, xmlAttrPtr attr); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeIDTable (xmlIDTablePtr table); -XMLPUBFUN xmlAttrPtr XMLCALL +XMLPUBFUN xmlAttrPtr XMLCALL xmlGetID (xmlDocPtr doc, const xmlChar *ID); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlIsID (xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr); -XMLPUBFUN int XMLCALL - xmlRemoveID (xmlDocPtr doc, +XMLPUBFUN int XMLCALL + xmlRemoveID (xmlDocPtr doc, xmlAttrPtr attr); /* IDREFs */ -XMLPUBFUN xmlRefPtr XMLCALL +XMLPUBFUN xmlRefPtr XMLCALL xmlAddRef (xmlValidCtxtPtr ctxt, xmlDocPtr doc, const xmlChar *value, xmlAttrPtr attr); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeRefTable (xmlRefTablePtr table); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlIsRef (xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr); -XMLPUBFUN int XMLCALL - xmlRemoveRef (xmlDocPtr doc, +XMLPUBFUN int XMLCALL + xmlRemoveRef (xmlDocPtr doc, xmlAttrPtr attr); -XMLPUBFUN xmlListPtr XMLCALL +XMLPUBFUN xmlListPtr XMLCALL xmlGetRefs (xmlDocPtr doc, const xmlChar *ID); @@ -306,146 +306,146 @@ XMLPUBFUN xmlListPtr XMLCALL */ #ifdef LIBXML_VALID_ENABLED /* Allocate/Release Validation Contexts */ -XMLPUBFUN xmlValidCtxtPtr XMLCALL +XMLPUBFUN xmlValidCtxtPtr XMLCALL xmlNewValidCtxt(void); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeValidCtxt(xmlValidCtxtPtr); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidateRoot (xmlValidCtxtPtr ctxt, xmlDocPtr doc); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidateElementDecl (xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlElementPtr elem); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlValidNormalizeAttributeValue(xmlDocPtr doc, xmlNodePtr elem, const xmlChar *name, const xmlChar *value); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlValidCtxtNormalizeAttributeValue(xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr elem, const xmlChar *name, const xmlChar *value); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidateAttributeDecl(xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlAttributePtr attr); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidateAttributeValue(xmlAttributeType type, const xmlChar *value); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidateNotationDecl (xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlNotationPtr nota); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidateDtd (xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlDtdPtr dtd); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidateDtdFinal (xmlValidCtxtPtr ctxt, xmlDocPtr doc); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidateDocument (xmlValidCtxtPtr ctxt, xmlDocPtr doc); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidateElement (xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr elem); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidateOneElement (xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr elem); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidateOneAttribute (xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr, const xmlChar *value); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidateOneNamespace (xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, const xmlChar *value); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidateDocumentFinal(xmlValidCtxtPtr ctxt, xmlDocPtr doc); #endif /* LIBXML_VALID_ENABLED */ #if defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidateNotationUse (xmlValidCtxtPtr ctxt, xmlDocPtr doc, const xmlChar *notationName); #endif /* LIBXML_VALID_ENABLED or LIBXML_SCHEMAS_ENABLED */ -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlIsMixedElement (xmlDocPtr doc, const xmlChar *name); -XMLPUBFUN xmlAttributePtr XMLCALL +XMLPUBFUN xmlAttributePtr XMLCALL xmlGetDtdAttrDesc (xmlDtdPtr dtd, const xmlChar *elem, const xmlChar *name); -XMLPUBFUN xmlAttributePtr XMLCALL +XMLPUBFUN xmlAttributePtr XMLCALL xmlGetDtdQAttrDesc (xmlDtdPtr dtd, const xmlChar *elem, const xmlChar *name, const xmlChar *prefix); -XMLPUBFUN xmlNotationPtr XMLCALL +XMLPUBFUN xmlNotationPtr XMLCALL xmlGetDtdNotationDesc (xmlDtdPtr dtd, const xmlChar *name); -XMLPUBFUN xmlElementPtr XMLCALL +XMLPUBFUN xmlElementPtr XMLCALL xmlGetDtdQElementDesc (xmlDtdPtr dtd, const xmlChar *name, const xmlChar *prefix); -XMLPUBFUN xmlElementPtr XMLCALL +XMLPUBFUN xmlElementPtr XMLCALL xmlGetDtdElementDesc (xmlDtdPtr dtd, const xmlChar *name); #ifdef LIBXML_VALID_ENABLED -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidGetPotentialChildren(xmlElementContent *ctree, const xmlChar **names, int *len, int max); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidGetValidElements(xmlNode *prev, xmlNode *next, const xmlChar **names, int max); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidateNameValue (const xmlChar *value); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidateNamesValue (const xmlChar *value); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidateNmtokenValue (const xmlChar *value); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidateNmtokensValue(const xmlChar *value); #ifdef LIBXML_REGEXP_ENABLED /* * Validation based on the regexp support */ -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidBuildContentModel(xmlValidCtxtPtr ctxt, xmlElementPtr elem); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidatePushElement (xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr elem, const xmlChar *qname); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidatePushCData (xmlValidCtxtPtr ctxt, const xmlChar *data, int len); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlValidatePopElement (xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr elem, diff --git a/include/libxml/xlink.h b/include/libxml/xlink.h index 083c7ed..a209a99 100644 --- a/include/libxml/xlink.h +++ b/include/libxml/xlink.h @@ -57,7 +57,7 @@ typedef enum { * xlinkNodeDetectFunc: * @ctx: user data pointer * @node: the node to check - * + * * This is the prototype for the link detection routine. * It calls the default link detection callbacks upon link detection. */ @@ -157,26 +157,26 @@ struct _xlinkHandler { /* * The default detection routine, can be overridden, they call the default - * detection callbacks. + * detection callbacks. */ -XMLPUBFUN xlinkNodeDetectFunc XMLCALL +XMLPUBFUN xlinkNodeDetectFunc XMLCALL xlinkGetDefaultDetect (void); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xlinkSetDefaultDetect (xlinkNodeDetectFunc func); /* * Routines to set/get the default handlers. */ -XMLPUBFUN xlinkHandlerPtr XMLCALL +XMLPUBFUN xlinkHandlerPtr XMLCALL xlinkGetDefaultHandler (void); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xlinkSetDefaultHandler (xlinkHandlerPtr handler); /* * Link detection module itself. */ -XMLPUBFUN xlinkType XMLCALL +XMLPUBFUN xlinkType XMLCALL xlinkIsLink (xmlDocPtr doc, xmlNodePtr node); diff --git a/include/libxml/xmlIO.h b/include/libxml/xmlIO.h index eea9ed6..6c241a8 100644 --- a/include/libxml/xmlIO.h +++ b/include/libxml/xmlIO.h @@ -26,7 +26,7 @@ extern "C" { * xmlInputMatchCallback: * @filename: the filename or URI * - * Callback used in the I/O Input API to detect if the current handler + * Callback used in the I/O Input API to detect if the current handler * can provide input fonctionnalities for this resource. * * Returns 1 if yes and 0 if another Input module should be used @@ -72,7 +72,7 @@ typedef int (XMLCALL *xmlInputCloseCallback) (void * context); * xmlOutputMatchCallback: * @filename: the filename or URI * - * Callback used in the I/O Output API to detect if the current handler + * Callback used in the I/O Output API to detect if the current handler * can provide output fonctionnalities for this resource. * * Returns 1 if yes and 0 if another Output module should be used @@ -126,11 +126,11 @@ struct _xmlParserInputBuffer { void* context; xmlInputReadCallback readcallback; xmlInputCloseCallback closecallback; - + xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */ - - xmlBufferPtr buffer; /* Local buffer encoded in UTF-8 */ - xmlBufferPtr raw; /* if encoder != NULL buffer for raw input */ + + xmlBufPtr buffer; /* Local buffer encoded in UTF-8 */ + xmlBufPtr raw; /* if encoder != NULL buffer for raw input */ int compressed; /* -1=unknown, 0=not compressed, 1=compressed */ int error; unsigned long rawconsumed;/* amount consumed from raw */ @@ -142,11 +142,11 @@ struct _xmlOutputBuffer { void* context; xmlOutputWriteCallback writecallback; xmlOutputCloseCallback closecallback; - + xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */ - - xmlBufferPtr buffer; /* Local buffer encoded in UTF-8 or ISOLatin */ - xmlBufferPtr conv; /* if encoder != NULL buffer for output */ + + xmlBufPtr buffer; /* Local buffer encoded in UTF-8 or ISOLatin */ + xmlBufPtr conv; /* if encoder != NULL buffer for output */ int written; /* total number of byte written */ int error; }; @@ -155,13 +155,13 @@ struct _xmlOutputBuffer { /* * Interfaces for input */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlCleanupInputCallbacks (void); XMLPUBFUN int XMLCALL xmlPopInputCallbacks (void); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlRegisterDefaultInputCallbacks (void); XMLPUBFUN xmlParserInputBufferPtr XMLCALL xmlAllocParserInputBuffer (xmlCharEncoding enc); @@ -186,22 +186,22 @@ XMLPUBFUN xmlParserInputBufferPtr XMLCALL xmlInputCloseCallback ioclose, void *ioctx, xmlCharEncoding enc); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlParserInputBufferRead (xmlParserInputBufferPtr in, int len); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlParserInputBufferGrow (xmlParserInputBufferPtr in, int len); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlParserInputBufferPush (xmlParserInputBufferPtr in, int len, const char *buf); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeParserInputBuffer (xmlParserInputBufferPtr in); -XMLPUBFUN char * XMLCALL +XMLPUBFUN char * XMLCALL xmlParserGetDirectory (const char *filename); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlRegisterInputCallbacks (xmlInputMatchCallback matchFunc, xmlInputOpenCallback openFunc, xmlInputReadCallback readFunc, @@ -215,9 +215,9 @@ xmlParserInputBufferPtr /* * Interfaces for output */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlCleanupOutputCallbacks (void); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlRegisterDefaultOutputCallbacks(void); XMLPUBFUN xmlOutputBufferPtr XMLCALL xmlAllocOutputBuffer (xmlCharEncodingHandlerPtr encoder); @@ -245,24 +245,30 @@ XMLPUBFUN xmlOutputBufferPtr XMLCALL void *ioctx, xmlCharEncodingHandlerPtr encoder); -XMLPUBFUN int XMLCALL +/* Couple of APIs to get the output without digging into the buffers */ +XMLPUBFUN const xmlChar * XMLCALL + xmlOutputBufferGetContent (xmlOutputBufferPtr out); +XMLPUBFUN size_t XMLCALL + xmlOutputBufferGetSize (xmlOutputBufferPtr out); + +XMLPUBFUN int XMLCALL xmlOutputBufferWrite (xmlOutputBufferPtr out, int len, const char *buf); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlOutputBufferWriteString (xmlOutputBufferPtr out, const char *str); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlOutputBufferWriteEscape (xmlOutputBufferPtr out, const xmlChar *str, xmlCharEncodingOutputFunc escaping); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlOutputBufferFlush (xmlOutputBufferPtr out); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlOutputBufferClose (xmlOutputBufferPtr out); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlRegisterOutputCallbacks (xmlOutputMatchCallback matchFunc, xmlOutputOpenCallback openFunc, xmlOutputWriteCallback writeFunc, @@ -275,10 +281,10 @@ xmlOutputBufferPtr #ifdef LIBXML_HTTP_ENABLED /* This function only exists if HTTP support built into the library */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlRegisterHTTPPostCallbacks (void ); #endif /* LIBXML_HTTP_ENABLED */ - + #endif /* LIBXML_OUTPUT_ENABLED */ XMLPUBFUN xmlParserInputPtr XMLCALL @@ -288,69 +294,69 @@ XMLPUBFUN xmlParserInputPtr XMLCALL /* * A predefined entity loader disabling network accesses */ -XMLPUBFUN xmlParserInputPtr XMLCALL +XMLPUBFUN xmlParserInputPtr XMLCALL xmlNoNetExternalEntityLoader (const char *URL, const char *ID, xmlParserCtxtPtr ctxt); -/* - * xmlNormalizeWindowsPath is obsolete, don't use it. +/* + * xmlNormalizeWindowsPath is obsolete, don't use it. * Check xmlCanonicPath in uri.h for a better alternative. */ -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlNormalizeWindowsPath (const xmlChar *path); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlCheckFilename (const char *path); /** - * Default 'file://' protocol callbacks + * Default 'file://' protocol callbacks */ -XMLPUBFUN int XMLCALL - xmlFileMatch (const char *filename); -XMLPUBFUN void * XMLCALL - xmlFileOpen (const char *filename); -XMLPUBFUN int XMLCALL - xmlFileRead (void * context, - char * buffer, +XMLPUBFUN int XMLCALL + xmlFileMatch (const char *filename); +XMLPUBFUN void * XMLCALL + xmlFileOpen (const char *filename); +XMLPUBFUN int XMLCALL + xmlFileRead (void * context, + char * buffer, int len); -XMLPUBFUN int XMLCALL - xmlFileClose (void * context); +XMLPUBFUN int XMLCALL + xmlFileClose (void * context); /** - * Default 'http://' protocol callbacks + * Default 'http://' protocol callbacks */ #ifdef LIBXML_HTTP_ENABLED -XMLPUBFUN int XMLCALL - xmlIOHTTPMatch (const char *filename); -XMLPUBFUN void * XMLCALL - xmlIOHTTPOpen (const char *filename); +XMLPUBFUN int XMLCALL + xmlIOHTTPMatch (const char *filename); +XMLPUBFUN void * XMLCALL + xmlIOHTTPOpen (const char *filename); #ifdef LIBXML_OUTPUT_ENABLED -XMLPUBFUN void * XMLCALL +XMLPUBFUN void * XMLCALL xmlIOHTTPOpenW (const char * post_uri, int compression ); #endif /* LIBXML_OUTPUT_ENABLED */ -XMLPUBFUN int XMLCALL - xmlIOHTTPRead (void * context, - char * buffer, +XMLPUBFUN int XMLCALL + xmlIOHTTPRead (void * context, + char * buffer, int len); -XMLPUBFUN int XMLCALL - xmlIOHTTPClose (void * context); +XMLPUBFUN int XMLCALL + xmlIOHTTPClose (void * context); #endif /* LIBXML_HTTP_ENABLED */ /** - * Default 'ftp://' protocol callbacks + * Default 'ftp://' protocol callbacks */ -#ifdef LIBXML_FTP_ENABLED -XMLPUBFUN int XMLCALL - xmlIOFTPMatch (const char *filename); -XMLPUBFUN void * XMLCALL - xmlIOFTPOpen (const char *filename); -XMLPUBFUN int XMLCALL - xmlIOFTPRead (void * context, - char * buffer, +#ifdef LIBXML_FTP_ENABLED +XMLPUBFUN int XMLCALL + xmlIOFTPMatch (const char *filename); +XMLPUBFUN void * XMLCALL + xmlIOFTPOpen (const char *filename); +XMLPUBFUN int XMLCALL + xmlIOFTPRead (void * context, + char * buffer, int len); -XMLPUBFUN int XMLCALL - xmlIOFTPClose (void * context); +XMLPUBFUN int XMLCALL + xmlIOFTPClose (void * context); #endif /* LIBXML_FTP_ENABLED */ #ifdef __cplusplus diff --git a/include/libxml/xmlautomata.h b/include/libxml/xmlautomata.h index f98b55e..bf1b131 100644 --- a/include/libxml/xmlautomata.h +++ b/include/libxml/xmlautomata.h @@ -40,25 +40,25 @@ typedef xmlAutomataState *xmlAutomataStatePtr; /* * Building API */ -XMLPUBFUN xmlAutomataPtr XMLCALL +XMLPUBFUN xmlAutomataPtr XMLCALL xmlNewAutomata (void); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlFreeAutomata (xmlAutomataPtr am); -XMLPUBFUN xmlAutomataStatePtr XMLCALL +XMLPUBFUN xmlAutomataStatePtr XMLCALL xmlAutomataGetInitState (xmlAutomataPtr am); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlAutomataSetFinalState (xmlAutomataPtr am, xmlAutomataStatePtr state); -XMLPUBFUN xmlAutomataStatePtr XMLCALL +XMLPUBFUN xmlAutomataStatePtr XMLCALL xmlAutomataNewState (xmlAutomataPtr am); -XMLPUBFUN xmlAutomataStatePtr XMLCALL +XMLPUBFUN xmlAutomataStatePtr XMLCALL xmlAutomataNewTransition (xmlAutomataPtr am, xmlAutomataStatePtr from, xmlAutomataStatePtr to, const xmlChar *token, void *data); -XMLPUBFUN xmlAutomataStatePtr XMLCALL +XMLPUBFUN xmlAutomataStatePtr XMLCALL xmlAutomataNewTransition2 (xmlAutomataPtr am, xmlAutomataStatePtr from, xmlAutomataStatePtr to, @@ -73,7 +73,7 @@ XMLPUBFUN xmlAutomataStatePtr XMLCALL const xmlChar *token2, void *data); -XMLPUBFUN xmlAutomataStatePtr XMLCALL +XMLPUBFUN xmlAutomataStatePtr XMLCALL xmlAutomataNewCountTrans (xmlAutomataPtr am, xmlAutomataStatePtr from, xmlAutomataStatePtr to, @@ -81,7 +81,7 @@ XMLPUBFUN xmlAutomataStatePtr XMLCALL int min, int max, void *data); -XMLPUBFUN xmlAutomataStatePtr XMLCALL +XMLPUBFUN xmlAutomataStatePtr XMLCALL xmlAutomataNewCountTrans2 (xmlAutomataPtr am, xmlAutomataStatePtr from, xmlAutomataStatePtr to, @@ -90,7 +90,7 @@ XMLPUBFUN xmlAutomataStatePtr XMLCALL int min, int max, void *data); -XMLPUBFUN xmlAutomataStatePtr XMLCALL +XMLPUBFUN xmlAutomataStatePtr XMLCALL xmlAutomataNewOnceTrans (xmlAutomataPtr am, xmlAutomataStatePtr from, xmlAutomataStatePtr to, @@ -99,46 +99,46 @@ XMLPUBFUN xmlAutomataStatePtr XMLCALL int max, void *data); XMLPUBFUN xmlAutomataStatePtr XMLCALL - xmlAutomataNewOnceTrans2 (xmlAutomataPtr am, + xmlAutomataNewOnceTrans2 (xmlAutomataPtr am, xmlAutomataStatePtr from, - xmlAutomataStatePtr to, + xmlAutomataStatePtr to, const xmlChar *token, const xmlChar *token2, - int min, - int max, + int min, + int max, void *data); -XMLPUBFUN xmlAutomataStatePtr XMLCALL +XMLPUBFUN xmlAutomataStatePtr XMLCALL xmlAutomataNewAllTrans (xmlAutomataPtr am, xmlAutomataStatePtr from, xmlAutomataStatePtr to, int lax); -XMLPUBFUN xmlAutomataStatePtr XMLCALL +XMLPUBFUN xmlAutomataStatePtr XMLCALL xmlAutomataNewEpsilon (xmlAutomataPtr am, xmlAutomataStatePtr from, xmlAutomataStatePtr to); -XMLPUBFUN xmlAutomataStatePtr XMLCALL +XMLPUBFUN xmlAutomataStatePtr XMLCALL xmlAutomataNewCountedTrans (xmlAutomataPtr am, xmlAutomataStatePtr from, xmlAutomataStatePtr to, int counter); -XMLPUBFUN xmlAutomataStatePtr XMLCALL +XMLPUBFUN xmlAutomataStatePtr XMLCALL xmlAutomataNewCounterTrans (xmlAutomataPtr am, xmlAutomataStatePtr from, xmlAutomataStatePtr to, int counter); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlAutomataNewCounter (xmlAutomataPtr am, int min, int max); -XMLPUBFUN xmlRegexpPtr XMLCALL +XMLPUBFUN xmlRegexpPtr XMLCALL xmlAutomataCompile (xmlAutomataPtr am); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlAutomataIsDeterminist (xmlAutomataPtr am); #ifdef __cplusplus } -#endif +#endif #endif /* LIBXML_AUTOMATA_ENABLED */ #endif /* LIBXML_REGEXP_ENABLED */ diff --git a/include/libxml/xmlerror.h b/include/libxml/xmlerror.h index e924211..48ea145 100644 --- a/include/libxml/xmlerror.h +++ b/include/libxml/xmlerror.h @@ -62,7 +62,9 @@ typedef enum { XML_FROM_WRITER, /* The xmlwriter module */ XML_FROM_MODULE, /* The dynamically loaded module module*/ XML_FROM_I18N, /* The module handling character conversion */ - XML_FROM_SCHEMATRONV /* The Schematron validator module */ + XML_FROM_SCHEMATRONV,/* The Schematron validator module */ + XML_FROM_BUFFER, /* The buffers module */ + XML_FROM_URI /* The URI module */ } xmlErrorDomain; /** @@ -205,6 +207,7 @@ typedef enum { XML_WAR_ENTITY_REDEFINED, /* 107 */ XML_ERR_UNKNOWN_VERSION, /* 108 */ XML_ERR_VERSION_MISMATCH, /* 109 */ + XML_ERR_NAME_TOO_LONG, /* 110 */ XML_NS_ERR_XML_NAMESPACE = 200, XML_NS_ERR_UNDEFINED_NAMESPACE, /* 201 */ XML_NS_ERR_QNAME, /* 202 */ @@ -825,11 +828,8 @@ typedef enum { XML_I18N_NO_HANDLER, /* 6001 */ XML_I18N_EXCESS_HANDLER, /* 6002 */ XML_I18N_CONV_FAILED, /* 6003 */ - XML_I18N_NO_OUTPUT /* 6004 */ -#if 0 - XML_CHECK_, /* 5033 */ - XML_CHECK_X /* 503 */ -#endif + XML_I18N_NO_OUTPUT, /* 6004 */ + XML_BUF_OVERFLOW = 7000 } xmlParserErrors; /** diff --git a/include/libxml/xmlexports.h b/include/libxml/xmlexports.h index c6516b4..2c79f81 100644 --- a/include/libxml/xmlexports.h +++ b/include/libxml/xmlexports.h @@ -43,7 +43,7 @@ /** * XMLCDECL: * - * Macro which declares the calling convention for exported functions that + * Macro which declares the calling convention for exported functions that * use '...'. */ #define XMLCDECL diff --git a/include/libxml/xmlmodule.h b/include/libxml/xmlmodule.h index 8f4a560..9667820 100644 --- a/include/libxml/xmlmodule.h +++ b/include/libxml/xmlmodule.h @@ -50,7 +50,7 @@ XMLPUBFUN int XMLCALL xmlModuleFree (xmlModulePtr module); #ifdef __cplusplus } -#endif +#endif #endif /* LIBXML_MODULES_ENABLED */ diff --git a/include/libxml/xmlreader.h b/include/libxml/xmlreader.h index f24e9bb..2c99e3a 100644 --- a/include/libxml/xmlreader.h +++ b/include/libxml/xmlreader.h @@ -130,16 +130,16 @@ XMLPUBFUN int XMLCALL #ifdef LIBXML_WRITER_ENABLED XMLPUBFUN xmlChar * XMLCALL - xmlTextReaderReadInnerXml (xmlTextReaderPtr reader); + xmlTextReaderReadInnerXml(xmlTextReaderPtr reader); XMLPUBFUN xmlChar * XMLCALL - xmlTextReaderReadOuterXml (xmlTextReaderPtr reader); + xmlTextReaderReadOuterXml(xmlTextReaderPtr reader); #endif XMLPUBFUN xmlChar * XMLCALL - xmlTextReaderReadString (xmlTextReaderPtr reader); + xmlTextReaderReadString (xmlTextReaderPtr reader); XMLPUBFUN int XMLCALL - xmlTextReaderReadAttributeValue (xmlTextReaderPtr reader); + xmlTextReaderReadAttributeValue(xmlTextReaderPtr reader); /* * Attributes of the node @@ -397,27 +397,26 @@ typedef void * xmlTextReaderLocatorPtr; * * Signature of an error callback from a reader parser */ -typedef void (XMLCALL *xmlTextReaderErrorFunc)(void *arg, - const char *msg, - xmlParserSeverities severity, - xmlTextReaderLocatorPtr locator); +typedef void (XMLCALL *xmlTextReaderErrorFunc)(void *arg, + const char *msg, + xmlParserSeverities severity, + xmlTextReaderLocatorPtr locator); XMLPUBFUN int XMLCALL - xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator); -/*int xmlTextReaderLocatorLinePosition(xmlTextReaderLocatorPtr locator);*/ + xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator); XMLPUBFUN xmlChar * XMLCALL - xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator); + xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator); XMLPUBFUN void XMLCALL - xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader, - xmlTextReaderErrorFunc f, - void *arg); + xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader, + xmlTextReaderErrorFunc f, + void *arg); XMLPUBFUN void XMLCALL - xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader, - xmlStructuredErrorFunc f, - void *arg); + xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader, + xmlStructuredErrorFunc f, + void *arg); XMLPUBFUN void XMLCALL - xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader, - xmlTextReaderErrorFunc *f, - void **arg); + xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader, + xmlTextReaderErrorFunc *f, + void **arg); #endif /* LIBXML_READER_ENABLED */ diff --git a/include/libxml/xmlschemas.h b/include/libxml/xmlschemas.h index 752bc3a..97930c7 100644 --- a/include/libxml/xmlschemas.h +++ b/include/libxml/xmlschemas.h @@ -92,7 +92,8 @@ typedef xmlSchema *xmlSchemaPtr; * * Signature of an error callback from an XSD validation */ -typedef void (XMLCDECL *xmlSchemaValidityErrorFunc) (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3); +typedef void (XMLCDECL *xmlSchemaValidityErrorFunc) + (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3); /** * xmlSchemaValidityWarningFunc: @@ -102,7 +103,8 @@ typedef void (XMLCDECL *xmlSchemaValidityErrorFunc) (void *ctx, const char *msg, * * Signature of a warning callback from an XSD validation */ -typedef void (XMLCDECL *xmlSchemaValidityWarningFunc) (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3); +typedef void (XMLCDECL *xmlSchemaValidityWarningFunc) + (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3); /** * A schemas validation context @@ -113,6 +115,22 @@ typedef xmlSchemaParserCtxt *xmlSchemaParserCtxtPtr; typedef struct _xmlSchemaValidCtxt xmlSchemaValidCtxt; typedef xmlSchemaValidCtxt *xmlSchemaValidCtxtPtr; +/** + * xmlSchemaValidityLocatorFunc: + * @ctx: user provided context + * @file: returned file information + * @line: returned line information + * + * A schemas validation locator, a callback called by the validator. + * This is used when file or node informations are not available + * to find out what file and line number are affected + * + * Returns: 0 in case of success and -1 in case of error + */ + +typedef int (XMLCDECL *xmlSchemaValidityLocatorFunc) (void *ctx, + const char **file, unsigned long *line); + /* * Interfaces for parsing. */ @@ -171,6 +189,9 @@ XMLPUBFUN int XMLCALL XMLPUBFUN int XMLCALL xmlSchemaSetValidOptions (xmlSchemaValidCtxtPtr ctxt, int options); +XMLPUBFUN void XMLCALL + xmlSchemaValidateSetFilename(xmlSchemaValidCtxtPtr vctxt, + const char *filename); XMLPUBFUN int XMLCALL xmlSchemaValidCtxtGetOptions(xmlSchemaValidCtxtPtr ctxt); @@ -210,6 +231,13 @@ XMLPUBFUN xmlSchemaSAXPlugPtr XMLCALL void **user_data); XMLPUBFUN int XMLCALL xmlSchemaSAXUnplug (xmlSchemaSAXPlugPtr plug); + + +XMLPUBFUN void XMLCALL + xmlSchemaValidateSetLocator (xmlSchemaValidCtxtPtr vctxt, + xmlSchemaValidityLocatorFunc f, + void *ctxt); + #ifdef __cplusplus } #endif diff --git a/include/libxml/xmlschemastypes.h b/include/libxml/xmlschemastypes.h index 9a3a7a1..35d48d4 100644 --- a/include/libxml/xmlschemastypes.h +++ b/include/libxml/xmlschemastypes.h @@ -30,23 +30,23 @@ typedef enum { XML_SCHEMA_WHITESPACE_COLLAPSE = 3 } xmlSchemaWhitespaceValueType; -XMLPUBFUN void XMLCALL - xmlSchemaInitTypes (void); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL + xmlSchemaInitTypes (void); +XMLPUBFUN void XMLCALL xmlSchemaCleanupTypes (void); -XMLPUBFUN xmlSchemaTypePtr XMLCALL +XMLPUBFUN xmlSchemaTypePtr XMLCALL xmlSchemaGetPredefinedType (const xmlChar *name, const xmlChar *ns); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSchemaValidatePredefinedType (xmlSchemaTypePtr type, const xmlChar *value, xmlSchemaValPtr *val); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSchemaValPredefTypeNode (xmlSchemaTypePtr type, const xmlChar *value, xmlSchemaValPtr *val, xmlNodePtr node); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSchemaValidateFacet (xmlSchemaTypePtr base, xmlSchemaFacetPtr facet, const xmlChar *value, @@ -54,25 +54,25 @@ XMLPUBFUN int XMLCALL XMLPUBFUN int XMLCALL xmlSchemaValidateFacetWhtsp (xmlSchemaFacetPtr facet, xmlSchemaWhitespaceValueType fws, - xmlSchemaValType valType, + xmlSchemaValType valType, const xmlChar *value, xmlSchemaValPtr val, xmlSchemaWhitespaceValueType ws); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSchemaFreeValue (xmlSchemaValPtr val); -XMLPUBFUN xmlSchemaFacetPtr XMLCALL +XMLPUBFUN xmlSchemaFacetPtr XMLCALL xmlSchemaNewFacet (void); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSchemaCheckFacet (xmlSchemaFacetPtr facet, xmlSchemaTypePtr typeDecl, xmlSchemaParserCtxtPtr ctxt, const xmlChar *name); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlSchemaFreeFacet (xmlSchemaFacetPtr facet); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlSchemaCompareValues (xmlSchemaValPtr x, xmlSchemaValPtr y); -XMLPUBFUN xmlSchemaTypePtr XMLCALL +XMLPUBFUN xmlSchemaTypePtr XMLCALL xmlSchemaGetBuiltInListSimpleTypeItemType (xmlSchemaTypePtr type); XMLPUBFUN int XMLCALL xmlSchemaValidateListSimpleTypeFacet (xmlSchemaFacetPtr facet, @@ -82,7 +82,7 @@ XMLPUBFUN int XMLCALL XMLPUBFUN xmlSchemaTypePtr XMLCALL xmlSchemaGetBuiltInType (xmlSchemaValType type); XMLPUBFUN int XMLCALL - xmlSchemaIsBuiltInTypeFacet (xmlSchemaTypePtr type, + xmlSchemaIsBuiltInTypeFacet (xmlSchemaTypePtr type, int facetType); XMLPUBFUN xmlChar * XMLCALL xmlSchemaCollapseString (const xmlChar *value); @@ -91,7 +91,7 @@ XMLPUBFUN xmlChar * XMLCALL XMLPUBFUN unsigned long XMLCALL xmlSchemaGetFacetValueAsULong (xmlSchemaFacetPtr facet); XMLPUBFUN int XMLCALL - xmlSchemaValidateLengthFacet (xmlSchemaTypePtr type, + xmlSchemaValidateLengthFacet (xmlSchemaTypePtr type, xmlSchemaFacetPtr facet, const xmlChar *value, xmlSchemaValPtr val, @@ -100,19 +100,19 @@ XMLPUBFUN int XMLCALL xmlSchemaValidateLengthFacetWhtsp(xmlSchemaFacetPtr facet, xmlSchemaValType valType, const xmlChar *value, - xmlSchemaValPtr val, + xmlSchemaValPtr val, unsigned long *length, xmlSchemaWhitespaceValueType ws); XMLPUBFUN int XMLCALL - xmlSchemaValPredefTypeNodeNoNorm(xmlSchemaTypePtr type, + xmlSchemaValPredefTypeNodeNoNorm(xmlSchemaTypePtr type, const xmlChar *value, - xmlSchemaValPtr *val, + xmlSchemaValPtr *val, xmlNodePtr node); XMLPUBFUN int XMLCALL xmlSchemaGetCanonValue (xmlSchemaValPtr val, const xmlChar **retValue); XMLPUBFUN int XMLCALL - xmlSchemaGetCanonValueWhtsp (xmlSchemaValPtr val, + xmlSchemaGetCanonValueWhtsp (xmlSchemaValPtr val, const xmlChar **retValue, xmlSchemaWhitespaceValueType ws); XMLPUBFUN int XMLCALL diff --git a/include/libxml/xmlstring.h b/include/libxml/xmlstring.h index 0bc6888..2036236 100644 --- a/include/libxml/xmlstring.h +++ b/include/libxml/xmlstring.h @@ -113,16 +113,16 @@ XMLPUBFUN int XMLCALL XMLPUBFUN int XMLCALL xmlUTF8Strsize (const xmlChar *utf, int len); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlUTF8Strndup (const xmlChar *utf, int len); -XMLPUBFUN const xmlChar * XMLCALL +XMLPUBFUN const xmlChar * XMLCALL xmlUTF8Strpos (const xmlChar *utf, int pos); XMLPUBFUN int XMLCALL xmlUTF8Strloc (const xmlChar *utf, const xmlChar *utfchar); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlUTF8Strsub (const xmlChar *utf, int start, int len); diff --git a/include/libxml/xmlversion.h b/include/libxml/xmlversion.h index 863c422..36aa5af 100644 --- a/include/libxml/xmlversion.h +++ b/include/libxml/xmlversion.h @@ -29,28 +29,28 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(int version); * * the version string like "1.2.3" */ -#define LIBXML_DOTTED_VERSION "2.8.0" +#define LIBXML_DOTTED_VERSION "2.9.0" /** * LIBXML_VERSION: * * the version number: 1.2.3 value is 10203 */ -#define LIBXML_VERSION 20800 +#define LIBXML_VERSION 20900 /** * LIBXML_VERSION_STRING: * * the version number string, 1.2.3 value is "10203" */ -#define LIBXML_VERSION_STRING "20800" +#define LIBXML_VERSION_STRING "20900" /** * LIBXML_VERSION_EXTRA: * * extra version information, used to show a CVS compilation */ -#define LIBXML_VERSION_EXTRA "-GITv2.8.0-rc2-1-g22030ef" +#define LIBXML_VERSION_EXTRA "-GITv2.9.0-rc2-5-g7651606" /** * LIBXML_TEST_VERSION: @@ -58,7 +58,7 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(int version); * Macro to check that the libxml version in use is compatible with * the version the software has been compiled against */ -#define LIBXML_TEST_VERSION xmlCheckVersion(20800); +#define LIBXML_TEST_VERSION xmlCheckVersion(20900); #ifndef VMS #if 0 @@ -412,7 +412,11 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(int version); */ #ifndef ATTRIBUTE_UNUSED -#define ATTRIBUTE_UNUSED __attribute__((unused)) +# if ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7))) +# define ATTRIBUTE_UNUSED __attribute__((unused)) +# else +# define ATTRIBUTE_UNUSED +# endif #endif /** diff --git a/include/libxml/xmlversion.h.in b/include/libxml/xmlversion.h.in index ddd4633..c98e7ca 100644 --- a/include/libxml/xmlversion.h.in +++ b/include/libxml/xmlversion.h.in @@ -412,7 +412,11 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(int version); */ #ifndef ATTRIBUTE_UNUSED -#define ATTRIBUTE_UNUSED __attribute__((unused)) +# if ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7))) +# define ATTRIBUTE_UNUSED __attribute__((unused)) +# else +# define ATTRIBUTE_UNUSED +# endif #endif /** diff --git a/include/libxml/xmlwriter.h b/include/libxml/xmlwriter.h index 91e683c..dd5add3 100644 --- a/include/libxml/xmlwriter.h +++ b/include/libxml/xmlwriter.h @@ -1,4 +1,3 @@ - /* * Summary: text writing API for XML * Description: text writing API for XML @@ -471,6 +470,10 @@ extern "C" { xmlTextWriterSetIndentString(xmlTextWriterPtr writer, const xmlChar * str); + XMLPUBFUN int XMLCALL + xmlTextWriterSetQuoteChar(xmlTextWriterPtr writer, xmlChar quotechar); + + /* * misc */ diff --git a/include/libxml/xpath.h b/include/libxml/xpath.h index ddd9dd8..8819a29 100644 --- a/include/libxml/xpath.h +++ b/include/libxml/xpath.h @@ -33,7 +33,7 @@ extern "C" { #endif #endif /* LIBXML_XPATH_ENABLED or LIBXML_SCHEMAS_ENABLED */ - + #ifdef LIBXML_XPATH_ENABLED typedef struct _xmlXPathContext xmlXPathContext; @@ -69,7 +69,8 @@ typedef enum { XPATH_ENCODING_ERROR, XPATH_INVALID_CHAR_ERROR, XPATH_INVALID_CTXT, - XPATH_STACK_ERROR + XPATH_STACK_ERROR, + XPATH_FORBID_VARIABLE_ERROR } xmlXPathError; /* @@ -272,11 +273,11 @@ typedef xmlXPathFunction (*xmlXPathFuncLookupFunc) (void *ctxt, * * Expression evaluation occurs with respect to a context. * he context consists of: - * - a node (the context node) - * - a node list (the context node list) - * - a set of variable bindings - * - a function library - * - the set of namespace declarations in scope for the expression + * - a node (the context node) + * - a node list (the context node list) + * - a set of variable bindings + * - a function library + * - the set of namespace declarations in scope for the expression * Following the switch to hash tables, this need to be trimmed up at * the next binary incompatible release. * The node may be modified when the context is passed to libxml2 @@ -420,7 +421,7 @@ XMLPUBVAR double xmlXPathNINF; * @index is out of range (0 to length-1) */ #define xmlXPathNodeSetItem(ns, index) \ - ((((ns) != NULL) && \ + ((((ns) != NULL) && \ ((index) >= 0) && ((index) < (ns)->nodeNr)) ? \ (ns)->nodeTab[(index)] \ : NULL) @@ -436,64 +437,64 @@ XMLPUBVAR double xmlXPathNINF; (((ns) == NULL) || ((ns)->nodeNr == 0) || ((ns)->nodeTab == NULL)) -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPathFreeObject (xmlXPathObjectPtr obj); -XMLPUBFUN xmlNodeSetPtr XMLCALL +XMLPUBFUN xmlNodeSetPtr XMLCALL xmlXPathNodeSetCreate (xmlNodePtr val); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPathFreeNodeSetList (xmlXPathObjectPtr obj); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPathFreeNodeSet (xmlNodeSetPtr obj); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPathObjectCopy (xmlXPathObjectPtr val); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlXPathCmpNodes (xmlNodePtr node1, xmlNodePtr node2); /** * Conversion functions to basic types. */ -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlXPathCastNumberToBoolean (double val); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlXPathCastStringToBoolean (const xmlChar * val); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlXPathCastNodeSetToBoolean(xmlNodeSetPtr ns); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlXPathCastToBoolean (xmlXPathObjectPtr val); -XMLPUBFUN double XMLCALL +XMLPUBFUN double XMLCALL xmlXPathCastBooleanToNumber (int val); -XMLPUBFUN double XMLCALL +XMLPUBFUN double XMLCALL xmlXPathCastStringToNumber (const xmlChar * val); -XMLPUBFUN double XMLCALL +XMLPUBFUN double XMLCALL xmlXPathCastNodeToNumber (xmlNodePtr node); -XMLPUBFUN double XMLCALL +XMLPUBFUN double XMLCALL xmlXPathCastNodeSetToNumber (xmlNodeSetPtr ns); -XMLPUBFUN double XMLCALL +XMLPUBFUN double XMLCALL xmlXPathCastToNumber (xmlXPathObjectPtr val); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlXPathCastBooleanToString (int val); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlXPathCastNumberToString (double val); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlXPathCastNodeToString (xmlNodePtr node); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlXPathCastNodeSetToString (xmlNodeSetPtr ns); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlXPathCastToString (xmlXPathObjectPtr val); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPathConvertBoolean (xmlXPathObjectPtr val); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPathConvertNumber (xmlXPathObjectPtr val); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPathConvertString (xmlXPathObjectPtr val); /** * Context handling. */ -XMLPUBFUN xmlXPathContextPtr XMLCALL +XMLPUBFUN xmlXPathContextPtr XMLCALL xmlXPathNewContext (xmlDocPtr doc); XMLPUBFUN void XMLCALL xmlXPathFreeContext (xmlXPathContextPtr ctxt); @@ -505,36 +506,36 @@ XMLPUBFUN int XMLCALL /** * Evaluation functions. */ -XMLPUBFUN long XMLCALL +XMLPUBFUN long XMLCALL xmlXPathOrderDocElems (xmlDocPtr doc); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPathEval (const xmlChar *str, xmlXPathContextPtr ctx); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPathEvalExpression (const xmlChar *str, xmlXPathContextPtr ctxt); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlXPathEvalPredicate (xmlXPathContextPtr ctxt, xmlXPathObjectPtr res); /** * Separate compilation/evaluation entry points. */ -XMLPUBFUN xmlXPathCompExprPtr XMLCALL +XMLPUBFUN xmlXPathCompExprPtr XMLCALL xmlXPathCompile (const xmlChar *str); -XMLPUBFUN xmlXPathCompExprPtr XMLCALL +XMLPUBFUN xmlXPathCompExprPtr XMLCALL xmlXPathCtxtCompile (xmlXPathContextPtr ctxt, - const xmlChar *str); -XMLPUBFUN xmlXPathObjectPtr XMLCALL + const xmlChar *str); +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPathCompiledEval (xmlXPathCompExprPtr comp, xmlXPathContextPtr ctx); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlXPathCompiledEvalToBoolean(xmlXPathCompExprPtr comp, xmlXPathContextPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPathFreeCompExpr (xmlXPathCompExprPtr comp); #endif /* LIBXML_XPATH_ENABLED */ #if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPathInit (void); XMLPUBFUN int XMLCALL xmlXPathIsNaN (double val); diff --git a/include/libxml/xpathInternals.h b/include/libxml/xpathInternals.h index dcd5243..70c9db9 100644 --- a/include/libxml/xpathInternals.h +++ b/include/libxml/xpathInternals.h @@ -100,16 +100,16 @@ extern "C" { */ #define xmlXPathGetContextNode(ctxt) ((ctxt)->context->node) -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlXPathPopBoolean (xmlXPathParserContextPtr ctxt); -XMLPUBFUN double XMLCALL - xmlXPathPopNumber (xmlXPathParserContextPtr ctxt); -XMLPUBFUN xmlChar * XMLCALL - xmlXPathPopString (xmlXPathParserContextPtr ctxt); -XMLPUBFUN xmlNodeSetPtr XMLCALL - xmlXPathPopNodeSet (xmlXPathParserContextPtr ctxt); -XMLPUBFUN void * XMLCALL - xmlXPathPopExternal (xmlXPathParserContextPtr ctxt); +XMLPUBFUN double XMLCALL + xmlXPathPopNumber (xmlXPathParserContextPtr ctxt); +XMLPUBFUN xmlChar * XMLCALL + xmlXPathPopString (xmlXPathParserContextPtr ctxt); +XMLPUBFUN xmlNodeSetPtr XMLCALL + xmlXPathPopNodeSet (xmlXPathParserContextPtr ctxt); +XMLPUBFUN void * XMLCALL + xmlXPathPopExternal (xmlXPathParserContextPtr ctxt); /** * xmlXPathReturnBoolean: @@ -296,7 +296,9 @@ XMLPUBFUN void * XMLCALL #define CHECK_ARITY(x) \ if (ctxt == NULL) return; \ if (nargs != (x)) \ - XP_ERROR(XPATH_INVALID_ARITY); + XP_ERROR(XPATH_INVALID_ARITY); \ + if (ctxt->valueNr < ctxt->valueFrame + (x)) \ + XP_ERROR(XPATH_STACK_ERROR); /** * CAST_TO_STRING: @@ -329,7 +331,7 @@ XMLPUBFUN void * XMLCALL * Variable Lookup forwarding. */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPathRegisterVariableLookup (xmlXPathContextPtr ctxt, xmlXPathVariableLookupFunc f, void *data); @@ -338,7 +340,7 @@ XMLPUBFUN void XMLCALL * Function Lookup forwarding. */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPathRegisterFuncLookup (xmlXPathContextPtr ctxt, xmlXPathFuncLookupFunc f, void *funcCtxt); @@ -346,7 +348,7 @@ XMLPUBFUN void XMLCALL /* * Error reporting. */ -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPatherror (xmlXPathParserContextPtr ctxt, const char *file, int line, @@ -357,11 +359,11 @@ XMLPUBFUN void XMLCALL int error); #ifdef LIBXML_DEBUG_ENABLED -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPathDebugDumpObject (FILE *output, xmlXPathObjectPtr cur, int depth); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPathDebugDumpCompExpr(FILE *output, xmlXPathCompExprPtr comp, int depth); @@ -369,48 +371,48 @@ XMLPUBFUN void XMLCALL /** * NodeSet handling. */ -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlXPathNodeSetContains (xmlNodeSetPtr cur, xmlNodePtr val); -XMLPUBFUN xmlNodeSetPtr XMLCALL +XMLPUBFUN xmlNodeSetPtr XMLCALL xmlXPathDifference (xmlNodeSetPtr nodes1, xmlNodeSetPtr nodes2); -XMLPUBFUN xmlNodeSetPtr XMLCALL +XMLPUBFUN xmlNodeSetPtr XMLCALL xmlXPathIntersection (xmlNodeSetPtr nodes1, xmlNodeSetPtr nodes2); -XMLPUBFUN xmlNodeSetPtr XMLCALL +XMLPUBFUN xmlNodeSetPtr XMLCALL xmlXPathDistinctSorted (xmlNodeSetPtr nodes); -XMLPUBFUN xmlNodeSetPtr XMLCALL +XMLPUBFUN xmlNodeSetPtr XMLCALL xmlXPathDistinct (xmlNodeSetPtr nodes); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlXPathHasSameNodes (xmlNodeSetPtr nodes1, xmlNodeSetPtr nodes2); -XMLPUBFUN xmlNodeSetPtr XMLCALL +XMLPUBFUN xmlNodeSetPtr XMLCALL xmlXPathNodeLeadingSorted (xmlNodeSetPtr nodes, xmlNodePtr node); -XMLPUBFUN xmlNodeSetPtr XMLCALL +XMLPUBFUN xmlNodeSetPtr XMLCALL xmlXPathLeadingSorted (xmlNodeSetPtr nodes1, xmlNodeSetPtr nodes2); -XMLPUBFUN xmlNodeSetPtr XMLCALL +XMLPUBFUN xmlNodeSetPtr XMLCALL xmlXPathNodeLeading (xmlNodeSetPtr nodes, xmlNodePtr node); -XMLPUBFUN xmlNodeSetPtr XMLCALL +XMLPUBFUN xmlNodeSetPtr XMLCALL xmlXPathLeading (xmlNodeSetPtr nodes1, xmlNodeSetPtr nodes2); -XMLPUBFUN xmlNodeSetPtr XMLCALL +XMLPUBFUN xmlNodeSetPtr XMLCALL xmlXPathNodeTrailingSorted (xmlNodeSetPtr nodes, xmlNodePtr node); -XMLPUBFUN xmlNodeSetPtr XMLCALL +XMLPUBFUN xmlNodeSetPtr XMLCALL xmlXPathTrailingSorted (xmlNodeSetPtr nodes1, xmlNodeSetPtr nodes2); -XMLPUBFUN xmlNodeSetPtr XMLCALL +XMLPUBFUN xmlNodeSetPtr XMLCALL xmlXPathNodeTrailing (xmlNodeSetPtr nodes, xmlNodePtr node); -XMLPUBFUN xmlNodeSetPtr XMLCALL +XMLPUBFUN xmlNodeSetPtr XMLCALL xmlXPathTrailing (xmlNodeSetPtr nodes1, xmlNodeSetPtr nodes2); @@ -419,51 +421,51 @@ XMLPUBFUN xmlNodeSetPtr XMLCALL * Extending a context. */ -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlXPathRegisterNs (xmlXPathContextPtr ctxt, const xmlChar *prefix, const xmlChar *ns_uri); -XMLPUBFUN const xmlChar * XMLCALL +XMLPUBFUN const xmlChar * XMLCALL xmlXPathNsLookup (xmlXPathContextPtr ctxt, const xmlChar *prefix); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPathRegisteredNsCleanup (xmlXPathContextPtr ctxt); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlXPathRegisterFunc (xmlXPathContextPtr ctxt, const xmlChar *name, xmlXPathFunction f); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlXPathRegisterFuncNS (xmlXPathContextPtr ctxt, const xmlChar *name, const xmlChar *ns_uri, xmlXPathFunction f); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlXPathRegisterVariable (xmlXPathContextPtr ctxt, const xmlChar *name, xmlXPathObjectPtr value); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL xmlXPathRegisterVariableNS (xmlXPathContextPtr ctxt, const xmlChar *name, const xmlChar *ns_uri, xmlXPathObjectPtr value); -XMLPUBFUN xmlXPathFunction XMLCALL +XMLPUBFUN xmlXPathFunction XMLCALL xmlXPathFunctionLookup (xmlXPathContextPtr ctxt, const xmlChar *name); -XMLPUBFUN xmlXPathFunction XMLCALL +XMLPUBFUN xmlXPathFunction XMLCALL xmlXPathFunctionLookupNS (xmlXPathContextPtr ctxt, const xmlChar *name, const xmlChar *ns_uri); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPathRegisteredFuncsCleanup (xmlXPathContextPtr ctxt); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPathVariableLookup (xmlXPathContextPtr ctxt, const xmlChar *name); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPathVariableLookupNS (xmlXPathContextPtr ctxt, const xmlChar *name, const xmlChar *ns_uri); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPathRegisteredVariablesCleanup(xmlXPathContextPtr ctxt); /** @@ -471,79 +473,79 @@ XMLPUBFUN void XMLCALL */ XMLPUBFUN xmlXPathParserContextPtr XMLCALL xmlXPathNewParserContext (const xmlChar *str, - xmlXPathContextPtr ctxt); -XMLPUBFUN void XMLCALL + xmlXPathContextPtr ctxt); +XMLPUBFUN void XMLCALL xmlXPathFreeParserContext (xmlXPathParserContextPtr ctxt); /* TODO: remap to xmlXPathValuePop and Push. */ -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL valuePop (xmlXPathParserContextPtr ctxt); -XMLPUBFUN int XMLCALL +XMLPUBFUN int XMLCALL valuePush (xmlXPathParserContextPtr ctxt, - xmlXPathObjectPtr value); + xmlXPathObjectPtr value); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPathNewString (const xmlChar *val); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPathNewCString (const char *val); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPathWrapString (xmlChar *val); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPathWrapCString (char * val); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPathNewFloat (double val); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPathNewBoolean (int val); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPathNewNodeSet (xmlNodePtr val); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPathNewValueTree (xmlNodePtr val); -XMLPUBFUN void XMLCALL +XMLPUBFUN int XMLCALL xmlXPathNodeSetAdd (xmlNodeSetPtr cur, xmlNodePtr val); -XMLPUBFUN void XMLCALL +XMLPUBFUN int XMLCALL xmlXPathNodeSetAddUnique (xmlNodeSetPtr cur, xmlNodePtr val); -XMLPUBFUN void XMLCALL - xmlXPathNodeSetAddNs (xmlNodeSetPtr cur, - xmlNodePtr node, +XMLPUBFUN int XMLCALL + xmlXPathNodeSetAddNs (xmlNodeSetPtr cur, + xmlNodePtr node, xmlNsPtr ns); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPathNodeSetSort (xmlNodeSetPtr set); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPathRoot (xmlXPathParserContextPtr ctxt); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPathEvalExpr (xmlXPathParserContextPtr ctxt); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlXPathParseName (xmlXPathParserContextPtr ctxt); -XMLPUBFUN xmlChar * XMLCALL +XMLPUBFUN xmlChar * XMLCALL xmlXPathParseNCName (xmlXPathParserContextPtr ctxt); /* * Existing functions. */ -XMLPUBFUN double XMLCALL +XMLPUBFUN double XMLCALL xmlXPathStringEvalNumber (const xmlChar *str); -XMLPUBFUN int XMLCALL - xmlXPathEvaluatePredicateResult (xmlXPathParserContextPtr ctxt, +XMLPUBFUN int XMLCALL + xmlXPathEvaluatePredicateResult (xmlXPathParserContextPtr ctxt, xmlXPathObjectPtr res); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPathRegisterAllFunctions (xmlXPathContextPtr ctxt); -XMLPUBFUN xmlNodeSetPtr XMLCALL - xmlXPathNodeSetMerge (xmlNodeSetPtr val1, +XMLPUBFUN xmlNodeSetPtr XMLCALL + xmlXPathNodeSetMerge (xmlNodeSetPtr val1, xmlNodeSetPtr val2); -XMLPUBFUN void XMLCALL - xmlXPathNodeSetDel (xmlNodeSetPtr cur, +XMLPUBFUN void XMLCALL + xmlXPathNodeSetDel (xmlNodeSetPtr cur, xmlNodePtr val); -XMLPUBFUN void XMLCALL - xmlXPathNodeSetRemove (xmlNodeSetPtr cur, +XMLPUBFUN void XMLCALL + xmlXPathNodeSetRemove (xmlNodeSetPtr cur, int val); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPathNewNodeSetList (xmlNodeSetPtr val); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPathWrapNodeSet (xmlNodeSetPtr val); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPathWrapExternal (void *val); XMLPUBFUN int XMLCALL xmlXPathEqualValues(xmlXPathParserContextPtr ctxt); @@ -621,7 +623,7 @@ XMLPUBFUN void XMLCALL xmlXPathBooleanFunction(xmlXPathParserContextPtr ctxt, in * Really internal functions */ XMLPUBFUN void XMLCALL xmlXPathNodeSetFreeNs(xmlNsPtr ns); - + #ifdef __cplusplus } #endif diff --git a/include/libxml/xpointer.h b/include/libxml/xpointer.h index dde1dfb..b99112b 100644 --- a/include/libxml/xpointer.h +++ b/include/libxml/xpointer.h @@ -7,7 +7,7 @@ * * Added support for the element() scheme described in: * W3C Proposed Recommendation 13 November 2002 - * http://www.w3.org/TR/2002/PR-xptr-element-20021113/ + * http://www.w3.org/TR/2002/PR-xptr-element-20021113/ * * Copy: See Copyright for the status of this software. * @@ -43,68 +43,68 @@ struct _xmlLocationSet { * Handling of location sets. */ -XMLPUBFUN xmlLocationSetPtr XMLCALL +XMLPUBFUN xmlLocationSetPtr XMLCALL xmlXPtrLocationSetCreate (xmlXPathObjectPtr val); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPtrFreeLocationSet (xmlLocationSetPtr obj); -XMLPUBFUN xmlLocationSetPtr XMLCALL +XMLPUBFUN xmlLocationSetPtr XMLCALL xmlXPtrLocationSetMerge (xmlLocationSetPtr val1, xmlLocationSetPtr val2); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPtrNewRange (xmlNodePtr start, int startindex, xmlNodePtr end, int endindex); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPtrNewRangePoints (xmlXPathObjectPtr start, xmlXPathObjectPtr end); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPtrNewRangeNodePoint (xmlNodePtr start, xmlXPathObjectPtr end); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPtrNewRangePointNode (xmlXPathObjectPtr start, xmlNodePtr end); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPtrNewRangeNodes (xmlNodePtr start, xmlNodePtr end); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPtrNewLocationSetNodes (xmlNodePtr start, xmlNodePtr end); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPtrNewLocationSetNodeSet(xmlNodeSetPtr set); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPtrNewRangeNodeObject (xmlNodePtr start, xmlXPathObjectPtr end); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPtrNewCollapsedRange (xmlNodePtr start); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPtrLocationSetAdd (xmlLocationSetPtr cur, xmlXPathObjectPtr val); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPtrWrapLocationSet (xmlLocationSetPtr val); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPtrLocationSetDel (xmlLocationSetPtr cur, xmlXPathObjectPtr val); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPtrLocationSetRemove (xmlLocationSetPtr cur, int val); /* * Functions. */ -XMLPUBFUN xmlXPathContextPtr XMLCALL +XMLPUBFUN xmlXPathContextPtr XMLCALL xmlXPtrNewContext (xmlDocPtr doc, xmlNodePtr here, xmlNodePtr origin); -XMLPUBFUN xmlXPathObjectPtr XMLCALL +XMLPUBFUN xmlXPathObjectPtr XMLCALL xmlXPtrEval (const xmlChar *str, xmlXPathContextPtr ctx); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPtrRangeToFunction (xmlXPathParserContextPtr ctxt, - int nargs); -XMLPUBFUN xmlNodePtr XMLCALL + int nargs); +XMLPUBFUN xmlNodePtr XMLCALL xmlXPtrBuildNodeList (xmlXPathObjectPtr obj); -XMLPUBFUN void XMLCALL +XMLPUBFUN void XMLCALL xmlXPtrEvalRangePredicate (xmlXPathParserContextPtr ctxt); #ifdef __cplusplus } diff --git a/include/wsockcompat.h b/include/wsockcompat.h index c762a64..e6a1a99 100644 --- a/include/wsockcompat.h +++ b/include/wsockcompat.h @@ -41,7 +41,7 @@ #define EWOULDBLOCK WSAEWOULDBLOCK #define ESHUTDOWN WSAESHUTDOWN -#ifndef _MSC_VER +#if (!defined(_MSC_VER) || (_MSC_VER < 1600)) #define EINPROGRESS WSAEINPROGRESS #define EALREADY WSAEALREADY #define ENOTSOCK WSAENOTSOCK diff --git a/install-sh b/install-sh index 6781b98..a9244eb 100755 --- a/install-sh +++ b/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2009-04-28.21; # UTC +scriptversion=2011-01-19.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -156,6 +156,10 @@ while test $# -ne 0; do -s) stripcmd=$stripprog;; -t) dst_arg=$2 + # Protect names problematic for `test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac shift;; -T) no_target_directory=true;; @@ -186,6 +190,10 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then fi shift # arg dst_arg=$arg + # Protect names problematic for `test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac done fi @@ -200,7 +208,11 @@ if test $# -eq 0; then fi if test -z "$dir_arg"; then - trap '(exit $?); exit' 1 2 13 15 + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. @@ -228,9 +240,9 @@ fi for src do - # Protect names starting with `-'. + # Protect names problematic for `test' and other utilities. case $src in - -*) src=./$src;; + -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then @@ -252,12 +264,7 @@ do echo "$0: no destination specified." >&2 exit 1 fi - dst=$dst_arg - # Protect names starting with `-'. - case $dst in - -*) dst=./$dst;; - esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. @@ -385,7 +392,7 @@ do case $dstdir in /*) prefix='/';; - -*) prefix='./';; + [-=\(\)!]*) prefix='./';; *) prefix='';; esac @@ -403,7 +410,7 @@ do for d do - test -z "$d" && continue + test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then diff --git a/legacy.c b/legacy.c index e75178a..e941cb0 100644 --- a/legacy.c +++ b/legacy.c @@ -393,7 +393,7 @@ xmlSetFeature(xmlParserCtxtPtr ctxt, const char *name, void *value) * @end: an end marker xmlChar, 0 if none * @end2: an end marker xmlChar, 0 if none * @end3: an end marker xmlChar, 0 if none - * + * * This function is deprecated, we now always process entities content * through xmlStringDecodeEntities * @@ -456,7 +456,7 @@ xmlNamespaceParseNCName(xmlParserCtxtPtr ctxt ATTRIBUTE_UNUSED) /** * xmlNamespaceParseQName: * @ctxt: an XML parser context - * @prefix: a xmlChar ** + * @prefix: a xmlChar ** * * TODO: this seems not in use anymore, the namespace handling is done on * top of the SAX interfaces, i.e. not on raw input. @@ -603,7 +603,7 @@ xmlScanName(xmlParserCtxtPtr ctxt ATTRIBUTE_UNUSED) /** * xmlParserHandleReference: * @ctxt: the parser context - * + * * TODO: Remove, now deprecated ... the test is done directly in the * content parsing * routines. @@ -615,7 +615,7 @@ xmlScanName(xmlParserCtxtPtr ctxt ATTRIBUTE_UNUSED) * [ WFC: Entity Declared ] * the Name given in the entity reference must match that in an entity * declaration, except that well-formed documents need not declare any - * of the following entities: amp, lt, gt, apos, quot. + * of the following entities: amp, lt, gt, apos, quot. * * [ WFC: Parsed Entity ] * An entity reference must not contain the name of an unparsed entity @@ -624,7 +624,7 @@ xmlScanName(xmlParserCtxtPtr ctxt ATTRIBUTE_UNUSED) * '&#x' [0-9a-fA-F]+ ';' * * A PEReference may have been detected in the current input stream - * the handling is done accordingly to + * the handling is done accordingly to * http://www.w3.org/TR/REC-xml#entproc */ void @@ -693,7 +693,7 @@ xmlNewGlobalNs(xmlDocPtr doc ATTRIBUTE_UNUSED, /** * xmlUpgradeOldNs: * @doc: a document pointer - * + * * Upgrade old style Namespaces (PI) and move them to the root of the document. * DEPRECATED */ @@ -719,7 +719,7 @@ xmlUpgradeOldNs(xmlDocPtr doc ATTRIBUTE_UNUSED) * * People must migrate their code to xmlEncodeEntitiesReentrant ! * This routine will issue a warning when encountered. - * + * * Returns NULL */ const xmlChar * @@ -740,7 +740,7 @@ xmlEncodeEntities(xmlDocPtr doc ATTRIBUTE_UNUSED, /************************************************************************ * * - * Old set of SAXv1 functions * + * Old set of SAXv1 functions * * * ************************************************************************/ static int deprecated_v1_msg = 0; @@ -961,8 +961,8 @@ getParameterEntity(void *ctx, const xmlChar * name) /** * entityDecl: * @ctx: the user data (XML parser context) - * @name: the entity name - * @type: the entity type + * @name: the entity name + * @type: the entity type * @publicId: The public ID of the entity * @systemId: The system ID of the entity * @content: the entity value (without processing). @@ -983,8 +983,8 @@ entityDecl(void *ctx, const xmlChar * name, int type, * attributeDecl: * @ctx: the user data (XML parser context) * @elem: the name of the element - * @fullname: the attribute name - * @type: the attribute type + * @fullname: the attribute name + * @type: the attribute type * @def: the type of default value * @defaultValue: the attribute default value * @tree: the tree of enumerated value set @@ -1005,8 +1005,8 @@ attributeDecl(void *ctx, const xmlChar * elem, const xmlChar * fullname, /** * elementDecl: * @ctx: the user data (XML parser context) - * @name: the element name - * @type: the element type + * @name: the element name + * @type: the element type * @content: the element value tree * * An element definition has been parsed @@ -1159,7 +1159,7 @@ endElement(void *ctx, const xmlChar * name ATTRIBUTE_UNUSED) * @ctx: the user data (XML parser context) * @name: The entity name * - * called when an entity reference is detected. + * called when an entity reference is detected. * DEPRECATED: use xmlSAX2Reference() */ void diff --git a/libxml-2.0-uninstalled.pc.in b/libxml-2.0-uninstalled.pc.in index 0a4c833..cab6834 100644 --- a/libxml-2.0-uninstalled.pc.in +++ b/libxml-2.0-uninstalled.pc.in @@ -8,5 +8,5 @@ Name: libXML Version: @VERSION@ Description: libXML library version2. Requires: -Libs: -L${libdir} -lxml2 @THREAD_LIBS@ @Z_LIBS@ @ICONV_LIBS@ @M_LIBS@ @LIBS@ +Libs: -L${libdir} -lxml2 @ICU_LIBS@ @THREAD_LIBS@ @Z_LIBS@ @ICONV_LIBS@ @M_LIBS@ @LIBS@ Cflags: -I${includedir} @XML_INCLUDEDIR@ @XML_CFLAGS@ diff --git a/libxml-2.0.pc.in b/libxml-2.0.pc.in index 31a1b8c..f5f5f03 100644 --- a/libxml-2.0.pc.in +++ b/libxml-2.0.pc.in @@ -9,5 +9,5 @@ Version: @VERSION@ Description: libXML library version2. Requires: Libs: -L${libdir} -lxml2 -Libs.private: @THREAD_LIBS@ @Z_LIBS@ @ICONV_LIBS@ @M_LIBS@ @WIN32_EXTRA_LIBADD@ @LIBS@ +Libs.private: @ICU_LIBS@ @THREAD_LIBS@ @Z_LIBS@ @ICONV_LIBS@ @M_LIBS@ @WIN32_EXTRA_LIBADD@ @LIBS@ Cflags: @XML_INCLUDEDIR@ @XML_CFLAGS@ diff --git a/libxml.3 b/libxml.3 index 88d3eee..b3e9fef 100644 --- a/libxml.3 +++ b/libxml.3 @@ -5,7 +5,7 @@ libxml \- library used to parse XML files The .I libxml library is used to parse XML files. -Its internal document repesentation is as close as possible to the +Its internal document representation is as close as possible to the .I DOM (Document Object Model) interface, an API for accessing XML or HTML structured documents. diff --git a/libxml.h b/libxml.h index fa3aea4..efe285b 100644 --- a/libxml.h +++ b/libxml.h @@ -29,6 +29,11 @@ #include #include #else +/* + * Currently supported platforms use either autoconf or + * copy to config.h own "preset" configuration file. + * As result ifdef HAVE_CONFIG_H is omited here. + */ #include "config.h" #include #endif diff --git a/libxml2.spec b/libxml2.spec index 0e4cdaf..214adcf 100644 --- a/libxml2.spec +++ b/libxml2.spec @@ -1,6 +1,6 @@ Summary: Library providing XML and HTML support Name: libxml2 -Version: 2.8.0 +Version: 2.9.0 Release: 1 License: MIT Group: Development/Libraries @@ -128,6 +128,6 @@ rm -fr %{buildroot} %doc doc/python.html %changelog -* Wed May 23 2012 Daniel Veillard -- upstream release 2.8.0 see http://xmlsoft.org/news.html +* Tue Sep 11 2012 Daniel Veillard +- upstream release 2.9.0 see http://xmlsoft.org/news.html diff --git a/libxml2.syms b/libxml2.syms index 93eff53..ce5d773 100644 --- a/libxml2.syms +++ b/libxml2.syms @@ -2244,3 +2244,30 @@ LIBXML2_2.8.0 { xmlInitializeDict; } LIBXML2_2.7.4; +LIBXML2_2.9.0 { + global: + +# tree + xmlBufContent; + xmlBufEnd; + xmlBufGetNodeContent; + xmlBufNodeDump; + xmlBufShrink; + xmlBufUse; + +# dict + xmlDictGetUsage; + xmlDictSetLimit; + +# xmlschemas + xmlSchemaValidateSetFilename; + xmlSchemaValidateSetLocator; + +# xmlIO + xmlOutputBufferGetContent; + xmlOutputBufferGetSize; + +# xmlwriter + xmlTextWriterSetQuoteChar; +} LIBXML2_2.8.0; + diff --git a/list.c b/list.c index 5c01c83..d33d928 100644 --- a/list.c +++ b/list.c @@ -94,15 +94,15 @@ xmlLinkCompare(const void *data0, const void *data1) * * Returns the link containing the data or NULL */ -static xmlLinkPtr -xmlListLowerSearch(xmlListPtr l, void *data) +static xmlLinkPtr +xmlListLowerSearch(xmlListPtr l, void *data) { xmlLinkPtr lk; if (l == NULL) return(NULL); for(lk = l->sentinel->next;lk != l->sentinel && l->linkCompare(lk->data, data) <0 ;lk = lk->next); - return lk; + return lk; } /** @@ -114,15 +114,15 @@ xmlListLowerSearch(xmlListPtr l, void *data) * * Returns the link containing the data or NULL */ -static xmlLinkPtr -xmlListHigherSearch(xmlListPtr l, void *data) +static xmlLinkPtr +xmlListHigherSearch(xmlListPtr l, void *data) { xmlLinkPtr lk; if (l == NULL) return(NULL); for(lk = l->sentinel->prev;lk != l->sentinel && l->linkCompare(lk->data, data) >0 ;lk = lk->prev); - return lk; + return lk; } /** @@ -134,8 +134,8 @@ xmlListHigherSearch(xmlListPtr l, void *data) * * Returns the link containing the data or NULL */ -static xmlLinkPtr -xmlListLinkSearch(xmlListPtr l, void *data) +static xmlLinkPtr +xmlListLinkSearch(xmlListPtr l, void *data) { xmlLinkPtr lk; if (l == NULL) @@ -159,8 +159,8 @@ xmlListLinkSearch(xmlListPtr l, void *data) * * Returns the link containing the data or NULL */ -static xmlLinkPtr -xmlListLinkReverseSearch(xmlListPtr l, void *data) +static xmlLinkPtr +xmlListLinkReverseSearch(xmlListPtr l, void *data) { xmlLinkPtr lk; if (l == NULL) @@ -189,16 +189,16 @@ xmlListCreate(xmlListDeallocator deallocator, xmlListDataCompare compare) { xmlListPtr l; if (NULL == (l = (xmlListPtr )xmlMalloc( sizeof(xmlList)))) { - xmlGenericError(xmlGenericErrorContext, + xmlGenericError(xmlGenericErrorContext, "Cannot initialize memory for list"); return (NULL); } /* Initialize the list to NULL */ memset(l, 0, sizeof(xmlList)); - + /* Add the sentinel */ if (NULL ==(l->sentinel = (xmlLinkPtr )xmlMalloc(sizeof(xmlLink)))) { - xmlGenericError(xmlGenericErrorContext, + xmlGenericError(xmlGenericErrorContext, "Cannot initialize memory for sentinel"); xmlFree(l); return (NULL); @@ -206,7 +206,7 @@ xmlListCreate(xmlListDeallocator deallocator, xmlListDataCompare compare) l->sentinel->next = l->sentinel; l->sentinel->prev = l->sentinel; l->sentinel->data = NULL; - + /* If there is a link deallocator, use it */ if (deallocator != NULL) l->linkDeallocator = deallocator; @@ -217,7 +217,7 @@ xmlListCreate(xmlListDeallocator deallocator, xmlListDataCompare compare) l->linkCompare = xmlLinkCompare; return l; } - + /** * xmlListSearch: * @l: a list @@ -228,7 +228,7 @@ xmlListCreate(xmlListDeallocator deallocator, xmlListDataCompare compare) * Returns the value associated to @data or NULL in case of error */ void * -xmlListSearch(xmlListPtr l, void *data) +xmlListSearch(xmlListPtr l, void *data) { xmlLinkPtr lk; if (l == NULL) @@ -249,7 +249,7 @@ xmlListSearch(xmlListPtr l, void *data) * Returns the value associated to @data or NULL in case of error */ void * -xmlListReverseSearch(xmlListPtr l, void *data) +xmlListReverseSearch(xmlListPtr l, void *data) { xmlLinkPtr lk; if (l == NULL) @@ -270,7 +270,7 @@ xmlListReverseSearch(xmlListPtr l, void *data) * Returns 0 in case of success, 1 in case of failure */ int -xmlListInsert(xmlListPtr l, void *data) +xmlListInsert(xmlListPtr l, void *data) { xmlLinkPtr lkPlace, lkNew; @@ -280,7 +280,7 @@ xmlListInsert(xmlListPtr l, void *data) /* Add the new link */ lkNew = (xmlLinkPtr) xmlMalloc(sizeof(xmlLink)); if (lkNew == NULL) { - xmlGenericError(xmlGenericErrorContext, + xmlGenericError(xmlGenericErrorContext, "Cannot initialize memory for new link"); return (1); } @@ -302,7 +302,7 @@ xmlListInsert(xmlListPtr l, void *data) * * Returns 0 in case of success, 1 in case of failure */ -int xmlListAppend(xmlListPtr l, void *data) +int xmlListAppend(xmlListPtr l, void *data) { xmlLinkPtr lkPlace, lkNew; @@ -312,7 +312,7 @@ int xmlListAppend(xmlListPtr l, void *data) /* Add the new link */ lkNew = (xmlLinkPtr) xmlMalloc(sizeof(xmlLink)); if (lkNew == NULL) { - xmlGenericError(xmlGenericErrorContext, + xmlGenericError(xmlGenericErrorContext, "Cannot initialize memory for new link"); return (1); } @@ -353,7 +353,7 @@ int xmlListRemoveFirst(xmlListPtr l, void *data) { xmlLinkPtr lk; - + if (l == NULL) return(0); /*Find the first instance of this data */ @@ -378,7 +378,7 @@ int xmlListRemoveLast(xmlListPtr l, void *data) { xmlLinkPtr lk; - + if (l == NULL) return(0); /*Find the last instance of this data */ @@ -403,7 +403,7 @@ int xmlListRemoveAll(xmlListPtr l, void *data) { int count=0; - + if (l == NULL) return(0); @@ -422,7 +422,7 @@ void xmlListClear(xmlListPtr l) { xmlLinkPtr lk; - + if (l == NULL) return; lk = l->sentinel->next; @@ -458,14 +458,14 @@ xmlListEmpty(xmlListPtr l) * * Returns the first element in the list, or NULL */ -xmlLinkPtr +xmlLinkPtr xmlListFront(xmlListPtr l) { if (l == NULL) return(NULL); return (l->sentinel->next); } - + /** * xmlListEnd: * @l: a list @@ -474,14 +474,14 @@ xmlListFront(xmlListPtr l) * * Returns the last element in the list, or NULL */ -xmlLinkPtr +xmlLinkPtr xmlListEnd(xmlListPtr l) { if (l == NULL) return(NULL); return (l->sentinel->prev); } - + /** * xmlListSize: * @l: a list @@ -539,7 +539,7 @@ xmlListPopBack(xmlListPtr l) * Returns 1 if successful, 0 otherwise */ int -xmlListPushFront(xmlListPtr l, void *data) +xmlListPushFront(xmlListPtr l, void *data) { xmlLinkPtr lkPlace, lkNew; @@ -549,7 +549,7 @@ xmlListPushFront(xmlListPtr l, void *data) /* Add the new link */ lkNew = (xmlLinkPtr) xmlMalloc(sizeof(xmlLink)); if (lkNew == NULL) { - xmlGenericError(xmlGenericErrorContext, + xmlGenericError(xmlGenericErrorContext, "Cannot initialize memory for new link"); return (0); } @@ -571,7 +571,7 @@ xmlListPushFront(xmlListPtr l, void *data) * Returns 1 if successful, 0 otherwise */ int -xmlListPushBack(xmlListPtr l, void *data) +xmlListPushBack(xmlListPtr l, void *data) { xmlLinkPtr lkPlace, lkNew; @@ -580,7 +580,7 @@ xmlListPushBack(xmlListPtr l, void *data) lkPlace = l->sentinel->prev; /* Add the new link */ if (NULL ==(lkNew = (xmlLinkPtr )xmlMalloc(sizeof(xmlLink)))) { - xmlGenericError(xmlGenericErrorContext, + xmlGenericError(xmlGenericErrorContext, "Cannot initialize memory for new link"); return (0); } @@ -643,7 +643,7 @@ void xmlListSort(xmlListPtr l) { xmlListPtr lTemp; - + if (l == NULL) return; if(xmlListEmpty(l)) @@ -725,10 +725,10 @@ xmlListMerge(xmlListPtr l1, xmlListPtr l2) * @old: the list * * Duplicate the list - * + * * Returns a new copy of the list or NULL in case of error */ -xmlListPtr +xmlListPtr xmlListDup(const xmlListPtr old) { xmlListPtr cur; @@ -754,7 +754,7 @@ xmlListDup(const xmlListPtr old) * @old: the old list * * Move all the element from the old list in the new list - * + * * Returns 0 in case of success 1 in case of error */ int @@ -771,7 +771,7 @@ xmlListCopy(xmlListPtr cur, const xmlListPtr old) return (1); } } - return (0); + return (0); } /* xmlListUnique() */ /* xmlListSwap */ diff --git a/ltmain.sh b/ltmain.sh old mode 100755 new mode 100644 index aa5624c..63ae69d --- a/ltmain.sh +++ b/ltmain.sh @@ -1,9 +1,9 @@ -# libtool (GNU libtool) 2.4 +# libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, -# 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. @@ -41,6 +41,7 @@ # --quiet, --silent don't print informational messages # --no-quiet, --no-silent # print informational messages (default) +# --no-warn don't display warning messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages @@ -69,7 +70,7 @@ # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.4 +# $progname: (GNU libtool) 2.4.2 # automake: $automake_version # autoconf: $autoconf_version # @@ -79,9 +80,9 @@ PROGRAM=libtool PACKAGE=libtool -VERSION=2.4 +VERSION=2.4.2 TIMESTAMP="" -package_revision=1.3293 +package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then @@ -136,15 +137,10 @@ progpath="$0" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} -: ${EGREP="/bin/grep -E"} -: ${FGREP="/bin/grep -F"} -: ${GREP="/bin/grep"} -: ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} -: ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} @@ -387,7 +383,7 @@ case $progpath in ;; *) save_IFS="$IFS" - IFS=: + IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break @@ -771,8 +767,8 @@ func_help () s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ - s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ - s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ + s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p d } @@ -1052,6 +1048,7 @@ opt_finish=false opt_help=false opt_help_all=false opt_silent=: +opt_warning=: opt_verbose=: opt_silent=false opt_verbose=false @@ -1118,6 +1115,10 @@ esac ;; --no-silent|--no-quiet) opt_silent=false +func_append preserve_args " $opt" + ;; + --no-warning|--no-warn) + opt_warning=false func_append preserve_args " $opt" ;; --no-verbose) @@ -2059,7 +2060,7 @@ func_mode_compile () *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ - *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup) + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; @@ -3201,11 +3202,13 @@ func_mode_install () # Set up the ranlib parameters. oldlib="$destdir/$name" + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then - func_show_eval "$old_striplib $oldlib" 'exit $?' + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. @@ -3470,7 +3473,7 @@ static const void *lt_preloaded_setup() { # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. - *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; @@ -3982,14 +3985,17 @@ func_exec_program_core () # launches target application with the remaining arguments. func_exec_program () { - for lt_wr_arg - do - case \$lt_wr_arg in - --lt-*) ;; - *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; - esac - shift - done + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac func_exec_program_core \${1+\"\$@\"} } @@ -5057,9 +5063,15 @@ void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | - $SED -e 's/\([\\"]\)/\\\1/g' \ - -e 's/^/ fputs ("/' -e 's/$/\\n", f);/' - + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' cat <<"EOF" } EOF @@ -5643,7 +5655,8 @@ func_mode_link () continue ;; - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" @@ -6147,7 +6160,8 @@ func_mode_link () lib= found=no case $deplib in - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" @@ -6831,7 +6845,7 @@ func_mode_link () test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then - add_dir="-L$dir" + add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in @@ -7316,6 +7330,7 @@ func_mode_link () # which has an extra 1 added just for fun # case $version_type in + # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result @@ -7432,7 +7447,7 @@ func_mode_link () versuffix="$major.$revision" ;; - linux) + linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" @@ -8020,6 +8035,11 @@ EOF # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then + # Remove ${wl} instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= @@ -8050,7 +8070,7 @@ EOF elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; - *) func_apped perm_rpath " $libdir" ;; + *) func_append perm_rpath " $libdir" ;; esac fi done @@ -8058,11 +8078,7 @@ EOF if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" - if test -n "$hardcode_libdir_flag_spec_ld"; then - eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" - else - eval dep_rpath=\"$hardcode_libdir_flag_spec\" - fi + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. @@ -9152,6 +9168,8 @@ EOF esac done fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" @@ -9261,7 +9279,8 @@ EOF *.la) func_basename "$deplib" name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + func_resolve_sysroot "$deplib" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" diff --git a/m4/libtool.m4 b/m4/libtool.m4 index 88de383..56666f0 100644 --- a/m4/libtool.m4 +++ b/m4/libtool.m4 @@ -1,8 +1,8 @@ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -# Inc. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives @@ -11,8 +11,8 @@ m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -# Inc. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. @@ -146,6 +146,8 @@ AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl @@ -637,7 +639,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." @@ -801,6 +803,7 @@ AC_DEFUN([LT_LANG], m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], @@ -822,6 +825,31 @@ m4_defun([_LT_LANG], ])# _LT_LANG +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], @@ -852,6 +880,10 @@ AC_PROVIDE_IFELSE([AC_PROG_GCJ], m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) @@ -954,7 +986,13 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? - if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD @@ -962,6 +1000,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ rm -rf libconftest.dylib* rm -f conftest.* fi]) + AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no @@ -973,6 +1012,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF @@ -990,7 +1030,9 @@ _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? - if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD @@ -1035,8 +1077,8 @@ _LT_EOF ]) -# _LT_DARWIN_LINKER_FEATURES -# -------------------------- +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ @@ -1047,6 +1089,8 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test "$lt_cv_ld_force_load" = "yes"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi @@ -1330,14 +1374,27 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) CFLAGS="$SAVE_CFLAGS" fi ;; -sparc*-*solaris*) +*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" @@ -1414,13 +1471,13 @@ old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in @@ -1600,6 +1657,11 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl lt_cv_sys_max_cmd_len=196608 ;; + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not @@ -1639,7 +1701,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do @@ -2185,7 +2247,7 @@ need_version=unknown case $host_os in aix3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH @@ -2194,7 +2256,7 @@ aix3*) ;; aix[[4-9]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes @@ -2259,7 +2321,7 @@ beos*) ;; bsdi[[45]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' @@ -2398,7 +2460,7 @@ m4_if([$1], [],[ ;; dgux*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' @@ -2406,10 +2468,6 @@ dgux*) shlibpath_var=LD_LIBRARY_PATH ;; -freebsd1*) - dynamic_linker=no - ;; - freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. @@ -2417,7 +2475,7 @@ freebsd* | dragonfly*) objformat=`/usr/bin/objformat` else case $host_os in - freebsd[[123]]*) objformat=aout ;; + freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi @@ -2435,7 +2493,7 @@ freebsd* | dragonfly*) esac shlibpath_var=LD_LIBRARY_PATH case $host_os in - freebsd2*) + freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) @@ -2455,17 +2513,18 @@ freebsd* | dragonfly*) ;; gnu*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" @@ -2526,7 +2585,7 @@ hpux9* | hpux10* | hpux11*) ;; interix[[3-9]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' @@ -2542,7 +2601,7 @@ irix5* | irix6* | nonstopux*) nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; @@ -2579,9 +2638,9 @@ linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2648,7 +2707,7 @@ netbsd*) ;; newsos6) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes @@ -2717,7 +2776,7 @@ rdos*) ;; solaris*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2742,7 +2801,7 @@ sunos4*) ;; sysv4 | sysv4.3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -2766,7 +2825,7 @@ sysv4 | sysv4.3*) sysv4*MP*) if test -d /usr/nec ;then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH @@ -2797,7 +2856,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2807,7 +2866,7 @@ tpf*) ;; uts4*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -3229,7 +3288,7 @@ irix5* | irix6* | nonstopux*) lt_cv_deplibs_check_method=pass_all ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; @@ -3649,6 +3708,7 @@ for ac_symprfx in "" "_"; do # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ @@ -4233,7 +4293,9 @@ m4_if([$1], [CXX], [ case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi ;; esac else @@ -4325,18 +4387,33 @@ m4_if([$1], [CXX], [ ;; *) case `$CC -V 2>&1 | sed 5q` in - *Sun\ F* | *Sun*Fortran*) + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; esac ;; esac @@ -4496,7 +4573,9 @@ m4_if([$1], [CXX], [ ;; cygwin* | mingw* | cegcc*) case $cc_basename in - cl*) ;; + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] @@ -4521,7 +4600,6 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported @@ -4772,8 +4850,7 @@ _LT_EOF xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ @@ -5068,6 +5145,7 @@ _LT_EOF # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' @@ -5114,10 +5192,6 @@ _LT_EOF _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; - freebsd1*) - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little @@ -5130,7 +5204,7 @@ _LT_EOF ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) + freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes @@ -5169,7 +5243,6 @@ _LT_EOF fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes @@ -5611,9 +5684,6 @@ _LT_TAGDECL([], [no_undefined_flag], [1], _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) -_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], - [[If ld is used when linking, flag to hardcode $libdir into a binary - during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], @@ -5771,7 +5841,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported @@ -6141,7 +6210,7 @@ if test "$_lt_caught_CXX_error" != yes; then esac ;; - freebsd[[12]]*) + freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no @@ -6902,12 +6971,18 @@ public class foo { } }; _LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary @@ -7104,7 +7179,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no @@ -7237,7 +7311,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no @@ -7424,6 +7497,77 @@ CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler @@ -7493,6 +7637,13 @@ dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4 index 17cfd51..5d9acd8 100644 --- a/m4/ltoptions.m4 +++ b/m4/ltoptions.m4 @@ -326,9 +326,24 @@ dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], - [AS_HELP_STRING([--with-pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], - [pic_mode="$withval"], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) diff --git a/m4/ltversion.m4 b/m4/ltversion.m4 index 9c7b5d4..07a8602 100644 --- a/m4/ltversion.m4 +++ b/m4/ltversion.m4 @@ -9,15 +9,15 @@ # @configure_input@ -# serial 3293 ltversion.m4 +# serial 3337 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.4]) -m4_define([LT_PACKAGE_REVISION], [1.3293]) +m4_define([LT_PACKAGE_VERSION], [2.4.2]) +m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4' -macro_revision='1.3293' +[macro_version='2.4.2' +macro_revision='1.3337' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) diff --git a/missing b/missing index 28055d2..86a8fc3 100755 --- a/missing +++ b/missing @@ -1,10 +1,10 @@ #! /bin/sh # Common stub for a few missing GNU programs while installing. -scriptversion=2009-04-28.21; # UTC +scriptversion=2012-01-06.13; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, -# 2008, 2009 Free Software Foundation, Inc. +# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify @@ -84,7 +84,6 @@ Supported PROGRAM values: help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and @@ -122,15 +121,6 @@ case $1 in # Not GNU programs, they don't have --version. ;; - tar*) - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - exit 1 - fi - ;; - *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. @@ -226,7 +216,7 @@ WARNING: \`$1' $msg. You should only need it if \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then - eval LASTARG="\${$#}" + eval LASTARG=\${$#} case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` @@ -256,7 +246,7 @@ WARNING: \`$1' is $msg. You should only need it if \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then - eval LASTARG="\${$#}" + eval LASTARG=\${$#} case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` @@ -318,41 +308,6 @@ WARNING: \`$1' is $msg. You should only need it if touch $file ;; - tar*) - shift - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case $firstarg in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case $firstarg in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. diff --git a/nanoftp.c b/nanoftp.c index 9b32d66..077bfe2 100644 --- a/nanoftp.c +++ b/nanoftp.c @@ -41,7 +41,7 @@ #include #endif #ifdef HAVE_FCNTL_H -#include +#include #endif #ifdef HAVE_ERRNO_H #include @@ -188,7 +188,7 @@ void xmlNanoFTPInit(void) { const char *env; #ifdef _WINSOCKAPI_ - WSADATA wsaData; + WSADATA wsaData; #endif if (initialized) @@ -305,15 +305,15 @@ xmlNanoFTPScanURL(void *ctx, const char *URL) { /* * Clear any existing data from the context */ - if (ctxt->protocol != NULL) { + if (ctxt->protocol != NULL) { xmlFree(ctxt->protocol); ctxt->protocol = NULL; } - if (ctxt->hostname != NULL) { + if (ctxt->hostname != NULL) { xmlFree(ctxt->hostname); ctxt->hostname = NULL; } - if (ctxt->path != NULL) { + if (ctxt->path != NULL) { xmlFree(ctxt->path); ctxt->path = NULL; } @@ -327,7 +327,7 @@ xmlNanoFTPScanURL(void *ctx, const char *URL) { xmlFreeURI(uri); return; } - + ctxt->protocol = xmlMemStrdup(uri->scheme); ctxt->hostname = xmlMemStrdup(uri->server); if (uri->path != NULL) @@ -358,7 +358,7 @@ xmlNanoFTPScanURL(void *ctx, const char *URL) { * @URL: The URL used to update the context * * Update an FTP context by parsing the URL and finding - * new path it indicates. If there is an error in the + * new path it indicates. If there is an error in the * protocol, hostname, port or other information, the * error is raised. It indicates a new connection has to * be established. @@ -403,7 +403,7 @@ xmlNanoFTPUpdateURL(void *ctx, const char *URL) { ctxt->path = NULL; } - if (uri->path == NULL) + if (uri->path == NULL) ctxt->path = xmlMemStrdup("/"); else ctxt->path = xmlMemStrdup(uri->path); @@ -427,7 +427,7 @@ void xmlNanoFTPScanProxy(const char *URL) { xmlURIPtr uri; - if (proxy != NULL) { + if (proxy != NULL) { xmlFree(proxy); proxy = NULL; } @@ -451,7 +451,7 @@ xmlNanoFTPScanProxy(const char *URL) { xmlFreeURI(uri); return; } - + proxy = xmlMemStrdup(uri->server); if (uri->port != 0) proxyPort = uri->port; @@ -523,7 +523,7 @@ xmlNanoFTPFreeCtxt(void * ctx) { * xmlNanoFTPParseResponse: * @buf: the buffer containing the response * @len: the buffer length - * + * * Parsing of the server answer, we just extract the code. * * returns 0 for errors @@ -535,22 +535,22 @@ xmlNanoFTPParseResponse(char *buf, int len) { int val = 0; if (len < 3) return(-1); - if ((*buf >= '0') && (*buf <= '9')) + if ((*buf >= '0') && (*buf <= '9')) val = val * 10 + (*buf - '0'); else return(0); buf++; - if ((*buf >= '0') && (*buf <= '9')) + if ((*buf >= '0') && (*buf <= '9')) val = val * 10 + (*buf - '0'); else return(0); buf++; - if ((*buf >= '0') && (*buf <= '9')) + if ((*buf >= '0') && (*buf <= '9')) val = val * 10 + (*buf - '0'); else return(0); buf++; - if (*buf == '-') + if (*buf == '-') return(-val); return(val); } @@ -749,7 +749,7 @@ xmlNanoFTPCheckResponse(void *ctx) { case -1: __xmlIOErr(XML_FROM_FTP, 0, "select"); return(-1); - + } return(xmlNanoFTPReadResponse(ctx)); @@ -1103,7 +1103,7 @@ xmlNanoFTPConnect(void *ctx) { /* we assume it worked :-\ 1 is error for SITE command */ proxyType = 1; break; - } + } if (proxyType == 1) { closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET; ctxt->controlFd = INVALID_SOCKET; @@ -1134,7 +1134,7 @@ xmlNanoFTPConnect(void *ctx) { /* we assume it worked :-\ */ proxyType = 2; return(0); - } + } if (ctxt->passwd == NULL) snprintf(buf, sizeof(buf), "PASS anonymous@\r\n"); else @@ -1239,7 +1239,7 @@ xmlNanoFTPConnectTo(const char *server, int port) { int res; xmlNanoFTPInit(); - if (server == NULL) + if (server == NULL) return(NULL); if (port <= 0) return(NULL); @@ -1332,7 +1332,7 @@ xmlNanoFTPDele(void *ctx, const char *file) { * 450, 550 * 500, 501, 502, 421, 530 */ - + snprintf(buf, sizeof(buf), "DELE %s\r\n", file); buf[sizeof(buf) - 1] = 0; len = strlen(buf); @@ -1430,7 +1430,7 @@ xmlNanoFTPGetConnection(void *ctx) { ctxt->passive = 0; } } - cur = &ctxt->controlBuf[ctxt->controlBufAnswer]; + cur = &ctxt->controlBuf[ctxt->controlBufAnswer]; while (((*cur < '0') || (*cur > '9')) && *cur != '\0') cur++; #ifdef SUPPORT_IP6 if ((ctxt->ftpAddr).ss_family == AF_INET6) { @@ -1525,7 +1525,7 @@ xmlNanoFTPGetConnection(void *ctx) { } } return(ctxt->dataFd); - + } /** @@ -1583,7 +1583,7 @@ xmlNanoFTPCloseConnection(void *ctx) { * @callback: the user callback * @userData: the user callback data * - * Parse at most one entry from the listing. + * Parse at most one entry from the listing. * * Returns -1 incase of error, the length of data parsed otherwise */ @@ -1620,7 +1620,7 @@ xmlNanoFTPParseList(const char *list, ftpListCallback callback, void *userData) if (*cur == 0) return(0); i = 0; while (*cur != ' ') { - if (i < 10) + if (i < 10) attrib[i++] = *cur; cur++; if (*cur == 0) return(0); @@ -1634,7 +1634,7 @@ xmlNanoFTPParseList(const char *list, ftpListCallback callback, void *userData) if (*cur == 0) return(0); i = 0; while (*cur != ' ') { - if (i < 10) + if (i < 10) owner[i++] = *cur; cur++; if (*cur == 0) return(0); @@ -1644,7 +1644,7 @@ xmlNanoFTPParseList(const char *list, ftpListCallback callback, void *userData) if (*cur == 0) return(0); i = 0; while (*cur != ' ') { - if (i < 10) + if (i < 10) group[i++] = *cur; cur++; if (*cur == 0) return(0); @@ -1986,7 +1986,7 @@ xmlNanoFTPRead(void *ctx, void *dest, int len) { * * Start to fetch the given ftp:// resource * - * Returns an FTP context, or NULL + * Returns an FTP context, or NULL */ void* @@ -2043,9 +2043,9 @@ xmlNanoFTPClose(void *ctx) { #ifdef STANDALONE /************************************************************************ - * * - * Basic test in Standalone mode * - * * + * * + * Basic test in Standalone mode * + * * ************************************************************************/ static void ftpList(void *userData, const char *filename, const char* attrib, @@ -2060,7 +2060,7 @@ void ftpData(void *userData, const char *data, int len) { if (len <= 0) { fclose((FILE*)userData); return; - } + } fwrite(data, len, 1, (FILE*)userData); } @@ -2092,7 +2092,7 @@ int main(int argc, char **argv) { if (xmlNanoFTPGet(ctxt, ftpData, (void *) output, tstfile) < 0) xmlGenericError(xmlGenericErrorContext, "Failed to get file\n"); - + } xmlNanoFTPClose(ctxt); xmlMemoryDump(); diff --git a/nanohttp.c b/nanohttp.c index 2437fed..c3f419f 100644 --- a/nanohttp.c +++ b/nanohttp.c @@ -10,7 +10,7 @@ * * daniel@veillard.com */ - + #define NEED_SOCKETS #define IN_LIBXML #include "libxml.h" @@ -46,7 +46,7 @@ #include #endif #ifdef HAVE_FCNTL_H -#include +#include #endif #ifdef HAVE_ERRNO_H #include @@ -213,7 +213,7 @@ void xmlNanoHTTPInit(void) { const char *env; #ifdef _WINSOCKAPI_ - WSADATA wsaData; + WSADATA wsaData; #endif if (initialized) @@ -279,19 +279,19 @@ xmlNanoHTTPScanURL(xmlNanoHTTPCtxtPtr ctxt, const char *URL) { /* * Clear any existing data from the context */ - if (ctxt->protocol != NULL) { + if (ctxt->protocol != NULL) { xmlFree(ctxt->protocol); ctxt->protocol = NULL; } - if (ctxt->hostname != NULL) { + if (ctxt->hostname != NULL) { xmlFree(ctxt->hostname); ctxt->hostname = NULL; } - if (ctxt->path != NULL) { + if (ctxt->path != NULL) { xmlFree(ctxt->path); ctxt->path = NULL; } - if (ctxt->query != NULL) { + if (ctxt->query != NULL) { xmlFree(ctxt->query); ctxt->query = NULL; } @@ -305,7 +305,7 @@ xmlNanoHTTPScanURL(xmlNanoHTTPCtxtPtr ctxt, const char *URL) { xmlFreeURI(uri); return; } - + ctxt->protocol = xmlMemStrdup(uri->scheme); ctxt->hostname = xmlMemStrdup(uri->server); if (uri->path != NULL) @@ -334,7 +334,7 @@ void xmlNanoHTTPScanProxy(const char *URL) { xmlURIPtr uri; - if (proxy != NULL) { + if (proxy != NULL) { xmlFree(proxy); proxy = NULL; } @@ -358,7 +358,7 @@ xmlNanoHTTPScanProxy(const char *URL) { xmlFreeURI(uri); return; } - + proxy = xmlMemStrdup(uri->server); if (uri->port != 0) proxyPort = uri->port; @@ -644,7 +644,7 @@ xmlNanoHTTPReadLine(xmlNanoHTTPCtxtPtr ctxt) { char buf[4096]; char *bp = buf; int rc; - + while (bp - buf < 4095) { if (ctxt->inrptr == ctxt->inptr) { if ( (rc = xmlNanoHTTPRecv(ctxt)) == 0) { @@ -781,9 +781,9 @@ xmlNanoHTTPScanAnswer(xmlNanoHTTPCtxtPtr ctxt, const char *line) { xmlFree(ctxt->location); if (*cur == '/') { xmlChar *tmp_http = xmlStrdup(BAD_CAST "http://"); - xmlChar *tmp_loc = + xmlChar *tmp_loc = xmlStrcat(tmp_http, (const xmlChar *) ctxt->hostname); - ctxt->location = + ctxt->location = (char *) xmlStrcat (tmp_loc, (const xmlChar *) cur); } else { ctxt->location = xmlMemStrdup(cur); @@ -1267,7 +1267,7 @@ xmlNanoHTTPRead(void *ctx, void *dest, int len) { #ifdef HAVE_ZLIB_H if (ctxt->usesGzip == 1) { if (ctxt->strm == NULL) return(0); - + ctxt->strm->next_out = dest; ctxt->strm->avail_out = len; ctxt->strm->avail_in = ctxt->inptr - ctxt->inrptr; @@ -1346,7 +1346,7 @@ xmlNanoHTTPMethodRedir(const char *URL, const char *method, const char *input, #ifdef DEBUG_HTTP int xmt_bytes; #endif - + if (URL == NULL) return(NULL); if (method == NULL) method = "GET"; xmlNanoHTTPInit(); @@ -1427,13 +1427,13 @@ retry: if (proxy) { if (ctxt->port != 80) { - p += snprintf( p, blen - (p - bp), "%s http://%s:%d%s", + p += snprintf( p, blen - (p - bp), "%s http://%s:%d%s", method, ctxt->hostname, - ctxt->port, ctxt->path ); + ctxt->port, ctxt->path ); } - else + else p += snprintf( p, blen - (p - bp), "%s http://%s%s", method, - ctxt->hostname, ctxt->path); + ctxt->hostname, ctxt->path); } else p += snprintf( p, blen - (p - bp), "%s %s", method, ctxt->path); @@ -1442,7 +1442,7 @@ retry: p += snprintf( p, blen - (p - bp), "?%s", ctxt->query); if (ctxt->port == 80) { - p += snprintf( p, blen - (p - bp), " HTTP/1.0\r\nHost: %s\r\n", + p += snprintf( p, blen - (p - bp), " HTTP/1.0\r\nHost: %s\r\n", ctxt->hostname); } else { p += snprintf( p, blen - (p - bp), " HTTP/1.0\r\nHost: %s:%d\r\n", @@ -1453,7 +1453,7 @@ retry: p += snprintf(p, blen - (p - bp), "Accept-Encoding: gzip\r\n"); #endif - if (contentType != NULL && *contentType) + if (contentType != NULL && *contentType) p += snprintf(p, blen - (p - bp), "Content-Type: %s\r\n", *contentType); if (headers != NULL) @@ -1492,7 +1492,7 @@ retry: if ( xmt_bytes != ilen ) xmlGenericError( xmlGenericErrorContext, - "xmlNanoHTTPMethodRedir: Only %d of %d %s %s\n", + "xmlNanoHTTPMethodRedir: Only %d of %d %s %s\n", xmt_bytes, ilen, "bytes of HTTP content sent to host", ctxt->hostname ); @@ -1620,7 +1620,7 @@ xmlNanoHTTPFetch(const char *URL, const char *filename, char **contentType) { ctxt = xmlNanoHTTPOpen(URL, contentType); if (ctxt == NULL) return(-1); - if (!strcmp(filename, "-")) + if (!strcmp(filename, "-")) fd = 0; else { fd = open(filename, O_CREAT | O_WRONLY, 00644); @@ -1666,7 +1666,7 @@ xmlNanoHTTPSave(void *ctxt, const char *filename) { if ((ctxt == NULL) || (filename == NULL)) return(-1); - if (!strcmp(filename, "-")) + if (!strcmp(filename, "-")) fd = 0; else { fd = open(filename, O_CREAT | O_WRONLY, 0666); @@ -1795,7 +1795,7 @@ xmlNanoHTTPMimeType( void * ctx ) { * Check if all the content was read * * Returns 0 if all the content was read and available, returns - * -1 if received content length was less than specified or an error + * -1 if received content length was less than specified or an error * occurred. */ static int @@ -1849,7 +1849,7 @@ int main(int argc, char **argv) { char *contentType = NULL; if (argv[1] != NULL) { - if (argv[2] != NULL) + if (argv[2] != NULL) xmlNanoHTTPFetch(argv[1], argv[2], &contentType); else xmlNanoHTTPFetch(argv[1], "-", &contentType); diff --git a/parser.c b/parser.c index 2c38fae..192eaed 100644 --- a/parser.c +++ b/parser.c @@ -17,7 +17,7 @@ * parserInternals.c to reduce this file size. * As much as possible the functions are associated with their relative * production in the XML specification. A few productions defining the - * different ranges of character are actually implanted either in + * different ranges of character are actually implanted either in * parserInternals.h or parserInternals.c * The DOM tree build is realized from the default SAX callbacks in * the module SAX.c. @@ -40,6 +40,7 @@ #endif #include +#include #include #include #include @@ -83,6 +84,9 @@ #include #endif +#include "buf.h" +#include "enc.h" + static void xmlFatalErr(xmlParserCtxtPtr ctxt, xmlParserErrors error, const char *info); @@ -117,10 +121,10 @@ xmlCreateEntityParserCtxtInternal(const xmlChar *URL, const xmlChar *ID, * parser option. */ static int -xmlParserEntityCheck(xmlParserCtxtPtr ctxt, unsigned long size, +xmlParserEntityCheck(xmlParserCtxtPtr ctxt, size_t size, xmlEntityPtr ent) { - unsigned long consumed = 0; + size_t consumed = 0; if ((ctxt == NULL) || (ctxt->options & XML_PARSE_HUGE)) return (0); @@ -194,6 +198,17 @@ unsigned int xmlParserMaxDepth = 256; #define XML_PARSER_BUFFER_SIZE 100 #define SAX_COMPAT_MODE BAD_CAST "SAX compatibility mode document" +/** + * XML_PARSER_CHUNK_SIZE + * + * When calling GROW that's the minimal amount of data + * the parser expected to have received. It is not a hard + * limit but an optimization when reading strings like Names + * It is not strictly needed as long as inputs available characters + * are followed by 0, which should be provided by the I/O level + */ +#define XML_PARSER_CHUNK_SIZE 100 + /* * List of XML prefixed PI allowed by W3C specs */ @@ -233,7 +248,7 @@ xmlLoadEntityContent(xmlParserCtxtPtr ctxt, xmlEntityPtr entity); /************************************************************************ * * - * Some factorized error routines * + * Some factorized error routines * * * ************************************************************************/ @@ -285,193 +300,201 @@ static void xmlFatalErr(xmlParserCtxtPtr ctxt, xmlParserErrors error, const char *info) { const char *errmsg; + char errstr[129] = ""; if ((ctxt != NULL) && (ctxt->disableSAX != 0) && (ctxt->instate == XML_PARSER_EOF)) return; switch (error) { case XML_ERR_INVALID_HEX_CHARREF: - errmsg = "CharRef: invalid hexadecimal value\n"; + errmsg = "CharRef: invalid hexadecimal value"; break; case XML_ERR_INVALID_DEC_CHARREF: - errmsg = "CharRef: invalid decimal value\n"; + errmsg = "CharRef: invalid decimal value"; break; case XML_ERR_INVALID_CHARREF: - errmsg = "CharRef: invalid value\n"; + errmsg = "CharRef: invalid value"; break; case XML_ERR_INTERNAL_ERROR: errmsg = "internal error"; break; case XML_ERR_PEREF_AT_EOF: - errmsg = "PEReference at end of document\n"; + errmsg = "PEReference at end of document"; break; case XML_ERR_PEREF_IN_PROLOG: - errmsg = "PEReference in prolog\n"; + errmsg = "PEReference in prolog"; break; case XML_ERR_PEREF_IN_EPILOG: - errmsg = "PEReference in epilog\n"; + errmsg = "PEReference in epilog"; break; case XML_ERR_PEREF_NO_NAME: - errmsg = "PEReference: no name\n"; + errmsg = "PEReference: no name"; break; case XML_ERR_PEREF_SEMICOL_MISSING: - errmsg = "PEReference: expecting ';'\n"; + errmsg = "PEReference: expecting ';'"; break; case XML_ERR_ENTITY_LOOP: - errmsg = "Detected an entity reference loop\n"; + errmsg = "Detected an entity reference loop"; break; case XML_ERR_ENTITY_NOT_STARTED: - errmsg = "EntityValue: \" or ' expected\n"; + errmsg = "EntityValue: \" or ' expected"; break; case XML_ERR_ENTITY_PE_INTERNAL: - errmsg = "PEReferences forbidden in internal subset\n"; + errmsg = "PEReferences forbidden in internal subset"; break; case XML_ERR_ENTITY_NOT_FINISHED: - errmsg = "EntityValue: \" or ' expected\n"; + errmsg = "EntityValue: \" or ' expected"; break; case XML_ERR_ATTRIBUTE_NOT_STARTED: - errmsg = "AttValue: \" or ' expected\n"; + errmsg = "AttValue: \" or ' expected"; break; case XML_ERR_LT_IN_ATTRIBUTE: - errmsg = "Unescaped '<' not allowed in attributes values\n"; + errmsg = "Unescaped '<' not allowed in attributes values"; break; case XML_ERR_LITERAL_NOT_STARTED: - errmsg = "SystemLiteral \" or ' expected\n"; + errmsg = "SystemLiteral \" or ' expected"; break; case XML_ERR_LITERAL_NOT_FINISHED: - errmsg = "Unfinished System or Public ID \" or ' expected\n"; + errmsg = "Unfinished System or Public ID \" or ' expected"; break; case XML_ERR_MISPLACED_CDATA_END: - errmsg = "Sequence ']]>' not allowed in content\n"; + errmsg = "Sequence ']]>' not allowed in content"; break; case XML_ERR_URI_REQUIRED: - errmsg = "SYSTEM or PUBLIC, the URI is missing\n"; + errmsg = "SYSTEM or PUBLIC, the URI is missing"; break; case XML_ERR_PUBID_REQUIRED: - errmsg = "PUBLIC, the Public Identifier is missing\n"; + errmsg = "PUBLIC, the Public Identifier is missing"; break; case XML_ERR_HYPHEN_IN_COMMENT: - errmsg = "Comment must not contain '--' (double-hyphen)\n"; + errmsg = "Comment must not contain '--' (double-hyphen)"; break; case XML_ERR_PI_NOT_STARTED: - errmsg = "xmlParsePI : no target name\n"; + errmsg = "xmlParsePI : no target name"; break; case XML_ERR_RESERVED_XML_NAME: - errmsg = "Invalid PI name\n"; + errmsg = "Invalid PI name"; break; case XML_ERR_NOTATION_NOT_STARTED: - errmsg = "NOTATION: Name expected here\n"; + errmsg = "NOTATION: Name expected here"; break; case XML_ERR_NOTATION_NOT_FINISHED: - errmsg = "'>' required to close NOTATION declaration\n"; + errmsg = "'>' required to close NOTATION declaration"; break; case XML_ERR_VALUE_REQUIRED: - errmsg = "Entity value required\n"; + errmsg = "Entity value required"; break; case XML_ERR_URI_FRAGMENT: errmsg = "Fragment not allowed"; break; case XML_ERR_ATTLIST_NOT_STARTED: - errmsg = "'(' required to start ATTLIST enumeration\n"; + errmsg = "'(' required to start ATTLIST enumeration"; break; case XML_ERR_NMTOKEN_REQUIRED: - errmsg = "NmToken expected in ATTLIST enumeration\n"; + errmsg = "NmToken expected in ATTLIST enumeration"; break; case XML_ERR_ATTLIST_NOT_FINISHED: - errmsg = "')' required to finish ATTLIST enumeration\n"; + errmsg = "')' required to finish ATTLIST enumeration"; break; case XML_ERR_MIXED_NOT_STARTED: - errmsg = "MixedContentDecl : '|' or ')*' expected\n"; + errmsg = "MixedContentDecl : '|' or ')*' expected"; break; case XML_ERR_PCDATA_REQUIRED: - errmsg = "MixedContentDecl : '#PCDATA' expected\n"; + errmsg = "MixedContentDecl : '#PCDATA' expected"; break; case XML_ERR_ELEMCONTENT_NOT_STARTED: - errmsg = "ContentDecl : Name or '(' expected\n"; + errmsg = "ContentDecl : Name or '(' expected"; break; case XML_ERR_ELEMCONTENT_NOT_FINISHED: - errmsg = "ContentDecl : ',' '|' or ')' expected\n"; + errmsg = "ContentDecl : ',' '|' or ')' expected"; break; case XML_ERR_PEREF_IN_INT_SUBSET: errmsg = - "PEReference: forbidden within markup decl in internal subset\n"; + "PEReference: forbidden within markup decl in internal subset"; break; case XML_ERR_GT_REQUIRED: - errmsg = "expected '>'\n"; + errmsg = "expected '>'"; break; case XML_ERR_CONDSEC_INVALID: - errmsg = "XML conditional section '[' expected\n"; + errmsg = "XML conditional section '[' expected"; break; case XML_ERR_EXT_SUBSET_NOT_FINISHED: - errmsg = "Content error in the external subset\n"; + errmsg = "Content error in the external subset"; break; case XML_ERR_CONDSEC_INVALID_KEYWORD: errmsg = - "conditional section INCLUDE or IGNORE keyword expected\n"; + "conditional section INCLUDE or IGNORE keyword expected"; break; case XML_ERR_CONDSEC_NOT_FINISHED: - errmsg = "XML conditional section not closed\n"; + errmsg = "XML conditional section not closed"; break; case XML_ERR_XMLDECL_NOT_STARTED: - errmsg = "Text declaration '' expected\n"; + errmsg = "parsing XML declaration: '?>' expected"; break; case XML_ERR_EXT_ENTITY_STANDALONE: - errmsg = "external parsed entities cannot be standalone\n"; + errmsg = "external parsed entities cannot be standalone"; break; case XML_ERR_ENTITYREF_SEMICOL_MISSING: - errmsg = "EntityRef: expecting ';'\n"; + errmsg = "EntityRef: expecting ';'"; break; case XML_ERR_DOCTYPE_NOT_FINISHED: - errmsg = "DOCTYPE improperly terminated\n"; + errmsg = "DOCTYPE improperly terminated"; break; case XML_ERR_LTSLASH_REQUIRED: - errmsg = "EndTag: 'errNo = error; __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_PARSER, error, - XML_ERR_FATAL, NULL, 0, info, NULL, NULL, 0, 0, errmsg, + XML_ERR_FATAL, NULL, 0, info, NULL, NULL, 0, 0, &errstr[0], info); if (ctxt != NULL) { ctxt->wellFormed = 0; @@ -626,7 +649,7 @@ xmlFatalErrMsgInt(xmlParserCtxtPtr ctxt, xmlParserErrors error, */ static void xmlFatalErrMsgStrIntStr(xmlParserCtxtPtr ctxt, xmlParserErrors error, - const char *msg, const xmlChar *str1, int val, + const char *msg, const xmlChar *str1, int val, const xmlChar *str2) { if ((ctxt != NULL) && (ctxt->disableSAX != 0) && @@ -754,7 +777,7 @@ xmlNsWarn(xmlParserCtxtPtr ctxt, xmlParserErrors error, /************************************************************************ * * - * Library wide options * + * Library wide options * * * ************************************************************************/ @@ -978,7 +1001,7 @@ xmlHasFeature(xmlFeature feature) /************************************************************************ * * - * SAX2 defaulted attributes handling * + * SAX2 defaulted attributes handling * * * ************************************************************************/ @@ -1002,8 +1025,8 @@ xmlDetectSAX2(xmlParserCtxtPtr ctxt) { ctxt->str_xml = xmlDictLookup(ctxt->dict, BAD_CAST "xml", 3); ctxt->str_xmlns = xmlDictLookup(ctxt->dict, BAD_CAST "xmlns", 5); ctxt->str_xml_ns = xmlDictLookup(ctxt->dict, XML_XML_NAMESPACE, 36); - if ((ctxt->str_xml==NULL) || (ctxt->str_xmlns==NULL) || - (ctxt->str_xml_ns == NULL)) { + if ((ctxt->str_xml==NULL) || (ctxt->str_xmlns==NULL) || + (ctxt->str_xml_ns == NULL)) { xmlErrMemory(ctxt, NULL); } } @@ -1922,7 +1945,7 @@ static int spacePop(xmlParserCtxtPtr ctxt) { * to compare on ASCII based substring. * SKIP(n) Skip n xmlChar, and must also be used only to skip ASCII defined * strings without newlines within the parser. - * NEXT1(l) Skip 1 xmlChar, and must also be used only to skip 1 non-newline ASCII + * NEXT1(l) Skip 1 xmlChar, and must also be used only to skip 1 non-newline ASCII * defined char within the parser. * Clean macros, not dependent of an ASCII context, expect UTF-8 encoding * @@ -1971,10 +1994,10 @@ static int spacePop(xmlParserCtxtPtr ctxt) { #define SKIPL(val) do { \ int skipl; \ for(skipl=0; skiplinput->cur) == '\n') { \ + if (*(ctxt->input->cur) == '\n') { \ ctxt->input->line++; ctxt->input->col = 1; \ - } else ctxt->input->col++; \ - ctxt->nbChars++; \ + } else ctxt->input->col++; \ + ctxt->nbChars++; \ ctxt->input->cur++; \ } \ if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt); \ @@ -2000,6 +2023,12 @@ static void xmlSHRINK (xmlParserCtxtPtr ctxt) { xmlGROW (ctxt); static void xmlGROW (xmlParserCtxtPtr ctxt) { + if ((((ctxt->input->end - ctxt->input->cur) > XML_MAX_LOOKUP_LIMIT) || + ((ctxt->input->cur - ctxt->input->base) > XML_MAX_LOOKUP_LIMIT)) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR, "Huge input lookup"); + ctxt->instate = XML_PARSER_EOF; + } xmlParserInputGrow(ctxt->input, INPUT_CHUNK); if ((ctxt->input->cur != NULL) && (*ctxt->input->cur == 0) && (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0)) @@ -2144,6 +2173,8 @@ xmlPushInput(xmlParserCtxtPtr ctxt, xmlParserInputPtr input) { "Pushing input %d : %.30s\n", ctxt->inputNr+1, input->cur); } ret = inputPush(ctxt, input); + if (ctxt->instate == XML_PARSER_EOF) + return(-1); GROW; return(ret); } @@ -2159,7 +2190,7 @@ xmlPushInput(xmlParserCtxtPtr ctxt, xmlParserInputPtr input) { * * [ WFC: Legal Character ] * Characters referred to using character references must match the - * production for Char. + * production for Char. * * Returns the value parsed (as an int), 0 in case of error */ @@ -2180,8 +2211,10 @@ xmlParseCharRef(xmlParserCtxtPtr ctxt) { if (count++ > 20) { count = 0; GROW; + if (ctxt->instate == XML_PARSER_EOF) + return(0); } - if ((RAW >= '0') && (RAW <= '9')) + if ((RAW >= '0') && (RAW <= '9')) val = val * 16 + (CUR - '0'); else if ((RAW >= 'a') && (RAW <= 'f') && (count < 20)) val = val * 16 + (CUR - 'a') + 10; @@ -2211,8 +2244,10 @@ xmlParseCharRef(xmlParserCtxtPtr ctxt) { if (count++ > 20) { count = 0; GROW; + if (ctxt->instate == XML_PARSER_EOF) + return(0); } - if ((RAW >= '0') && (RAW <= '9')) + if ((RAW >= '0') && (RAW <= '9')) val = val * 10 + (CUR - '0'); else { xmlFatalErr(ctxt, XML_ERR_INVALID_DEC_CHARREF, NULL); @@ -2238,7 +2273,7 @@ xmlParseCharRef(xmlParserCtxtPtr ctxt) { /* * [ WFC: Legal Character ] * Characters referred to using character references must match the - * production for Char. + * production for Char. */ if ((IS_CHAR(val) && (outofrange == 0))) { return(val); @@ -2263,7 +2298,7 @@ xmlParseCharRef(xmlParserCtxtPtr ctxt) { * * [ WFC: Legal Character ] * Characters referred to using character references must match the - * production for Char. + * production for Char. * * Returns the value parsed (as an int), 0 in case of error, str will be * updated to the current value of the index @@ -2282,7 +2317,7 @@ xmlParseStringCharRef(xmlParserCtxtPtr ctxt, const xmlChar **str) { ptr += 3; cur = *ptr; while (cur != ';') { /* Non input consuming loop */ - if ((cur >= '0') && (cur <= '9')) + if ((cur >= '0') && (cur <= '9')) val = val * 16 + (cur - '0'); else if ((cur >= 'a') && (cur <= 'f')) val = val * 16 + (cur - 'a') + 10; @@ -2305,7 +2340,7 @@ xmlParseStringCharRef(xmlParserCtxtPtr ctxt, const xmlChar **str) { ptr += 2; cur = *ptr; while (cur != ';') { /* Non input consuming loops */ - if ((cur >= '0') && (cur <= '9')) + if ((cur >= '0') && (cur <= '9')) val = val * 10 + (cur - '0'); else { xmlFatalErr(ctxt, XML_ERR_INVALID_DEC_CHARREF, NULL); @@ -2329,7 +2364,7 @@ xmlParseStringCharRef(xmlParserCtxtPtr ctxt, const xmlChar **str) { /* * [ WFC: Legal Character ] * Characters referred to using character references must match the - * production for Char. + * production for Char. */ if ((IS_CHAR(val) && (outofrange == 0))) { return(val); @@ -2351,9 +2386,9 @@ xmlParseStringCharRef(xmlParserCtxtPtr ctxt, const xmlChar **str) { * * Returns the new input stream or NULL */ - + static void deallocblankswrapper (xmlChar *str) {xmlFree(str);} - + static xmlParserInputPtr xmlNewBlanksWrapperInputStream(xmlParserCtxtPtr ctxt, xmlEntityPtr entity) { xmlParserInputPtr input; @@ -2376,7 +2411,7 @@ xmlNewBlanksWrapperInputStream(xmlParserCtxtPtr ctxt, xmlEntityPtr entity) { if (buffer == NULL) { xmlErrMemory(ctxt, NULL); xmlFree(input); - return(NULL); + return(NULL); } buffer [0] = ' '; buffer [1] = '%'; @@ -2395,12 +2430,12 @@ xmlNewBlanksWrapperInputStream(xmlParserCtxtPtr ctxt, xmlEntityPtr entity) { /** * xmlParserHandlePEReference: * @ctxt: the parser context - * + * * [69] PEReference ::= '%' Name ';' * * [ WFC: No Recursion ] * A parsed entity must not contain a recursive - * reference to itself, either directly or indirectly. + * reference to itself, either directly or indirectly. * * [ WFC: Entity Declared ] * In a document without any DTD, a document with only an internal DTD @@ -2418,9 +2453,9 @@ xmlNewBlanksWrapperInputStream(xmlParserCtxtPtr ctxt, xmlEntityPtr entity) { * NOTE: misleading but this is handled. * * A PEReference may have been detected in the current input stream - * the handling is done accordingly to + * the handling is done accordingly to * http://www.w3.org/TR/REC-xml#entproc - * i.e. + * i.e. * - Included in literal in entity values * - Included as Parameter Entity reference within DTDs */ @@ -2498,7 +2533,7 @@ xmlParserHandlePEReference(xmlParserCtxtPtr ctxt) { if ((ctxt->sax != NULL) && (ctxt->sax->getParameterEntity != NULL)) entity = ctxt->sax->getParameterEntity(ctxt->userData, name); if (entity == NULL) { - + /* * [ WFC: Entity Declared ] * In a document without any DTD, a document with only an @@ -2524,7 +2559,7 @@ xmlParserHandlePEReference(xmlParserCtxtPtr ctxt) { xmlValidityError(ctxt, XML_WAR_UNDECLARED_ENTITY, "PEReference: %%%s; not found\n", name, NULL); - } else + } else xmlWarningMsg(ctxt, XML_WAR_UNDECLARED_ENTITY, "PEReference: %%%s; not found\n", name, NULL); @@ -2549,7 +2584,7 @@ xmlParserHandlePEReference(xmlParserCtxtPtr ctxt) { if (xmlPushInput(ctxt, input) < 0) return; - /* + /* * Get the 4 first bytes and decode the charset * if enc != XML_CHAR_ENCODING_NONE * plug some encoding conversion routines. @@ -2559,6 +2594,8 @@ xmlParserHandlePEReference(xmlParserCtxtPtr ctxt) { * the amount of data in the buffer. */ GROW + if (ctxt->instate == XML_PARSER_EOF) + return; if ((ctxt->input->end - ctxt->input->cur)>=4) { start[0] = RAW; start[1] = NXT(1); @@ -2589,15 +2626,17 @@ xmlParserHandlePEReference(xmlParserCtxtPtr ctxt) { /* * Macro used to grow the current buffer. + * buffer##_size is expected to be a size_t + * mem_error: is expected to handle memory allocation failures */ #define growBuffer(buffer, n) { \ xmlChar *tmp; \ - buffer##_size *= 2; \ - buffer##_size += n; \ - tmp = (xmlChar *) \ - xmlRealloc(buffer, buffer##_size * sizeof(xmlChar)); \ + size_t new_size = buffer##_size * 2 + n; \ + if (new_size < buffer##_size) goto mem_error; \ + tmp = (xmlChar *) xmlRealloc(buffer, new_size); \ if (tmp == NULL) goto mem_error; \ buffer = tmp; \ + buffer##_size = new_size; \ } /** @@ -2609,7 +2648,7 @@ xmlParserHandlePEReference(xmlParserCtxtPtr ctxt) { * @end: an end marker xmlChar, 0 if none * @end2: an end marker xmlChar, 0 if none * @end3: an end marker xmlChar, 0 if none - * + * * Takes a entity string content and process to do the adequate substitutions. * * [67] Reference ::= EntityRef | CharRef @@ -2623,14 +2662,14 @@ xmlChar * xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, int what, xmlChar end, xmlChar end2, xmlChar end3) { xmlChar *buffer = NULL; - int buffer_size = 0; + size_t buffer_size = 0; + size_t nbchars = 0; xmlChar *current = NULL; xmlChar *rep = NULL; const xmlChar *last; xmlEntityPtr ent; int c,l; - int nbchars = 0; if ((ctxt == NULL) || (str == NULL) || (len < 0)) return(NULL); @@ -2647,7 +2686,7 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, * allocate a translation buffer. */ buffer_size = XML_PARSER_BIG_BUFFER_SIZE; - buffer = (xmlChar *) xmlMallocAtomic(buffer_size * sizeof(xmlChar)); + buffer = (xmlChar *) xmlMallocAtomic(buffer_size); if (buffer == NULL) goto mem_error; /* @@ -2667,7 +2706,7 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, if (val != 0) { COPY_BUF(0,buffer,nbchars,val); } - if (nbchars > buffer_size - XML_PARSER_BUFFER_SIZE) { + if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) { growBuffer(buffer, XML_PARSER_BUFFER_SIZE); } } else if ((c == '&') && (what & XML_SUBSTITUTE_REF)) { @@ -2685,7 +2724,7 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, (ent->etype == XML_INTERNAL_PREDEFINED_ENTITY)) { if (ent->content != NULL) { COPY_BUF(0,buffer,nbchars,ent->content[0]); - if (nbchars > buffer_size - XML_PARSER_BUFFER_SIZE) { + if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) { growBuffer(buffer, XML_PARSER_BUFFER_SIZE); } } else { @@ -2702,8 +2741,7 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, current = rep; while (*current != 0) { /* non input consuming loop */ buffer[nbchars++] = *current++; - if (nbchars > - buffer_size - XML_PARSER_BUFFER_SIZE) { + if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) { if (xmlParserEntityCheck(ctxt, nbchars, ent)) goto int_error; growBuffer(buffer, XML_PARSER_BUFFER_SIZE); @@ -2717,7 +2755,7 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, const xmlChar *cur = ent->name; buffer[nbchars++] = '&'; - if (nbchars > buffer_size - i - XML_PARSER_BUFFER_SIZE) { + if (nbchars + i + XML_PARSER_BUFFER_SIZE > buffer_size) { growBuffer(buffer, i + XML_PARSER_BUFFER_SIZE); } for (;i > 0;i--) @@ -2745,8 +2783,7 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, current = rep; while (*current != 0) { /* non input consuming loop */ buffer[nbchars++] = *current++; - if (nbchars > - buffer_size - XML_PARSER_BUFFER_SIZE) { + if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) { if (xmlParserEntityCheck(ctxt, nbchars, ent)) goto int_error; growBuffer(buffer, XML_PARSER_BUFFER_SIZE); @@ -2759,8 +2796,8 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, } else { COPY_BUF(l,buffer,nbchars,c); str += l; - if (nbchars > buffer_size - XML_PARSER_BUFFER_SIZE) { - growBuffer(buffer, XML_PARSER_BUFFER_SIZE); + if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) { + growBuffer(buffer, XML_PARSER_BUFFER_SIZE); } } if (str < last) @@ -2789,7 +2826,7 @@ int_error: * @end: an end marker xmlChar, 0 if none * @end2: an end marker xmlChar, 0 if none * @end3: an end marker xmlChar, 0 if none - * + * * Takes a entity string content and process to do the adequate substitutions. * * [67] Reference ::= EntityRef | CharRef @@ -3152,7 +3189,7 @@ xmlIsNameChar(xmlParserCtxtPtr ctxt, int c) { } else { if ((IS_LETTER(c)) || (IS_DIGIT(c)) || (c == '.') || (c == '-') || - (c == '_') || (c == ':') || + (c == '_') || (c == ':') || (IS_COMBINING(c)) || (IS_EXTENDER(c))) return(1); @@ -3177,6 +3214,8 @@ xmlParseNameComplex(xmlParserCtxtPtr ctxt) { * Handler for more complex cases */ GROW; + if (ctxt->instate == XML_PARSER_EOF) + return(NULL); c = CUR_CHAR(l); if ((ctxt->options & XML_PARSE_OLD10) == 0) { /* @@ -3225,9 +3264,11 @@ xmlParseNameComplex(xmlParserCtxtPtr ctxt) { ((c >= 0xFDF0) && (c <= 0xFFFD)) || ((c >= 0x10000) && (c <= 0xEFFFF)) )) { - if (count++ > 100) { + if (count++ > XML_PARSER_CHUNK_SIZE) { count = 0; GROW; + if (ctxt->instate == XML_PARSER_EOF) + return(NULL); } len += l; NEXTL(l); @@ -3246,18 +3287,32 @@ xmlParseNameComplex(xmlParserCtxtPtr ctxt) { while ((c != ' ') && (c != '>') && (c != '/') && /* test bigname.xml */ ((IS_LETTER(c)) || (IS_DIGIT(c)) || (c == '.') || (c == '-') || - (c == '_') || (c == ':') || + (c == '_') || (c == ':') || (IS_COMBINING(c)) || (IS_EXTENDER(c)))) { - if (count++ > 100) { + if (count++ > XML_PARSER_CHUNK_SIZE) { count = 0; GROW; + if (ctxt->instate == XML_PARSER_EOF) + return(NULL); } len += l; NEXTL(l); c = CUR_CHAR(l); + if (c == 0) { + count = 0; + GROW; + if (ctxt->instate == XML_PARSER_EOF) + return(NULL); + c = CUR_CHAR(l); + } } } + if ((len > XML_MAX_NAME_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErr(ctxt, XML_ERR_NAME_TOO_LONG, "Name"); + return(NULL); + } if ((*ctxt->input->cur == '\n') && (ctxt->input->cur[-1] == '\r')) return(xmlDictLookup(ctxt->dict, ctxt->input->cur - (len + 1), len)); return(xmlDictLookup(ctxt->dict, ctxt->input->cur - len, len)); @@ -3307,6 +3362,11 @@ xmlParseName(xmlParserCtxtPtr ctxt) { in++; if ((*in > 0) && (*in < 0x80)) { count = in - ctxt->input->cur; + if ((count > XML_MAX_NAME_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErr(ctxt, XML_ERR_NAME_TOO_LONG, "Name"); + return(NULL); + } ret = xmlDictLookup(ctxt->dict, ctxt->input->cur, count); ctxt->input->cur = in; ctxt->nbChars += count; @@ -3342,13 +3402,32 @@ xmlParseNCNameComplex(xmlParserCtxtPtr ctxt) { while ((c != ' ') && (c != '>') && (c != '/') && /* test bigname.xml */ (xmlIsNameChar(ctxt, c) && (c != ':'))) { - if (count++ > 100) { + if (count++ > XML_PARSER_CHUNK_SIZE) { + if ((len > XML_MAX_NAME_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErr(ctxt, XML_ERR_NAME_TOO_LONG, "NCName"); + return(NULL); + } count = 0; GROW; + if (ctxt->instate == XML_PARSER_EOF) + return(NULL); } len += l; NEXTL(l); c = CUR_CHAR(l); + if (c == 0) { + count = 0; + GROW; + if (ctxt->instate == XML_PARSER_EOF) + return(NULL); + c = CUR_CHAR(l); + } + } + if ((len > XML_MAX_NAME_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErr(ctxt, XML_ERR_NAME_TOO_LONG, "NCName"); + return(NULL); } return(xmlDictLookup(ctxt->dict, ctxt->input->cur - len, len)); } @@ -3394,6 +3473,11 @@ xmlParseNCName(xmlParserCtxtPtr ctxt) { in++; if ((*in > 0) && (*in < 0x80)) { count = in - ctxt->input->cur; + if ((count > XML_MAX_NAME_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErr(ctxt, XML_ERR_NAME_TOO_LONG, "NCName"); + return(NULL); + } ret = xmlDictLookup(ctxt->dict, ctxt->input->cur, count); ctxt->input->cur = in; ctxt->nbChars += count; @@ -3425,6 +3509,8 @@ xmlParseNameAndCompare(xmlParserCtxtPtr ctxt, xmlChar const *other) { const xmlChar *ret; GROW; + if (ctxt->instate == XML_PARSER_EOF) + return(NULL); in = ctxt->input->cur; while (*in != 0 && *in == *cmp) { @@ -3460,7 +3546,7 @@ xmlParseNameAndCompare(xmlParserCtxtPtr ctxt, xmlChar const *other) { * * [6] Names ::= Name (#x20 Name)* * - * Returns the Name parsed or NULL. The @str pointer + * Returns the Name parsed or NULL. The @str pointer * is updated to the current location in the string. */ @@ -3504,6 +3590,13 @@ xmlParseStringName(xmlParserCtxtPtr ctxt, const xmlChar** str) { while (xmlIsNameChar(ctxt, c)) { if (len + 10 > max) { xmlChar *tmp; + + if ((len > XML_MAX_NAME_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErr(ctxt, XML_ERR_NAME_TOO_LONG, "NCName"); + xmlFree(buffer); + return(NULL); + } max *= 2; tmp = (xmlChar *) xmlRealloc(buffer, max * sizeof(xmlChar)); @@ -3523,6 +3616,11 @@ xmlParseStringName(xmlParserCtxtPtr ctxt, const xmlChar** str) { return(buffer); } } + if ((len > XML_MAX_NAME_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErr(ctxt, XML_ERR_NAME_TOO_LONG, "NCName"); + return(NULL); + } *str = cur; return(xmlStrndup(buf, len)); } @@ -3552,16 +3650,25 @@ xmlParseNmtoken(xmlParserCtxtPtr ctxt) { #endif GROW; + if (ctxt->instate == XML_PARSER_EOF) + return(NULL); c = CUR_CHAR(l); while (xmlIsNameChar(ctxt, c)) { - if (count++ > 100) { + if (count++ > XML_PARSER_CHUNK_SIZE) { count = 0; GROW; } COPY_BUF(l,buf,len,c); NEXTL(l); c = CUR_CHAR(l); + if (c == 0) { + count = 0; + GROW; + if (ctxt->instate == XML_PARSER_EOF) + return(NULL); + c = CUR_CHAR(l); + } if (len >= XML_MAX_NAMELEN) { /* * Okay someone managed to make a huge token, so he's ready to pay @@ -3577,13 +3684,23 @@ xmlParseNmtoken(xmlParserCtxtPtr ctxt) { } memcpy(buffer, buf, len); while (xmlIsNameChar(ctxt, c)) { - if (count++ > 100) { + if (count++ > XML_PARSER_CHUNK_SIZE) { count = 0; GROW; + if (ctxt->instate == XML_PARSER_EOF) { + xmlFree(buffer); + return(NULL); + } } if (len + 10 > max) { xmlChar *tmp; + if ((max > XML_MAX_NAME_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErr(ctxt, XML_ERR_NAME_TOO_LONG, "NmToken"); + xmlFree(buffer); + return(NULL); + } max *= 2; tmp = (xmlChar *) xmlRealloc(buffer, max * sizeof(xmlChar)); @@ -3604,6 +3721,11 @@ xmlParseNmtoken(xmlParserCtxtPtr ctxt) { } if (len == 0) return(NULL); + if ((len > XML_MAX_NAME_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErr(ctxt, XML_ERR_NAME_TOO_LONG, "NmToken"); + return(NULL); + } return(xmlStrndup(buf, len)); } @@ -3650,6 +3772,10 @@ xmlParseEntityValue(xmlParserCtxtPtr ctxt, xmlChar **orig) { ctxt->instate = XML_PARSER_ENTITY_VALUE; input = ctxt->input; GROW; + if (ctxt->instate == XML_PARSER_EOF) { + xmlFree(buf); + return(NULL); + } NEXT; c = CUR_CHAR(l); /* @@ -3657,12 +3783,12 @@ xmlParseEntityValue(xmlParserCtxtPtr ctxt, xmlChar **orig) { * When a parameter entity reference appears in a literal entity * value, ... a single or double quote character in the replacement * text is always treated as a normal data character and will not - * terminate the literal. + * terminate the literal. * In practice it means we stop the loop only when back at parsing * the initial entity and the quote is found */ - while ((IS_CHAR(c)) && ((c != stop) || /* checked */ - (ctxt->input != input))) { + while (((IS_CHAR(c)) && ((c != stop) || /* checked */ + (ctxt->input != input))) && (ctxt->instate != XML_PARSER_EOF)) { if (len + 5 >= size) { xmlChar *tmp; @@ -3691,6 +3817,10 @@ xmlParseEntityValue(xmlParserCtxtPtr ctxt, xmlChar **orig) { } } buf[len] = 0; + if (ctxt->instate == XML_PARSER_EOF) { + xmlFree(buf); + return(NULL); + } /* * Raise problem w.r.t. '&' and '%' being used in non-entities @@ -3738,12 +3868,12 @@ xmlParseEntityValue(xmlParserCtxtPtr ctxt, xmlChar **orig) { */ ret = xmlStringDecodeEntities(ctxt, buf, XML_SUBSTITUTE_PEREF, 0, 0, 0); - if (orig != NULL) + if (orig != NULL) *orig = buf; else xmlFree(buf); } - + return(ret); } @@ -3764,8 +3894,8 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { xmlChar limit = 0; xmlChar *buf = NULL; xmlChar *rep = NULL; - int len = 0; - int buf_size = 0; + size_t len = 0; + size_t buf_size = 0; int c, l, in_space = 0; xmlChar *current = NULL; xmlEntityPtr ent; @@ -3787,15 +3917,26 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { * allocate a translation buffer. */ buf_size = XML_PARSER_BUFFER_SIZE; - buf = (xmlChar *) xmlMallocAtomic(buf_size * sizeof(xmlChar)); + buf = (xmlChar *) xmlMallocAtomic(buf_size); if (buf == NULL) goto mem_error; /* * OK loop until we reach one of the ending char or a size limit. */ c = CUR_CHAR(l); - while ((NXT(0) != limit) && /* checked */ - (IS_CHAR(c)) && (c != '<')) { + while (((NXT(0) != limit) && /* checked */ + (IS_CHAR(c)) && (c != '<')) && + (ctxt->instate != XML_PARSER_EOF)) { + /* + * Impose a reasonable limit on attribute size, unless XML_PARSE_HUGE + * special option is given + */ + if ((len > XML_MAX_TEXT_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErrMsg(ctxt, XML_ERR_ATTRIBUTE_NOT_FINISHED, + "AttValue lenght too long\n"); + goto mem_error; + } if (c == 0) break; if (c == '&') { in_space = 0; @@ -3804,7 +3945,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { if (val == '&') { if (ctxt->replaceEntities) { - if (len > buf_size - 10) { + if (len + 10 > buf_size) { growBuffer(buf, 10); } buf[len++] = '&'; @@ -3813,7 +3954,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { * The reparsing will be done in xmlStringGetNodeList() * called by the attribute() function in SAX.c */ - if (len > buf_size - 10) { + if (len + 10 > buf_size) { growBuffer(buf, 10); } buf[len++] = '&'; @@ -3823,7 +3964,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { buf[len++] = ';'; } } else if (val != 0) { - if (len > buf_size - 10) { + if (len + 10 > buf_size) { growBuffer(buf, 10); } len += xmlCopyChar(0, &buf[len], val); @@ -3835,7 +3976,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { ctxt->nbentities += ent->owner; if ((ent != NULL) && (ent->etype == XML_INTERNAL_PREDEFINED_ENTITY)) { - if (len > buf_size - 10) { + if (len + 10 > buf_size) { growBuffer(buf, 10); } if ((ctxt->replaceEntities == 0) && @@ -3848,7 +3989,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { } else { buf[len++] = ent->content[0]; } - } else if ((ent != NULL) && + } else if ((ent != NULL) && (ctxt->replaceEntities != 0)) { if (ent->etype != XML_INTERNAL_PREDEFINED_ENTITY) { rep = xmlStringDecodeEntities(ctxt, ent->content, @@ -3863,7 +4004,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { current++; } else buf[len++] = *current++; - if (len > buf_size - 10) { + if (len + 10 > buf_size) { growBuffer(buf, 10); } } @@ -3871,7 +4012,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { rep = NULL; } } else { - if (len > buf_size - 10) { + if (len + 10 > buf_size) { growBuffer(buf, 10); } if (ent->content != NULL) @@ -3899,7 +4040,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { * Just output the reference */ buf[len++] = '&'; - while (len > buf_size - i - 10) { + while (len + i + 10 > buf_size) { growBuffer(buf, i + 10); } for (;i > 0;i--) @@ -3912,7 +4053,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { if ((len != 0) || (!normalize)) { if ((!normalize) || (!in_space)) { COPY_BUF(l,buf,len,0x20); - while (len > buf_size - 10) { + while (len + 10 > buf_size) { growBuffer(buf, 10); } } @@ -3921,7 +4062,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { } else { in_space = 0; COPY_BUF(l,buf,len,c); - if (len > buf_size - 10) { + if (len + 10 > buf_size) { growBuffer(buf, 10); } } @@ -3930,6 +4071,9 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { GROW; c = CUR_CHAR(l); } + if (ctxt->instate == XML_PARSER_EOF) + goto error; + if ((in_space) && (normalize)) { while (buf[len - 1] == 0x20) len--; } @@ -3946,11 +4090,23 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { } } else NEXT; - if (attlen != NULL) *attlen = len; + + /* + * There we potentially risk an overflow, don't allow attribute value of + * lenght more than INT_MAX it is a very reasonnable assumption ! + */ + if (len >= INT_MAX) { + xmlFatalErrMsg(ctxt, XML_ERR_ATTRIBUTE_NOT_FINISHED, + "AttValue lenght too long\n"); + goto mem_error; + } + + if (attlen != NULL) *attlen = (int) len; return(buf); mem_error: xmlErrMemory(ctxt, NULL); +error: if (buf != NULL) xmlFree(buf); if (rep != NULL) @@ -3971,20 +4127,20 @@ mem_error: * * 3.3.3 Attribute-Value Normalization: * Before the value of an attribute is passed to the application or - * checked for validity, the XML processor must normalize it as follows: + * checked for validity, the XML processor must normalize it as follows: * - a character reference is processed by appending the referenced * character to the attribute value * - an entity reference is processed by recursively processing the - * replacement text of the entity + * replacement text of the entity * - a whitespace character (#x20, #xD, #xA, #x9) is processed by * appending #x20 to the normalized value, except that only a single * #x20 is appended for a "#xD#xA" sequence that is part of an external - * parsed entity or the literal entity value of an internal parsed entity - * - other characters are processed by appending them to the normalized value + * parsed entity or the literal entity value of an internal parsed entity + * - other characters are processed by appending them to the normalized value * If the declared value is not CDATA, then the XML processor must further * process the normalized attribute value by discarding any leading and * trailing space (#x20) characters, and by replacing sequences of space - * (#x20) characters by a single space (#x20) character. + * (#x20) characters by a single space (#x20) character. * All attributes for which no declaration has been read should be treated * by a non-validating parser as if declared CDATA. * @@ -4001,7 +4157,7 @@ xmlParseAttValue(xmlParserCtxtPtr ctxt) { /** * xmlParseSystemLiteral: * @ctxt: an XML parser context - * + * * parse an XML Literal * * [11] SystemLiteral ::= ('"' [^"]* '"') | ("'" [^']* "'") @@ -4030,7 +4186,7 @@ xmlParseSystemLiteral(xmlParserCtxtPtr ctxt) { xmlFatalErr(ctxt, XML_ERR_LITERAL_NOT_STARTED, NULL); return(NULL); } - + buf = (xmlChar *) xmlMallocAtomic(size * sizeof(xmlChar)); if (buf == NULL) { xmlErrMemory(ctxt, NULL); @@ -4042,6 +4198,13 @@ xmlParseSystemLiteral(xmlParserCtxtPtr ctxt) { if (len + 5 >= size) { xmlChar *tmp; + if ((size > XML_MAX_NAME_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErr(ctxt, XML_ERR_NAME_TOO_LONG, "SystemLiteral"); + xmlFree(buf); + ctxt->instate = (xmlParserInputState) state; + return(NULL); + } size *= 2; tmp = (xmlChar *) xmlRealloc(buf, size * sizeof(xmlChar)); if (tmp == NULL) { @@ -4056,6 +4219,10 @@ xmlParseSystemLiteral(xmlParserCtxtPtr ctxt) { if (count > 50) { GROW; count = 0; + if (ctxt->instate == XML_PARSER_EOF) { + xmlFree(buf); + return(NULL); + } } COPY_BUF(l,buf,len,cur); NEXTL(l); @@ -4119,6 +4286,12 @@ xmlParsePubidLiteral(xmlParserCtxtPtr ctxt) { if (len + 1 >= size) { xmlChar *tmp; + if ((size > XML_MAX_NAME_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErr(ctxt, XML_ERR_NAME_TOO_LONG, "Public ID"); + xmlFree(buf); + return(NULL); + } size *= 2; tmp = (xmlChar *) xmlRealloc(buf, size * sizeof(xmlChar)); if (tmp == NULL) { @@ -4133,6 +4306,10 @@ xmlParsePubidLiteral(xmlParserCtxtPtr ctxt) { if (count > 50) { GROW; count = 0; + if (ctxt->instate == XML_PARSER_EOF) { + xmlFree(buf); + return(NULL); + } } NEXT; cur = CUR; @@ -4203,7 +4380,7 @@ static const unsigned char test_char_data[256] = { * The right angle bracket (>) may be represented using the string ">", * and must, for compatibility, be escaped using ">" or a character * reference when it appears in the string "]]>" in content, when that - * string is not marking the end of a CDATA section. + * string is not marking the end of a CDATA section. * * [14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*) */ @@ -4339,6 +4516,8 @@ get_more: } SHRINK; GROW; + if (ctxt->instate == XML_PARSER_EOF) + return; in = ctxt->input->cur; } while (((*in >= 0x20) && (*in <= 0x7F)) || (*in == 0x09)); nbchar = 0; @@ -4368,7 +4547,7 @@ xmlParseCharDataComplex(xmlParserCtxtPtr ctxt, int cdata) { GROW; cur = CUR_CHAR(l); while ((cur != '<') && /* checked */ - (cur != '&') && + (cur != '&') && (IS_CHAR(cur))) /* test also done in xmlCurrentChar() */ { if ((cur == ']') && (NXT(1) == ']') && (NXT(2) == '>')) { @@ -4407,6 +4586,8 @@ xmlParseCharDataComplex(xmlParserCtxtPtr ctxt, int cdata) { if (count > 50) { GROW; count = 0; + if (ctxt->instate == XML_PARSER_EOF) + return; } NEXTL(l); cur = CUR_CHAR(l); @@ -4499,7 +4680,7 @@ xmlParseExternalID(xmlParserCtxtPtr ctxt, xmlChar **publicID, int strict) { } } else { /* - * We handle [83] so we return immediately, if + * We handle [83] so we return immediately, if * "S SystemLiteral" is not detected. From a purely parsing * point of view that's a nice mess. */ @@ -4508,7 +4689,7 @@ xmlParseExternalID(xmlParserCtxtPtr ctxt, xmlChar **publicID, int strict) { ptr = CUR_PTR; if (!IS_BLANK_CH(*ptr)) return(NULL); - + while (IS_BLANK_CH(*ptr)) ptr++; /* TODO: dangerous, fix ! */ if ((*ptr != '\'') && (*ptr != '"')) return(NULL); } @@ -4536,11 +4717,12 @@ xmlParseExternalID(xmlParserCtxtPtr ctxt, xmlChar **publicID, int strict) { * [15] Comment ::= '' */ static void -xmlParseCommentComplex(xmlParserCtxtPtr ctxt, xmlChar *buf, int len, int size) { +xmlParseCommentComplex(xmlParserCtxtPtr ctxt, xmlChar *buf, + size_t len, size_t size) { int q, ql; int r, rl; int cur, l; - int count = 0; + size_t count = 0; int inputid; inputid = ctxt->input->id; @@ -4586,16 +4768,26 @@ xmlParseCommentComplex(xmlParserCtxtPtr ctxt, xmlChar *buf, int len, int size) { if ((r == '-') && (q == '-')) { xmlFatalErr(ctxt, XML_ERR_HYPHEN_IN_COMMENT, NULL); } + if ((len > XML_MAX_TEXT_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErrMsgStr(ctxt, XML_ERR_COMMENT_NOT_FINISHED, + "Comment too big found", NULL); + xmlFree (buf); + return; + } if (len + 5 >= size) { xmlChar *new_buf; - size *= 2; - new_buf = (xmlChar *) xmlRealloc(buf, size * sizeof(xmlChar)); + size_t new_size; + + new_size = size * 2; + new_buf = (xmlChar *) xmlRealloc(buf, new_size); if (new_buf == NULL) { xmlFree (buf); xmlErrMemory(ctxt, NULL); return; } buf = new_buf; + size = new_size; } COPY_BUF(ql,buf,len,q); q = r; @@ -4607,6 +4799,10 @@ xmlParseCommentComplex(xmlParserCtxtPtr ctxt, xmlChar *buf, int len, int size) { if (count > 50) { GROW; count = 0; + if (ctxt->instate == XML_PARSER_EOF) { + xmlFree(buf); + return; + } } NEXTL(l); cur = CUR_CHAR(l); @@ -4656,11 +4852,12 @@ not_terminated: void xmlParseComment(xmlParserCtxtPtr ctxt) { xmlChar *buf = NULL; - int size = XML_PARSER_BUFFER_SIZE; - int len = 0; + size_t size = XML_PARSER_BUFFER_SIZE; + size_t len = 0; xmlParserInputState state; const xmlChar *in; - int nbchar = 0, ccol; + size_t nbchar = 0; + int ccol; int inputid; /* @@ -4740,6 +4937,13 @@ get_more: buf[len] = 0; } } + if ((len > XML_MAX_TEXT_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErrMsgStr(ctxt, XML_ERR_COMMENT_NOT_FINISHED, + "Comment too big found", NULL); + xmlFree (buf); + return; + } ctxt->input->cur = in; if (*in == 0xA) { in++; @@ -4757,6 +4961,10 @@ get_more: } SHRINK; GROW; + if (ctxt->instate == XML_PARSER_EOF) { + xmlFree(buf); + return; + } in = ctxt->input->cur; if (*in == '-') { if (in[1] == '-') { @@ -4803,7 +5011,7 @@ get_more: /** * xmlParsePITarget: * @ctxt: an XML parser context - * + * * parse the name of a PI * * [17] PITarget ::= Name - (('X' | 'x') ('M' | 'm') ('L' | 'l')) @@ -4840,7 +5048,7 @@ xmlParsePITarget(xmlParserCtxtPtr ctxt) { NULL, NULL); } if ((name != NULL) && (xmlStrchr(name, ':') != NULL)) { - xmlNsErr(ctxt, XML_NS_ERR_COLON, + xmlNsErr(ctxt, XML_NS_ERR_COLON, "colon are forbidden from PI names '%s'\n", name, NULL, NULL); } return(name); @@ -4851,7 +5059,7 @@ xmlParsePITarget(xmlParserCtxtPtr ctxt) { * xmlParseCatalogPI: * @ctxt: an XML parser context * @catalog: the PI value string - * + * * parse an XML Catalog Processing Instruction. * * @@ -4911,7 +5119,7 @@ error: /** * xmlParsePI: * @ctxt: an XML parser context - * + * * parse an XML Processing Instruction. * * [16] PI ::= '' Char*)))? '?>' @@ -4922,8 +5130,8 @@ error: void xmlParsePI(xmlParserCtxtPtr ctxt) { xmlChar *buf = NULL; - int len = 0; - int size = XML_PARSER_BUFFER_SIZE; + size_t len = 0; + size_t size = XML_PARSER_BUFFER_SIZE; int cur, l; const xmlChar *target; xmlParserInputState state; @@ -4980,9 +5188,8 @@ xmlParsePI(xmlParserCtxtPtr ctxt) { ((cur != '?') || (NXT(1) != '>'))) { if (len + 5 >= size) { xmlChar *tmp; - - size *= 2; - tmp = (xmlChar *) xmlRealloc(buf, size * sizeof(xmlChar)); + size_t new_size = size * 2; + tmp = (xmlChar *) xmlRealloc(buf, new_size); if (tmp == NULL) { xmlErrMemory(ctxt, NULL); xmlFree(buf); @@ -4990,11 +5197,24 @@ xmlParsePI(xmlParserCtxtPtr ctxt) { return; } buf = tmp; + size = new_size; } count++; if (count > 50) { GROW; + if (ctxt->instate == XML_PARSER_EOF) { + xmlFree(buf); + return; + } count = 0; + if ((len > XML_MAX_TEXT_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErrMsgStr(ctxt, XML_ERR_PI_NOT_FINISHED, + "PI %s too big found", target); + xmlFree(buf); + ctxt->instate = state; + return; + } } COPY_BUF(l,buf,len,cur); NEXTL(l); @@ -5005,6 +5225,14 @@ xmlParsePI(xmlParserCtxtPtr ctxt) { cur = CUR_CHAR(l); } } + if ((len > XML_MAX_TEXT_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErrMsgStr(ctxt, XML_ERR_PI_NOT_FINISHED, + "PI %s too big found", target); + xmlFree(buf); + ctxt->instate = state; + return; + } buf[len] = 0; if (cur != '?') { xmlFatalErrMsgStr(ctxt, XML_ERR_PI_NOT_FINISHED, @@ -5066,7 +5294,7 @@ xmlParseNotationDecl(xmlParserCtxtPtr ctxt) { const xmlChar *name; xmlChar *Pubid; xmlChar *Systemid; - + if (CMP10(CUR_PTR, '<', '!', 'N', 'O', 'T', 'A', 'T', 'I', 'O', 'N')) { xmlParserInputPtr input = ctxt->input; SHRINK; @@ -5089,7 +5317,7 @@ xmlParseNotationDecl(xmlParserCtxtPtr ctxt) { return; } if (xmlStrchr(name, ':') != NULL) { - xmlNsErr(ctxt, XML_NS_ERR_COLON, + xmlNsErr(ctxt, XML_NS_ERR_COLON, "colon are forbidden from notation names '%s'\n", name, NULL, NULL); } @@ -5149,7 +5377,7 @@ xmlParseEntityDecl(xmlParserCtxtPtr ctxt) { int isParameter = 0; xmlChar *orig = NULL; int skipped; - + /* GROW; done in the caller */ if (CMP8(CUR_PTR, '<', '!', 'E', 'N', 'T', 'I', 'T', 'Y')) { xmlParserInputPtr input = ctxt->input; @@ -5178,7 +5406,7 @@ xmlParseEntityDecl(xmlParserCtxtPtr ctxt) { return; } if (xmlStrchr(name, ':') != NULL) { - xmlNsErr(ctxt, XML_NS_ERR_COLON, + xmlNsErr(ctxt, XML_NS_ERR_COLON, "colon are forbidden from entities names '%s'\n", name, NULL, NULL); } @@ -5406,13 +5634,13 @@ xmlParseEntityDecl(xmlParserCtxtPtr ctxt) { * * [ VC: Fixed Attribute Default ] * if an attribute has a default value declared with the #FIXED - * keyword, instances of that attribute must match the default value. + * keyword, instances of that attribute must match the default value. * * [ WFC: No < in Attribute Values ] * handled in xmlParseAttValue() * * returns: XML_ATTRIBUTE_NONE, XML_ATTRIBUTE_REQUIRED, XML_ATTRIBUTE_IMPLIED - * or XML_ATTRIBUTE_FIXED. + * or XML_ATTRIBUTE_FIXED. */ int @@ -5461,7 +5689,7 @@ xmlParseDefaultDecl(xmlParserCtxtPtr ctxt, xmlChar **value) { * * [ VC: Notation Attributes ] * Values of this type must match one of the notation names included - * in the declaration; all notation names in the declaration must be declared. + * in the declaration; all notation names in the declaration must be declared. * * Returns: the notation attribute tree built while parsing */ @@ -5661,15 +5889,15 @@ xmlParseEnumeratedType(xmlParserCtxtPtr ctxt, xmlEnumerationPtr *tree) { * [ VC: Entity Name ] * Values of type ENTITY must match the Name production, values * of type ENTITIES must match Names; each Entity Name must match the - * name of an unparsed entity declared in the DTD. + * name of an unparsed entity declared in the DTD. * * [ VC: Name Token ] * Values of type NMTOKEN must match the Nmtoken production; values - * of type NMTOKENS must match Nmtokens. + * of type NMTOKENS must match Nmtokens. * * Returns the attribute type */ -int +int xmlParseAttributeType(xmlParserCtxtPtr ctxt, xmlEnumerationPtr *tree) { SHRINK; if (CMP5(CUR_PTR, 'C', 'D', 'A', 'T', 'A')) { @@ -5734,7 +5962,7 @@ xmlParseAttributeListDecl(xmlParserCtxtPtr ctxt) { } SKIP_BLANKS; GROW; - while (RAW != '>') { + while ((RAW != '>') && (ctxt->instate != XML_PARSER_EOF)) { const xmlChar *check = CUR_PTR; int type; int def; @@ -5812,7 +6040,7 @@ xmlParseAttributeListDecl(xmlParserCtxtPtr ctxt) { xmlFreeEnumeration(tree); if ((ctxt->sax2) && (defaultValue != NULL) && - (def != XML_ATTRIBUTE_IMPLIED) && + (def != XML_ATTRIBUTE_IMPLIED) && (def != XML_ATTRIBUTE_REQUIRED)) { xmlAddDefAttrs(ctxt, elemName, attrName, defaultValue); } @@ -5841,7 +6069,7 @@ xmlParseAttributeListDecl(xmlParserCtxtPtr ctxt) { * * parse the declaration for a Mixed Element content * The leading '(' and spaces have been skipped in xmlParseElementContentDecl - * + * * [51] Mixed ::= '(' S? '#PCDATA' (S? '|' S? Name)* S? ')*' | * '(' S? '#PCDATA' S? ')' * @@ -5849,7 +6077,7 @@ xmlParseAttributeListDecl(xmlParserCtxtPtr ctxt) { * * [ VC: No Duplicate Types ] * The same name must not appear more than once in a single - * mixed-content declaration. + * mixed-content declaration. * * returns: the list of the xmlElementContentPtr describing the element choices */ @@ -5883,7 +6111,7 @@ xmlParseElementMixedContentDecl(xmlParserCtxtPtr ctxt, int inputchk) { ret = cur = xmlNewDocElementContent(ctxt->myDoc, NULL, XML_ELEMENT_CONTENT_PCDATA); if (ret == NULL) return(NULL); } - while (RAW == '|') { + while ((RAW == '|') && (ctxt->instate != XML_PARSER_EOF)) { NEXT; if (elem == NULL) { ret = xmlNewDocElementContent(ctxt->myDoc, NULL, XML_ELEMENT_CONTENT_OR); @@ -5949,7 +6177,7 @@ xmlParseElementMixedContentDecl(xmlParserCtxtPtr ctxt, int inputchk) { * * parse the declaration for a Mixed Element content * The leading '(' and spaces have been skipped in xmlParseElementContentDecl - * + * * * [47] children ::= (choice | seq) ('?' | '*' | '+')? * @@ -5970,7 +6198,7 @@ xmlParseElementMixedContentDecl(xmlParserCtxtPtr ctxt, int inputchk) { * be empty, and neither the first nor last non-blank character of * the replacement text should be a connector (| or ,). * - * Returns the tree of xmlElementContentPtr describing the element + * Returns the tree of xmlElementContentPtr describing the element * hierarchy. */ static xmlElementContentPtr @@ -6027,7 +6255,7 @@ xmlParseElementChildrenContentDeclPriv(xmlParserCtxtPtr ctxt, int inputchk, } SKIP_BLANKS; SHRINK; - while (RAW != ')') { + while ((RAW != ')') && (ctxt->instate != XML_PARSER_EOF)) { /* * Each loop we parse one separator and one element. */ @@ -6283,7 +6511,7 @@ xmlParseElementChildrenContentDecl(xmlParserCtxtPtr ctxt, int inputchk) { * * parse the declaration for an Element content either Mixed or Children, * the cases EMPTY and ANY are handled directly in xmlParseElementDecl - * + * * [46] contentspec ::= 'EMPTY' | 'ANY' | Mixed | children * * returns: the type of element content XML_ELEMENT_TYPE_xxx @@ -6306,6 +6534,8 @@ xmlParseElementContentDecl(xmlParserCtxtPtr ctxt, const xmlChar *name, } NEXT; GROW; + if (ctxt->instate == XML_PARSER_EOF) + return(-1); SKIP_BLANKS; if (CMP7(CUR_PTR, '#', 'P', 'C', 'D', 'A', 'T', 'A')) { tree = xmlParseElementMixedContentDecl(ctxt, inputid); @@ -6409,7 +6639,7 @@ xmlParseElementDecl(xmlParserCtxtPtr ctxt) { xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY, "Element declaration doesn't start and stop in the same entity\n"); } - + NEXT; if ((ctxt->sax != NULL) && (!ctxt->disableSAX) && (ctxt->sax->elementDecl != NULL)) { @@ -6421,7 +6651,7 @@ xmlParseElementDecl(xmlParserCtxtPtr ctxt) { /* * this is a trick: if xmlAddElementDecl is called, * instead of copying the full tree it is plugged directly - * if called from the parser. Avoid duplicating the + * if called from the parser. Avoid duplicating the * interfaces or change the API/ABI */ xmlFreeDocElementContent(ctxt->myDoc, content); @@ -6438,8 +6668,8 @@ xmlParseElementDecl(xmlParserCtxtPtr ctxt) { * xmlParseConditionalSections * @ctxt: an XML parser context * - * [61] conditionalSect ::= includeSect | ignoreSect - * [62] includeSect ::= '' + * [61] conditionalSect ::= includeSect | ignoreSect + * [62] includeSect ::= '' * [63] ignoreSect ::= '' * [64] ignoreSectContents ::= Ignore ('' Ignore)* * [65] Ignore ::= Char* - (Char* ('') Char*) @@ -6473,8 +6703,8 @@ xmlParseConditionalSections(xmlParserCtxtPtr ctxt) { "Entering INCLUDE Conditional Section\n"); } - while ((RAW != 0) && ((RAW != ']') || (NXT(1) != ']') || - (NXT(2) != '>'))) { + while (((RAW != 0) && ((RAW != ']') || (NXT(1) != ']') || + (NXT(2) != '>'))) && (ctxt->instate != XML_PARSER_EOF)) { const xmlChar *check = CUR_PTR; unsigned int cons = ctxt->input->consumed; @@ -6542,7 +6772,8 @@ xmlParseConditionalSections(xmlParserCtxtPtr ctxt) { if (ctxt->recovery == 0) ctxt->disableSAX = 1; ctxt->instate = XML_PARSER_IGNORE; - while ((depth >= 0) && (RAW != 0)) { + while (((depth >= 0) && (RAW != 0)) && + (ctxt->instate != XML_PARSER_EOF)) { if ((RAW == '<') && (NXT(1) == '!') && (NXT(2) == '[')) { depth++; SKIP(3); @@ -6590,7 +6821,7 @@ xmlParseConditionalSections(xmlParserCtxtPtr ctxt) { /** * xmlParseMarkupDecl: * @ctxt: an XML parser context - * + * * parse Markup declarations * * [29] markupdecl ::= elementdecl | AttlistDecl | EntityDecl | @@ -6607,7 +6838,7 @@ xmlParseConditionalSections(xmlParserCtxtPtr ctxt) { * In the internal DTD subset, parameter-entity references can occur * only where markup declarations can occur, not within markup declarations. * (This does not apply to references that occur in external parameter - * entities or to the external subset.) + * entities or to the external subset.) */ void xmlParseMarkupDecl(xmlParserCtxtPtr ctxt) { @@ -6736,7 +6967,7 @@ xmlParseTextDecl(xmlParserCtxtPtr ctxt) { * @ctxt: an XML parser context * @ExternalID: the external identifier * @SystemID: the system identifier (or URL) - * + * * parse Markup declarations from an external subset * * [30] extSubset ::= textDecl? extSubsetDecl @@ -6813,7 +7044,7 @@ xmlParseExternalSubset(xmlParserCtxtPtr ctxt, const xmlChar *ExternalID, break; } } - + if (RAW != 0) { xmlFatalErr(ctxt, XML_ERR_EXT_SUBSET_NOT_FINISHED, NULL); } @@ -6915,8 +7146,15 @@ xmlParseReference(xmlParserCtxtPtr ctxt) { * The first reference to the entity trigger a parsing phase * where the ent->children is filled with the result from * the parsing. - */ - if (ent->checked == 0) { + * Note: external parsed entities will not be loaded, it is not + * required for a non-validating parser, unless the parsing option + * of validating, or substituting entities were given. Doing so is + * far more secure as the parser will only process data coming from + * the document entity by default. + */ + if ((ent->checked == 0) && + ((ent->etype != XML_EXTERNAL_GENERAL_PARSED_ENTITY) || + (ctxt->options & (XML_PARSE_NOENT | XML_PARSE_DTDVALID)))) { unsigned long oldnbent = ctxt->nbentities; /* @@ -7116,8 +7354,6 @@ xmlParseReference(xmlParserCtxtPtr ctxt) { * Seems we are generating the DOM content, do * a simple tree copy for all references except the first * In the first occurrence list contains the replacement. - * progressive == 2 means we are operating on the Reader - * and since nodes are discarded we must copy all the time. */ if (((list == NULL) && (ent->owner == 0)) || (ctxt->parseMode == XML_PARSE_READER)) { @@ -7160,7 +7396,7 @@ xmlParseReference(xmlParserCtxtPtr ctxt) { if (ent->etype == XML_EXTERNAL_GENERAL_PARSED_ENTITY) xmlAddEntityReference(ent, firstChild, nw); #endif /* LIBXML_LEGACY_ENABLED */ - } else if (list == NULL) { + } else if ((list == NULL) || (ctxt->inputNr > 0)) { xmlNodePtr nw = NULL, cur, next, last, firstChild = NULL; /* @@ -7260,6 +7496,8 @@ xmlParseEntityRef(xmlParserCtxtPtr ctxt) { xmlEntityPtr ent = NULL; GROW; + if (ctxt->instate == XML_PARSER_EOF) + return(NULL); if (RAW != '&') return(NULL); @@ -7297,7 +7535,7 @@ xmlParseEntityRef(xmlParserCtxtPtr ctxt) { if (ctxt->sax != NULL) { if (ctxt->sax->getEntity != NULL) ent = ctxt->sax->getEntity(ctxt->userData, name); - if ((ctxt->wellFormed == 1 ) && (ent == NULL) && + if ((ctxt->wellFormed == 1 ) && (ent == NULL) && (ctxt->options & XML_PARSE_OLDSAX)) ent = xmlGetPredefinedEntity(name); if ((ctxt->wellFormed == 1 ) && (ent == NULL) && @@ -7368,7 +7606,7 @@ xmlParseEntityRef(xmlParserCtxtPtr ctxt) { * [ WFC: No < in Attribute Values ] * The replacement text of any entity referred to directly or * indirectly in an attribute value (other than "<") must - * not contain a <. + * not contain a <. */ else if ((ctxt->instate == XML_PARSER_ATTRIBUTE_VALUE) && (ent != NULL) && (ent->content != NULL) && @@ -7397,7 +7635,7 @@ xmlParseEntityRef(xmlParserCtxtPtr ctxt) { /* * [ WFC: No Recursion ] * A parsed entity must not contain a recursive reference - * to itself, either directly or indirectly. + * to itself, either directly or indirectly. * Done somewhere else */ return(ent); @@ -7515,7 +7753,7 @@ xmlParseStringEntityRef(xmlParserCtxtPtr ctxt, const xmlChar ** str) { * is not obligated to read and process their declarations; * for such documents, the rule that an entity must be * declared is a well-formedness constraint only if - * standalone='yes'. + * standalone='yes'. */ if (ent == NULL) { if ((ctxt->standalone == 1) || @@ -7606,7 +7844,7 @@ xmlParseStringEntityRef(xmlParserCtxtPtr ctxt, const xmlChar ** str) { * * [ WFC: No Recursion ] * A parsed entity must not contain a recursive - * reference to itself, either directly or indirectly. + * reference to itself, either directly or indirectly. * * [ WFC: Entity Declared ] * In a document without any DTD, a document with only an internal DTD @@ -7787,12 +8025,25 @@ xmlLoadEntityContent(xmlParserCtxtPtr ctxt, xmlEntityPtr entity) { while ((ctxt->input == input) && (ctxt->input->cur < ctxt->input->end) && (IS_CHAR(c))) { xmlBufferAdd(buf, ctxt->input->cur, l); - if (count++ > 100) { + if (count++ > XML_PARSER_CHUNK_SIZE) { count = 0; GROW; + if (ctxt->instate == XML_PARSER_EOF) { + xmlBufferFree(buf); + return(-1); + } } NEXTL(l); c = CUR_CHAR(l); + if (c == 0) { + count = 0; + GROW; + if (ctxt->instate == XML_PARSER_EOF) { + xmlBufferFree(buf); + return(-1); + } + c = CUR_CHAR(l); + } } if ((ctxt->input == input) && (ctxt->input->cur >= ctxt->input->end)) { @@ -7932,12 +8183,12 @@ xmlParseStringPEReference(xmlParserCtxtPtr ctxt, const xmlChar **str) { * * parse a DOCTYPE declaration * - * [28] doctypedecl ::= '' * * [ VC: Root Element Type ] * The Name in the document type declaration must match the element - * type of the root element. + * type of the root element. */ void @@ -8019,11 +8270,11 @@ xmlParseInternalSubset(xmlParserCtxtPtr ctxt) { ctxt->instate = XML_PARSER_DTD; NEXT; /* - * Parse the succession of Markup declarations and + * Parse the succession of Markup declarations and * PEReferences. * Subsequence (markupdecl | PEReference | S)* */ - while (RAW != ']') { + while ((RAW != ']') && (ctxt->instate != XML_PARSER_EOF)) { const xmlChar *check = CUR_PTR; unsigned int cons = ctxt->input->consumed; @@ -8043,7 +8294,7 @@ xmlParseInternalSubset(xmlParserCtxtPtr ctxt) { break; } } - if (RAW == ']') { + if (RAW == ']') { NEXT; SKIP_BLANKS; } @@ -8074,8 +8325,8 @@ xmlParseInternalSubset(xmlParserCtxtPtr ctxt) { * * [ WFC: No < in Attribute Values ] * The replacement text of any entity referred to directly or indirectly in - * an attribute value (other than "<") must not contain a <. - * + * an attribute value (other than "<") must not contain a <. + * * [ VC: Attribute Value Type ] * The attribute must have been declared; the value must be of the type * declared for it. @@ -8156,7 +8407,7 @@ xmlParseAttribute(xmlParserCtxtPtr ctxt, xmlChar **value) { /** * xmlParseStartTag: * @ctxt: an XML parser context - * + * * parse a start of tag either for rule element or * EmptyElement. In both case we don't parse the tag closing chars. * @@ -8164,13 +8415,13 @@ xmlParseAttribute(xmlParserCtxtPtr ctxt, xmlChar **value) { * * [ WFC: Unique Att Spec ] * No attribute name may appear more than once in the same start-tag or - * empty-element tag. + * empty-element tag. * * [44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>' * * [ WFC: Unique Att Spec ] * No attribute name may appear more than once in the same start-tag or - * empty-element tag. + * empty-element tag. * * With namespace: * @@ -8209,9 +8460,9 @@ xmlParseStartTag(xmlParserCtxtPtr ctxt) { SKIP_BLANKS; GROW; - while ((RAW != '>') && + while (((RAW != '>') && ((RAW != '/') || (NXT(1) != '>')) && - (IS_BYTE_CHAR(RAW))) { + (IS_BYTE_CHAR(RAW))) && (ctxt->instate != XML_PARSER_EOF)) { const xmlChar *q = CUR_PTR; unsigned int cons = ctxt->input->consumed; @@ -8220,7 +8471,7 @@ xmlParseStartTag(xmlParserCtxtPtr ctxt) { /* * [ WFC: Unique Att Spec ] * No attribute name may appear more than once in the same - * start-tag or empty-element tag. + * start-tag or empty-element tag. */ for (i = 0; i < nbatts;i += 2) { if (xmlStrEqual(atts[i], attname)) { @@ -8269,7 +8520,7 @@ xmlParseStartTag(xmlParserCtxtPtr ctxt) { xmlFree(attvalue); } -failed: +failed: GROW if ((RAW == '>') || (((RAW == '/') && (NXT(1) == '>')))) @@ -8351,7 +8602,7 @@ xmlParseEndTag1(xmlParserCtxtPtr ctxt, int line) { /* * [ WFC: Element Type Match ] * The Name in an element's end-tag must match the element type in the - * start-tag. + * start-tag. * */ if (name != (xmlChar*)1) { @@ -8447,7 +8698,7 @@ xmlParseQName(xmlParserCtxtPtr ctxt, const xmlChar **prefix) { if (CUR == ':') { l = xmlParseName(ctxt); if (l != NULL) { - xmlNsErr(ctxt, XML_NS_ERR_QNAME, + xmlNsErr(ctxt, XML_NS_ERR_QNAME, "Failed to parse QName '%s'\n", l, NULL, NULL); *prefix = NULL; return(l); @@ -8530,7 +8781,7 @@ xmlParseQNameAndCompare(xmlParserCtxtPtr ctxt, xmlChar const *name, cmp = prefix; while (*in != 0 && *in == *cmp) { - ++in; + ++in; ++cmp; } if ((*cmp == 0) && (*in == ':')) { @@ -8568,20 +8819,20 @@ xmlParseQNameAndCompare(xmlParserCtxtPtr ctxt, xmlChar const *name, * * 3.3.3 Attribute-Value Normalization: * Before the value of an attribute is passed to the application or - * checked for validity, the XML processor must normalize it as follows: + * checked for validity, the XML processor must normalize it as follows: * - a character reference is processed by appending the referenced * character to the attribute value * - an entity reference is processed by recursively processing the - * replacement text of the entity + * replacement text of the entity * - a whitespace character (#x20, #xD, #xA, #x9) is processed by * appending #x20 to the normalized value, except that only a single * #x20 is appended for a "#xD#xA" sequence that is part of an external - * parsed entity or the literal entity value of an internal parsed entity - * - other characters are processed by appending them to the normalized value + * parsed entity or the literal entity value of an internal parsed entity + * - other characters are processed by appending them to the normalized value * If the declared value is not CDATA, then the XML processor must further * process the normalized attribute value by discarding any leading and * trailing space (#x20) characters, and by replacing sequences of space - * (#x20) characters by a single space (#x20) character. + * (#x20) characters by a single space (#x20) character. * All attributes for which no declaration has been read should be treated * by a non-validating parser as if declared CDATA. * @@ -8627,7 +8878,7 @@ xmlParseAttValueInternal(xmlParserCtxtPtr ctxt, int *len, int *alloc, /* * Skip any leading spaces */ - while ((in < end) && (*in != limit) && + while ((in < end) && (*in != limit) && ((*in == 0x20) || (*in == 0x9) || (*in == 0xA) || (*in == 0xD))) { in++; @@ -8635,12 +8886,20 @@ xmlParseAttValueInternal(xmlParserCtxtPtr ctxt, int *len, int *alloc, if (in >= end) { const xmlChar *oldbase = ctxt->input->base; GROW; + if (ctxt->instate == XML_PARSER_EOF) + return(NULL); if (oldbase != ctxt->input->base) { long delta = ctxt->input->base - oldbase; start = start + delta; in = in + delta; } end = ctxt->input->end; + if (((in - start) > XML_MAX_TEXT_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErrMsg(ctxt, XML_ERR_ATTRIBUTE_NOT_FINISHED, + "AttValue lenght too long\n"); + return(NULL); + } } } while ((in < end) && (*in != limit) && (*in >= 0x20) && @@ -8649,12 +8908,20 @@ xmlParseAttValueInternal(xmlParserCtxtPtr ctxt, int *len, int *alloc, if (in >= end) { const xmlChar *oldbase = ctxt->input->base; GROW; + if (ctxt->instate == XML_PARSER_EOF) + return(NULL); if (oldbase != ctxt->input->base) { long delta = ctxt->input->base - oldbase; start = start + delta; in = in + delta; } end = ctxt->input->end; + if (((in - start) > XML_MAX_TEXT_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErrMsg(ctxt, XML_ERR_ATTRIBUTE_NOT_FINISHED, + "AttValue lenght too long\n"); + return(NULL); + } } } last = in; @@ -8662,13 +8929,15 @@ xmlParseAttValueInternal(xmlParserCtxtPtr ctxt, int *len, int *alloc, * skip the trailing blanks */ while ((last[-1] == 0x20) && (last > start)) last--; - while ((in < end) && (*in != limit) && + while ((in < end) && (*in != limit) && ((*in == 0x20) || (*in == 0x9) || (*in == 0xA) || (*in == 0xD))) { in++; if (in >= end) { const xmlChar *oldbase = ctxt->input->base; GROW; + if (ctxt->instate == XML_PARSER_EOF) + return(NULL); if (oldbase != ctxt->input->base) { long delta = ctxt->input->base - oldbase; start = start + delta; @@ -8676,8 +8945,20 @@ xmlParseAttValueInternal(xmlParserCtxtPtr ctxt, int *len, int *alloc, last = last + delta; } end = ctxt->input->end; - } - } + if (((in - start) > XML_MAX_TEXT_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErrMsg(ctxt, XML_ERR_ATTRIBUTE_NOT_FINISHED, + "AttValue lenght too long\n"); + return(NULL); + } + } + } + if (((in - start) > XML_MAX_TEXT_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErrMsg(ctxt, XML_ERR_ATTRIBUTE_NOT_FINISHED, + "AttValue lenght too long\n"); + return(NULL); + } if (*in != limit) goto need_complex; } else { while ((in < end) && (*in != limit) && (*in >= 0x20) && @@ -8686,15 +8967,29 @@ xmlParseAttValueInternal(xmlParserCtxtPtr ctxt, int *len, int *alloc, if (in >= end) { const xmlChar *oldbase = ctxt->input->base; GROW; + if (ctxt->instate == XML_PARSER_EOF) + return(NULL); if (oldbase != ctxt->input->base) { long delta = ctxt->input->base - oldbase; start = start + delta; in = in + delta; } end = ctxt->input->end; + if (((in - start) > XML_MAX_TEXT_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErrMsg(ctxt, XML_ERR_ATTRIBUTE_NOT_FINISHED, + "AttValue lenght too long\n"); + return(NULL); + } } } last = in; + if (((in - start) > XML_MAX_TEXT_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErrMsg(ctxt, XML_ERR_ATTRIBUTE_NOT_FINISHED, + "AttValue lenght too long\n"); + return(NULL); + } if (*in != limit) goto need_complex; } in++; @@ -8833,7 +9128,7 @@ xmlParseAttribute2(xmlParserCtxtPtr ctxt, /** * xmlParseStartTag2: * @ctxt: an XML parser context - * + * * parse a start of tag either for rule element or * EmptyElement. In both case we don't parse the tag closing chars. * This routine is called when running SAX2 parsing @@ -8842,13 +9137,13 @@ xmlParseAttribute2(xmlParserCtxtPtr ctxt, * * [ WFC: Unique Att Spec ] * No attribute name may appear more than once in the same start-tag or - * empty-element tag. + * empty-element tag. * * [44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>' * * [ WFC: Unique Att Spec ] * No attribute name may appear more than once in the same start-tag or - * empty-element tag. + * empty-element tag. * * With namespace: * @@ -8917,9 +9212,9 @@ reparse: GROW; if (ctxt->input->base != base) goto base_changed; - while ((RAW != '>') && + while (((RAW != '>') && ((RAW != '/') || (NXT(1) != '>')) && - (IS_BYTE_CHAR(RAW))) { + (IS_BYTE_CHAR(RAW))) && (ctxt->instate != XML_PARSER_EOF)) { const xmlChar *q = CUR_PTR; unsigned int cons = ctxt->input->consumed; int len = -1, alloc = 0; @@ -9090,6 +9385,8 @@ skip_ns: failed: GROW + if (ctxt->instate == XML_PARSER_EOF) + break; if (ctxt->input->base != base) goto base_changed; if ((RAW == '>') || (((RAW == '/') && (NXT(1) == '>')))) break; @@ -9181,7 +9478,7 @@ failed: atts[nbatts++] = defaults->values[5 * i + 3]; if ((ctxt->standalone == 1) && (defaults->values[5 * i + 4] != NULL)) { - xmlValidityError(ctxt, XML_DTD_STANDALONE_DEFAULTED, + xmlValidityError(ctxt, XML_DTD_STANDALONE_DEFAULTED, "standalone: attribute %s on %s defaulted from external subset\n", attname, localname); } @@ -9211,7 +9508,7 @@ failed: /* * [ WFC: Unique Att Spec ] * No attribute name may appear more than once in the same - * start-tag or empty-element tag. + * start-tag or empty-element tag. * As extended by the Namespace in XML REC. */ for (j = 0; j < i;j += 5) { @@ -9327,6 +9624,8 @@ xmlParseEndTag2(xmlParserCtxtPtr ctxt, const xmlChar *prefix, * We should definitely be at the ending "S? '>'" part */ GROW; + if (ctxt->instate == XML_PARSER_EOF) + return; SKIP_BLANKS; if ((!IS_BYTE_CHAR(RAW)) || (RAW != '>')) { xmlFatalErr(ctxt, XML_ERR_GT_REQUIRED, NULL); @@ -9336,7 +9635,7 @@ xmlParseEndTag2(xmlParserCtxtPtr ctxt, const xmlChar *prefix, /* * [ WFC: Element Type Match ] * The Name in an element's end-tag must match the element type in the - * start-tag. + * start-tag. * */ if (name != (xmlChar*)1) { @@ -9365,7 +9664,7 @@ done: /** * xmlParseCDSect: * @ctxt: an XML parser context - * + * * Parse escaped pure raw content. * * [18] CDSect ::= CDStart CData CDEnd @@ -9418,14 +9717,21 @@ xmlParseCDSect(xmlParserCtxtPtr ctxt) { if (len + 5 >= size) { xmlChar *tmp; - size *= 2; - tmp = (xmlChar *) xmlRealloc(buf, size * sizeof(xmlChar)); + if ((size > XML_MAX_TEXT_LENGTH) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErrMsgStr(ctxt, XML_ERR_CDATA_NOT_FINISHED, + "CData section too big found", NULL); + xmlFree (buf); + return; + } + tmp = (xmlChar *) xmlRealloc(buf, size * 2 * sizeof(xmlChar)); if (tmp == NULL) { xmlFree(buf); xmlErrMemory(ctxt, NULL); return; } buf = tmp; + size *= 2; } COPY_BUF(rl,buf,len,r); r = s; @@ -9435,6 +9741,10 @@ xmlParseCDSect(xmlParserCtxtPtr ctxt) { count++; if (count > 50) { GROW; + if (ctxt->instate == XML_PARSER_EOF) { + xmlFree(buf); + return; + } count = 0; } NEXTL(l); @@ -9514,7 +9824,7 @@ xmlParseContent(xmlParserCtxtPtr ctxt) { /* * Fifth case : a reference. If if has not been resolved, - * parsing returns it's Name, create the node + * parsing returns it's Name, create the node */ else if (*cur == '&') { @@ -9555,7 +9865,7 @@ xmlParseContent(xmlParserCtxtPtr ctxt) { * * [ WFC: Element Type Match ] * The Name in an element's end-tag must match the element type in the - * start-tag. + * start-tag. * */ @@ -9614,7 +9924,7 @@ xmlParseElement(xmlParserCtxtPtr ctxt) { /* * [ VC: Root Element Type ] * The Name in the document type declaration must match the element - * type of the root element. + * type of the root element. */ if (ctxt->validate && ctxt->wellFormed && ctxt->myDoc && ctxt->node && (ctxt->node == ctxt->myDoc->children)) @@ -9895,7 +10205,7 @@ xmlParseEncName(xmlParserCtxtPtr ctxt) { /** * xmlParseEncodingDecl: * @ctxt: an XML parser context - * + * * parse the XML encoding declaration * * [80] EncodingDecl ::= S 'encoding' Eq ('"' EncName '"' | "'" EncName "'") @@ -9952,7 +10262,7 @@ xmlParseEncodingDecl(xmlParserCtxtPtr ctxt) { (!xmlStrcasecmp(encoding, BAD_CAST "UTF16")))) { /* * If no encoding was passed to the parser, that we are - * using UTF-16 and no decoder is present i.e. the + * using UTF-16 and no decoder is present i.e. the * document is apparently UTF-8 compatible, then raise an * encoding mismatch fatal error */ @@ -10003,7 +10313,7 @@ xmlParseEncodingDecl(xmlParserCtxtPtr ctxt) { * parse the XML standalone declaration * * [32] SDDecl ::= S 'standalone' Eq - * (("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no')'"')) + * (("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no')'"')) * * [ VC: Standalone Document Declaration ] * TODO The standalone document declaration must have the value "no" @@ -10083,7 +10393,7 @@ xmlParseSDDecl(xmlParserCtxtPtr ctxt) { /** * xmlParseXMLDecl: * @ctxt: an XML parser context - * + * * parse an XML declaration header * * [23] XMLDecl ::= '' @@ -10197,7 +10507,7 @@ xmlParseXMLDecl(xmlParserCtxtPtr ctxt) { /** * xmlParseMisc: * @ctxt: an XML parser context - * + * * parse an XML Misc* optional field. * * [27] Misc ::= Comment | PI | S @@ -10205,9 +10515,10 @@ xmlParseXMLDecl(xmlParserCtxtPtr ctxt) { void xmlParseMisc(xmlParserCtxtPtr ctxt) { - while (((RAW == '<') && (NXT(1) == '?')) || - (CMP4(CUR_PTR, '<', '!', '-', '-')) || - IS_BLANK_CH(CUR)) { + while ((ctxt->instate != XML_PARSER_EOF) && + (((RAW == '<') && (NXT(1) == '?')) || + (CMP4(CUR_PTR, '<', '!', '-', '-')) || + IS_BLANK_CH(CUR))) { if ((RAW == '<') && (NXT(1) == '?')) { xmlParsePI(ctxt); } else if (IS_BLANK_CH(CUR)) { @@ -10220,7 +10531,7 @@ xmlParseMisc(xmlParserCtxtPtr ctxt) { /** * xmlParseDocument: * @ctxt: an XML parser context - * + * * parse an XML document (and build a tree if using the standard SAX * interface). * @@ -10257,7 +10568,7 @@ xmlParseDocument(xmlParserCtxtPtr ctxt) { if ((ctxt->encoding == NULL) && ((ctxt->input->end - ctxt->input->cur) >= 4)) { - /* + /* * Get the 4 first bytes and decode the charset * if enc != XML_CHAR_ENCODING_NONE * plug some encoding conversion routines. @@ -10400,7 +10711,7 @@ xmlParseDocument(xmlParserCtxtPtr ctxt) { /** * xmlParseExtParsedEnt: * @ctxt: an XML parser context - * + * * parse a general parsed entity * An external general parsed entity is well-formed if it matches the * production labeled extParsedEnt. @@ -10431,7 +10742,7 @@ xmlParseExtParsedEnt(xmlParserCtxtPtr ctxt) { if ((ctxt->sax) && (ctxt->sax->setDocumentLocator)) ctxt->sax->setDocumentLocator(ctxt->userData, &xmlDefaultSAXLocator); - /* + /* * Get the 4 first bytes and decode the charset * if enc != XML_CHAR_ENCODING_NONE * plug some encoding conversion routines. @@ -10484,7 +10795,7 @@ xmlParseExtParsedEnt(xmlParserCtxtPtr ctxt) { ctxt->depth = 0; xmlParseContent(ctxt); - + if ((RAW == '<') && (NXT(1) == '/')) { xmlFatalErr(ctxt, XML_ERR_NOT_WELL_BALANCED, NULL); } else if (RAW != 0) { @@ -10504,7 +10815,7 @@ xmlParseExtParsedEnt(xmlParserCtxtPtr ctxt) { #ifdef LIBXML_PUSH_ENABLED /************************************************************************ * * - * Progressive parsing interfaces * + * Progressive parsing interfaces * * * ************************************************************************/ @@ -10541,8 +10852,8 @@ xmlParseLookupSequence(xmlParserCtxtPtr ctxt, xmlChar first, buf = in->base; len = in->length; } else { - buf = in->buf->buffer->content; - len = in->buf->buffer->use; + buf = xmlBufContent(in->buf->buffer); + len = xmlBufUse(in->buf->buffer); } /* take into account the sequence length */ if (third) len -= 2; @@ -10565,7 +10876,7 @@ xmlParseLookupSequence(xmlParserCtxtPtr ctxt, xmlChar first, xmlGenericError(xmlGenericErrorContext, "PP: lookup '%c%c' found at %d\n", first, next, base); - else + else xmlGenericError(xmlGenericErrorContext, "PP: lookup '%c%c%c' found at %d\n", first, next, third, base); @@ -10581,7 +10892,7 @@ xmlParseLookupSequence(xmlParserCtxtPtr ctxt, xmlChar first, else if (third == 0) xmlGenericError(xmlGenericErrorContext, "PP: lookup '%c%c' failed\n", first, next); - else + else xmlGenericError(xmlGenericErrorContext, "PP: lookup '%c%c%c' failed\n", first, next, third); #endif @@ -10663,7 +10974,7 @@ xmlCheckCdataPush(const xmlChar *utf, int len) { if ((utf == NULL) || (len <= 0)) return(0); - + for (ix = 0; ix < len;) { /* string is 0-terminated */ c = utf[ix]; if ((c & 0x80) == 0x00) { /* 1-byte code, starts with 10 */ @@ -10795,7 +11106,7 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { if ((ctxt->errNo != XML_ERR_OK) && (ctxt->disableSAX == 1)) return(0); - + /* * Pop-up of finished entities. */ @@ -10812,20 +11123,16 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { * remainng chars to avoid them stalling in the non-converted * buffer. */ - if ((ctxt->input->buf->raw != NULL) && - (ctxt->input->buf->raw->use > 0)) { - int base = ctxt->input->base - - ctxt->input->buf->buffer->content; - int current = ctxt->input->cur - ctxt->input->base; + if (xmlBufIsEmpty(ctxt->input->buf->buffer) == 0) { + size_t base = xmlBufGetInputBase(ctxt->input->buf->buffer, + ctxt->input); + size_t current = ctxt->input->cur - ctxt->input->base; xmlParserInputBufferPush(ctxt->input->buf, 0, ""); - ctxt->input->base = ctxt->input->buf->buffer->content + base; - ctxt->input->cur = ctxt->input->base + current; - ctxt->input->end = - &ctxt->input->buf->buffer->content[ - ctxt->input->buf->buffer->use]; + xmlBufSetInputBaseCur(ctxt->input->buf->buffer, ctxt->input, + base, current); } - avail = ctxt->input->buf->buffer->use - + avail = xmlBufUse(ctxt->input->buf->buffer) - (ctxt->input->cur - ctxt->input->base); } if (avail < 1) @@ -10847,7 +11154,7 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { if (avail < 4) goto done; - /* + /* * Get the 4 first bytes and decode the charset * if enc != XML_CHAR_ENCODING_NONE * plug some encoding conversion routines, @@ -11002,7 +11309,7 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { /* * [ VC: Root Element Type ] * The Name in the document type declaration must match - * the element type of the root element. + * the element type of the root element. */ if (ctxt->validate && ctxt->wellFormed && ctxt->myDoc && ctxt->node && (ctxt->node == ctxt->myDoc->children)) @@ -11037,6 +11344,7 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { } else { ctxt->instate = XML_PARSER_CONTENT; } + ctxt->progressive = 1; break; } if (RAW == '>') { @@ -11056,6 +11364,7 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { #endif /* LIBXML_SAX1_ENABLED */ ctxt->instate = XML_PARSER_CONTENT; + ctxt->progressive = 1; break; } case XML_PARSER_CONTENT: { @@ -11073,9 +11382,13 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { break; } else if ((cur == '<') && (next == '?')) { if ((!terminate) && - (xmlParseLookupSequence(ctxt, '?', '>', 0) < 0)) + (xmlParseLookupSequence(ctxt, '?', '>', 0) < 0)) { + ctxt->progressive = XML_PARSER_PI; goto done; + } xmlParsePI(ctxt); + ctxt->instate = XML_PARSER_CONTENT; + ctxt->progressive = 1; } else if ((cur == '<') && (next != '!')) { ctxt->instate = XML_PARSER_START_TAG; break; @@ -11089,10 +11402,13 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { ctxt->input->cur += 4; term = xmlParseLookupSequence(ctxt, '-', '-', '>'); ctxt->input->cur -= 4; - if ((!terminate) && (term < 0)) + if ((!terminate) && (term < 0)) { + ctxt->progressive = XML_PARSER_COMMENT; goto done; + } xmlParseComment(ctxt); ctxt->instate = XML_PARSER_CONTENT; + ctxt->progressive = 1; } else if ((cur == '<') && (ctxt->input->cur[1] == '!') && (ctxt->input->cur[2] == '[') && (ctxt->input->cur[3] == 'C') && @@ -11187,7 +11503,7 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { break; case XML_PARSER_CDATA_SECTION: { /* - * The Push mode need to have the SAX callback for + * The Push mode need to have the SAX callback for * cdataBlock merge back contiguous callbacks. */ int base; @@ -11197,7 +11513,7 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { if (avail >= XML_PARSER_BIG_BUFFER_SIZE + 2) { int tmp; - tmp = xmlCheckCdataPush(ctxt->input->cur, + tmp = xmlCheckCdataPush(ctxt->input->cur, XML_PARSER_BIG_BUFFER_SIZE); if (tmp < 0) { tmp = -tmp; @@ -11263,7 +11579,7 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { avail = ctxt->input->length - (ctxt->input->cur - ctxt->input->base); else - avail = ctxt->input->buf->buffer->use - + avail = xmlBufUse(ctxt->input->buf->buffer) - (ctxt->input->cur - ctxt->input->base); if (avail < 2) goto done; @@ -11271,26 +11587,33 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { next = ctxt->input->cur[1]; if ((cur == '<') && (next == '?')) { if ((!terminate) && - (xmlParseLookupSequence(ctxt, '?', '>', 0) < 0)) + (xmlParseLookupSequence(ctxt, '?', '>', 0) < 0)) { + ctxt->progressive = XML_PARSER_PI; goto done; + } #ifdef DEBUG_PUSH xmlGenericError(xmlGenericErrorContext, "PP: Parsing PI\n"); #endif xmlParsePI(ctxt); + ctxt->instate = XML_PARSER_MISC; + ctxt->progressive = 1; ctxt->checkIndex = 0; } else if ((cur == '<') && (next == '!') && (ctxt->input->cur[2] == '-') && (ctxt->input->cur[3] == '-')) { if ((!terminate) && - (xmlParseLookupSequence(ctxt, '-', '-', '>') < 0)) + (xmlParseLookupSequence(ctxt, '-', '-', '>') < 0)) { + ctxt->progressive = XML_PARSER_COMMENT; goto done; + } #ifdef DEBUG_PUSH xmlGenericError(xmlGenericErrorContext, "PP: Parsing Comment\n"); #endif xmlParseComment(ctxt); ctxt->instate = XML_PARSER_MISC; + ctxt->progressive = 1; ctxt->checkIndex = 0; } else if ((cur == '<') && (next == '!') && (ctxt->input->cur[2] == 'D') && @@ -11301,13 +11624,17 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { (ctxt->input->cur[7] == 'P') && (ctxt->input->cur[8] == 'E')) { if ((!terminate) && - (xmlParseLookupSequence(ctxt, '>', 0, 0) < 0)) + (xmlParseLookupSequence(ctxt, '>', 0, 0) < 0)) { + ctxt->progressive = XML_PARSER_DTD; goto done; + } #ifdef DEBUG_PUSH xmlGenericError(xmlGenericErrorContext, "PP: Parsing internal subset\n"); #endif ctxt->inSubset = 1; + ctxt->progressive = 1; + ctxt->checkIndex = 0; xmlParseDocTypeDecl(ctxt); if (RAW == '[') { ctxt->instate = XML_PARSER_DTD; @@ -11338,7 +11665,7 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { goto done; } else { ctxt->instate = XML_PARSER_START_TAG; - ctxt->progressive = 1; + ctxt->progressive = XML_PARSER_START_TAG; xmlParseGetLasts(ctxt, &lastlt, &lastgt); #ifdef DEBUG_PUSH xmlGenericError(xmlGenericErrorContext, @@ -11351,38 +11678,46 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { if (ctxt->input->buf == NULL) avail = ctxt->input->length - (ctxt->input->cur - ctxt->input->base); else - avail = ctxt->input->buf->buffer->use - (ctxt->input->cur - ctxt->input->base); - if (avail < 2) + avail = xmlBufUse(ctxt->input->buf->buffer) - + (ctxt->input->cur - ctxt->input->base); + if (avail < 2) goto done; cur = ctxt->input->cur[0]; next = ctxt->input->cur[1]; if ((cur == '<') && (next == '?')) { if ((!terminate) && - (xmlParseLookupSequence(ctxt, '?', '>', 0) < 0)) + (xmlParseLookupSequence(ctxt, '?', '>', 0) < 0)) { + ctxt->progressive = XML_PARSER_PI; goto done; + } #ifdef DEBUG_PUSH xmlGenericError(xmlGenericErrorContext, "PP: Parsing PI\n"); #endif xmlParsePI(ctxt); + ctxt->instate = XML_PARSER_PROLOG; + ctxt->progressive = 1; } else if ((cur == '<') && (next == '!') && (ctxt->input->cur[2] == '-') && (ctxt->input->cur[3] == '-')) { if ((!terminate) && - (xmlParseLookupSequence(ctxt, '-', '-', '>') < 0)) + (xmlParseLookupSequence(ctxt, '-', '-', '>') < 0)) { + ctxt->progressive = XML_PARSER_COMMENT; goto done; + } #ifdef DEBUG_PUSH xmlGenericError(xmlGenericErrorContext, "PP: Parsing Comment\n"); #endif xmlParseComment(ctxt); ctxt->instate = XML_PARSER_PROLOG; + ctxt->progressive = 1; } else if ((cur == '<') && (next == '!') && (avail < 4)) { goto done; } else { ctxt->instate = XML_PARSER_START_TAG; if (ctxt->progressive == 0) - ctxt->progressive = 1; + ctxt->progressive = XML_PARSER_START_TAG; xmlParseGetLasts(ctxt, &lastlt, &lastgt); #ifdef DEBUG_PUSH xmlGenericError(xmlGenericErrorContext, @@ -11395,32 +11730,39 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { if (ctxt->input->buf == NULL) avail = ctxt->input->length - (ctxt->input->cur - ctxt->input->base); else - avail = ctxt->input->buf->buffer->use - (ctxt->input->cur - ctxt->input->base); + avail = xmlBufUse(ctxt->input->buf->buffer) - + (ctxt->input->cur - ctxt->input->base); if (avail < 2) goto done; cur = ctxt->input->cur[0]; next = ctxt->input->cur[1]; if ((cur == '<') && (next == '?')) { if ((!terminate) && - (xmlParseLookupSequence(ctxt, '?', '>', 0) < 0)) + (xmlParseLookupSequence(ctxt, '?', '>', 0) < 0)) { + ctxt->progressive = XML_PARSER_PI; goto done; + } #ifdef DEBUG_PUSH xmlGenericError(xmlGenericErrorContext, "PP: Parsing PI\n"); #endif xmlParsePI(ctxt); ctxt->instate = XML_PARSER_EPILOG; + ctxt->progressive = 1; } else if ((cur == '<') && (next == '!') && (ctxt->input->cur[2] == '-') && (ctxt->input->cur[3] == '-')) { if ((!terminate) && - (xmlParseLookupSequence(ctxt, '-', '-', '>') < 0)) + (xmlParseLookupSequence(ctxt, '-', '-', '>') < 0)) { + ctxt->progressive = XML_PARSER_COMMENT; goto done; + } #ifdef DEBUG_PUSH xmlGenericError(xmlGenericErrorContext, "PP: Parsing Comment\n"); #endif xmlParseComment(ctxt); ctxt->instate = XML_PARSER_EPILOG; + ctxt->progressive = 1; } else if ((cur == '<') && (next == '!') && (avail < 4)) { goto done; @@ -11450,29 +11792,28 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { int base, i; xmlChar *buf; xmlChar quote = 0; + size_t use; base = ctxt->input->cur - ctxt->input->base; if (base < 0) return(0); if (ctxt->checkIndex > base) base = ctxt->checkIndex; - buf = ctxt->input->buf->buffer->content; - for (;(unsigned int) base < ctxt->input->buf->buffer->use; - base++) { + buf = xmlBufContent(ctxt->input->buf->buffer); + use = xmlBufUse(ctxt->input->buf->buffer); + for (;(unsigned int) base < use; base++) { if (quote != 0) { if (buf[base] == quote) quote = 0; - continue; + continue; } if ((quote == 0) && (buf[base] == '<')) { int found = 0; /* special handling of comments */ - if (((unsigned int) base + 4 < - ctxt->input->buf->buffer->use) && + if (((unsigned int) base + 4 < use) && (buf[base + 1] == '!') && (buf[base + 2] == '-') && (buf[base + 3] == '-')) { - for (;(unsigned int) base + 3 < - ctxt->input->buf->buffer->use; base++) { + for (;(unsigned int) base + 3 < use; base++) { if ((buf[base] == '-') && (buf[base + 1] == '-') && (buf[base + 2] == '>')) { @@ -11503,17 +11844,14 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { fprintf(stderr, "%c%c%c%c: ", buf[base], buf[base + 1], buf[base + 2], buf[base + 3]); #endif - if ((unsigned int) base +1 >= - ctxt->input->buf->buffer->use) + if ((unsigned int) base +1 >= use) break; if (buf[base + 1] == ']') { /* conditional crap, skip both ']' ! */ base++; continue; } - for (i = 1; - (unsigned int) base + i < ctxt->input->buf->buffer->use; - i++) { + for (i = 1; (unsigned int) base + i < use; i++) { if (buf[base + i] == '>') { #if 0 fprintf(stderr, "found\n"); @@ -11531,7 +11869,7 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { fprintf(stderr, "end of stream\n"); #endif break; - + } not_end_of_int_subset: continue; /* for */ @@ -11539,6 +11877,10 @@ not_end_of_int_subset: /* * We didn't found the end of the Internal subset */ + if (quote == 0) + ctxt->checkIndex = base; + else + ctxt->checkIndex = 0; #ifdef DEBUG_PUSH if (next == 0) xmlGenericError(xmlGenericErrorContext, @@ -11547,6 +11889,7 @@ not_end_of_int_subset: goto done; found_end_int_subset: + ctxt->checkIndex = 0; xmlParseInternalSubset(ctxt); ctxt->inSubset = 2; if ((ctxt->sax != NULL) && (!ctxt->disableSAX) && @@ -11637,7 +11980,7 @@ found_end_int_subset: break; } } -done: +done: #ifdef DEBUG_PUSH xmlGenericError(xmlGenericErrorContext, "PP: done %d\n", ret); #endif @@ -11656,6 +11999,55 @@ encoding_error: return(0); } +/** + * xmlParseCheckTransition: + * @ctxt: an XML parser context + * @chunk: a char array + * @size: the size in byte of the chunk + * + * Check depending on the current parser state if the chunk given must be + * processed immediately or one need more data to advance on parsing. + * + * Returns -1 in case of error, 0 if the push is not needed and 1 if needed + */ +static int +xmlParseCheckTransition(xmlParserCtxtPtr ctxt, const char *chunk, int size) { + if ((ctxt == NULL) || (chunk == NULL) || (size < 0)) + return(-1); + if (ctxt->instate == XML_PARSER_START_TAG) { + if (memchr(chunk, '>', size) != NULL) + return(1); + return(0); + } + if (ctxt->progressive == XML_PARSER_COMMENT) { + if (memchr(chunk, '>', size) != NULL) + return(1); + return(0); + } + if (ctxt->instate == XML_PARSER_CDATA_SECTION) { + if (memchr(chunk, '>', size) != NULL) + return(1); + return(0); + } + if (ctxt->progressive == XML_PARSER_PI) { + if (memchr(chunk, '>', size) != NULL) + return(1); + return(0); + } + if (ctxt->instate == XML_PARSER_END_TAG) { + if (memchr(chunk, '>', size) != NULL) + return(1); + return(0); + } + if ((ctxt->progressive == XML_PARSER_DTD) || + (ctxt->instate == XML_PARSER_DTD)) { + if (memchr(chunk, ']', size) != NULL) + return(1); + return(0); + } + return(1); +} + /** * xmlParseChunk: * @ctxt: an XML parser context @@ -11672,11 +12064,15 @@ xmlParseChunk(xmlParserCtxtPtr ctxt, const char *chunk, int size, int terminate) { int end_in_lf = 0; int remain = 0; + size_t old_avail = 0; + size_t avail = 0; if (ctxt == NULL) return(XML_ERR_INTERNAL_ERROR); if ((ctxt->errNo != XML_ERR_OK) && (ctxt->disableSAX == 1)) return(ctxt->errNo); + if (ctxt->instate == XML_PARSER_EOF) + return(-1); if (ctxt->instate == XML_PARSER_START) xmlDetectSAX2(ctxt); if ((size > 0) && (chunk != NULL) && (!terminate) && @@ -11689,10 +12085,11 @@ xmldecl_done: if ((size > 0) && (chunk != NULL) && (ctxt->input != NULL) && (ctxt->input->buf != NULL) && (ctxt->instate != XML_PARSER_EOF)) { - int base = ctxt->input->base - ctxt->input->buf->buffer->content; - int cur = ctxt->input->cur - ctxt->input->base; + size_t base = xmlBufGetInputBase(ctxt->input->buf->buffer, ctxt->input); + size_t cur = ctxt->input->cur - ctxt->input->base; int res; + old_avail = xmlBufUse(ctxt->input->buf->buffer); /* * Specific handling if we autodetected an encoding, we should not * push more than the first line ... which depend on the encoding @@ -11734,10 +12131,7 @@ xmldecl_done: ctxt->disableSAX = 1; return (XML_PARSER_EOF); } - ctxt->input->base = ctxt->input->buf->buffer->content + base; - ctxt->input->cur = ctxt->input->base + cur; - ctxt->input->end = - &ctxt->input->buf->buffer->content[ctxt->input->buf->buffer->use]; + xmlBufSetInputBaseCur(ctxt->input->buf->buffer, ctxt->input, base, cur); #ifdef DEBUG_PUSH xmlGenericError(xmlGenericErrorContext, "PP: pushed %d\n", size); #endif @@ -11749,7 +12143,7 @@ xmldecl_done: (in->raw != NULL)) { int nbchars; - nbchars = xmlCharEncInFunc(in->encoder, in->buffer, in->raw); + nbchars = xmlCharEncInput(in); if (nbchars < 0) { /* TODO 2.6.0 */ xmlGenericError(xmlGenericErrorContext, @@ -11759,10 +12153,31 @@ xmldecl_done: } } } - if (remain != 0) + if (remain != 0) { xmlParseTryOrFinish(ctxt, 0); - else - xmlParseTryOrFinish(ctxt, terminate); + } else { + if ((ctxt->input != NULL) && (ctxt->input->buf != NULL)) + avail = xmlBufUse(ctxt->input->buf->buffer); + /* + * Depending on the current state it may not be such + * a good idea to try parsing if there is nothing in the chunk + * which would be worth doing a parser state transition and we + * need to wait for more data + */ + if ((terminate) || (avail > XML_MAX_TEXT_LENGTH) || + (old_avail == 0) || (avail == 0) || + (xmlParseCheckTransition(ctxt, + (const char *)&ctxt->input->base[old_avail], + avail - old_avail))) + xmlParseTryOrFinish(ctxt, terminate); + } + if ((ctxt->input != NULL) && + (((ctxt->input->end - ctxt->input->cur) > XML_MAX_LOOKUP_LIMIT) || + ((ctxt->input->cur - ctxt->input->base) > XML_MAX_LOOKUP_LIMIT)) && + ((ctxt->options & XML_PARSE_HUGE) == 0)) { + xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR, "Huge input lookup"); + ctxt->instate = XML_PARSER_EOF; + } if ((ctxt->errNo != XML_ERR_OK) && (ctxt->disableSAX == 1)) return(ctxt->errNo); @@ -11780,22 +12195,22 @@ xmldecl_done: /* * Check for termination */ - int avail = 0; + int cur_avail = 0; if (ctxt->input != NULL) { if (ctxt->input->buf == NULL) - avail = ctxt->input->length - - (ctxt->input->cur - ctxt->input->base); + cur_avail = ctxt->input->length - + (ctxt->input->cur - ctxt->input->base); else - avail = ctxt->input->buf->buffer->use - - (ctxt->input->cur - ctxt->input->base); + cur_avail = xmlBufUse(ctxt->input->buf->buffer) - + (ctxt->input->cur - ctxt->input->base); } - + if ((ctxt->instate != XML_PARSER_EOF) && (ctxt->instate != XML_PARSER_EPILOG)) { xmlFatalErr(ctxt, XML_ERR_DOCUMENT_END, NULL); - } - if ((ctxt->instate == XML_PARSER_EPILOG) && (avail > 0)) { + } + if ((ctxt->instate == XML_PARSER_EPILOG) && (cur_avail > 0)) { xmlFatalErr(ctxt, XML_ERR_DOCUMENT_END, NULL); } if (ctxt->instate != XML_PARSER_EOF) { @@ -11804,12 +12219,12 @@ xmldecl_done: } ctxt->instate = XML_PARSER_EOF; } - return((xmlParserErrors) ctxt->errNo); + return((xmlParserErrors) ctxt->errNo); } /************************************************************************ * * - * I/O front end functions to the parser * + * I/O front end functions to the parser * * * ************************************************************************/ @@ -11833,7 +12248,7 @@ xmldecl_done: */ xmlParserCtxtPtr -xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax, void *user_data, +xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax, void *user_data, const char *chunk, int size, const char *filename) { xmlParserCtxtPtr ctxt; xmlParserInputPtr inputStream; @@ -11882,7 +12297,7 @@ xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax, void *user_data, memcpy(ctxt->sax, sax, sizeof(xmlSAXHandlerV1)); if (user_data != NULL) ctxt->userData = user_data; - } + } if (filename == NULL) { ctxt->directory = NULL; } else { @@ -11908,11 +12323,7 @@ xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax, void *user_data, } } inputStream->buf = buf; - inputStream->base = inputStream->buf->buffer->content; - inputStream->cur = inputStream->buf->buffer->content; - inputStream->end = - &inputStream->buf->buffer->content[inputStream->buf->buffer->use]; - + xmlBufResetInput(inputStream->buf->buffer, inputStream); inputPush(ctxt, inputStream); /* @@ -11923,15 +12334,12 @@ xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax, void *user_data, if ((size == 0) || (chunk == NULL)) { ctxt->charset = XML_CHAR_ENCODING_NONE; } else if ((ctxt->input != NULL) && (ctxt->input->buf != NULL)) { - int base = ctxt->input->base - ctxt->input->buf->buffer->content; - int cur = ctxt->input->cur - ctxt->input->base; + size_t base = xmlBufGetInputBase(ctxt->input->buf->buffer, ctxt->input); + size_t cur = ctxt->input->cur - ctxt->input->base; - xmlParserInputBufferPush(ctxt->input->buf, size, chunk); + xmlParserInputBufferPush(ctxt->input->buf, size, chunk); - ctxt->input->base = ctxt->input->buf->buffer->content + base; - ctxt->input->cur = ctxt->input->base + cur; - ctxt->input->end = - &ctxt->input->buf->buffer->content[ctxt->input->buf->buffer->use]; + xmlBufSetInputBaseCur(ctxt->input->buf->buffer, ctxt->input, base, cur); #ifdef DEBUG_PUSH xmlGenericError(xmlGenericErrorContext, "PP: pushed %d\n", size); #endif @@ -11951,7 +12359,7 @@ xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax, void *user_data, * * Blocks further parser processing */ -void +void xmlStopParser(xmlParserCtxtPtr ctxt) { if (ctxt == NULL) return; @@ -12032,7 +12440,7 @@ xmlCreateIOParserCtxt(xmlSAXHandlerPtr sax, void *user_data, #ifdef LIBXML_VALID_ENABLED /************************************************************************ * * - * Front ends when parsing a DTD * + * Front ends when parsing a DTD * * * ************************************************************************/ @@ -12043,7 +12451,7 @@ xmlCreateIOParserCtxt(xmlSAXHandlerPtr sax, void *user_data, * @enc: the charset encoding if known * * Load and parse a DTD - * + * * Returns the resulting xmlDtdPtr or NULL in case of error. * @input will be freed by the function in any case. */ @@ -12068,7 +12476,7 @@ xmlIOParseDTD(xmlSAXHandlerPtr sax, xmlParserInputBufferPtr input, /* * Set-up the SAX context */ - if (sax != NULL) { + if (sax != NULL) { if (ctxt->sax != NULL) xmlFree(ctxt->sax); ctxt->sax = sax; @@ -12122,7 +12530,7 @@ xmlIOParseDTD(xmlSAXHandlerPtr sax, xmlParserInputBufferPtr input, if ((enc == XML_CHAR_ENCODING_NONE) && ((ctxt->input->end - ctxt->input->cur) >= 4)) { - /* + /* * Get the 4 first bytes and decode the charset * if enc != XML_CHAR_ENCODING_NONE * plug some encoding conversion routines. @@ -12161,7 +12569,7 @@ xmlIOParseDTD(xmlSAXHandlerPtr sax, xmlParserInputBufferPtr input, } if (sax != NULL) ctxt->sax = NULL; xmlFreeParserCtxt(ctxt); - + return(ret); } @@ -12172,7 +12580,7 @@ xmlIOParseDTD(xmlSAXHandlerPtr sax, xmlParserInputBufferPtr input, * @SystemID: a NAME* containing the URL to the DTD * * Load and parse an external subset. - * + * * Returns the resulting xmlDtdPtr or NULL in case of error. */ @@ -12195,13 +12603,13 @@ xmlSAXParseDTD(xmlSAXHandlerPtr sax, const xmlChar *ExternalID, /* * Set-up the SAX context */ - if (sax != NULL) { + if (sax != NULL) { if (ctxt->sax != NULL) xmlFree(ctxt->sax); ctxt->sax = sax; ctxt->userData = ctxt; } - + /* * Canonicalise the system ID */ @@ -12312,7 +12720,7 @@ xmlParseDTD(const xmlChar *ExternalID, const xmlChar *SystemID) { /************************************************************************ * * - * Front ends when parsing an Entity * + * Front ends when parsing an Entity * * * ************************************************************************/ @@ -12428,7 +12836,7 @@ xmlParseCtxtExternalEntity(xmlParserCtxtPtr ctx, const xmlChar *URL, */ if ((xmlStrEqual(ctx->version, BAD_CAST "1.0")) && (!xmlStrEqual(ctxt->input->version, BAD_CAST "1.0"))) { - xmlFatalErrMsg(ctxt, XML_ERR_VERSION_MISMATCH, + xmlFatalErrMsg(ctxt, XML_ERR_VERSION_MISMATCH, "Version mismatch between document and entity\n"); } } @@ -12711,7 +13119,7 @@ xmlParseExternalEntityPrivate(xmlDocPtr doc, xmlParserCtxtPtr oldctxt, if (ctxt->lastError.code != XML_ERR_OK) xmlCopyError(&ctxt->lastError, &oldctxt->lastError); - if (sax != NULL) + if (sax != NULL) ctxt->sax = oldsax; oldctxt->node_seq.maximum = ctxt->node_seq.maximum; oldctxt->node_seq.length = ctxt->node_seq.length; @@ -13530,7 +13938,7 @@ xmlCreateEntityParserCtxt(const xmlChar *URL, const xmlChar *ID, * @filename: the filename or URL * @options: a combination of xmlParserOption * - * Create a parser context for a file or URL content. + * Create a parser context for a file or URL content. * Automatic support for ZLIB/Compress compressed document is provided * by default if found at compile-time and for file accesses * @@ -13572,7 +13980,7 @@ xmlCreateURLParserCtxt(const char *filename, int options) * xmlCreateFileParserCtxt: * @filename: the filename * - * Create a parser context for a file content. + * Create a parser context for a file content. * Automatic support for ZLIB/Compress compressed document is provided * by default if found at compile-time. * @@ -13650,7 +14058,7 @@ xmlSAXParseFileWithData(xmlSAXHandlerPtr sax, const char *filename, if (sax != NULL) ctxt->sax = NULL; xmlFreeParserCtxt(ctxt); - + return(ret); } @@ -13750,7 +14158,7 @@ xmlSetupParserForBuffer(xmlParserCtxtPtr ctxt, const xmlChar* buffer, xmlClearParserCtxt(ctxt); return; } - + xmlClearParserCtxt(ctxt); if (filename != NULL) input->filename = (char *) xmlCanonicPath((const xmlChar *)filename); @@ -13768,7 +14176,7 @@ xmlSetupParserForBuffer(xmlParserCtxtPtr ctxt, const xmlChar* buffer, * * parse an XML file and call the given SAX handler routines. * Automatic support for ZLIB/Compress compressed document is provided - * + * * Returns 0 in case of success or a error number otherwise */ int @@ -13776,7 +14184,7 @@ xmlSAXUserParseFile(xmlSAXHandlerPtr sax, void *user_data, const char *filename) { int ret = 0; xmlParserCtxtPtr ctxt; - + ctxt = xmlCreateFileParserCtxt(filename); if (ctxt == NULL) return -1; if (ctxt->sax != (xmlSAXHandlerPtr) &xmlDefaultSAXHandler) @@ -13786,9 +14194,9 @@ xmlSAXUserParseFile(xmlSAXHandlerPtr sax, void *user_data, if (user_data != NULL) ctxt->userData = user_data; - + xmlParseDocument(ctxt); - + if (ctxt->wellFormed) ret = 0; else { @@ -13804,14 +14212,14 @@ xmlSAXUserParseFile(xmlSAXHandlerPtr sax, void *user_data, ctxt->myDoc = NULL; } xmlFreeParserCtxt(ctxt); - + return ret; } #endif /* LIBXML_SAX1_ENABLED */ /************************************************************************ * * - * Front ends when parsing from memory * + * Front ends when parsing from memory * * * ************************************************************************/ @@ -13855,9 +14263,7 @@ xmlCreateMemoryParserCtxt(const char *buffer, int size) { input->filename = NULL; input->buf = buf; - input->base = input->buf->buffer->content; - input->cur = input->buf->buffer->content; - input->end = &input->buf->buffer->content[input->buf->buffer->use]; + xmlBufResetInput(input->buf->buffer, input); inputPush(ctxt, input); return(ctxt); @@ -13913,7 +14319,7 @@ xmlSAXParseMemoryWithData(xmlSAXHandlerPtr sax, const char *buffer, xmlFreeDoc(ctxt->myDoc); ctxt->myDoc = NULL; } - if (sax != NULL) + if (sax != NULL) ctxt->sax = NULL; xmlFreeParserCtxt(ctxt); @@ -13931,7 +14337,7 @@ xmlSAXParseMemoryWithData(xmlSAXHandlerPtr sax, const char *buffer, * parse an XML in-memory block and use the given SAX function block * to handle the parsing callback. If sax is NULL, fallback to the default * DOM tree building routines. - * + * * Returns the resulting document tree */ xmlDocPtr @@ -13946,7 +14352,7 @@ xmlSAXParseMemory(xmlSAXHandlerPtr sax, const char *buffer, * @size: the size of the array * * parse an XML in-memory block and build a tree. - * + * * Returns the resulting document tree */ @@ -14000,7 +14406,7 @@ int xmlSAXUserParseMemory(xmlSAXHandlerPtr sax, void *user_data, ctxt->userData = user_data; xmlParseDocument(ctxt); - + if (ctxt->wellFormed) ret = 0; else { @@ -14016,7 +14422,7 @@ int xmlSAXUserParseMemory(xmlSAXHandlerPtr sax, void *user_data, ctxt->myDoc = NULL; } xmlFreeParserCtxt(ctxt); - + return ret; } #endif /* LIBXML_SAX1_ENABLED */ @@ -14050,7 +14456,7 @@ xmlCreateDocParserCtxt(const xmlChar *cur) { * parse an XML in-memory document and build a tree. * It use the given SAX function block to handle the parsing callback. * If sax is NULL, fallback to the default DOM tree building routines. - * + * * Returns the resulting document tree */ @@ -14065,7 +14471,7 @@ xmlSAXParseDoc(xmlSAXHandlerPtr sax, const xmlChar *cur, int recovery) { ctxt = xmlCreateDocParserCtxt(cur); if (ctxt == NULL) return(NULL); - if (sax != NULL) { + if (sax != NULL) { oldsax = ctxt->sax; ctxt->sax = sax; ctxt->userData = NULL; @@ -14082,7 +14488,7 @@ xmlSAXParseDoc(xmlSAXHandlerPtr sax, const xmlChar *cur, int recovery) { if (sax != NULL) ctxt->sax = oldsax; xmlFreeParserCtxt(ctxt); - + return(ret); } @@ -14091,7 +14497,7 @@ xmlSAXParseDoc(xmlSAXHandlerPtr sax, const xmlChar *cur, int recovery) { * @cur: a pointer to an array of xmlChar * * parse an XML in-memory document and build a tree. - * + * * Returns the resulting document tree */ @@ -14104,8 +14510,8 @@ xmlParseDoc(const xmlChar *cur) { #ifdef LIBXML_LEGACY_ENABLED /************************************************************************ * * - * Specific function to keep track of entities references * - * and used by the XSLT debugger * + * Specific function to keep track of entities references * + * and used by the XSLT debugger * * * ************************************************************************/ @@ -14115,7 +14521,7 @@ static xmlEntityReferenceFunc xmlEntityRefFunc = NULL; * xmlAddEntityReference: * @ent : A valid entity * @firstNode : A valid first node for children of entity - * @lastNode : A valid last node of children entity + * @lastNode : A valid last node of children entity * * Notify of a reference to an entity of type XML_EXTERNAL_GENERAL_PARSED_ENTITY */ @@ -14144,7 +14550,7 @@ xmlSetEntityReferenceFunc(xmlEntityReferenceFunc func) /************************************************************************ * * - * Miscellaneous * + * Miscellaneous * * * ************************************************************************/ @@ -14260,7 +14666,7 @@ xmlCleanupParser(void) { * current scope */ #define DICT_FREE(str) \ - if ((str) && ((!dict) || \ + if ((str) && ((!dict) || \ (xmlDictOwns(dict, (const xmlChar *)(str)) == 0))) \ xmlFree((char *)(str)); @@ -14275,7 +14681,7 @@ xmlCtxtReset(xmlParserCtxtPtr ctxt) { xmlParserInputPtr input; xmlDictPtr dict; - + if (ctxt == NULL) return; @@ -14427,25 +14833,18 @@ xmlCtxtResetPush(xmlParserCtxtPtr ctxt, const char *chunk, inputStream->filename = (char *) xmlCanonicPath((const xmlChar *) filename); inputStream->buf = buf; - inputStream->base = inputStream->buf->buffer->content; - inputStream->cur = inputStream->buf->buffer->content; - inputStream->end = - &inputStream->buf->buffer->content[inputStream->buf->buffer->use]; + xmlBufResetInput(buf->buffer, inputStream); inputPush(ctxt, inputStream); if ((size > 0) && (chunk != NULL) && (ctxt->input != NULL) && (ctxt->input->buf != NULL)) { - int base = ctxt->input->base - ctxt->input->buf->buffer->content; - int cur = ctxt->input->cur - ctxt->input->base; + size_t base = xmlBufGetInputBase(ctxt->input->buf->buffer, ctxt->input); + size_t cur = ctxt->input->cur - ctxt->input->base; xmlParserInputBufferPush(ctxt->input->buf, size, chunk); - ctxt->input->base = ctxt->input->buf->buffer->content + base; - ctxt->input->cur = ctxt->input->base + cur; - ctxt->input->end = - &ctxt->input->buf->buffer->content[ctxt->input->buf->buffer-> - use]; + xmlBufSetInputBaseCur(ctxt->input->buf->buffer, ctxt->input, base, cur); #ifdef DEBUG_PUSH xmlGenericError(xmlGenericErrorContext, "PP: pushed %d\n", size); #endif @@ -14596,6 +14995,8 @@ xmlCtxtUseOptionsInternal(xmlParserCtxtPtr ctxt, int options, const char *encodi if (options & XML_PARSE_HUGE) { ctxt->options |= XML_PARSE_HUGE; options -= XML_PARSE_HUGE; + if (ctxt->dict != NULL) + xmlDictSetLimit(ctxt->dict, 0); } if (options & XML_PARSE_OLDSAX) { ctxt->options |= XML_PARSE_OLDSAX; @@ -14605,6 +15006,10 @@ xmlCtxtUseOptionsInternal(xmlParserCtxtPtr ctxt, int options, const char *encodi ctxt->options |= XML_PARSE_IGNORE_ENC; options -= XML_PARSE_IGNORE_ENC; } + if (options & XML_PARSE_BIG_LINES) { + ctxt->options |= XML_PARSE_BIG_LINES; + options -= XML_PARSE_BIG_LINES; + } ctxt->linenumbers = 1; return (options); } @@ -14679,7 +15084,7 @@ xmlDoRead(xmlParserCtxtPtr ctxt, const char *URL, const char *encoding, * @options: a combination of xmlParserOption * * parse an XML in-memory document and build a tree. - * + * * Returns the resulting document tree */ xmlDocPtr @@ -14703,7 +15108,7 @@ xmlReadDoc(const xmlChar * cur, const char *URL, const char *encoding, int optio * @options: a combination of xmlParserOption * * parse an XML file from the filesystem or the network. - * + * * Returns the resulting document tree */ xmlDocPtr @@ -14726,7 +15131,7 @@ xmlReadFile(const char *filename, const char *encoding, int options) * @options: a combination of xmlParserOption * * parse an XML in-memory document and build a tree. - * + * * Returns the resulting document tree */ xmlDocPtr @@ -14750,7 +15155,7 @@ xmlReadMemory(const char *buffer, int size, const char *URL, const char *encodin * parse an XML from a file descriptor and build a tree. * NOTE that the file descriptor will not be closed when the * reader is closed or reset. - * + * * Returns the resulting document tree */ xmlDocPtr @@ -14871,7 +15276,7 @@ xmlCtxtReadDoc(xmlParserCtxtPtr ctxt, const xmlChar * cur, * * parse an XML file from the filesystem or the network. * This reuses the existing @ctxt parser context - * + * * Returns the resulting document tree */ xmlDocPtr @@ -14906,7 +15311,7 @@ xmlCtxtReadFile(xmlParserCtxtPtr ctxt, const char *filename, * * parse an XML in-memory document and build a tree. * This reuses the existing @ctxt parser context - * + * * Returns the resulting document tree */ xmlDocPtr @@ -14950,7 +15355,7 @@ xmlCtxtReadMemory(xmlParserCtxtPtr ctxt, const char *buffer, int size, * This reuses the existing @ctxt parser context * NOTE that the file descriptor will not be closed when the * reader is closed or reset. - * + * * Returns the resulting document tree */ xmlDocPtr diff --git a/parserInternals.c b/parserInternals.c index 746b7fd..35a90ab 100644 --- a/parserInternals.c +++ b/parserInternals.c @@ -55,6 +55,9 @@ #include #include +#include "buf.h" +#include "enc.h" + /* * Various global defaults for parsing */ @@ -73,15 +76,15 @@ xmlCheckVersion(int version) { xmlInitParser(); if ((myversion / 10000) != (version / 10000)) { - xmlGenericError(xmlGenericErrorContext, + xmlGenericError(xmlGenericErrorContext, "Fatal: program compiled against libxml %d using libxml %d\n", (version / 10000), (myversion / 10000)); - fprintf(stderr, + fprintf(stderr, "Fatal: program compiled against libxml %d using libxml %d\n", (version / 10000), (myversion / 10000)); } if ((myversion / 100) < (version / 100)) { - xmlGenericError(xmlGenericErrorContext, + xmlGenericError(xmlGenericErrorContext, "Warning: program compiled against libxml %d using older %d\n", (version / 100), (myversion / 100)); } @@ -90,7 +93,7 @@ xmlCheckVersion(int version) { /************************************************************************ * * - * Some factorized error routines * + * Some factorized error routines * * * ************************************************************************/ @@ -225,7 +228,7 @@ xmlIsLetter(int c) { /************************************************************************ * * - * Input handling functions for progressive parsing * + * Input handling functions for progressive parsing * * * ************************************************************************/ @@ -242,7 +245,7 @@ xmlIsLetter(int c) { static void check_buffer(xmlParserInputPtr in) { - if (in->base != in->buf->buffer->content) { + if (in->base != xmlBufContent(in->buf->buffer)) { xmlGenericError(xmlGenericErrorContext, "xmlParserInput: base mismatch problem\n"); } @@ -250,17 +253,17 @@ void check_buffer(xmlParserInputPtr in) { xmlGenericError(xmlGenericErrorContext, "xmlParserInput: cur < base problem\n"); } - if (in->cur > in->base + in->buf->buffer->use) { + if (in->cur > in->base + xmlBufUse(in->buf->buffer)) { xmlGenericError(xmlGenericErrorContext, "xmlParserInput: cur > base + use problem\n"); } - xmlGenericError(xmlGenericErrorContext,"buffer %x : content %x, cur %d, use %d, size %d\n", - (int) in, (int) in->buf->buffer->content, in->cur - in->base, - in->buf->buffer->use, in->buf->buffer->size); + xmlGenericError(xmlGenericErrorContext,"buffer %x : content %x, cur %d, use %d\n", + (int) in, (int) xmlBufContent(in->buf->buffer), in->cur - in->base, + xmlBufUse(in->buf->buffer)); } #else -#define CHECK_BUFFER(in) +#define CHECK_BUFFER(in) #endif @@ -269,50 +272,13 @@ void check_buffer(xmlParserInputPtr in) { * @in: an XML parser input * @len: an indicative size for the lookahead * - * This function refresh the input for the parser. It doesn't try to - * preserve pointers to the input buffer, and discard already read data + * This function was internal and is deprecated. * - * Returns the number of xmlChars read, or -1 in case of error, 0 indicate the - * end of this entity + * Returns -1 as this is an error to use it. */ int -xmlParserInputRead(xmlParserInputPtr in, int len) { - int ret; - int used; - int indx; - - if (in == NULL) return(-1); -#ifdef DEBUG_INPUT - xmlGenericError(xmlGenericErrorContext, "Read\n"); -#endif - if (in->buf == NULL) return(-1); - if (in->base == NULL) return(-1); - if (in->cur == NULL) return(-1); - if (in->buf->buffer == NULL) return(-1); - if (in->buf->readcallback == NULL) return(-1); - - CHECK_BUFFER(in); - - used = in->cur - in->buf->buffer->content; - ret = xmlBufferShrink(in->buf->buffer, used); - if (ret > 0) { - in->cur -= ret; - in->consumed += ret; - } - ret = xmlParserInputBufferRead(in->buf, len); - if (in->base != in->buf->buffer->content) { - /* - * the buffer has been reallocated - */ - indx = in->cur - in->base; - in->base = in->buf->buffer->content; - in->cur = &in->buf->buffer->content[indx]; - } - in->end = &in->buf->buffer->content[in->buf->buffer->use]; - - CHECK_BUFFER(in); - - return(ret); +xmlParserInputRead(xmlParserInputPtr in ATTRIBUTE_UNUSED, int len ATTRIBUTE_UNUSED) { + return(-1); } /** @@ -323,15 +289,16 @@ xmlParserInputRead(xmlParserInputPtr in, int len) { * This function increase the input for the parser. It tries to * preserve pointers to the input buffer, and keep already read data * - * Returns the number of xmlChars read, or -1 in case of error, 0 indicate the + * Returns the amount of char read, or -1 in case of error, 0 indicate the * end of this entity */ int xmlParserInputGrow(xmlParserInputPtr in, int len) { - int ret; - int indx; + size_t ret; + size_t indx; + const xmlChar *content; - if (in == NULL) return(-1); + if ((in == NULL) || (len < 0)) return(-1); #ifdef DEBUG_INPUT xmlGenericError(xmlGenericErrorContext, "Grow\n"); #endif @@ -343,15 +310,15 @@ xmlParserInputGrow(xmlParserInputPtr in, int len) { CHECK_BUFFER(in); indx = in->cur - in->base; - if (in->buf->buffer->use > (unsigned int) indx + INPUT_CHUNK) { + if (xmlBufUse(in->buf->buffer) > (unsigned int) indx + INPUT_CHUNK) { CHECK_BUFFER(in); return(0); } - if (in->buf->readcallback != NULL) + if (in->buf->readcallback != NULL) { ret = xmlParserInputBufferGrow(in->buf, len); - else + } else return(0); /* @@ -360,15 +327,17 @@ xmlParserInputGrow(xmlParserInputPtr in, int len) { * pointer arithmetic. Insure will raise it as a bug but in * that specific case, that's not ! */ - if (in->base != in->buf->buffer->content) { + + content = xmlBufContent(in->buf->buffer); + if (in->base != content) { /* * the buffer has been reallocated */ indx = in->cur - in->base; - in->base = in->buf->buffer->content; - in->cur = &in->buf->buffer->content[indx]; + in->base = content; + in->cur = &content[indx]; } - in->end = &in->buf->buffer->content[in->buf->buffer->use]; + in->end = xmlBufEnd(in->buf->buffer); CHECK_BUFFER(in); @@ -383,9 +352,10 @@ xmlParserInputGrow(xmlParserInputPtr in, int len) { */ void xmlParserInputShrink(xmlParserInputPtr in) { - int used; - int ret; - int indx; + size_t used; + size_t ret; + size_t indx; + const xmlChar *content; #ifdef DEBUG_INPUT xmlGenericError(xmlGenericErrorContext, "Shrink\n"); @@ -398,42 +368,43 @@ xmlParserInputShrink(xmlParserInputPtr in) { CHECK_BUFFER(in); - used = in->cur - in->buf->buffer->content; + used = in->cur - xmlBufContent(in->buf->buffer); /* * Do not shrink on large buffers whose only a tiny fraction * was consumed */ if (used > INPUT_CHUNK) { - ret = xmlBufferShrink(in->buf->buffer, used - LINE_LEN); + ret = xmlBufShrink(in->buf->buffer, used - LINE_LEN); if (ret > 0) { in->cur -= ret; in->consumed += ret; } - in->end = &in->buf->buffer->content[in->buf->buffer->use]; + in->end = xmlBufEnd(in->buf->buffer); } CHECK_BUFFER(in); - if (in->buf->buffer->use > INPUT_CHUNK) { + if (xmlBufUse(in->buf->buffer) > INPUT_CHUNK) { return; } xmlParserInputBufferRead(in->buf, 2 * INPUT_CHUNK); - if (in->base != in->buf->buffer->content) { + content = xmlBufContent(in->buf->buffer); + if (in->base != content) { /* * the buffer has been reallocated */ indx = in->cur - in->base; - in->base = in->buf->buffer->content; - in->cur = &in->buf->buffer->content[indx]; + in->base = content; + in->cur = &content[indx]; } - in->end = &in->buf->buffer->content[in->buf->buffer->use]; + in->end = xmlBufEnd(in->buf->buffer); CHECK_BUFFER(in); } /************************************************************************ * * - * UTF8 character input and related functions * + * UTF8 character input and related functions * * * ************************************************************************/ @@ -484,7 +455,7 @@ xmlNextChar(xmlParserCtxtPtr ctxt) * UCS-4 range (hex.) UTF-8 octet sequence (binary) * 0000 0000-0000 007F 0xxxxxxx * 0000 0080-0000 07FF 110xxxxx 10xxxxxx - * 0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx + * 0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx * * Check for the 0x110000 limit too */ @@ -634,7 +605,7 @@ xmlCurrentChar(xmlParserCtxtPtr ctxt, int *len) { * UCS-4 range (hex.) UTF-8 octet sequence (binary) * 0000 0000-0000 007F 0xxxxxxx * 0000 0080-0000 07FF 110xxxxx 10xxxxxx - * 0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx + * 0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx * * Check for the 0x110000 limit too */ @@ -695,7 +666,7 @@ xmlCurrentChar(xmlParserCtxtPtr ctxt, int *len) { if (!IS_CHAR(val)) { xmlErrEncodingInt(ctxt, XML_ERR_INVALID_CHAR, "Char 0x%X out of allowed range\n", val); - } + } return(val); } else { /* 1-byte code */ @@ -759,7 +730,7 @@ encoding_error: "Input is not proper UTF-8, indicate encoding !\n%s", BAD_CAST buffer, NULL); } - ctxt->charset = XML_CHAR_ENCODING_8859_1; + ctxt->charset = XML_CHAR_ENCODING_8859_1; *len = 1; return((int) *ctxt->input->cur); } @@ -788,7 +759,7 @@ xmlStringCurrentChar(xmlParserCtxtPtr ctxt, const xmlChar * cur, int *len) * UCS-4 range (hex.) UTF-8 octet sequence (binary) * 0000 0000-0000 007F 0xxxxxxx * 0000 0080-0000 07FF 110xxxxx 10xxxxxx - * 0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx + * 0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx * * Check for the 0x110000 limit too */ @@ -881,7 +852,7 @@ encoding_error: * @out: pointer to an array of xmlChar * @val: the char value * - * append the char value in the array + * append the char value in the array * * Returns the number of xmlChar written */ @@ -895,7 +866,7 @@ xmlCopyCharMultiByte(xmlChar *out, int val) { * UCS-4 range (hex.) UTF-8 octet sequence (binary) * 0000 0000-0000 007F 0xxxxxxx * 0000 0080-0000 07FF 110xxxxx 10xxxxxx - * 0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx + * 0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx */ if (val >= 0x80) { xmlChar *savedout = out; @@ -923,7 +894,7 @@ xmlCopyCharMultiByte(xmlChar *out, int val) { * @out: pointer to an array of xmlChar * @val: the char value * - * append the char value in the array + * append the char value in the array * * Returns the number of xmlChar written */ @@ -945,11 +916,6 @@ xmlCopyChar(int len ATTRIBUTE_UNUSED, xmlChar *out, int val) { * * ************************************************************************/ -/* defined in encoding.c, not public */ -int -xmlCharEncFirstLineInt(xmlCharEncodingHandler *handler, xmlBufferPtr out, - xmlBufferPtr in, int len); - static int xmlSwitchToEncodingInt(xmlParserCtxtPtr ctxt, xmlCharEncodingHandlerPtr handler, int len); @@ -1189,12 +1155,12 @@ xmlSwitchInputEncodingInt(xmlParserCtxtPtr ctxt, xmlParserInputPtr input, /* * Is there already some content down the pipe to convert ? */ - if ((input->buf->buffer != NULL) && (input->buf->buffer->use > 0)) { + if (xmlBufIsEmpty(input->buf->buffer) == 0) { int processed; unsigned int use; /* - * Specific handling of the Byte Order Mark for + * Specific handling of the Byte Order Mark for * UTF-16 */ if ((handler->name != NULL) && @@ -1225,19 +1191,17 @@ xmlSwitchInputEncodingInt(xmlParserCtxtPtr ctxt, xmlParserInputPtr input, * Move it as the raw buffer and create a new input buffer */ processed = input->cur - input->base; - xmlBufferShrink(input->buf->buffer, processed); + xmlBufShrink(input->buf->buffer, processed); input->buf->raw = input->buf->buffer; - input->buf->buffer = xmlBufferCreate(); + input->buf->buffer = xmlBufCreate(); input->buf->rawconsumed = processed; - use = input->buf->raw->use; + use = xmlBufUse(input->buf->raw); if (ctxt->html) { /* * convert as much as possible of the buffer */ - nbchars = xmlCharEncInFunc(input->buf->encoder, - input->buf->buffer, - input->buf->raw); + nbchars = xmlCharEncInput(input->buf); } else { /* * convert just enough to get @@ -1245,10 +1209,7 @@ xmlSwitchInputEncodingInt(xmlParserCtxtPtr ctxt, xmlParserInputPtr input, * parsed with the autodetected encoding * into the parser reading buffer. */ - nbchars = xmlCharEncFirstLineInt(input->buf->encoder, - input->buf->buffer, - input->buf->raw, - len); + nbchars = xmlCharEncFirstLineInput(input->buf, len); } if (nbchars < 0) { xmlErrInternal(ctxt, @@ -1256,10 +1217,8 @@ xmlSwitchInputEncodingInt(xmlParserCtxtPtr ctxt, xmlParserInputPtr input, NULL); return (-1); } - input->buf->rawconsumed += use - input->buf->raw->use; - input->base = input->cur = input->buf->buffer->content; - input->end = &input->base[input->buf->buffer->use]; - + input->buf->rawconsumed += use - xmlBufUse(input->buf->raw); + xmlBufResetInput(input->buf->buffer, input); } return (0); } else if (input->length == 0) { @@ -1336,7 +1295,7 @@ xmlSwitchToEncodingInt(xmlParserCtxtPtr ctxt, * Returns 0 in case of success, -1 otherwise */ int -xmlSwitchToEncoding(xmlParserCtxtPtr ctxt, xmlCharEncodingHandlerPtr handler) +xmlSwitchToEncoding(xmlParserCtxtPtr ctxt, xmlCharEncodingHandlerPtr handler) { return (xmlSwitchToEncodingInt(ctxt, handler, -1)); } @@ -1363,7 +1322,7 @@ xmlFreeInputStream(xmlParserInputPtr input) { if (input->version != NULL) xmlFree((char *) input->version); if ((input->free != NULL) && (input->base != NULL)) input->free((xmlChar *) input->base); - if (input->buf != NULL) + if (input->buf != NULL) xmlFreeParserInputBuffer(input->buf); xmlFree(input); } @@ -1426,9 +1385,8 @@ xmlNewIOInputStream(xmlParserCtxtPtr ctxt, xmlParserInputBufferPtr input, } inputStream->filename = NULL; inputStream->buf = input; - inputStream->base = inputStream->buf->buffer->content; - inputStream->cur = inputStream->buf->buffer->content; - inputStream->end = &inputStream->base[inputStream->buf->buffer->use]; + xmlBufResetInput(inputStream->buf->buffer, inputStream); + if (enc != XML_CHAR_ENCODING_NONE) { xmlSwitchEncoding(ctxt, enc); } @@ -1570,7 +1528,7 @@ xmlNewInputFromFile(xmlParserCtxtPtr ctxt, const char *filename) { inputStream = xmlCheckHTTPInput(ctxt, inputStream); if (inputStream == NULL) return(NULL); - + if (inputStream->filename == NULL) URI = xmlStrdup((xmlChar *) filename); else @@ -1581,9 +1539,7 @@ xmlNewInputFromFile(xmlParserCtxtPtr ctxt, const char *filename) { if (URI != NULL) xmlFree((char *) URI); inputStream->directory = directory; - inputStream->base = inputStream->buf->buffer->content; - inputStream->cur = inputStream->buf->buffer->content; - inputStream->end = &inputStream->base[inputStream->buf->buffer->use]; + xmlBufResetInput(inputStream->buf->buffer, inputStream); if ((ctxt->directory == NULL) && (directory != NULL)) ctxt->directory = (char *) xmlStrdup((const xmlChar *) directory); return(inputStream); @@ -1622,6 +1578,8 @@ xmlInitParserCtxt(xmlParserCtxtPtr ctxt) xmlErrMemory(NULL, "cannot initialize parser context\n"); return(-1); } + xmlDictSetLimit(ctxt->dict, XML_MAX_DICTIONARY_LIMIT); + if (ctxt->sax == NULL) ctxt->sax = (xmlSAXHandler *) xmlMalloc(sizeof(xmlSAXHandler)); if (ctxt->sax == NULL) { @@ -1807,7 +1765,7 @@ xmlFreeParserCtxt(xmlParserCtxtPtr ctxt) if (ctxt->nsTab != NULL) xmlFree((char *) ctxt->nsTab); if (ctxt->pushTab != NULL) xmlFree(ctxt->pushTab); if (ctxt->attallocs != NULL) xmlFree(ctxt->attallocs); - if (ctxt->attsDefault != NULL) + if (ctxt->attsDefault != NULL) xmlHashFree(ctxt->attsDefault, (xmlHashDeallocator) xmlFree); if (ctxt->attsSpecial != NULL) xmlHashFree(ctxt->attsSpecial, NULL); @@ -1907,7 +1865,7 @@ xmlClearParserCtxt(xmlParserCtxtPtr ctxt) * @node: an XML node within the tree * * Find the parser node info struct for a given node - * + * * Returns an xmlParserNodeInfo block pointer or NULL */ const xmlParserNodeInfo * @@ -1965,7 +1923,7 @@ xmlClearNodeInfoSeq(xmlParserNodeInfoSeqPtr seq) * @seq: a node info sequence pointer * @node: an XML node pointer * - * + * * xmlParserFindNodeInfoIndex : Find the index that the info record for * the given node is or should be at in a sorted sequence * @@ -2022,7 +1980,7 @@ xmlParserAddNodeInfo(xmlParserCtxtPtr ctxt, pos = xmlParserFindNodeInfoIndex(&ctxt->node_seq, (xmlNodePtr) info->node); - if ((pos < ctxt->node_seq.length) && + if ((pos < ctxt->node_seq.length) && (ctxt->node_seq.buffer != NULL) && (ctxt->node_seq.buffer[pos].node == info->node)) { ctxt->node_seq.buffer[pos] = *info; @@ -2075,7 +2033,7 @@ xmlParserAddNodeInfo(xmlParserCtxtPtr ctxt, ************************************************************************/ /** * xmlPedanticParserDefault: - * @val: int 0 or 1 + * @val: int 0 or 1 * * Set and return the previous value for enabling pedantic warnings. * @@ -2092,7 +2050,7 @@ xmlPedanticParserDefault(int val) { /** * xmlLineNumbersDefault: - * @val: int 0 or 1 + * @val: int 0 or 1 * * Set and return the previous value for enabling line numbers in elements * contents. This may break on old application and is turned off by default. @@ -2110,7 +2068,7 @@ xmlLineNumbersDefault(int val) { /** * xmlSubstituteEntitiesDefault: - * @val: int 0 or 1 + * @val: int 0 or 1 * * Set and return the previous value for default entity support. * Initially the parser always keep entity references instead of substituting @@ -2132,7 +2090,7 @@ xmlSubstituteEntitiesDefault(int val) { /** * xmlKeepBlanksDefault: - * @val: int 0 or 1 + * @val: int 0 or 1 * * Set and return the previous value for default blanks text nodes support. * The 1.x version of the parser used an heuristic to try to detect @@ -2143,7 +2101,7 @@ xmlSubstituteEntitiesDefault(int val) { * ignorableWhitespace() are only generated when running the parser in * validating mode and when the current element doesn't allow CDATA or * mixed content. - * This function is provided as a way to force the standard behavior + * This function is provided as a way to force the standard behavior * on 1.X libs and to switch back to the old mode for compatibility when * running 1.X client code on 2.X . Upgrade of 1.X code should be done * by using xmlIsBlankNode() commodity function to detect the "empty" diff --git a/pattern.c b/pattern.c index 1570001..33dee3a 100644 --- a/pattern.c +++ b/pattern.c @@ -3,7 +3,7 @@ * * Reference: * http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/ - * to some extent + * to some extent * http://www.w3.org/TR/1999/REC-xml-19991116 * * See Copyright for the status of this software. @@ -56,7 +56,7 @@ * NOTE: Those private flags (XML_STREAM_xxx) are used * in _xmlStreamCtxt->flag. They extend the public * xmlPatternFlags, so be carefull not to interfere with the -* reserved values for xmlPatternFlags. +* reserved values for xmlPatternFlags. */ #define XML_STREAM_FINAL_IS_ANY_NODE 1<<14 #define XML_STREAM_FROM_ROOT 1<<15 @@ -162,7 +162,7 @@ struct _xmlStepOp { #define PAT_FROM_CUR (1<<9) struct _xmlPattern { - void *data; /* the associated template */ + void *data; /* the associated template */ xmlDictPtr dict; /* the optional dictionary */ struct _xmlPattern *next; /* next pattern if | is used */ const xmlChar *pattern; /* the pattern */ @@ -181,15 +181,15 @@ struct _xmlPatParserContext { int error; /* error code */ xmlDictPtr dict; /* the dictionary if any */ xmlPatternPtr comp; /* the result */ - xmlNodePtr elem; /* the current node if any */ + xmlNodePtr elem; /* the current node if any */ const xmlChar **namespaces; /* the namespaces definitions */ int nb_namespaces; /* the number of namespaces */ }; /************************************************************************ - * * - * Type functions * - * * + * * + * Type functions * + * * ************************************************************************/ /** @@ -327,7 +327,7 @@ xmlNewPatParserContext(const xmlChar *pattern, xmlDictPtr dict, static void xmlFreePatParserContext(xmlPatParserContextPtr ctxt) { if (ctxt == NULL) - return; + return; memset(ctxt, -1, sizeof(xmlPatParserContext)); xmlFree(ctxt); } @@ -455,9 +455,9 @@ xmlReversePattern(xmlPatternPtr comp) { } /************************************************************************ - * * - * The interpreter for the precompiled patterns * - * * + * * + * The interpreter for the precompiled patterns * + * * ************************************************************************/ static int @@ -709,7 +709,7 @@ rollback: * * ************************************************************************/ -#define TODO \ +#define TODO \ xmlGenericError(xmlGenericErrorContext, \ "Unimplemented block at %s:%d\n", \ __FILE__, __LINE__); @@ -719,14 +719,14 @@ rollback: #define PEEKPREV(val) ctxt->cur[-(val)] #define CUR_PTR ctxt->cur -#define SKIP_BLANKS \ +#define SKIP_BLANKS \ while (IS_BLANK_CH(CUR)) NEXT #define CURRENT (*ctxt->cur) #define NEXT ((*ctxt->cur) ? ctxt->cur++: ctxt->cur) -#define PUSH(op, val, val2) \ +#define PUSH(op, val, val2) \ if (xmlPatternAdd(ctxt, ctxt->comp, (op), (val), (val2))) goto error; #define XSLT_ERROR(X) \ @@ -772,7 +772,7 @@ xmlPatScanLiteral(xmlPatParserContextPtr ctxt) { if (ctxt->dict) ret = (xmlChar *) xmlDictLookup(ctxt->dict, q, cur - q); else - ret = xmlStrndup(q, cur - q); + ret = xmlStrndup(q, cur - q); } cur += len; CUR_PTR = cur; @@ -791,7 +791,7 @@ xmlPatScanLiteral(xmlPatParserContextPtr ctxt) { if (ctxt->dict) ret = (xmlChar *) xmlDictLookup(ctxt->dict, q, cur - q); else - ret = xmlStrndup(q, cur - q); + ret = xmlStrndup(q, cur - q); } cur += len; CUR_PTR = cur; @@ -808,7 +808,7 @@ xmlPatScanLiteral(xmlPatParserContextPtr ctxt) { * xmlPatScanName: * @ctxt: the XPath Parser context * - * [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | + * [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | * CombiningChar | Extender * * [5] Name ::= (Letter | '_' | ':') (NameChar)* @@ -833,7 +833,7 @@ xmlPatScanName(xmlPatParserContextPtr ctxt) { while ((IS_LETTER(val)) || (IS_DIGIT(val)) || (val == '.') || (val == '-') || - (val == '_') || + (val == '_') || (IS_COMBINING(val)) || (IS_EXTENDER(val))) { cur += len; @@ -842,7 +842,7 @@ xmlPatScanName(xmlPatParserContextPtr ctxt) { if (ctxt->dict) ret = (xmlChar *) xmlDictLookup(ctxt->dict, q, cur - q); else - ret = xmlStrndup(q, cur - q); + ret = xmlStrndup(q, cur - q); CUR_PTR = cur; return(ret); } @@ -922,7 +922,7 @@ xmlCompileAttributeTest(xmlPatParserContextPtr ctxt) { xmlChar *token = NULL; xmlChar *name = NULL; xmlChar *URL = NULL; - + SKIP_BLANKS; name = xmlPatScanNCName(ctxt); if (name == NULL) { @@ -939,10 +939,10 @@ xmlCompileAttributeTest(xmlPatParserContextPtr ctxt) { if (CUR == ':') { int i; xmlChar *prefix = name; - + NEXT; - if (IS_BLANK_CH(CUR)) { + if (IS_BLANK_CH(CUR)) { ERROR5(NULL, NULL, NULL, "Invalid QName.\n", NULL); XML_PAT_FREE_STRING(ctxt, prefix); ctxt->error = 1; @@ -957,11 +957,11 @@ xmlCompileAttributeTest(xmlPatParserContextPtr ctxt) { (prefix[2] == 'l') && (prefix[3] == 0)) { - XML_PAT_COPY_NSNAME(ctxt, URL, XML_XML_NAMESPACE); + XML_PAT_COPY_NSNAME(ctxt, URL, XML_XML_NAMESPACE); } else { for (i = 0;i < ctxt->nb_namespaces;i++) { if (xmlStrEqual(ctxt->namespaces[2 * i + 1], prefix)) { - XML_PAT_COPY_NSNAME(ctxt, URL, ctxt->namespaces[2 * i]) + XML_PAT_COPY_NSNAME(ctxt, URL, ctxt->namespaces[2 * i]) break; } } @@ -969,7 +969,7 @@ xmlCompileAttributeTest(xmlPatParserContextPtr ctxt) { ERROR5(NULL, NULL, NULL, "xmlCompileAttributeTest : no namespace bound to prefix %s\n", prefix); - ctxt->error = 1; + ctxt->error = 1; goto error; } } @@ -983,7 +983,7 @@ xmlCompileAttributeTest(xmlPatParserContextPtr ctxt) { "xmlCompileAttributeTest : Name expected\n"); ctxt->error = 1; goto error; - } + } } else { PUSH(XML_OP_ATTR, token, URL); } @@ -993,7 +993,7 @@ xmlCompileAttributeTest(xmlPatParserContextPtr ctxt) { return; error: if (URL != NULL) - XML_PAT_FREE_STRING(ctxt, URL) + XML_PAT_FREE_STRING(ctxt, URL) if (token != NULL) XML_PAT_FREE_STRING(ctxt, token); } @@ -1006,7 +1006,7 @@ error: * form suitable for fast matching. * * [3] Step ::= '.' | NameTest - * [4] NameTest ::= QName | '*' | NCName ':' '*' + * [4] NameTest ::= QName | '*' | NCName ':' '*' */ static void @@ -1037,7 +1037,7 @@ xmlCompileStepPattern(xmlPatParserContextPtr ctxt) { } NEXT; xmlCompileAttributeTest(ctxt); - if (ctxt->error != 0) + if (ctxt->error != 0) goto error; return; } @@ -1062,7 +1062,7 @@ xmlCompileStepPattern(xmlPatParserContextPtr ctxt) { NEXT; if (CUR != ':') { xmlChar *prefix = name; - int i; + int i; if (hasBlanks || IS_BLANK_CH(CUR)) { ERROR5(NULL, NULL, NULL, "Invalid QName.\n", NULL); @@ -1111,7 +1111,7 @@ xmlCompileStepPattern(xmlPatParserContextPtr ctxt) { } } else { NEXT; - if (xmlStrEqual(name, (const xmlChar *) "child")) { + if (xmlStrEqual(name, (const xmlChar *) "child")) { XML_PAT_FREE_STRING(ctxt, name); name = xmlPatScanName(ctxt); if (name == NULL) { @@ -1129,7 +1129,7 @@ xmlCompileStepPattern(xmlPatParserContextPtr ctxt) { if (CUR == ':') { xmlChar *prefix = name; int i; - + NEXT; if (IS_BLANK_CH(CUR)) { ERROR5(NULL, NULL, NULL, "Invalid QName.\n", NULL); @@ -1145,11 +1145,11 @@ xmlCompileStepPattern(xmlPatParserContextPtr ctxt) { (prefix[2] == 'l') && (prefix[3] == 0)) { - XML_PAT_COPY_NSNAME(ctxt, URL, XML_XML_NAMESPACE) + XML_PAT_COPY_NSNAME(ctxt, URL, XML_XML_NAMESPACE) } else { for (i = 0;i < ctxt->nb_namespaces;i++) { if (xmlStrEqual(ctxt->namespaces[2 * i + 1], prefix)) { - XML_PAT_COPY_NSNAME(ctxt, URL, ctxt->namespaces[2 * i]) + XML_PAT_COPY_NSNAME(ctxt, URL, ctxt->namespaces[2 * i]) break; } } @@ -1197,7 +1197,7 @@ xmlCompileStepPattern(xmlPatParserContextPtr ctxt) { "The 'element' or 'attribute' axis is expected.\n", NULL); ctxt->error = 1; goto error; - } + } } } else if (CUR == '*') { if (name != NULL) { @@ -1212,7 +1212,7 @@ xmlCompileStepPattern(xmlPatParserContextPtr ctxt) { return; error: if (URL != NULL) - XML_PAT_FREE_STRING(ctxt, URL) + XML_PAT_FREE_STRING(ctxt, URL) if (token != NULL) XML_PAT_FREE_STRING(ctxt, token) if (name != NULL) @@ -1226,7 +1226,7 @@ error: * Compile the Path Pattern and generates a precompiled * form suitable for fast matching. * - * [5] Path ::= ('.//')? ( Step '/' )* ( Step | '@' NameTest ) + * [5] Path ::= ('.//')? ( Step '/' )* ( Step | '@' NameTest ) */ static void xmlCompilePathPattern(xmlPatParserContextPtr ctxt) { @@ -1236,7 +1236,7 @@ xmlCompilePathPattern(xmlPatParserContextPtr ctxt) { } else if ((CUR == '.') || (ctxt->comp->flags & XML_PATTERN_NOTPATTERN)) { ctxt->comp->flags |= PAT_FROM_CUR; } - + if ((CUR == '/') && (NXT(1) == '/')) { PUSH(XML_OP_ANCESTOR, NULL, NULL); NEXT; @@ -1299,7 +1299,7 @@ xmlCompilePathPattern(xmlPatParserContextPtr ctxt) { ERROR5(NULL, NULL, NULL, "Incomplete expression '%s'.\n", ctxt->base); ctxt->error = 1; - goto error; + goto error; } xmlCompileStepPattern(ctxt); if (ctxt->error != 0) @@ -1323,7 +1323,7 @@ error: * Compile the Path Pattern and generates a precompiled * form suitable for fast matching. * - * [5] Path ::= ('.//')? ( Step '/' )* ( Step | '@' NameTest ) + * [5] Path ::= ('.//')? ( Step '/' )* ( Step | '@' NameTest ) */ static void xmlCompileIDCXPathPath(xmlPatParserContextPtr ctxt) { @@ -1378,7 +1378,7 @@ xmlCompileIDCXPathPath(xmlPatParserContextPtr ctxt) { */ do { xmlCompileStepPattern(ctxt); - if (ctxt->error != 0) + if (ctxt->error != 0) goto error; SKIP_BLANKS; if (CUR != '/') @@ -1397,7 +1397,7 @@ xmlCompileIDCXPathPath(xmlPatParserContextPtr ctxt) { } if (CUR == 0) goto error_unfinished; - + } while (CUR != 0); if (CUR != 0) { @@ -1413,7 +1413,7 @@ error: error_unfinished: ctxt->error = 1; ERROR5(NULL, NULL, NULL, - "Unfinished expression '%s'.\n", ctxt->base); + "Unfinished expression '%s'.\n", ctxt->base); return; } @@ -1568,7 +1568,7 @@ xmlStreamCompAddStep(xmlStreamCompPtr comp, const xmlChar *name, /** * xmlStreamCompile: * @comp: the precompiled pattern - * + * * Tries to stream compile a pattern * * Returns -1 in case of failure and 0 in case of success. @@ -1605,7 +1605,7 @@ xmlStreamCompile(xmlPatternPtr comp) { xmlDictReference(stream->dict); } - i = 0; + i = 0; if (comp->flags & PAT_FROM_ROOT) stream->flags |= XML_STREAM_FROM_ROOT; @@ -1621,12 +1621,12 @@ xmlStreamCompile(xmlPatternPtr comp) { break; case XML_OP_NS: s = xmlStreamCompAddStep(stream, NULL, step.value, - XML_ELEMENT_NODE, flags); + XML_ELEMENT_NODE, flags); if (s < 0) goto error; prevs = s; - flags = 0; - break; + flags = 0; + break; case XML_OP_ATTR: flags |= XML_STREAM_STEP_ATTR; prevs = -1; @@ -1636,7 +1636,7 @@ xmlStreamCompile(xmlPatternPtr comp) { if (s < 0) goto error; break; - case XML_OP_ELEM: + case XML_OP_ELEM: if ((step.value == NULL) && (step.value2 == NULL)) { /* * We have a "." or "self::node()" here. @@ -1655,7 +1655,7 @@ xmlStreamCompile(xmlPatternPtr comp) { if (comp->nbStep == i + 1) { stream->flags |= XML_STREAM_FINAL_IS_ANY_NODE; } - flags |= XML_STREAM_STEP_NODE; + flags |= XML_STREAM_STEP_NODE; s = xmlStreamCompAddStep(stream, NULL, NULL, XML_STREAM_ANY_NODE, flags); if (s < 0) @@ -1671,39 +1671,39 @@ xmlStreamCompile(xmlPatternPtr comp) { stream->steps[prevs].flags |= XML_STREAM_STEP_IN_SET; prevs = -1; } - break; + break; } else { /* Just skip this one. */ continue; } } - /* An element node. */ + /* An element node. */ s = xmlStreamCompAddStep(stream, step.value, step.value2, - XML_ELEMENT_NODE, flags); + XML_ELEMENT_NODE, flags); if (s < 0) goto error; prevs = s; - flags = 0; - break; + flags = 0; + break; case XML_OP_CHILD: /* An element node child. */ s = xmlStreamCompAddStep(stream, step.value, step.value2, - XML_ELEMENT_NODE, flags); + XML_ELEMENT_NODE, flags); if (s < 0) goto error; prevs = s; flags = 0; - break; + break; case XML_OP_ALL: s = xmlStreamCompAddStep(stream, NULL, NULL, - XML_ELEMENT_NODE, flags); + XML_ELEMENT_NODE, flags); if (s < 0) goto error; prevs = s; flags = 0; break; - case XML_OP_PARENT: + case XML_OP_PARENT: break; case XML_OP_ANCESTOR: /* Skip redundant continuations. */ @@ -1717,7 +1717,7 @@ xmlStreamCompile(xmlPatternPtr comp) { stream->flags |= XML_STREAM_DESC; break; } - } + } if ((! root) && (comp->flags & XML_PATTERN_NOTPATTERN) == 0) { /* * If this should behave like a real pattern, we will mark @@ -1729,7 +1729,7 @@ xmlStreamCompile(xmlPatternPtr comp) { if (stream->nbStep > 0) { if ((stream->steps[0].flags & XML_STREAM_STEP_DESC) == 0) - stream->steps[0].flags |= XML_STREAM_STEP_DESC; + stream->steps[0].flags |= XML_STREAM_STEP_DESC; } } if (stream->nbStep <= s) @@ -1922,7 +1922,7 @@ xmlStreamPushInternal(xmlStreamCtxtPtr stream, if ((nodeType != XML_ATTRIBUTE_NODE) && (((stream->flags & XML_PATTERN_NOTPATTERN) == 0) || (stream->level == 0))) { - ret = 1; + ret = 1; } stream->level++; goto stream_next; @@ -1931,7 +1931,7 @@ xmlStreamPushInternal(xmlStreamCtxtPtr stream, /* * Skip blocked expressions. */ - stream->level++; + stream->level++; goto stream_next; } @@ -1974,7 +1974,7 @@ xmlStreamPushInternal(xmlStreamCtxtPtr stream, * If there are "//", then we need to process every "//" * occuring in the states, plus any other state for this * level. - */ + */ stepNr = stream->states[2 * i]; /* TODO: should not happen anymore: dead states */ @@ -1992,7 +1992,7 @@ xmlStreamPushInternal(xmlStreamCtxtPtr stream, if ((tmp < stream->level) && (!desc)) goto next_state; } - /* + /* * Check for correct node-type. */ step = comp->steps[stepNr]; @@ -2006,7 +2006,7 @@ xmlStreamPushInternal(xmlStreamCtxtPtr stream, goto next_state; } else if (step.nodeType != XML_STREAM_ANY_NODE) goto next_state; - } + } /* * Compare local/namespace-name. */ @@ -2027,9 +2027,9 @@ xmlStreamPushInternal(xmlStreamCtxtPtr stream, xmlStrEqual(step.name, name) && ((step.ns == ns) || xmlStrEqual(step.ns, ns))) { - match = 1; - } -#if 0 + match = 1; + } +#if 0 /* * TODO: Pointer comparison won't work, since not guaranteed that the given * values are in the same dict; especially if it's the namespace name, @@ -2044,8 +2044,8 @@ xmlStreamPushInternal(xmlStreamCtxtPtr stream, } else { match = ((step.name == name) && (step.ns == ns)); } -#endif /* if 0 ------------------------------------------------------- */ - if (match) { +#endif /* if 0 ------------------------------------------------------- */ + if (match) { final = step.flags & XML_STREAM_STEP_FINAL; if (desc) { if (final) { @@ -2070,7 +2070,7 @@ xmlStreamPushInternal(xmlStreamCtxtPtr stream, */ ret = 1; } - } + } if (((comp->flags & XML_STREAM_DESC) == 0) && ((! match) || final)) { /* @@ -2101,7 +2101,7 @@ next_state: * Re/enter the expression if it is a "descendant" one, * or if we are at the 1st level of evaluation. */ - + if (stream->level == 1) { if (XML_STREAM_XS_IDC(stream)) { /* @@ -2111,7 +2111,7 @@ next_state: goto stream_next; } else goto compare; - } + } /* * A "//" is always reentrant. */ @@ -2121,14 +2121,14 @@ next_state: /* * XS-IDC: Process the 2nd level, since the missing * "self::node()" is responsible for the 2nd level being - * the real start level. - */ + * the real start level. + */ if ((stream->level == 2) && XML_STREAM_XS_IDC(stream)) goto compare; goto stream_next; } - + compare: /* * Check expected node-type. @@ -2137,7 +2137,7 @@ compare: if (nodeType == XML_ATTRIBUTE_NODE) goto stream_next; else if (step.nodeType != XML_STREAM_ANY_NODE) - goto stream_next; + goto stream_next; } /* * Compare local/namespace-name. @@ -2159,10 +2159,10 @@ compare: xmlStrEqual(step.name, name) && ((step.ns == ns) || xmlStrEqual(step.ns, ns))) { - match = 1; - } + match = 1; + } final = step.flags & XML_STREAM_STEP_FINAL; - if (match) { + if (match) { if (final) ret = 1; else @@ -2187,7 +2187,7 @@ compare: stream_next: stream = stream->next; } /* while stream != NULL */ - + if (err > 0) ret = -1; #ifdef DEBUG_STREAMING @@ -2279,7 +2279,7 @@ xmlStreamPushAttr(xmlStreamCtxtPtr stream, int xmlStreamPop(xmlStreamCtxtPtr stream) { int i, lev; - + if (stream == NULL) return(-1); while (stream != NULL) { @@ -2298,7 +2298,7 @@ xmlStreamPop(xmlStreamCtxtPtr stream) { stream->level--; /* * Check evolution of existing states - */ + */ for (i = stream->nbState -1; i >= 0; i--) { /* discard obsoleted states */ lev = stream->states[(2 * i) + 1]; @@ -2326,11 +2326,11 @@ xmlStreamPop(xmlStreamCtxtPtr stream) { */ int xmlStreamWantsAnyNode(xmlStreamCtxtPtr streamCtxt) -{ +{ if (streamCtxt == NULL) return(-1); while (streamCtxt != NULL) { - if (streamCtxt->comp->flags & XML_STREAM_FINAL_IS_ANY_NODE) + if (streamCtxt->comp->flags & XML_STREAM_FINAL_IS_ANY_NODE) return(1); streamCtxt = streamCtxt->next; } @@ -2381,13 +2381,13 @@ xmlPatterncompile(const xmlChar *pattern, xmlDict *dict, int flags, } or++; } - if (ctxt == NULL) goto error; + if (ctxt == NULL) goto error; cur = xmlNewPattern(); if (cur == NULL) goto error; /* * Assign string dict. */ - if (dict) { + if (dict) { cur->dict = dict; xmlDictReference(dict); } @@ -2570,7 +2570,7 @@ xmlPatternMaxDepth(xmlPatternPtr comp) { * part of the set. * * Returns -1 in case of error otherwise the depth, - * + * */ int xmlPatternMinDepth(xmlPatternPtr comp) { diff --git a/python/Makefile.am b/python/Makefile.am index 68d2236..4a8b5d5 100644 --- a/python/Makefile.am +++ b/python/Makefile.am @@ -1,67 +1,54 @@ # Makefile for libxml2 python library AUTOMAKE_OPTIONS = 1.4 foreign -SUBDIRS= . tests - -INCLUDES = \ - -I$(PYTHON_INCLUDES) \ - -I$(top_srcdir)/include \ - -I$(top_builddir)/include \ - -I$(top_builddir)/$(subdir) +SUBDIRS = . tests docsdir = $(datadir)/doc/libxml2-python-$(LIBXML_VERSION) -# libxml2class.txt is generated dist_docs_DATA = TODO EXTRA_DIST = \ setup.py \ - setup.py.in \ generator.py \ - libxml_wrap.h \ libxml.py \ - libxml2-python-api.xml - -libxml2mod_la_LDFLAGS = @CYGWIN_EXTRA_LDFLAGS@ @WIN32_EXTRA_LDFLAGS@ -module -avoid-version + libxml2-export.c \ + libxml2-python-api.xml \ + libxml2class.py \ + libxml2class.txt if WITH_PYTHON -mylibs = \ - $(top_builddir)/libxml2.la +AM_CPPFLAGS = \ + -I$(top_builddir)/include \ + -I$(top_srcdir)/include \ + -I$(PYTHON_INCLUDES) python_LTLIBRARIES = libxml2mod.la -libxml2mod_la_SOURCES = $(srcdir)/libxml.c $(srcdir)/types.c -nodist_libxml2mod_la_SOURCES = libxml2-py.c -libxml2mod_la_LIBADD = $(mylibs) @CYGWIN_EXTRA_PYTHON_LIBADD@ @WIN32_EXTRA_PYTHON_LIBADD@ @PYTHON_LIBS@ -lpython$(PYTHON_VERSION) +libxml2mod_la_SOURCES = libxml.c libxml_wrap.h libxml2-py.h libxml2-py.c types.c +libxml2mod_la_LIBADD = $(top_builddir)/libxml2.la $(CYGWIN_EXTRA_PYTHON_LIBADD) $(WIN32_EXTRA_PYTHON_LIBADD) $(PYTHON_LIBS) -lpython$(PYTHON_VERSION) +libxml2mod_la_LDFLAGS = $(CYGWIN_EXTRA_LDFLAGS) $(WIN32_EXTRA_LDFLAGS) -module -avoid-version -$(srcdir)/libxml.c: libxml2-py.h # to generate before to compile +BUILT_SOURCES = libxml2-export.c libxml2-py.h libxml2-py.c +# libxml.c #includes libxml2-export.c +libxml.$(OBJEXT): libxml2-export.c libxml2.py: $(srcdir)/libxml.py libxml2class.py - cat $(srcdir)/libxml.py libxml2class.py > $@ - -python_DATA = \ - libxml2.py + cat $(srcdir)/libxml.py `test -f libxml2class.py || echo $(srcdir)/`libxml2class.py > $@ dist_python_DATA = \ - drv_libxml2.py + drv_libxml2.py \ + libxml2.py -GENERATE = generator.py -API_DESC = $(top_srcdir)/doc/libxml2-api.xml $(srcdir)/libxml2-python-api.xml -GENERATED= libxml2class.py \ - libxml2-export.c \ - libxml2class.txt \ - libxml2-py.c \ - libxml2-py.h +CLEANFILES = *.pyc -CLEANFILES= $(GENERATED) gen_prog libxml2.py +MAINTAINERCLEANFILES = libxml2.py libxml2class.* -$(GENERATED): gen_prog +API_DESC = $(top_srcdir)/doc/libxml2-api.xml $(srcdir)/libxml2-python-api.xml +GENERATED = libxml2class.py libxml2class.txt $(BUILT_SOURCES) -gen_prog: $(srcdir)/$(GENERATE) $(API_DESC) - $(PYTHON) $(srcdir)/$(GENERATE) $(srcdir) - touch gen_prog +$(GENERATED): $(srcdir)/generator.py $(API_DESC) + $(PYTHON) $(srcdir)/generator.py $(srcdir) endif tests test: all - cd tests && $(MAKE) MAKEFLAGS+=--silent tests - + cd tests && $(MAKE) tests diff --git a/python/Makefile.in b/python/Makefile.in index 7b19b89..9f1a044 100644 --- a/python/Makefile.in +++ b/python/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -71,17 +71,27 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(pythondir)" "$(DESTDIR)$(docsdir)" \ - "$(DESTDIR)$(pythondir)" "$(DESTDIR)$(pythondir)" + "$(DESTDIR)$(pythondir)" LTLIBRARIES = $(python_LTLIBRARIES) -@WITH_PYTHON_TRUE@libxml2mod_la_DEPENDENCIES = $(mylibs) -am__libxml2mod_la_SOURCES_DIST = $(srcdir)/libxml.c $(srcdir)/types.c -@WITH_PYTHON_TRUE@am_libxml2mod_la_OBJECTS = libxml.lo types.lo -@WITH_PYTHON_TRUE@nodist_libxml2mod_la_OBJECTS = libxml2-py.lo -libxml2mod_la_OBJECTS = $(am_libxml2mod_la_OBJECTS) \ - $(nodist_libxml2mod_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__DEPENDENCIES_1 = +@WITH_PYTHON_TRUE@libxml2mod_la_DEPENDENCIES = \ +@WITH_PYTHON_TRUE@ $(top_builddir)/libxml2.la \ +@WITH_PYTHON_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ +@WITH_PYTHON_TRUE@ $(am__DEPENDENCIES_1) +am__libxml2mod_la_SOURCES_DIST = libxml.c libxml_wrap.h libxml2-py.h \ + libxml2-py.c types.c +@WITH_PYTHON_TRUE@am_libxml2mod_la_OBJECTS = libxml.lo libxml2-py.lo \ +@WITH_PYTHON_TRUE@ types.lo +libxml2mod_la_OBJECTS = $(am_libxml2mod_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libxml2mod_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ @@ -97,23 +107,23 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(libxml2mod_la_SOURCES) $(nodist_libxml2mod_la_SOURCES) +SOURCES = $(libxml2mod_la_SOURCES) DIST_SOURCES = $(am__libxml2mod_la_SOURCES_DIST) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ @@ -122,8 +132,8 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive -am__dist_python_DATA_DIST = drv_libxml2.py -DATA = $(dist_docs_DATA) $(dist_python_DATA) $(python_DATA) +am__dist_python_DATA_DIST = drv_libxml2.py libxml2.py +DATA = $(dist_docs_DATA) $(dist_python_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ @@ -162,7 +172,6 @@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -199,6 +208,7 @@ HTML_DIR = @HTML_DIR@ HTML_OBJ = @HTML_OBJ@ HTTP_OBJ = @HTTP_OBJ@ ICONV_LIBS = @ICONV_LIBS@ +ICU_LIBS = @ICU_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -279,7 +289,6 @@ TEST_VTIME = @TEST_VTIME@ TEST_XINCLUDE = @TEST_XINCLUDE@ TEST_XPATH = @TEST_XPATH@ TEST_XPTR = @TEST_XPTR@ -THREADS_W32 = @THREADS_W32@ THREAD_CFLAGS = @THREAD_CFLAGS@ THREAD_LIBS = @THREAD_LIBS@ VERSION = @VERSION@ @@ -389,47 +398,37 @@ top_srcdir = @top_srcdir@ # Makefile for libxml2 python library AUTOMAKE_OPTIONS = 1.4 foreign SUBDIRS = . tests -INCLUDES = \ - -I$(PYTHON_INCLUDES) \ - -I$(top_srcdir)/include \ - -I$(top_builddir)/include \ - -I$(top_builddir)/$(subdir) - docsdir = $(datadir)/doc/libxml2-python-$(LIBXML_VERSION) -# libxml2class.txt is generated dist_docs_DATA = TODO EXTRA_DIST = \ setup.py \ - setup.py.in \ generator.py \ - libxml_wrap.h \ libxml.py \ - libxml2-python-api.xml + libxml2-export.c \ + libxml2-python-api.xml \ + libxml2class.py \ + libxml2class.txt -libxml2mod_la_LDFLAGS = @CYGWIN_EXTRA_LDFLAGS@ @WIN32_EXTRA_LDFLAGS@ -module -avoid-version -@WITH_PYTHON_TRUE@mylibs = \ -@WITH_PYTHON_TRUE@ $(top_builddir)/libxml2.la +@WITH_PYTHON_TRUE@AM_CPPFLAGS = \ +@WITH_PYTHON_TRUE@ -I$(top_builddir)/include \ +@WITH_PYTHON_TRUE@ -I$(top_srcdir)/include \ +@WITH_PYTHON_TRUE@ -I$(PYTHON_INCLUDES) @WITH_PYTHON_TRUE@python_LTLIBRARIES = libxml2mod.la -@WITH_PYTHON_TRUE@libxml2mod_la_SOURCES = $(srcdir)/libxml.c $(srcdir)/types.c -@WITH_PYTHON_TRUE@nodist_libxml2mod_la_SOURCES = libxml2-py.c -@WITH_PYTHON_TRUE@libxml2mod_la_LIBADD = $(mylibs) @CYGWIN_EXTRA_PYTHON_LIBADD@ @WIN32_EXTRA_PYTHON_LIBADD@ @PYTHON_LIBS@ -lpython$(PYTHON_VERSION) -@WITH_PYTHON_TRUE@python_DATA = \ -@WITH_PYTHON_TRUE@ libxml2.py - +@WITH_PYTHON_TRUE@libxml2mod_la_SOURCES = libxml.c libxml_wrap.h libxml2-py.h libxml2-py.c types.c +@WITH_PYTHON_TRUE@libxml2mod_la_LIBADD = $(top_builddir)/libxml2.la $(CYGWIN_EXTRA_PYTHON_LIBADD) $(WIN32_EXTRA_PYTHON_LIBADD) $(PYTHON_LIBS) -lpython$(PYTHON_VERSION) +@WITH_PYTHON_TRUE@libxml2mod_la_LDFLAGS = $(CYGWIN_EXTRA_LDFLAGS) $(WIN32_EXTRA_LDFLAGS) -module -avoid-version +@WITH_PYTHON_TRUE@BUILT_SOURCES = libxml2-export.c libxml2-py.h libxml2-py.c @WITH_PYTHON_TRUE@dist_python_DATA = \ -@WITH_PYTHON_TRUE@ drv_libxml2.py +@WITH_PYTHON_TRUE@ drv_libxml2.py \ +@WITH_PYTHON_TRUE@ libxml2.py -@WITH_PYTHON_TRUE@GENERATE = generator.py +@WITH_PYTHON_TRUE@CLEANFILES = *.pyc +@WITH_PYTHON_TRUE@MAINTAINERCLEANFILES = libxml2.py libxml2class.* @WITH_PYTHON_TRUE@API_DESC = $(top_srcdir)/doc/libxml2-api.xml $(srcdir)/libxml2-python-api.xml -@WITH_PYTHON_TRUE@GENERATED = libxml2class.py \ -@WITH_PYTHON_TRUE@ libxml2-export.c \ -@WITH_PYTHON_TRUE@ libxml2class.txt \ -@WITH_PYTHON_TRUE@ libxml2-py.c \ -@WITH_PYTHON_TRUE@ libxml2-py.h - -@WITH_PYTHON_TRUE@CLEANFILES = $(GENERATED) gen_prog libxml2.py -all: all-recursive +@WITH_PYTHON_TRUE@GENERATED = libxml2class.py libxml2class.txt $(BUILT_SOURCES) +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj @@ -496,7 +495,7 @@ clean-pythonLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libxml2mod.la: $(libxml2mod_la_OBJECTS) $(libxml2mod_la_DEPENDENCIES) +libxml2mod.la: $(libxml2mod_la_OBJECTS) $(libxml2mod_la_DEPENDENCIES) $(EXTRA_libxml2mod_la_DEPENDENCIES) $(AM_V_CCLD)$(libxml2mod_la_LINK) $(am_libxml2mod_la_rpath) $(libxml2mod_la_OBJECTS) $(libxml2mod_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -512,42 +511,23 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - -libxml.lo: $(srcdir)/libxml.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libxml.lo -MD -MP -MF $(DEPDIR)/libxml.Tpo -c -o libxml.lo `test -f '$(srcdir)/libxml.c' || echo '$(srcdir)/'`$(srcdir)/libxml.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libxml.Tpo $(DEPDIR)/libxml.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(srcdir)/libxml.c' object='libxml.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libxml.lo `test -f '$(srcdir)/libxml.c' || echo '$(srcdir)/'`$(srcdir)/libxml.c - -types.lo: $(srcdir)/types.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT types.lo -MD -MP -MF $(DEPDIR)/types.Tpo -c -o types.lo `test -f '$(srcdir)/types.c' || echo '$(srcdir)/'`$(srcdir)/types.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/types.Tpo $(DEPDIR)/types.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(srcdir)/types.c' object='types.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o types.lo `test -f '$(srcdir)/types.c' || echo '$(srcdir)/'`$(srcdir)/types.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -571,9 +551,7 @@ uninstall-dist_docsDATA: @$(NORMAL_UNINSTALL) @list='$(dist_docs_DATA)'; test -n "$(docsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(docsdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(docsdir)" && rm -f $$files + dir='$(DESTDIR)$(docsdir)'; $(am__uninstall_files_from_dir) install-dist_pythonDATA: $(dist_python_DATA) @$(NORMAL_INSTALL) test -z "$(pythondir)" || $(MKDIR_P) "$(DESTDIR)$(pythondir)" @@ -591,29 +569,7 @@ uninstall-dist_pythonDATA: @$(NORMAL_UNINSTALL) @list='$(dist_python_DATA)'; test -n "$(pythondir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(pythondir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(pythondir)" && rm -f $$files -install-pythonDATA: $(python_DATA) - @$(NORMAL_INSTALL) - test -z "$(pythondir)" || $(MKDIR_P) "$(DESTDIR)$(pythondir)" - @list='$(python_DATA)'; test -n "$(pythondir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pythondir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(pythondir)" || exit $$?; \ - done - -uninstall-pythonDATA: - @$(NORMAL_UNINSTALL) - @list='$(python_DATA)'; test -n "$(pythondir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(pythondir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(pythondir)" && rm -f $$files + dir='$(DESTDIR)$(pythondir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. @@ -809,14 +765,16 @@ distdir: $(DISTFILES) fi; \ done check-am: all-am -check: check-recursive +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(LTLIBRARIES) $(DATA) installdirs: installdirs-recursive installdirs-am: - for dir in "$(DESTDIR)$(pythondir)" "$(DESTDIR)$(docsdir)" "$(DESTDIR)$(pythondir)" "$(DESTDIR)$(pythondir)"; do \ + for dir in "$(DESTDIR)$(pythondir)" "$(DESTDIR)$(docsdir)" "$(DESTDIR)$(pythondir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done -install: install-recursive +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive @@ -826,10 +784,15 @@ install-am: all-am installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -842,6 +805,8 @@ distclean-generic: maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool clean-pythonLTLIBRARIES \ @@ -866,7 +831,7 @@ info: info-recursive info-am: install-data-am: install-dist_docsDATA install-dist_pythonDATA \ - install-pythonDATA install-pythonLTLIBRARIES + install-pythonLTLIBRARIES install-dvi: install-dvi-recursive @@ -913,10 +878,11 @@ ps: ps-recursive ps-am: uninstall-am: uninstall-dist_docsDATA uninstall-dist_pythonDATA \ - uninstall-pythonDATA uninstall-pythonLTLIBRARIES + uninstall-pythonLTLIBRARIES -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ + ctags-recursive install install-am install-strip \ + tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ @@ -928,28 +894,26 @@ uninstall-am: uninstall-dist_docsDATA uninstall-dist_pythonDATA \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ - install-pythonDATA install-pythonLTLIBRARIES install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ + install-pythonLTLIBRARIES install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-recursive uninstall uninstall-am \ uninstall-dist_docsDATA uninstall-dist_pythonDATA \ - uninstall-pythonDATA uninstall-pythonLTLIBRARIES + uninstall-pythonLTLIBRARIES -@WITH_PYTHON_TRUE@$(srcdir)/libxml.c: libxml2-py.h # to generate before to compile +# libxml.c #includes libxml2-export.c +@WITH_PYTHON_TRUE@libxml.$(OBJEXT): libxml2-export.c @WITH_PYTHON_TRUE@libxml2.py: $(srcdir)/libxml.py libxml2class.py -@WITH_PYTHON_TRUE@ cat $(srcdir)/libxml.py libxml2class.py > $@ - -@WITH_PYTHON_TRUE@$(GENERATED): gen_prog +@WITH_PYTHON_TRUE@ cat $(srcdir)/libxml.py `test -f libxml2class.py || echo $(srcdir)/`libxml2class.py > $@ -@WITH_PYTHON_TRUE@gen_prog: $(srcdir)/$(GENERATE) $(API_DESC) -@WITH_PYTHON_TRUE@ $(PYTHON) $(srcdir)/$(GENERATE) $(srcdir) -@WITH_PYTHON_TRUE@ touch gen_prog +@WITH_PYTHON_TRUE@$(GENERATED): $(srcdir)/generator.py $(API_DESC) +@WITH_PYTHON_TRUE@ $(PYTHON) $(srcdir)/generator.py $(srcdir) tests test: all - cd tests && $(MAKE) MAKEFLAGS+=--silent tests + cd tests && $(MAKE) tests # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/python/libxml.c b/python/libxml.c index 9dabf89..a556160 100644 --- a/python/libxml.c +++ b/python/libxml.c @@ -28,9 +28,7 @@ #include "libxml_wrap.h" #include "libxml2-py.h" -#if defined(_MSC_VER) && !defined(vsnprintf) -#define vsnprintf(b,c,f,a) _vsnprintf(b,c,f,a) -#elif defined(WITH_TRIO) && !defined(vsnprintf) +#if defined(WITH_TRIO) #include "trio.h" #define vsnprintf trio_vsnprintf #endif @@ -1367,6 +1365,7 @@ libxml_htmlCreatePushParser(ATTRIBUTE_UNUSED PyObject * self, PyObject * libxml_xmlSAXParseFile(ATTRIBUTE_UNUSED PyObject * self, PyObject * args) { +#ifdef LIBXML_SAX1_ENABLED int recover; const char *URI; PyObject *pyobj_SAX = NULL; @@ -1388,6 +1387,7 @@ libxml_xmlSAXParseFile(ATTRIBUTE_UNUSED PyObject * self, PyObject * args) Py_INCREF(pyobj_SAX); /* The reference is released in pythonEndDocument() */ xmlSAXUserParseFile(SAX, pyobj_SAX, URI); +#endif /* LIBXML_SAX1_ENABLED */ Py_INCREF(Py_None); return (Py_None); } diff --git a/python/libxml2-export.c b/python/libxml2-export.c new file mode 100644 index 0000000..19ef337 --- /dev/null +++ b/python/libxml2-export.c @@ -0,0 +1,2058 @@ +/* Generated */ + +#if defined(LIBXML_DOCB_ENABLED) + { (char *)"docbDefaultSAXHandlerInit", libxml_docbDefaultSAXHandlerInit, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_DOCB_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlAutoCloseTag", libxml_htmlAutoCloseTag, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlCreateFileParserCtxt", libxml_htmlCreateFileParserCtxt, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlCreateMemoryParserCtxt", libxml_htmlCreateMemoryParserCtxt, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlCreatePushParser", libxml_htmlCreatePushParser, METH_VARARGS, NULL }, +#endif +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlCtxtReadDoc", libxml_htmlCtxtReadDoc, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlCtxtReadFd", libxml_htmlCtxtReadFd, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlCtxtReadFile", libxml_htmlCtxtReadFile, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlCtxtReadMemory", libxml_htmlCtxtReadMemory, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlCtxtReset", libxml_htmlCtxtReset, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlCtxtUseOptions", libxml_htmlCtxtUseOptions, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlDefaultSAXHandlerInit", libxml_htmlDefaultSAXHandlerInit, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) + { (char *)"htmlDocContentDumpFormatOutput", libxml_htmlDocContentDumpFormatOutput, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) + { (char *)"htmlDocContentDumpOutput", libxml_htmlDocContentDumpOutput, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) + { (char *)"htmlDocDump", libxml_htmlDocDump, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlFreeParserCtxt", libxml_htmlFreeParserCtxt, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlGetMetaEncoding", libxml_htmlGetMetaEncoding, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlHandleOmittedElem", libxml_htmlHandleOmittedElem, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlInitAutoClose", libxml_htmlInitAutoClose, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlIsAutoClosed", libxml_htmlIsAutoClosed, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlIsBooleanAttr", libxml_htmlIsBooleanAttr, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlIsScriptAttribute", libxml_htmlIsScriptAttribute, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlNewDoc", libxml_htmlNewDoc, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlNewDocNoDtD", libxml_htmlNewDocNoDtD, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlNewParserCtxt", libxml_htmlNewParserCtxt, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) + { (char *)"htmlNodeDumpFile", libxml_htmlNodeDumpFile, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) + { (char *)"htmlNodeDumpFileFormat", libxml_htmlNodeDumpFileFormat, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) + { (char *)"htmlNodeDumpFormatOutput", libxml_htmlNodeDumpFormatOutput, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) + { (char *)"htmlNodeDumpOutput", libxml_htmlNodeDumpOutput, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlParseCharRef", libxml_htmlParseCharRef, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_PUSH_ENABLED) + { (char *)"htmlParseChunk", libxml_htmlParseChunk, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_PUSH_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlParseDoc", libxml_htmlParseDoc, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlParseDocument", libxml_htmlParseDocument, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlParseElement", libxml_htmlParseElement, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlParseFile", libxml_htmlParseFile, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlReadDoc", libxml_htmlReadDoc, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlReadFd", libxml_htmlReadFd, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlReadFile", libxml_htmlReadFile, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlReadMemory", libxml_htmlReadMemory, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlSAXParseFile", libxml_htmlSAXParseFile, METH_VARARGS, NULL }, +#endif +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) + { (char *)"htmlSaveFile", libxml_htmlSaveFile, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) + { (char *)"htmlSaveFileEnc", libxml_htmlSaveFileEnc, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) + { (char *)"htmlSaveFileFormat", libxml_htmlSaveFileFormat, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) + { (char *)"htmlSetMetaEncoding", libxml_htmlSetMetaEncoding, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTML_ENABLED) */ + { (char *)"namePop", libxml_namePop, METH_VARARGS, NULL }, + { (char *)"namePush", libxml_namePush, METH_VARARGS, NULL }, + { (char *)"nodePop", libxml_nodePop, METH_VARARGS, NULL }, + { (char *)"nodePush", libxml_nodePush, METH_VARARGS, NULL }, +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"valuePop", libxml_valuePop, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlACatalogAdd", libxml_xmlACatalogAdd, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) + { (char *)"xmlACatalogDump", libxml_xmlACatalogDump, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlACatalogRemove", libxml_xmlACatalogRemove, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlACatalogResolve", libxml_xmlACatalogResolve, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlACatalogResolvePublic", libxml_xmlACatalogResolvePublic, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlACatalogResolveSystem", libxml_xmlACatalogResolveSystem, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlACatalogResolveURI", libxml_xmlACatalogResolveURI, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ + { (char *)"xmlAddChild", libxml_xmlAddChild, METH_VARARGS, NULL }, + { (char *)"xmlAddChildList", libxml_xmlAddChildList, METH_VARARGS, NULL }, + { (char *)"xmlAddDocEntity", libxml_xmlAddDocEntity, METH_VARARGS, NULL }, + { (char *)"xmlAddDtdEntity", libxml_xmlAddDtdEntity, METH_VARARGS, NULL }, + { (char *)"xmlAddEncodingAlias", libxml_xmlAddEncodingAlias, METH_VARARGS, NULL }, + { (char *)"xmlAddNextSibling", libxml_xmlAddNextSibling, METH_VARARGS, NULL }, +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlAddPrevSibling", libxml_xmlAddPrevSibling, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ + { (char *)"xmlAddSibling", libxml_xmlAddSibling, METH_VARARGS, NULL }, +#if defined(LIBXML_DEBUG_ENABLED) + { (char *)"xmlBoolToText", libxml_xmlBoolToText, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_DEBUG_ENABLED) */ + { (char *)"xmlBuildQName", libxml_xmlBuildQName, METH_VARARGS, NULL }, + { (char *)"xmlBuildRelativeURI", libxml_xmlBuildRelativeURI, METH_VARARGS, NULL }, + { (char *)"xmlBuildURI", libxml_xmlBuildURI, METH_VARARGS, NULL }, + { (char *)"xmlByteConsumed", libxml_xmlByteConsumed, METH_VARARGS, NULL }, + { (char *)"xmlCanonicPath", libxml_xmlCanonicPath, METH_VARARGS, NULL }, +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlCatalogAdd", libxml_xmlCatalogAdd, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlCatalogCleanup", libxml_xmlCatalogCleanup, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlCatalogConvert", libxml_xmlCatalogConvert, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) + { (char *)"xmlCatalogDump", libxml_xmlCatalogDump, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlCatalogGetPublic", libxml_xmlCatalogGetPublic, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlCatalogGetSystem", libxml_xmlCatalogGetSystem, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlCatalogIsEmpty", libxml_xmlCatalogIsEmpty, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlCatalogRemove", libxml_xmlCatalogRemove, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlCatalogResolve", libxml_xmlCatalogResolve, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlCatalogResolvePublic", libxml_xmlCatalogResolvePublic, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlCatalogResolveSystem", libxml_xmlCatalogResolveSystem, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlCatalogResolveURI", libxml_xmlCatalogResolveURI, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlCatalogSetDebug", libxml_xmlCatalogSetDebug, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ + { (char *)"xmlCharStrdup", libxml_xmlCharStrdup, METH_VARARGS, NULL }, + { (char *)"xmlCharStrndup", libxml_xmlCharStrndup, METH_VARARGS, NULL }, + { (char *)"xmlCheckFilename", libxml_xmlCheckFilename, METH_VARARGS, NULL }, + { (char *)"xmlCheckLanguageID", libxml_xmlCheckLanguageID, METH_VARARGS, NULL }, + { (char *)"xmlCheckUTF8", libxml_xmlCheckUTF8, METH_VARARGS, NULL }, + { (char *)"xmlCheckVersion", libxml_xmlCheckVersion, METH_VARARGS, NULL }, + { (char *)"xmlCleanupCharEncodingHandlers", libxml_xmlCleanupCharEncodingHandlers, METH_VARARGS, NULL }, + { (char *)"xmlCleanupEncodingAliases", libxml_xmlCleanupEncodingAliases, METH_VARARGS, NULL }, + { (char *)"xmlCleanupGlobals", libxml_xmlCleanupGlobals, METH_VARARGS, NULL }, + { (char *)"xmlCleanupInputCallbacks", libxml_xmlCleanupInputCallbacks, METH_VARARGS, NULL }, +#if defined(LIBXML_OUTPUT_ENABLED) + { (char *)"xmlCleanupOutputCallbacks", libxml_xmlCleanupOutputCallbacks, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_LEGACY_ENABLED) + { (char *)"xmlCleanupPredefinedEntities", libxml_xmlCleanupPredefinedEntities, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_LEGACY_ENABLED) */ + { (char *)"xmlClearParserCtxt", libxml_xmlClearParserCtxt, METH_VARARGS, NULL }, +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlConvertSGMLCatalog", libxml_xmlConvertSGMLCatalog, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ + { (char *)"xmlCopyChar", libxml_xmlCopyChar, METH_VARARGS, NULL }, + { (char *)"xmlCopyCharMultiByte", libxml_xmlCopyCharMultiByte, METH_VARARGS, NULL }, +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlCopyDoc", libxml_xmlCopyDoc, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) + { (char *)"xmlCopyDtd", libxml_xmlCopyDtd, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) */ + { (char *)"xmlCopyError", libxml_xmlCopyError, METH_VARARGS, NULL }, + { (char *)"xmlCopyNamespace", libxml_xmlCopyNamespace, METH_VARARGS, NULL }, + { (char *)"xmlCopyNamespaceList", libxml_xmlCopyNamespaceList, METH_VARARGS, NULL }, + { (char *)"xmlCopyNode", libxml_xmlCopyNode, METH_VARARGS, NULL }, + { (char *)"xmlCopyNodeList", libxml_xmlCopyNodeList, METH_VARARGS, NULL }, + { (char *)"xmlCopyProp", libxml_xmlCopyProp, METH_VARARGS, NULL }, + { (char *)"xmlCopyPropList", libxml_xmlCopyPropList, METH_VARARGS, NULL }, + { (char *)"xmlCreateDocParserCtxt", libxml_xmlCreateDocParserCtxt, METH_VARARGS, NULL }, + { (char *)"xmlCreateEntityParserCtxt", libxml_xmlCreateEntityParserCtxt, METH_VARARGS, NULL }, + { (char *)"xmlCreateFileParserCtxt", libxml_xmlCreateFileParserCtxt, METH_VARARGS, NULL }, + { (char *)"xmlCreateInputBuffer", libxml_xmlCreateInputBuffer, METH_VARARGS, NULL }, + { (char *)"xmlCreateIntSubset", libxml_xmlCreateIntSubset, METH_VARARGS, NULL }, + { (char *)"xmlCreateMemoryParserCtxt", libxml_xmlCreateMemoryParserCtxt, METH_VARARGS, NULL }, + { (char *)"xmlCreateOutputBuffer", libxml_xmlCreateOutputBuffer, METH_VARARGS, NULL }, + { (char *)"xmlCreatePushParser", libxml_xmlCreatePushParser, METH_VARARGS, NULL }, + { (char *)"xmlCreateURI", libxml_xmlCreateURI, METH_VARARGS, NULL }, + { (char *)"xmlCreateURLParserCtxt", libxml_xmlCreateURLParserCtxt, METH_VARARGS, NULL }, + { (char *)"xmlCtxtReadDoc", libxml_xmlCtxtReadDoc, METH_VARARGS, NULL }, + { (char *)"xmlCtxtReadFd", libxml_xmlCtxtReadFd, METH_VARARGS, NULL }, + { (char *)"xmlCtxtReadFile", libxml_xmlCtxtReadFile, METH_VARARGS, NULL }, + { (char *)"xmlCtxtReadMemory", libxml_xmlCtxtReadMemory, METH_VARARGS, NULL }, + { (char *)"xmlCtxtReset", libxml_xmlCtxtReset, METH_VARARGS, NULL }, + { (char *)"xmlCtxtResetPush", libxml_xmlCtxtResetPush, METH_VARARGS, NULL }, + { (char *)"xmlCtxtUseOptions", libxml_xmlCtxtUseOptions, METH_VARARGS, NULL }, +#if defined(LIBXML_DEBUG_ENABLED) + { (char *)"xmlDebugCheckDocument", libxml_xmlDebugCheckDocument, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) + { (char *)"xmlDebugDumpAttr", libxml_xmlDebugDumpAttr, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) + { (char *)"xmlDebugDumpAttrList", libxml_xmlDebugDumpAttrList, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) + { (char *)"xmlDebugDumpDTD", libxml_xmlDebugDumpDTD, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) + { (char *)"xmlDebugDumpDocument", libxml_xmlDebugDumpDocument, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) + { (char *)"xmlDebugDumpDocumentHead", libxml_xmlDebugDumpDocumentHead, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) + { (char *)"xmlDebugDumpEntities", libxml_xmlDebugDumpEntities, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) + { (char *)"xmlDebugDumpNode", libxml_xmlDebugDumpNode, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) + { (char *)"xmlDebugDumpNodeList", libxml_xmlDebugDumpNodeList, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) + { (char *)"xmlDebugDumpOneNode", libxml_xmlDebugDumpOneNode, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) + { (char *)"xmlDebugDumpString", libxml_xmlDebugDumpString, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_DEBUG_ENABLED) */ + { (char *)"xmlDebugMemory", libxml_xmlDebugMemory, METH_VARARGS, NULL }, +#if defined(LIBXML_LEGACY_ENABLED) + { (char *)"xmlDecodeEntities", libxml_xmlDecodeEntities, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_LEGACY_ENABLED) */ + { (char *)"xmlDefaultSAXHandlerInit", libxml_xmlDefaultSAXHandlerInit, METH_VARARGS, NULL }, + { (char *)"xmlDelEncodingAlias", libxml_xmlDelEncodingAlias, METH_VARARGS, NULL }, + { (char *)"xmlDictCleanup", libxml_xmlDictCleanup, METH_VARARGS, NULL }, + { (char *)"xmlDocCopyNode", libxml_xmlDocCopyNode, METH_VARARGS, NULL }, + { (char *)"xmlDocCopyNodeList", libxml_xmlDocCopyNodeList, METH_VARARGS, NULL }, +#if defined(LIBXML_OUTPUT_ENABLED) + { (char *)"xmlDocDump", libxml_xmlDocDump, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) + { (char *)"xmlDocFormatDump", libxml_xmlDocFormatDump, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ + { (char *)"xmlDocGetRootElement", libxml_xmlDocGetRootElement, METH_VARARGS, NULL }, +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) + { (char *)"xmlDocSetRootElement", libxml_xmlDocSetRootElement, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */ + { (char *)"xmlDumpMemory", libxml_xmlDumpMemory, METH_VARARGS, NULL }, +#if defined(LIBXML_OUTPUT_ENABLED) + { (char *)"xmlElemDump", libxml_xmlElemDump, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_LEGACY_ENABLED) + { (char *)"xmlEncodeEntities", libxml_xmlEncodeEntities, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_LEGACY_ENABLED) */ + { (char *)"xmlEncodeEntitiesReentrant", libxml_xmlEncodeEntitiesReentrant, METH_VARARGS, NULL }, + { (char *)"xmlEncodeSpecialChars", libxml_xmlEncodeSpecialChars, METH_VARARGS, NULL }, + { (char *)"xmlErrorGetCode", libxml_xmlErrorGetCode, METH_VARARGS, NULL }, + { (char *)"xmlErrorGetDomain", libxml_xmlErrorGetDomain, METH_VARARGS, NULL }, + { (char *)"xmlErrorGetFile", libxml_xmlErrorGetFile, METH_VARARGS, NULL }, + { (char *)"xmlErrorGetLevel", libxml_xmlErrorGetLevel, METH_VARARGS, NULL }, + { (char *)"xmlErrorGetLine", libxml_xmlErrorGetLine, METH_VARARGS, NULL }, + { (char *)"xmlErrorGetMessage", libxml_xmlErrorGetMessage, METH_VARARGS, NULL }, + { (char *)"xmlFileMatch", libxml_xmlFileMatch, METH_VARARGS, NULL }, +#if defined(LIBXML_TREE_ENABLED) + { (char *)"xmlFirstElementChild", libxml_xmlFirstElementChild, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlFreeCatalog", libxml_xmlFreeCatalog, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ + { (char *)"xmlFreeDoc", libxml_xmlFreeDoc, METH_VARARGS, NULL }, + { (char *)"xmlFreeDtd", libxml_xmlFreeDtd, METH_VARARGS, NULL }, + { (char *)"xmlFreeNode", libxml_xmlFreeNode, METH_VARARGS, NULL }, + { (char *)"xmlFreeNodeList", libxml_xmlFreeNodeList, METH_VARARGS, NULL }, + { (char *)"xmlFreeNs", libxml_xmlFreeNs, METH_VARARGS, NULL }, + { (char *)"xmlFreeNsList", libxml_xmlFreeNsList, METH_VARARGS, NULL }, + { (char *)"xmlFreeParserInputBuffer", libxml_xmlFreeParserInputBuffer, METH_VARARGS, NULL }, + { (char *)"xmlFreeProp", libxml_xmlFreeProp, METH_VARARGS, NULL }, + { (char *)"xmlFreePropList", libxml_xmlFreePropList, METH_VARARGS, NULL }, + { (char *)"xmlFreeURI", libxml_xmlFreeURI, METH_VARARGS, NULL }, + { (char *)"xmlGetCompressMode", libxml_xmlGetCompressMode, METH_VARARGS, NULL }, + { (char *)"xmlGetDocCompressMode", libxml_xmlGetDocCompressMode, METH_VARARGS, NULL }, + { (char *)"xmlGetDocEntity", libxml_xmlGetDocEntity, METH_VARARGS, NULL }, + { (char *)"xmlGetDtdAttrDesc", libxml_xmlGetDtdAttrDesc, METH_VARARGS, NULL }, + { (char *)"xmlGetDtdElementDesc", libxml_xmlGetDtdElementDesc, METH_VARARGS, NULL }, + { (char *)"xmlGetDtdEntity", libxml_xmlGetDtdEntity, METH_VARARGS, NULL }, + { (char *)"xmlGetDtdQAttrDesc", libxml_xmlGetDtdQAttrDesc, METH_VARARGS, NULL }, + { (char *)"xmlGetDtdQElementDesc", libxml_xmlGetDtdQElementDesc, METH_VARARGS, NULL }, + { (char *)"xmlGetEncodingAlias", libxml_xmlGetEncodingAlias, METH_VARARGS, NULL }, + { (char *)"xmlGetID", libxml_xmlGetID, METH_VARARGS, NULL }, + { (char *)"xmlGetIntSubset", libxml_xmlGetIntSubset, METH_VARARGS, NULL }, + { (char *)"xmlGetLastChild", libxml_xmlGetLastChild, METH_VARARGS, NULL }, + { (char *)"xmlGetLastError", libxml_xmlGetLastError, METH_VARARGS, NULL }, + { (char *)"xmlGetLineNo", libxml_xmlGetLineNo, METH_VARARGS, NULL }, + { (char *)"xmlGetNoNsProp", libxml_xmlGetNoNsProp, METH_VARARGS, NULL }, +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) + { (char *)"xmlGetNodePath", libxml_xmlGetNodePath, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) */ + { (char *)"xmlGetNsProp", libxml_xmlGetNsProp, METH_VARARGS, NULL }, + { (char *)"xmlGetParameterEntity", libxml_xmlGetParameterEntity, METH_VARARGS, NULL }, + { (char *)"xmlGetPredefinedEntity", libxml_xmlGetPredefinedEntity, METH_VARARGS, NULL }, + { (char *)"xmlGetProp", libxml_xmlGetProp, METH_VARARGS, NULL }, +#if defined(LIBXML_LEGACY_ENABLED) + { (char *)"xmlHandleEntity", libxml_xmlHandleEntity, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_LEGACY_ENABLED) */ + { (char *)"xmlHasNsProp", libxml_xmlHasNsProp, METH_VARARGS, NULL }, + { (char *)"xmlHasProp", libxml_xmlHasProp, METH_VARARGS, NULL }, +#if defined(LIBXML_FTP_ENABLED) + { (char *)"xmlIOFTPMatch", libxml_xmlIOFTPMatch, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_FTP_ENABLED) */ +#if defined(LIBXML_HTTP_ENABLED) + { (char *)"xmlIOHTTPMatch", libxml_xmlIOHTTPMatch, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTTP_ENABLED) */ + { (char *)"xmlInitCharEncodingHandlers", libxml_xmlInitCharEncodingHandlers, METH_VARARGS, NULL }, + { (char *)"xmlInitGlobals", libxml_xmlInitGlobals, METH_VARARGS, NULL }, + { (char *)"xmlInitParser", libxml_xmlInitParser, METH_VARARGS, NULL }, + { (char *)"xmlInitParserCtxt", libxml_xmlInitParserCtxt, METH_VARARGS, NULL }, +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlInitializeCatalog", libxml_xmlInitializeCatalog, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ + { (char *)"xmlInitializeDict", libxml_xmlInitializeDict, METH_VARARGS, NULL }, +#if defined(LIBXML_LEGACY_ENABLED) + { (char *)"xmlInitializePredefinedEntities", libxml_xmlInitializePredefinedEntities, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_LEGACY_ENABLED) */ + { (char *)"xmlIsBaseChar", libxml_xmlIsBaseChar, METH_VARARGS, NULL }, + { (char *)"xmlIsBlank", libxml_xmlIsBlank, METH_VARARGS, NULL }, + { (char *)"xmlIsBlankNode", libxml_xmlIsBlankNode, METH_VARARGS, NULL }, + { (char *)"xmlIsChar", libxml_xmlIsChar, METH_VARARGS, NULL }, + { (char *)"xmlIsCombining", libxml_xmlIsCombining, METH_VARARGS, NULL }, + { (char *)"xmlIsDigit", libxml_xmlIsDigit, METH_VARARGS, NULL }, + { (char *)"xmlIsExtender", libxml_xmlIsExtender, METH_VARARGS, NULL }, + { (char *)"xmlIsID", libxml_xmlIsID, METH_VARARGS, NULL }, + { (char *)"xmlIsIdeographic", libxml_xmlIsIdeographic, METH_VARARGS, NULL }, + { (char *)"xmlIsLetter", libxml_xmlIsLetter, METH_VARARGS, NULL }, + { (char *)"xmlIsMixedElement", libxml_xmlIsMixedElement, METH_VARARGS, NULL }, + { (char *)"xmlIsPubidChar", libxml_xmlIsPubidChar, METH_VARARGS, NULL }, + { (char *)"xmlIsRef", libxml_xmlIsRef, METH_VARARGS, NULL }, + { (char *)"xmlIsXHTML", libxml_xmlIsXHTML, METH_VARARGS, NULL }, + { (char *)"xmlKeepBlanksDefault", libxml_xmlKeepBlanksDefault, METH_VARARGS, NULL }, +#if defined(LIBXML_TREE_ENABLED) + { (char *)"xmlLastElementChild", libxml_xmlLastElementChild, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) */ + { (char *)"xmlLineNumbersDefault", libxml_xmlLineNumbersDefault, METH_VARARGS, NULL }, +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlLoadACatalog", libxml_xmlLoadACatalog, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlLoadCatalog", libxml_xmlLoadCatalog, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlLoadCatalogs", libxml_xmlLoadCatalogs, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlLoadSGMLSuperCatalog", libxml_xmlLoadSGMLSuperCatalog, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) + { (char *)"xmlLsCountNode", libxml_xmlLsCountNode, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) + { (char *)"xmlLsOneNode", libxml_xmlLsOneNode, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_DEBUG_ENABLED) */ + { (char *)"xmlMemoryUsed", libxml_xmlMemoryUsed, METH_VARARGS, NULL }, +#if defined(LIBXML_LEGACY_ENABLED) + { (char *)"xmlNamespaceParseNCName", libxml_xmlNamespaceParseNCName, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +#if defined(LIBXML_LEGACY_ENABLED) + { (char *)"xmlNamespaceParseNSDef", libxml_xmlNamespaceParseNSDef, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +#if defined(LIBXML_FTP_ENABLED) + { (char *)"xmlNanoFTPCleanup", libxml_xmlNanoFTPCleanup, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_FTP_ENABLED) */ +#if defined(LIBXML_FTP_ENABLED) + { (char *)"xmlNanoFTPInit", libxml_xmlNanoFTPInit, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_FTP_ENABLED) */ +#if defined(LIBXML_FTP_ENABLED) + { (char *)"xmlNanoFTPProxy", libxml_xmlNanoFTPProxy, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_FTP_ENABLED) */ +#if defined(LIBXML_FTP_ENABLED) + { (char *)"xmlNanoFTPScanProxy", libxml_xmlNanoFTPScanProxy, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_FTP_ENABLED) */ +#if defined(LIBXML_HTTP_ENABLED) + { (char *)"xmlNanoHTTPCleanup", libxml_xmlNanoHTTPCleanup, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTTP_ENABLED) */ +#if defined(LIBXML_HTTP_ENABLED) + { (char *)"xmlNanoHTTPInit", libxml_xmlNanoHTTPInit, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTTP_ENABLED) */ +#if defined(LIBXML_HTTP_ENABLED) + { (char *)"xmlNanoHTTPScanProxy", libxml_xmlNanoHTTPScanProxy, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_HTTP_ENABLED) */ + { (char *)"xmlNewCDataBlock", libxml_xmlNewCDataBlock, METH_VARARGS, NULL }, +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlNewCatalog", libxml_xmlNewCatalog, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ + { (char *)"xmlNewCharRef", libxml_xmlNewCharRef, METH_VARARGS, NULL }, +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlNewChild", libxml_xmlNewChild, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ + { (char *)"xmlNewComment", libxml_xmlNewComment, METH_VARARGS, NULL }, + { (char *)"xmlNewDoc", libxml_xmlNewDoc, METH_VARARGS, NULL }, + { (char *)"xmlNewDocComment", libxml_xmlNewDocComment, METH_VARARGS, NULL }, +#if defined(LIBXML_TREE_ENABLED) + { (char *)"xmlNewDocFragment", libxml_xmlNewDocFragment, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) */ + { (char *)"xmlNewDocNode", libxml_xmlNewDocNode, METH_VARARGS, NULL }, + { (char *)"xmlNewDocNodeEatName", libxml_xmlNewDocNodeEatName, METH_VARARGS, NULL }, + { (char *)"xmlNewDocPI", libxml_xmlNewDocPI, METH_VARARGS, NULL }, + { (char *)"xmlNewDocProp", libxml_xmlNewDocProp, METH_VARARGS, NULL }, +#if defined(LIBXML_TREE_ENABLED) + { (char *)"xmlNewDocRawNode", libxml_xmlNewDocRawNode, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) */ + { (char *)"xmlNewDocText", libxml_xmlNewDocText, METH_VARARGS, NULL }, + { (char *)"xmlNewDocTextLen", libxml_xmlNewDocTextLen, METH_VARARGS, NULL }, + { (char *)"xmlNewDtd", libxml_xmlNewDtd, METH_VARARGS, NULL }, + { (char *)"xmlNewEntity", libxml_xmlNewEntity, METH_VARARGS, NULL }, +#if defined(LIBXML_LEGACY_ENABLED) + { (char *)"xmlNewGlobalNs", libxml_xmlNewGlobalNs, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_LEGACY_ENABLED) */ + { (char *)"xmlNewNode", libxml_xmlNewNode, METH_VARARGS, NULL }, + { (char *)"xmlNewNodeEatName", libxml_xmlNewNodeEatName, METH_VARARGS, NULL }, + { (char *)"xmlNewNs", libxml_xmlNewNs, METH_VARARGS, NULL }, + { (char *)"xmlNewNsProp", libxml_xmlNewNsProp, METH_VARARGS, NULL }, + { (char *)"xmlNewNsPropEatName", libxml_xmlNewNsPropEatName, METH_VARARGS, NULL }, + { (char *)"xmlNewPI", libxml_xmlNewPI, METH_VARARGS, NULL }, + { (char *)"xmlNewParserCtxt", libxml_xmlNewParserCtxt, METH_VARARGS, NULL }, +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlNewProp", libxml_xmlNewProp, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ + { (char *)"xmlNewReference", libxml_xmlNewReference, METH_VARARGS, NULL }, + { (char *)"xmlNewText", libxml_xmlNewText, METH_VARARGS, NULL }, +#if defined(LIBXML_TREE_ENABLED) + { (char *)"xmlNewTextChild", libxml_xmlNewTextChild, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) */ + { (char *)"xmlNewTextLen", libxml_xmlNewTextLen, METH_VARARGS, NULL }, +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlNewTextReader", libxml_xmlNewTextReader, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlNewTextReaderFilename", libxml_xmlNewTextReaderFilename, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) + { (char *)"xmlNewValidCtxt", libxml_xmlNewValidCtxt, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_VALID_ENABLED) */ + { (char *)"xmlNextChar", libxml_xmlNextChar, METH_VARARGS, NULL }, +#if defined(LIBXML_TREE_ENABLED) + { (char *)"xmlNextElementSibling", libxml_xmlNextElementSibling, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) */ + { (char *)"xmlNodeAddContent", libxml_xmlNodeAddContent, METH_VARARGS, NULL }, + { (char *)"xmlNodeAddContentLen", libxml_xmlNodeAddContentLen, METH_VARARGS, NULL }, +#if defined(LIBXML_OUTPUT_ENABLED) + { (char *)"xmlNodeDumpOutput", libxml_xmlNodeDumpOutput, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ + { (char *)"xmlNodeGetBase", libxml_xmlNodeGetBase, METH_VARARGS, NULL }, + { (char *)"xmlNodeGetContent", libxml_xmlNodeGetContent, METH_VARARGS, NULL }, + { (char *)"xmlNodeGetLang", libxml_xmlNodeGetLang, METH_VARARGS, NULL }, + { (char *)"xmlNodeGetNs", libxml_xmlNodeGetNs, METH_VARARGS, NULL }, + { (char *)"xmlNodeGetNsDefs", libxml_xmlNodeGetNsDefs, METH_VARARGS, NULL }, + { (char *)"xmlNodeGetSpacePreserve", libxml_xmlNodeGetSpacePreserve, METH_VARARGS, NULL }, + { (char *)"xmlNodeIsText", libxml_xmlNodeIsText, METH_VARARGS, NULL }, +#if defined(LIBXML_TREE_ENABLED) + { (char *)"xmlNodeListGetRawString", libxml_xmlNodeListGetRawString, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) */ + { (char *)"xmlNodeListGetString", libxml_xmlNodeListGetString, METH_VARARGS, NULL }, +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) + { (char *)"xmlNodeSetBase", libxml_xmlNodeSetBase, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) */ + { (char *)"xmlNodeSetContent", libxml_xmlNodeSetContent, METH_VARARGS, NULL }, +#if defined(LIBXML_TREE_ENABLED) + { (char *)"xmlNodeSetContentLen", libxml_xmlNodeSetContentLen, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) + { (char *)"xmlNodeSetLang", libxml_xmlNodeSetLang, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) + { (char *)"xmlNodeSetName", libxml_xmlNodeSetName, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) + { (char *)"xmlNodeSetSpacePreserve", libxml_xmlNodeSetSpacePreserve, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) */ + { (char *)"xmlNormalizeURIPath", libxml_xmlNormalizeURIPath, METH_VARARGS, NULL }, + { (char *)"xmlNormalizeWindowsPath", libxml_xmlNormalizeWindowsPath, METH_VARARGS, NULL }, +#if defined(LIBXML_OUTPUT_ENABLED) + { (char *)"xmlOutputBufferGetContent", libxml_xmlOutputBufferGetContent, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) + { (char *)"xmlOutputBufferWrite", libxml_xmlOutputBufferWrite, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) + { (char *)"xmlOutputBufferWriteString", libxml_xmlOutputBufferWriteString, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ + { (char *)"xmlParseAttValue", libxml_xmlParseAttValue, METH_VARARGS, NULL }, + { (char *)"xmlParseAttributeListDecl", libxml_xmlParseAttributeListDecl, METH_VARARGS, NULL }, + { (char *)"xmlParseCDSect", libxml_xmlParseCDSect, METH_VARARGS, NULL }, +#if defined(LIBXML_CATALOG_ENABLED) + { (char *)"xmlParseCatalogFile", libxml_xmlParseCatalogFile, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_CATALOG_ENABLED) */ + { (char *)"xmlParseCharData", libxml_xmlParseCharData, METH_VARARGS, NULL }, + { (char *)"xmlParseCharRef", libxml_xmlParseCharRef, METH_VARARGS, NULL }, +#if defined(LIBXML_PUSH_ENABLED) + { (char *)"xmlParseChunk", libxml_xmlParseChunk, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_PUSH_ENABLED) */ + { (char *)"xmlParseComment", libxml_xmlParseComment, METH_VARARGS, NULL }, + { (char *)"xmlParseContent", libxml_xmlParseContent, METH_VARARGS, NULL }, +#if defined(LIBXML_VALID_ENABLED) + { (char *)"xmlParseDTD", libxml_xmlParseDTD, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_SAX1_ENABLED) + { (char *)"xmlParseDoc", libxml_xmlParseDoc, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SAX1_ENABLED) */ + { (char *)"xmlParseDocTypeDecl", libxml_xmlParseDocTypeDecl, METH_VARARGS, NULL }, + { (char *)"xmlParseDocument", libxml_xmlParseDocument, METH_VARARGS, NULL }, + { (char *)"xmlParseElement", libxml_xmlParseElement, METH_VARARGS, NULL }, + { (char *)"xmlParseElementDecl", libxml_xmlParseElementDecl, METH_VARARGS, NULL }, + { (char *)"xmlParseEncName", libxml_xmlParseEncName, METH_VARARGS, NULL }, + { (char *)"xmlParseEncodingDecl", libxml_xmlParseEncodingDecl, METH_VARARGS, NULL }, +#if defined(LIBXML_SAX1_ENABLED) + { (char *)"xmlParseEndTag", libxml_xmlParseEndTag, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SAX1_ENABLED) */ +#if defined(LIBXML_SAX1_ENABLED) + { (char *)"xmlParseEntity", libxml_xmlParseEntity, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SAX1_ENABLED) */ + { (char *)"xmlParseEntityDecl", libxml_xmlParseEntityDecl, METH_VARARGS, NULL }, + { (char *)"xmlParseEntityRef", libxml_xmlParseEntityRef, METH_VARARGS, NULL }, + { (char *)"xmlParseExtParsedEnt", libxml_xmlParseExtParsedEnt, METH_VARARGS, NULL }, + { (char *)"xmlParseExternalSubset", libxml_xmlParseExternalSubset, METH_VARARGS, NULL }, +#if defined(LIBXML_SAX1_ENABLED) + { (char *)"xmlParseFile", libxml_xmlParseFile, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SAX1_ENABLED) */ + { (char *)"xmlParseMarkupDecl", libxml_xmlParseMarkupDecl, METH_VARARGS, NULL }, +#if defined(LIBXML_SAX1_ENABLED) + { (char *)"xmlParseMemory", libxml_xmlParseMemory, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SAX1_ENABLED) */ + { (char *)"xmlParseMisc", libxml_xmlParseMisc, METH_VARARGS, NULL }, + { (char *)"xmlParseName", libxml_xmlParseName, METH_VARARGS, NULL }, +#if defined(LIBXML_LEGACY_ENABLED) + { (char *)"xmlParseNamespace", libxml_xmlParseNamespace, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_LEGACY_ENABLED) */ + { (char *)"xmlParseNmtoken", libxml_xmlParseNmtoken, METH_VARARGS, NULL }, + { (char *)"xmlParseNotationDecl", libxml_xmlParseNotationDecl, METH_VARARGS, NULL }, + { (char *)"xmlParsePEReference", libxml_xmlParsePEReference, METH_VARARGS, NULL }, + { (char *)"xmlParsePI", libxml_xmlParsePI, METH_VARARGS, NULL }, + { (char *)"xmlParsePITarget", libxml_xmlParsePITarget, METH_VARARGS, NULL }, + { (char *)"xmlParsePubidLiteral", libxml_xmlParsePubidLiteral, METH_VARARGS, NULL }, +#if defined(LIBXML_LEGACY_ENABLED) + { (char *)"xmlParseQuotedString", libxml_xmlParseQuotedString, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_LEGACY_ENABLED) */ + { (char *)"xmlParseReference", libxml_xmlParseReference, METH_VARARGS, NULL }, + { (char *)"xmlParseSDDecl", libxml_xmlParseSDDecl, METH_VARARGS, NULL }, +#if defined(LIBXML_SAX1_ENABLED) + { (char *)"xmlParseStartTag", libxml_xmlParseStartTag, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SAX1_ENABLED) */ + { (char *)"xmlParseSystemLiteral", libxml_xmlParseSystemLiteral, METH_VARARGS, NULL }, + { (char *)"xmlParseTextDecl", libxml_xmlParseTextDecl, METH_VARARGS, NULL }, + { (char *)"xmlParseURI", libxml_xmlParseURI, METH_VARARGS, NULL }, + { (char *)"xmlParseURIRaw", libxml_xmlParseURIRaw, METH_VARARGS, NULL }, + { (char *)"xmlParseURIReference", libxml_xmlParseURIReference, METH_VARARGS, NULL }, + { (char *)"xmlParseVersionInfo", libxml_xmlParseVersionInfo, METH_VARARGS, NULL }, + { (char *)"xmlParseVersionNum", libxml_xmlParseVersionNum, METH_VARARGS, NULL }, + { (char *)"xmlParseXMLDecl", libxml_xmlParseXMLDecl, METH_VARARGS, NULL }, + { (char *)"xmlParserGetDirectory", libxml_xmlParserGetDirectory, METH_VARARGS, NULL }, + { (char *)"xmlParserGetDoc", libxml_xmlParserGetDoc, METH_VARARGS, NULL }, + { (char *)"xmlParserGetIsValid", libxml_xmlParserGetIsValid, METH_VARARGS, NULL }, + { (char *)"xmlParserGetWellFormed", libxml_xmlParserGetWellFormed, METH_VARARGS, NULL }, + { (char *)"xmlParserHandlePEReference", libxml_xmlParserHandlePEReference, METH_VARARGS, NULL }, +#if defined(LIBXML_LEGACY_ENABLED) + { (char *)"xmlParserHandleReference", libxml_xmlParserHandleReference, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_LEGACY_ENABLED) */ + { (char *)"xmlParserInputBufferGrow", libxml_xmlParserInputBufferGrow, METH_VARARGS, NULL }, + { (char *)"xmlParserInputBufferPush", libxml_xmlParserInputBufferPush, METH_VARARGS, NULL }, + { (char *)"xmlParserInputBufferRead", libxml_xmlParserInputBufferRead, METH_VARARGS, NULL }, + { (char *)"xmlParserSetLineNumbers", libxml_xmlParserSetLineNumbers, METH_VARARGS, NULL }, + { (char *)"xmlParserSetLoadSubset", libxml_xmlParserSetLoadSubset, METH_VARARGS, NULL }, + { (char *)"xmlParserSetPedantic", libxml_xmlParserSetPedantic, METH_VARARGS, NULL }, + { (char *)"xmlParserSetReplaceEntities", libxml_xmlParserSetReplaceEntities, METH_VARARGS, NULL }, + { (char *)"xmlParserSetValidate", libxml_xmlParserSetValidate, METH_VARARGS, NULL }, + { (char *)"xmlPathToURI", libxml_xmlPathToURI, METH_VARARGS, NULL }, + { (char *)"xmlPedanticParserDefault", libxml_xmlPedanticParserDefault, METH_VARARGS, NULL }, + { (char *)"xmlPopInput", libxml_xmlPopInput, METH_VARARGS, NULL }, + { (char *)"xmlPopInputCallbacks", libxml_xmlPopInputCallbacks, METH_VARARGS, NULL }, +#if defined(LIBXML_TREE_ENABLED) + { (char *)"xmlPreviousElementSibling", libxml_xmlPreviousElementSibling, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) */ + { (char *)"xmlPrintURI", libxml_xmlPrintURI, METH_VARARGS, NULL }, + { (char *)"xmlPythonCleanupParser", libxml_xmlPythonCleanupParser, METH_VARARGS, NULL }, + { (char *)"xmlReadDoc", libxml_xmlReadDoc, METH_VARARGS, NULL }, + { (char *)"xmlReadFd", libxml_xmlReadFd, METH_VARARGS, NULL }, + { (char *)"xmlReadFile", libxml_xmlReadFile, METH_VARARGS, NULL }, + { (char *)"xmlReadMemory", libxml_xmlReadMemory, METH_VARARGS, NULL }, +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlReaderForDoc", libxml_xmlReaderForDoc, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlReaderForFd", libxml_xmlReaderForFd, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlReaderForFile", libxml_xmlReaderForFile, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlReaderForMemory", libxml_xmlReaderForMemory, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlReaderNewDoc", libxml_xmlReaderNewDoc, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlReaderNewFd", libxml_xmlReaderNewFd, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlReaderNewFile", libxml_xmlReaderNewFile, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlReaderNewMemory", libxml_xmlReaderNewMemory, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlReaderNewWalker", libxml_xmlReaderNewWalker, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlReaderWalker", libxml_xmlReaderWalker, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) + { (char *)"xmlReconciliateNs", libxml_xmlReconciliateNs, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) */ +#if defined(LIBXML_SAX1_ENABLED) + { (char *)"xmlRecoverDoc", libxml_xmlRecoverDoc, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SAX1_ENABLED) */ +#if defined(LIBXML_SAX1_ENABLED) + { (char *)"xmlRecoverFile", libxml_xmlRecoverFile, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SAX1_ENABLED) */ +#if defined(LIBXML_SAX1_ENABLED) + { (char *)"xmlRecoverMemory", libxml_xmlRecoverMemory, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SAX1_ENABLED) */ +#if defined(LIBXML_REGEXP_ENABLED) + { (char *)"xmlRegFreeRegexp", libxml_xmlRegFreeRegexp, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_REGEXP_ENABLED) */ +#if defined(LIBXML_REGEXP_ENABLED) + { (char *)"xmlRegexpCompile", libxml_xmlRegexpCompile, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_REGEXP_ENABLED) */ +#if defined(LIBXML_REGEXP_ENABLED) + { (char *)"xmlRegexpExec", libxml_xmlRegexpExec, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_REGEXP_ENABLED) */ +#if defined(LIBXML_REGEXP_ENABLED) + { (char *)"xmlRegexpIsDeterminist", libxml_xmlRegexpIsDeterminist, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_REGEXP_ENABLED) */ +#if defined(LIBXML_REGEXP_ENABLED) + { (char *)"xmlRegexpPrint", libxml_xmlRegexpPrint, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_REGEXP_ENABLED) */ + { (char *)"xmlRegisterDefaultInputCallbacks", libxml_xmlRegisterDefaultInputCallbacks, METH_VARARGS, NULL }, +#if defined(LIBXML_OUTPUT_ENABLED) + { (char *)"xmlRegisterDefaultOutputCallbacks", libxml_xmlRegisterDefaultOutputCallbacks, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) && defined(LIBXML_HTTP_ENABLED) + { (char *)"xmlRegisterHTTPPostCallbacks", libxml_xmlRegisterHTTPPostCallbacks, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_OUTPUT_ENABLED) && defined(LIBXML_HTTP_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlRegisterXPathFunction", libxml_xmlRegisterXPathFunction, METH_VARARGS, NULL }, +#endif +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlRelaxNGCleanupTypes", libxml_xmlRelaxNGCleanupTypes, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) + { (char *)"xmlRelaxNGDump", libxml_xmlRelaxNGDump, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) + { (char *)"xmlRelaxNGDumpTree", libxml_xmlRelaxNGDumpTree, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlRelaxNGFree", libxml_xmlRelaxNGFree, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlRelaxNGFreeParserCtxt", libxml_xmlRelaxNGFreeParserCtxt, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlRelaxNGInitTypes", libxml_xmlRelaxNGInitTypes, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlRelaxNGNewDocParserCtxt", libxml_xmlRelaxNGNewDocParserCtxt, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlRelaxNGNewMemParserCtxt", libxml_xmlRelaxNGNewMemParserCtxt, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlRelaxNGNewParserCtxt", libxml_xmlRelaxNGNewParserCtxt, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlRelaxNGNewValidCtxt", libxml_xmlRelaxNGNewValidCtxt, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlRelaxNGParse", libxml_xmlRelaxNGParse, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlRelaxNGValidateDoc", libxml_xmlRelaxNGValidateDoc, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlRelaxNGValidateFullElement", libxml_xmlRelaxNGValidateFullElement, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlRelaxNGValidatePopElement", libxml_xmlRelaxNGValidatePopElement, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlRelaxNGValidatePushCData", libxml_xmlRelaxNGValidatePushCData, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlRelaxNGValidatePushElement", libxml_xmlRelaxNGValidatePushElement, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlRelaxParserSetFlag", libxml_xmlRelaxParserSetFlag, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ + { (char *)"xmlRemoveID", libxml_xmlRemoveID, METH_VARARGS, NULL }, + { (char *)"xmlRemoveProp", libxml_xmlRemoveProp, METH_VARARGS, NULL }, + { (char *)"xmlRemoveRef", libxml_xmlRemoveRef, METH_VARARGS, NULL }, +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) + { (char *)"xmlReplaceNode", libxml_xmlReplaceNode, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */ + { (char *)"xmlResetError", libxml_xmlResetError, METH_VARARGS, NULL }, + { (char *)"xmlResetLastError", libxml_xmlResetLastError, METH_VARARGS, NULL }, +#if defined(LIBXML_SAX1_ENABLED) + { (char *)"xmlSAXDefaultVersion", libxml_xmlSAXDefaultVersion, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SAX1_ENABLED) */ + { (char *)"xmlSAXParseFile", libxml_xmlSAXParseFile, METH_VARARGS, NULL }, +#if defined(LIBXML_OUTPUT_ENABLED) + { (char *)"xmlSaveFile", libxml_xmlSaveFile, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) + { (char *)"xmlSaveFileEnc", libxml_xmlSaveFileEnc, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) + { (char *)"xmlSaveFormatFile", libxml_xmlSaveFormatFile, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) + { (char *)"xmlSaveFormatFileEnc", libxml_xmlSaveFormatFileEnc, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ + { (char *)"xmlSaveUri", libxml_xmlSaveUri, METH_VARARGS, NULL }, +#if defined(LIBXML_LEGACY_ENABLED) + { (char *)"xmlScanName", libxml_xmlScanName, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlSchemaCleanupTypes", libxml_xmlSchemaCleanupTypes, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlSchemaCollapseString", libxml_xmlSchemaCollapseString, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) + { (char *)"xmlSchemaDump", libxml_xmlSchemaDump, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlSchemaFree", libxml_xmlSchemaFree, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlSchemaFreeParserCtxt", libxml_xmlSchemaFreeParserCtxt, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlSchemaInitTypes", libxml_xmlSchemaInitTypes, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlSchemaIsValid", libxml_xmlSchemaIsValid, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlSchemaNewDocParserCtxt", libxml_xmlSchemaNewDocParserCtxt, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlSchemaNewMemParserCtxt", libxml_xmlSchemaNewMemParserCtxt, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlSchemaNewParserCtxt", libxml_xmlSchemaNewParserCtxt, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlSchemaNewValidCtxt", libxml_xmlSchemaNewValidCtxt, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlSchemaParse", libxml_xmlSchemaParse, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlSchemaSetValidOptions", libxml_xmlSchemaSetValidOptions, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlSchemaValidCtxtGetOptions", libxml_xmlSchemaValidCtxtGetOptions, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlSchemaValidCtxtGetParserCtxt", libxml_xmlSchemaValidCtxtGetParserCtxt, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlSchemaValidateDoc", libxml_xmlSchemaValidateDoc, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlSchemaValidateFile", libxml_xmlSchemaValidateFile, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlSchemaValidateOneElement", libxml_xmlSchemaValidateOneElement, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlSchemaValidateSetFilename", libxml_xmlSchemaValidateSetFilename, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlSchemaWhiteSpaceReplace", libxml_xmlSchemaWhiteSpaceReplace, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ + { (char *)"xmlSearchNs", libxml_xmlSearchNs, METH_VARARGS, NULL }, + { (char *)"xmlSearchNsByHref", libxml_xmlSearchNsByHref, METH_VARARGS, NULL }, + { (char *)"xmlSetCompressMode", libxml_xmlSetCompressMode, METH_VARARGS, NULL }, + { (char *)"xmlSetDocCompressMode", libxml_xmlSetDocCompressMode, METH_VARARGS, NULL }, + { (char *)"xmlSetEntityLoader", libxml_xmlSetEntityLoader, METH_VARARGS, NULL }, + { (char *)"xmlSetListDoc", libxml_xmlSetListDoc, METH_VARARGS, NULL }, + { (char *)"xmlSetNs", libxml_xmlSetNs, METH_VARARGS, NULL }, +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) + { (char *)"xmlSetNsProp", libxml_xmlSetNsProp, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) + { (char *)"xmlSetProp", libxml_xmlSetProp, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */ + { (char *)"xmlSetTreeDoc", libxml_xmlSetTreeDoc, METH_VARARGS, NULL }, +#if defined(LIBXML_SAX1_ENABLED) + { (char *)"xmlSetupParserForBuffer", libxml_xmlSetupParserForBuffer, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_SAX1_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) + { (char *)"xmlShellPrintNode", libxml_xmlShellPrintNode, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlShellPrintXPathError", libxml_xmlShellPrintXPathError, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) */ + { (char *)"xmlSkipBlankChars", libxml_xmlSkipBlankChars, METH_VARARGS, NULL }, + { (char *)"xmlStopParser", libxml_xmlStopParser, METH_VARARGS, NULL }, + { (char *)"xmlStrEqual", libxml_xmlStrEqual, METH_VARARGS, NULL }, + { (char *)"xmlStrQEqual", libxml_xmlStrQEqual, METH_VARARGS, NULL }, + { (char *)"xmlStrcasecmp", libxml_xmlStrcasecmp, METH_VARARGS, NULL }, + { (char *)"xmlStrcasestr", libxml_xmlStrcasestr, METH_VARARGS, NULL }, + { (char *)"xmlStrcat", libxml_xmlStrcat, METH_VARARGS, NULL }, + { (char *)"xmlStrchr", libxml_xmlStrchr, METH_VARARGS, NULL }, + { (char *)"xmlStrcmp", libxml_xmlStrcmp, METH_VARARGS, NULL }, + { (char *)"xmlStrdup", libxml_xmlStrdup, METH_VARARGS, NULL }, + { (char *)"xmlStringDecodeEntities", libxml_xmlStringDecodeEntities, METH_VARARGS, NULL }, + { (char *)"xmlStringGetNodeList", libxml_xmlStringGetNodeList, METH_VARARGS, NULL }, + { (char *)"xmlStringLenDecodeEntities", libxml_xmlStringLenDecodeEntities, METH_VARARGS, NULL }, + { (char *)"xmlStringLenGetNodeList", libxml_xmlStringLenGetNodeList, METH_VARARGS, NULL }, + { (char *)"xmlStrlen", libxml_xmlStrlen, METH_VARARGS, NULL }, + { (char *)"xmlStrncasecmp", libxml_xmlStrncasecmp, METH_VARARGS, NULL }, + { (char *)"xmlStrncat", libxml_xmlStrncat, METH_VARARGS, NULL }, + { (char *)"xmlStrncatNew", libxml_xmlStrncatNew, METH_VARARGS, NULL }, + { (char *)"xmlStrncmp", libxml_xmlStrncmp, METH_VARARGS, NULL }, + { (char *)"xmlStrndup", libxml_xmlStrndup, METH_VARARGS, NULL }, + { (char *)"xmlStrstr", libxml_xmlStrstr, METH_VARARGS, NULL }, + { (char *)"xmlStrsub", libxml_xmlStrsub, METH_VARARGS, NULL }, + { (char *)"xmlSubstituteEntitiesDefault", libxml_xmlSubstituteEntitiesDefault, METH_VARARGS, NULL }, + { (char *)"xmlTextConcat", libxml_xmlTextConcat, METH_VARARGS, NULL }, + { (char *)"xmlTextMerge", libxml_xmlTextMerge, METH_VARARGS, NULL }, +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderAttributeCount", libxml_xmlTextReaderAttributeCount, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderByteConsumed", libxml_xmlTextReaderByteConsumed, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderClose", libxml_xmlTextReaderClose, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderConstBaseUri", libxml_xmlTextReaderConstBaseUri, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderConstEncoding", libxml_xmlTextReaderConstEncoding, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderConstLocalName", libxml_xmlTextReaderConstLocalName, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderConstName", libxml_xmlTextReaderConstName, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderConstNamespaceUri", libxml_xmlTextReaderConstNamespaceUri, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderConstPrefix", libxml_xmlTextReaderConstPrefix, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderConstString", libxml_xmlTextReaderConstString, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderConstValue", libxml_xmlTextReaderConstValue, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderConstXmlLang", libxml_xmlTextReaderConstXmlLang, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderConstXmlVersion", libxml_xmlTextReaderConstXmlVersion, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderCurrentDoc", libxml_xmlTextReaderCurrentDoc, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderCurrentNode", libxml_xmlTextReaderCurrentNode, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderDepth", libxml_xmlTextReaderDepth, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderExpand", libxml_xmlTextReaderExpand, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderGetAttribute", libxml_xmlTextReaderGetAttribute, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderGetAttributeNo", libxml_xmlTextReaderGetAttributeNo, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderGetAttributeNs", libxml_xmlTextReaderGetAttributeNs, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderGetParserColumnNumber", libxml_xmlTextReaderGetParserColumnNumber, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderGetParserLineNumber", libxml_xmlTextReaderGetParserLineNumber, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderGetParserProp", libxml_xmlTextReaderGetParserProp, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderGetRemainder", libxml_xmlTextReaderGetRemainder, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderHasAttributes", libxml_xmlTextReaderHasAttributes, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderHasValue", libxml_xmlTextReaderHasValue, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderIsDefault", libxml_xmlTextReaderIsDefault, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderIsEmptyElement", libxml_xmlTextReaderIsEmptyElement, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderIsNamespaceDecl", libxml_xmlTextReaderIsNamespaceDecl, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderIsValid", libxml_xmlTextReaderIsValid, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderLocatorBaseURI", libxml_xmlTextReaderLocatorBaseURI, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderLocatorLineNumber", libxml_xmlTextReaderLocatorLineNumber, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderLookupNamespace", libxml_xmlTextReaderLookupNamespace, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderMoveToAttribute", libxml_xmlTextReaderMoveToAttribute, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderMoveToAttributeNo", libxml_xmlTextReaderMoveToAttributeNo, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderMoveToAttributeNs", libxml_xmlTextReaderMoveToAttributeNs, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderMoveToElement", libxml_xmlTextReaderMoveToElement, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderMoveToFirstAttribute", libxml_xmlTextReaderMoveToFirstAttribute, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderMoveToNextAttribute", libxml_xmlTextReaderMoveToNextAttribute, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderNext", libxml_xmlTextReaderNext, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderNextSibling", libxml_xmlTextReaderNextSibling, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderNodeType", libxml_xmlTextReaderNodeType, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderNormalization", libxml_xmlTextReaderNormalization, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderPreserve", libxml_xmlTextReaderPreserve, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderQuoteChar", libxml_xmlTextReaderQuoteChar, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderRead", libxml_xmlTextReaderRead, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderReadAttributeValue", libxml_xmlTextReaderReadAttributeValue, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_WRITER_ENABLED) + { (char *)"xmlTextReaderReadInnerXml", libxml_xmlTextReaderReadInnerXml, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_WRITER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_WRITER_ENABLED) + { (char *)"xmlTextReaderReadOuterXml", libxml_xmlTextReaderReadOuterXml, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_WRITER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderReadState", libxml_xmlTextReaderReadState, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderReadString", libxml_xmlTextReaderReadString, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlTextReaderRelaxNGSetSchema", libxml_xmlTextReaderRelaxNGSetSchema, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlTextReaderRelaxNGValidate", libxml_xmlTextReaderRelaxNGValidate, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlTextReaderRelaxNGValidateCtxt", libxml_xmlTextReaderRelaxNGValidateCtxt, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlTextReaderSchemaValidate", libxml_xmlTextReaderSchemaValidate, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlTextReaderSchemaValidateCtxt", libxml_xmlTextReaderSchemaValidateCtxt, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderSetParserProp", libxml_xmlTextReaderSetParserProp, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlTextReaderSetSchema", libxml_xmlTextReaderSetSchema, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderSetup", libxml_xmlTextReaderSetup, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) + { (char *)"xmlTextReaderStandalone", libxml_xmlTextReaderStandalone, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_READER_ENABLED) */ + { (char *)"xmlThrDefDefaultBufferSize", libxml_xmlThrDefDefaultBufferSize, METH_VARARGS, NULL }, + { (char *)"xmlThrDefDoValidityCheckingDefaultValue", libxml_xmlThrDefDoValidityCheckingDefaultValue, METH_VARARGS, NULL }, + { (char *)"xmlThrDefGetWarningsDefaultValue", libxml_xmlThrDefGetWarningsDefaultValue, METH_VARARGS, NULL }, + { (char *)"xmlThrDefIndentTreeOutput", libxml_xmlThrDefIndentTreeOutput, METH_VARARGS, NULL }, + { (char *)"xmlThrDefKeepBlanksDefaultValue", libxml_xmlThrDefKeepBlanksDefaultValue, METH_VARARGS, NULL }, + { (char *)"xmlThrDefLineNumbersDefaultValue", libxml_xmlThrDefLineNumbersDefaultValue, METH_VARARGS, NULL }, + { (char *)"xmlThrDefLoadExtDtdDefaultValue", libxml_xmlThrDefLoadExtDtdDefaultValue, METH_VARARGS, NULL }, + { (char *)"xmlThrDefParserDebugEntities", libxml_xmlThrDefParserDebugEntities, METH_VARARGS, NULL }, + { (char *)"xmlThrDefPedanticParserDefaultValue", libxml_xmlThrDefPedanticParserDefaultValue, METH_VARARGS, NULL }, + { (char *)"xmlThrDefSaveNoEmptyTags", libxml_xmlThrDefSaveNoEmptyTags, METH_VARARGS, NULL }, + { (char *)"xmlThrDefSubstituteEntitiesDefaultValue", libxml_xmlThrDefSubstituteEntitiesDefaultValue, METH_VARARGS, NULL }, + { (char *)"xmlThrDefTreeIndentString", libxml_xmlThrDefTreeIndentString, METH_VARARGS, NULL }, +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsAegeanNumbers", libxml_xmlUCSIsAegeanNumbers, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsAlphabeticPresentationForms", libxml_xmlUCSIsAlphabeticPresentationForms, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsArabic", libxml_xmlUCSIsArabic, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsArabicPresentationFormsA", libxml_xmlUCSIsArabicPresentationFormsA, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsArabicPresentationFormsB", libxml_xmlUCSIsArabicPresentationFormsB, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsArmenian", libxml_xmlUCSIsArmenian, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsArrows", libxml_xmlUCSIsArrows, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsBasicLatin", libxml_xmlUCSIsBasicLatin, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsBengali", libxml_xmlUCSIsBengali, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsBlock", libxml_xmlUCSIsBlock, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsBlockElements", libxml_xmlUCSIsBlockElements, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsBopomofo", libxml_xmlUCSIsBopomofo, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsBopomofoExtended", libxml_xmlUCSIsBopomofoExtended, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsBoxDrawing", libxml_xmlUCSIsBoxDrawing, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsBraillePatterns", libxml_xmlUCSIsBraillePatterns, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsBuhid", libxml_xmlUCSIsBuhid, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsByzantineMusicalSymbols", libxml_xmlUCSIsByzantineMusicalSymbols, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCJKCompatibility", libxml_xmlUCSIsCJKCompatibility, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCJKCompatibilityForms", libxml_xmlUCSIsCJKCompatibilityForms, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCJKCompatibilityIdeographs", libxml_xmlUCSIsCJKCompatibilityIdeographs, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCJKCompatibilityIdeographsSupplement", libxml_xmlUCSIsCJKCompatibilityIdeographsSupplement, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCJKRadicalsSupplement", libxml_xmlUCSIsCJKRadicalsSupplement, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCJKSymbolsandPunctuation", libxml_xmlUCSIsCJKSymbolsandPunctuation, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCJKUnifiedIdeographs", libxml_xmlUCSIsCJKUnifiedIdeographs, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCJKUnifiedIdeographsExtensionA", libxml_xmlUCSIsCJKUnifiedIdeographsExtensionA, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCJKUnifiedIdeographsExtensionB", libxml_xmlUCSIsCJKUnifiedIdeographsExtensionB, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCat", libxml_xmlUCSIsCat, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatC", libxml_xmlUCSIsCatC, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatCc", libxml_xmlUCSIsCatCc, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatCf", libxml_xmlUCSIsCatCf, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatCo", libxml_xmlUCSIsCatCo, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatCs", libxml_xmlUCSIsCatCs, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatL", libxml_xmlUCSIsCatL, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatLl", libxml_xmlUCSIsCatLl, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatLm", libxml_xmlUCSIsCatLm, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatLo", libxml_xmlUCSIsCatLo, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatLt", libxml_xmlUCSIsCatLt, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatLu", libxml_xmlUCSIsCatLu, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatM", libxml_xmlUCSIsCatM, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatMc", libxml_xmlUCSIsCatMc, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatMe", libxml_xmlUCSIsCatMe, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatMn", libxml_xmlUCSIsCatMn, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatN", libxml_xmlUCSIsCatN, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatNd", libxml_xmlUCSIsCatNd, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatNl", libxml_xmlUCSIsCatNl, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatNo", libxml_xmlUCSIsCatNo, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatP", libxml_xmlUCSIsCatP, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatPc", libxml_xmlUCSIsCatPc, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatPd", libxml_xmlUCSIsCatPd, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatPe", libxml_xmlUCSIsCatPe, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatPf", libxml_xmlUCSIsCatPf, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatPi", libxml_xmlUCSIsCatPi, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatPo", libxml_xmlUCSIsCatPo, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatPs", libxml_xmlUCSIsCatPs, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatS", libxml_xmlUCSIsCatS, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatSc", libxml_xmlUCSIsCatSc, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatSk", libxml_xmlUCSIsCatSk, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatSm", libxml_xmlUCSIsCatSm, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatSo", libxml_xmlUCSIsCatSo, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatZ", libxml_xmlUCSIsCatZ, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatZl", libxml_xmlUCSIsCatZl, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatZp", libxml_xmlUCSIsCatZp, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCatZs", libxml_xmlUCSIsCatZs, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCherokee", libxml_xmlUCSIsCherokee, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCombiningDiacriticalMarks", libxml_xmlUCSIsCombiningDiacriticalMarks, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCombiningDiacriticalMarksforSymbols", libxml_xmlUCSIsCombiningDiacriticalMarksforSymbols, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCombiningHalfMarks", libxml_xmlUCSIsCombiningHalfMarks, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCombiningMarksforSymbols", libxml_xmlUCSIsCombiningMarksforSymbols, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsControlPictures", libxml_xmlUCSIsControlPictures, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCurrencySymbols", libxml_xmlUCSIsCurrencySymbols, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCypriotSyllabary", libxml_xmlUCSIsCypriotSyllabary, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCyrillic", libxml_xmlUCSIsCyrillic, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsCyrillicSupplement", libxml_xmlUCSIsCyrillicSupplement, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsDeseret", libxml_xmlUCSIsDeseret, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsDevanagari", libxml_xmlUCSIsDevanagari, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsDingbats", libxml_xmlUCSIsDingbats, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsEnclosedAlphanumerics", libxml_xmlUCSIsEnclosedAlphanumerics, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsEnclosedCJKLettersandMonths", libxml_xmlUCSIsEnclosedCJKLettersandMonths, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsEthiopic", libxml_xmlUCSIsEthiopic, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsGeneralPunctuation", libxml_xmlUCSIsGeneralPunctuation, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsGeometricShapes", libxml_xmlUCSIsGeometricShapes, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsGeorgian", libxml_xmlUCSIsGeorgian, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsGothic", libxml_xmlUCSIsGothic, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsGreek", libxml_xmlUCSIsGreek, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsGreekExtended", libxml_xmlUCSIsGreekExtended, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsGreekandCoptic", libxml_xmlUCSIsGreekandCoptic, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsGujarati", libxml_xmlUCSIsGujarati, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsGurmukhi", libxml_xmlUCSIsGurmukhi, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsHalfwidthandFullwidthForms", libxml_xmlUCSIsHalfwidthandFullwidthForms, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsHangulCompatibilityJamo", libxml_xmlUCSIsHangulCompatibilityJamo, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsHangulJamo", libxml_xmlUCSIsHangulJamo, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsHangulSyllables", libxml_xmlUCSIsHangulSyllables, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsHanunoo", libxml_xmlUCSIsHanunoo, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsHebrew", libxml_xmlUCSIsHebrew, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsHighPrivateUseSurrogates", libxml_xmlUCSIsHighPrivateUseSurrogates, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsHighSurrogates", libxml_xmlUCSIsHighSurrogates, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsHiragana", libxml_xmlUCSIsHiragana, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsIPAExtensions", libxml_xmlUCSIsIPAExtensions, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsIdeographicDescriptionCharacters", libxml_xmlUCSIsIdeographicDescriptionCharacters, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsKanbun", libxml_xmlUCSIsKanbun, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsKangxiRadicals", libxml_xmlUCSIsKangxiRadicals, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsKannada", libxml_xmlUCSIsKannada, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsKatakana", libxml_xmlUCSIsKatakana, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsKatakanaPhoneticExtensions", libxml_xmlUCSIsKatakanaPhoneticExtensions, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsKhmer", libxml_xmlUCSIsKhmer, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsKhmerSymbols", libxml_xmlUCSIsKhmerSymbols, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsLao", libxml_xmlUCSIsLao, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsLatin1Supplement", libxml_xmlUCSIsLatin1Supplement, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsLatinExtendedA", libxml_xmlUCSIsLatinExtendedA, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsLatinExtendedAdditional", libxml_xmlUCSIsLatinExtendedAdditional, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsLatinExtendedB", libxml_xmlUCSIsLatinExtendedB, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsLetterlikeSymbols", libxml_xmlUCSIsLetterlikeSymbols, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsLimbu", libxml_xmlUCSIsLimbu, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsLinearBIdeograms", libxml_xmlUCSIsLinearBIdeograms, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsLinearBSyllabary", libxml_xmlUCSIsLinearBSyllabary, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsLowSurrogates", libxml_xmlUCSIsLowSurrogates, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsMalayalam", libxml_xmlUCSIsMalayalam, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsMathematicalAlphanumericSymbols", libxml_xmlUCSIsMathematicalAlphanumericSymbols, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsMathematicalOperators", libxml_xmlUCSIsMathematicalOperators, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsMiscellaneousMathematicalSymbolsA", libxml_xmlUCSIsMiscellaneousMathematicalSymbolsA, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsMiscellaneousMathematicalSymbolsB", libxml_xmlUCSIsMiscellaneousMathematicalSymbolsB, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsMiscellaneousSymbols", libxml_xmlUCSIsMiscellaneousSymbols, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsMiscellaneousSymbolsandArrows", libxml_xmlUCSIsMiscellaneousSymbolsandArrows, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsMiscellaneousTechnical", libxml_xmlUCSIsMiscellaneousTechnical, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsMongolian", libxml_xmlUCSIsMongolian, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsMusicalSymbols", libxml_xmlUCSIsMusicalSymbols, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsMyanmar", libxml_xmlUCSIsMyanmar, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsNumberForms", libxml_xmlUCSIsNumberForms, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsOgham", libxml_xmlUCSIsOgham, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsOldItalic", libxml_xmlUCSIsOldItalic, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsOpticalCharacterRecognition", libxml_xmlUCSIsOpticalCharacterRecognition, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsOriya", libxml_xmlUCSIsOriya, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsOsmanya", libxml_xmlUCSIsOsmanya, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsPhoneticExtensions", libxml_xmlUCSIsPhoneticExtensions, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsPrivateUse", libxml_xmlUCSIsPrivateUse, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsPrivateUseArea", libxml_xmlUCSIsPrivateUseArea, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsRunic", libxml_xmlUCSIsRunic, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsShavian", libxml_xmlUCSIsShavian, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsSinhala", libxml_xmlUCSIsSinhala, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsSmallFormVariants", libxml_xmlUCSIsSmallFormVariants, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsSpacingModifierLetters", libxml_xmlUCSIsSpacingModifierLetters, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsSpecials", libxml_xmlUCSIsSpecials, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsSuperscriptsandSubscripts", libxml_xmlUCSIsSuperscriptsandSubscripts, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsSupplementalArrowsA", libxml_xmlUCSIsSupplementalArrowsA, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsSupplementalArrowsB", libxml_xmlUCSIsSupplementalArrowsB, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsSupplementalMathematicalOperators", libxml_xmlUCSIsSupplementalMathematicalOperators, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsSupplementaryPrivateUseAreaA", libxml_xmlUCSIsSupplementaryPrivateUseAreaA, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsSupplementaryPrivateUseAreaB", libxml_xmlUCSIsSupplementaryPrivateUseAreaB, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsSyriac", libxml_xmlUCSIsSyriac, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsTagalog", libxml_xmlUCSIsTagalog, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsTagbanwa", libxml_xmlUCSIsTagbanwa, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsTags", libxml_xmlUCSIsTags, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsTaiLe", libxml_xmlUCSIsTaiLe, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsTaiXuanJingSymbols", libxml_xmlUCSIsTaiXuanJingSymbols, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsTamil", libxml_xmlUCSIsTamil, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsTelugu", libxml_xmlUCSIsTelugu, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsThaana", libxml_xmlUCSIsThaana, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsThai", libxml_xmlUCSIsThai, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsTibetan", libxml_xmlUCSIsTibetan, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsUgaritic", libxml_xmlUCSIsUgaritic, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsUnifiedCanadianAboriginalSyllabics", libxml_xmlUCSIsUnifiedCanadianAboriginalSyllabics, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsVariationSelectors", libxml_xmlUCSIsVariationSelectors, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsVariationSelectorsSupplement", libxml_xmlUCSIsVariationSelectorsSupplement, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsYiRadicals", libxml_xmlUCSIsYiRadicals, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsYiSyllables", libxml_xmlUCSIsYiSyllables, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) + { (char *)"xmlUCSIsYijingHexagramSymbols", libxml_xmlUCSIsYijingHexagramSymbols, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_UNICODE_ENABLED) */ + { (char *)"xmlURIEscape", libxml_xmlURIEscape, METH_VARARGS, NULL }, + { (char *)"xmlURIEscapeStr", libxml_xmlURIEscapeStr, METH_VARARGS, NULL }, + { (char *)"xmlURIGetAuthority", libxml_xmlURIGetAuthority, METH_VARARGS, NULL }, + { (char *)"xmlURIGetFragment", libxml_xmlURIGetFragment, METH_VARARGS, NULL }, + { (char *)"xmlURIGetOpaque", libxml_xmlURIGetOpaque, METH_VARARGS, NULL }, + { (char *)"xmlURIGetPath", libxml_xmlURIGetPath, METH_VARARGS, NULL }, + { (char *)"xmlURIGetPort", libxml_xmlURIGetPort, METH_VARARGS, NULL }, + { (char *)"xmlURIGetQuery", libxml_xmlURIGetQuery, METH_VARARGS, NULL }, + { (char *)"xmlURIGetQueryRaw", libxml_xmlURIGetQueryRaw, METH_VARARGS, NULL }, + { (char *)"xmlURIGetScheme", libxml_xmlURIGetScheme, METH_VARARGS, NULL }, + { (char *)"xmlURIGetServer", libxml_xmlURIGetServer, METH_VARARGS, NULL }, + { (char *)"xmlURIGetUser", libxml_xmlURIGetUser, METH_VARARGS, NULL }, + { (char *)"xmlURISetAuthority", libxml_xmlURISetAuthority, METH_VARARGS, NULL }, + { (char *)"xmlURISetFragment", libxml_xmlURISetFragment, METH_VARARGS, NULL }, + { (char *)"xmlURISetOpaque", libxml_xmlURISetOpaque, METH_VARARGS, NULL }, + { (char *)"xmlURISetPath", libxml_xmlURISetPath, METH_VARARGS, NULL }, + { (char *)"xmlURISetPort", libxml_xmlURISetPort, METH_VARARGS, NULL }, + { (char *)"xmlURISetQuery", libxml_xmlURISetQuery, METH_VARARGS, NULL }, + { (char *)"xmlURISetQueryRaw", libxml_xmlURISetQueryRaw, METH_VARARGS, NULL }, + { (char *)"xmlURISetScheme", libxml_xmlURISetScheme, METH_VARARGS, NULL }, + { (char *)"xmlURISetServer", libxml_xmlURISetServer, METH_VARARGS, NULL }, + { (char *)"xmlURISetUser", libxml_xmlURISetUser, METH_VARARGS, NULL }, + { (char *)"xmlURIUnescapeString", libxml_xmlURIUnescapeString, METH_VARARGS, NULL }, + { (char *)"xmlUTF8Charcmp", libxml_xmlUTF8Charcmp, METH_VARARGS, NULL }, + { (char *)"xmlUTF8Size", libxml_xmlUTF8Size, METH_VARARGS, NULL }, + { (char *)"xmlUTF8Strlen", libxml_xmlUTF8Strlen, METH_VARARGS, NULL }, + { (char *)"xmlUTF8Strloc", libxml_xmlUTF8Strloc, METH_VARARGS, NULL }, + { (char *)"xmlUTF8Strndup", libxml_xmlUTF8Strndup, METH_VARARGS, NULL }, + { (char *)"xmlUTF8Strpos", libxml_xmlUTF8Strpos, METH_VARARGS, NULL }, + { (char *)"xmlUTF8Strsize", libxml_xmlUTF8Strsize, METH_VARARGS, NULL }, + { (char *)"xmlUTF8Strsub", libxml_xmlUTF8Strsub, METH_VARARGS, NULL }, + { (char *)"xmlUnlinkNode", libxml_xmlUnlinkNode, METH_VARARGS, NULL }, +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlUnsetNsProp", libxml_xmlUnsetNsProp, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlUnsetProp", libxml_xmlUnsetProp, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) + { (char *)"xmlValidCtxtNormalizeAttributeValue", libxml_xmlValidCtxtNormalizeAttributeValue, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) + { (char *)"xmlValidNormalizeAttributeValue", libxml_xmlValidNormalizeAttributeValue, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) + { (char *)"xmlValidateDocument", libxml_xmlValidateDocument, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) + { (char *)"xmlValidateDocumentFinal", libxml_xmlValidateDocumentFinal, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) + { (char *)"xmlValidateDtd", libxml_xmlValidateDtd, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) + { (char *)"xmlValidateDtdFinal", libxml_xmlValidateDtdFinal, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) + { (char *)"xmlValidateElement", libxml_xmlValidateElement, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) + { (char *)"xmlValidateNCName", libxml_xmlValidateNCName, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlValidateNMToken", libxml_xmlValidateNMToken, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlValidateName", libxml_xmlValidateName, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) + { (char *)"xmlValidateNameValue", libxml_xmlValidateNameValue, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) + { (char *)"xmlValidateNamesValue", libxml_xmlValidateNamesValue, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) + { (char *)"xmlValidateNmtokenValue", libxml_xmlValidateNmtokenValue, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) + { (char *)"xmlValidateNmtokensValue", libxml_xmlValidateNmtokensValue, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlValidateNotationUse", libxml_xmlValidateNotationUse, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) + { (char *)"xmlValidateOneAttribute", libxml_xmlValidateOneAttribute, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) + { (char *)"xmlValidateOneElement", libxml_xmlValidateOneElement, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) + { (char *)"xmlValidateOneNamespace", libxml_xmlValidateOneNamespace, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) + { (char *)"xmlValidatePopElement", libxml_xmlValidatePopElement, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) + { (char *)"xmlValidatePushCData", libxml_xmlValidatePushCData, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) + { (char *)"xmlValidatePushElement", libxml_xmlValidatePushElement, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlValidateQName", libxml_xmlValidateQName, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) + { (char *)"xmlValidateRoot", libxml_xmlValidateRoot, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_XINCLUDE_ENABLED) + { (char *)"xmlXIncludeProcess", libxml_xmlXIncludeProcess, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XINCLUDE_ENABLED) */ +#if defined(LIBXML_XINCLUDE_ENABLED) + { (char *)"xmlXIncludeProcessFlags", libxml_xmlXIncludeProcessFlags, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XINCLUDE_ENABLED) */ +#if defined(LIBXML_XINCLUDE_ENABLED) + { (char *)"xmlXIncludeProcessTree", libxml_xmlXIncludeProcessTree, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XINCLUDE_ENABLED) */ +#if defined(LIBXML_XINCLUDE_ENABLED) + { (char *)"xmlXIncludeProcessTreeFlags", libxml_xmlXIncludeProcessTreeFlags, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XINCLUDE_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathAddValues", libxml_xmlXPathAddValues, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathBooleanFunction", libxml_xmlXPathBooleanFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathCastBooleanToNumber", libxml_xmlXPathCastBooleanToNumber, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathCastBooleanToString", libxml_xmlXPathCastBooleanToString, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathCastNodeToNumber", libxml_xmlXPathCastNodeToNumber, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathCastNodeToString", libxml_xmlXPathCastNodeToString, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathCastNumberToBoolean", libxml_xmlXPathCastNumberToBoolean, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathCastNumberToString", libxml_xmlXPathCastNumberToString, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathCastStringToBoolean", libxml_xmlXPathCastStringToBoolean, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathCastStringToNumber", libxml_xmlXPathCastStringToNumber, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathCeilingFunction", libxml_xmlXPathCeilingFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathCmpNodes", libxml_xmlXPathCmpNodes, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathCompareValues", libxml_xmlXPathCompareValues, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathConcatFunction", libxml_xmlXPathConcatFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathContainsFunction", libxml_xmlXPathContainsFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathContextSetCache", libxml_xmlXPathContextSetCache, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathCountFunction", libxml_xmlXPathCountFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathDivValues", libxml_xmlXPathDivValues, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathEqualValues", libxml_xmlXPathEqualValues, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathErr", libxml_xmlXPathErr, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathEval", libxml_xmlXPathEval, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathEvalExpr", libxml_xmlXPathEvalExpr, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathEvalExpression", libxml_xmlXPathEvalExpression, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathFalseFunction", libxml_xmlXPathFalseFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathFloorFunction", libxml_xmlXPathFloorFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathFreeContext", libxml_xmlXPathFreeContext, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathFreeParserContext", libxml_xmlXPathFreeParserContext, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathGetContextDoc", libxml_xmlXPathGetContextDoc, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathGetContextNode", libxml_xmlXPathGetContextNode, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathGetContextPosition", libxml_xmlXPathGetContextPosition, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathGetContextSize", libxml_xmlXPathGetContextSize, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathGetFunction", libxml_xmlXPathGetFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathGetFunctionURI", libxml_xmlXPathGetFunctionURI, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathIdFunction", libxml_xmlXPathIdFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlXPathInit", libxml_xmlXPathInit, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlXPathIsInf", libxml_xmlXPathIsInf, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) + { (char *)"xmlXPathIsNaN", libxml_xmlXPathIsNaN, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathIsNodeType", libxml_xmlXPathIsNodeType, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathLangFunction", libxml_xmlXPathLangFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathLastFunction", libxml_xmlXPathLastFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathLocalNameFunction", libxml_xmlXPathLocalNameFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathModValues", libxml_xmlXPathModValues, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathMultValues", libxml_xmlXPathMultValues, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNamespaceURIFunction", libxml_xmlXPathNamespaceURIFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNewBoolean", libxml_xmlXPathNewBoolean, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNewCString", libxml_xmlXPathNewCString, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNewContext", libxml_xmlXPathNewContext, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNewFloat", libxml_xmlXPathNewFloat, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNewNodeSet", libxml_xmlXPathNewNodeSet, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNewParserContext", libxml_xmlXPathNewParserContext, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNewString", libxml_xmlXPathNewString, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNewValueTree", libxml_xmlXPathNewValueTree, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNextAncestor", libxml_xmlXPathNextAncestor, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNextAncestorOrSelf", libxml_xmlXPathNextAncestorOrSelf, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNextAttribute", libxml_xmlXPathNextAttribute, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNextChild", libxml_xmlXPathNextChild, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNextDescendant", libxml_xmlXPathNextDescendant, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNextDescendantOrSelf", libxml_xmlXPathNextDescendantOrSelf, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNextFollowing", libxml_xmlXPathNextFollowing, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNextFollowingSibling", libxml_xmlXPathNextFollowingSibling, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNextNamespace", libxml_xmlXPathNextNamespace, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNextParent", libxml_xmlXPathNextParent, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNextPreceding", libxml_xmlXPathNextPreceding, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNextPrecedingSibling", libxml_xmlXPathNextPrecedingSibling, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNextSelf", libxml_xmlXPathNextSelf, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNodeSetFreeNs", libxml_xmlXPathNodeSetFreeNs, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNormalizeFunction", libxml_xmlXPathNormalizeFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNotEqualValues", libxml_xmlXPathNotEqualValues, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNotFunction", libxml_xmlXPathNotFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNsLookup", libxml_xmlXPathNsLookup, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathNumberFunction", libxml_xmlXPathNumberFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathOrderDocElems", libxml_xmlXPathOrderDocElems, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathParseNCName", libxml_xmlXPathParseNCName, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathParseName", libxml_xmlXPathParseName, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathParserGetContext", libxml_xmlXPathParserGetContext, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathPopBoolean", libxml_xmlXPathPopBoolean, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathPopNumber", libxml_xmlXPathPopNumber, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathPopString", libxml_xmlXPathPopString, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathPositionFunction", libxml_xmlXPathPositionFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathRegisterAllFunctions", libxml_xmlXPathRegisterAllFunctions, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathRegisterNs", libxml_xmlXPathRegisterNs, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathRegisteredFuncsCleanup", libxml_xmlXPathRegisteredFuncsCleanup, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathRegisteredNsCleanup", libxml_xmlXPathRegisteredNsCleanup, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathRegisteredVariablesCleanup", libxml_xmlXPathRegisteredVariablesCleanup, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathRoot", libxml_xmlXPathRoot, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathRoundFunction", libxml_xmlXPathRoundFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathSetContextDoc", libxml_xmlXPathSetContextDoc, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathSetContextNode", libxml_xmlXPathSetContextNode, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathStartsWithFunction", libxml_xmlXPathStartsWithFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathStringEvalNumber", libxml_xmlXPathStringEvalNumber, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathStringFunction", libxml_xmlXPathStringFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathStringLengthFunction", libxml_xmlXPathStringLengthFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathSubValues", libxml_xmlXPathSubValues, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathSubstringAfterFunction", libxml_xmlXPathSubstringAfterFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathSubstringBeforeFunction", libxml_xmlXPathSubstringBeforeFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathSubstringFunction", libxml_xmlXPathSubstringFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathSumFunction", libxml_xmlXPathSumFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathTranslateFunction", libxml_xmlXPathTranslateFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathTrueFunction", libxml_xmlXPathTrueFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathValueFlipSign", libxml_xmlXPathValueFlipSign, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathVariableLookup", libxml_xmlXPathVariableLookup, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPathVariableLookupNS", libxml_xmlXPathVariableLookupNS, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) + { (char *)"xmlXPatherror", libxml_xmlXPatherror, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) + { (char *)"xmlXPtrEval", libxml_xmlXPtrEval, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPTR_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) + { (char *)"xmlXPtrEvalRangePredicate", libxml_xmlXPtrEvalRangePredicate, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPTR_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) + { (char *)"xmlXPtrNewCollapsedRange", libxml_xmlXPtrNewCollapsedRange, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPTR_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) + { (char *)"xmlXPtrNewContext", libxml_xmlXPtrNewContext, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPTR_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) + { (char *)"xmlXPtrNewLocationSetNodes", libxml_xmlXPtrNewLocationSetNodes, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPTR_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) + { (char *)"xmlXPtrNewRange", libxml_xmlXPtrNewRange, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPTR_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) + { (char *)"xmlXPtrNewRangeNodes", libxml_xmlXPtrNewRangeNodes, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPTR_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) + { (char *)"xmlXPtrRangeToFunction", libxml_xmlXPtrRangeToFunction, METH_VARARGS, NULL }, +#endif /* defined(LIBXML_XPTR_ENABLED) */ diff --git a/python/libxml2-py.c b/python/libxml2-py.c new file mode 100644 index 0000000..cb2e585 --- /dev/null +++ b/python/libxml2-py.c @@ -0,0 +1,14750 @@ +/* Generated */ + +#include +#include +#include +#include +#include "libxml_wrap.h" +#include "libxml2-py.h" + +#if defined(LIBXML_DOCB_ENABLED) +PyObject * +libxml_docbDefaultSAXHandlerInit(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + docbDefaultSAXHandlerInit(); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_DOCB_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlAutoCloseTag(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + htmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * name; + htmlNodePtr elem; + PyObject *pyobj_elem; + + if (!PyArg_ParseTuple(args, (char *)"OzO:htmlAutoCloseTag", &pyobj_doc, &name, &pyobj_elem)) + return(NULL); + doc = (htmlDocPtr) PyxmlNode_Get(pyobj_doc); + elem = (htmlNodePtr) PyxmlNode_Get(pyobj_elem); + + c_retval = htmlAutoCloseTag(doc, name, elem); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlCreateFileParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + htmlParserCtxtPtr c_retval; + char * filename; + char * encoding; + + if (!PyArg_ParseTuple(args, (char *)"zz:htmlCreateFileParserCtxt", &filename, &encoding)) + return(NULL); + + c_retval = htmlCreateFileParserCtxt(filename, encoding); + py_retval = libxml_xmlParserCtxtPtrWrap((xmlParserCtxtPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlCreateMemoryParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + htmlParserCtxtPtr c_retval; + char * buffer; + int py_buffsize0; + int size; + + if (!PyArg_ParseTuple(args, (char *)"t#i:htmlCreateMemoryParserCtxt", &buffer, &py_buffsize0, &size)) + return(NULL); + + c_retval = htmlCreateMemoryParserCtxt(buffer, size); + py_retval = libxml_xmlParserCtxtPtrWrap((xmlParserCtxtPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +#endif +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlCtxtReadDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + htmlDocPtr c_retval; + htmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlChar * cur; + char * URL; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"Ozzzi:htmlCtxtReadDoc", &pyobj_ctxt, &cur, &URL, &encoding, &options)) + return(NULL); + ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = htmlCtxtReadDoc(ctxt, cur, URL, encoding, options); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlCtxtReadFd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + htmlDocPtr c_retval; + htmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + int fd; + char * URL; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"Oizzi:htmlCtxtReadFd", &pyobj_ctxt, &fd, &URL, &encoding, &options)) + return(NULL); + ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = htmlCtxtReadFd(ctxt, fd, URL, encoding, options); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlCtxtReadFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + htmlDocPtr c_retval; + htmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + char * filename; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"Ozzi:htmlCtxtReadFile", &pyobj_ctxt, &filename, &encoding, &options)) + return(NULL); + ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = htmlCtxtReadFile(ctxt, filename, encoding, options); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlCtxtReadMemory(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + htmlDocPtr c_retval; + htmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + char * buffer; + int py_buffsize0; + int size; + char * URL; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"Ot#izzi:htmlCtxtReadMemory", &pyobj_ctxt, &buffer, &py_buffsize0, &size, &URL, &encoding, &options)) + return(NULL); + ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = htmlCtxtReadMemory(ctxt, buffer, size, URL, encoding, options); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlCtxtReset(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + htmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:htmlCtxtReset", &pyobj_ctxt)) + return(NULL); + ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + htmlCtxtReset(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlCtxtUseOptions(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + htmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + int options; + + if (!PyArg_ParseTuple(args, (char *)"Oi:htmlCtxtUseOptions", &pyobj_ctxt, &options)) + return(NULL); + ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = htmlCtxtUseOptions(ctxt, options); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlDefaultSAXHandlerInit(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + htmlDefaultSAXHandlerInit(); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_htmlDocContentDumpFormatOutput(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlOutputBufferPtr buf; + PyObject *pyobj_buf; + xmlDocPtr cur; + PyObject *pyobj_cur; + char * encoding; + int format; + + if (!PyArg_ParseTuple(args, (char *)"OOzi:htmlDocContentDumpFormatOutput", &pyobj_buf, &pyobj_cur, &encoding, &format)) + return(NULL); + buf = (xmlOutputBufferPtr) PyoutputBuffer_Get(pyobj_buf); + cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); + + htmlDocContentDumpFormatOutput(buf, cur, encoding, format); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_htmlDocContentDumpOutput(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlOutputBufferPtr buf; + PyObject *pyobj_buf; + xmlDocPtr cur; + PyObject *pyobj_cur; + char * encoding; + + if (!PyArg_ParseTuple(args, (char *)"OOz:htmlDocContentDumpOutput", &pyobj_buf, &pyobj_cur, &encoding)) + return(NULL); + buf = (xmlOutputBufferPtr) PyoutputBuffer_Get(pyobj_buf); + cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); + + htmlDocContentDumpOutput(buf, cur, encoding); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_htmlDocDump(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + FILE * f; + PyObject *pyobj_f; + xmlDocPtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OO:htmlDocDump", &pyobj_f, &pyobj_cur)) + return(NULL); + f = (FILE *) PyFile_Get(pyobj_f); + cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); + + c_retval = htmlDocDump(f, cur); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlFreeParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + htmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:htmlFreeParserCtxt", &pyobj_ctxt)) + return(NULL); + ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + htmlFreeParserCtxt(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlGetMetaEncoding(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + htmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"O:htmlGetMetaEncoding", &pyobj_doc)) + return(NULL); + doc = (htmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = htmlGetMetaEncoding(doc); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlHandleOmittedElem(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int val; + + if (!PyArg_ParseTuple(args, (char *)"i:htmlHandleOmittedElem", &val)) + return(NULL); + + c_retval = htmlHandleOmittedElem(val); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlInitAutoClose(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + htmlInitAutoClose(); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlIsAutoClosed(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + htmlDocPtr doc; + PyObject *pyobj_doc; + htmlNodePtr elem; + PyObject *pyobj_elem; + + if (!PyArg_ParseTuple(args, (char *)"OO:htmlIsAutoClosed", &pyobj_doc, &pyobj_elem)) + return(NULL); + doc = (htmlDocPtr) PyxmlNode_Get(pyobj_doc); + elem = (htmlNodePtr) PyxmlNode_Get(pyobj_elem); + + c_retval = htmlIsAutoClosed(doc, elem); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlIsBooleanAttr(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"z:htmlIsBooleanAttr", &name)) + return(NULL); + + c_retval = htmlIsBooleanAttr(name); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlIsScriptAttribute(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"z:htmlIsScriptAttribute", &name)) + return(NULL); + + c_retval = htmlIsScriptAttribute(name); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlNewDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + htmlDocPtr c_retval; + xmlChar * URI; + xmlChar * ExternalID; + + if (!PyArg_ParseTuple(args, (char *)"zz:htmlNewDoc", &URI, &ExternalID)) + return(NULL); + + c_retval = htmlNewDoc(URI, ExternalID); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlNewDocNoDtD(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + htmlDocPtr c_retval; + xmlChar * URI; + xmlChar * ExternalID; + + if (!PyArg_ParseTuple(args, (char *)"zz:htmlNewDocNoDtD", &URI, &ExternalID)) + return(NULL); + + c_retval = htmlNewDocNoDtD(URI, ExternalID); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlNewParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + PyObject *py_retval; + htmlParserCtxtPtr c_retval; + + c_retval = htmlNewParserCtxt(); + py_retval = libxml_xmlParserCtxtPtrWrap((xmlParserCtxtPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_htmlNodeDumpFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + FILE * out; + PyObject *pyobj_out; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OOO:htmlNodeDumpFile", &pyobj_out, &pyobj_doc, &pyobj_cur)) + return(NULL); + out = (FILE *) PyFile_Get(pyobj_out); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + htmlNodeDumpFile(out, doc, cur); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_htmlNodeDumpFileFormat(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + FILE * out; + PyObject *pyobj_out; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr cur; + PyObject *pyobj_cur; + char * encoding; + int format; + + if (!PyArg_ParseTuple(args, (char *)"OOOzi:htmlNodeDumpFileFormat", &pyobj_out, &pyobj_doc, &pyobj_cur, &encoding, &format)) + return(NULL); + out = (FILE *) PyFile_Get(pyobj_out); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + c_retval = htmlNodeDumpFileFormat(out, doc, cur, encoding, format); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_htmlNodeDumpFormatOutput(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlOutputBufferPtr buf; + PyObject *pyobj_buf; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr cur; + PyObject *pyobj_cur; + char * encoding; + int format; + + if (!PyArg_ParseTuple(args, (char *)"OOOzi:htmlNodeDumpFormatOutput", &pyobj_buf, &pyobj_doc, &pyobj_cur, &encoding, &format)) + return(NULL); + buf = (xmlOutputBufferPtr) PyoutputBuffer_Get(pyobj_buf); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + htmlNodeDumpFormatOutput(buf, doc, cur, encoding, format); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_htmlNodeDumpOutput(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlOutputBufferPtr buf; + PyObject *pyobj_buf; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr cur; + PyObject *pyobj_cur; + char * encoding; + + if (!PyArg_ParseTuple(args, (char *)"OOOz:htmlNodeDumpOutput", &pyobj_buf, &pyobj_doc, &pyobj_cur, &encoding)) + return(NULL); + buf = (xmlOutputBufferPtr) PyoutputBuffer_Get(pyobj_buf); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + htmlNodeDumpOutput(buf, doc, cur, encoding); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlParseCharRef(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + htmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:htmlParseCharRef", &pyobj_ctxt)) + return(NULL); + ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = htmlParseCharRef(ctxt); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_PUSH_ENABLED) +PyObject * +libxml_htmlParseChunk(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + htmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + char * chunk; + int py_buffsize0; + int size; + int terminate; + + if (!PyArg_ParseTuple(args, (char *)"Ot#ii:htmlParseChunk", &pyobj_ctxt, &chunk, &py_buffsize0, &size, &terminate)) + return(NULL); + ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = htmlParseChunk(ctxt, chunk, size, terminate); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_PUSH_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlParseDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + htmlDocPtr c_retval; + xmlChar * cur; + char * encoding; + + if (!PyArg_ParseTuple(args, (char *)"zz:htmlParseDoc", &cur, &encoding)) + return(NULL); + + c_retval = htmlParseDoc(cur, encoding); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlParseDocument(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + htmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:htmlParseDocument", &pyobj_ctxt)) + return(NULL); + ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = htmlParseDocument(ctxt); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlParseElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + htmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:htmlParseElement", &pyobj_ctxt)) + return(NULL); + ctxt = (htmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + htmlParseElement(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlParseFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + htmlDocPtr c_retval; + char * filename; + char * encoding; + + if (!PyArg_ParseTuple(args, (char *)"zz:htmlParseFile", &filename, &encoding)) + return(NULL); + + c_retval = htmlParseFile(filename, encoding); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlReadDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + htmlDocPtr c_retval; + xmlChar * cur; + char * URL; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"zzzi:htmlReadDoc", &cur, &URL, &encoding, &options)) + return(NULL); + + c_retval = htmlReadDoc(cur, URL, encoding, options); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlReadFd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + htmlDocPtr c_retval; + int fd; + char * URL; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"izzi:htmlReadFd", &fd, &URL, &encoding, &options)) + return(NULL); + + c_retval = htmlReadFd(fd, URL, encoding, options); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlReadFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + htmlDocPtr c_retval; + char * filename; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"zzi:htmlReadFile", &filename, &encoding, &options)) + return(NULL); + + c_retval = htmlReadFile(filename, encoding, options); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlReadMemory(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + htmlDocPtr c_retval; + char * buffer; + int py_buffsize0; + int size; + char * URL; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"t#izzi:htmlReadMemory", &buffer, &py_buffsize0, &size, &URL, &encoding, &options)) + return(NULL); + + c_retval = htmlReadMemory(buffer, size, URL, encoding, options); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +#endif +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_htmlSaveFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + char * filename; + xmlDocPtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"zO:htmlSaveFile", &filename, &pyobj_cur)) + return(NULL); + cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); + + c_retval = htmlSaveFile(filename, cur); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_htmlSaveFileEnc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + char * filename; + xmlDocPtr cur; + PyObject *pyobj_cur; + char * encoding; + + if (!PyArg_ParseTuple(args, (char *)"zOz:htmlSaveFileEnc", &filename, &pyobj_cur, &encoding)) + return(NULL); + cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); + + c_retval = htmlSaveFileEnc(filename, cur, encoding); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_htmlSaveFileFormat(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + char * filename; + xmlDocPtr cur; + PyObject *pyobj_cur; + char * encoding; + int format; + + if (!PyArg_ParseTuple(args, (char *)"zOzi:htmlSaveFileFormat", &filename, &pyobj_cur, &encoding, &format)) + return(NULL); + cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); + + c_retval = htmlSaveFileFormat(filename, cur, encoding, format); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_htmlSetMetaEncoding(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + htmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * encoding; + + if (!PyArg_ParseTuple(args, (char *)"Oz:htmlSetMetaEncoding", &pyobj_doc, &encoding)) + return(NULL); + doc = (htmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = htmlSetMetaEncoding(doc, encoding); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTML_ENABLED) */ +PyObject * +libxml_namePop(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:namePop", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = namePop(ctxt); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_namePush(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlChar * value; + + if (!PyArg_ParseTuple(args, (char *)"Oz:namePush", &pyobj_ctxt, &value)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = namePush(ctxt, value); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_nodePop(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:nodePop", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = nodePop(ctxt); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_nodePush(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlNodePtr value; + PyObject *pyobj_value; + + if (!PyArg_ParseTuple(args, (char *)"OO:nodePush", &pyobj_ctxt, &pyobj_value)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + value = (xmlNodePtr) PyxmlNode_Get(pyobj_value); + + c_retval = nodePush(ctxt, value); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_valuePop(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlXPathObjectPtr c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:valuePop", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + c_retval = valuePop(ctxt); + py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlACatalogAdd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlCatalogPtr catal; + PyObject *pyobj_catal; + xmlChar * type; + xmlChar * orig; + xmlChar * replace; + + if (!PyArg_ParseTuple(args, (char *)"Ozzz:xmlACatalogAdd", &pyobj_catal, &type, &orig, &replace)) + return(NULL); + catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal); + + c_retval = xmlACatalogAdd(catal, type, orig, replace); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_xmlACatalogDump(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlCatalogPtr catal; + PyObject *pyobj_catal; + FILE * out; + PyObject *pyobj_out; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlACatalogDump", &pyobj_catal, &pyobj_out)) + return(NULL); + catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal); + out = (FILE *) PyFile_Get(pyobj_out); + + xmlACatalogDump(catal, out); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlACatalogRemove(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlCatalogPtr catal; + PyObject *pyobj_catal; + xmlChar * value; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlACatalogRemove", &pyobj_catal, &value)) + return(NULL); + catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal); + + c_retval = xmlACatalogRemove(catal, value); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlACatalogResolve(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlCatalogPtr catal; + PyObject *pyobj_catal; + xmlChar * pubID; + xmlChar * sysID; + + if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlACatalogResolve", &pyobj_catal, &pubID, &sysID)) + return(NULL); + catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal); + + c_retval = xmlACatalogResolve(catal, pubID, sysID); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlACatalogResolvePublic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlCatalogPtr catal; + PyObject *pyobj_catal; + xmlChar * pubID; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlACatalogResolvePublic", &pyobj_catal, &pubID)) + return(NULL); + catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal); + + c_retval = xmlACatalogResolvePublic(catal, pubID); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlACatalogResolveSystem(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlCatalogPtr catal; + PyObject *pyobj_catal; + xmlChar * sysID; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlACatalogResolveSystem", &pyobj_catal, &sysID)) + return(NULL); + catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal); + + c_retval = xmlACatalogResolveSystem(catal, sysID); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlACatalogResolveURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlCatalogPtr catal; + PyObject *pyobj_catal; + xmlChar * URI; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlACatalogResolveURI", &pyobj_catal, &URI)) + return(NULL); + catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal); + + c_retval = xmlACatalogResolveURI(catal, URI); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +PyObject * +libxml_xmlAddChild(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlNodePtr parent; + PyObject *pyobj_parent; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlAddChild", &pyobj_parent, &pyobj_cur)) + return(NULL); + parent = (xmlNodePtr) PyxmlNode_Get(pyobj_parent); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlAddChild(parent, cur); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlAddChildList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlNodePtr parent; + PyObject *pyobj_parent; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlAddChildList", &pyobj_parent, &pyobj_cur)) + return(NULL); + parent = (xmlNodePtr) PyxmlNode_Get(pyobj_parent); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlAddChildList(parent, cur); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlAddDocEntity(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlEntityPtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * name; + int type; + xmlChar * ExternalID; + xmlChar * SystemID; + xmlChar * content; + + if (!PyArg_ParseTuple(args, (char *)"Ozizzz:xmlAddDocEntity", &pyobj_doc, &name, &type, &ExternalID, &SystemID, &content)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlAddDocEntity(doc, name, type, ExternalID, SystemID, content); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlAddDtdEntity(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlEntityPtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * name; + int type; + xmlChar * ExternalID; + xmlChar * SystemID; + xmlChar * content; + + if (!PyArg_ParseTuple(args, (char *)"Ozizzz:xmlAddDtdEntity", &pyobj_doc, &name, &type, &ExternalID, &SystemID, &content)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlAddDtdEntity(doc, name, type, ExternalID, SystemID, content); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlAddEncodingAlias(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + char * name; + char * alias; + + if (!PyArg_ParseTuple(args, (char *)"zz:xmlAddEncodingAlias", &name, &alias)) + return(NULL); + + c_retval = xmlAddEncodingAlias(name, alias); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlAddNextSibling(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlNodePtr cur; + PyObject *pyobj_cur; + xmlNodePtr elem; + PyObject *pyobj_elem; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlAddNextSibling", &pyobj_cur, &pyobj_elem)) + return(NULL); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); + + c_retval = xmlAddNextSibling(cur, elem); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlAddPrevSibling(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlNodePtr cur; + PyObject *pyobj_cur; + xmlNodePtr elem; + PyObject *pyobj_elem; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlAddPrevSibling", &pyobj_cur, &pyobj_elem)) + return(NULL); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); + + c_retval = xmlAddPrevSibling(cur, elem); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +PyObject * +libxml_xmlAddSibling(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlNodePtr cur; + PyObject *pyobj_cur; + xmlNodePtr elem; + PyObject *pyobj_elem; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlAddSibling", &pyobj_cur, &pyobj_elem)) + return(NULL); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); + + c_retval = xmlAddSibling(cur, elem); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * +libxml_xmlBoolToText(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const char * c_retval; + int boolval; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlBoolToText", &boolval)) + return(NULL); + + c_retval = xmlBoolToText(boolval); + py_retval = libxml_charPtrConstWrap((const char *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +PyObject * +libxml_xmlBuildQName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * ncname; + xmlChar * prefix; + xmlChar * memory; + int len; + + if (!PyArg_ParseTuple(args, (char *)"zzzi:xmlBuildQName", &ncname, &prefix, &memory, &len)) + return(NULL); + + c_retval = xmlBuildQName(ncname, prefix, memory, len); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlBuildRelativeURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * URI; + xmlChar * base; + + if (!PyArg_ParseTuple(args, (char *)"zz:xmlBuildRelativeURI", &URI, &base)) + return(NULL); + + c_retval = xmlBuildRelativeURI(URI, base); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlBuildURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * URI; + xmlChar * base; + + if (!PyArg_ParseTuple(args, (char *)"zz:xmlBuildURI", &URI, &base)) + return(NULL); + + c_retval = xmlBuildURI(URI, base); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlByteConsumed(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + long c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlByteConsumed", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlByteConsumed(ctxt); + py_retval = libxml_longWrap((long) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCanonicPath(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * path; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlCanonicPath", &path)) + return(NULL); + + c_retval = xmlCanonicPath(path); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlCatalogAdd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * type; + xmlChar * orig; + xmlChar * replace; + + if (!PyArg_ParseTuple(args, (char *)"zzz:xmlCatalogAdd", &type, &orig, &replace)) + return(NULL); + + c_retval = xmlCatalogAdd(type, orig, replace); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlCatalogCleanup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlCatalogCleanup(); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlCatalogConvert(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + PyObject *py_retval; + int c_retval; + + c_retval = xmlCatalogConvert(); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_xmlCatalogDump(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + FILE * out; + PyObject *pyobj_out; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlCatalogDump", &pyobj_out)) + return(NULL); + out = (FILE *) PyFile_Get(pyobj_out); + + xmlCatalogDump(out); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlCatalogGetPublic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlChar * pubID; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlCatalogGetPublic", &pubID)) + return(NULL); + + c_retval = xmlCatalogGetPublic(pubID); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlCatalogGetSystem(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlChar * sysID; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlCatalogGetSystem", &sysID)) + return(NULL); + + c_retval = xmlCatalogGetSystem(sysID); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlCatalogIsEmpty(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlCatalogPtr catal; + PyObject *pyobj_catal; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlCatalogIsEmpty", &pyobj_catal)) + return(NULL); + catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal); + + c_retval = xmlCatalogIsEmpty(catal); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlCatalogRemove(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * value; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlCatalogRemove", &value)) + return(NULL); + + c_retval = xmlCatalogRemove(value); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlCatalogResolve(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * pubID; + xmlChar * sysID; + + if (!PyArg_ParseTuple(args, (char *)"zz:xmlCatalogResolve", &pubID, &sysID)) + return(NULL); + + c_retval = xmlCatalogResolve(pubID, sysID); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlCatalogResolvePublic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * pubID; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlCatalogResolvePublic", &pubID)) + return(NULL); + + c_retval = xmlCatalogResolvePublic(pubID); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlCatalogResolveSystem(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * sysID; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlCatalogResolveSystem", &sysID)) + return(NULL); + + c_retval = xmlCatalogResolveSystem(sysID); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlCatalogResolveURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * URI; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlCatalogResolveURI", &URI)) + return(NULL); + + c_retval = xmlCatalogResolveURI(URI); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlCatalogSetDebug(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int level; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlCatalogSetDebug", &level)) + return(NULL); + + c_retval = xmlCatalogSetDebug(level); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +PyObject * +libxml_xmlCharStrdup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + char * cur; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlCharStrdup", &cur)) + return(NULL); + + c_retval = xmlCharStrdup(cur); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCharStrndup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + char * cur; + int len; + + if (!PyArg_ParseTuple(args, (char *)"zi:xmlCharStrndup", &cur, &len)) + return(NULL); + + c_retval = xmlCharStrndup(cur, len); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCheckFilename(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + char * path; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlCheckFilename", &path)) + return(NULL); + + c_retval = xmlCheckFilename(path); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCheckLanguageID(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * lang; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlCheckLanguageID", &lang)) + return(NULL); + + c_retval = xmlCheckLanguageID(lang); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCheckUTF8(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + unsigned char * utf; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlCheckUTF8", &utf)) + return(NULL); + + c_retval = xmlCheckUTF8(utf); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCheckVersion(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + int version; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlCheckVersion", &version)) + return(NULL); + + xmlCheckVersion(version); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlCleanupCharEncodingHandlers(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlCleanupCharEncodingHandlers(); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlCleanupEncodingAliases(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlCleanupEncodingAliases(); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlCleanupGlobals(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlCleanupGlobals(); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlCleanupInputCallbacks(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlCleanupInputCallbacks(); + Py_INCREF(Py_None); + return(Py_None); +} + +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_xmlCleanupOutputCallbacks(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlCleanupOutputCallbacks(); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * +libxml_xmlCleanupPredefinedEntities(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlCleanupPredefinedEntities(); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +PyObject * +libxml_xmlClearParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlClearParserCtxt", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlClearParserCtxt(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlConvertSGMLCatalog(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlCatalogPtr catal; + PyObject *pyobj_catal; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlConvertSGMLCatalog", &pyobj_catal)) + return(NULL); + catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal); + + c_retval = xmlConvertSGMLCatalog(catal); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +PyObject * +libxml_xmlCopyChar(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int len; + xmlChar * out; + int val; + + if (!PyArg_ParseTuple(args, (char *)"izi:xmlCopyChar", &len, &out, &val)) + return(NULL); + + c_retval = xmlCopyChar(len, out, val); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCopyCharMultiByte(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * out; + int val; + + if (!PyArg_ParseTuple(args, (char *)"zi:xmlCopyCharMultiByte", &out, &val)) + return(NULL); + + c_retval = xmlCopyCharMultiByte(out, val); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlCopyDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDocPtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + int recursive; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlCopyDoc", &pyobj_doc, &recursive)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlCopyDoc(doc, recursive); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) +PyObject * +libxml_xmlCopyDtd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDtdPtr c_retval; + xmlDtdPtr dtd; + PyObject *pyobj_dtd; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlCopyDtd", &pyobj_dtd)) + return(NULL); + dtd = (xmlDtdPtr) PyxmlNode_Get(pyobj_dtd); + + c_retval = xmlCopyDtd(dtd); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) */ +PyObject * +libxml_xmlCopyError(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlErrorPtr from; + PyObject *pyobj_from; + xmlErrorPtr to; + PyObject *pyobj_to; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlCopyError", &pyobj_from, &pyobj_to)) + return(NULL); + from = (xmlErrorPtr) PyError_Get(pyobj_from); + to = (xmlErrorPtr) PyError_Get(pyobj_to); + + c_retval = xmlCopyError(from, to); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCopyNamespace(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNsPtr c_retval; + xmlNsPtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlCopyNamespace", &pyobj_cur)) + return(NULL); + cur = (xmlNsPtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlCopyNamespace(cur); + py_retval = libxml_xmlNsPtrWrap((xmlNsPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCopyNamespaceList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNsPtr c_retval; + xmlNsPtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlCopyNamespaceList", &pyobj_cur)) + return(NULL); + cur = (xmlNsPtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlCopyNamespaceList(cur); + py_retval = libxml_xmlNsPtrWrap((xmlNsPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCopyNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + int extended; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlCopyNode", &pyobj_node, &extended)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlCopyNode(node, extended); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCopyNodeList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlCopyNodeList", &pyobj_node)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlCopyNodeList(node); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCopyProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlAttrPtr c_retval; + xmlNodePtr target; + PyObject *pyobj_target; + xmlAttrPtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlCopyProp", &pyobj_target, &pyobj_cur)) + return(NULL); + target = (xmlNodePtr) PyxmlNode_Get(pyobj_target); + cur = (xmlAttrPtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlCopyProp(target, cur); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCopyPropList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlAttrPtr c_retval; + xmlNodePtr target; + PyObject *pyobj_target; + xmlAttrPtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlCopyPropList", &pyobj_target, &pyobj_cur)) + return(NULL); + target = (xmlNodePtr) PyxmlNode_Get(pyobj_target); + cur = (xmlAttrPtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlCopyPropList(target, cur); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCreateDocParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlParserCtxtPtr c_retval; + xmlChar * cur; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlCreateDocParserCtxt", &cur)) + return(NULL); + + c_retval = xmlCreateDocParserCtxt(cur); + py_retval = libxml_xmlParserCtxtPtrWrap((xmlParserCtxtPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCreateEntityParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlParserCtxtPtr c_retval; + xmlChar * URL; + xmlChar * ID; + xmlChar * base; + + if (!PyArg_ParseTuple(args, (char *)"zzz:xmlCreateEntityParserCtxt", &URL, &ID, &base)) + return(NULL); + + c_retval = xmlCreateEntityParserCtxt(URL, ID, base); + py_retval = libxml_xmlParserCtxtPtrWrap((xmlParserCtxtPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCreateFileParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlParserCtxtPtr c_retval; + char * filename; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlCreateFileParserCtxt", &filename)) + return(NULL); + + c_retval = xmlCreateFileParserCtxt(filename); + py_retval = libxml_xmlParserCtxtPtrWrap((xmlParserCtxtPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCreateIntSubset(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDtdPtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * name; + xmlChar * ExternalID; + xmlChar * SystemID; + + if (!PyArg_ParseTuple(args, (char *)"Ozzz:xmlCreateIntSubset", &pyobj_doc, &name, &ExternalID, &SystemID)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlCreateIntSubset(doc, name, ExternalID, SystemID); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCreateMemoryParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlParserCtxtPtr c_retval; + char * buffer; + int py_buffsize0; + int size; + + if (!PyArg_ParseTuple(args, (char *)"t#i:xmlCreateMemoryParserCtxt", &buffer, &py_buffsize0, &size)) + return(NULL); + + c_retval = xmlCreateMemoryParserCtxt(buffer, size); + py_retval = libxml_xmlParserCtxtPtrWrap((xmlParserCtxtPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCreateURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + PyObject *py_retval; + xmlURIPtr c_retval; + + c_retval = xmlCreateURI(); + py_retval = libxml_xmlURIPtrWrap((xmlURIPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCreateURLParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlParserCtxtPtr c_retval; + char * filename; + int options; + + if (!PyArg_ParseTuple(args, (char *)"zi:xmlCreateURLParserCtxt", &filename, &options)) + return(NULL); + + c_retval = xmlCreateURLParserCtxt(filename, options); + py_retval = libxml_xmlParserCtxtPtrWrap((xmlParserCtxtPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCtxtReadDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDocPtr c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlChar * cur; + char * URL; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"Ozzzi:xmlCtxtReadDoc", &pyobj_ctxt, &cur, &URL, &encoding, &options)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlCtxtReadDoc(ctxt, cur, URL, encoding, options); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCtxtReadFd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDocPtr c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + int fd; + char * URL; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"Oizzi:xmlCtxtReadFd", &pyobj_ctxt, &fd, &URL, &encoding, &options)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlCtxtReadFd(ctxt, fd, URL, encoding, options); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCtxtReadFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDocPtr c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + char * filename; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"Ozzi:xmlCtxtReadFile", &pyobj_ctxt, &filename, &encoding, &options)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlCtxtReadFile(ctxt, filename, encoding, options); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCtxtReadMemory(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDocPtr c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + char * buffer; + int py_buffsize0; + int size; + char * URL; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"Ot#izzi:xmlCtxtReadMemory", &pyobj_ctxt, &buffer, &py_buffsize0, &size, &URL, &encoding, &options)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlCtxtReadMemory(ctxt, buffer, size, URL, encoding, options); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCtxtReset(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlCtxtReset", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlCtxtReset(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlCtxtResetPush(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + char * chunk; + int py_buffsize0; + int size; + char * filename; + char * encoding; + + if (!PyArg_ParseTuple(args, (char *)"Ot#izz:xmlCtxtResetPush", &pyobj_ctxt, &chunk, &py_buffsize0, &size, &filename, &encoding)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlCtxtResetPush(ctxt, chunk, size, filename, encoding); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlCtxtUseOptions(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + int options; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlCtxtUseOptions", &pyobj_ctxt, &options)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlCtxtUseOptions(ctxt, options); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * +libxml_xmlDebugCheckDocument(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + FILE * output; + PyObject *pyobj_output; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlDebugCheckDocument", &pyobj_output, &pyobj_doc)) + return(NULL); + output = (FILE *) PyFile_Get(pyobj_output); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlDebugCheckDocument(output, doc); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * +libxml_xmlDebugDumpAttr(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + FILE * output; + PyObject *pyobj_output; + xmlAttrPtr attr; + PyObject *pyobj_attr; + int depth; + + if (!PyArg_ParseTuple(args, (char *)"OOi:xmlDebugDumpAttr", &pyobj_output, &pyobj_attr, &depth)) + return(NULL); + output = (FILE *) PyFile_Get(pyobj_output); + attr = (xmlAttrPtr) PyxmlNode_Get(pyobj_attr); + + xmlDebugDumpAttr(output, attr, depth); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * +libxml_xmlDebugDumpAttrList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + FILE * output; + PyObject *pyobj_output; + xmlAttrPtr attr; + PyObject *pyobj_attr; + int depth; + + if (!PyArg_ParseTuple(args, (char *)"OOi:xmlDebugDumpAttrList", &pyobj_output, &pyobj_attr, &depth)) + return(NULL); + output = (FILE *) PyFile_Get(pyobj_output); + attr = (xmlAttrPtr) PyxmlNode_Get(pyobj_attr); + + xmlDebugDumpAttrList(output, attr, depth); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * +libxml_xmlDebugDumpDTD(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + FILE * output; + PyObject *pyobj_output; + xmlDtdPtr dtd; + PyObject *pyobj_dtd; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlDebugDumpDTD", &pyobj_output, &pyobj_dtd)) + return(NULL); + output = (FILE *) PyFile_Get(pyobj_output); + dtd = (xmlDtdPtr) PyxmlNode_Get(pyobj_dtd); + + xmlDebugDumpDTD(output, dtd); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * +libxml_xmlDebugDumpDocument(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + FILE * output; + PyObject *pyobj_output; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlDebugDumpDocument", &pyobj_output, &pyobj_doc)) + return(NULL); + output = (FILE *) PyFile_Get(pyobj_output); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + xmlDebugDumpDocument(output, doc); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * +libxml_xmlDebugDumpDocumentHead(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + FILE * output; + PyObject *pyobj_output; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlDebugDumpDocumentHead", &pyobj_output, &pyobj_doc)) + return(NULL); + output = (FILE *) PyFile_Get(pyobj_output); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + xmlDebugDumpDocumentHead(output, doc); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * +libxml_xmlDebugDumpEntities(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + FILE * output; + PyObject *pyobj_output; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlDebugDumpEntities", &pyobj_output, &pyobj_doc)) + return(NULL); + output = (FILE *) PyFile_Get(pyobj_output); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + xmlDebugDumpEntities(output, doc); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * +libxml_xmlDebugDumpNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + FILE * output; + PyObject *pyobj_output; + xmlNodePtr node; + PyObject *pyobj_node; + int depth; + + if (!PyArg_ParseTuple(args, (char *)"OOi:xmlDebugDumpNode", &pyobj_output, &pyobj_node, &depth)) + return(NULL); + output = (FILE *) PyFile_Get(pyobj_output); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + xmlDebugDumpNode(output, node, depth); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * +libxml_xmlDebugDumpNodeList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + FILE * output; + PyObject *pyobj_output; + xmlNodePtr node; + PyObject *pyobj_node; + int depth; + + if (!PyArg_ParseTuple(args, (char *)"OOi:xmlDebugDumpNodeList", &pyobj_output, &pyobj_node, &depth)) + return(NULL); + output = (FILE *) PyFile_Get(pyobj_output); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + xmlDebugDumpNodeList(output, node, depth); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * +libxml_xmlDebugDumpOneNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + FILE * output; + PyObject *pyobj_output; + xmlNodePtr node; + PyObject *pyobj_node; + int depth; + + if (!PyArg_ParseTuple(args, (char *)"OOi:xmlDebugDumpOneNode", &pyobj_output, &pyobj_node, &depth)) + return(NULL); + output = (FILE *) PyFile_Get(pyobj_output); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + xmlDebugDumpOneNode(output, node, depth); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * +libxml_xmlDebugDumpString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + FILE * output; + PyObject *pyobj_output; + xmlChar * str; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlDebugDumpString", &pyobj_output, &str)) + return(NULL); + output = (FILE *) PyFile_Get(pyobj_output); + + xmlDebugDumpString(output, str); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * +libxml_xmlDecodeEntities(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + int len; + int what; + xmlChar end; + xmlChar end2; + xmlChar end3; + + if (!PyArg_ParseTuple(args, (char *)"Oiiccc:xmlDecodeEntities", &pyobj_ctxt, &len, &what, &end, &end2, &end3)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlDecodeEntities(ctxt, len, what, end, end2, end3); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +PyObject * +libxml_xmlDefaultSAXHandlerInit(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlDefaultSAXHandlerInit(); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlDelEncodingAlias(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + char * alias; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlDelEncodingAlias", &alias)) + return(NULL); + + c_retval = xmlDelEncodingAlias(alias); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlDictCleanup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlDictCleanup(); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlDocCopyNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + xmlDocPtr doc; + PyObject *pyobj_doc; + int extended; + + if (!PyArg_ParseTuple(args, (char *)"OOi:xmlDocCopyNode", &pyobj_node, &pyobj_doc, &extended)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlDocCopyNode(node, doc, extended); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlDocCopyNodeList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr node; + PyObject *pyobj_node; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlDocCopyNodeList", &pyobj_doc, &pyobj_node)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlDocCopyNodeList(doc, node); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_xmlDocDump(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + FILE * f; + PyObject *pyobj_f; + xmlDocPtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlDocDump", &pyobj_f, &pyobj_cur)) + return(NULL); + f = (FILE *) PyFile_Get(pyobj_f); + cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlDocDump(f, cur); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_xmlDocFormatDump(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + FILE * f; + PyObject *pyobj_f; + xmlDocPtr cur; + PyObject *pyobj_cur; + int format; + + if (!PyArg_ParseTuple(args, (char *)"OOi:xmlDocFormatDump", &pyobj_f, &pyobj_cur, &format)) + return(NULL); + f = (FILE *) PyFile_Get(pyobj_f); + cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlDocFormatDump(f, cur, format); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +PyObject * +libxml_xmlDocGetRootElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlDocGetRootElement", &pyobj_doc)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlDocGetRootElement(doc); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) +PyObject * +libxml_xmlDocSetRootElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr root; + PyObject *pyobj_root; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlDocSetRootElement", &pyobj_doc, &pyobj_root)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + root = (xmlNodePtr) PyxmlNode_Get(pyobj_root); + + c_retval = xmlDocSetRootElement(doc, root); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_xmlElemDump(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + FILE * f; + PyObject *pyobj_f; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OOO:xmlElemDump", &pyobj_f, &pyobj_doc, &pyobj_cur)) + return(NULL); + f = (FILE *) PyFile_Get(pyobj_f); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + xmlElemDump(f, doc, cur); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * +libxml_xmlEncodeEntities(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * input; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlEncodeEntities", &pyobj_doc, &input)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlEncodeEntities(doc, input); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +PyObject * +libxml_xmlEncodeEntitiesReentrant(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * input; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlEncodeEntitiesReentrant", &pyobj_doc, &input)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlEncodeEntitiesReentrant(doc, input); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlEncodeSpecialChars(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * input; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlEncodeSpecialChars", &pyobj_doc, &input)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlEncodeSpecialChars(doc, input); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlErrorGetCode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlErrorPtr Error; + PyObject *pyobj_Error; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlErrorGetCode", &pyobj_Error)) + return(NULL); + Error = (xmlErrorPtr) PyError_Get(pyobj_Error); + + c_retval = Error->code; + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlErrorGetDomain(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlErrorPtr Error; + PyObject *pyobj_Error; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlErrorGetDomain", &pyobj_Error)) + return(NULL); + Error = (xmlErrorPtr) PyError_Get(pyobj_Error); + + c_retval = Error->domain; + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlErrorGetFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const char * c_retval; + xmlErrorPtr Error; + PyObject *pyobj_Error; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlErrorGetFile", &pyobj_Error)) + return(NULL); + Error = (xmlErrorPtr) PyError_Get(pyobj_Error); + + c_retval = Error->file; + py_retval = libxml_charPtrConstWrap((const char *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlErrorGetLevel(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlErrorPtr Error; + PyObject *pyobj_Error; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlErrorGetLevel", &pyobj_Error)) + return(NULL); + Error = (xmlErrorPtr) PyError_Get(pyobj_Error); + + c_retval = Error->level; + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlErrorGetLine(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlErrorPtr Error; + PyObject *pyobj_Error; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlErrorGetLine", &pyobj_Error)) + return(NULL); + Error = (xmlErrorPtr) PyError_Get(pyobj_Error); + + c_retval = Error->line; + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlErrorGetMessage(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const char * c_retval; + xmlErrorPtr Error; + PyObject *pyobj_Error; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlErrorGetMessage", &pyobj_Error)) + return(NULL); + Error = (xmlErrorPtr) PyError_Get(pyobj_Error); + + c_retval = Error->message; + py_retval = libxml_charPtrConstWrap((const char *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlFileMatch(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + char * filename; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlFileMatch", &filename)) + return(NULL); + + c_retval = xmlFileMatch(filename); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#if defined(LIBXML_TREE_ENABLED) +PyObject * +libxml_xmlFirstElementChild(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlNodePtr parent; + PyObject *pyobj_parent; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlFirstElementChild", &pyobj_parent)) + return(NULL); + parent = (xmlNodePtr) PyxmlNode_Get(pyobj_parent); + + c_retval = xmlFirstElementChild(parent); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlFreeCatalog(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlCatalogPtr catal; + PyObject *pyobj_catal; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeCatalog", &pyobj_catal)) + return(NULL); + catal = (xmlCatalogPtr) Pycatalog_Get(pyobj_catal); + + xmlFreeCatalog(catal); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +PyObject * +libxml_xmlFreeDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlDocPtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeDoc", &pyobj_cur)) + return(NULL); + cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); + + xmlFreeDoc(cur); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlFreeDtd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlDtdPtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeDtd", &pyobj_cur)) + return(NULL); + cur = (xmlDtdPtr) PyxmlNode_Get(pyobj_cur); + + xmlFreeDtd(cur); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlFreeNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeNode", &pyobj_cur)) + return(NULL); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + xmlFreeNode(cur); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlFreeNodeList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeNodeList", &pyobj_cur)) + return(NULL); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + xmlFreeNodeList(cur); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlFreeNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlNsPtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeNs", &pyobj_cur)) + return(NULL); + cur = (xmlNsPtr) PyxmlNode_Get(pyobj_cur); + + xmlFreeNs(cur); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlFreeNsList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlNsPtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeNsList", &pyobj_cur)) + return(NULL); + cur = (xmlNsPtr) PyxmlNode_Get(pyobj_cur); + + xmlFreeNsList(cur); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlFreeParserInputBuffer(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserInputBufferPtr in; + PyObject *pyobj_in; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeParserInputBuffer", &pyobj_in)) + return(NULL); + in = (xmlParserInputBufferPtr) PyinputBuffer_Get(pyobj_in); + + xmlFreeParserInputBuffer(in); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlFreeProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlAttrPtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeProp", &pyobj_cur)) + return(NULL); + cur = (xmlAttrPtr) PyxmlNode_Get(pyobj_cur); + + xmlFreeProp(cur); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlFreePropList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlAttrPtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlFreePropList", &pyobj_cur)) + return(NULL); + cur = (xmlAttrPtr) PyxmlNode_Get(pyobj_cur); + + xmlFreePropList(cur); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlFreeURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlURIPtr uri; + PyObject *pyobj_uri; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeURI", &pyobj_uri)) + return(NULL); + uri = (xmlURIPtr) PyURI_Get(pyobj_uri); + + xmlFreeURI(uri); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlGetCompressMode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + PyObject *py_retval; + int c_retval; + + c_retval = xmlGetCompressMode(); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlGetDocCompressMode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlGetDocCompressMode", &pyobj_doc)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlGetDocCompressMode(doc); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlGetDocEntity(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlEntityPtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlGetDocEntity", &pyobj_doc, &name)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlGetDocEntity(doc, name); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlGetDtdAttrDesc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlAttributePtr c_retval; + xmlDtdPtr dtd; + PyObject *pyobj_dtd; + xmlChar * elem; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlGetDtdAttrDesc", &pyobj_dtd, &elem, &name)) + return(NULL); + dtd = (xmlDtdPtr) PyxmlNode_Get(pyobj_dtd); + + c_retval = xmlGetDtdAttrDesc(dtd, elem, name); + py_retval = libxml_xmlAttributePtrWrap((xmlAttributePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlGetDtdElementDesc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlElementPtr c_retval; + xmlDtdPtr dtd; + PyObject *pyobj_dtd; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlGetDtdElementDesc", &pyobj_dtd, &name)) + return(NULL); + dtd = (xmlDtdPtr) PyxmlNode_Get(pyobj_dtd); + + c_retval = xmlGetDtdElementDesc(dtd, name); + py_retval = libxml_xmlElementPtrWrap((xmlElementPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlGetDtdEntity(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlEntityPtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlGetDtdEntity", &pyobj_doc, &name)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlGetDtdEntity(doc, name); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlGetDtdQAttrDesc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlAttributePtr c_retval; + xmlDtdPtr dtd; + PyObject *pyobj_dtd; + xmlChar * elem; + xmlChar * name; + xmlChar * prefix; + + if (!PyArg_ParseTuple(args, (char *)"Ozzz:xmlGetDtdQAttrDesc", &pyobj_dtd, &elem, &name, &prefix)) + return(NULL); + dtd = (xmlDtdPtr) PyxmlNode_Get(pyobj_dtd); + + c_retval = xmlGetDtdQAttrDesc(dtd, elem, name, prefix); + py_retval = libxml_xmlAttributePtrWrap((xmlAttributePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlGetDtdQElementDesc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlElementPtr c_retval; + xmlDtdPtr dtd; + PyObject *pyobj_dtd; + xmlChar * name; + xmlChar * prefix; + + if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlGetDtdQElementDesc", &pyobj_dtd, &name, &prefix)) + return(NULL); + dtd = (xmlDtdPtr) PyxmlNode_Get(pyobj_dtd); + + c_retval = xmlGetDtdQElementDesc(dtd, name, prefix); + py_retval = libxml_xmlElementPtrWrap((xmlElementPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlGetEncodingAlias(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const char * c_retval; + char * alias; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlGetEncodingAlias", &alias)) + return(NULL); + + c_retval = xmlGetEncodingAlias(alias); + py_retval = libxml_charPtrConstWrap((const char *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlGetID(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlAttrPtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * ID; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlGetID", &pyobj_doc, &ID)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlGetID(doc, ID); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlGetIntSubset(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDtdPtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlGetIntSubset", &pyobj_doc)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlGetIntSubset(doc); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlGetLastChild(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlNodePtr parent; + PyObject *pyobj_parent; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlGetLastChild", &pyobj_parent)) + return(NULL); + parent = (xmlNodePtr) PyxmlNode_Get(pyobj_parent); + + c_retval = xmlGetLastChild(parent); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlGetLastError(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + PyObject *py_retval; + xmlErrorPtr c_retval; + + c_retval = xmlGetLastError(); + py_retval = libxml_xmlErrorPtrWrap((xmlErrorPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlGetLineNo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + long c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlGetLineNo", &pyobj_node)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlGetLineNo(node); + py_retval = libxml_longWrap((long) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlGetNoNsProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlGetNoNsProp", &pyobj_node, &name)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlGetNoNsProp(node, name); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) +PyObject * +libxml_xmlGetNodePath(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlGetNodePath", &pyobj_node)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlGetNodePath(node); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) */ +PyObject * +libxml_xmlGetNsProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + xmlChar * name; + xmlChar * nameSpace; + + if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlGetNsProp", &pyobj_node, &name, &nameSpace)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlGetNsProp(node, name, nameSpace); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlGetParameterEntity(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlEntityPtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlGetParameterEntity", &pyobj_doc, &name)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlGetParameterEntity(doc, name); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlGetPredefinedEntity(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlEntityPtr c_retval; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlGetPredefinedEntity", &name)) + return(NULL); + + c_retval = xmlGetPredefinedEntity(name); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlGetProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlGetProp", &pyobj_node, &name)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlGetProp(node, name); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * +libxml_xmlHandleEntity(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlEntityPtr entity; + PyObject *pyobj_entity; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlHandleEntity", &pyobj_ctxt, &pyobj_entity)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + entity = (xmlEntityPtr) PyxmlNode_Get(pyobj_entity); + + xmlHandleEntity(ctxt, entity); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +PyObject * +libxml_xmlHasNsProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlAttrPtr c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + xmlChar * name; + xmlChar * nameSpace; + + if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlHasNsProp", &pyobj_node, &name, &nameSpace)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlHasNsProp(node, name, nameSpace); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlHasProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlAttrPtr c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlHasProp", &pyobj_node, &name)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlHasProp(node, name); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#if defined(LIBXML_FTP_ENABLED) +PyObject * +libxml_xmlIOFTPMatch(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + char * filename; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlIOFTPMatch", &filename)) + return(NULL); + + c_retval = xmlIOFTPMatch(filename); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_FTP_ENABLED) */ +#if defined(LIBXML_HTTP_ENABLED) +PyObject * +libxml_xmlIOHTTPMatch(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + char * filename; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlIOHTTPMatch", &filename)) + return(NULL); + + c_retval = xmlIOHTTPMatch(filename); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_HTTP_ENABLED) */ +PyObject * +libxml_xmlInitCharEncodingHandlers(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlInitCharEncodingHandlers(); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlInitGlobals(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlInitGlobals(); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlInitParser(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlInitParser(); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlInitParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlInitParserCtxt", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlInitParserCtxt(ctxt); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlInitializeCatalog(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlInitializeCatalog(); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +PyObject * +libxml_xmlInitializeDict(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + PyObject *py_retval; + int c_retval; + + c_retval = xmlInitializeDict(); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * +libxml_xmlInitializePredefinedEntities(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlInitializePredefinedEntities(); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +PyObject * +libxml_xmlIsBaseChar(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + unsigned int ch; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlIsBaseChar", &ch)) + return(NULL); + + c_retval = xmlIsBaseChar(ch); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlIsBlank(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + unsigned int ch; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlIsBlank", &ch)) + return(NULL); + + c_retval = xmlIsBlank(ch); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlIsBlankNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlIsBlankNode", &pyobj_node)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlIsBlankNode(node); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlIsChar(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + unsigned int ch; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlIsChar", &ch)) + return(NULL); + + c_retval = xmlIsChar(ch); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlIsCombining(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + unsigned int ch; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlIsCombining", &ch)) + return(NULL); + + c_retval = xmlIsCombining(ch); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlIsDigit(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + unsigned int ch; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlIsDigit", &ch)) + return(NULL); + + c_retval = xmlIsDigit(ch); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlIsExtender(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + unsigned int ch; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlIsExtender", &ch)) + return(NULL); + + c_retval = xmlIsExtender(ch); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlIsID(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr elem; + PyObject *pyobj_elem; + xmlAttrPtr attr; + PyObject *pyobj_attr; + + if (!PyArg_ParseTuple(args, (char *)"OOO:xmlIsID", &pyobj_doc, &pyobj_elem, &pyobj_attr)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); + attr = (xmlAttrPtr) PyxmlNode_Get(pyobj_attr); + + c_retval = xmlIsID(doc, elem, attr); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlIsIdeographic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + unsigned int ch; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlIsIdeographic", &ch)) + return(NULL); + + c_retval = xmlIsIdeographic(ch); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlIsLetter(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int c; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlIsLetter", &c)) + return(NULL); + + c_retval = xmlIsLetter(c); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlIsMixedElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlIsMixedElement", &pyobj_doc, &name)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlIsMixedElement(doc, name); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlIsPubidChar(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + unsigned int ch; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlIsPubidChar", &ch)) + return(NULL); + + c_retval = xmlIsPubidChar(ch); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlIsRef(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr elem; + PyObject *pyobj_elem; + xmlAttrPtr attr; + PyObject *pyobj_attr; + + if (!PyArg_ParseTuple(args, (char *)"OOO:xmlIsRef", &pyobj_doc, &pyobj_elem, &pyobj_attr)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); + attr = (xmlAttrPtr) PyxmlNode_Get(pyobj_attr); + + c_retval = xmlIsRef(doc, elem, attr); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlIsXHTML(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * systemID; + xmlChar * publicID; + + if (!PyArg_ParseTuple(args, (char *)"zz:xmlIsXHTML", &systemID, &publicID)) + return(NULL); + + c_retval = xmlIsXHTML(systemID, publicID); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlKeepBlanksDefault(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int val; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlKeepBlanksDefault", &val)) + return(NULL); + + c_retval = xmlKeepBlanksDefault(val); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#if defined(LIBXML_TREE_ENABLED) +PyObject * +libxml_xmlLastElementChild(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlNodePtr parent; + PyObject *pyobj_parent; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlLastElementChild", &pyobj_parent)) + return(NULL); + parent = (xmlNodePtr) PyxmlNode_Get(pyobj_parent); + + c_retval = xmlLastElementChild(parent); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) */ +PyObject * +libxml_xmlLineNumbersDefault(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int val; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlLineNumbersDefault", &val)) + return(NULL); + + c_retval = xmlLineNumbersDefault(val); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlLoadACatalog(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlCatalogPtr c_retval; + char * filename; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlLoadACatalog", &filename)) + return(NULL); + + c_retval = xmlLoadACatalog(filename); + py_retval = libxml_xmlCatalogPtrWrap((xmlCatalogPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlLoadCatalog(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + char * filename; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlLoadCatalog", &filename)) + return(NULL); + + c_retval = xmlLoadCatalog(filename); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlLoadCatalogs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + char * pathss; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlLoadCatalogs", &pathss)) + return(NULL); + + xmlLoadCatalogs(pathss); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlLoadSGMLSuperCatalog(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlCatalogPtr c_retval; + char * filename; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlLoadSGMLSuperCatalog", &filename)) + return(NULL); + + c_retval = xmlLoadSGMLSuperCatalog(filename); + py_retval = libxml_xmlCatalogPtrWrap((xmlCatalogPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * +libxml_xmlLsCountNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlLsCountNode", &pyobj_node)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlLsCountNode(node); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * +libxml_xmlLsOneNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + FILE * output; + PyObject *pyobj_output; + xmlNodePtr node; + PyObject *pyobj_node; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlLsOneNode", &pyobj_output, &pyobj_node)) + return(NULL); + output = (FILE *) PyFile_Get(pyobj_output); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + xmlLsOneNode(output, node); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * +libxml_xmlNamespaceParseNCName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlNamespaceParseNCName", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlNamespaceParseNCName(ctxt); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * +libxml_xmlNamespaceParseNSDef(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlNamespaceParseNSDef", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlNamespaceParseNSDef(ctxt); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +#if defined(LIBXML_FTP_ENABLED) +PyObject * +libxml_xmlNanoFTPCleanup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlNanoFTPCleanup(); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_FTP_ENABLED) */ +#if defined(LIBXML_FTP_ENABLED) +PyObject * +libxml_xmlNanoFTPInit(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlNanoFTPInit(); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_FTP_ENABLED) */ +#if defined(LIBXML_FTP_ENABLED) +PyObject * +libxml_xmlNanoFTPProxy(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + char * host; + int port; + char * user; + char * passwd; + int type; + + if (!PyArg_ParseTuple(args, (char *)"zizzi:xmlNanoFTPProxy", &host, &port, &user, &passwd, &type)) + return(NULL); + + xmlNanoFTPProxy(host, port, user, passwd, type); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_FTP_ENABLED) */ +#if defined(LIBXML_FTP_ENABLED) +PyObject * +libxml_xmlNanoFTPScanProxy(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + char * URL; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlNanoFTPScanProxy", &URL)) + return(NULL); + + xmlNanoFTPScanProxy(URL); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_FTP_ENABLED) */ +#if defined(LIBXML_HTTP_ENABLED) +PyObject * +libxml_xmlNanoHTTPCleanup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlNanoHTTPCleanup(); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_HTTP_ENABLED) */ +#if defined(LIBXML_HTTP_ENABLED) +PyObject * +libxml_xmlNanoHTTPInit(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlNanoHTTPInit(); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_HTTP_ENABLED) */ +#if defined(LIBXML_HTTP_ENABLED) +PyObject * +libxml_xmlNanoHTTPScanProxy(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + char * URL; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlNanoHTTPScanProxy", &URL)) + return(NULL); + + xmlNanoHTTPScanProxy(URL); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_HTTP_ENABLED) */ +PyObject * +libxml_xmlNewCDataBlock(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * content; + int len; + + if (!PyArg_ParseTuple(args, (char *)"Ozi:xmlNewCDataBlock", &pyobj_doc, &content, &len)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlNewCDataBlock(doc, content, len); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlNewCatalog(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlCatalogPtr c_retval; + int sgml; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlNewCatalog", &sgml)) + return(NULL); + + c_retval = xmlNewCatalog(sgml); + py_retval = libxml_xmlCatalogPtrWrap((xmlCatalogPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +PyObject * +libxml_xmlNewCharRef(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNewCharRef", &pyobj_doc, &name)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlNewCharRef(doc, name); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlNewChild(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlNodePtr parent; + PyObject *pyobj_parent; + xmlNsPtr ns; + PyObject *pyobj_ns; + xmlChar * name; + xmlChar * content; + + if (!PyArg_ParseTuple(args, (char *)"OOzz:xmlNewChild", &pyobj_parent, &pyobj_ns, &name, &content)) + return(NULL); + parent = (xmlNodePtr) PyxmlNode_Get(pyobj_parent); + ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); + + c_retval = xmlNewChild(parent, ns, name, content); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +PyObject * +libxml_xmlNewComment(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlChar * content; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlNewComment", &content)) + return(NULL); + + c_retval = xmlNewComment(content); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlNewDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDocPtr c_retval; + xmlChar * version; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlNewDoc", &version)) + return(NULL); + + c_retval = xmlNewDoc(version); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlNewDocComment(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * content; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNewDocComment", &pyobj_doc, &content)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlNewDocComment(doc, content); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#if defined(LIBXML_TREE_ENABLED) +PyObject * +libxml_xmlNewDocFragment(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlNewDocFragment", &pyobj_doc)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlNewDocFragment(doc); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) */ +PyObject * +libxml_xmlNewDocNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNsPtr ns; + PyObject *pyobj_ns; + xmlChar * name; + xmlChar * content; + + if (!PyArg_ParseTuple(args, (char *)"OOzz:xmlNewDocNode", &pyobj_doc, &pyobj_ns, &name, &content)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); + + c_retval = xmlNewDocNode(doc, ns, name, content); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlNewDocNodeEatName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNsPtr ns; + PyObject *pyobj_ns; + xmlChar * name; + xmlChar * content; + + if (!PyArg_ParseTuple(args, (char *)"OOzz:xmlNewDocNodeEatName", &pyobj_doc, &pyobj_ns, &name, &content)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); + + c_retval = xmlNewDocNodeEatName(doc, ns, name, content); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlNewDocPI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * name; + xmlChar * content; + + if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlNewDocPI", &pyobj_doc, &name, &content)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlNewDocPI(doc, name, content); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlNewDocProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlAttrPtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * name; + xmlChar * value; + + if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlNewDocProp", &pyobj_doc, &name, &value)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlNewDocProp(doc, name, value); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#if defined(LIBXML_TREE_ENABLED) +PyObject * +libxml_xmlNewDocRawNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNsPtr ns; + PyObject *pyobj_ns; + xmlChar * name; + xmlChar * content; + + if (!PyArg_ParseTuple(args, (char *)"OOzz:xmlNewDocRawNode", &pyobj_doc, &pyobj_ns, &name, &content)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); + + c_retval = xmlNewDocRawNode(doc, ns, name, content); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) */ +PyObject * +libxml_xmlNewDocText(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * content; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNewDocText", &pyobj_doc, &content)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlNewDocText(doc, content); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlNewDocTextLen(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * content; + int len; + + if (!PyArg_ParseTuple(args, (char *)"Ozi:xmlNewDocTextLen", &pyobj_doc, &content, &len)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlNewDocTextLen(doc, content, len); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlNewDtd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDtdPtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * name; + xmlChar * ExternalID; + xmlChar * SystemID; + + if (!PyArg_ParseTuple(args, (char *)"Ozzz:xmlNewDtd", &pyobj_doc, &name, &ExternalID, &SystemID)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlNewDtd(doc, name, ExternalID, SystemID); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlNewEntity(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlEntityPtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * name; + int type; + xmlChar * ExternalID; + xmlChar * SystemID; + xmlChar * content; + + if (!PyArg_ParseTuple(args, (char *)"Ozizzz:xmlNewEntity", &pyobj_doc, &name, &type, &ExternalID, &SystemID, &content)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlNewEntity(doc, name, type, ExternalID, SystemID, content); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * +libxml_xmlNewGlobalNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNsPtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * href; + xmlChar * prefix; + + if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlNewGlobalNs", &pyobj_doc, &href, &prefix)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlNewGlobalNs(doc, href, prefix); + py_retval = libxml_xmlNsPtrWrap((xmlNsPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +PyObject * +libxml_xmlNewNodeEatName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlNsPtr ns; + PyObject *pyobj_ns; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNewNodeEatName", &pyobj_ns, &name)) + return(NULL); + ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); + + c_retval = xmlNewNodeEatName(ns, name); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlNewNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNsPtr c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + xmlChar * href; + xmlChar * prefix; + + if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlNewNs", &pyobj_node, &href, &prefix)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlNewNs(node, href, prefix); + py_retval = libxml_xmlNsPtrWrap((xmlNsPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlNewNsProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlAttrPtr c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + xmlNsPtr ns; + PyObject *pyobj_ns; + xmlChar * name; + xmlChar * value; + + if (!PyArg_ParseTuple(args, (char *)"OOzz:xmlNewNsProp", &pyobj_node, &pyobj_ns, &name, &value)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); + + c_retval = xmlNewNsProp(node, ns, name, value); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlNewNsPropEatName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlAttrPtr c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + xmlNsPtr ns; + PyObject *pyobj_ns; + xmlChar * name; + xmlChar * value; + + if (!PyArg_ParseTuple(args, (char *)"OOzz:xmlNewNsPropEatName", &pyobj_node, &pyobj_ns, &name, &value)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); + + c_retval = xmlNewNsPropEatName(node, ns, name, value); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlNewPI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlChar * name; + xmlChar * content; + + if (!PyArg_ParseTuple(args, (char *)"zz:xmlNewPI", &name, &content)) + return(NULL); + + c_retval = xmlNewPI(name, content); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlNewParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + PyObject *py_retval; + xmlParserCtxtPtr c_retval; + + c_retval = xmlNewParserCtxt(); + py_retval = libxml_xmlParserCtxtPtrWrap((xmlParserCtxtPtr) c_retval); + return(py_retval); +} + +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlNewProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlAttrPtr c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + xmlChar * name; + xmlChar * value; + + if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlNewProp", &pyobj_node, &name, &value)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlNewProp(node, name, value); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +PyObject * +libxml_xmlNewReference(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNewReference", &pyobj_doc, &name)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlNewReference(doc, name); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlNewText(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlChar * content; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlNewText", &content)) + return(NULL); + + c_retval = xmlNewText(content); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#if defined(LIBXML_TREE_ENABLED) +PyObject * +libxml_xmlNewTextChild(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlNodePtr parent; + PyObject *pyobj_parent; + xmlNsPtr ns; + PyObject *pyobj_ns; + xmlChar * name; + xmlChar * content; + + if (!PyArg_ParseTuple(args, (char *)"OOzz:xmlNewTextChild", &pyobj_parent, &pyobj_ns, &name, &content)) + return(NULL); + parent = (xmlNodePtr) PyxmlNode_Get(pyobj_parent); + ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); + + c_retval = xmlNewTextChild(parent, ns, name, content); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) */ +PyObject * +libxml_xmlNewTextLen(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlChar * content; + int len; + + if (!PyArg_ParseTuple(args, (char *)"zi:xmlNewTextLen", &content, &len)) + return(NULL); + + c_retval = xmlNewTextLen(content, len); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlNewTextReader(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlTextReaderPtr c_retval; + xmlParserInputBufferPtr input; + PyObject *pyobj_input; + char * URI; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNewTextReader", &pyobj_input, &URI)) + return(NULL); + input = (xmlParserInputBufferPtr) PyinputBuffer_Get(pyobj_input); + + c_retval = xmlNewTextReader(input, URI); + py_retval = libxml_xmlTextReaderPtrWrap((xmlTextReaderPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlNewTextReaderFilename(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlTextReaderPtr c_retval; + char * URI; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlNewTextReaderFilename", &URI)) + return(NULL); + + c_retval = xmlNewTextReaderFilename(URI); + py_retval = libxml_xmlTextReaderPtrWrap((xmlTextReaderPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * +libxml_xmlNewValidCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + PyObject *py_retval; + xmlValidCtxtPtr c_retval; + + c_retval = xmlNewValidCtxt(); + py_retval = libxml_xmlValidCtxtPtrWrap((xmlValidCtxtPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_VALID_ENABLED) */ +PyObject * +libxml_xmlNextChar(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlNextChar", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlNextChar(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#if defined(LIBXML_TREE_ENABLED) +PyObject * +libxml_xmlNextElementSibling(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlNextElementSibling", &pyobj_node)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlNextElementSibling(node); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) */ +PyObject * +libxml_xmlNodeAddContent(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlNodePtr cur; + PyObject *pyobj_cur; + xmlChar * content; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNodeAddContent", &pyobj_cur, &content)) + return(NULL); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + xmlNodeAddContent(cur, content); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlNodeAddContentLen(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlNodePtr cur; + PyObject *pyobj_cur; + xmlChar * content; + int len; + + if (!PyArg_ParseTuple(args, (char *)"Ozi:xmlNodeAddContentLen", &pyobj_cur, &content, &len)) + return(NULL); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + xmlNodeAddContentLen(cur, content, len); + Py_INCREF(Py_None); + return(Py_None); +} + +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_xmlNodeDumpOutput(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlOutputBufferPtr buf; + PyObject *pyobj_buf; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr cur; + PyObject *pyobj_cur; + int level; + int format; + char * encoding; + + if (!PyArg_ParseTuple(args, (char *)"OOOiiz:xmlNodeDumpOutput", &pyobj_buf, &pyobj_doc, &pyobj_cur, &level, &format, &encoding)) + return(NULL); + buf = (xmlOutputBufferPtr) PyoutputBuffer_Get(pyobj_buf); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + xmlNodeDumpOutput(buf, doc, cur, level, format, encoding); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +PyObject * +libxml_xmlNodeGetBase(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlNodeGetBase", &pyobj_doc, &pyobj_cur)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlNodeGetBase(doc, cur); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlNodeGetContent(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlNodeGetContent", &pyobj_cur)) + return(NULL); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlNodeGetContent(cur); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlNodeGetLang(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlNodeGetLang", &pyobj_cur)) + return(NULL); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlNodeGetLang(cur); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlNodeGetSpacePreserve(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlNodeGetSpacePreserve", &pyobj_cur)) + return(NULL); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlNodeGetSpacePreserve(cur); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlNodeIsText(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlNodeIsText", &pyobj_node)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlNodeIsText(node); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#if defined(LIBXML_TREE_ENABLED) +PyObject * +libxml_xmlNodeListGetRawString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr list; + PyObject *pyobj_list; + int inLine; + + if (!PyArg_ParseTuple(args, (char *)"OOi:xmlNodeListGetRawString", &pyobj_doc, &pyobj_list, &inLine)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + list = (xmlNodePtr) PyxmlNode_Get(pyobj_list); + + c_retval = xmlNodeListGetRawString(doc, list, inLine); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) */ +PyObject * +libxml_xmlNodeListGetString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr list; + PyObject *pyobj_list; + int inLine; + + if (!PyArg_ParseTuple(args, (char *)"OOi:xmlNodeListGetString", &pyobj_doc, &pyobj_list, &inLine)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + list = (xmlNodePtr) PyxmlNode_Get(pyobj_list); + + c_retval = xmlNodeListGetString(doc, list, inLine); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) +PyObject * +libxml_xmlNodeSetBase(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlNodePtr cur; + PyObject *pyobj_cur; + xmlChar * uri; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNodeSetBase", &pyobj_cur, &uri)) + return(NULL); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + xmlNodeSetBase(cur, uri); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) */ +PyObject * +libxml_xmlNodeSetContent(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlNodePtr cur; + PyObject *pyobj_cur; + xmlChar * content; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNodeSetContent", &pyobj_cur, &content)) + return(NULL); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + xmlNodeSetContent(cur, content); + Py_INCREF(Py_None); + return(Py_None); +} + +#if defined(LIBXML_TREE_ENABLED) +PyObject * +libxml_xmlNodeSetContentLen(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlNodePtr cur; + PyObject *pyobj_cur; + xmlChar * content; + int len; + + if (!PyArg_ParseTuple(args, (char *)"Ozi:xmlNodeSetContentLen", &pyobj_cur, &content, &len)) + return(NULL); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + xmlNodeSetContentLen(cur, content, len); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_TREE_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) +PyObject * +libxml_xmlNodeSetLang(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlNodePtr cur; + PyObject *pyobj_cur; + xmlChar * lang; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNodeSetLang", &pyobj_cur, &lang)) + return(NULL); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + xmlNodeSetLang(cur, lang); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_TREE_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) +PyObject * +libxml_xmlNodeSetName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlNodePtr cur; + PyObject *pyobj_cur; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlNodeSetName", &pyobj_cur, &name)) + return(NULL); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + xmlNodeSetName(cur, name); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_TREE_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) +PyObject * +libxml_xmlNodeSetSpacePreserve(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlNodePtr cur; + PyObject *pyobj_cur; + int val; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlNodeSetSpacePreserve", &pyobj_cur, &val)) + return(NULL); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + xmlNodeSetSpacePreserve(cur, val); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_TREE_ENABLED) */ +PyObject * +libxml_xmlNormalizeURIPath(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + char * path; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlNormalizeURIPath", &path)) + return(NULL); + + c_retval = xmlNormalizeURIPath(path); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlNormalizeWindowsPath(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * path; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlNormalizeWindowsPath", &path)) + return(NULL); + + c_retval = xmlNormalizeWindowsPath(path); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_xmlOutputBufferGetContent(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlOutputBufferPtr out; + PyObject *pyobj_out; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlOutputBufferGetContent", &pyobj_out)) + return(NULL); + out = (xmlOutputBufferPtr) PyoutputBuffer_Get(pyobj_out); + + c_retval = xmlOutputBufferGetContent(out); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_xmlOutputBufferWrite(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlOutputBufferPtr out; + PyObject *pyobj_out; + int len; + char * buf; + + if (!PyArg_ParseTuple(args, (char *)"Oiz:xmlOutputBufferWrite", &pyobj_out, &len, &buf)) + return(NULL); + out = (xmlOutputBufferPtr) PyoutputBuffer_Get(pyobj_out); + + c_retval = xmlOutputBufferWrite(out, len, buf); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_xmlOutputBufferWriteString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlOutputBufferPtr out; + PyObject *pyobj_out; + char * str; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlOutputBufferWriteString", &pyobj_out, &str)) + return(NULL); + out = (xmlOutputBufferPtr) PyoutputBuffer_Get(pyobj_out); + + c_retval = xmlOutputBufferWriteString(out, str); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +PyObject * +libxml_xmlParseAttValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseAttValue", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlParseAttValue(ctxt); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlParseAttributeListDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseAttributeListDecl", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlParseAttributeListDecl(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlParseCDSect(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseCDSect", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlParseCDSect(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * +libxml_xmlParseCatalogFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDocPtr c_retval; + char * filename; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlParseCatalogFile", &filename)) + return(NULL); + + c_retval = xmlParseCatalogFile(filename); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +PyObject * +libxml_xmlParseCharData(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + int cdata; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlParseCharData", &pyobj_ctxt, &cdata)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlParseCharData(ctxt, cdata); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlParseCharRef(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseCharRef", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlParseCharRef(ctxt); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#if defined(LIBXML_PUSH_ENABLED) +PyObject * +libxml_xmlParseChunk(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + char * chunk; + int py_buffsize0; + int size; + int terminate; + + if (!PyArg_ParseTuple(args, (char *)"Ot#ii:xmlParseChunk", &pyobj_ctxt, &chunk, &py_buffsize0, &size, &terminate)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlParseChunk(ctxt, chunk, size, terminate); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_PUSH_ENABLED) */ +PyObject * +libxml_xmlParseComment(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseComment", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlParseComment(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlParseContent(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseContent", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlParseContent(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#if defined(LIBXML_VALID_ENABLED) +PyObject * +libxml_xmlParseDTD(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDtdPtr c_retval; + xmlChar * ExternalID; + xmlChar * SystemID; + + if (!PyArg_ParseTuple(args, (char *)"zz:xmlParseDTD", &ExternalID, &SystemID)) + return(NULL); + + c_retval = xmlParseDTD(ExternalID, SystemID); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_SAX1_ENABLED) +PyObject * +libxml_xmlParseDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDocPtr c_retval; + xmlChar * cur; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlParseDoc", &cur)) + return(NULL); + + c_retval = xmlParseDoc(cur); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SAX1_ENABLED) */ +PyObject * +libxml_xmlParseDocTypeDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseDocTypeDecl", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlParseDocTypeDecl(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlParseDocument(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseDocument", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlParseDocument(ctxt); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlParseElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseElement", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlParseElement(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlParseElementDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseElementDecl", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlParseElementDecl(ctxt); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlParseEncName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseEncName", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlParseEncName(ctxt); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlParseEncodingDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseEncodingDecl", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlParseEncodingDecl(ctxt); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +#if defined(LIBXML_SAX1_ENABLED) +PyObject * +libxml_xmlParseEndTag(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseEndTag", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlParseEndTag(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_SAX1_ENABLED) */ +#if defined(LIBXML_SAX1_ENABLED) +PyObject * +libxml_xmlParseEntity(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDocPtr c_retval; + char * filename; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlParseEntity", &filename)) + return(NULL); + + c_retval = xmlParseEntity(filename); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SAX1_ENABLED) */ +PyObject * +libxml_xmlParseEntityDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseEntityDecl", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlParseEntityDecl(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlParseEntityRef(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlEntityPtr c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseEntityRef", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlParseEntityRef(ctxt); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlParseExtParsedEnt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseExtParsedEnt", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlParseExtParsedEnt(ctxt); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlParseExternalSubset(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlChar * ExternalID; + xmlChar * SystemID; + + if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlParseExternalSubset", &pyobj_ctxt, &ExternalID, &SystemID)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlParseExternalSubset(ctxt, ExternalID, SystemID); + Py_INCREF(Py_None); + return(Py_None); +} + +#if defined(LIBXML_SAX1_ENABLED) +PyObject * +libxml_xmlParseFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDocPtr c_retval; + char * filename; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlParseFile", &filename)) + return(NULL); + + c_retval = xmlParseFile(filename); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SAX1_ENABLED) */ +PyObject * +libxml_xmlParseMarkupDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseMarkupDecl", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlParseMarkupDecl(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#if defined(LIBXML_SAX1_ENABLED) +PyObject * +libxml_xmlParseMemory(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDocPtr c_retval; + char * buffer; + int py_buffsize0; + int size; + + if (!PyArg_ParseTuple(args, (char *)"t#i:xmlParseMemory", &buffer, &py_buffsize0, &size)) + return(NULL); + + c_retval = xmlParseMemory(buffer, size); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SAX1_ENABLED) */ +PyObject * +libxml_xmlParseMisc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseMisc", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlParseMisc(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlParseName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseName", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlParseName(ctxt); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * +libxml_xmlParseNamespace(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseNamespace", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlParseNamespace(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +PyObject * +libxml_xmlParseNmtoken(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseNmtoken", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlParseNmtoken(ctxt); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlParseNotationDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseNotationDecl", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlParseNotationDecl(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlParsePEReference(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParsePEReference", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlParsePEReference(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlParsePI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParsePI", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlParsePI(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlParsePITarget(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParsePITarget", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlParsePITarget(ctxt); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlParsePubidLiteral(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParsePubidLiteral", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlParsePubidLiteral(ctxt); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * +libxml_xmlParseQuotedString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseQuotedString", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlParseQuotedString(ctxt); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +PyObject * +libxml_xmlParseReference(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseReference", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlParseReference(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlParseSDDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseSDDecl", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlParseSDDecl(ctxt); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#if defined(LIBXML_SAX1_ENABLED) +PyObject * +libxml_xmlParseStartTag(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseStartTag", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlParseStartTag(ctxt); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SAX1_ENABLED) */ +PyObject * +libxml_xmlParseSystemLiteral(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseSystemLiteral", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlParseSystemLiteral(ctxt); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlParseTextDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseTextDecl", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlParseTextDecl(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlParseURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlURIPtr c_retval; + char * str; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlParseURI", &str)) + return(NULL); + + c_retval = xmlParseURI(str); + py_retval = libxml_xmlURIPtrWrap((xmlURIPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlParseURIRaw(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlURIPtr c_retval; + char * str; + int raw; + + if (!PyArg_ParseTuple(args, (char *)"zi:xmlParseURIRaw", &str, &raw)) + return(NULL); + + c_retval = xmlParseURIRaw(str, raw); + py_retval = libxml_xmlURIPtrWrap((xmlURIPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlParseURIReference(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlURIPtr uri; + PyObject *pyobj_uri; + char * str; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlParseURIReference", &pyobj_uri, &str)) + return(NULL); + uri = (xmlURIPtr) PyURI_Get(pyobj_uri); + + c_retval = xmlParseURIReference(uri, str); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlParseVersionInfo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseVersionInfo", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlParseVersionInfo(ctxt); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlParseVersionNum(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseVersionNum", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlParseVersionNum(ctxt); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlParseXMLDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParseXMLDecl", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlParseXMLDecl(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlParserGetDirectory(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + char * c_retval; + char * filename; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlParserGetDirectory", &filename)) + return(NULL); + + c_retval = xmlParserGetDirectory(filename); + py_retval = libxml_charPtrWrap((char *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlParserGetDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDocPtr c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParserGetDoc", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = ctxt->myDoc; + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlParserGetIsValid(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParserGetIsValid", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = ctxt->valid; + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlParserGetWellFormed(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParserGetWellFormed", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = ctxt->wellFormed; + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlParserHandlePEReference(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParserHandlePEReference", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlParserHandlePEReference(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * +libxml_xmlParserHandleReference(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlParserHandleReference", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlParserHandleReference(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +PyObject * +libxml_xmlParserInputBufferGrow(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlParserInputBufferPtr in; + PyObject *pyobj_in; + int len; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlParserInputBufferGrow", &pyobj_in, &len)) + return(NULL); + in = (xmlParserInputBufferPtr) PyinputBuffer_Get(pyobj_in); + + c_retval = xmlParserInputBufferGrow(in, len); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlParserInputBufferPush(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlParserInputBufferPtr in; + PyObject *pyobj_in; + int len; + char * buf; + + if (!PyArg_ParseTuple(args, (char *)"Oiz:xmlParserInputBufferPush", &pyobj_in, &len, &buf)) + return(NULL); + in = (xmlParserInputBufferPtr) PyinputBuffer_Get(pyobj_in); + + c_retval = xmlParserInputBufferPush(in, len, buf); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlParserInputBufferRead(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlParserInputBufferPtr in; + PyObject *pyobj_in; + int len; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlParserInputBufferRead", &pyobj_in, &len)) + return(NULL); + in = (xmlParserInputBufferPtr) PyinputBuffer_Get(pyobj_in); + + c_retval = xmlParserInputBufferRead(in, len); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlParserSetLineNumbers(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + int linenumbers; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlParserSetLineNumbers", &pyobj_ctxt, &linenumbers)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + ctxt->linenumbers = linenumbers; + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlParserSetLoadSubset(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + int loadsubset; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlParserSetLoadSubset", &pyobj_ctxt, &loadsubset)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + ctxt->loadsubset = loadsubset; + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlParserSetPedantic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + int pedantic; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlParserSetPedantic", &pyobj_ctxt, &pedantic)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + ctxt->pedantic = pedantic; + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlParserSetReplaceEntities(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + int replaceEntities; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlParserSetReplaceEntities", &pyobj_ctxt, &replaceEntities)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + ctxt->replaceEntities = replaceEntities; + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlParserSetValidate(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + int validate; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlParserSetValidate", &pyobj_ctxt, &validate)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + ctxt->validate = validate; + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlPathToURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * path; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlPathToURI", &path)) + return(NULL); + + c_retval = xmlPathToURI(path); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlPedanticParserDefault(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int val; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlPedanticParserDefault", &val)) + return(NULL); + + c_retval = xmlPedanticParserDefault(val); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlPopInput(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlPopInput", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlPopInput(ctxt); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlPopInputCallbacks(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + PyObject *py_retval; + int c_retval; + + c_retval = xmlPopInputCallbacks(); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#if defined(LIBXML_TREE_ENABLED) +PyObject * +libxml_xmlPreviousElementSibling(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlPreviousElementSibling", &pyobj_node)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlPreviousElementSibling(node); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) */ +PyObject * +libxml_xmlPrintURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + FILE * stream; + PyObject *pyobj_stream; + xmlURIPtr uri; + PyObject *pyobj_uri; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlPrintURI", &pyobj_stream, &pyobj_uri)) + return(NULL); + stream = (FILE *) PyFile_Get(pyobj_stream); + uri = (xmlURIPtr) PyURI_Get(pyobj_uri); + + xmlPrintURI(stream, uri); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlReadDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDocPtr c_retval; + xmlChar * cur; + char * URL; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"zzzi:xmlReadDoc", &cur, &URL, &encoding, &options)) + return(NULL); + + c_retval = xmlReadDoc(cur, URL, encoding, options); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlReadFd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDocPtr c_retval; + int fd; + char * URL; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"izzi:xmlReadFd", &fd, &URL, &encoding, &options)) + return(NULL); + + c_retval = xmlReadFd(fd, URL, encoding, options); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlReadFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDocPtr c_retval; + char * filename; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"zzi:xmlReadFile", &filename, &encoding, &options)) + return(NULL); + + c_retval = xmlReadFile(filename, encoding, options); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlReadMemory(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDocPtr c_retval; + char * buffer; + int py_buffsize0; + int size; + char * URL; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"t#izzi:xmlReadMemory", &buffer, &py_buffsize0, &size, &URL, &encoding, &options)) + return(NULL); + + c_retval = xmlReadMemory(buffer, size, URL, encoding, options); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlReaderForDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlTextReaderPtr c_retval; + xmlChar * cur; + char * URL; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"zzzi:xmlReaderForDoc", &cur, &URL, &encoding, &options)) + return(NULL); + + c_retval = xmlReaderForDoc(cur, URL, encoding, options); + py_retval = libxml_xmlTextReaderPtrWrap((xmlTextReaderPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlReaderForFd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlTextReaderPtr c_retval; + int fd; + char * URL; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"izzi:xmlReaderForFd", &fd, &URL, &encoding, &options)) + return(NULL); + + c_retval = xmlReaderForFd(fd, URL, encoding, options); + py_retval = libxml_xmlTextReaderPtrWrap((xmlTextReaderPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlReaderForFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlTextReaderPtr c_retval; + char * filename; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"zzi:xmlReaderForFile", &filename, &encoding, &options)) + return(NULL); + + c_retval = xmlReaderForFile(filename, encoding, options); + py_retval = libxml_xmlTextReaderPtrWrap((xmlTextReaderPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlReaderForMemory(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlTextReaderPtr c_retval; + char * buffer; + int size; + char * URL; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"zizzi:xmlReaderForMemory", &buffer, &size, &URL, &encoding, &options)) + return(NULL); + + c_retval = xmlReaderForMemory(buffer, size, URL, encoding, options); + py_retval = libxml_xmlTextReaderPtrWrap((xmlTextReaderPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlReaderNewDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + xmlChar * cur; + char * URL; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"Ozzzi:xmlReaderNewDoc", &pyobj_reader, &cur, &URL, &encoding, &options)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlReaderNewDoc(reader, cur, URL, encoding, options); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlReaderNewFd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + int fd; + char * URL; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"Oizzi:xmlReaderNewFd", &pyobj_reader, &fd, &URL, &encoding, &options)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlReaderNewFd(reader, fd, URL, encoding, options); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlReaderNewFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + char * filename; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"Ozzi:xmlReaderNewFile", &pyobj_reader, &filename, &encoding, &options)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlReaderNewFile(reader, filename, encoding, options); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlReaderNewMemory(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + char * buffer; + int size; + char * URL; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"Ozizzi:xmlReaderNewMemory", &pyobj_reader, &buffer, &size, &URL, &encoding, &options)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlReaderNewMemory(reader, buffer, size, URL, encoding, options); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlReaderNewWalker(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlReaderNewWalker", &pyobj_reader, &pyobj_doc)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlReaderNewWalker(reader, doc); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlReaderWalker(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlTextReaderPtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlReaderWalker", &pyobj_doc)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlReaderWalker(doc); + py_retval = libxml_xmlTextReaderPtrWrap((xmlTextReaderPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) +PyObject * +libxml_xmlReconciliateNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr tree; + PyObject *pyobj_tree; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlReconciliateNs", &pyobj_doc, &pyobj_tree)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + tree = (xmlNodePtr) PyxmlNode_Get(pyobj_tree); + + c_retval = xmlReconciliateNs(doc, tree); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) */ +#if defined(LIBXML_SAX1_ENABLED) +PyObject * +libxml_xmlRecoverDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDocPtr c_retval; + xmlChar * cur; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlRecoverDoc", &cur)) + return(NULL); + + c_retval = xmlRecoverDoc(cur); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SAX1_ENABLED) */ +#if defined(LIBXML_SAX1_ENABLED) +PyObject * +libxml_xmlRecoverFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDocPtr c_retval; + char * filename; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlRecoverFile", &filename)) + return(NULL); + + c_retval = xmlRecoverFile(filename); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SAX1_ENABLED) */ +#if defined(LIBXML_SAX1_ENABLED) +PyObject * +libxml_xmlRecoverMemory(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDocPtr c_retval; + char * buffer; + int py_buffsize0; + int size; + + if (!PyArg_ParseTuple(args, (char *)"t#i:xmlRecoverMemory", &buffer, &py_buffsize0, &size)) + return(NULL); + + c_retval = xmlRecoverMemory(buffer, size); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SAX1_ENABLED) */ +#if defined(LIBXML_REGEXP_ENABLED) +PyObject * +libxml_xmlRegFreeRegexp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlRegexpPtr regexp; + PyObject *pyobj_regexp; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlRegFreeRegexp", &pyobj_regexp)) + return(NULL); + regexp = (xmlRegexpPtr) PyxmlReg_Get(pyobj_regexp); + + xmlRegFreeRegexp(regexp); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_REGEXP_ENABLED) */ +#if defined(LIBXML_REGEXP_ENABLED) +PyObject * +libxml_xmlRegexpCompile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlRegexpPtr c_retval; + xmlChar * regexp; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlRegexpCompile", ®exp)) + return(NULL); + + c_retval = xmlRegexpCompile(regexp); + py_retval = libxml_xmlRegexpPtrWrap((xmlRegexpPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_REGEXP_ENABLED) */ +#if defined(LIBXML_REGEXP_ENABLED) +PyObject * +libxml_xmlRegexpExec(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlRegexpPtr comp; + PyObject *pyobj_comp; + xmlChar * content; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlRegexpExec", &pyobj_comp, &content)) + return(NULL); + comp = (xmlRegexpPtr) PyxmlReg_Get(pyobj_comp); + + c_retval = xmlRegexpExec(comp, content); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_REGEXP_ENABLED) */ +#if defined(LIBXML_REGEXP_ENABLED) +PyObject * +libxml_xmlRegexpIsDeterminist(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlRegexpPtr comp; + PyObject *pyobj_comp; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlRegexpIsDeterminist", &pyobj_comp)) + return(NULL); + comp = (xmlRegexpPtr) PyxmlReg_Get(pyobj_comp); + + c_retval = xmlRegexpIsDeterminist(comp); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_REGEXP_ENABLED) */ +#if defined(LIBXML_REGEXP_ENABLED) +PyObject * +libxml_xmlRegexpPrint(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + FILE * output; + PyObject *pyobj_output; + xmlRegexpPtr regexp; + PyObject *pyobj_regexp; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlRegexpPrint", &pyobj_output, &pyobj_regexp)) + return(NULL); + output = (FILE *) PyFile_Get(pyobj_output); + regexp = (xmlRegexpPtr) PyxmlReg_Get(pyobj_regexp); + + xmlRegexpPrint(output, regexp); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_REGEXP_ENABLED) */ +PyObject * +libxml_xmlRegisterDefaultInputCallbacks(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlRegisterDefaultInputCallbacks(); + Py_INCREF(Py_None); + return(Py_None); +} + +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_xmlRegisterDefaultOutputCallbacks(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlRegisterDefaultOutputCallbacks(); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) && defined(LIBXML_HTTP_ENABLED) +PyObject * +libxml_xmlRegisterHTTPPostCallbacks(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlRegisterHTTPPostCallbacks(); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_OUTPUT_ENABLED) && defined(LIBXML_HTTP_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +#endif +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlRelaxNGCleanupTypes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlRelaxNGCleanupTypes(); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_xmlRelaxNGDump(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + FILE * output; + PyObject *pyobj_output; + xmlRelaxNGPtr schema; + PyObject *pyobj_schema; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlRelaxNGDump", &pyobj_output, &pyobj_schema)) + return(NULL); + output = (FILE *) PyFile_Get(pyobj_output); + schema = (xmlRelaxNGPtr) PyrelaxNgSchema_Get(pyobj_schema); + + xmlRelaxNGDump(output, schema); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_xmlRelaxNGDumpTree(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + FILE * output; + PyObject *pyobj_output; + xmlRelaxNGPtr schema; + PyObject *pyobj_schema; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlRelaxNGDumpTree", &pyobj_output, &pyobj_schema)) + return(NULL); + output = (FILE *) PyFile_Get(pyobj_output); + schema = (xmlRelaxNGPtr) PyrelaxNgSchema_Get(pyobj_schema); + + xmlRelaxNGDumpTree(output, schema); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlRelaxNGFree(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlRelaxNGPtr schema; + PyObject *pyobj_schema; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlRelaxNGFree", &pyobj_schema)) + return(NULL); + schema = (xmlRelaxNGPtr) PyrelaxNgSchema_Get(pyobj_schema); + + xmlRelaxNGFree(schema); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlRelaxNGFreeParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlRelaxNGParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlRelaxNGFreeParserCtxt", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlRelaxNGParserCtxtPtr) PyrelaxNgParserCtxt_Get(pyobj_ctxt); + + xmlRelaxNGFreeParserCtxt(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlRelaxNGInitTypes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + PyObject *py_retval; + int c_retval; + + c_retval = xmlRelaxNGInitTypes(); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlRelaxNGNewDocParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlRelaxNGParserCtxtPtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlRelaxNGNewDocParserCtxt", &pyobj_doc)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlRelaxNGNewDocParserCtxt(doc); + py_retval = libxml_xmlRelaxNGParserCtxtPtrWrap((xmlRelaxNGParserCtxtPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlRelaxNGNewMemParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlRelaxNGParserCtxtPtr c_retval; + char * buffer; + int size; + + if (!PyArg_ParseTuple(args, (char *)"zi:xmlRelaxNGNewMemParserCtxt", &buffer, &size)) + return(NULL); + + c_retval = xmlRelaxNGNewMemParserCtxt(buffer, size); + py_retval = libxml_xmlRelaxNGParserCtxtPtrWrap((xmlRelaxNGParserCtxtPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlRelaxNGNewParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlRelaxNGParserCtxtPtr c_retval; + char * URL; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlRelaxNGNewParserCtxt", &URL)) + return(NULL); + + c_retval = xmlRelaxNGNewParserCtxt(URL); + py_retval = libxml_xmlRelaxNGParserCtxtPtrWrap((xmlRelaxNGParserCtxtPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlRelaxNGNewValidCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlRelaxNGValidCtxtPtr c_retval; + xmlRelaxNGPtr schema; + PyObject *pyobj_schema; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlRelaxNGNewValidCtxt", &pyobj_schema)) + return(NULL); + schema = (xmlRelaxNGPtr) PyrelaxNgSchema_Get(pyobj_schema); + + c_retval = xmlRelaxNGNewValidCtxt(schema); + py_retval = libxml_xmlRelaxNGValidCtxtPtrWrap((xmlRelaxNGValidCtxtPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlRelaxNGParse(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlRelaxNGPtr c_retval; + xmlRelaxNGParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlRelaxNGParse", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlRelaxNGParserCtxtPtr) PyrelaxNgParserCtxt_Get(pyobj_ctxt); + + c_retval = xmlRelaxNGParse(ctxt); + py_retval = libxml_xmlRelaxNGPtrWrap((xmlRelaxNGPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlRelaxNGValidateDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlRelaxNGValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlRelaxNGValidateDoc", &pyobj_ctxt, &pyobj_doc)) + return(NULL); + ctxt = (xmlRelaxNGValidCtxtPtr) PyrelaxNgValidCtxt_Get(pyobj_ctxt); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlRelaxNGValidateDoc(ctxt, doc); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlRelaxNGValidateFullElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlRelaxNGValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr elem; + PyObject *pyobj_elem; + + if (!PyArg_ParseTuple(args, (char *)"OOO:xmlRelaxNGValidateFullElement", &pyobj_ctxt, &pyobj_doc, &pyobj_elem)) + return(NULL); + ctxt = (xmlRelaxNGValidCtxtPtr) PyrelaxNgValidCtxt_Get(pyobj_ctxt); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); + + c_retval = xmlRelaxNGValidateFullElement(ctxt, doc, elem); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlRelaxNGValidatePopElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlRelaxNGValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr elem; + PyObject *pyobj_elem; + + if (!PyArg_ParseTuple(args, (char *)"OOO:xmlRelaxNGValidatePopElement", &pyobj_ctxt, &pyobj_doc, &pyobj_elem)) + return(NULL); + ctxt = (xmlRelaxNGValidCtxtPtr) PyrelaxNgValidCtxt_Get(pyobj_ctxt); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); + + c_retval = xmlRelaxNGValidatePopElement(ctxt, doc, elem); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlRelaxNGValidatePushCData(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlRelaxNGValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlChar * data; + int len; + + if (!PyArg_ParseTuple(args, (char *)"Ozi:xmlRelaxNGValidatePushCData", &pyobj_ctxt, &data, &len)) + return(NULL); + ctxt = (xmlRelaxNGValidCtxtPtr) PyrelaxNgValidCtxt_Get(pyobj_ctxt); + + c_retval = xmlRelaxNGValidatePushCData(ctxt, data, len); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlRelaxNGValidatePushElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlRelaxNGValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr elem; + PyObject *pyobj_elem; + + if (!PyArg_ParseTuple(args, (char *)"OOO:xmlRelaxNGValidatePushElement", &pyobj_ctxt, &pyobj_doc, &pyobj_elem)) + return(NULL); + ctxt = (xmlRelaxNGValidCtxtPtr) PyrelaxNgValidCtxt_Get(pyobj_ctxt); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); + + c_retval = xmlRelaxNGValidatePushElement(ctxt, doc, elem); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlRelaxParserSetFlag(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlRelaxNGParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + int flags; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlRelaxParserSetFlag", &pyobj_ctxt, &flags)) + return(NULL); + ctxt = (xmlRelaxNGParserCtxtPtr) PyrelaxNgParserCtxt_Get(pyobj_ctxt); + + c_retval = xmlRelaxParserSetFlag(ctxt, flags); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +PyObject * +libxml_xmlRemoveID(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlAttrPtr attr; + PyObject *pyobj_attr; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlRemoveID", &pyobj_doc, &pyobj_attr)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + attr = (xmlAttrPtr) PyxmlNode_Get(pyobj_attr); + + c_retval = xmlRemoveID(doc, attr); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlRemoveProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlAttrPtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlRemoveProp", &pyobj_cur)) + return(NULL); + cur = (xmlAttrPtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlRemoveProp(cur); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlRemoveRef(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlAttrPtr attr; + PyObject *pyobj_attr; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlRemoveRef", &pyobj_doc, &pyobj_attr)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + attr = (xmlAttrPtr) PyxmlNode_Get(pyobj_attr); + + c_retval = xmlRemoveRef(doc, attr); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) +PyObject * +libxml_xmlReplaceNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlNodePtr old; + PyObject *pyobj_old; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlReplaceNode", &pyobj_old, &pyobj_cur)) + return(NULL); + old = (xmlNodePtr) PyxmlNode_Get(pyobj_old); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlReplaceNode(old, cur); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */ +PyObject * +libxml_xmlResetError(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlErrorPtr err; + PyObject *pyobj_err; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlResetError", &pyobj_err)) + return(NULL); + err = (xmlErrorPtr) PyError_Get(pyobj_err); + + xmlResetError(err); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlResetLastError(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlResetLastError(); + Py_INCREF(Py_None); + return(Py_None); +} + +#if defined(LIBXML_SAX1_ENABLED) +PyObject * +libxml_xmlSAXDefaultVersion(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int version; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlSAXDefaultVersion", &version)) + return(NULL); + + c_retval = xmlSAXDefaultVersion(version); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SAX1_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_xmlSaveFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + char * filename; + xmlDocPtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"zO:xmlSaveFile", &filename, &pyobj_cur)) + return(NULL); + cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlSaveFile(filename, cur); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_xmlSaveFileEnc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + char * filename; + xmlDocPtr cur; + PyObject *pyobj_cur; + char * encoding; + + if (!PyArg_ParseTuple(args, (char *)"zOz:xmlSaveFileEnc", &filename, &pyobj_cur, &encoding)) + return(NULL); + cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlSaveFileEnc(filename, cur, encoding); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_xmlSaveFormatFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + char * filename; + xmlDocPtr cur; + PyObject *pyobj_cur; + int format; + + if (!PyArg_ParseTuple(args, (char *)"zOi:xmlSaveFormatFile", &filename, &pyobj_cur, &format)) + return(NULL); + cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlSaveFormatFile(filename, cur, format); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_xmlSaveFormatFileEnc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + char * filename; + xmlDocPtr cur; + PyObject *pyobj_cur; + char * encoding; + int format; + + if (!PyArg_ParseTuple(args, (char *)"zOzi:xmlSaveFormatFileEnc", &filename, &pyobj_cur, &encoding, &format)) + return(NULL); + cur = (xmlDocPtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlSaveFormatFileEnc(filename, cur, encoding, format); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +PyObject * +libxml_xmlSaveUri(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlURIPtr uri; + PyObject *pyobj_uri; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlSaveUri", &pyobj_uri)) + return(NULL); + uri = (xmlURIPtr) PyURI_Get(pyobj_uri); + + c_retval = xmlSaveUri(uri); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * +libxml_xmlScanName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlScanName", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlScanName(ctxt); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlSchemaCleanupTypes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlSchemaCleanupTypes(); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlSchemaCollapseString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * value; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlSchemaCollapseString", &value)) + return(NULL); + + c_retval = xmlSchemaCollapseString(value); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_xmlSchemaDump(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + FILE * output; + PyObject *pyobj_output; + xmlSchemaPtr schema; + PyObject *pyobj_schema; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlSchemaDump", &pyobj_output, &pyobj_schema)) + return(NULL); + output = (FILE *) PyFile_Get(pyobj_output); + schema = (xmlSchemaPtr) PySchema_Get(pyobj_schema); + + xmlSchemaDump(output, schema); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlSchemaFree(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlSchemaPtr schema; + PyObject *pyobj_schema; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlSchemaFree", &pyobj_schema)) + return(NULL); + schema = (xmlSchemaPtr) PySchema_Get(pyobj_schema); + + xmlSchemaFree(schema); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlSchemaFreeParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlSchemaParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlSchemaFreeParserCtxt", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlSchemaParserCtxtPtr) PySchemaParserCtxt_Get(pyobj_ctxt); + + xmlSchemaFreeParserCtxt(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlSchemaInitTypes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlSchemaInitTypes(); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlSchemaIsValid(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlSchemaValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlSchemaIsValid", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlSchemaValidCtxtPtr) PySchemaValidCtxt_Get(pyobj_ctxt); + + c_retval = xmlSchemaIsValid(ctxt); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlSchemaNewDocParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlSchemaParserCtxtPtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlSchemaNewDocParserCtxt", &pyobj_doc)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlSchemaNewDocParserCtxt(doc); + py_retval = libxml_xmlSchemaParserCtxtPtrWrap((xmlSchemaParserCtxtPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlSchemaNewMemParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlSchemaParserCtxtPtr c_retval; + char * buffer; + int size; + + if (!PyArg_ParseTuple(args, (char *)"zi:xmlSchemaNewMemParserCtxt", &buffer, &size)) + return(NULL); + + c_retval = xmlSchemaNewMemParserCtxt(buffer, size); + py_retval = libxml_xmlSchemaParserCtxtPtrWrap((xmlSchemaParserCtxtPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlSchemaNewParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlSchemaParserCtxtPtr c_retval; + char * URL; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlSchemaNewParserCtxt", &URL)) + return(NULL); + + c_retval = xmlSchemaNewParserCtxt(URL); + py_retval = libxml_xmlSchemaParserCtxtPtrWrap((xmlSchemaParserCtxtPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlSchemaNewValidCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlSchemaValidCtxtPtr c_retval; + xmlSchemaPtr schema; + PyObject *pyobj_schema; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlSchemaNewValidCtxt", &pyobj_schema)) + return(NULL); + schema = (xmlSchemaPtr) PySchema_Get(pyobj_schema); + + c_retval = xmlSchemaNewValidCtxt(schema); + py_retval = libxml_xmlSchemaValidCtxtPtrWrap((xmlSchemaValidCtxtPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlSchemaParse(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlSchemaPtr c_retval; + xmlSchemaParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlSchemaParse", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlSchemaParserCtxtPtr) PySchemaParserCtxt_Get(pyobj_ctxt); + + c_retval = xmlSchemaParse(ctxt); + py_retval = libxml_xmlSchemaPtrWrap((xmlSchemaPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlSchemaSetValidOptions(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlSchemaValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + int options; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlSchemaSetValidOptions", &pyobj_ctxt, &options)) + return(NULL); + ctxt = (xmlSchemaValidCtxtPtr) PySchemaValidCtxt_Get(pyobj_ctxt); + + c_retval = xmlSchemaSetValidOptions(ctxt, options); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlSchemaValidCtxtGetOptions(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlSchemaValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlSchemaValidCtxtGetOptions", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlSchemaValidCtxtPtr) PySchemaValidCtxt_Get(pyobj_ctxt); + + c_retval = xmlSchemaValidCtxtGetOptions(ctxt); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlSchemaValidCtxtGetParserCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlParserCtxtPtr c_retval; + xmlSchemaValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlSchemaValidCtxtGetParserCtxt", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlSchemaValidCtxtPtr) PySchemaValidCtxt_Get(pyobj_ctxt); + + c_retval = xmlSchemaValidCtxtGetParserCtxt(ctxt); + py_retval = libxml_xmlParserCtxtPtrWrap((xmlParserCtxtPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlSchemaValidateDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlSchemaValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlSchemaValidateDoc", &pyobj_ctxt, &pyobj_doc)) + return(NULL); + ctxt = (xmlSchemaValidCtxtPtr) PySchemaValidCtxt_Get(pyobj_ctxt); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlSchemaValidateDoc(ctxt, doc); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlSchemaValidateFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlSchemaValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + char * filename; + int options; + + if (!PyArg_ParseTuple(args, (char *)"Ozi:xmlSchemaValidateFile", &pyobj_ctxt, &filename, &options)) + return(NULL); + ctxt = (xmlSchemaValidCtxtPtr) PySchemaValidCtxt_Get(pyobj_ctxt); + + c_retval = xmlSchemaValidateFile(ctxt, filename, options); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlSchemaValidateOneElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlSchemaValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlNodePtr elem; + PyObject *pyobj_elem; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlSchemaValidateOneElement", &pyobj_ctxt, &pyobj_elem)) + return(NULL); + ctxt = (xmlSchemaValidCtxtPtr) PySchemaValidCtxt_Get(pyobj_ctxt); + elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); + + c_retval = xmlSchemaValidateOneElement(ctxt, elem); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlSchemaValidateSetFilename(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlSchemaValidCtxtPtr vctxt; + PyObject *pyobj_vctxt; + char * filename; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlSchemaValidateSetFilename", &pyobj_vctxt, &filename)) + return(NULL); + vctxt = (xmlSchemaValidCtxtPtr) PySchemaValidCtxt_Get(pyobj_vctxt); + + xmlSchemaValidateSetFilename(vctxt, filename); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlSchemaWhiteSpaceReplace(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * value; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlSchemaWhiteSpaceReplace", &value)) + return(NULL); + + c_retval = xmlSchemaWhiteSpaceReplace(value); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +PyObject * +libxml_xmlSearchNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNsPtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr node; + PyObject *pyobj_node; + xmlChar * nameSpace; + + if (!PyArg_ParseTuple(args, (char *)"OOz:xmlSearchNs", &pyobj_doc, &pyobj_node, &nameSpace)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlSearchNs(doc, node, nameSpace); + py_retval = libxml_xmlNsPtrWrap((xmlNsPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlSearchNsByHref(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNsPtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr node; + PyObject *pyobj_node; + xmlChar * href; + + if (!PyArg_ParseTuple(args, (char *)"OOz:xmlSearchNsByHref", &pyobj_doc, &pyobj_node, &href)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlSearchNsByHref(doc, node, href); + py_retval = libxml_xmlNsPtrWrap((xmlNsPtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlSetCompressMode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + int mode; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlSetCompressMode", &mode)) + return(NULL); + + xmlSetCompressMode(mode); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlSetDocCompressMode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlDocPtr doc; + PyObject *pyobj_doc; + int mode; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlSetDocCompressMode", &pyobj_doc, &mode)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + xmlSetDocCompressMode(doc, mode); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlSetListDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlNodePtr list; + PyObject *pyobj_list; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlSetListDoc", &pyobj_list, &pyobj_doc)) + return(NULL); + list = (xmlNodePtr) PyxmlNode_Get(pyobj_list); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + xmlSetListDoc(list, doc); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlSetNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlNodePtr node; + PyObject *pyobj_node; + xmlNsPtr ns; + PyObject *pyobj_ns; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlSetNs", &pyobj_node, &pyobj_ns)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); + + xmlSetNs(node, ns); + Py_INCREF(Py_None); + return(Py_None); +} + +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_xmlSetNsProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlAttrPtr c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + xmlNsPtr ns; + PyObject *pyobj_ns; + xmlChar * name; + xmlChar * value; + + if (!PyArg_ParseTuple(args, (char *)"OOzz:xmlSetNsProp", &pyobj_node, &pyobj_ns, &name, &value)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); + + c_retval = xmlSetNsProp(node, ns, name, value); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) +PyObject * +libxml_xmlSetProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlAttrPtr c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + xmlChar * name; + xmlChar * value; + + if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlSetProp", &pyobj_node, &name, &value)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlSetProp(node, name, value); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */ +PyObject * +libxml_xmlSetTreeDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlNodePtr tree; + PyObject *pyobj_tree; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlSetTreeDoc", &pyobj_tree, &pyobj_doc)) + return(NULL); + tree = (xmlNodePtr) PyxmlNode_Get(pyobj_tree); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + xmlSetTreeDoc(tree, doc); + Py_INCREF(Py_None); + return(Py_None); +} + +#if defined(LIBXML_SAX1_ENABLED) +PyObject * +libxml_xmlSetupParserForBuffer(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlChar * buffer; + char * filename; + + if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlSetupParserForBuffer", &pyobj_ctxt, &buffer, &filename)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlSetupParserForBuffer(ctxt, buffer, filename); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_SAX1_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * +libxml_xmlShellPrintNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlNodePtr node; + PyObject *pyobj_node; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlShellPrintNode", &pyobj_node)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + xmlShellPrintNode(node); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlShellPrintXPathError(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + int errorType; + char * arg; + + if (!PyArg_ParseTuple(args, (char *)"iz:xmlShellPrintXPathError", &errorType, &arg)) + return(NULL); + + xmlShellPrintXPathError(errorType, arg); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) */ +PyObject * +libxml_xmlSkipBlankChars(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlSkipBlankChars", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlSkipBlankChars(ctxt); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlStopParser(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlStopParser", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + xmlStopParser(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlStrEqual(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * str1; + xmlChar * str2; + + if (!PyArg_ParseTuple(args, (char *)"zz:xmlStrEqual", &str1, &str2)) + return(NULL); + + c_retval = xmlStrEqual(str1, str2); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlStrQEqual(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * pref; + xmlChar * name; + xmlChar * str; + + if (!PyArg_ParseTuple(args, (char *)"zzz:xmlStrQEqual", &pref, &name, &str)) + return(NULL); + + c_retval = xmlStrQEqual(pref, name, str); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlStrcasecmp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * str1; + xmlChar * str2; + + if (!PyArg_ParseTuple(args, (char *)"zz:xmlStrcasecmp", &str1, &str2)) + return(NULL); + + c_retval = xmlStrcasecmp(str1, str2); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlStrcasestr(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlChar * str; + xmlChar * val; + + if (!PyArg_ParseTuple(args, (char *)"zz:xmlStrcasestr", &str, &val)) + return(NULL); + + c_retval = xmlStrcasestr(str, val); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlStrcat(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * cur; + xmlChar * add; + + if (!PyArg_ParseTuple(args, (char *)"zz:xmlStrcat", &cur, &add)) + return(NULL); + + c_retval = xmlStrcat(cur, add); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlStrchr(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlChar * str; + xmlChar val; + + if (!PyArg_ParseTuple(args, (char *)"zc:xmlStrchr", &str, &val)) + return(NULL); + + c_retval = xmlStrchr(str, val); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlStrcmp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * str1; + xmlChar * str2; + + if (!PyArg_ParseTuple(args, (char *)"zz:xmlStrcmp", &str1, &str2)) + return(NULL); + + c_retval = xmlStrcmp(str1, str2); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlStrdup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * cur; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlStrdup", &cur)) + return(NULL); + + c_retval = xmlStrdup(cur); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlStringDecodeEntities(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlChar * str; + int what; + xmlChar end; + xmlChar end2; + xmlChar end3; + + if (!PyArg_ParseTuple(args, (char *)"Oziccc:xmlStringDecodeEntities", &pyobj_ctxt, &str, &what, &end, &end2, &end3)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlStringDecodeEntities(ctxt, str, what, end, end2, end3); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlStringGetNodeList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * value; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlStringGetNodeList", &pyobj_doc, &value)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlStringGetNodeList(doc, value); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlStringLenDecodeEntities(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlParserCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlChar * str; + int len; + int what; + xmlChar end; + xmlChar end2; + xmlChar end3; + + if (!PyArg_ParseTuple(args, (char *)"Oziiccc:xmlStringLenDecodeEntities", &pyobj_ctxt, &str, &len, &what, &end, &end2, &end3)) + return(NULL); + ctxt = (xmlParserCtxtPtr) PyparserCtxt_Get(pyobj_ctxt); + + c_retval = xmlStringLenDecodeEntities(ctxt, str, len, what, end, end2, end3); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlStringLenGetNodeList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * value; + int len; + + if (!PyArg_ParseTuple(args, (char *)"Ozi:xmlStringLenGetNodeList", &pyobj_doc, &value, &len)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlStringLenGetNodeList(doc, value, len); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlStrlen(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * str; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlStrlen", &str)) + return(NULL); + + c_retval = xmlStrlen(str); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlStrncasecmp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * str1; + xmlChar * str2; + int len; + + if (!PyArg_ParseTuple(args, (char *)"zzi:xmlStrncasecmp", &str1, &str2, &len)) + return(NULL); + + c_retval = xmlStrncasecmp(str1, str2, len); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlStrncat(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * cur; + xmlChar * add; + int len; + + if (!PyArg_ParseTuple(args, (char *)"zzi:xmlStrncat", &cur, &add, &len)) + return(NULL); + + c_retval = xmlStrncat(cur, add, len); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlStrncatNew(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * str1; + xmlChar * str2; + int len; + + if (!PyArg_ParseTuple(args, (char *)"zzi:xmlStrncatNew", &str1, &str2, &len)) + return(NULL); + + c_retval = xmlStrncatNew(str1, str2, len); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlStrncmp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * str1; + xmlChar * str2; + int len; + + if (!PyArg_ParseTuple(args, (char *)"zzi:xmlStrncmp", &str1, &str2, &len)) + return(NULL); + + c_retval = xmlStrncmp(str1, str2, len); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlStrndup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * cur; + int len; + + if (!PyArg_ParseTuple(args, (char *)"zi:xmlStrndup", &cur, &len)) + return(NULL); + + c_retval = xmlStrndup(cur, len); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlStrstr(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlChar * str; + xmlChar * val; + + if (!PyArg_ParseTuple(args, (char *)"zz:xmlStrstr", &str, &val)) + return(NULL); + + c_retval = xmlStrstr(str, val); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlStrsub(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * str; + int start; + int len; + + if (!PyArg_ParseTuple(args, (char *)"zii:xmlStrsub", &str, &start, &len)) + return(NULL); + + c_retval = xmlStrsub(str, start, len); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlSubstituteEntitiesDefault(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int val; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlSubstituteEntitiesDefault", &val)) + return(NULL); + + c_retval = xmlSubstituteEntitiesDefault(val); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlTextConcat(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + xmlChar * content; + int len; + + if (!PyArg_ParseTuple(args, (char *)"Ozi:xmlTextConcat", &pyobj_node, &content, &len)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlTextConcat(node, content, len); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlTextMerge(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlNodePtr first; + PyObject *pyobj_first; + xmlNodePtr second; + PyObject *pyobj_second; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlTextMerge", &pyobj_first, &pyobj_second)) + return(NULL); + first = (xmlNodePtr) PyxmlNode_Get(pyobj_first); + second = (xmlNodePtr) PyxmlNode_Get(pyobj_second); + + c_retval = xmlTextMerge(first, second); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderAttributeCount(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderAttributeCount", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderAttributeCount(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderByteConsumed(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + long c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderByteConsumed", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderByteConsumed(reader); + py_retval = libxml_longWrap((long) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderClose(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderClose", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderClose(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderConstBaseUri(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderConstBaseUri", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderConstBaseUri(reader); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderConstEncoding(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderConstEncoding", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderConstEncoding(reader); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderConstLocalName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderConstLocalName", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderConstLocalName(reader); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderConstName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderConstName", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderConstName(reader); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderConstNamespaceUri(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderConstNamespaceUri", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderConstNamespaceUri(reader); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderConstPrefix(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderConstPrefix", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderConstPrefix(reader); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderConstString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + xmlChar * str; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlTextReaderConstString", &pyobj_reader, &str)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderConstString(reader, str); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderConstValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderConstValue", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderConstValue(reader); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderConstXmlLang(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderConstXmlLang", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderConstXmlLang(reader); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderConstXmlVersion(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderConstXmlVersion", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderConstXmlVersion(reader); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderCurrentDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDocPtr c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderCurrentDoc", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderCurrentDoc(reader); + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderCurrentNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderCurrentNode", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderCurrentNode(reader); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderDepth(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderDepth", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderDepth(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderExpand(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderExpand", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderExpand(reader); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderGetAttribute(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlTextReaderGetAttribute", &pyobj_reader, &name)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderGetAttribute(reader, name); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderGetAttributeNo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + int no; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlTextReaderGetAttributeNo", &pyobj_reader, &no)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderGetAttributeNo(reader, no); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderGetAttributeNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + xmlChar * localName; + xmlChar * namespaceURI; + + if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlTextReaderGetAttributeNs", &pyobj_reader, &localName, &namespaceURI)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderGetAttributeNs(reader, localName, namespaceURI); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderGetParserColumnNumber(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderGetParserColumnNumber", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderGetParserColumnNumber(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderGetParserLineNumber(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderGetParserLineNumber", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderGetParserLineNumber(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderGetParserProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + int prop; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlTextReaderGetParserProp", &pyobj_reader, &prop)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderGetParserProp(reader, prop); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderGetRemainder(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlParserInputBufferPtr c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderGetRemainder", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderGetRemainder(reader); + py_retval = libxml_xmlParserInputBufferPtrWrap((xmlParserInputBufferPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderHasAttributes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderHasAttributes", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderHasAttributes(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderHasValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderHasValue", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderHasValue(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderIsDefault(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderIsDefault", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderIsDefault(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderIsEmptyElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderIsEmptyElement", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderIsEmptyElement(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderIsNamespaceDecl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderIsNamespaceDecl", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderIsNamespaceDecl(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderIsValid(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderIsValid", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderIsValid(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderLocatorBaseURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlTextReaderLocatorPtr locator; + PyObject *pyobj_locator; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderLocatorBaseURI", &pyobj_locator)) + return(NULL); + locator = (xmlTextReaderLocatorPtr) PyxmlTextReaderLocator_Get(pyobj_locator); + + c_retval = xmlTextReaderLocatorBaseURI(locator); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderLocatorLineNumber(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderLocatorPtr locator; + PyObject *pyobj_locator; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderLocatorLineNumber", &pyobj_locator)) + return(NULL); + locator = (xmlTextReaderLocatorPtr) PyxmlTextReaderLocator_Get(pyobj_locator); + + c_retval = xmlTextReaderLocatorLineNumber(locator); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderLookupNamespace(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + xmlChar * prefix; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlTextReaderLookupNamespace", &pyobj_reader, &prefix)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderLookupNamespace(reader, prefix); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderMoveToAttribute(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlTextReaderMoveToAttribute", &pyobj_reader, &name)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderMoveToAttribute(reader, name); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderMoveToAttributeNo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + int no; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlTextReaderMoveToAttributeNo", &pyobj_reader, &no)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderMoveToAttributeNo(reader, no); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderMoveToAttributeNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + xmlChar * localName; + xmlChar * namespaceURI; + + if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlTextReaderMoveToAttributeNs", &pyobj_reader, &localName, &namespaceURI)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderMoveToAttributeNs(reader, localName, namespaceURI); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderMoveToElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderMoveToElement", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderMoveToElement(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderMoveToFirstAttribute(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderMoveToFirstAttribute", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderMoveToFirstAttribute(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderMoveToNextAttribute(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderMoveToNextAttribute", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderMoveToNextAttribute(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderNext(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderNext", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderNext(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderNextSibling(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderNextSibling", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderNextSibling(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderNodeType(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderNodeType", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderNodeType(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderNormalization(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderNormalization", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderNormalization(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderPreserve(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderPreserve", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderPreserve(reader); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderQuoteChar(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderQuoteChar", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderQuoteChar(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderRead(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderRead", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderRead(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderReadAttributeValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderReadAttributeValue", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderReadAttributeValue(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_WRITER_ENABLED) +PyObject * +libxml_xmlTextReaderReadInnerXml(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderReadInnerXml", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderReadInnerXml(reader); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_WRITER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_WRITER_ENABLED) +PyObject * +libxml_xmlTextReaderReadOuterXml(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderReadOuterXml", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderReadOuterXml(reader); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_WRITER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderReadState(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderReadState", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderReadState(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderReadString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderReadString", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderReadString(reader); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlTextReaderRelaxNGSetSchema(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + xmlRelaxNGPtr schema; + PyObject *pyobj_schema; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlTextReaderRelaxNGSetSchema", &pyobj_reader, &pyobj_schema)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + schema = (xmlRelaxNGPtr) PyrelaxNgSchema_Get(pyobj_schema); + + c_retval = xmlTextReaderRelaxNGSetSchema(reader, schema); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlTextReaderRelaxNGValidate(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + char * rng; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlTextReaderRelaxNGValidate", &pyobj_reader, &rng)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderRelaxNGValidate(reader, rng); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlTextReaderRelaxNGValidateCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + xmlRelaxNGValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + int options; + + if (!PyArg_ParseTuple(args, (char *)"OOi:xmlTextReaderRelaxNGValidateCtxt", &pyobj_reader, &pyobj_ctxt, &options)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + ctxt = (xmlRelaxNGValidCtxtPtr) PyrelaxNgValidCtxt_Get(pyobj_ctxt); + + c_retval = xmlTextReaderRelaxNGValidateCtxt(reader, ctxt, options); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlTextReaderSchemaValidate(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + char * xsd; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlTextReaderSchemaValidate", &pyobj_reader, &xsd)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderSchemaValidate(reader, xsd); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlTextReaderSchemaValidateCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + xmlSchemaValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + int options; + + if (!PyArg_ParseTuple(args, (char *)"OOi:xmlTextReaderSchemaValidateCtxt", &pyobj_reader, &pyobj_ctxt, &options)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + ctxt = (xmlSchemaValidCtxtPtr) PySchemaValidCtxt_Get(pyobj_ctxt); + + c_retval = xmlTextReaderSchemaValidateCtxt(reader, ctxt, options); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderSetParserProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + int prop; + int value; + + if (!PyArg_ParseTuple(args, (char *)"Oii:xmlTextReaderSetParserProp", &pyobj_reader, &prop, &value)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderSetParserProp(reader, prop, value); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlTextReaderSetSchema(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + xmlSchemaPtr schema; + PyObject *pyobj_schema; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlTextReaderSetSchema", &pyobj_reader, &pyobj_schema)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + schema = (xmlSchemaPtr) PySchema_Get(pyobj_schema); + + c_retval = xmlTextReaderSetSchema(reader, schema); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderSetup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + xmlParserInputBufferPtr input; + PyObject *pyobj_input; + char * URL; + char * encoding; + int options; + + if (!PyArg_ParseTuple(args, (char *)"OOzzi:xmlTextReaderSetup", &pyobj_reader, &pyobj_input, &URL, &encoding, &options)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + input = (xmlParserInputBufferPtr) PyinputBuffer_Get(pyobj_input); + + c_retval = xmlTextReaderSetup(reader, input, URL, encoding, options); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * +libxml_xmlTextReaderStandalone(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlTextReaderPtr reader; + PyObject *pyobj_reader; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlTextReaderStandalone", &pyobj_reader)) + return(NULL); + reader = (xmlTextReaderPtr) PyxmlTextReader_Get(pyobj_reader); + + c_retval = xmlTextReaderStandalone(reader); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_READER_ENABLED) */ +PyObject * +libxml_xmlThrDefDefaultBufferSize(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int v; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefDefaultBufferSize", &v)) + return(NULL); + + c_retval = xmlThrDefDefaultBufferSize(v); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlThrDefDoValidityCheckingDefaultValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int v; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefDoValidityCheckingDefaultValue", &v)) + return(NULL); + + c_retval = xmlThrDefDoValidityCheckingDefaultValue(v); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlThrDefGetWarningsDefaultValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int v; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefGetWarningsDefaultValue", &v)) + return(NULL); + + c_retval = xmlThrDefGetWarningsDefaultValue(v); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlThrDefIndentTreeOutput(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int v; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefIndentTreeOutput", &v)) + return(NULL); + + c_retval = xmlThrDefIndentTreeOutput(v); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlThrDefKeepBlanksDefaultValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int v; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefKeepBlanksDefaultValue", &v)) + return(NULL); + + c_retval = xmlThrDefKeepBlanksDefaultValue(v); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlThrDefLineNumbersDefaultValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int v; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefLineNumbersDefaultValue", &v)) + return(NULL); + + c_retval = xmlThrDefLineNumbersDefaultValue(v); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlThrDefLoadExtDtdDefaultValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int v; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefLoadExtDtdDefaultValue", &v)) + return(NULL); + + c_retval = xmlThrDefLoadExtDtdDefaultValue(v); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlThrDefParserDebugEntities(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int v; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefParserDebugEntities", &v)) + return(NULL); + + c_retval = xmlThrDefParserDebugEntities(v); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlThrDefPedanticParserDefaultValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int v; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefPedanticParserDefaultValue", &v)) + return(NULL); + + c_retval = xmlThrDefPedanticParserDefaultValue(v); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlThrDefSaveNoEmptyTags(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int v; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefSaveNoEmptyTags", &v)) + return(NULL); + + c_retval = xmlThrDefSaveNoEmptyTags(v); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlThrDefSubstituteEntitiesDefaultValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int v; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlThrDefSubstituteEntitiesDefaultValue", &v)) + return(NULL); + + c_retval = xmlThrDefSubstituteEntitiesDefaultValue(v); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlThrDefTreeIndentString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const char * c_retval; + char * v; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlThrDefTreeIndentString", &v)) + return(NULL); + + c_retval = xmlThrDefTreeIndentString(v); + py_retval = libxml_charPtrConstWrap((const char *) c_retval); + return(py_retval); +} + +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsAegeanNumbers(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsAegeanNumbers", &code)) + return(NULL); + + c_retval = xmlUCSIsAegeanNumbers(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsAlphabeticPresentationForms(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsAlphabeticPresentationForms", &code)) + return(NULL); + + c_retval = xmlUCSIsAlphabeticPresentationForms(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsArabic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsArabic", &code)) + return(NULL); + + c_retval = xmlUCSIsArabic(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsArabicPresentationFormsA(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsArabicPresentationFormsA", &code)) + return(NULL); + + c_retval = xmlUCSIsArabicPresentationFormsA(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsArabicPresentationFormsB(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsArabicPresentationFormsB", &code)) + return(NULL); + + c_retval = xmlUCSIsArabicPresentationFormsB(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsArmenian(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsArmenian", &code)) + return(NULL); + + c_retval = xmlUCSIsArmenian(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsArrows(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsArrows", &code)) + return(NULL); + + c_retval = xmlUCSIsArrows(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsBasicLatin(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsBasicLatin", &code)) + return(NULL); + + c_retval = xmlUCSIsBasicLatin(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsBengali(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsBengali", &code)) + return(NULL); + + c_retval = xmlUCSIsBengali(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsBlock(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + char * block; + + if (!PyArg_ParseTuple(args, (char *)"iz:xmlUCSIsBlock", &code, &block)) + return(NULL); + + c_retval = xmlUCSIsBlock(code, block); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsBlockElements(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsBlockElements", &code)) + return(NULL); + + c_retval = xmlUCSIsBlockElements(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsBopomofo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsBopomofo", &code)) + return(NULL); + + c_retval = xmlUCSIsBopomofo(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsBopomofoExtended(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsBopomofoExtended", &code)) + return(NULL); + + c_retval = xmlUCSIsBopomofoExtended(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsBoxDrawing(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsBoxDrawing", &code)) + return(NULL); + + c_retval = xmlUCSIsBoxDrawing(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsBraillePatterns(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsBraillePatterns", &code)) + return(NULL); + + c_retval = xmlUCSIsBraillePatterns(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsBuhid(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsBuhid", &code)) + return(NULL); + + c_retval = xmlUCSIsBuhid(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsByzantineMusicalSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsByzantineMusicalSymbols", &code)) + return(NULL); + + c_retval = xmlUCSIsByzantineMusicalSymbols(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCJKCompatibility(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCJKCompatibility", &code)) + return(NULL); + + c_retval = xmlUCSIsCJKCompatibility(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCJKCompatibilityForms(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCJKCompatibilityForms", &code)) + return(NULL); + + c_retval = xmlUCSIsCJKCompatibilityForms(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCJKCompatibilityIdeographs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCJKCompatibilityIdeographs", &code)) + return(NULL); + + c_retval = xmlUCSIsCJKCompatibilityIdeographs(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCJKCompatibilityIdeographsSupplement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCJKCompatibilityIdeographsSupplement", &code)) + return(NULL); + + c_retval = xmlUCSIsCJKCompatibilityIdeographsSupplement(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCJKRadicalsSupplement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCJKRadicalsSupplement", &code)) + return(NULL); + + c_retval = xmlUCSIsCJKRadicalsSupplement(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCJKSymbolsandPunctuation(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCJKSymbolsandPunctuation", &code)) + return(NULL); + + c_retval = xmlUCSIsCJKSymbolsandPunctuation(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCJKUnifiedIdeographs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCJKUnifiedIdeographs", &code)) + return(NULL); + + c_retval = xmlUCSIsCJKUnifiedIdeographs(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCJKUnifiedIdeographsExtensionA(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCJKUnifiedIdeographsExtensionA", &code)) + return(NULL); + + c_retval = xmlUCSIsCJKUnifiedIdeographsExtensionA(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCJKUnifiedIdeographsExtensionB(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCJKUnifiedIdeographsExtensionB", &code)) + return(NULL); + + c_retval = xmlUCSIsCJKUnifiedIdeographsExtensionB(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCat(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + char * cat; + + if (!PyArg_ParseTuple(args, (char *)"iz:xmlUCSIsCat", &code, &cat)) + return(NULL); + + c_retval = xmlUCSIsCat(code, cat); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatC(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatC", &code)) + return(NULL); + + c_retval = xmlUCSIsCatC(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatCc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatCc", &code)) + return(NULL); + + c_retval = xmlUCSIsCatCc(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatCf(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatCf", &code)) + return(NULL); + + c_retval = xmlUCSIsCatCf(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatCo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatCo", &code)) + return(NULL); + + c_retval = xmlUCSIsCatCo(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatCs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatCs", &code)) + return(NULL); + + c_retval = xmlUCSIsCatCs(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatL(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatL", &code)) + return(NULL); + + c_retval = xmlUCSIsCatL(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatLl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatLl", &code)) + return(NULL); + + c_retval = xmlUCSIsCatLl(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatLm(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatLm", &code)) + return(NULL); + + c_retval = xmlUCSIsCatLm(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatLo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatLo", &code)) + return(NULL); + + c_retval = xmlUCSIsCatLo(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatLt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatLt", &code)) + return(NULL); + + c_retval = xmlUCSIsCatLt(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatLu(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatLu", &code)) + return(NULL); + + c_retval = xmlUCSIsCatLu(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatM(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatM", &code)) + return(NULL); + + c_retval = xmlUCSIsCatM(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatMc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatMc", &code)) + return(NULL); + + c_retval = xmlUCSIsCatMc(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatMe(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatMe", &code)) + return(NULL); + + c_retval = xmlUCSIsCatMe(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatMn(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatMn", &code)) + return(NULL); + + c_retval = xmlUCSIsCatMn(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatN(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatN", &code)) + return(NULL); + + c_retval = xmlUCSIsCatN(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatNd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatNd", &code)) + return(NULL); + + c_retval = xmlUCSIsCatNd(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatNl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatNl", &code)) + return(NULL); + + c_retval = xmlUCSIsCatNl(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatNo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatNo", &code)) + return(NULL); + + c_retval = xmlUCSIsCatNo(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatP(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatP", &code)) + return(NULL); + + c_retval = xmlUCSIsCatP(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatPc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatPc", &code)) + return(NULL); + + c_retval = xmlUCSIsCatPc(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatPd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatPd", &code)) + return(NULL); + + c_retval = xmlUCSIsCatPd(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatPe(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatPe", &code)) + return(NULL); + + c_retval = xmlUCSIsCatPe(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatPf(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatPf", &code)) + return(NULL); + + c_retval = xmlUCSIsCatPf(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatPi(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatPi", &code)) + return(NULL); + + c_retval = xmlUCSIsCatPi(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatPo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatPo", &code)) + return(NULL); + + c_retval = xmlUCSIsCatPo(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatPs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatPs", &code)) + return(NULL); + + c_retval = xmlUCSIsCatPs(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatS(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatS", &code)) + return(NULL); + + c_retval = xmlUCSIsCatS(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatSc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatSc", &code)) + return(NULL); + + c_retval = xmlUCSIsCatSc(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatSk(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatSk", &code)) + return(NULL); + + c_retval = xmlUCSIsCatSk(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatSm(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatSm", &code)) + return(NULL); + + c_retval = xmlUCSIsCatSm(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatSo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatSo", &code)) + return(NULL); + + c_retval = xmlUCSIsCatSo(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatZ(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatZ", &code)) + return(NULL); + + c_retval = xmlUCSIsCatZ(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatZl(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatZl", &code)) + return(NULL); + + c_retval = xmlUCSIsCatZl(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatZp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatZp", &code)) + return(NULL); + + c_retval = xmlUCSIsCatZp(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCatZs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCatZs", &code)) + return(NULL); + + c_retval = xmlUCSIsCatZs(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCherokee(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCherokee", &code)) + return(NULL); + + c_retval = xmlUCSIsCherokee(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCombiningDiacriticalMarks(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCombiningDiacriticalMarks", &code)) + return(NULL); + + c_retval = xmlUCSIsCombiningDiacriticalMarks(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCombiningDiacriticalMarksforSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCombiningDiacriticalMarksforSymbols", &code)) + return(NULL); + + c_retval = xmlUCSIsCombiningDiacriticalMarksforSymbols(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCombiningHalfMarks(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCombiningHalfMarks", &code)) + return(NULL); + + c_retval = xmlUCSIsCombiningHalfMarks(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCombiningMarksforSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCombiningMarksforSymbols", &code)) + return(NULL); + + c_retval = xmlUCSIsCombiningMarksforSymbols(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsControlPictures(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsControlPictures", &code)) + return(NULL); + + c_retval = xmlUCSIsControlPictures(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCurrencySymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCurrencySymbols", &code)) + return(NULL); + + c_retval = xmlUCSIsCurrencySymbols(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCypriotSyllabary(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCypriotSyllabary", &code)) + return(NULL); + + c_retval = xmlUCSIsCypriotSyllabary(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCyrillic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCyrillic", &code)) + return(NULL); + + c_retval = xmlUCSIsCyrillic(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsCyrillicSupplement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsCyrillicSupplement", &code)) + return(NULL); + + c_retval = xmlUCSIsCyrillicSupplement(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsDeseret(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsDeseret", &code)) + return(NULL); + + c_retval = xmlUCSIsDeseret(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsDevanagari(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsDevanagari", &code)) + return(NULL); + + c_retval = xmlUCSIsDevanagari(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsDingbats(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsDingbats", &code)) + return(NULL); + + c_retval = xmlUCSIsDingbats(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsEnclosedAlphanumerics(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsEnclosedAlphanumerics", &code)) + return(NULL); + + c_retval = xmlUCSIsEnclosedAlphanumerics(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsEnclosedCJKLettersandMonths(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsEnclosedCJKLettersandMonths", &code)) + return(NULL); + + c_retval = xmlUCSIsEnclosedCJKLettersandMonths(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsEthiopic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsEthiopic", &code)) + return(NULL); + + c_retval = xmlUCSIsEthiopic(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsGeneralPunctuation(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsGeneralPunctuation", &code)) + return(NULL); + + c_retval = xmlUCSIsGeneralPunctuation(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsGeometricShapes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsGeometricShapes", &code)) + return(NULL); + + c_retval = xmlUCSIsGeometricShapes(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsGeorgian(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsGeorgian", &code)) + return(NULL); + + c_retval = xmlUCSIsGeorgian(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsGothic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsGothic", &code)) + return(NULL); + + c_retval = xmlUCSIsGothic(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsGreek(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsGreek", &code)) + return(NULL); + + c_retval = xmlUCSIsGreek(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsGreekExtended(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsGreekExtended", &code)) + return(NULL); + + c_retval = xmlUCSIsGreekExtended(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsGreekandCoptic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsGreekandCoptic", &code)) + return(NULL); + + c_retval = xmlUCSIsGreekandCoptic(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsGujarati(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsGujarati", &code)) + return(NULL); + + c_retval = xmlUCSIsGujarati(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsGurmukhi(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsGurmukhi", &code)) + return(NULL); + + c_retval = xmlUCSIsGurmukhi(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsHalfwidthandFullwidthForms(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsHalfwidthandFullwidthForms", &code)) + return(NULL); + + c_retval = xmlUCSIsHalfwidthandFullwidthForms(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsHangulCompatibilityJamo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsHangulCompatibilityJamo", &code)) + return(NULL); + + c_retval = xmlUCSIsHangulCompatibilityJamo(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsHangulJamo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsHangulJamo", &code)) + return(NULL); + + c_retval = xmlUCSIsHangulJamo(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsHangulSyllables(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsHangulSyllables", &code)) + return(NULL); + + c_retval = xmlUCSIsHangulSyllables(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsHanunoo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsHanunoo", &code)) + return(NULL); + + c_retval = xmlUCSIsHanunoo(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsHebrew(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsHebrew", &code)) + return(NULL); + + c_retval = xmlUCSIsHebrew(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsHighPrivateUseSurrogates(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsHighPrivateUseSurrogates", &code)) + return(NULL); + + c_retval = xmlUCSIsHighPrivateUseSurrogates(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsHighSurrogates(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsHighSurrogates", &code)) + return(NULL); + + c_retval = xmlUCSIsHighSurrogates(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsHiragana(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsHiragana", &code)) + return(NULL); + + c_retval = xmlUCSIsHiragana(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsIPAExtensions(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsIPAExtensions", &code)) + return(NULL); + + c_retval = xmlUCSIsIPAExtensions(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsIdeographicDescriptionCharacters(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsIdeographicDescriptionCharacters", &code)) + return(NULL); + + c_retval = xmlUCSIsIdeographicDescriptionCharacters(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsKanbun(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsKanbun", &code)) + return(NULL); + + c_retval = xmlUCSIsKanbun(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsKangxiRadicals(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsKangxiRadicals", &code)) + return(NULL); + + c_retval = xmlUCSIsKangxiRadicals(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsKannada(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsKannada", &code)) + return(NULL); + + c_retval = xmlUCSIsKannada(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsKatakana(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsKatakana", &code)) + return(NULL); + + c_retval = xmlUCSIsKatakana(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsKatakanaPhoneticExtensions(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsKatakanaPhoneticExtensions", &code)) + return(NULL); + + c_retval = xmlUCSIsKatakanaPhoneticExtensions(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsKhmer(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsKhmer", &code)) + return(NULL); + + c_retval = xmlUCSIsKhmer(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsKhmerSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsKhmerSymbols", &code)) + return(NULL); + + c_retval = xmlUCSIsKhmerSymbols(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsLao(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsLao", &code)) + return(NULL); + + c_retval = xmlUCSIsLao(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsLatin1Supplement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsLatin1Supplement", &code)) + return(NULL); + + c_retval = xmlUCSIsLatin1Supplement(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsLatinExtendedA(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsLatinExtendedA", &code)) + return(NULL); + + c_retval = xmlUCSIsLatinExtendedA(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsLatinExtendedAdditional(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsLatinExtendedAdditional", &code)) + return(NULL); + + c_retval = xmlUCSIsLatinExtendedAdditional(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsLatinExtendedB(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsLatinExtendedB", &code)) + return(NULL); + + c_retval = xmlUCSIsLatinExtendedB(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsLetterlikeSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsLetterlikeSymbols", &code)) + return(NULL); + + c_retval = xmlUCSIsLetterlikeSymbols(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsLimbu(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsLimbu", &code)) + return(NULL); + + c_retval = xmlUCSIsLimbu(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsLinearBIdeograms(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsLinearBIdeograms", &code)) + return(NULL); + + c_retval = xmlUCSIsLinearBIdeograms(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsLinearBSyllabary(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsLinearBSyllabary", &code)) + return(NULL); + + c_retval = xmlUCSIsLinearBSyllabary(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsLowSurrogates(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsLowSurrogates", &code)) + return(NULL); + + c_retval = xmlUCSIsLowSurrogates(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsMalayalam(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMalayalam", &code)) + return(NULL); + + c_retval = xmlUCSIsMalayalam(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsMathematicalAlphanumericSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMathematicalAlphanumericSymbols", &code)) + return(NULL); + + c_retval = xmlUCSIsMathematicalAlphanumericSymbols(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsMathematicalOperators(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMathematicalOperators", &code)) + return(NULL); + + c_retval = xmlUCSIsMathematicalOperators(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsMiscellaneousMathematicalSymbolsA(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMiscellaneousMathematicalSymbolsA", &code)) + return(NULL); + + c_retval = xmlUCSIsMiscellaneousMathematicalSymbolsA(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsMiscellaneousMathematicalSymbolsB(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMiscellaneousMathematicalSymbolsB", &code)) + return(NULL); + + c_retval = xmlUCSIsMiscellaneousMathematicalSymbolsB(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsMiscellaneousSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMiscellaneousSymbols", &code)) + return(NULL); + + c_retval = xmlUCSIsMiscellaneousSymbols(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsMiscellaneousSymbolsandArrows(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMiscellaneousSymbolsandArrows", &code)) + return(NULL); + + c_retval = xmlUCSIsMiscellaneousSymbolsandArrows(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsMiscellaneousTechnical(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMiscellaneousTechnical", &code)) + return(NULL); + + c_retval = xmlUCSIsMiscellaneousTechnical(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsMongolian(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMongolian", &code)) + return(NULL); + + c_retval = xmlUCSIsMongolian(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsMusicalSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMusicalSymbols", &code)) + return(NULL); + + c_retval = xmlUCSIsMusicalSymbols(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsMyanmar(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsMyanmar", &code)) + return(NULL); + + c_retval = xmlUCSIsMyanmar(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsNumberForms(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsNumberForms", &code)) + return(NULL); + + c_retval = xmlUCSIsNumberForms(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsOgham(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsOgham", &code)) + return(NULL); + + c_retval = xmlUCSIsOgham(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsOldItalic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsOldItalic", &code)) + return(NULL); + + c_retval = xmlUCSIsOldItalic(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsOpticalCharacterRecognition(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsOpticalCharacterRecognition", &code)) + return(NULL); + + c_retval = xmlUCSIsOpticalCharacterRecognition(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsOriya(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsOriya", &code)) + return(NULL); + + c_retval = xmlUCSIsOriya(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsOsmanya(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsOsmanya", &code)) + return(NULL); + + c_retval = xmlUCSIsOsmanya(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsPhoneticExtensions(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsPhoneticExtensions", &code)) + return(NULL); + + c_retval = xmlUCSIsPhoneticExtensions(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsPrivateUse(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsPrivateUse", &code)) + return(NULL); + + c_retval = xmlUCSIsPrivateUse(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsPrivateUseArea(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsPrivateUseArea", &code)) + return(NULL); + + c_retval = xmlUCSIsPrivateUseArea(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsRunic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsRunic", &code)) + return(NULL); + + c_retval = xmlUCSIsRunic(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsShavian(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsShavian", &code)) + return(NULL); + + c_retval = xmlUCSIsShavian(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsSinhala(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSinhala", &code)) + return(NULL); + + c_retval = xmlUCSIsSinhala(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsSmallFormVariants(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSmallFormVariants", &code)) + return(NULL); + + c_retval = xmlUCSIsSmallFormVariants(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsSpacingModifierLetters(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSpacingModifierLetters", &code)) + return(NULL); + + c_retval = xmlUCSIsSpacingModifierLetters(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsSpecials(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSpecials", &code)) + return(NULL); + + c_retval = xmlUCSIsSpecials(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsSuperscriptsandSubscripts(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSuperscriptsandSubscripts", &code)) + return(NULL); + + c_retval = xmlUCSIsSuperscriptsandSubscripts(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsSupplementalArrowsA(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSupplementalArrowsA", &code)) + return(NULL); + + c_retval = xmlUCSIsSupplementalArrowsA(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsSupplementalArrowsB(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSupplementalArrowsB", &code)) + return(NULL); + + c_retval = xmlUCSIsSupplementalArrowsB(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsSupplementalMathematicalOperators(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSupplementalMathematicalOperators", &code)) + return(NULL); + + c_retval = xmlUCSIsSupplementalMathematicalOperators(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsSupplementaryPrivateUseAreaA(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSupplementaryPrivateUseAreaA", &code)) + return(NULL); + + c_retval = xmlUCSIsSupplementaryPrivateUseAreaA(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsSupplementaryPrivateUseAreaB(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSupplementaryPrivateUseAreaB", &code)) + return(NULL); + + c_retval = xmlUCSIsSupplementaryPrivateUseAreaB(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsSyriac(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsSyriac", &code)) + return(NULL); + + c_retval = xmlUCSIsSyriac(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsTagalog(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsTagalog", &code)) + return(NULL); + + c_retval = xmlUCSIsTagalog(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsTagbanwa(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsTagbanwa", &code)) + return(NULL); + + c_retval = xmlUCSIsTagbanwa(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsTags(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsTags", &code)) + return(NULL); + + c_retval = xmlUCSIsTags(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsTaiLe(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsTaiLe", &code)) + return(NULL); + + c_retval = xmlUCSIsTaiLe(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsTaiXuanJingSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsTaiXuanJingSymbols", &code)) + return(NULL); + + c_retval = xmlUCSIsTaiXuanJingSymbols(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsTamil(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsTamil", &code)) + return(NULL); + + c_retval = xmlUCSIsTamil(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsTelugu(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsTelugu", &code)) + return(NULL); + + c_retval = xmlUCSIsTelugu(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsThaana(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsThaana", &code)) + return(NULL); + + c_retval = xmlUCSIsThaana(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsThai(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsThai", &code)) + return(NULL); + + c_retval = xmlUCSIsThai(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsTibetan(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsTibetan", &code)) + return(NULL); + + c_retval = xmlUCSIsTibetan(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsUgaritic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsUgaritic", &code)) + return(NULL); + + c_retval = xmlUCSIsUgaritic(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsUnifiedCanadianAboriginalSyllabics(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsUnifiedCanadianAboriginalSyllabics", &code)) + return(NULL); + + c_retval = xmlUCSIsUnifiedCanadianAboriginalSyllabics(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsVariationSelectors(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsVariationSelectors", &code)) + return(NULL); + + c_retval = xmlUCSIsVariationSelectors(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsVariationSelectorsSupplement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsVariationSelectorsSupplement", &code)) + return(NULL); + + c_retval = xmlUCSIsVariationSelectorsSupplement(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsYiRadicals(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsYiRadicals", &code)) + return(NULL); + + c_retval = xmlUCSIsYiRadicals(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsYiSyllables(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsYiSyllables", &code)) + return(NULL); + + c_retval = xmlUCSIsYiSyllables(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * +libxml_xmlUCSIsYijingHexagramSymbols(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + int code; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlUCSIsYijingHexagramSymbols", &code)) + return(NULL); + + c_retval = xmlUCSIsYijingHexagramSymbols(code); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +PyObject * +libxml_xmlURIEscape(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * str; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlURIEscape", &str)) + return(NULL); + + c_retval = xmlURIEscape(str); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlURIEscapeStr(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * str; + xmlChar * list; + + if (!PyArg_ParseTuple(args, (char *)"zz:xmlURIEscapeStr", &str, &list)) + return(NULL); + + c_retval = xmlURIEscapeStr(str, list); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlURIGetAuthority(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const char * c_retval; + xmlURIPtr URI; + PyObject *pyobj_URI; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetAuthority", &pyobj_URI)) + return(NULL); + URI = (xmlURIPtr) PyURI_Get(pyobj_URI); + + c_retval = URI->authority; + py_retval = libxml_charPtrConstWrap((const char *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlURIGetFragment(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const char * c_retval; + xmlURIPtr URI; + PyObject *pyobj_URI; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetFragment", &pyobj_URI)) + return(NULL); + URI = (xmlURIPtr) PyURI_Get(pyobj_URI); + + c_retval = URI->fragment; + py_retval = libxml_charPtrConstWrap((const char *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlURIGetOpaque(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const char * c_retval; + xmlURIPtr URI; + PyObject *pyobj_URI; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetOpaque", &pyobj_URI)) + return(NULL); + URI = (xmlURIPtr) PyURI_Get(pyobj_URI); + + c_retval = URI->opaque; + py_retval = libxml_charPtrConstWrap((const char *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlURIGetPath(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const char * c_retval; + xmlURIPtr URI; + PyObject *pyobj_URI; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetPath", &pyobj_URI)) + return(NULL); + URI = (xmlURIPtr) PyURI_Get(pyobj_URI); + + c_retval = URI->path; + py_retval = libxml_charPtrConstWrap((const char *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlURIGetPort(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlURIPtr URI; + PyObject *pyobj_URI; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetPort", &pyobj_URI)) + return(NULL); + URI = (xmlURIPtr) PyURI_Get(pyobj_URI); + + c_retval = URI->port; + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlURIGetQuery(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const char * c_retval; + xmlURIPtr URI; + PyObject *pyobj_URI; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetQuery", &pyobj_URI)) + return(NULL); + URI = (xmlURIPtr) PyURI_Get(pyobj_URI); + + c_retval = URI->query; + py_retval = libxml_charPtrConstWrap((const char *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlURIGetQueryRaw(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const char * c_retval; + xmlURIPtr URI; + PyObject *pyobj_URI; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetQueryRaw", &pyobj_URI)) + return(NULL); + URI = (xmlURIPtr) PyURI_Get(pyobj_URI); + + c_retval = URI->query_raw; + py_retval = libxml_charPtrConstWrap((const char *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlURIGetScheme(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const char * c_retval; + xmlURIPtr URI; + PyObject *pyobj_URI; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetScheme", &pyobj_URI)) + return(NULL); + URI = (xmlURIPtr) PyURI_Get(pyobj_URI); + + c_retval = URI->scheme; + py_retval = libxml_charPtrConstWrap((const char *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlURIGetServer(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const char * c_retval; + xmlURIPtr URI; + PyObject *pyobj_URI; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetServer", &pyobj_URI)) + return(NULL); + URI = (xmlURIPtr) PyURI_Get(pyobj_URI); + + c_retval = URI->server; + py_retval = libxml_charPtrConstWrap((const char *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlURIGetUser(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const char * c_retval; + xmlURIPtr URI; + PyObject *pyobj_URI; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlURIGetUser", &pyobj_URI)) + return(NULL); + URI = (xmlURIPtr) PyURI_Get(pyobj_URI); + + c_retval = URI->user; + py_retval = libxml_charPtrConstWrap((const char *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlURISetAuthority(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlURIPtr URI; + PyObject *pyobj_URI; + char * authority; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlURISetAuthority", &pyobj_URI, &authority)) + return(NULL); + URI = (xmlURIPtr) PyURI_Get(pyobj_URI); + + if (URI->authority != NULL) xmlFree(URI->authority); + URI->authority = (char *)xmlStrdup((const xmlChar *)authority); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlURISetFragment(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlURIPtr URI; + PyObject *pyobj_URI; + char * fragment; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlURISetFragment", &pyobj_URI, &fragment)) + return(NULL); + URI = (xmlURIPtr) PyURI_Get(pyobj_URI); + + if (URI->fragment != NULL) xmlFree(URI->fragment); + URI->fragment = (char *)xmlStrdup((const xmlChar *)fragment); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlURISetOpaque(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlURIPtr URI; + PyObject *pyobj_URI; + char * opaque; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlURISetOpaque", &pyobj_URI, &opaque)) + return(NULL); + URI = (xmlURIPtr) PyURI_Get(pyobj_URI); + + if (URI->opaque != NULL) xmlFree(URI->opaque); + URI->opaque = (char *)xmlStrdup((const xmlChar *)opaque); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlURISetPath(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlURIPtr URI; + PyObject *pyobj_URI; + char * path; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlURISetPath", &pyobj_URI, &path)) + return(NULL); + URI = (xmlURIPtr) PyURI_Get(pyobj_URI); + + if (URI->path != NULL) xmlFree(URI->path); + URI->path = (char *)xmlStrdup((const xmlChar *)path); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlURISetPort(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlURIPtr URI; + PyObject *pyobj_URI; + int port; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlURISetPort", &pyobj_URI, &port)) + return(NULL); + URI = (xmlURIPtr) PyURI_Get(pyobj_URI); + + URI->port = port; + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlURISetQuery(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlURIPtr URI; + PyObject *pyobj_URI; + char * query; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlURISetQuery", &pyobj_URI, &query)) + return(NULL); + URI = (xmlURIPtr) PyURI_Get(pyobj_URI); + + if (URI->query != NULL) xmlFree(URI->query); + URI->query = (char *)xmlStrdup((const xmlChar *)query); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlURISetQueryRaw(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlURIPtr URI; + PyObject *pyobj_URI; + char * query_raw; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlURISetQueryRaw", &pyobj_URI, &query_raw)) + return(NULL); + URI = (xmlURIPtr) PyURI_Get(pyobj_URI); + + if (URI->query_raw != NULL) xmlFree(URI->query_raw); + URI->query_raw = (char *)xmlStrdup((const xmlChar *)query_raw); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlURISetScheme(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlURIPtr URI; + PyObject *pyobj_URI; + char * scheme; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlURISetScheme", &pyobj_URI, &scheme)) + return(NULL); + URI = (xmlURIPtr) PyURI_Get(pyobj_URI); + + if (URI->scheme != NULL) xmlFree(URI->scheme); + URI->scheme = (char *)xmlStrdup((const xmlChar *)scheme); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlURISetServer(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlURIPtr URI; + PyObject *pyobj_URI; + char * server; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlURISetServer", &pyobj_URI, &server)) + return(NULL); + URI = (xmlURIPtr) PyURI_Get(pyobj_URI); + + if (URI->server != NULL) xmlFree(URI->server); + URI->server = (char *)xmlStrdup((const xmlChar *)server); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlURISetUser(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlURIPtr URI; + PyObject *pyobj_URI; + char * user; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlURISetUser", &pyobj_URI, &user)) + return(NULL); + URI = (xmlURIPtr) PyURI_Get(pyobj_URI); + + if (URI->user != NULL) xmlFree(URI->user); + URI->user = (char *)xmlStrdup((const xmlChar *)user); + Py_INCREF(Py_None); + return(Py_None); +} + +PyObject * +libxml_xmlURIUnescapeString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + char * c_retval; + char * str; + int len; + char * target; + + if (!PyArg_ParseTuple(args, (char *)"ziz:xmlURIUnescapeString", &str, &len, &target)) + return(NULL); + + c_retval = xmlURIUnescapeString(str, len, target); + py_retval = libxml_charPtrWrap((char *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlUTF8Charcmp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * utf1; + xmlChar * utf2; + + if (!PyArg_ParseTuple(args, (char *)"zz:xmlUTF8Charcmp", &utf1, &utf2)) + return(NULL); + + c_retval = xmlUTF8Charcmp(utf1, utf2); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlUTF8Size(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * utf; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlUTF8Size", &utf)) + return(NULL); + + c_retval = xmlUTF8Size(utf); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlUTF8Strlen(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * utf; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlUTF8Strlen", &utf)) + return(NULL); + + c_retval = xmlUTF8Strlen(utf); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlUTF8Strloc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * utf; + xmlChar * utfchar; + + if (!PyArg_ParseTuple(args, (char *)"zz:xmlUTF8Strloc", &utf, &utfchar)) + return(NULL); + + c_retval = xmlUTF8Strloc(utf, utfchar); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlUTF8Strndup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * utf; + int len; + + if (!PyArg_ParseTuple(args, (char *)"zi:xmlUTF8Strndup", &utf, &len)) + return(NULL); + + c_retval = xmlUTF8Strndup(utf, len); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlUTF8Strpos(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlChar * utf; + int pos; + + if (!PyArg_ParseTuple(args, (char *)"zi:xmlUTF8Strpos", &utf, &pos)) + return(NULL); + + c_retval = xmlUTF8Strpos(utf, pos); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlUTF8Strsize(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * utf; + int len; + + if (!PyArg_ParseTuple(args, (char *)"zi:xmlUTF8Strsize", &utf, &len)) + return(NULL); + + c_retval = xmlUTF8Strsize(utf, len); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlUTF8Strsub(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlChar * utf; + int start; + int len; + + if (!PyArg_ParseTuple(args, (char *)"zii:xmlUTF8Strsub", &utf, &start, &len)) + return(NULL); + + c_retval = xmlUTF8Strsub(utf, start, len); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +PyObject * +libxml_xmlUnlinkNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlUnlinkNode", &pyobj_cur)) + return(NULL); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + xmlUnlinkNode(cur); + Py_INCREF(Py_None); + return(Py_None); +} + +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlUnsetNsProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + xmlNsPtr ns; + PyObject *pyobj_ns; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"OOz:xmlUnsetNsProp", &pyobj_node, &pyobj_ns, &name)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); + + c_retval = xmlUnsetNsProp(node, ns, name); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlUnsetProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlUnsetProp", &pyobj_node, &name)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlUnsetProp(node, name); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * +libxml_xmlValidCtxtNormalizeAttributeValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr elem; + PyObject *pyobj_elem; + xmlChar * name; + xmlChar * value; + + if (!PyArg_ParseTuple(args, (char *)"OOOzz:xmlValidCtxtNormalizeAttributeValue", &pyobj_ctxt, &pyobj_doc, &pyobj_elem, &name, &value)) + return(NULL); + ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); + + c_retval = xmlValidCtxtNormalizeAttributeValue(ctxt, doc, elem, name, value); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * +libxml_xmlValidNormalizeAttributeValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr elem; + PyObject *pyobj_elem; + xmlChar * name; + xmlChar * value; + + if (!PyArg_ParseTuple(args, (char *)"OOzz:xmlValidNormalizeAttributeValue", &pyobj_doc, &pyobj_elem, &name, &value)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); + + c_retval = xmlValidNormalizeAttributeValue(doc, elem, name, value); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * +libxml_xmlValidateDocument(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlValidateDocument", &pyobj_ctxt, &pyobj_doc)) + return(NULL); + ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlValidateDocument(ctxt, doc); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * +libxml_xmlValidateDocumentFinal(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlValidateDocumentFinal", &pyobj_ctxt, &pyobj_doc)) + return(NULL); + ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlValidateDocumentFinal(ctxt, doc); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * +libxml_xmlValidateDtd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlDtdPtr dtd; + PyObject *pyobj_dtd; + + if (!PyArg_ParseTuple(args, (char *)"OOO:xmlValidateDtd", &pyobj_ctxt, &pyobj_doc, &pyobj_dtd)) + return(NULL); + ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + dtd = (xmlDtdPtr) PyxmlNode_Get(pyobj_dtd); + + c_retval = xmlValidateDtd(ctxt, doc, dtd); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * +libxml_xmlValidateDtdFinal(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlValidateDtdFinal", &pyobj_ctxt, &pyobj_doc)) + return(NULL); + ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlValidateDtdFinal(ctxt, doc); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * +libxml_xmlValidateElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr elem; + PyObject *pyobj_elem; + + if (!PyArg_ParseTuple(args, (char *)"OOO:xmlValidateElement", &pyobj_ctxt, &pyobj_doc, &pyobj_elem)) + return(NULL); + ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); + + c_retval = xmlValidateElement(ctxt, doc, elem); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) +PyObject * +libxml_xmlValidateNCName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * value; + int space; + + if (!PyArg_ParseTuple(args, (char *)"zi:xmlValidateNCName", &value, &space)) + return(NULL); + + c_retval = xmlValidateNCName(value, space); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlValidateNMToken(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * value; + int space; + + if (!PyArg_ParseTuple(args, (char *)"zi:xmlValidateNMToken", &value, &space)) + return(NULL); + + c_retval = xmlValidateNMToken(value, space); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlValidateName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * value; + int space; + + if (!PyArg_ParseTuple(args, (char *)"zi:xmlValidateName", &value, &space)) + return(NULL); + + c_retval = xmlValidateName(value, space); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * +libxml_xmlValidateNameValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * value; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlValidateNameValue", &value)) + return(NULL); + + c_retval = xmlValidateNameValue(value); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * +libxml_xmlValidateNamesValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * value; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlValidateNamesValue", &value)) + return(NULL); + + c_retval = xmlValidateNamesValue(value); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * +libxml_xmlValidateNmtokenValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * value; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlValidateNmtokenValue", &value)) + return(NULL); + + c_retval = xmlValidateNmtokenValue(value); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * +libxml_xmlValidateNmtokensValue(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * value; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlValidateNmtokensValue", &value)) + return(NULL); + + c_retval = xmlValidateNmtokensValue(value); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlValidateNotationUse(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlChar * notationName; + + if (!PyArg_ParseTuple(args, (char *)"OOz:xmlValidateNotationUse", &pyobj_ctxt, &pyobj_doc, ¬ationName)) + return(NULL); + ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlValidateNotationUse(ctxt, doc, notationName); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * +libxml_xmlValidateOneAttribute(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr elem; + PyObject *pyobj_elem; + xmlAttrPtr attr; + PyObject *pyobj_attr; + xmlChar * value; + + if (!PyArg_ParseTuple(args, (char *)"OOOOz:xmlValidateOneAttribute", &pyobj_ctxt, &pyobj_doc, &pyobj_elem, &pyobj_attr, &value)) + return(NULL); + ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); + attr = (xmlAttrPtr) PyxmlNode_Get(pyobj_attr); + + c_retval = xmlValidateOneAttribute(ctxt, doc, elem, attr, value); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * +libxml_xmlValidateOneElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr elem; + PyObject *pyobj_elem; + + if (!PyArg_ParseTuple(args, (char *)"OOO:xmlValidateOneElement", &pyobj_ctxt, &pyobj_doc, &pyobj_elem)) + return(NULL); + ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); + + c_retval = xmlValidateOneElement(ctxt, doc, elem); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * +libxml_xmlValidateOneNamespace(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr elem; + PyObject *pyobj_elem; + xmlChar * prefix; + xmlNsPtr ns; + PyObject *pyobj_ns; + xmlChar * value; + + if (!PyArg_ParseTuple(args, (char *)"OOOzOz:xmlValidateOneNamespace", &pyobj_ctxt, &pyobj_doc, &pyobj_elem, &prefix, &pyobj_ns, &value)) + return(NULL); + ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); + ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); + + c_retval = xmlValidateOneNamespace(ctxt, doc, elem, prefix, ns, value); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) +PyObject * +libxml_xmlValidatePopElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr elem; + PyObject *pyobj_elem; + xmlChar * qname; + + if (!PyArg_ParseTuple(args, (char *)"OOOz:xmlValidatePopElement", &pyobj_ctxt, &pyobj_doc, &pyobj_elem, &qname)) + return(NULL); + ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); + + c_retval = xmlValidatePopElement(ctxt, doc, elem, qname); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) +PyObject * +libxml_xmlValidatePushCData(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlChar * data; + int len; + + if (!PyArg_ParseTuple(args, (char *)"Ozi:xmlValidatePushCData", &pyobj_ctxt, &data, &len)) + return(NULL); + ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); + + c_retval = xmlValidatePushCData(ctxt, data, len); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) +PyObject * +libxml_xmlValidatePushElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr elem; + PyObject *pyobj_elem; + xmlChar * qname; + + if (!PyArg_ParseTuple(args, (char *)"OOOz:xmlValidatePushElement", &pyobj_ctxt, &pyobj_doc, &pyobj_elem, &qname)) + return(NULL); + ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + elem = (xmlNodePtr) PyxmlNode_Get(pyobj_elem); + + c_retval = xmlValidatePushElement(ctxt, doc, elem, qname); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlValidateQName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * value; + int space; + + if (!PyArg_ParseTuple(args, (char *)"zi:xmlValidateQName", &value, &space)) + return(NULL); + + c_retval = xmlValidateQName(value, space); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * +libxml_xmlValidateRoot(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlValidCtxtPtr ctxt; + PyObject *pyobj_ctxt; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlValidateRoot", &pyobj_ctxt, &pyobj_doc)) + return(NULL); + ctxt = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_ctxt); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlValidateRoot(ctxt, doc); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_XINCLUDE_ENABLED) +PyObject * +libxml_xmlXIncludeProcess(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXIncludeProcess", &pyobj_doc)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlXIncludeProcess(doc); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XINCLUDE_ENABLED) */ +#if defined(LIBXML_XINCLUDE_ENABLED) +PyObject * +libxml_xmlXIncludeProcessFlags(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + int flags; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXIncludeProcessFlags", &pyobj_doc, &flags)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlXIncludeProcessFlags(doc, flags); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XINCLUDE_ENABLED) */ +#if defined(LIBXML_XINCLUDE_ENABLED) +PyObject * +libxml_xmlXIncludeProcessTree(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlNodePtr tree; + PyObject *pyobj_tree; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXIncludeProcessTree", &pyobj_tree)) + return(NULL); + tree = (xmlNodePtr) PyxmlNode_Get(pyobj_tree); + + c_retval = xmlXIncludeProcessTree(tree); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XINCLUDE_ENABLED) */ +#if defined(LIBXML_XINCLUDE_ENABLED) +PyObject * +libxml_xmlXIncludeProcessTreeFlags(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlNodePtr tree; + PyObject *pyobj_tree; + int flags; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXIncludeProcessTreeFlags", &pyobj_tree, &flags)) + return(NULL); + tree = (xmlNodePtr) PyxmlNode_Get(pyobj_tree); + + c_retval = xmlXIncludeProcessTreeFlags(tree, flags); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XINCLUDE_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathAddValues(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathAddValues", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathAddValues(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathBooleanFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathBooleanFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathBooleanFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathCastBooleanToNumber(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + double c_retval; + int val; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlXPathCastBooleanToNumber", &val)) + return(NULL); + + c_retval = xmlXPathCastBooleanToNumber(val); + py_retval = libxml_doubleWrap((double) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathCastBooleanToString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + int val; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlXPathCastBooleanToString", &val)) + return(NULL); + + c_retval = xmlXPathCastBooleanToString(val); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathCastNodeToNumber(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + double c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathCastNodeToNumber", &pyobj_node)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlXPathCastNodeToNumber(node); + py_retval = libxml_doubleWrap((double) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathCastNodeToString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlNodePtr node; + PyObject *pyobj_node; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathCastNodeToString", &pyobj_node)) + return(NULL); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + c_retval = xmlXPathCastNodeToString(node); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathCastNumberToBoolean(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + double val; + + if (!PyArg_ParseTuple(args, (char *)"d:xmlXPathCastNumberToBoolean", &val)) + return(NULL); + + c_retval = xmlXPathCastNumberToBoolean(val); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathCastNumberToString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + double val; + + if (!PyArg_ParseTuple(args, (char *)"d:xmlXPathCastNumberToString", &val)) + return(NULL); + + c_retval = xmlXPathCastNumberToString(val); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathCastStringToBoolean(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * val; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlXPathCastStringToBoolean", &val)) + return(NULL); + + c_retval = xmlXPathCastStringToBoolean(val); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathCastStringToNumber(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + double c_retval; + xmlChar * val; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlXPathCastStringToNumber", &val)) + return(NULL); + + c_retval = xmlXPathCastStringToNumber(val); + py_retval = libxml_doubleWrap((double) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathCeilingFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathCeilingFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathCeilingFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathCmpNodes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlNodePtr node1; + PyObject *pyobj_node1; + xmlNodePtr node2; + PyObject *pyobj_node2; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathCmpNodes", &pyobj_node1, &pyobj_node2)) + return(NULL); + node1 = (xmlNodePtr) PyxmlNode_Get(pyobj_node1); + node2 = (xmlNodePtr) PyxmlNode_Get(pyobj_node2); + + c_retval = xmlXPathCmpNodes(node1, node2); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathCompareValues(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int inf; + int strict; + + if (!PyArg_ParseTuple(args, (char *)"Oii:xmlXPathCompareValues", &pyobj_ctxt, &inf, &strict)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + c_retval = xmlXPathCompareValues(ctxt, inf, strict); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathConcatFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathConcatFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathConcatFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathContainsFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathContainsFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathContainsFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathContextSetCache(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlXPathContextPtr ctxt; + PyObject *pyobj_ctxt; + int active; + int value; + int options; + + if (!PyArg_ParseTuple(args, (char *)"Oiii:xmlXPathContextSetCache", &pyobj_ctxt, &active, &value, &options)) + return(NULL); + ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); + + c_retval = xmlXPathContextSetCache(ctxt, active, value, options); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathCountFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathCountFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathCountFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathDivValues(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathDivValues", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathDivValues(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathEqualValues(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathEqualValues", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + c_retval = xmlXPathEqualValues(ctxt); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathErr(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int error; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathErr", &pyobj_ctxt, &error)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathErr(ctxt, error); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathEval(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlXPathObjectPtr c_retval; + xmlChar * str; + xmlXPathContextPtr ctx; + PyObject *pyobj_ctx; + + if (!PyArg_ParseTuple(args, (char *)"zO:xmlXPathEval", &str, &pyobj_ctx)) + return(NULL); + ctx = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctx); + + c_retval = xmlXPathEval(str, ctx); + py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathEvalExpr(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathEvalExpr", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathEvalExpr(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathEvalExpression(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlXPathObjectPtr c_retval; + xmlChar * str; + xmlXPathContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"zO:xmlXPathEvalExpression", &str, &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); + + c_retval = xmlXPathEvalExpression(str, ctxt); + py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathFalseFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathFalseFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathFalseFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathFloorFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathFloorFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathFloorFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathFreeContext(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathFreeContext", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); + + xmlXPathFreeContext(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathFreeParserContext(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathFreeParserContext", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathFreeParserContext(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathGetContextDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlDocPtr c_retval; + xmlXPathContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathGetContextDoc", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); + + c_retval = ctxt->doc; + py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathGetContextNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlXPathContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathGetContextNode", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); + + c_retval = ctxt->node; + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathGetContextPosition(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlXPathContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathGetContextPosition", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); + + c_retval = ctxt->proximityPosition; + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathGetContextSize(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlXPathContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathGetContextSize", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); + + c_retval = ctxt->contextSize; + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathGetFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlXPathContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathGetFunction", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); + + c_retval = ctxt->function; + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathGetFunctionURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlXPathContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathGetFunctionURI", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); + + c_retval = ctxt->functionURI; + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathIdFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathIdFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathIdFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlXPathInit(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) { + + xmlXPathInit(); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlXPathIsInf(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + double val; + + if (!PyArg_ParseTuple(args, (char *)"d:xmlXPathIsInf", &val)) + return(NULL); + + c_retval = xmlXPathIsInf(val); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * +libxml_xmlXPathIsNaN(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + double val; + + if (!PyArg_ParseTuple(args, (char *)"d:xmlXPathIsNaN", &val)) + return(NULL); + + c_retval = xmlXPathIsNaN(val); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathIsNodeType(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlXPathIsNodeType", &name)) + return(NULL); + + c_retval = xmlXPathIsNodeType(name); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathLangFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathLangFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathLangFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathLastFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathLastFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathLastFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathLocalNameFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathLocalNameFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathLocalNameFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathModValues(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathModValues", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathModValues(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathMultValues(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathMultValues", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathMultValues(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNamespaceURIFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathNamespaceURIFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathNamespaceURIFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNewBoolean(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlXPathObjectPtr c_retval; + int val; + + if (!PyArg_ParseTuple(args, (char *)"i:xmlXPathNewBoolean", &val)) + return(NULL); + + c_retval = xmlXPathNewBoolean(val); + py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNewCString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlXPathObjectPtr c_retval; + char * val; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlXPathNewCString", &val)) + return(NULL); + + c_retval = xmlXPathNewCString(val); + py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNewContext(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlXPathContextPtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathNewContext", &pyobj_doc)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlXPathNewContext(doc); + py_retval = libxml_xmlXPathContextPtrWrap((xmlXPathContextPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNewFloat(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlXPathObjectPtr c_retval; + double val; + + if (!PyArg_ParseTuple(args, (char *)"d:xmlXPathNewFloat", &val)) + return(NULL); + + c_retval = xmlXPathNewFloat(val); + py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNewNodeSet(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlXPathObjectPtr c_retval; + xmlNodePtr val; + PyObject *pyobj_val; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathNewNodeSet", &pyobj_val)) + return(NULL); + val = (xmlNodePtr) PyxmlNode_Get(pyobj_val); + + c_retval = xmlXPathNewNodeSet(val); + py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNewParserContext(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlXPathParserContextPtr c_retval; + xmlChar * str; + xmlXPathContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"zO:xmlXPathNewParserContext", &str, &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); + + c_retval = xmlXPathNewParserContext(str, ctxt); + py_retval = libxml_xmlXPathParserContextPtrWrap((xmlXPathParserContextPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNewString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlXPathObjectPtr c_retval; + xmlChar * val; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlXPathNewString", &val)) + return(NULL); + + c_retval = xmlXPathNewString(val); + py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNewValueTree(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlXPathObjectPtr c_retval; + xmlNodePtr val; + PyObject *pyobj_val; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathNewValueTree", &pyobj_val)) + return(NULL); + val = (xmlNodePtr) PyxmlNode_Get(pyobj_val); + + c_retval = xmlXPathNewValueTree(val); + py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNextAncestor(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextAncestor", &pyobj_ctxt, &pyobj_cur)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlXPathNextAncestor(ctxt, cur); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNextAncestorOrSelf(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextAncestorOrSelf", &pyobj_ctxt, &pyobj_cur)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlXPathNextAncestorOrSelf(ctxt, cur); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNextAttribute(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextAttribute", &pyobj_ctxt, &pyobj_cur)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlXPathNextAttribute(ctxt, cur); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNextChild(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextChild", &pyobj_ctxt, &pyobj_cur)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlXPathNextChild(ctxt, cur); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNextDescendant(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextDescendant", &pyobj_ctxt, &pyobj_cur)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlXPathNextDescendant(ctxt, cur); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNextDescendantOrSelf(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextDescendantOrSelf", &pyobj_ctxt, &pyobj_cur)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlXPathNextDescendantOrSelf(ctxt, cur); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNextFollowing(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextFollowing", &pyobj_ctxt, &pyobj_cur)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlXPathNextFollowing(ctxt, cur); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNextFollowingSibling(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextFollowingSibling", &pyobj_ctxt, &pyobj_cur)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlXPathNextFollowingSibling(ctxt, cur); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNextNamespace(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextNamespace", &pyobj_ctxt, &pyobj_cur)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlXPathNextNamespace(ctxt, cur); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNextParent(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextParent", &pyobj_ctxt, &pyobj_cur)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlXPathNextParent(ctxt, cur); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNextPreceding(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextPreceding", &pyobj_ctxt, &pyobj_cur)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlXPathNextPreceding(ctxt, cur); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNextPrecedingSibling(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextPrecedingSibling", &pyobj_ctxt, &pyobj_cur)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlXPathNextPrecedingSibling(ctxt, cur); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNextSelf(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlNodePtr c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + xmlNodePtr cur; + PyObject *pyobj_cur; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathNextSelf", &pyobj_ctxt, &pyobj_cur)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur); + + c_retval = xmlXPathNextSelf(ctxt, cur); + py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNodeSetFreeNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlNsPtr ns; + PyObject *pyobj_ns; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathNodeSetFreeNs", &pyobj_ns)) + return(NULL); + ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns); + + xmlXPathNodeSetFreeNs(ns); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNormalizeFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathNormalizeFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathNormalizeFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNotEqualValues(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathNotEqualValues", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + c_retval = xmlXPathNotEqualValues(ctxt); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNotFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathNotFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathNotFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNsLookup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + const xmlChar * c_retval; + xmlXPathContextPtr ctxt; + PyObject *pyobj_ctxt; + xmlChar * prefix; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlXPathNsLookup", &pyobj_ctxt, &prefix)) + return(NULL); + ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); + + c_retval = xmlXPathNsLookup(ctxt, prefix); + py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathNumberFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathNumberFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathNumberFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathOrderDocElems(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + long c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathOrderDocElems", &pyobj_doc)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + c_retval = xmlXPathOrderDocElems(doc); + py_retval = libxml_longWrap((long) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathParseNCName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathParseNCName", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + c_retval = xmlXPathParseNCName(ctxt); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathParseName(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathParseName", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + c_retval = xmlXPathParseName(ctxt); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathParserGetContext(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlXPathContextPtr c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathParserGetContext", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + c_retval = ctxt->context; + py_retval = libxml_xmlXPathContextPtrWrap((xmlXPathContextPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathPopBoolean(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathPopBoolean", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + c_retval = xmlXPathPopBoolean(ctxt); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathPopNumber(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + double c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathPopNumber", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + c_retval = xmlXPathPopNumber(ctxt); + py_retval = libxml_doubleWrap((double) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathPopString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlChar * c_retval; + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathPopString", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + c_retval = xmlXPathPopString(ctxt); + py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathPositionFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathPositionFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathPositionFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathRegisterAllFunctions(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathRegisterAllFunctions", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); + + xmlXPathRegisterAllFunctions(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathRegisterNs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + int c_retval; + xmlXPathContextPtr ctxt; + PyObject *pyobj_ctxt; + xmlChar * prefix; + xmlChar * ns_uri; + + if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlXPathRegisterNs", &pyobj_ctxt, &prefix, &ns_uri)) + return(NULL); + ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); + + c_retval = xmlXPathRegisterNs(ctxt, prefix, ns_uri); + py_retval = libxml_intWrap((int) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathRegisteredFuncsCleanup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathRegisteredFuncsCleanup", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); + + xmlXPathRegisteredFuncsCleanup(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathRegisteredNsCleanup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathRegisteredNsCleanup", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); + + xmlXPathRegisteredNsCleanup(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathRegisteredVariablesCleanup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathRegisteredVariablesCleanup", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); + + xmlXPathRegisteredVariablesCleanup(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathRoot(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathRoot", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathRoot(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathRoundFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathRoundFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathRoundFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathSetContextDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathContextPtr ctxt; + PyObject *pyobj_ctxt; + xmlDocPtr doc; + PyObject *pyobj_doc; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathSetContextDoc", &pyobj_ctxt, &pyobj_doc)) + return(NULL); + ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + + ctxt->doc = doc; + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathSetContextNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathContextPtr ctxt; + PyObject *pyobj_ctxt; + xmlNodePtr node; + PyObject *pyobj_node; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPathSetContextNode", &pyobj_ctxt, &pyobj_node)) + return(NULL); + ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); + node = (xmlNodePtr) PyxmlNode_Get(pyobj_node); + + ctxt->node = node; + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathStartsWithFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathStartsWithFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathStartsWithFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathStringEvalNumber(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + double c_retval; + xmlChar * str; + + if (!PyArg_ParseTuple(args, (char *)"z:xmlXPathStringEvalNumber", &str)) + return(NULL); + + c_retval = xmlXPathStringEvalNumber(str); + py_retval = libxml_doubleWrap((double) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathStringFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathStringFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathStringFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathStringLengthFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathStringLengthFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathStringLengthFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathSubValues(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathSubValues", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathSubValues(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathSubstringAfterFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathSubstringAfterFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathSubstringAfterFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathSubstringBeforeFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathSubstringBeforeFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathSubstringBeforeFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathSubstringFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathSubstringFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathSubstringFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathSumFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathSumFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathSumFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathTranslateFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathTranslateFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathTranslateFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathTrueFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPathTrueFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathTrueFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathValueFlipSign(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPathValueFlipSign", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPathValueFlipSign(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathVariableLookup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlXPathObjectPtr c_retval; + xmlXPathContextPtr ctxt; + PyObject *pyobj_ctxt; + xmlChar * name; + + if (!PyArg_ParseTuple(args, (char *)"Oz:xmlXPathVariableLookup", &pyobj_ctxt, &name)) + return(NULL); + ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); + + c_retval = xmlXPathVariableLookup(ctxt, name); + py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPathVariableLookupNS(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlXPathObjectPtr c_retval; + xmlXPathContextPtr ctxt; + PyObject *pyobj_ctxt; + xmlChar * name; + xmlChar * ns_uri; + + if (!PyArg_ParseTuple(args, (char *)"Ozz:xmlXPathVariableLookupNS", &pyobj_ctxt, &name, &ns_uri)) + return(NULL); + ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt); + + c_retval = xmlXPathVariableLookupNS(ctxt, name, ns_uri); + py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * +libxml_xmlXPatherror(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + char * file; + int line; + int no; + + if (!PyArg_ParseTuple(args, (char *)"Ozii:xmlXPatherror", &pyobj_ctxt, &file, &line, &no)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPatherror(ctxt, file, line, no); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) +PyObject * +libxml_xmlXPtrEval(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlXPathObjectPtr c_retval; + xmlChar * str; + xmlXPathContextPtr ctx; + PyObject *pyobj_ctx; + + if (!PyArg_ParseTuple(args, (char *)"zO:xmlXPtrEval", &str, &pyobj_ctx)) + return(NULL); + ctx = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctx); + + c_retval = xmlXPtrEval(str, ctx); + py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPTR_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) +PyObject * +libxml_xmlXPtrEvalRangePredicate(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPtrEvalRangePredicate", &pyobj_ctxt)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPtrEvalRangePredicate(ctxt); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPTR_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) +PyObject * +libxml_xmlXPtrNewCollapsedRange(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlXPathObjectPtr c_retval; + xmlNodePtr start; + PyObject *pyobj_start; + + if (!PyArg_ParseTuple(args, (char *)"O:xmlXPtrNewCollapsedRange", &pyobj_start)) + return(NULL); + start = (xmlNodePtr) PyxmlNode_Get(pyobj_start); + + c_retval = xmlXPtrNewCollapsedRange(start); + py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPTR_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) +PyObject * +libxml_xmlXPtrNewContext(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlXPathContextPtr c_retval; + xmlDocPtr doc; + PyObject *pyobj_doc; + xmlNodePtr here; + PyObject *pyobj_here; + xmlNodePtr origin; + PyObject *pyobj_origin; + + if (!PyArg_ParseTuple(args, (char *)"OOO:xmlXPtrNewContext", &pyobj_doc, &pyobj_here, &pyobj_origin)) + return(NULL); + doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc); + here = (xmlNodePtr) PyxmlNode_Get(pyobj_here); + origin = (xmlNodePtr) PyxmlNode_Get(pyobj_origin); + + c_retval = xmlXPtrNewContext(doc, here, origin); + py_retval = libxml_xmlXPathContextPtrWrap((xmlXPathContextPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPTR_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) +PyObject * +libxml_xmlXPtrNewLocationSetNodes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlXPathObjectPtr c_retval; + xmlNodePtr start; + PyObject *pyobj_start; + xmlNodePtr end; + PyObject *pyobj_end; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPtrNewLocationSetNodes", &pyobj_start, &pyobj_end)) + return(NULL); + start = (xmlNodePtr) PyxmlNode_Get(pyobj_start); + end = (xmlNodePtr) PyxmlNode_Get(pyobj_end); + + c_retval = xmlXPtrNewLocationSetNodes(start, end); + py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPTR_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) +PyObject * +libxml_xmlXPtrNewRange(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlXPathObjectPtr c_retval; + xmlNodePtr start; + PyObject *pyobj_start; + int startindex; + xmlNodePtr end; + PyObject *pyobj_end; + int endindex; + + if (!PyArg_ParseTuple(args, (char *)"OiOi:xmlXPtrNewRange", &pyobj_start, &startindex, &pyobj_end, &endindex)) + return(NULL); + start = (xmlNodePtr) PyxmlNode_Get(pyobj_start); + end = (xmlNodePtr) PyxmlNode_Get(pyobj_end); + + c_retval = xmlXPtrNewRange(start, startindex, end, endindex); + py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPTR_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) +PyObject * +libxml_xmlXPtrNewRangeNodes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + PyObject *py_retval; + xmlXPathObjectPtr c_retval; + xmlNodePtr start; + PyObject *pyobj_start; + xmlNodePtr end; + PyObject *pyobj_end; + + if (!PyArg_ParseTuple(args, (char *)"OO:xmlXPtrNewRangeNodes", &pyobj_start, &pyobj_end)) + return(NULL); + start = (xmlNodePtr) PyxmlNode_Get(pyobj_start); + end = (xmlNodePtr) PyxmlNode_Get(pyobj_end); + + c_retval = xmlXPtrNewRangeNodes(start, end); + py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval); + return(py_retval); +} + +#endif /* defined(LIBXML_XPTR_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) +PyObject * +libxml_xmlXPtrRangeToFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { + xmlXPathParserContextPtr ctxt; + PyObject *pyobj_ctxt; + int nargs; + + if (!PyArg_ParseTuple(args, (char *)"Oi:xmlXPtrRangeToFunction", &pyobj_ctxt, &nargs)) + return(NULL); + ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt); + + xmlXPtrRangeToFunction(ctxt, nargs); + Py_INCREF(Py_None); + return(Py_None); +} + +#endif /* defined(LIBXML_XPTR_ENABLED) */ diff --git a/python/libxml2-py.h b/python/libxml2-py.h new file mode 100644 index 0000000..acc0e05 --- /dev/null +++ b/python/libxml2-py.h @@ -0,0 +1,2058 @@ +/* Generated */ + +#if defined(LIBXML_DOCB_ENABLED) +PyObject * libxml_docbDefaultSAXHandlerInit(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_DOCB_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlAutoCloseTag(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlCreateFileParserCtxt(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlCreateMemoryParserCtxt(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlCreatePushParser(PyObject *self, PyObject *args); +#endif +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlCtxtReadDoc(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlCtxtReadFd(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlCtxtReadFile(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlCtxtReadMemory(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlCtxtReset(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlCtxtUseOptions(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlDefaultSAXHandlerInit(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_htmlDocContentDumpFormatOutput(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_htmlDocContentDumpOutput(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_htmlDocDump(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlFreeParserCtxt(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlGetMetaEncoding(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlHandleOmittedElem(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlInitAutoClose(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlIsAutoClosed(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlIsBooleanAttr(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlIsScriptAttribute(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlNewDoc(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlNewDocNoDtD(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlNewParserCtxt(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_htmlNodeDumpFile(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_htmlNodeDumpFileFormat(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_htmlNodeDumpFormatOutput(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_htmlNodeDumpOutput(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlParseCharRef(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_PUSH_ENABLED) +PyObject * libxml_htmlParseChunk(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_PUSH_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlParseDoc(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlParseDocument(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlParseElement(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlParseFile(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlReadDoc(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlReadFd(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlReadFile(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlReadMemory(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlSAXParseFile(PyObject *self, PyObject *args); +#endif +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_htmlSaveFile(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_htmlSaveFileEnc(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_htmlSaveFileFormat(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_HTML_ENABLED) +PyObject * libxml_htmlSetMetaEncoding(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTML_ENABLED) */ +PyObject * libxml_namePop(PyObject *self, PyObject *args); +PyObject * libxml_namePush(PyObject *self, PyObject *args); +PyObject * libxml_nodePop(PyObject *self, PyObject *args); +PyObject * libxml_nodePush(PyObject *self, PyObject *args); +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_valuePop(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlACatalogAdd(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_xmlACatalogDump(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlACatalogRemove(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlACatalogResolve(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlACatalogResolvePublic(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlACatalogResolveSystem(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlACatalogResolveURI(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +PyObject * libxml_xmlAddChild(PyObject *self, PyObject *args); +PyObject * libxml_xmlAddChildList(PyObject *self, PyObject *args); +PyObject * libxml_xmlAddDocEntity(PyObject *self, PyObject *args); +PyObject * libxml_xmlAddDtdEntity(PyObject *self, PyObject *args); +PyObject * libxml_xmlAddEncodingAlias(PyObject *self, PyObject *args); +PyObject * libxml_xmlAddNextSibling(PyObject *self, PyObject *args); +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlAddPrevSibling(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +PyObject * libxml_xmlAddSibling(PyObject *self, PyObject *args); +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * libxml_xmlBoolToText(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +PyObject * libxml_xmlBuildQName(PyObject *self, PyObject *args); +PyObject * libxml_xmlBuildRelativeURI(PyObject *self, PyObject *args); +PyObject * libxml_xmlBuildURI(PyObject *self, PyObject *args); +PyObject * libxml_xmlByteConsumed(PyObject *self, PyObject *args); +PyObject * libxml_xmlCanonicPath(PyObject *self, PyObject *args); +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlCatalogAdd(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlCatalogCleanup(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlCatalogConvert(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_xmlCatalogDump(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlCatalogGetPublic(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlCatalogGetSystem(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlCatalogIsEmpty(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlCatalogRemove(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlCatalogResolve(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlCatalogResolvePublic(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlCatalogResolveSystem(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlCatalogResolveURI(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlCatalogSetDebug(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +PyObject * libxml_xmlCharStrdup(PyObject *self, PyObject *args); +PyObject * libxml_xmlCharStrndup(PyObject *self, PyObject *args); +PyObject * libxml_xmlCheckFilename(PyObject *self, PyObject *args); +PyObject * libxml_xmlCheckLanguageID(PyObject *self, PyObject *args); +PyObject * libxml_xmlCheckUTF8(PyObject *self, PyObject *args); +PyObject * libxml_xmlCheckVersion(PyObject *self, PyObject *args); +PyObject * libxml_xmlCleanupCharEncodingHandlers(PyObject *self, PyObject *args); +PyObject * libxml_xmlCleanupEncodingAliases(PyObject *self, PyObject *args); +PyObject * libxml_xmlCleanupGlobals(PyObject *self, PyObject *args); +PyObject * libxml_xmlCleanupInputCallbacks(PyObject *self, PyObject *args); +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_xmlCleanupOutputCallbacks(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * libxml_xmlCleanupPredefinedEntities(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +PyObject * libxml_xmlClearParserCtxt(PyObject *self, PyObject *args); +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlConvertSGMLCatalog(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +PyObject * libxml_xmlCopyChar(PyObject *self, PyObject *args); +PyObject * libxml_xmlCopyCharMultiByte(PyObject *self, PyObject *args); +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlCopyDoc(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) +PyObject * libxml_xmlCopyDtd(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) */ +PyObject * libxml_xmlCopyError(PyObject *self, PyObject *args); +PyObject * libxml_xmlCopyNamespace(PyObject *self, PyObject *args); +PyObject * libxml_xmlCopyNamespaceList(PyObject *self, PyObject *args); +PyObject * libxml_xmlCopyNode(PyObject *self, PyObject *args); +PyObject * libxml_xmlCopyNodeList(PyObject *self, PyObject *args); +PyObject * libxml_xmlCopyProp(PyObject *self, PyObject *args); +PyObject * libxml_xmlCopyPropList(PyObject *self, PyObject *args); +PyObject * libxml_xmlCreateDocParserCtxt(PyObject *self, PyObject *args); +PyObject * libxml_xmlCreateEntityParserCtxt(PyObject *self, PyObject *args); +PyObject * libxml_xmlCreateFileParserCtxt(PyObject *self, PyObject *args); +PyObject * libxml_xmlCreateInputBuffer(PyObject *self, PyObject *args); +PyObject * libxml_xmlCreateIntSubset(PyObject *self, PyObject *args); +PyObject * libxml_xmlCreateMemoryParserCtxt(PyObject *self, PyObject *args); +PyObject * libxml_xmlCreateOutputBuffer(PyObject *self, PyObject *args); +PyObject * libxml_xmlCreatePushParser(PyObject *self, PyObject *args); +PyObject * libxml_xmlCreateURI(PyObject *self, PyObject *args); +PyObject * libxml_xmlCreateURLParserCtxt(PyObject *self, PyObject *args); +PyObject * libxml_xmlCtxtReadDoc(PyObject *self, PyObject *args); +PyObject * libxml_xmlCtxtReadFd(PyObject *self, PyObject *args); +PyObject * libxml_xmlCtxtReadFile(PyObject *self, PyObject *args); +PyObject * libxml_xmlCtxtReadMemory(PyObject *self, PyObject *args); +PyObject * libxml_xmlCtxtReset(PyObject *self, PyObject *args); +PyObject * libxml_xmlCtxtResetPush(PyObject *self, PyObject *args); +PyObject * libxml_xmlCtxtUseOptions(PyObject *self, PyObject *args); +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * libxml_xmlDebugCheckDocument(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * libxml_xmlDebugDumpAttr(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * libxml_xmlDebugDumpAttrList(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * libxml_xmlDebugDumpDTD(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * libxml_xmlDebugDumpDocument(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * libxml_xmlDebugDumpDocumentHead(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * libxml_xmlDebugDumpEntities(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * libxml_xmlDebugDumpNode(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * libxml_xmlDebugDumpNodeList(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * libxml_xmlDebugDumpOneNode(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * libxml_xmlDebugDumpString(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +PyObject * libxml_xmlDebugMemory(PyObject *self, PyObject *args); +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * libxml_xmlDecodeEntities(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +PyObject * libxml_xmlDefaultSAXHandlerInit(PyObject *self, PyObject *args); +PyObject * libxml_xmlDelEncodingAlias(PyObject *self, PyObject *args); +PyObject * libxml_xmlDictCleanup(PyObject *self, PyObject *args); +PyObject * libxml_xmlDocCopyNode(PyObject *self, PyObject *args); +PyObject * libxml_xmlDocCopyNodeList(PyObject *self, PyObject *args); +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_xmlDocDump(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_xmlDocFormatDump(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +PyObject * libxml_xmlDocGetRootElement(PyObject *self, PyObject *args); +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) +PyObject * libxml_xmlDocSetRootElement(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */ +PyObject * libxml_xmlDumpMemory(PyObject *self, PyObject *args); +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_xmlElemDump(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * libxml_xmlEncodeEntities(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +PyObject * libxml_xmlEncodeEntitiesReentrant(PyObject *self, PyObject *args); +PyObject * libxml_xmlEncodeSpecialChars(PyObject *self, PyObject *args); +PyObject * libxml_xmlErrorGetCode(PyObject *self, PyObject *args); +PyObject * libxml_xmlErrorGetDomain(PyObject *self, PyObject *args); +PyObject * libxml_xmlErrorGetFile(PyObject *self, PyObject *args); +PyObject * libxml_xmlErrorGetLevel(PyObject *self, PyObject *args); +PyObject * libxml_xmlErrorGetLine(PyObject *self, PyObject *args); +PyObject * libxml_xmlErrorGetMessage(PyObject *self, PyObject *args); +PyObject * libxml_xmlFileMatch(PyObject *self, PyObject *args); +#if defined(LIBXML_TREE_ENABLED) +PyObject * libxml_xmlFirstElementChild(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlFreeCatalog(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +PyObject * libxml_xmlFreeDoc(PyObject *self, PyObject *args); +PyObject * libxml_xmlFreeDtd(PyObject *self, PyObject *args); +PyObject * libxml_xmlFreeNode(PyObject *self, PyObject *args); +PyObject * libxml_xmlFreeNodeList(PyObject *self, PyObject *args); +PyObject * libxml_xmlFreeNs(PyObject *self, PyObject *args); +PyObject * libxml_xmlFreeNsList(PyObject *self, PyObject *args); +PyObject * libxml_xmlFreeParserInputBuffer(PyObject *self, PyObject *args); +PyObject * libxml_xmlFreeProp(PyObject *self, PyObject *args); +PyObject * libxml_xmlFreePropList(PyObject *self, PyObject *args); +PyObject * libxml_xmlFreeURI(PyObject *self, PyObject *args); +PyObject * libxml_xmlGetCompressMode(PyObject *self, PyObject *args); +PyObject * libxml_xmlGetDocCompressMode(PyObject *self, PyObject *args); +PyObject * libxml_xmlGetDocEntity(PyObject *self, PyObject *args); +PyObject * libxml_xmlGetDtdAttrDesc(PyObject *self, PyObject *args); +PyObject * libxml_xmlGetDtdElementDesc(PyObject *self, PyObject *args); +PyObject * libxml_xmlGetDtdEntity(PyObject *self, PyObject *args); +PyObject * libxml_xmlGetDtdQAttrDesc(PyObject *self, PyObject *args); +PyObject * libxml_xmlGetDtdQElementDesc(PyObject *self, PyObject *args); +PyObject * libxml_xmlGetEncodingAlias(PyObject *self, PyObject *args); +PyObject * libxml_xmlGetID(PyObject *self, PyObject *args); +PyObject * libxml_xmlGetIntSubset(PyObject *self, PyObject *args); +PyObject * libxml_xmlGetLastChild(PyObject *self, PyObject *args); +PyObject * libxml_xmlGetLastError(PyObject *self, PyObject *args); +PyObject * libxml_xmlGetLineNo(PyObject *self, PyObject *args); +PyObject * libxml_xmlGetNoNsProp(PyObject *self, PyObject *args); +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) +PyObject * libxml_xmlGetNodePath(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) */ +PyObject * libxml_xmlGetNsProp(PyObject *self, PyObject *args); +PyObject * libxml_xmlGetParameterEntity(PyObject *self, PyObject *args); +PyObject * libxml_xmlGetPredefinedEntity(PyObject *self, PyObject *args); +PyObject * libxml_xmlGetProp(PyObject *self, PyObject *args); +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * libxml_xmlHandleEntity(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +PyObject * libxml_xmlHasNsProp(PyObject *self, PyObject *args); +PyObject * libxml_xmlHasProp(PyObject *self, PyObject *args); +#if defined(LIBXML_FTP_ENABLED) +PyObject * libxml_xmlIOFTPMatch(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_FTP_ENABLED) */ +#if defined(LIBXML_HTTP_ENABLED) +PyObject * libxml_xmlIOHTTPMatch(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTTP_ENABLED) */ +PyObject * libxml_xmlInitCharEncodingHandlers(PyObject *self, PyObject *args); +PyObject * libxml_xmlInitGlobals(PyObject *self, PyObject *args); +PyObject * libxml_xmlInitParser(PyObject *self, PyObject *args); +PyObject * libxml_xmlInitParserCtxt(PyObject *self, PyObject *args); +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlInitializeCatalog(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +PyObject * libxml_xmlInitializeDict(PyObject *self, PyObject *args); +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * libxml_xmlInitializePredefinedEntities(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +PyObject * libxml_xmlIsBaseChar(PyObject *self, PyObject *args); +PyObject * libxml_xmlIsBlank(PyObject *self, PyObject *args); +PyObject * libxml_xmlIsBlankNode(PyObject *self, PyObject *args); +PyObject * libxml_xmlIsChar(PyObject *self, PyObject *args); +PyObject * libxml_xmlIsCombining(PyObject *self, PyObject *args); +PyObject * libxml_xmlIsDigit(PyObject *self, PyObject *args); +PyObject * libxml_xmlIsExtender(PyObject *self, PyObject *args); +PyObject * libxml_xmlIsID(PyObject *self, PyObject *args); +PyObject * libxml_xmlIsIdeographic(PyObject *self, PyObject *args); +PyObject * libxml_xmlIsLetter(PyObject *self, PyObject *args); +PyObject * libxml_xmlIsMixedElement(PyObject *self, PyObject *args); +PyObject * libxml_xmlIsPubidChar(PyObject *self, PyObject *args); +PyObject * libxml_xmlIsRef(PyObject *self, PyObject *args); +PyObject * libxml_xmlIsXHTML(PyObject *self, PyObject *args); +PyObject * libxml_xmlKeepBlanksDefault(PyObject *self, PyObject *args); +#if defined(LIBXML_TREE_ENABLED) +PyObject * libxml_xmlLastElementChild(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) */ +PyObject * libxml_xmlLineNumbersDefault(PyObject *self, PyObject *args); +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlLoadACatalog(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlLoadCatalog(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlLoadCatalogs(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlLoadSGMLSuperCatalog(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * libxml_xmlLsCountNode(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) +PyObject * libxml_xmlLsOneNode(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_DEBUG_ENABLED) */ +PyObject * libxml_xmlMemoryUsed(PyObject *self, PyObject *args); +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * libxml_xmlNamespaceParseNCName(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * libxml_xmlNamespaceParseNSDef(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +#if defined(LIBXML_FTP_ENABLED) +PyObject * libxml_xmlNanoFTPCleanup(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_FTP_ENABLED) */ +#if defined(LIBXML_FTP_ENABLED) +PyObject * libxml_xmlNanoFTPInit(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_FTP_ENABLED) */ +#if defined(LIBXML_FTP_ENABLED) +PyObject * libxml_xmlNanoFTPProxy(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_FTP_ENABLED) */ +#if defined(LIBXML_FTP_ENABLED) +PyObject * libxml_xmlNanoFTPScanProxy(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_FTP_ENABLED) */ +#if defined(LIBXML_HTTP_ENABLED) +PyObject * libxml_xmlNanoHTTPCleanup(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTTP_ENABLED) */ +#if defined(LIBXML_HTTP_ENABLED) +PyObject * libxml_xmlNanoHTTPInit(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTTP_ENABLED) */ +#if defined(LIBXML_HTTP_ENABLED) +PyObject * libxml_xmlNanoHTTPScanProxy(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_HTTP_ENABLED) */ +PyObject * libxml_xmlNewCDataBlock(PyObject *self, PyObject *args); +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlNewCatalog(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +PyObject * libxml_xmlNewCharRef(PyObject *self, PyObject *args); +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlNewChild(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +PyObject * libxml_xmlNewComment(PyObject *self, PyObject *args); +PyObject * libxml_xmlNewDoc(PyObject *self, PyObject *args); +PyObject * libxml_xmlNewDocComment(PyObject *self, PyObject *args); +#if defined(LIBXML_TREE_ENABLED) +PyObject * libxml_xmlNewDocFragment(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) */ +PyObject * libxml_xmlNewDocNode(PyObject *self, PyObject *args); +PyObject * libxml_xmlNewDocNodeEatName(PyObject *self, PyObject *args); +PyObject * libxml_xmlNewDocPI(PyObject *self, PyObject *args); +PyObject * libxml_xmlNewDocProp(PyObject *self, PyObject *args); +#if defined(LIBXML_TREE_ENABLED) +PyObject * libxml_xmlNewDocRawNode(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) */ +PyObject * libxml_xmlNewDocText(PyObject *self, PyObject *args); +PyObject * libxml_xmlNewDocTextLen(PyObject *self, PyObject *args); +PyObject * libxml_xmlNewDtd(PyObject *self, PyObject *args); +PyObject * libxml_xmlNewEntity(PyObject *self, PyObject *args); +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * libxml_xmlNewGlobalNs(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +PyObject * libxml_xmlNewNode(PyObject *self, PyObject *args); +PyObject * libxml_xmlNewNodeEatName(PyObject *self, PyObject *args); +PyObject * libxml_xmlNewNs(PyObject *self, PyObject *args); +PyObject * libxml_xmlNewNsProp(PyObject *self, PyObject *args); +PyObject * libxml_xmlNewNsPropEatName(PyObject *self, PyObject *args); +PyObject * libxml_xmlNewPI(PyObject *self, PyObject *args); +PyObject * libxml_xmlNewParserCtxt(PyObject *self, PyObject *args); +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlNewProp(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +PyObject * libxml_xmlNewReference(PyObject *self, PyObject *args); +PyObject * libxml_xmlNewText(PyObject *self, PyObject *args); +#if defined(LIBXML_TREE_ENABLED) +PyObject * libxml_xmlNewTextChild(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) */ +PyObject * libxml_xmlNewTextLen(PyObject *self, PyObject *args); +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlNewTextReader(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlNewTextReaderFilename(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * libxml_xmlNewValidCtxt(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_VALID_ENABLED) */ +PyObject * libxml_xmlNextChar(PyObject *self, PyObject *args); +#if defined(LIBXML_TREE_ENABLED) +PyObject * libxml_xmlNextElementSibling(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) */ +PyObject * libxml_xmlNodeAddContent(PyObject *self, PyObject *args); +PyObject * libxml_xmlNodeAddContentLen(PyObject *self, PyObject *args); +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_xmlNodeDumpOutput(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +PyObject * libxml_xmlNodeGetBase(PyObject *self, PyObject *args); +PyObject * libxml_xmlNodeGetContent(PyObject *self, PyObject *args); +PyObject * libxml_xmlNodeGetLang(PyObject *self, PyObject *args); +PyObject * libxml_xmlNodeGetNs(PyObject *self, PyObject *args); +PyObject * libxml_xmlNodeGetNsDefs(PyObject *self, PyObject *args); +PyObject * libxml_xmlNodeGetSpacePreserve(PyObject *self, PyObject *args); +PyObject * libxml_xmlNodeIsText(PyObject *self, PyObject *args); +#if defined(LIBXML_TREE_ENABLED) +PyObject * libxml_xmlNodeListGetRawString(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) */ +PyObject * libxml_xmlNodeListGetString(PyObject *self, PyObject *args); +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) +PyObject * libxml_xmlNodeSetBase(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) */ +PyObject * libxml_xmlNodeSetContent(PyObject *self, PyObject *args); +#if defined(LIBXML_TREE_ENABLED) +PyObject * libxml_xmlNodeSetContentLen(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) +PyObject * libxml_xmlNodeSetLang(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) +PyObject * libxml_xmlNodeSetName(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) +PyObject * libxml_xmlNodeSetSpacePreserve(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) */ +PyObject * libxml_xmlNormalizeURIPath(PyObject *self, PyObject *args); +PyObject * libxml_xmlNormalizeWindowsPath(PyObject *self, PyObject *args); +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_xmlOutputBufferGetContent(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_xmlOutputBufferWrite(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_xmlOutputBufferWriteString(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +PyObject * libxml_xmlParseAttValue(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseAttributeListDecl(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseCDSect(PyObject *self, PyObject *args); +#if defined(LIBXML_CATALOG_ENABLED) +PyObject * libxml_xmlParseCatalogFile(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_CATALOG_ENABLED) */ +PyObject * libxml_xmlParseCharData(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseCharRef(PyObject *self, PyObject *args); +#if defined(LIBXML_PUSH_ENABLED) +PyObject * libxml_xmlParseChunk(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_PUSH_ENABLED) */ +PyObject * libxml_xmlParseComment(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseContent(PyObject *self, PyObject *args); +#if defined(LIBXML_VALID_ENABLED) +PyObject * libxml_xmlParseDTD(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_SAX1_ENABLED) +PyObject * libxml_xmlParseDoc(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SAX1_ENABLED) */ +PyObject * libxml_xmlParseDocTypeDecl(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseDocument(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseElement(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseElementDecl(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseEncName(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseEncodingDecl(PyObject *self, PyObject *args); +#if defined(LIBXML_SAX1_ENABLED) +PyObject * libxml_xmlParseEndTag(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SAX1_ENABLED) */ +#if defined(LIBXML_SAX1_ENABLED) +PyObject * libxml_xmlParseEntity(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SAX1_ENABLED) */ +PyObject * libxml_xmlParseEntityDecl(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseEntityRef(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseExtParsedEnt(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseExternalSubset(PyObject *self, PyObject *args); +#if defined(LIBXML_SAX1_ENABLED) +PyObject * libxml_xmlParseFile(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SAX1_ENABLED) */ +PyObject * libxml_xmlParseMarkupDecl(PyObject *self, PyObject *args); +#if defined(LIBXML_SAX1_ENABLED) +PyObject * libxml_xmlParseMemory(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SAX1_ENABLED) */ +PyObject * libxml_xmlParseMisc(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseName(PyObject *self, PyObject *args); +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * libxml_xmlParseNamespace(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +PyObject * libxml_xmlParseNmtoken(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseNotationDecl(PyObject *self, PyObject *args); +PyObject * libxml_xmlParsePEReference(PyObject *self, PyObject *args); +PyObject * libxml_xmlParsePI(PyObject *self, PyObject *args); +PyObject * libxml_xmlParsePITarget(PyObject *self, PyObject *args); +PyObject * libxml_xmlParsePubidLiteral(PyObject *self, PyObject *args); +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * libxml_xmlParseQuotedString(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +PyObject * libxml_xmlParseReference(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseSDDecl(PyObject *self, PyObject *args); +#if defined(LIBXML_SAX1_ENABLED) +PyObject * libxml_xmlParseStartTag(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SAX1_ENABLED) */ +PyObject * libxml_xmlParseSystemLiteral(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseTextDecl(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseURI(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseURIRaw(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseURIReference(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseVersionInfo(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseVersionNum(PyObject *self, PyObject *args); +PyObject * libxml_xmlParseXMLDecl(PyObject *self, PyObject *args); +PyObject * libxml_xmlParserGetDirectory(PyObject *self, PyObject *args); +PyObject * libxml_xmlParserGetDoc(PyObject *self, PyObject *args); +PyObject * libxml_xmlParserGetIsValid(PyObject *self, PyObject *args); +PyObject * libxml_xmlParserGetWellFormed(PyObject *self, PyObject *args); +PyObject * libxml_xmlParserHandlePEReference(PyObject *self, PyObject *args); +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * libxml_xmlParserHandleReference(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +PyObject * libxml_xmlParserInputBufferGrow(PyObject *self, PyObject *args); +PyObject * libxml_xmlParserInputBufferPush(PyObject *self, PyObject *args); +PyObject * libxml_xmlParserInputBufferRead(PyObject *self, PyObject *args); +PyObject * libxml_xmlParserSetLineNumbers(PyObject *self, PyObject *args); +PyObject * libxml_xmlParserSetLoadSubset(PyObject *self, PyObject *args); +PyObject * libxml_xmlParserSetPedantic(PyObject *self, PyObject *args); +PyObject * libxml_xmlParserSetReplaceEntities(PyObject *self, PyObject *args); +PyObject * libxml_xmlParserSetValidate(PyObject *self, PyObject *args); +PyObject * libxml_xmlPathToURI(PyObject *self, PyObject *args); +PyObject * libxml_xmlPedanticParserDefault(PyObject *self, PyObject *args); +PyObject * libxml_xmlPopInput(PyObject *self, PyObject *args); +PyObject * libxml_xmlPopInputCallbacks(PyObject *self, PyObject *args); +#if defined(LIBXML_TREE_ENABLED) +PyObject * libxml_xmlPreviousElementSibling(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) */ +PyObject * libxml_xmlPrintURI(PyObject *self, PyObject *args); +PyObject * libxml_xmlPythonCleanupParser(PyObject *self, PyObject *args); +PyObject * libxml_xmlReadDoc(PyObject *self, PyObject *args); +PyObject * libxml_xmlReadFd(PyObject *self, PyObject *args); +PyObject * libxml_xmlReadFile(PyObject *self, PyObject *args); +PyObject * libxml_xmlReadMemory(PyObject *self, PyObject *args); +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlReaderForDoc(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlReaderForFd(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlReaderForFile(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlReaderForMemory(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlReaderNewDoc(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlReaderNewFd(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlReaderNewFile(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlReaderNewMemory(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlReaderNewWalker(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlReaderWalker(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) +PyObject * libxml_xmlReconciliateNs(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) */ +#if defined(LIBXML_SAX1_ENABLED) +PyObject * libxml_xmlRecoverDoc(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SAX1_ENABLED) */ +#if defined(LIBXML_SAX1_ENABLED) +PyObject * libxml_xmlRecoverFile(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SAX1_ENABLED) */ +#if defined(LIBXML_SAX1_ENABLED) +PyObject * libxml_xmlRecoverMemory(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SAX1_ENABLED) */ +#if defined(LIBXML_REGEXP_ENABLED) +PyObject * libxml_xmlRegFreeRegexp(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_REGEXP_ENABLED) */ +#if defined(LIBXML_REGEXP_ENABLED) +PyObject * libxml_xmlRegexpCompile(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_REGEXP_ENABLED) */ +#if defined(LIBXML_REGEXP_ENABLED) +PyObject * libxml_xmlRegexpExec(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_REGEXP_ENABLED) */ +#if defined(LIBXML_REGEXP_ENABLED) +PyObject * libxml_xmlRegexpIsDeterminist(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_REGEXP_ENABLED) */ +#if defined(LIBXML_REGEXP_ENABLED) +PyObject * libxml_xmlRegexpPrint(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_REGEXP_ENABLED) */ +PyObject * libxml_xmlRegisterDefaultInputCallbacks(PyObject *self, PyObject *args); +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_xmlRegisterDefaultOutputCallbacks(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) && defined(LIBXML_HTTP_ENABLED) +PyObject * libxml_xmlRegisterHTTPPostCallbacks(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_OUTPUT_ENABLED) && defined(LIBXML_HTTP_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlRegisterXPathFunction(PyObject *self, PyObject *args); +#endif +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlRelaxNGCleanupTypes(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_xmlRelaxNGDump(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_xmlRelaxNGDumpTree(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlRelaxNGFree(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlRelaxNGFreeParserCtxt(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlRelaxNGInitTypes(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlRelaxNGNewDocParserCtxt(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlRelaxNGNewMemParserCtxt(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlRelaxNGNewParserCtxt(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlRelaxNGNewValidCtxt(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlRelaxNGParse(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlRelaxNGValidateDoc(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlRelaxNGValidateFullElement(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlRelaxNGValidatePopElement(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlRelaxNGValidatePushCData(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlRelaxNGValidatePushElement(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlRelaxParserSetFlag(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +PyObject * libxml_xmlRemoveID(PyObject *self, PyObject *args); +PyObject * libxml_xmlRemoveProp(PyObject *self, PyObject *args); +PyObject * libxml_xmlRemoveRef(PyObject *self, PyObject *args); +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) +PyObject * libxml_xmlReplaceNode(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */ +PyObject * libxml_xmlResetError(PyObject *self, PyObject *args); +PyObject * libxml_xmlResetLastError(PyObject *self, PyObject *args); +#if defined(LIBXML_SAX1_ENABLED) +PyObject * libxml_xmlSAXDefaultVersion(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SAX1_ENABLED) */ +PyObject * libxml_xmlSAXParseFile(PyObject *self, PyObject *args); +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_xmlSaveFile(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_xmlSaveFileEnc(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_xmlSaveFormatFile(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_xmlSaveFormatFileEnc(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_OUTPUT_ENABLED) */ +PyObject * libxml_xmlSaveUri(PyObject *self, PyObject *args); +#if defined(LIBXML_LEGACY_ENABLED) +PyObject * libxml_xmlScanName(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_LEGACY_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlSchemaCleanupTypes(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlSchemaCollapseString(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_xmlSchemaDump(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlSchemaFree(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlSchemaFreeParserCtxt(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlSchemaInitTypes(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlSchemaIsValid(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlSchemaNewDocParserCtxt(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlSchemaNewMemParserCtxt(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlSchemaNewParserCtxt(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlSchemaNewValidCtxt(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlSchemaParse(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlSchemaSetValidOptions(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlSchemaValidCtxtGetOptions(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlSchemaValidCtxtGetParserCtxt(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlSchemaValidateDoc(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlSchemaValidateFile(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlSchemaValidateOneElement(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlSchemaValidateSetFilename(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlSchemaWhiteSpaceReplace(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SCHEMAS_ENABLED) */ +PyObject * libxml_xmlSearchNs(PyObject *self, PyObject *args); +PyObject * libxml_xmlSearchNsByHref(PyObject *self, PyObject *args); +PyObject * libxml_xmlSetCompressMode(PyObject *self, PyObject *args); +PyObject * libxml_xmlSetDocCompressMode(PyObject *self, PyObject *args); +PyObject * libxml_xmlSetEntityLoader(PyObject *self, PyObject *args); +PyObject * libxml_xmlSetListDoc(PyObject *self, PyObject *args); +PyObject * libxml_xmlSetNs(PyObject *self, PyObject *args); +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) +PyObject * libxml_xmlSetNsProp(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) +PyObject * libxml_xmlSetProp(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */ +PyObject * libxml_xmlSetTreeDoc(PyObject *self, PyObject *args); +#if defined(LIBXML_SAX1_ENABLED) +PyObject * libxml_xmlSetupParserForBuffer(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_SAX1_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) +PyObject * libxml_xmlShellPrintNode(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_OUTPUT_ENABLED) */ +#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlShellPrintXPathError(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) */ +PyObject * libxml_xmlSkipBlankChars(PyObject *self, PyObject *args); +PyObject * libxml_xmlStopParser(PyObject *self, PyObject *args); +PyObject * libxml_xmlStrEqual(PyObject *self, PyObject *args); +PyObject * libxml_xmlStrQEqual(PyObject *self, PyObject *args); +PyObject * libxml_xmlStrcasecmp(PyObject *self, PyObject *args); +PyObject * libxml_xmlStrcasestr(PyObject *self, PyObject *args); +PyObject * libxml_xmlStrcat(PyObject *self, PyObject *args); +PyObject * libxml_xmlStrchr(PyObject *self, PyObject *args); +PyObject * libxml_xmlStrcmp(PyObject *self, PyObject *args); +PyObject * libxml_xmlStrdup(PyObject *self, PyObject *args); +PyObject * libxml_xmlStringDecodeEntities(PyObject *self, PyObject *args); +PyObject * libxml_xmlStringGetNodeList(PyObject *self, PyObject *args); +PyObject * libxml_xmlStringLenDecodeEntities(PyObject *self, PyObject *args); +PyObject * libxml_xmlStringLenGetNodeList(PyObject *self, PyObject *args); +PyObject * libxml_xmlStrlen(PyObject *self, PyObject *args); +PyObject * libxml_xmlStrncasecmp(PyObject *self, PyObject *args); +PyObject * libxml_xmlStrncat(PyObject *self, PyObject *args); +PyObject * libxml_xmlStrncatNew(PyObject *self, PyObject *args); +PyObject * libxml_xmlStrncmp(PyObject *self, PyObject *args); +PyObject * libxml_xmlStrndup(PyObject *self, PyObject *args); +PyObject * libxml_xmlStrstr(PyObject *self, PyObject *args); +PyObject * libxml_xmlStrsub(PyObject *self, PyObject *args); +PyObject * libxml_xmlSubstituteEntitiesDefault(PyObject *self, PyObject *args); +PyObject * libxml_xmlTextConcat(PyObject *self, PyObject *args); +PyObject * libxml_xmlTextMerge(PyObject *self, PyObject *args); +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderAttributeCount(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderByteConsumed(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderClose(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderConstBaseUri(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderConstEncoding(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderConstLocalName(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderConstName(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderConstNamespaceUri(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderConstPrefix(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderConstString(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderConstValue(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderConstXmlLang(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderConstXmlVersion(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderCurrentDoc(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderCurrentNode(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderDepth(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderExpand(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderGetAttribute(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderGetAttributeNo(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderGetAttributeNs(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderGetParserColumnNumber(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderGetParserLineNumber(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderGetParserProp(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderGetRemainder(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderHasAttributes(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderHasValue(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderIsDefault(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderIsEmptyElement(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderIsNamespaceDecl(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderIsValid(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderLocatorBaseURI(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderLocatorLineNumber(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderLookupNamespace(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderMoveToAttribute(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderMoveToAttributeNo(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderMoveToAttributeNs(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderMoveToElement(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderMoveToFirstAttribute(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderMoveToNextAttribute(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderNext(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderNextSibling(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderNodeType(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderNormalization(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderPreserve(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderQuoteChar(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderRead(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderReadAttributeValue(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_WRITER_ENABLED) +PyObject * libxml_xmlTextReaderReadInnerXml(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_WRITER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_WRITER_ENABLED) +PyObject * libxml_xmlTextReaderReadOuterXml(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_WRITER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderReadState(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderReadString(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlTextReaderRelaxNGSetSchema(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlTextReaderRelaxNGValidate(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlTextReaderRelaxNGValidateCtxt(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlTextReaderSchemaValidate(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlTextReaderSchemaValidateCtxt(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderSetParserProp(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlTextReaderSetSchema(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderSetup(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +#if defined(LIBXML_READER_ENABLED) +PyObject * libxml_xmlTextReaderStandalone(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_READER_ENABLED) */ +PyObject * libxml_xmlThrDefDefaultBufferSize(PyObject *self, PyObject *args); +PyObject * libxml_xmlThrDefDoValidityCheckingDefaultValue(PyObject *self, PyObject *args); +PyObject * libxml_xmlThrDefGetWarningsDefaultValue(PyObject *self, PyObject *args); +PyObject * libxml_xmlThrDefIndentTreeOutput(PyObject *self, PyObject *args); +PyObject * libxml_xmlThrDefKeepBlanksDefaultValue(PyObject *self, PyObject *args); +PyObject * libxml_xmlThrDefLineNumbersDefaultValue(PyObject *self, PyObject *args); +PyObject * libxml_xmlThrDefLoadExtDtdDefaultValue(PyObject *self, PyObject *args); +PyObject * libxml_xmlThrDefParserDebugEntities(PyObject *self, PyObject *args); +PyObject * libxml_xmlThrDefPedanticParserDefaultValue(PyObject *self, PyObject *args); +PyObject * libxml_xmlThrDefSaveNoEmptyTags(PyObject *self, PyObject *args); +PyObject * libxml_xmlThrDefSubstituteEntitiesDefaultValue(PyObject *self, PyObject *args); +PyObject * libxml_xmlThrDefTreeIndentString(PyObject *self, PyObject *args); +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsAegeanNumbers(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsAlphabeticPresentationForms(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsArabic(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsArabicPresentationFormsA(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsArabicPresentationFormsB(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsArmenian(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsArrows(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsBasicLatin(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsBengali(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsBlock(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsBlockElements(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsBopomofo(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsBopomofoExtended(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsBoxDrawing(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsBraillePatterns(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsBuhid(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsByzantineMusicalSymbols(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCJKCompatibility(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCJKCompatibilityForms(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCJKCompatibilityIdeographs(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCJKCompatibilityIdeographsSupplement(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCJKRadicalsSupplement(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCJKSymbolsandPunctuation(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCJKUnifiedIdeographs(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCJKUnifiedIdeographsExtensionA(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCJKUnifiedIdeographsExtensionB(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCat(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatC(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatCc(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatCf(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatCo(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatCs(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatL(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatLl(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatLm(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatLo(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatLt(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatLu(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatM(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatMc(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatMe(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatMn(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatN(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatNd(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatNl(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatNo(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatP(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatPc(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatPd(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatPe(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatPf(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatPi(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatPo(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatPs(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatS(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatSc(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatSk(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatSm(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatSo(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatZ(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatZl(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatZp(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCatZs(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCherokee(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCombiningDiacriticalMarks(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCombiningDiacriticalMarksforSymbols(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCombiningHalfMarks(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCombiningMarksforSymbols(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsControlPictures(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCurrencySymbols(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCypriotSyllabary(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCyrillic(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsCyrillicSupplement(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsDeseret(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsDevanagari(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsDingbats(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsEnclosedAlphanumerics(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsEnclosedCJKLettersandMonths(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsEthiopic(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsGeneralPunctuation(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsGeometricShapes(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsGeorgian(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsGothic(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsGreek(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsGreekExtended(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsGreekandCoptic(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsGujarati(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsGurmukhi(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsHalfwidthandFullwidthForms(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsHangulCompatibilityJamo(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsHangulJamo(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsHangulSyllables(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsHanunoo(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsHebrew(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsHighPrivateUseSurrogates(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsHighSurrogates(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsHiragana(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsIPAExtensions(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsIdeographicDescriptionCharacters(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsKanbun(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsKangxiRadicals(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsKannada(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsKatakana(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsKatakanaPhoneticExtensions(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsKhmer(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsKhmerSymbols(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsLao(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsLatin1Supplement(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsLatinExtendedA(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsLatinExtendedAdditional(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsLatinExtendedB(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsLetterlikeSymbols(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsLimbu(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsLinearBIdeograms(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsLinearBSyllabary(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsLowSurrogates(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsMalayalam(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsMathematicalAlphanumericSymbols(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsMathematicalOperators(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsMiscellaneousMathematicalSymbolsA(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsMiscellaneousMathematicalSymbolsB(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsMiscellaneousSymbols(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsMiscellaneousSymbolsandArrows(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsMiscellaneousTechnical(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsMongolian(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsMusicalSymbols(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsMyanmar(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsNumberForms(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsOgham(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsOldItalic(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsOpticalCharacterRecognition(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsOriya(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsOsmanya(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsPhoneticExtensions(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsPrivateUse(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsPrivateUseArea(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsRunic(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsShavian(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsSinhala(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsSmallFormVariants(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsSpacingModifierLetters(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsSpecials(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsSuperscriptsandSubscripts(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsSupplementalArrowsA(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsSupplementalArrowsB(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsSupplementalMathematicalOperators(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsSupplementaryPrivateUseAreaA(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsSupplementaryPrivateUseAreaB(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsSyriac(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsTagalog(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsTagbanwa(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsTags(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsTaiLe(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsTaiXuanJingSymbols(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsTamil(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsTelugu(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsThaana(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsThai(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsTibetan(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsUgaritic(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsUnifiedCanadianAboriginalSyllabics(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsVariationSelectors(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsVariationSelectorsSupplement(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsYiRadicals(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsYiSyllables(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +#if defined(LIBXML_UNICODE_ENABLED) +PyObject * libxml_xmlUCSIsYijingHexagramSymbols(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_UNICODE_ENABLED) */ +PyObject * libxml_xmlURIEscape(PyObject *self, PyObject *args); +PyObject * libxml_xmlURIEscapeStr(PyObject *self, PyObject *args); +PyObject * libxml_xmlURIGetAuthority(PyObject *self, PyObject *args); +PyObject * libxml_xmlURIGetFragment(PyObject *self, PyObject *args); +PyObject * libxml_xmlURIGetOpaque(PyObject *self, PyObject *args); +PyObject * libxml_xmlURIGetPath(PyObject *self, PyObject *args); +PyObject * libxml_xmlURIGetPort(PyObject *self, PyObject *args); +PyObject * libxml_xmlURIGetQuery(PyObject *self, PyObject *args); +PyObject * libxml_xmlURIGetQueryRaw(PyObject *self, PyObject *args); +PyObject * libxml_xmlURIGetScheme(PyObject *self, PyObject *args); +PyObject * libxml_xmlURIGetServer(PyObject *self, PyObject *args); +PyObject * libxml_xmlURIGetUser(PyObject *self, PyObject *args); +PyObject * libxml_xmlURISetAuthority(PyObject *self, PyObject *args); +PyObject * libxml_xmlURISetFragment(PyObject *self, PyObject *args); +PyObject * libxml_xmlURISetOpaque(PyObject *self, PyObject *args); +PyObject * libxml_xmlURISetPath(PyObject *self, PyObject *args); +PyObject * libxml_xmlURISetPort(PyObject *self, PyObject *args); +PyObject * libxml_xmlURISetQuery(PyObject *self, PyObject *args); +PyObject * libxml_xmlURISetQueryRaw(PyObject *self, PyObject *args); +PyObject * libxml_xmlURISetScheme(PyObject *self, PyObject *args); +PyObject * libxml_xmlURISetServer(PyObject *self, PyObject *args); +PyObject * libxml_xmlURISetUser(PyObject *self, PyObject *args); +PyObject * libxml_xmlURIUnescapeString(PyObject *self, PyObject *args); +PyObject * libxml_xmlUTF8Charcmp(PyObject *self, PyObject *args); +PyObject * libxml_xmlUTF8Size(PyObject *self, PyObject *args); +PyObject * libxml_xmlUTF8Strlen(PyObject *self, PyObject *args); +PyObject * libxml_xmlUTF8Strloc(PyObject *self, PyObject *args); +PyObject * libxml_xmlUTF8Strndup(PyObject *self, PyObject *args); +PyObject * libxml_xmlUTF8Strpos(PyObject *self, PyObject *args); +PyObject * libxml_xmlUTF8Strsize(PyObject *self, PyObject *args); +PyObject * libxml_xmlUTF8Strsub(PyObject *self, PyObject *args); +PyObject * libxml_xmlUnlinkNode(PyObject *self, PyObject *args); +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlUnsetNsProp(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlUnsetProp(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * libxml_xmlValidCtxtNormalizeAttributeValue(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * libxml_xmlValidNormalizeAttributeValue(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * libxml_xmlValidateDocument(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * libxml_xmlValidateDocumentFinal(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * libxml_xmlValidateDtd(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * libxml_xmlValidateDtdFinal(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * libxml_xmlValidateElement(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) +PyObject * libxml_xmlValidateNCName(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlValidateNMToken(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlValidateName(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * libxml_xmlValidateNameValue(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * libxml_xmlValidateNamesValue(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * libxml_xmlValidateNmtokenValue(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * libxml_xmlValidateNmtokensValue(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlValidateNotationUse(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * libxml_xmlValidateOneAttribute(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * libxml_xmlValidateOneElement(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * libxml_xmlValidateOneNamespace(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) +PyObject * libxml_xmlValidatePopElement(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) +PyObject * libxml_xmlValidatePushCData(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) +PyObject * libxml_xmlValidatePushElement(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED) */ +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlValidateQName(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_VALID_ENABLED) +PyObject * libxml_xmlValidateRoot(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_VALID_ENABLED) */ +#if defined(LIBXML_XINCLUDE_ENABLED) +PyObject * libxml_xmlXIncludeProcess(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XINCLUDE_ENABLED) */ +#if defined(LIBXML_XINCLUDE_ENABLED) +PyObject * libxml_xmlXIncludeProcessFlags(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XINCLUDE_ENABLED) */ +#if defined(LIBXML_XINCLUDE_ENABLED) +PyObject * libxml_xmlXIncludeProcessTree(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XINCLUDE_ENABLED) */ +#if defined(LIBXML_XINCLUDE_ENABLED) +PyObject * libxml_xmlXIncludeProcessTreeFlags(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XINCLUDE_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathAddValues(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathBooleanFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathCastBooleanToNumber(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathCastBooleanToString(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathCastNodeToNumber(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathCastNodeToString(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathCastNumberToBoolean(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathCastNumberToString(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathCastStringToBoolean(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathCastStringToNumber(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathCeilingFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathCmpNodes(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathCompareValues(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathConcatFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathContainsFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathContextSetCache(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathCountFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathDivValues(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathEqualValues(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathErr(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathEval(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathEvalExpr(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathEvalExpression(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathFalseFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathFloorFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathFreeContext(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathFreeParserContext(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathGetContextDoc(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathGetContextNode(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathGetContextPosition(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathGetContextSize(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathGetFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathGetFunctionURI(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathIdFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlXPathInit(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlXPathIsInf(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +PyObject * libxml_xmlXPathIsNaN(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathIsNodeType(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathLangFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathLastFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathLocalNameFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathModValues(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathMultValues(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNamespaceURIFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNewBoolean(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNewCString(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNewContext(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNewFloat(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNewNodeSet(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNewParserContext(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNewString(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNewValueTree(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNextAncestor(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNextAncestorOrSelf(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNextAttribute(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNextChild(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNextDescendant(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNextDescendantOrSelf(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNextFollowing(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNextFollowingSibling(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNextNamespace(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNextParent(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNextPreceding(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNextPrecedingSibling(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNextSelf(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNodeSetFreeNs(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNormalizeFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNotEqualValues(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNotFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNsLookup(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathNumberFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathOrderDocElems(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathParseNCName(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathParseName(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathParserGetContext(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathPopBoolean(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathPopNumber(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathPopString(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathPositionFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathRegisterAllFunctions(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathRegisterNs(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathRegisteredFuncsCleanup(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathRegisteredNsCleanup(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathRegisteredVariablesCleanup(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathRoot(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathRoundFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathSetContextDoc(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathSetContextNode(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathStartsWithFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathStringEvalNumber(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathStringFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathStringLengthFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathSubValues(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathSubstringAfterFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathSubstringBeforeFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathSubstringFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathSumFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathTranslateFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathTrueFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathValueFlipSign(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathVariableLookup(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPathVariableLookupNS(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPATH_ENABLED) +PyObject * libxml_xmlXPatherror(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPATH_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) +PyObject * libxml_xmlXPtrEval(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPTR_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) +PyObject * libxml_xmlXPtrEvalRangePredicate(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPTR_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) +PyObject * libxml_xmlXPtrNewCollapsedRange(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPTR_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) +PyObject * libxml_xmlXPtrNewContext(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPTR_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) +PyObject * libxml_xmlXPtrNewLocationSetNodes(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPTR_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) +PyObject * libxml_xmlXPtrNewRange(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPTR_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) +PyObject * libxml_xmlXPtrNewRangeNodes(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPTR_ENABLED) */ +#if defined(LIBXML_XPTR_ENABLED) +PyObject * libxml_xmlXPtrRangeToFunction(PyObject *self, PyObject *args); +#endif /* defined(LIBXML_XPTR_ENABLED) */ diff --git a/python/libxml2.py b/python/libxml2.py new file mode 100644 index 0000000..086389b --- /dev/null +++ b/python/libxml2.py @@ -0,0 +1,9259 @@ +import libxml2mod +import types +import sys + +# The root of all libxml2 errors. +class libxmlError(Exception): pass + +# +# id() is sometimes negative ... +# +def pos_id(o): + i = id(o) + if (i < 0): + return (sys.maxint - i) + return i + +# +# Errors raised by the wrappers when some tree handling failed. +# +class treeError(libxmlError): + def __init__(self, msg): + self.msg = msg + def __str__(self): + return self.msg + +class parserError(libxmlError): + def __init__(self, msg): + self.msg = msg + def __str__(self): + return self.msg + +class uriError(libxmlError): + def __init__(self, msg): + self.msg = msg + def __str__(self): + return self.msg + +class xpathError(libxmlError): + def __init__(self, msg): + self.msg = msg + def __str__(self): + return self.msg + +class ioWrapper: + def __init__(self, _obj): + self.__io = _obj + self._o = None + + def io_close(self): + if self.__io == None: + return(-1) + self.__io.close() + self.__io = None + return(0) + + def io_flush(self): + if self.__io == None: + return(-1) + self.__io.flush() + return(0) + + def io_read(self, len = -1): + if self.__io == None: + return(-1) + if len < 0: + return(self.__io.read()) + return(self.__io.read(len)) + + def io_write(self, str, len = -1): + if self.__io == None: + return(-1) + if len < 0: + return(self.__io.write(str)) + return(self.__io.write(str, len)) + +class ioReadWrapper(ioWrapper): + def __init__(self, _obj, enc = ""): + ioWrapper.__init__(self, _obj) + self._o = libxml2mod.xmlCreateInputBuffer(self, enc) + + def __del__(self): + print "__del__" + self.io_close() + if self._o != None: + libxml2mod.xmlFreeParserInputBuffer(self._o) + self._o = None + + def close(self): + self.io_close() + if self._o != None: + libxml2mod.xmlFreeParserInputBuffer(self._o) + self._o = None + +class ioWriteWrapper(ioWrapper): + def __init__(self, _obj, enc = ""): +# print "ioWriteWrapper.__init__", _obj + if type(_obj) == type(''): + print "write io from a string" + self.o = None + elif type(_obj) == types.InstanceType: + print "write io from instance of %s" % (_obj.__class__) + ioWrapper.__init__(self, _obj) + self._o = libxml2mod.xmlCreateOutputBuffer(self, enc) + else: + file = libxml2mod.outputBufferGetPythonFile(_obj) + if file != None: + ioWrapper.__init__(self, file) + else: + ioWrapper.__init__(self, _obj) + self._o = _obj + + def __del__(self): +# print "__del__" + self.io_close() + if self._o != None: + libxml2mod.xmlOutputBufferClose(self._o) + self._o = None + + def flush(self): + self.io_flush() + if self._o != None: + libxml2mod.xmlOutputBufferClose(self._o) + self._o = None + + def close(self): + self.io_flush() + if self._o != None: + libxml2mod.xmlOutputBufferClose(self._o) + self._o = None + +# +# Example of a class to handle SAX events +# +class SAXCallback: + """Base class for SAX handlers""" + def startDocument(self): + """called at the start of the document""" + pass + + def endDocument(self): + """called at the end of the document""" + pass + + def startElement(self, tag, attrs): + """called at the start of every element, tag is the name of + the element, attrs is a dictionary of the element's attributes""" + pass + + def endElement(self, tag): + """called at the start of every element, tag is the name of + the element""" + pass + + def characters(self, data): + """called when character data have been read, data is the string + containing the data, multiple consecutive characters() callback + are possible.""" + pass + + def cdataBlock(self, data): + """called when CDATA section have been read, data is the string + containing the data, multiple consecutive cdataBlock() callback + are possible.""" + pass + + def reference(self, name): + """called when an entity reference has been found""" + pass + + def ignorableWhitespace(self, data): + """called when potentially ignorable white spaces have been found""" + pass + + def processingInstruction(self, target, data): + """called when a PI has been found, target contains the PI name and + data is the associated data in the PI""" + pass + + def comment(self, content): + """called when a comment has been found, content contains the comment""" + pass + + def externalSubset(self, name, externalID, systemID): + """called when a DOCTYPE declaration has been found, name is the + DTD name and externalID, systemID are the DTD public and system + identifier for that DTd if available""" + pass + + def internalSubset(self, name, externalID, systemID): + """called when a DOCTYPE declaration has been found, name is the + DTD name and externalID, systemID are the DTD public and system + identifier for that DTD if available""" + pass + + def entityDecl(self, name, type, externalID, systemID, content): + """called when an ENTITY declaration has been found, name is the + entity name and externalID, systemID are the entity public and + system identifier for that entity if available, type indicates + the entity type, and content reports it's string content""" + pass + + def notationDecl(self, name, externalID, systemID): + """called when an NOTATION declaration has been found, name is the + notation name and externalID, systemID are the notation public and + system identifier for that notation if available""" + pass + + def attributeDecl(self, elem, name, type, defi, defaultValue, nameList): + """called when an ATTRIBUTE definition has been found""" + pass + + def elementDecl(self, name, type, content): + """called when an ELEMENT definition has been found""" + pass + + def entityDecl(self, name, publicId, systemID, notationName): + """called when an unparsed ENTITY declaration has been found, + name is the entity name and publicId,, systemID are the entity + public and system identifier for that entity if available, + and notationName indicate the associated NOTATION""" + pass + + def warning(self, msg): + #print msg + pass + + def error(self, msg): + raise parserError(msg) + + def fatalError(self, msg): + raise parserError(msg) + +# +# This class is the ancestor of all the Node classes. It provides +# the basic functionalities shared by all nodes (and handle +# gracefylly the exception), like name, navigation in the tree, +# doc reference, content access and serializing to a string or URI +# +class xmlCore: + def __init__(self, _obj=None): + if _obj != None: + self._o = _obj; + return + self._o = None + + def __eq__(self, other): + if other == None: + return False + ret = libxml2mod.compareNodesEqual(self._o, other._o) + if ret == None: + return False + return ret == True + def __ne__(self, other): + if other == None: + return True + ret = libxml2mod.compareNodesEqual(self._o, other._o) + return not ret + def __hash__(self): + ret = libxml2mod.nodeHash(self._o) + return ret + + def __str__(self): + return self.serialize() + def get_parent(self): + ret = libxml2mod.parent(self._o) + if ret == None: + return None + return xmlNode(_obj=ret) + def get_children(self): + ret = libxml2mod.children(self._o) + if ret == None: + return None + return xmlNode(_obj=ret) + def get_last(self): + ret = libxml2mod.last(self._o) + if ret == None: + return None + return xmlNode(_obj=ret) + def get_next(self): + ret = libxml2mod.next(self._o) + if ret == None: + return None + return xmlNode(_obj=ret) + def get_properties(self): + ret = libxml2mod.properties(self._o) + if ret == None: + return None + return xmlAttr(_obj=ret) + def get_prev(self): + ret = libxml2mod.prev(self._o) + if ret == None: + return None + return xmlNode(_obj=ret) + def get_content(self): + return libxml2mod.xmlNodeGetContent(self._o) + getContent = get_content # why is this duplicate naming needed ? + def get_name(self): + return libxml2mod.name(self._o) + def get_type(self): + return libxml2mod.type(self._o) + def get_doc(self): + ret = libxml2mod.doc(self._o) + if ret == None: + if self.type in ["document_xml", "document_html"]: + return xmlDoc(_obj=self._o) + else: + return None + return xmlDoc(_obj=ret) + # + # Those are common attributes to nearly all type of nodes + # defined as python2 properties + # + import sys + if float(sys.version[0:3]) < 2.2: + def __getattr__(self, attr): + if attr == "parent": + ret = libxml2mod.parent(self._o) + if ret == None: + return None + return xmlNode(_obj=ret) + elif attr == "properties": + ret = libxml2mod.properties(self._o) + if ret == None: + return None + return xmlAttr(_obj=ret) + elif attr == "children": + ret = libxml2mod.children(self._o) + if ret == None: + return None + return xmlNode(_obj=ret) + elif attr == "last": + ret = libxml2mod.last(self._o) + if ret == None: + return None + return xmlNode(_obj=ret) + elif attr == "next": + ret = libxml2mod.next(self._o) + if ret == None: + return None + return xmlNode(_obj=ret) + elif attr == "prev": + ret = libxml2mod.prev(self._o) + if ret == None: + return None + return xmlNode(_obj=ret) + elif attr == "content": + return libxml2mod.xmlNodeGetContent(self._o) + elif attr == "name": + return libxml2mod.name(self._o) + elif attr == "type": + return libxml2mod.type(self._o) + elif attr == "doc": + ret = libxml2mod.doc(self._o) + if ret == None: + if self.type == "document_xml" or self.type == "document_html": + return xmlDoc(_obj=self._o) + else: + return None + return xmlDoc(_obj=ret) + raise AttributeError,attr + else: + parent = property(get_parent, None, None, "Parent node") + children = property(get_children, None, None, "First child node") + last = property(get_last, None, None, "Last sibling node") + next = property(get_next, None, None, "Next sibling node") + prev = property(get_prev, None, None, "Previous sibling node") + properties = property(get_properties, None, None, "List of properies") + content = property(get_content, None, None, "Content of this node") + name = property(get_name, None, None, "Node name") + type = property(get_type, None, None, "Node type") + doc = property(get_doc, None, None, "The document this node belongs to") + + # + # Serialization routines, the optional arguments have the following + # meaning: + # encoding: string to ask saving in a specific encoding + # indent: if 1 the serializer is asked to indent the output + # + def serialize(self, encoding = None, format = 0): + return libxml2mod.serializeNode(self._o, encoding, format) + def saveTo(self, file, encoding = None, format = 0): + return libxml2mod.saveNodeTo(self._o, file, encoding, format) + + # + # Canonicalization routines: + # + # nodes: the node set (tuple or list) to be included in the + # canonized image or None if all document nodes should be + # included. + # exclusive: the exclusive flag (0 - non-exclusive + # canonicalization; otherwise - exclusive canonicalization) + # prefixes: the list of inclusive namespace prefixes (strings), + # or None if there is no inclusive namespaces (only for + # exclusive canonicalization, ignored otherwise) + # with_comments: include comments in the result (!=0) or not + # (==0) + def c14nMemory(self, + nodes=None, + exclusive=0, + prefixes=None, + with_comments=0): + if nodes: + nodes = map(lambda n: n._o, nodes) + return libxml2mod.xmlC14NDocDumpMemory( + self.get_doc()._o, + nodes, + exclusive != 0, + prefixes, + with_comments != 0) + def c14nSaveTo(self, + file, + nodes=None, + exclusive=0, + prefixes=None, + with_comments=0): + if nodes: + nodes = map(lambda n: n._o, nodes) + return libxml2mod.xmlC14NDocSaveTo( + self.get_doc()._o, + nodes, + exclusive != 0, + prefixes, + with_comments != 0, + file) + + # + # Selecting nodes using XPath, a bit slow because the context + # is allocated/freed every time but convenient. + # + def xpathEval(self, expr): + doc = self.doc + if doc == None: + return None + ctxt = doc.xpathNewContext() + ctxt.setContextNode(self) + res = ctxt.xpathEval(expr) + ctxt.xpathFreeContext() + return res + +# # +# # Selecting nodes using XPath, faster because the context +# # is allocated just once per xmlDoc. +# # +# # Removed: DV memleaks c.f. #126735 +# # +# def xpathEval2(self, expr): +# doc = self.doc +# if doc == None: +# return None +# try: +# doc._ctxt.setContextNode(self) +# except: +# doc._ctxt = doc.xpathNewContext() +# doc._ctxt.setContextNode(self) +# res = doc._ctxt.xpathEval(expr) +# return res + def xpathEval2(self, expr): + return self.xpathEval(expr) + + # Remove namespaces + def removeNsDef(self, href): + """ + Remove a namespace definition from a node. If href is None, + remove all of the ns definitions on that node. The removed + namespaces are returned as a linked list. + + Note: If any child nodes referred to the removed namespaces, + they will be left with dangling links. You should call + renconciliateNs() to fix those pointers. + + Note: This method does not free memory taken by the ns + definitions. You will need to free it manually with the + freeNsList() method on the returns xmlNs object. + """ + + ret = libxml2mod.xmlNodeRemoveNsDef(self._o, href) + if ret is None:return None + __tmp = xmlNs(_obj=ret) + return __tmp + + # support for python2 iterators + def walk_depth_first(self): + return xmlCoreDepthFirstItertor(self) + def walk_breadth_first(self): + return xmlCoreBreadthFirstItertor(self) + __iter__ = walk_depth_first + + def free(self): + try: + self.doc._ctxt.xpathFreeContext() + except: + pass + libxml2mod.xmlFreeDoc(self._o) + + +# +# implements the depth-first iterator for libxml2 DOM tree +# +class xmlCoreDepthFirstItertor: + def __init__(self, node): + self.node = node + self.parents = [] + def __iter__(self): + return self + def next(self): + while 1: + if self.node: + ret = self.node + self.parents.append(self.node) + self.node = self.node.children + return ret + try: + parent = self.parents.pop() + except IndexError: + raise StopIteration + self.node = parent.next + +# +# implements the breadth-first iterator for libxml2 DOM tree +# +class xmlCoreBreadthFirstItertor: + def __init__(self, node): + self.node = node + self.parents = [] + def __iter__(self): + return self + def next(self): + while 1: + if self.node: + ret = self.node + self.parents.append(self.node) + self.node = self.node.next + return ret + try: + parent = self.parents.pop() + except IndexError: + raise StopIteration + self.node = parent.children + +# +# converters to present a nicer view of the XPath returns +# +def nodeWrap(o): + # TODO try to cast to the most appropriate node class + name = libxml2mod.type(o) + if name == "element" or name == "text": + return xmlNode(_obj=o) + if name == "attribute": + return xmlAttr(_obj=o) + if name[0:8] == "document": + return xmlDoc(_obj=o) + if name == "namespace": + return xmlNs(_obj=o) + if name == "elem_decl": + return xmlElement(_obj=o) + if name == "attribute_decl": + return xmlAttribute(_obj=o) + if name == "entity_decl": + return xmlEntity(_obj=o) + if name == "dtd": + return xmlDtd(_obj=o) + return xmlNode(_obj=o) + +def xpathObjectRet(o): + otype = type(o) + if otype == type([]): + ret = map(xpathObjectRet, o) + return ret + elif otype == type(()): + ret = map(xpathObjectRet, o) + return tuple(ret) + elif otype == type('') or otype == type(0) or otype == type(0.0): + return o + else: + return nodeWrap(o) + +# +# register an XPath function +# +def registerXPathFunction(ctxt, name, ns_uri, f): + ret = libxml2mod.xmlRegisterXPathFunction(ctxt, name, ns_uri, f) + +# +# For the xmlTextReader parser configuration +# +PARSER_LOADDTD=1 +PARSER_DEFAULTATTRS=2 +PARSER_VALIDATE=3 +PARSER_SUBST_ENTITIES=4 + +# +# For the error callback severities +# +PARSER_SEVERITY_VALIDITY_WARNING=1 +PARSER_SEVERITY_VALIDITY_ERROR=2 +PARSER_SEVERITY_WARNING=3 +PARSER_SEVERITY_ERROR=4 + +# +# register the libxml2 error handler +# +def registerErrorHandler(f, ctx): + """Register a Python written function to for error reporting. + The function is called back as f(ctx, error). """ + import sys + if not sys.modules.has_key('libxslt'): + # normal behaviour when libxslt is not imported + ret = libxml2mod.xmlRegisterErrorHandler(f,ctx) + else: + # when libxslt is already imported, one must + # use libxst's error handler instead + import libxslt + ret = libxslt.registerErrorHandler(f,ctx) + return ret + +class parserCtxtCore: + + def __init__(self, _obj=None): + if _obj != None: + self._o = _obj; + return + self._o = None + + def __del__(self): + if self._o != None: + libxml2mod.xmlFreeParserCtxt(self._o) + self._o = None + + def setErrorHandler(self,f,arg): + """Register an error handler that will be called back as + f(arg,msg,severity,reserved). + + @reserved is currently always None.""" + libxml2mod.xmlParserCtxtSetErrorHandler(self._o,f,arg) + + def getErrorHandler(self): + """Return (f,arg) as previously registered with setErrorHandler + or (None,None).""" + return libxml2mod.xmlParserCtxtGetErrorHandler(self._o) + + def addLocalCatalog(self, uri): + """Register a local catalog with the parser""" + return libxml2mod.addLocalCatalog(self._o, uri) + + +class ValidCtxtCore: + + def __init__(self, *args, **kw): + pass + + def setValidityErrorHandler(self, err_func, warn_func, arg=None): + """ + Register error and warning handlers for DTD validation. + These will be called back as f(msg,arg) + """ + libxml2mod.xmlSetValidErrors(self._o, err_func, warn_func, arg) + + +class SchemaValidCtxtCore: + + def __init__(self, *args, **kw): + pass + + def setValidityErrorHandler(self, err_func, warn_func, arg=None): + """ + Register error and warning handlers for Schema validation. + These will be called back as f(msg,arg) + """ + libxml2mod.xmlSchemaSetValidErrors(self._o, err_func, warn_func, arg) + + +class relaxNgValidCtxtCore: + + def __init__(self, *args, **kw): + pass + + def setValidityErrorHandler(self, err_func, warn_func, arg=None): + """ + Register error and warning handlers for RelaxNG validation. + These will be called back as f(msg,arg) + """ + libxml2mod.xmlRelaxNGSetValidErrors(self._o, err_func, warn_func, arg) + + +def _xmlTextReaderErrorFunc((f,arg),msg,severity,locator): + """Intermediate callback to wrap the locator""" + return f(arg,msg,severity,xmlTextReaderLocator(locator)) + +class xmlTextReaderCore: + + def __init__(self, _obj=None): + self.input = None + if _obj != None:self._o = _obj;return + self._o = None + + def __del__(self): + if self._o != None: + libxml2mod.xmlFreeTextReader(self._o) + self._o = None + + def SetErrorHandler(self,f,arg): + """Register an error handler that will be called back as + f(arg,msg,severity,locator).""" + if f is None: + libxml2mod.xmlTextReaderSetErrorHandler(\ + self._o,None,None) + else: + libxml2mod.xmlTextReaderSetErrorHandler(\ + self._o,_xmlTextReaderErrorFunc,(f,arg)) + + def GetErrorHandler(self): + """Return (f,arg) as previously registered with setErrorHandler + or (None,None).""" + f,arg = libxml2mod.xmlTextReaderGetErrorHandler(self._o) + if f is None: + return None,None + else: + # assert f is _xmlTextReaderErrorFunc + return arg + +# +# The cleanup now goes though a wrappe in libxml.c +# +def cleanupParser(): + libxml2mod.xmlPythonCleanupParser() + +# WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING +# +# Everything before this line comes from libxml.py +# Everything after this line is automatically generated +# +# WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING + +# +# Functions from module HTMLparser +# + +def htmlCreateMemoryParserCtxt(buffer, size): + """Create a parser context for an HTML in-memory document. """ + ret = libxml2mod.htmlCreateMemoryParserCtxt(buffer, size) + if ret is None:raise parserError('htmlCreateMemoryParserCtxt() failed') + return parserCtxt(_obj=ret) + +def htmlHandleOmittedElem(val): + """Set and return the previous value for handling HTML omitted + tags. """ + ret = libxml2mod.htmlHandleOmittedElem(val) + return ret + +def htmlIsScriptAttribute(name): + """Check if an attribute is of content type Script """ + ret = libxml2mod.htmlIsScriptAttribute(name) + return ret + +def htmlNewParserCtxt(): + """Allocate and initialize a new parser context. """ + ret = libxml2mod.htmlNewParserCtxt() + if ret is None:raise parserError('htmlNewParserCtxt() failed') + return parserCtxt(_obj=ret) + +def htmlParseDoc(cur, encoding): + """parse an HTML in-memory document and build a tree. """ + ret = libxml2mod.htmlParseDoc(cur, encoding) + if ret is None:raise parserError('htmlParseDoc() failed') + return xmlDoc(_obj=ret) + +def htmlParseFile(filename, encoding): + """parse an HTML file and build a tree. Automatic support for + ZLIB/Compress compressed document is provided by default if + found at compile-time. """ + ret = libxml2mod.htmlParseFile(filename, encoding) + if ret is None:raise parserError('htmlParseFile() failed') + return xmlDoc(_obj=ret) + +def htmlReadDoc(cur, URL, encoding, options): + """parse an XML in-memory document and build a tree. """ + ret = libxml2mod.htmlReadDoc(cur, URL, encoding, options) + if ret is None:raise treeError('htmlReadDoc() failed') + return xmlDoc(_obj=ret) + +def htmlReadFd(fd, URL, encoding, options): + """parse an XML from a file descriptor and build a tree. """ + ret = libxml2mod.htmlReadFd(fd, URL, encoding, options) + if ret is None:raise treeError('htmlReadFd() failed') + return xmlDoc(_obj=ret) + +def htmlReadFile(filename, encoding, options): + """parse an XML file from the filesystem or the network. """ + ret = libxml2mod.htmlReadFile(filename, encoding, options) + if ret is None:raise treeError('htmlReadFile() failed') + return xmlDoc(_obj=ret) + +def htmlReadMemory(buffer, size, URL, encoding, options): + """parse an XML in-memory document and build a tree. """ + ret = libxml2mod.htmlReadMemory(buffer, size, URL, encoding, options) + if ret is None:raise treeError('htmlReadMemory() failed') + return xmlDoc(_obj=ret) + +# +# Functions from module HTMLtree +# + +def htmlIsBooleanAttr(name): + """Determine if a given attribute is a boolean attribute. """ + ret = libxml2mod.htmlIsBooleanAttr(name) + return ret + +def htmlNewDoc(URI, ExternalID): + """Creates a new HTML document """ + ret = libxml2mod.htmlNewDoc(URI, ExternalID) + if ret is None:raise treeError('htmlNewDoc() failed') + return xmlDoc(_obj=ret) + +def htmlNewDocNoDtD(URI, ExternalID): + """Creates a new HTML document without a DTD node if @URI and + @ExternalID are None """ + ret = libxml2mod.htmlNewDocNoDtD(URI, ExternalID) + if ret is None:raise treeError('htmlNewDocNoDtD() failed') + return xmlDoc(_obj=ret) + +# +# Functions from module SAX2 +# + +def SAXDefaultVersion(version): + """Set the default version of SAX used globally by the + library. By default, during initialization the default is + set to 2. Note that it is generally a better coding style + to use xmlSAXVersion() to set up the version explicitly for + a given parsing context. """ + ret = libxml2mod.xmlSAXDefaultVersion(version) + return ret + +def defaultSAXHandlerInit(): + """Initialize the default SAX2 handler """ + libxml2mod.xmlDefaultSAXHandlerInit() + +def docbDefaultSAXHandlerInit(): + """Initialize the default SAX handler """ + libxml2mod.docbDefaultSAXHandlerInit() + +def htmlDefaultSAXHandlerInit(): + """Initialize the default SAX handler """ + libxml2mod.htmlDefaultSAXHandlerInit() + +# +# Functions from module catalog +# + +def catalogAdd(type, orig, replace): + """Add an entry in the catalog, it may overwrite existing but + different entries. If called before any other catalog + routine, allows to override the default shared catalog put + in place by xmlInitializeCatalog(); """ + ret = libxml2mod.xmlCatalogAdd(type, orig, replace) + return ret + +def catalogCleanup(): + """Free up all the memory associated with catalogs """ + libxml2mod.xmlCatalogCleanup() + +def catalogConvert(): + """Convert all the SGML catalog entries as XML ones """ + ret = libxml2mod.xmlCatalogConvert() + return ret + +def catalogDump(out): + """Dump all the global catalog content to the given file. """ + libxml2mod.xmlCatalogDump(out) + +def catalogGetPublic(pubID): + """Try to lookup the catalog reference associated to a public + ID DEPRECATED, use xmlCatalogResolvePublic() """ + ret = libxml2mod.xmlCatalogGetPublic(pubID) + return ret + +def catalogGetSystem(sysID): + """Try to lookup the catalog reference associated to a system + ID DEPRECATED, use xmlCatalogResolveSystem() """ + ret = libxml2mod.xmlCatalogGetSystem(sysID) + return ret + +def catalogRemove(value): + """Remove an entry from the catalog """ + ret = libxml2mod.xmlCatalogRemove(value) + return ret + +def catalogResolve(pubID, sysID): + """Do a complete resolution lookup of an External Identifier """ + ret = libxml2mod.xmlCatalogResolve(pubID, sysID) + return ret + +def catalogResolvePublic(pubID): + """Try to lookup the catalog reference associated to a public + ID """ + ret = libxml2mod.xmlCatalogResolvePublic(pubID) + return ret + +def catalogResolveSystem(sysID): + """Try to lookup the catalog resource for a system ID """ + ret = libxml2mod.xmlCatalogResolveSystem(sysID) + return ret + +def catalogResolveURI(URI): + """Do a complete resolution lookup of an URI """ + ret = libxml2mod.xmlCatalogResolveURI(URI) + return ret + +def catalogSetDebug(level): + """Used to set the debug level for catalog operation, 0 + disable debugging, 1 enable it """ + ret = libxml2mod.xmlCatalogSetDebug(level) + return ret + +def initializeCatalog(): + """Do the catalog initialization. this function is not thread + safe, catalog initialization should preferably be done once + at startup """ + libxml2mod.xmlInitializeCatalog() + +def loadACatalog(filename): + """Load the catalog and build the associated data structures. + This can be either an XML Catalog or an SGML Catalog It + will recurse in SGML CATALOG entries. On the other hand XML + Catalogs are not handled recursively. """ + ret = libxml2mod.xmlLoadACatalog(filename) + if ret is None:raise treeError('xmlLoadACatalog() failed') + return catalog(_obj=ret) + +def loadCatalog(filename): + """Load the catalog and makes its definitions effective for + the default external entity loader. It will recurse in SGML + CATALOG entries. this function is not thread safe, catalog + initialization should preferably be done once at startup """ + ret = libxml2mod.xmlLoadCatalog(filename) + return ret + +def loadCatalogs(pathss): + """Load the catalogs and makes their definitions effective for + the default external entity loader. this function is not + thread safe, catalog initialization should preferably be + done once at startup """ + libxml2mod.xmlLoadCatalogs(pathss) + +def loadSGMLSuperCatalog(filename): + """Load an SGML super catalog. It won't expand CATALOG or + DELEGATE references. This is only needed for manipulating + SGML Super Catalogs like adding and removing CATALOG or + DELEGATE entries. """ + ret = libxml2mod.xmlLoadSGMLSuperCatalog(filename) + if ret is None:raise treeError('xmlLoadSGMLSuperCatalog() failed') + return catalog(_obj=ret) + +def newCatalog(sgml): + """create a new Catalog. """ + ret = libxml2mod.xmlNewCatalog(sgml) + if ret is None:raise treeError('xmlNewCatalog() failed') + return catalog(_obj=ret) + +def parseCatalogFile(filename): + """parse an XML file and build a tree. It's like + xmlParseFile() except it bypass all catalog lookups. """ + ret = libxml2mod.xmlParseCatalogFile(filename) + if ret is None:raise parserError('xmlParseCatalogFile() failed') + return xmlDoc(_obj=ret) + +# +# Functions from module chvalid +# + +def isBaseChar(ch): + """This function is DEPRECATED. Use xmlIsBaseChar_ch or + xmlIsBaseCharQ instead """ + ret = libxml2mod.xmlIsBaseChar(ch) + return ret + +def isBlank(ch): + """This function is DEPRECATED. Use xmlIsBlank_ch or + xmlIsBlankQ instead """ + ret = libxml2mod.xmlIsBlank(ch) + return ret + +def isChar(ch): + """This function is DEPRECATED. Use xmlIsChar_ch or xmlIsCharQ + instead """ + ret = libxml2mod.xmlIsChar(ch) + return ret + +def isCombining(ch): + """This function is DEPRECATED. Use xmlIsCombiningQ instead """ + ret = libxml2mod.xmlIsCombining(ch) + return ret + +def isDigit(ch): + """This function is DEPRECATED. Use xmlIsDigit_ch or + xmlIsDigitQ instead """ + ret = libxml2mod.xmlIsDigit(ch) + return ret + +def isExtender(ch): + """This function is DEPRECATED. Use xmlIsExtender_ch or + xmlIsExtenderQ instead """ + ret = libxml2mod.xmlIsExtender(ch) + return ret + +def isIdeographic(ch): + """This function is DEPRECATED. Use xmlIsIdeographicQ instead """ + ret = libxml2mod.xmlIsIdeographic(ch) + return ret + +def isPubidChar(ch): + """This function is DEPRECATED. Use xmlIsPubidChar_ch or + xmlIsPubidCharQ instead """ + ret = libxml2mod.xmlIsPubidChar(ch) + return ret + +# +# Functions from module debugXML +# + +def boolToText(boolval): + """Convenient way to turn bool into text """ + ret = libxml2mod.xmlBoolToText(boolval) + return ret + +def debugDumpString(output, str): + """Dumps informations about the string, shorten it if necessary """ + libxml2mod.xmlDebugDumpString(output, str) + +def shellPrintXPathError(errorType, arg): + """Print the xpath error to libxml default error channel """ + libxml2mod.xmlShellPrintXPathError(errorType, arg) + +# +# Functions from module dict +# + +def dictCleanup(): + """Free the dictionary mutex. Do not call unless sure the + library is not in use anymore ! """ + libxml2mod.xmlDictCleanup() + +def initializeDict(): + """Do the dictionary mutex initialization. this function is + not thread safe, initialization should preferably be done + once at startup """ + ret = libxml2mod.xmlInitializeDict() + return ret + +# +# Functions from module encoding +# + +def addEncodingAlias(name, alias): + """Registers an alias @alias for an encoding named @name. + Existing alias will be overwritten. """ + ret = libxml2mod.xmlAddEncodingAlias(name, alias) + return ret + +def cleanupCharEncodingHandlers(): + """Cleanup the memory allocated for the char encoding support, + it unregisters all the encoding handlers and the aliases. """ + libxml2mod.xmlCleanupCharEncodingHandlers() + +def cleanupEncodingAliases(): + """Unregisters all aliases """ + libxml2mod.xmlCleanupEncodingAliases() + +def delEncodingAlias(alias): + """Unregisters an encoding alias @alias """ + ret = libxml2mod.xmlDelEncodingAlias(alias) + return ret + +def encodingAlias(alias): + """Lookup an encoding name for the given alias. """ + ret = libxml2mod.xmlGetEncodingAlias(alias) + return ret + +def initCharEncodingHandlers(): + """Initialize the char encoding support, it registers the + default encoding supported. NOTE: while public, this + function usually doesn't need to be called in normal + processing. """ + libxml2mod.xmlInitCharEncodingHandlers() + +# +# Functions from module entities +# + +def cleanupPredefinedEntities(): + """Cleanup up the predefined entities table. Deprecated call """ + libxml2mod.xmlCleanupPredefinedEntities() + +def initializePredefinedEntities(): + """Set up the predefined entities. Deprecated call """ + libxml2mod.xmlInitializePredefinedEntities() + +def predefinedEntity(name): + """Check whether this name is an predefined entity. """ + ret = libxml2mod.xmlGetPredefinedEntity(name) + if ret is None:raise treeError('xmlGetPredefinedEntity() failed') + return xmlEntity(_obj=ret) + +# +# Functions from module globals +# + +def cleanupGlobals(): + """Additional cleanup for multi-threading """ + libxml2mod.xmlCleanupGlobals() + +def initGlobals(): + """Additional initialisation for multi-threading """ + libxml2mod.xmlInitGlobals() + +def thrDefDefaultBufferSize(v): + ret = libxml2mod.xmlThrDefDefaultBufferSize(v) + return ret + +def thrDefDoValidityCheckingDefaultValue(v): + ret = libxml2mod.xmlThrDefDoValidityCheckingDefaultValue(v) + return ret + +def thrDefGetWarningsDefaultValue(v): + ret = libxml2mod.xmlThrDefGetWarningsDefaultValue(v) + return ret + +def thrDefIndentTreeOutput(v): + ret = libxml2mod.xmlThrDefIndentTreeOutput(v) + return ret + +def thrDefKeepBlanksDefaultValue(v): + ret = libxml2mod.xmlThrDefKeepBlanksDefaultValue(v) + return ret + +def thrDefLineNumbersDefaultValue(v): + ret = libxml2mod.xmlThrDefLineNumbersDefaultValue(v) + return ret + +def thrDefLoadExtDtdDefaultValue(v): + ret = libxml2mod.xmlThrDefLoadExtDtdDefaultValue(v) + return ret + +def thrDefParserDebugEntities(v): + ret = libxml2mod.xmlThrDefParserDebugEntities(v) + return ret + +def thrDefPedanticParserDefaultValue(v): + ret = libxml2mod.xmlThrDefPedanticParserDefaultValue(v) + return ret + +def thrDefSaveNoEmptyTags(v): + ret = libxml2mod.xmlThrDefSaveNoEmptyTags(v) + return ret + +def thrDefSubstituteEntitiesDefaultValue(v): + ret = libxml2mod.xmlThrDefSubstituteEntitiesDefaultValue(v) + return ret + +def thrDefTreeIndentString(v): + ret = libxml2mod.xmlThrDefTreeIndentString(v) + return ret + +# +# Functions from module nanoftp +# + +def nanoFTPCleanup(): + """Cleanup the FTP protocol layer. This cleanup proxy + informations. """ + libxml2mod.xmlNanoFTPCleanup() + +def nanoFTPInit(): + """Initialize the FTP protocol layer. Currently it just checks + for proxy informations, and get the hostname """ + libxml2mod.xmlNanoFTPInit() + +def nanoFTPProxy(host, port, user, passwd, type): + """Setup the FTP proxy informations. This can also be done by + using ftp_proxy ftp_proxy_user and ftp_proxy_password + environment variables. """ + libxml2mod.xmlNanoFTPProxy(host, port, user, passwd, type) + +def nanoFTPScanProxy(URL): + """(Re)Initialize the FTP Proxy context by parsing the URL and + finding the protocol host port it indicates. Should be like + ftp://myproxy/ or ftp://myproxy:3128/ A None URL cleans up + proxy informations. """ + libxml2mod.xmlNanoFTPScanProxy(URL) + +# +# Functions from module nanohttp +# + +def nanoHTTPCleanup(): + """Cleanup the HTTP protocol layer. """ + libxml2mod.xmlNanoHTTPCleanup() + +def nanoHTTPInit(): + """Initialize the HTTP protocol layer. Currently it just + checks for proxy informations """ + libxml2mod.xmlNanoHTTPInit() + +def nanoHTTPScanProxy(URL): + """(Re)Initialize the HTTP Proxy context by parsing the URL + and finding the protocol host port it indicates. Should be + like http://myproxy/ or http://myproxy:3128/ A None URL + cleans up proxy informations. """ + libxml2mod.xmlNanoHTTPScanProxy(URL) + +# +# Functions from module parser +# + +def createDocParserCtxt(cur): + """Creates a parser context for an XML in-memory document. """ + ret = libxml2mod.xmlCreateDocParserCtxt(cur) + if ret is None:raise parserError('xmlCreateDocParserCtxt() failed') + return parserCtxt(_obj=ret) + +def initParser(): + """Initialization function for the XML parser. This is not + reentrant. Call once before processing in case of use in + multithreaded programs. """ + libxml2mod.xmlInitParser() + +def keepBlanksDefault(val): + """Set and return the previous value for default blanks text + nodes support. The 1.x version of the parser used an + heuristic to try to detect ignorable white spaces. As a + result the SAX callback was generating + xmlSAX2IgnorableWhitespace() callbacks instead of + characters() one, and when using the DOM output text nodes + containing those blanks were not generated. The 2.x and + later version will switch to the XML standard way and + ignorableWhitespace() are only generated when running the + parser in validating mode and when the current element + doesn't allow CDATA or mixed content. This function is + provided as a way to force the standard behavior on 1.X + libs and to switch back to the old mode for compatibility + when running 1.X client code on 2.X . Upgrade of 1.X code + should be done by using xmlIsBlankNode() commodity function + to detect the "empty" nodes generated. This value also + affect autogeneration of indentation when saving code if + blanks sections are kept, indentation is not generated. """ + ret = libxml2mod.xmlKeepBlanksDefault(val) + return ret + +def lineNumbersDefault(val): + """Set and return the previous value for enabling line numbers + in elements contents. This may break on old application and + is turned off by default. """ + ret = libxml2mod.xmlLineNumbersDefault(val) + return ret + +def newParserCtxt(): + """Allocate and initialize a new parser context. """ + ret = libxml2mod.xmlNewParserCtxt() + if ret is None:raise parserError('xmlNewParserCtxt() failed') + return parserCtxt(_obj=ret) + +def parseDTD(ExternalID, SystemID): + """Load and parse an external subset. """ + ret = libxml2mod.xmlParseDTD(ExternalID, SystemID) + if ret is None:raise parserError('xmlParseDTD() failed') + return xmlDtd(_obj=ret) + +def parseDoc(cur): + """parse an XML in-memory document and build a tree. """ + ret = libxml2mod.xmlParseDoc(cur) + if ret is None:raise parserError('xmlParseDoc() failed') + return xmlDoc(_obj=ret) + +def parseEntity(filename): + """parse an XML external entity out of context and build a + tree. [78] extParsedEnt ::= TextDecl? content This + correspond to a "Well Balanced" chunk """ + ret = libxml2mod.xmlParseEntity(filename) + if ret is None:raise parserError('xmlParseEntity() failed') + return xmlDoc(_obj=ret) + +def parseFile(filename): + """parse an XML file and build a tree. Automatic support for + ZLIB/Compress compressed document is provided by default if + found at compile-time. """ + ret = libxml2mod.xmlParseFile(filename) + if ret is None:raise parserError('xmlParseFile() failed') + return xmlDoc(_obj=ret) + +def parseMemory(buffer, size): + """parse an XML in-memory block and build a tree. """ + ret = libxml2mod.xmlParseMemory(buffer, size) + if ret is None:raise parserError('xmlParseMemory() failed') + return xmlDoc(_obj=ret) + +def pedanticParserDefault(val): + """Set and return the previous value for enabling pedantic + warnings. """ + ret = libxml2mod.xmlPedanticParserDefault(val) + return ret + +def readDoc(cur, URL, encoding, options): + """parse an XML in-memory document and build a tree. """ + ret = libxml2mod.xmlReadDoc(cur, URL, encoding, options) + if ret is None:raise treeError('xmlReadDoc() failed') + return xmlDoc(_obj=ret) + +def readFd(fd, URL, encoding, options): + """parse an XML from a file descriptor and build a tree. NOTE + that the file descriptor will not be closed when the reader + is closed or reset. """ + ret = libxml2mod.xmlReadFd(fd, URL, encoding, options) + if ret is None:raise treeError('xmlReadFd() failed') + return xmlDoc(_obj=ret) + +def readFile(filename, encoding, options): + """parse an XML file from the filesystem or the network. """ + ret = libxml2mod.xmlReadFile(filename, encoding, options) + if ret is None:raise treeError('xmlReadFile() failed') + return xmlDoc(_obj=ret) + +def readMemory(buffer, size, URL, encoding, options): + """parse an XML in-memory document and build a tree. """ + ret = libxml2mod.xmlReadMemory(buffer, size, URL, encoding, options) + if ret is None:raise treeError('xmlReadMemory() failed') + return xmlDoc(_obj=ret) + +def recoverDoc(cur): + """parse an XML in-memory document and build a tree. In the + case the document is not Well Formed, a attempt to build a + tree is tried anyway """ + ret = libxml2mod.xmlRecoverDoc(cur) + if ret is None:raise treeError('xmlRecoverDoc() failed') + return xmlDoc(_obj=ret) + +def recoverFile(filename): + """parse an XML file and build a tree. Automatic support for + ZLIB/Compress compressed document is provided by default if + found at compile-time. In the case the document is not Well + Formed, it attempts to build a tree anyway """ + ret = libxml2mod.xmlRecoverFile(filename) + if ret is None:raise treeError('xmlRecoverFile() failed') + return xmlDoc(_obj=ret) + +def recoverMemory(buffer, size): + """parse an XML in-memory block and build a tree. In the case + the document is not Well Formed, an attempt to build a tree + is tried anyway """ + ret = libxml2mod.xmlRecoverMemory(buffer, size) + if ret is None:raise treeError('xmlRecoverMemory() failed') + return xmlDoc(_obj=ret) + +def substituteEntitiesDefault(val): + """Set and return the previous value for default entity + support. Initially the parser always keep entity references + instead of substituting entity values in the output. This + function has to be used to change the default parser + behavior SAX::substituteEntities() has to be used for + changing that on a file by file basis. """ + ret = libxml2mod.xmlSubstituteEntitiesDefault(val) + return ret + +# +# Functions from module parserInternals +# + +def checkLanguageID(lang): + """Checks that the value conforms to the LanguageID + production: NOTE: this is somewhat deprecated, those + productions were removed from the XML Second edition. [33] + LanguageID ::= Langcode ('-' Subcode)* [34] Langcode ::= + ISO639Code | IanaCode | UserCode [35] ISO639Code ::= + ([a-z] | [A-Z]) ([a-z] | [A-Z]) [36] IanaCode ::= ('i' | + 'I') '-' ([a-z] | [A-Z])+ [37] UserCode ::= ('x' | 'X') '-' + ([a-z] | [A-Z])+ [38] Subcode ::= ([a-z] | [A-Z])+ The + current REC reference the sucessors of RFC 1766, currently + 5646 http://www.rfc-editor.org/rfc/rfc5646.txt langtag + = language ["-" script] ["-" region] *("-" variant) *("-" + extension) ["-" privateuse] language = 2*3ALPHA + ; shortest ISO 639 code ["-" extlang] ; sometimes + followed by ; extended language subtags / 4ALPHA + ; or reserved for future use / 5*8ALPHA ; or + registered language subtag extlang = 3ALPHA + ; selected ISO 639 codes *2("-" 3ALPHA) ; permanently + reserved script = 4ALPHA ; ISO 15924 + code region = 2ALPHA ; ISO 3166-1 code + / 3DIGIT ; UN M.49 code variant = + 5*8alphanum ; registered variants / (DIGIT + 3alphanum) extension = singleton 1*("-" (2*8alphanum)) + ; Single alphanumerics ; "x" reserved for private use + singleton = DIGIT ; 0 - 9 / %x41-57 + ; A - W / %x59-5A ; Y - Z / %x61-77 + ; a - w / %x79-7A ; y - z it sounds right to + still allow Irregular i-xxx IANA and user codes too The + parser below doesn't try to cope with extension or + privateuse that could be added but that's not interoperable + anyway """ + ret = libxml2mod.xmlCheckLanguageID(lang) + return ret + +def copyChar(len, out, val): + """append the char value in the array """ + ret = libxml2mod.xmlCopyChar(len, out, val) + return ret + +def copyCharMultiByte(out, val): + """append the char value in the array """ + ret = libxml2mod.xmlCopyCharMultiByte(out, val) + return ret + +def createEntityParserCtxt(URL, ID, base): + """Create a parser context for an external entity Automatic + support for ZLIB/Compress compressed document is provided + by default if found at compile-time. """ + ret = libxml2mod.xmlCreateEntityParserCtxt(URL, ID, base) + if ret is None:raise parserError('xmlCreateEntityParserCtxt() failed') + return parserCtxt(_obj=ret) + +def createFileParserCtxt(filename): + """Create a parser context for a file content. Automatic + support for ZLIB/Compress compressed document is provided + by default if found at compile-time. """ + ret = libxml2mod.xmlCreateFileParserCtxt(filename) + if ret is None:raise parserError('xmlCreateFileParserCtxt() failed') + return parserCtxt(_obj=ret) + +def createMemoryParserCtxt(buffer, size): + """Create a parser context for an XML in-memory document. """ + ret = libxml2mod.xmlCreateMemoryParserCtxt(buffer, size) + if ret is None:raise parserError('xmlCreateMemoryParserCtxt() failed') + return parserCtxt(_obj=ret) + +def createURLParserCtxt(filename, options): + """Create a parser context for a file or URL content. + Automatic support for ZLIB/Compress compressed document is + provided by default if found at compile-time and for file + accesses """ + ret = libxml2mod.xmlCreateURLParserCtxt(filename, options) + if ret is None:raise parserError('xmlCreateURLParserCtxt() failed') + return parserCtxt(_obj=ret) + +def htmlCreateFileParserCtxt(filename, encoding): + """Create a parser context for a file content. Automatic + support for ZLIB/Compress compressed document is provided + by default if found at compile-time. """ + ret = libxml2mod.htmlCreateFileParserCtxt(filename, encoding) + if ret is None:raise parserError('htmlCreateFileParserCtxt() failed') + return parserCtxt(_obj=ret) + +def htmlInitAutoClose(): + """Initialize the htmlStartCloseIndex for fast lookup of + closing tags names. This is not reentrant. Call + xmlInitParser() once before processing in case of use in + multithreaded programs. """ + libxml2mod.htmlInitAutoClose() + +def isLetter(c): + """Check whether the character is allowed by the production + [84] Letter ::= BaseChar | Ideographic """ + ret = libxml2mod.xmlIsLetter(c) + return ret + +def namePop(ctxt): + """Pops the top element name from the name stack """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.namePop(ctxt__o) + return ret + +def namePush(ctxt, value): + """Pushes a new element name on top of the name stack """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.namePush(ctxt__o, value) + return ret + +def nodePop(ctxt): + """Pops the top element node from the node stack """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.nodePop(ctxt__o) + if ret is None:raise treeError('nodePop() failed') + return xmlNode(_obj=ret) + +def nodePush(ctxt, value): + """Pushes a new element node on top of the node stack """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if value is None: value__o = None + else: value__o = value._o + ret = libxml2mod.nodePush(ctxt__o, value__o) + return ret + +# +# Functions from module python +# + +def SAXParseFile(SAX, URI, recover): + """Interface to parse an XML file or resource pointed by an + URI to build an event flow to the SAX object """ + libxml2mod.xmlSAXParseFile(SAX, URI, recover) + +def createInputBuffer(file, encoding): + """Create a libxml2 input buffer from a Python file """ + ret = libxml2mod.xmlCreateInputBuffer(file, encoding) + if ret is None:raise treeError('xmlCreateInputBuffer() failed') + return inputBuffer(_obj=ret) + +def createOutputBuffer(file, encoding): + """Create a libxml2 output buffer from a Python file """ + ret = libxml2mod.xmlCreateOutputBuffer(file, encoding) + if ret is None:raise treeError('xmlCreateOutputBuffer() failed') + return outputBuffer(_obj=ret) + +def createPushParser(SAX, chunk, size, URI): + """Create a progressive XML parser context to build either an + event flow if the SAX object is not None, or a DOM tree + otherwise. """ + ret = libxml2mod.xmlCreatePushParser(SAX, chunk, size, URI) + if ret is None:raise parserError('xmlCreatePushParser() failed') + return parserCtxt(_obj=ret) + +def debugMemory(activate): + """Switch on the generation of line number for elements nodes. + Also returns the number of bytes allocated and not freed by + libxml2 since memory debugging was switched on. """ + ret = libxml2mod.xmlDebugMemory(activate) + return ret + +def dumpMemory(): + """dump the memory allocated in the file .memdump """ + libxml2mod.xmlDumpMemory() + +def htmlCreatePushParser(SAX, chunk, size, URI): + """Create a progressive HTML parser context to build either an + event flow if the SAX object is not None, or a DOM tree + otherwise. """ + ret = libxml2mod.htmlCreatePushParser(SAX, chunk, size, URI) + if ret is None:raise parserError('htmlCreatePushParser() failed') + return parserCtxt(_obj=ret) + +def htmlSAXParseFile(SAX, URI, encoding): + """Interface to parse an HTML file or resource pointed by an + URI to build an event flow to the SAX object """ + libxml2mod.htmlSAXParseFile(SAX, URI, encoding) + +def memoryUsed(): + """Returns the total amount of memory allocated by libxml2 """ + ret = libxml2mod.xmlMemoryUsed() + return ret + +def newNode(name): + """Create a new Node """ + ret = libxml2mod.xmlNewNode(name) + if ret is None:raise treeError('xmlNewNode() failed') + return xmlNode(_obj=ret) + +def pythonCleanupParser(): + """Cleanup function for the XML library. It tries to reclaim + all parsing related global memory allocated for the library + processing. It doesn't deallocate any document related + memory. Calling this function should not prevent reusing + the library but one should call xmlCleanupParser() only + when the process has finished using the library or XML + document built with it. """ + libxml2mod.xmlPythonCleanupParser() + +def setEntityLoader(resolver): + """Set the entity resolver as a python function """ + ret = libxml2mod.xmlSetEntityLoader(resolver) + return ret + +# +# Functions from module relaxng +# + +def relaxNGCleanupTypes(): + """Cleanup the default Schemas type library associated to + RelaxNG """ + libxml2mod.xmlRelaxNGCleanupTypes() + +def relaxNGInitTypes(): + """Initilize the default type libraries. """ + ret = libxml2mod.xmlRelaxNGInitTypes() + return ret + +def relaxNGNewMemParserCtxt(buffer, size): + """Create an XML RelaxNGs parse context for that memory buffer + expected to contain an XML RelaxNGs file. """ + ret = libxml2mod.xmlRelaxNGNewMemParserCtxt(buffer, size) + if ret is None:raise parserError('xmlRelaxNGNewMemParserCtxt() failed') + return relaxNgParserCtxt(_obj=ret) + +def relaxNGNewParserCtxt(URL): + """Create an XML RelaxNGs parse context for that file/resource + expected to contain an XML RelaxNGs file. """ + ret = libxml2mod.xmlRelaxNGNewParserCtxt(URL) + if ret is None:raise parserError('xmlRelaxNGNewParserCtxt() failed') + return relaxNgParserCtxt(_obj=ret) + +# +# Functions from module tree +# + +def buildQName(ncname, prefix, memory, len): + """Builds the QName @prefix:@ncname in @memory if there is + enough space and prefix is not None nor empty, otherwise + allocate a new string. If prefix is None or empty it + returns ncname. """ + ret = libxml2mod.xmlBuildQName(ncname, prefix, memory, len) + return ret + +def compressMode(): + """get the default compression mode used, ZLIB based. """ + ret = libxml2mod.xmlGetCompressMode() + return ret + +def isXHTML(systemID, publicID): + """Try to find if the document correspond to an XHTML DTD """ + ret = libxml2mod.xmlIsXHTML(systemID, publicID) + return ret + +def newComment(content): + """Creation of a new node containing a comment. """ + ret = libxml2mod.xmlNewComment(content) + if ret is None:raise treeError('xmlNewComment() failed') + return xmlNode(_obj=ret) + +def newDoc(version): + """Creates a new XML document """ + ret = libxml2mod.xmlNewDoc(version) + if ret is None:raise treeError('xmlNewDoc() failed') + return xmlDoc(_obj=ret) + +def newPI(name, content): + """Creation of a processing instruction element. Use + xmlDocNewPI preferably to get string interning """ + ret = libxml2mod.xmlNewPI(name, content) + if ret is None:raise treeError('xmlNewPI() failed') + return xmlNode(_obj=ret) + +def newText(content): + """Creation of a new text node. """ + ret = libxml2mod.xmlNewText(content) + if ret is None:raise treeError('xmlNewText() failed') + return xmlNode(_obj=ret) + +def newTextLen(content, len): + """Creation of a new text node with an extra parameter for the + content's length """ + ret = libxml2mod.xmlNewTextLen(content, len) + if ret is None:raise treeError('xmlNewTextLen() failed') + return xmlNode(_obj=ret) + +def setCompressMode(mode): + """set the default compression mode used, ZLIB based Correct + values: 0 (uncompressed) to 9 (max compression) """ + libxml2mod.xmlSetCompressMode(mode) + +def validateNCName(value, space): + """Check that a value conforms to the lexical space of NCName """ + ret = libxml2mod.xmlValidateNCName(value, space) + return ret + +def validateNMToken(value, space): + """Check that a value conforms to the lexical space of NMToken """ + ret = libxml2mod.xmlValidateNMToken(value, space) + return ret + +def validateName(value, space): + """Check that a value conforms to the lexical space of Name """ + ret = libxml2mod.xmlValidateName(value, space) + return ret + +def validateQName(value, space): + """Check that a value conforms to the lexical space of QName """ + ret = libxml2mod.xmlValidateQName(value, space) + return ret + +# +# Functions from module uri +# + +def URIEscape(str): + """Escaping routine, does not do validity checks ! It will try + to escape the chars needing this, but this is heuristic + based it's impossible to be sure. """ + ret = libxml2mod.xmlURIEscape(str) + return ret + +def URIEscapeStr(str, list): + """This routine escapes a string to hex, ignoring reserved + characters (a-z) and the characters in the exception list. """ + ret = libxml2mod.xmlURIEscapeStr(str, list) + return ret + +def URIUnescapeString(str, len, target): + """Unescaping routine, but does not check that the string is + an URI. The output is a direct unsigned char translation of + %XX values (no encoding) Note that the length of the result + can only be smaller or same size as the input string. """ + ret = libxml2mod.xmlURIUnescapeString(str, len, target) + return ret + +def buildRelativeURI(URI, base): + """Expresses the URI of the reference in terms relative to the + base. Some examples of this operation include: base = + "http://site1.com/docs/book1.html" URI input + URI returned docs/pic1.gif pic1.gif + docs/img/pic1.gif img/pic1.gif img/pic1.gif + ../img/pic1.gif http://site1.com/docs/pic1.gif pic1.gif + http://site2.com/docs/pic1.gif + http://site2.com/docs/pic1.gif base = "docs/book1.html" + URI input URI returned docs/pic1.gif + pic1.gif docs/img/pic1.gif img/pic1.gif + img/pic1.gif ../img/pic1.gif + http://site1.com/docs/pic1.gif + http://site1.com/docs/pic1.gif Note: if the URI reference + is really wierd or complicated, it may be worthwhile to + first convert it into a "nice" one by calling xmlBuildURI + (using 'base') before calling this routine, since this + routine (for reasonable efficiency) assumes URI has already + been through some validation. """ + ret = libxml2mod.xmlBuildRelativeURI(URI, base) + return ret + +def buildURI(URI, base): + """Computes he final URI of the reference done by checking + that the given URI is valid, and building the final URI + using the base URI. This is processed according to section + 5.2 of the RFC 2396 5.2. Resolving Relative References to + Absolute Form """ + ret = libxml2mod.xmlBuildURI(URI, base) + return ret + +def canonicPath(path): + """Constructs a canonic path from the specified path. """ + ret = libxml2mod.xmlCanonicPath(path) + return ret + +def createURI(): + """Simply creates an empty xmlURI """ + ret = libxml2mod.xmlCreateURI() + if ret is None:raise uriError('xmlCreateURI() failed') + return URI(_obj=ret) + +def normalizeURIPath(path): + """Applies the 5 normalization steps to a path string--that + is, RFC 2396 Section 5.2, steps 6.c through 6.g. + Normalization occurs directly on the string, no new + allocation is done """ + ret = libxml2mod.xmlNormalizeURIPath(path) + return ret + +def parseURI(str): + """Parse an URI based on RFC 3986 URI-reference = [ + absoluteURI | relativeURI ] [ "#" fragment ] """ + ret = libxml2mod.xmlParseURI(str) + if ret is None:raise uriError('xmlParseURI() failed') + return URI(_obj=ret) + +def parseURIRaw(str, raw): + """Parse an URI but allows to keep intact the original + fragments. URI-reference = URI / relative-ref """ + ret = libxml2mod.xmlParseURIRaw(str, raw) + if ret is None:raise uriError('xmlParseURIRaw() failed') + return URI(_obj=ret) + +def pathToURI(path): + """Constructs an URI expressing the existing path """ + ret = libxml2mod.xmlPathToURI(path) + return ret + +# +# Functions from module valid +# + +def newValidCtxt(): + """Allocate a validation context structure. """ + ret = libxml2mod.xmlNewValidCtxt() + if ret is None:raise treeError('xmlNewValidCtxt() failed') + return ValidCtxt(_obj=ret) + +def validateNameValue(value): + """Validate that the given value match Name production """ + ret = libxml2mod.xmlValidateNameValue(value) + return ret + +def validateNamesValue(value): + """Validate that the given value match Names production """ + ret = libxml2mod.xmlValidateNamesValue(value) + return ret + +def validateNmtokenValue(value): + """Validate that the given value match Nmtoken production [ + VC: Name Token ] """ + ret = libxml2mod.xmlValidateNmtokenValue(value) + return ret + +def validateNmtokensValue(value): + """Validate that the given value match Nmtokens production [ + VC: Name Token ] """ + ret = libxml2mod.xmlValidateNmtokensValue(value) + return ret + +# +# Functions from module xmlIO +# + +def checkFilename(path): + """function checks to see if @path is a valid source (file, + socket...) for XML. if stat is not available on the target + machine, """ + ret = libxml2mod.xmlCheckFilename(path) + return ret + +def cleanupInputCallbacks(): + """clears the entire input callback table. this includes the + compiled-in I/O. """ + libxml2mod.xmlCleanupInputCallbacks() + +def cleanupOutputCallbacks(): + """clears the entire output callback table. this includes the + compiled-in I/O callbacks. """ + libxml2mod.xmlCleanupOutputCallbacks() + +def fileMatch(filename): + """input from FILE * """ + ret = libxml2mod.xmlFileMatch(filename) + return ret + +def iOFTPMatch(filename): + """check if the URI matches an FTP one """ + ret = libxml2mod.xmlIOFTPMatch(filename) + return ret + +def iOHTTPMatch(filename): + """check if the URI matches an HTTP one """ + ret = libxml2mod.xmlIOHTTPMatch(filename) + return ret + +def normalizeWindowsPath(path): + """This function is obsolete. Please see xmlURIFromPath in + uri.c for a better solution. """ + ret = libxml2mod.xmlNormalizeWindowsPath(path) + return ret + +def parserGetDirectory(filename): + """lookup the directory for that file """ + ret = libxml2mod.xmlParserGetDirectory(filename) + return ret + +def popInputCallbacks(): + """Clear the top input callback from the input stack. this + includes the compiled-in I/O. """ + ret = libxml2mod.xmlPopInputCallbacks() + return ret + +def registerDefaultInputCallbacks(): + """Registers the default compiled-in I/O handlers. """ + libxml2mod.xmlRegisterDefaultInputCallbacks() + +def registerDefaultOutputCallbacks(): + """Registers the default compiled-in I/O handlers. """ + libxml2mod.xmlRegisterDefaultOutputCallbacks() + +def registerHTTPPostCallbacks(): + """By default, libxml submits HTTP output requests using the + "PUT" method. Calling this method changes the HTTP output + method to use the "POST" method instead. """ + libxml2mod.xmlRegisterHTTPPostCallbacks() + +# +# Functions from module xmlerror +# + +def lastError(): + """Get the last global error registered. This is per thread if + compiled with thread support. """ + ret = libxml2mod.xmlGetLastError() + if ret is None:raise treeError('xmlGetLastError() failed') + return Error(_obj=ret) + +def resetLastError(): + """Cleanup the last global error registered. For parsing error + this does not change the well-formedness result. """ + libxml2mod.xmlResetLastError() + +# +# Functions from module xmlreader +# + +def newTextReaderFilename(URI): + """Create an xmlTextReader structure fed with the resource at + @URI """ + ret = libxml2mod.xmlNewTextReaderFilename(URI) + if ret is None:raise treeError('xmlNewTextReaderFilename() failed') + return xmlTextReader(_obj=ret) + +def readerForDoc(cur, URL, encoding, options): + """Create an xmltextReader for an XML in-memory document. The + parsing flags @options are a combination of xmlParserOption. """ + ret = libxml2mod.xmlReaderForDoc(cur, URL, encoding, options) + if ret is None:raise treeError('xmlReaderForDoc() failed') + return xmlTextReader(_obj=ret) + +def readerForFd(fd, URL, encoding, options): + """Create an xmltextReader for an XML from a file descriptor. + The parsing flags @options are a combination of + xmlParserOption. NOTE that the file descriptor will not be + closed when the reader is closed or reset. """ + ret = libxml2mod.xmlReaderForFd(fd, URL, encoding, options) + if ret is None:raise treeError('xmlReaderForFd() failed') + return xmlTextReader(_obj=ret) + +def readerForFile(filename, encoding, options): + """parse an XML file from the filesystem or the network. The + parsing flags @options are a combination of xmlParserOption. """ + ret = libxml2mod.xmlReaderForFile(filename, encoding, options) + if ret is None:raise treeError('xmlReaderForFile() failed') + return xmlTextReader(_obj=ret) + +def readerForMemory(buffer, size, URL, encoding, options): + """Create an xmltextReader for an XML in-memory document. The + parsing flags @options are a combination of xmlParserOption. """ + ret = libxml2mod.xmlReaderForMemory(buffer, size, URL, encoding, options) + if ret is None:raise treeError('xmlReaderForMemory() failed') + return xmlTextReader(_obj=ret) + +# +# Functions from module xmlregexp +# + +def regexpCompile(regexp): + """Parses a regular expression conforming to XML Schemas Part + 2 Datatype Appendix F and builds an automata suitable for + testing strings against that regular expression """ + ret = libxml2mod.xmlRegexpCompile(regexp) + if ret is None:raise treeError('xmlRegexpCompile() failed') + return xmlReg(_obj=ret) + +# +# Functions from module xmlschemas +# + +def schemaNewMemParserCtxt(buffer, size): + """Create an XML Schemas parse context for that memory buffer + expected to contain an XML Schemas file. """ + ret = libxml2mod.xmlSchemaNewMemParserCtxt(buffer, size) + if ret is None:raise parserError('xmlSchemaNewMemParserCtxt() failed') + return SchemaParserCtxt(_obj=ret) + +def schemaNewParserCtxt(URL): + """Create an XML Schemas parse context for that file/resource + expected to contain an XML Schemas file. """ + ret = libxml2mod.xmlSchemaNewParserCtxt(URL) + if ret is None:raise parserError('xmlSchemaNewParserCtxt() failed') + return SchemaParserCtxt(_obj=ret) + +# +# Functions from module xmlschemastypes +# + +def schemaCleanupTypes(): + """Cleanup the default XML Schemas type library """ + libxml2mod.xmlSchemaCleanupTypes() + +def schemaCollapseString(value): + """Removes and normalize white spaces in the string """ + ret = libxml2mod.xmlSchemaCollapseString(value) + return ret + +def schemaInitTypes(): + """Initialize the default XML Schemas type library """ + libxml2mod.xmlSchemaInitTypes() + +def schemaWhiteSpaceReplace(value): + """Replaces 0xd, 0x9 and 0xa with a space. """ + ret = libxml2mod.xmlSchemaWhiteSpaceReplace(value) + return ret + +# +# Functions from module xmlstring +# + +def UTF8Charcmp(utf1, utf2): + """compares the two UCS4 values """ + ret = libxml2mod.xmlUTF8Charcmp(utf1, utf2) + return ret + +def UTF8Size(utf): + """calculates the internal size of a UTF8 character """ + ret = libxml2mod.xmlUTF8Size(utf) + return ret + +def UTF8Strlen(utf): + """compute the length of an UTF8 string, it doesn't do a full + UTF8 checking of the content of the string. """ + ret = libxml2mod.xmlUTF8Strlen(utf) + return ret + +def UTF8Strloc(utf, utfchar): + """a function to provide the relative location of a UTF8 char """ + ret = libxml2mod.xmlUTF8Strloc(utf, utfchar) + return ret + +def UTF8Strndup(utf, len): + """a strndup for array of UTF8's """ + ret = libxml2mod.xmlUTF8Strndup(utf, len) + return ret + +def UTF8Strpos(utf, pos): + """a function to provide the equivalent of fetching a + character from a string array """ + ret = libxml2mod.xmlUTF8Strpos(utf, pos) + return ret + +def UTF8Strsize(utf, len): + """storage size of an UTF8 string the behaviour is not + garanteed if the input string is not UTF-8 """ + ret = libxml2mod.xmlUTF8Strsize(utf, len) + return ret + +def UTF8Strsub(utf, start, len): + """Create a substring from a given UTF-8 string Note: + positions are given in units of UTF-8 chars """ + ret = libxml2mod.xmlUTF8Strsub(utf, start, len) + return ret + +def checkUTF8(utf): + """Checks @utf for being valid UTF-8. @utf is assumed to be + null-terminated. This function is not super-strict, as it + will allow longer UTF-8 sequences than necessary. Note that + Java is capable of producing these sequences if provoked. + Also note, this routine checks for the 4-byte maximum size, + but does not check for 0x10ffff maximum value. """ + ret = libxml2mod.xmlCheckUTF8(utf) + return ret + +# +# Functions from module xmlunicode +# + +def uCSIsAegeanNumbers(code): + """Check whether the character is part of AegeanNumbers UCS + Block """ + ret = libxml2mod.xmlUCSIsAegeanNumbers(code) + return ret + +def uCSIsAlphabeticPresentationForms(code): + """Check whether the character is part of + AlphabeticPresentationForms UCS Block """ + ret = libxml2mod.xmlUCSIsAlphabeticPresentationForms(code) + return ret + +def uCSIsArabic(code): + """Check whether the character is part of Arabic UCS Block """ + ret = libxml2mod.xmlUCSIsArabic(code) + return ret + +def uCSIsArabicPresentationFormsA(code): + """Check whether the character is part of + ArabicPresentationForms-A UCS Block """ + ret = libxml2mod.xmlUCSIsArabicPresentationFormsA(code) + return ret + +def uCSIsArabicPresentationFormsB(code): + """Check whether the character is part of + ArabicPresentationForms-B UCS Block """ + ret = libxml2mod.xmlUCSIsArabicPresentationFormsB(code) + return ret + +def uCSIsArmenian(code): + """Check whether the character is part of Armenian UCS Block """ + ret = libxml2mod.xmlUCSIsArmenian(code) + return ret + +def uCSIsArrows(code): + """Check whether the character is part of Arrows UCS Block """ + ret = libxml2mod.xmlUCSIsArrows(code) + return ret + +def uCSIsBasicLatin(code): + """Check whether the character is part of BasicLatin UCS Block """ + ret = libxml2mod.xmlUCSIsBasicLatin(code) + return ret + +def uCSIsBengali(code): + """Check whether the character is part of Bengali UCS Block """ + ret = libxml2mod.xmlUCSIsBengali(code) + return ret + +def uCSIsBlock(code, block): + """Check whether the character is part of the UCS Block """ + ret = libxml2mod.xmlUCSIsBlock(code, block) + return ret + +def uCSIsBlockElements(code): + """Check whether the character is part of BlockElements UCS + Block """ + ret = libxml2mod.xmlUCSIsBlockElements(code) + return ret + +def uCSIsBopomofo(code): + """Check whether the character is part of Bopomofo UCS Block """ + ret = libxml2mod.xmlUCSIsBopomofo(code) + return ret + +def uCSIsBopomofoExtended(code): + """Check whether the character is part of BopomofoExtended UCS + Block """ + ret = libxml2mod.xmlUCSIsBopomofoExtended(code) + return ret + +def uCSIsBoxDrawing(code): + """Check whether the character is part of BoxDrawing UCS Block """ + ret = libxml2mod.xmlUCSIsBoxDrawing(code) + return ret + +def uCSIsBraillePatterns(code): + """Check whether the character is part of BraillePatterns UCS + Block """ + ret = libxml2mod.xmlUCSIsBraillePatterns(code) + return ret + +def uCSIsBuhid(code): + """Check whether the character is part of Buhid UCS Block """ + ret = libxml2mod.xmlUCSIsBuhid(code) + return ret + +def uCSIsByzantineMusicalSymbols(code): + """Check whether the character is part of + ByzantineMusicalSymbols UCS Block """ + ret = libxml2mod.xmlUCSIsByzantineMusicalSymbols(code) + return ret + +def uCSIsCJKCompatibility(code): + """Check whether the character is part of CJKCompatibility UCS + Block """ + ret = libxml2mod.xmlUCSIsCJKCompatibility(code) + return ret + +def uCSIsCJKCompatibilityForms(code): + """Check whether the character is part of + CJKCompatibilityForms UCS Block """ + ret = libxml2mod.xmlUCSIsCJKCompatibilityForms(code) + return ret + +def uCSIsCJKCompatibilityIdeographs(code): + """Check whether the character is part of + CJKCompatibilityIdeographs UCS Block """ + ret = libxml2mod.xmlUCSIsCJKCompatibilityIdeographs(code) + return ret + +def uCSIsCJKCompatibilityIdeographsSupplement(code): + """Check whether the character is part of + CJKCompatibilityIdeographsSupplement UCS Block """ + ret = libxml2mod.xmlUCSIsCJKCompatibilityIdeographsSupplement(code) + return ret + +def uCSIsCJKRadicalsSupplement(code): + """Check whether the character is part of + CJKRadicalsSupplement UCS Block """ + ret = libxml2mod.xmlUCSIsCJKRadicalsSupplement(code) + return ret + +def uCSIsCJKSymbolsandPunctuation(code): + """Check whether the character is part of + CJKSymbolsandPunctuation UCS Block """ + ret = libxml2mod.xmlUCSIsCJKSymbolsandPunctuation(code) + return ret + +def uCSIsCJKUnifiedIdeographs(code): + """Check whether the character is part of CJKUnifiedIdeographs + UCS Block """ + ret = libxml2mod.xmlUCSIsCJKUnifiedIdeographs(code) + return ret + +def uCSIsCJKUnifiedIdeographsExtensionA(code): + """Check whether the character is part of + CJKUnifiedIdeographsExtensionA UCS Block """ + ret = libxml2mod.xmlUCSIsCJKUnifiedIdeographsExtensionA(code) + return ret + +def uCSIsCJKUnifiedIdeographsExtensionB(code): + """Check whether the character is part of + CJKUnifiedIdeographsExtensionB UCS Block """ + ret = libxml2mod.xmlUCSIsCJKUnifiedIdeographsExtensionB(code) + return ret + +def uCSIsCat(code, cat): + """Check whether the character is part of the UCS Category """ + ret = libxml2mod.xmlUCSIsCat(code, cat) + return ret + +def uCSIsCatC(code): + """Check whether the character is part of C UCS Category """ + ret = libxml2mod.xmlUCSIsCatC(code) + return ret + +def uCSIsCatCc(code): + """Check whether the character is part of Cc UCS Category """ + ret = libxml2mod.xmlUCSIsCatCc(code) + return ret + +def uCSIsCatCf(code): + """Check whether the character is part of Cf UCS Category """ + ret = libxml2mod.xmlUCSIsCatCf(code) + return ret + +def uCSIsCatCo(code): + """Check whether the character is part of Co UCS Category """ + ret = libxml2mod.xmlUCSIsCatCo(code) + return ret + +def uCSIsCatCs(code): + """Check whether the character is part of Cs UCS Category """ + ret = libxml2mod.xmlUCSIsCatCs(code) + return ret + +def uCSIsCatL(code): + """Check whether the character is part of L UCS Category """ + ret = libxml2mod.xmlUCSIsCatL(code) + return ret + +def uCSIsCatLl(code): + """Check whether the character is part of Ll UCS Category """ + ret = libxml2mod.xmlUCSIsCatLl(code) + return ret + +def uCSIsCatLm(code): + """Check whether the character is part of Lm UCS Category """ + ret = libxml2mod.xmlUCSIsCatLm(code) + return ret + +def uCSIsCatLo(code): + """Check whether the character is part of Lo UCS Category """ + ret = libxml2mod.xmlUCSIsCatLo(code) + return ret + +def uCSIsCatLt(code): + """Check whether the character is part of Lt UCS Category """ + ret = libxml2mod.xmlUCSIsCatLt(code) + return ret + +def uCSIsCatLu(code): + """Check whether the character is part of Lu UCS Category """ + ret = libxml2mod.xmlUCSIsCatLu(code) + return ret + +def uCSIsCatM(code): + """Check whether the character is part of M UCS Category """ + ret = libxml2mod.xmlUCSIsCatM(code) + return ret + +def uCSIsCatMc(code): + """Check whether the character is part of Mc UCS Category """ + ret = libxml2mod.xmlUCSIsCatMc(code) + return ret + +def uCSIsCatMe(code): + """Check whether the character is part of Me UCS Category """ + ret = libxml2mod.xmlUCSIsCatMe(code) + return ret + +def uCSIsCatMn(code): + """Check whether the character is part of Mn UCS Category """ + ret = libxml2mod.xmlUCSIsCatMn(code) + return ret + +def uCSIsCatN(code): + """Check whether the character is part of N UCS Category """ + ret = libxml2mod.xmlUCSIsCatN(code) + return ret + +def uCSIsCatNd(code): + """Check whether the character is part of Nd UCS Category """ + ret = libxml2mod.xmlUCSIsCatNd(code) + return ret + +def uCSIsCatNl(code): + """Check whether the character is part of Nl UCS Category """ + ret = libxml2mod.xmlUCSIsCatNl(code) + return ret + +def uCSIsCatNo(code): + """Check whether the character is part of No UCS Category """ + ret = libxml2mod.xmlUCSIsCatNo(code) + return ret + +def uCSIsCatP(code): + """Check whether the character is part of P UCS Category """ + ret = libxml2mod.xmlUCSIsCatP(code) + return ret + +def uCSIsCatPc(code): + """Check whether the character is part of Pc UCS Category """ + ret = libxml2mod.xmlUCSIsCatPc(code) + return ret + +def uCSIsCatPd(code): + """Check whether the character is part of Pd UCS Category """ + ret = libxml2mod.xmlUCSIsCatPd(code) + return ret + +def uCSIsCatPe(code): + """Check whether the character is part of Pe UCS Category """ + ret = libxml2mod.xmlUCSIsCatPe(code) + return ret + +def uCSIsCatPf(code): + """Check whether the character is part of Pf UCS Category """ + ret = libxml2mod.xmlUCSIsCatPf(code) + return ret + +def uCSIsCatPi(code): + """Check whether the character is part of Pi UCS Category """ + ret = libxml2mod.xmlUCSIsCatPi(code) + return ret + +def uCSIsCatPo(code): + """Check whether the character is part of Po UCS Category """ + ret = libxml2mod.xmlUCSIsCatPo(code) + return ret + +def uCSIsCatPs(code): + """Check whether the character is part of Ps UCS Category """ + ret = libxml2mod.xmlUCSIsCatPs(code) + return ret + +def uCSIsCatS(code): + """Check whether the character is part of S UCS Category """ + ret = libxml2mod.xmlUCSIsCatS(code) + return ret + +def uCSIsCatSc(code): + """Check whether the character is part of Sc UCS Category """ + ret = libxml2mod.xmlUCSIsCatSc(code) + return ret + +def uCSIsCatSk(code): + """Check whether the character is part of Sk UCS Category """ + ret = libxml2mod.xmlUCSIsCatSk(code) + return ret + +def uCSIsCatSm(code): + """Check whether the character is part of Sm UCS Category """ + ret = libxml2mod.xmlUCSIsCatSm(code) + return ret + +def uCSIsCatSo(code): + """Check whether the character is part of So UCS Category """ + ret = libxml2mod.xmlUCSIsCatSo(code) + return ret + +def uCSIsCatZ(code): + """Check whether the character is part of Z UCS Category """ + ret = libxml2mod.xmlUCSIsCatZ(code) + return ret + +def uCSIsCatZl(code): + """Check whether the character is part of Zl UCS Category """ + ret = libxml2mod.xmlUCSIsCatZl(code) + return ret + +def uCSIsCatZp(code): + """Check whether the character is part of Zp UCS Category """ + ret = libxml2mod.xmlUCSIsCatZp(code) + return ret + +def uCSIsCatZs(code): + """Check whether the character is part of Zs UCS Category """ + ret = libxml2mod.xmlUCSIsCatZs(code) + return ret + +def uCSIsCherokee(code): + """Check whether the character is part of Cherokee UCS Block """ + ret = libxml2mod.xmlUCSIsCherokee(code) + return ret + +def uCSIsCombiningDiacriticalMarks(code): + """Check whether the character is part of + CombiningDiacriticalMarks UCS Block """ + ret = libxml2mod.xmlUCSIsCombiningDiacriticalMarks(code) + return ret + +def uCSIsCombiningDiacriticalMarksforSymbols(code): + """Check whether the character is part of + CombiningDiacriticalMarksforSymbols UCS Block """ + ret = libxml2mod.xmlUCSIsCombiningDiacriticalMarksforSymbols(code) + return ret + +def uCSIsCombiningHalfMarks(code): + """Check whether the character is part of CombiningHalfMarks + UCS Block """ + ret = libxml2mod.xmlUCSIsCombiningHalfMarks(code) + return ret + +def uCSIsCombiningMarksforSymbols(code): + """Check whether the character is part of + CombiningMarksforSymbols UCS Block """ + ret = libxml2mod.xmlUCSIsCombiningMarksforSymbols(code) + return ret + +def uCSIsControlPictures(code): + """Check whether the character is part of ControlPictures UCS + Block """ + ret = libxml2mod.xmlUCSIsControlPictures(code) + return ret + +def uCSIsCurrencySymbols(code): + """Check whether the character is part of CurrencySymbols UCS + Block """ + ret = libxml2mod.xmlUCSIsCurrencySymbols(code) + return ret + +def uCSIsCypriotSyllabary(code): + """Check whether the character is part of CypriotSyllabary UCS + Block """ + ret = libxml2mod.xmlUCSIsCypriotSyllabary(code) + return ret + +def uCSIsCyrillic(code): + """Check whether the character is part of Cyrillic UCS Block """ + ret = libxml2mod.xmlUCSIsCyrillic(code) + return ret + +def uCSIsCyrillicSupplement(code): + """Check whether the character is part of CyrillicSupplement + UCS Block """ + ret = libxml2mod.xmlUCSIsCyrillicSupplement(code) + return ret + +def uCSIsDeseret(code): + """Check whether the character is part of Deseret UCS Block """ + ret = libxml2mod.xmlUCSIsDeseret(code) + return ret + +def uCSIsDevanagari(code): + """Check whether the character is part of Devanagari UCS Block """ + ret = libxml2mod.xmlUCSIsDevanagari(code) + return ret + +def uCSIsDingbats(code): + """Check whether the character is part of Dingbats UCS Block """ + ret = libxml2mod.xmlUCSIsDingbats(code) + return ret + +def uCSIsEnclosedAlphanumerics(code): + """Check whether the character is part of + EnclosedAlphanumerics UCS Block """ + ret = libxml2mod.xmlUCSIsEnclosedAlphanumerics(code) + return ret + +def uCSIsEnclosedCJKLettersandMonths(code): + """Check whether the character is part of + EnclosedCJKLettersandMonths UCS Block """ + ret = libxml2mod.xmlUCSIsEnclosedCJKLettersandMonths(code) + return ret + +def uCSIsEthiopic(code): + """Check whether the character is part of Ethiopic UCS Block """ + ret = libxml2mod.xmlUCSIsEthiopic(code) + return ret + +def uCSIsGeneralPunctuation(code): + """Check whether the character is part of GeneralPunctuation + UCS Block """ + ret = libxml2mod.xmlUCSIsGeneralPunctuation(code) + return ret + +def uCSIsGeometricShapes(code): + """Check whether the character is part of GeometricShapes UCS + Block """ + ret = libxml2mod.xmlUCSIsGeometricShapes(code) + return ret + +def uCSIsGeorgian(code): + """Check whether the character is part of Georgian UCS Block """ + ret = libxml2mod.xmlUCSIsGeorgian(code) + return ret + +def uCSIsGothic(code): + """Check whether the character is part of Gothic UCS Block """ + ret = libxml2mod.xmlUCSIsGothic(code) + return ret + +def uCSIsGreek(code): + """Check whether the character is part of Greek UCS Block """ + ret = libxml2mod.xmlUCSIsGreek(code) + return ret + +def uCSIsGreekExtended(code): + """Check whether the character is part of GreekExtended UCS + Block """ + ret = libxml2mod.xmlUCSIsGreekExtended(code) + return ret + +def uCSIsGreekandCoptic(code): + """Check whether the character is part of GreekandCoptic UCS + Block """ + ret = libxml2mod.xmlUCSIsGreekandCoptic(code) + return ret + +def uCSIsGujarati(code): + """Check whether the character is part of Gujarati UCS Block """ + ret = libxml2mod.xmlUCSIsGujarati(code) + return ret + +def uCSIsGurmukhi(code): + """Check whether the character is part of Gurmukhi UCS Block """ + ret = libxml2mod.xmlUCSIsGurmukhi(code) + return ret + +def uCSIsHalfwidthandFullwidthForms(code): + """Check whether the character is part of + HalfwidthandFullwidthForms UCS Block """ + ret = libxml2mod.xmlUCSIsHalfwidthandFullwidthForms(code) + return ret + +def uCSIsHangulCompatibilityJamo(code): + """Check whether the character is part of + HangulCompatibilityJamo UCS Block """ + ret = libxml2mod.xmlUCSIsHangulCompatibilityJamo(code) + return ret + +def uCSIsHangulJamo(code): + """Check whether the character is part of HangulJamo UCS Block """ + ret = libxml2mod.xmlUCSIsHangulJamo(code) + return ret + +def uCSIsHangulSyllables(code): + """Check whether the character is part of HangulSyllables UCS + Block """ + ret = libxml2mod.xmlUCSIsHangulSyllables(code) + return ret + +def uCSIsHanunoo(code): + """Check whether the character is part of Hanunoo UCS Block """ + ret = libxml2mod.xmlUCSIsHanunoo(code) + return ret + +def uCSIsHebrew(code): + """Check whether the character is part of Hebrew UCS Block """ + ret = libxml2mod.xmlUCSIsHebrew(code) + return ret + +def uCSIsHighPrivateUseSurrogates(code): + """Check whether the character is part of + HighPrivateUseSurrogates UCS Block """ + ret = libxml2mod.xmlUCSIsHighPrivateUseSurrogates(code) + return ret + +def uCSIsHighSurrogates(code): + """Check whether the character is part of HighSurrogates UCS + Block """ + ret = libxml2mod.xmlUCSIsHighSurrogates(code) + return ret + +def uCSIsHiragana(code): + """Check whether the character is part of Hiragana UCS Block """ + ret = libxml2mod.xmlUCSIsHiragana(code) + return ret + +def uCSIsIPAExtensions(code): + """Check whether the character is part of IPAExtensions UCS + Block """ + ret = libxml2mod.xmlUCSIsIPAExtensions(code) + return ret + +def uCSIsIdeographicDescriptionCharacters(code): + """Check whether the character is part of + IdeographicDescriptionCharacters UCS Block """ + ret = libxml2mod.xmlUCSIsIdeographicDescriptionCharacters(code) + return ret + +def uCSIsKanbun(code): + """Check whether the character is part of Kanbun UCS Block """ + ret = libxml2mod.xmlUCSIsKanbun(code) + return ret + +def uCSIsKangxiRadicals(code): + """Check whether the character is part of KangxiRadicals UCS + Block """ + ret = libxml2mod.xmlUCSIsKangxiRadicals(code) + return ret + +def uCSIsKannada(code): + """Check whether the character is part of Kannada UCS Block """ + ret = libxml2mod.xmlUCSIsKannada(code) + return ret + +def uCSIsKatakana(code): + """Check whether the character is part of Katakana UCS Block """ + ret = libxml2mod.xmlUCSIsKatakana(code) + return ret + +def uCSIsKatakanaPhoneticExtensions(code): + """Check whether the character is part of + KatakanaPhoneticExtensions UCS Block """ + ret = libxml2mod.xmlUCSIsKatakanaPhoneticExtensions(code) + return ret + +def uCSIsKhmer(code): + """Check whether the character is part of Khmer UCS Block """ + ret = libxml2mod.xmlUCSIsKhmer(code) + return ret + +def uCSIsKhmerSymbols(code): + """Check whether the character is part of KhmerSymbols UCS + Block """ + ret = libxml2mod.xmlUCSIsKhmerSymbols(code) + return ret + +def uCSIsLao(code): + """Check whether the character is part of Lao UCS Block """ + ret = libxml2mod.xmlUCSIsLao(code) + return ret + +def uCSIsLatin1Supplement(code): + """Check whether the character is part of Latin-1Supplement + UCS Block """ + ret = libxml2mod.xmlUCSIsLatin1Supplement(code) + return ret + +def uCSIsLatinExtendedA(code): + """Check whether the character is part of LatinExtended-A UCS + Block """ + ret = libxml2mod.xmlUCSIsLatinExtendedA(code) + return ret + +def uCSIsLatinExtendedAdditional(code): + """Check whether the character is part of + LatinExtendedAdditional UCS Block """ + ret = libxml2mod.xmlUCSIsLatinExtendedAdditional(code) + return ret + +def uCSIsLatinExtendedB(code): + """Check whether the character is part of LatinExtended-B UCS + Block """ + ret = libxml2mod.xmlUCSIsLatinExtendedB(code) + return ret + +def uCSIsLetterlikeSymbols(code): + """Check whether the character is part of LetterlikeSymbols + UCS Block """ + ret = libxml2mod.xmlUCSIsLetterlikeSymbols(code) + return ret + +def uCSIsLimbu(code): + """Check whether the character is part of Limbu UCS Block """ + ret = libxml2mod.xmlUCSIsLimbu(code) + return ret + +def uCSIsLinearBIdeograms(code): + """Check whether the character is part of LinearBIdeograms UCS + Block """ + ret = libxml2mod.xmlUCSIsLinearBIdeograms(code) + return ret + +def uCSIsLinearBSyllabary(code): + """Check whether the character is part of LinearBSyllabary UCS + Block """ + ret = libxml2mod.xmlUCSIsLinearBSyllabary(code) + return ret + +def uCSIsLowSurrogates(code): + """Check whether the character is part of LowSurrogates UCS + Block """ + ret = libxml2mod.xmlUCSIsLowSurrogates(code) + return ret + +def uCSIsMalayalam(code): + """Check whether the character is part of Malayalam UCS Block """ + ret = libxml2mod.xmlUCSIsMalayalam(code) + return ret + +def uCSIsMathematicalAlphanumericSymbols(code): + """Check whether the character is part of + MathematicalAlphanumericSymbols UCS Block """ + ret = libxml2mod.xmlUCSIsMathematicalAlphanumericSymbols(code) + return ret + +def uCSIsMathematicalOperators(code): + """Check whether the character is part of + MathematicalOperators UCS Block """ + ret = libxml2mod.xmlUCSIsMathematicalOperators(code) + return ret + +def uCSIsMiscellaneousMathematicalSymbolsA(code): + """Check whether the character is part of + MiscellaneousMathematicalSymbols-A UCS Block """ + ret = libxml2mod.xmlUCSIsMiscellaneousMathematicalSymbolsA(code) + return ret + +def uCSIsMiscellaneousMathematicalSymbolsB(code): + """Check whether the character is part of + MiscellaneousMathematicalSymbols-B UCS Block """ + ret = libxml2mod.xmlUCSIsMiscellaneousMathematicalSymbolsB(code) + return ret + +def uCSIsMiscellaneousSymbols(code): + """Check whether the character is part of MiscellaneousSymbols + UCS Block """ + ret = libxml2mod.xmlUCSIsMiscellaneousSymbols(code) + return ret + +def uCSIsMiscellaneousSymbolsandArrows(code): + """Check whether the character is part of + MiscellaneousSymbolsandArrows UCS Block """ + ret = libxml2mod.xmlUCSIsMiscellaneousSymbolsandArrows(code) + return ret + +def uCSIsMiscellaneousTechnical(code): + """Check whether the character is part of + MiscellaneousTechnical UCS Block """ + ret = libxml2mod.xmlUCSIsMiscellaneousTechnical(code) + return ret + +def uCSIsMongolian(code): + """Check whether the character is part of Mongolian UCS Block """ + ret = libxml2mod.xmlUCSIsMongolian(code) + return ret + +def uCSIsMusicalSymbols(code): + """Check whether the character is part of MusicalSymbols UCS + Block """ + ret = libxml2mod.xmlUCSIsMusicalSymbols(code) + return ret + +def uCSIsMyanmar(code): + """Check whether the character is part of Myanmar UCS Block """ + ret = libxml2mod.xmlUCSIsMyanmar(code) + return ret + +def uCSIsNumberForms(code): + """Check whether the character is part of NumberForms UCS Block """ + ret = libxml2mod.xmlUCSIsNumberForms(code) + return ret + +def uCSIsOgham(code): + """Check whether the character is part of Ogham UCS Block """ + ret = libxml2mod.xmlUCSIsOgham(code) + return ret + +def uCSIsOldItalic(code): + """Check whether the character is part of OldItalic UCS Block """ + ret = libxml2mod.xmlUCSIsOldItalic(code) + return ret + +def uCSIsOpticalCharacterRecognition(code): + """Check whether the character is part of + OpticalCharacterRecognition UCS Block """ + ret = libxml2mod.xmlUCSIsOpticalCharacterRecognition(code) + return ret + +def uCSIsOriya(code): + """Check whether the character is part of Oriya UCS Block """ + ret = libxml2mod.xmlUCSIsOriya(code) + return ret + +def uCSIsOsmanya(code): + """Check whether the character is part of Osmanya UCS Block """ + ret = libxml2mod.xmlUCSIsOsmanya(code) + return ret + +def uCSIsPhoneticExtensions(code): + """Check whether the character is part of PhoneticExtensions + UCS Block """ + ret = libxml2mod.xmlUCSIsPhoneticExtensions(code) + return ret + +def uCSIsPrivateUse(code): + """Check whether the character is part of PrivateUse UCS Block """ + ret = libxml2mod.xmlUCSIsPrivateUse(code) + return ret + +def uCSIsPrivateUseArea(code): + """Check whether the character is part of PrivateUseArea UCS + Block """ + ret = libxml2mod.xmlUCSIsPrivateUseArea(code) + return ret + +def uCSIsRunic(code): + """Check whether the character is part of Runic UCS Block """ + ret = libxml2mod.xmlUCSIsRunic(code) + return ret + +def uCSIsShavian(code): + """Check whether the character is part of Shavian UCS Block """ + ret = libxml2mod.xmlUCSIsShavian(code) + return ret + +def uCSIsSinhala(code): + """Check whether the character is part of Sinhala UCS Block """ + ret = libxml2mod.xmlUCSIsSinhala(code) + return ret + +def uCSIsSmallFormVariants(code): + """Check whether the character is part of SmallFormVariants + UCS Block """ + ret = libxml2mod.xmlUCSIsSmallFormVariants(code) + return ret + +def uCSIsSpacingModifierLetters(code): + """Check whether the character is part of + SpacingModifierLetters UCS Block """ + ret = libxml2mod.xmlUCSIsSpacingModifierLetters(code) + return ret + +def uCSIsSpecials(code): + """Check whether the character is part of Specials UCS Block """ + ret = libxml2mod.xmlUCSIsSpecials(code) + return ret + +def uCSIsSuperscriptsandSubscripts(code): + """Check whether the character is part of + SuperscriptsandSubscripts UCS Block """ + ret = libxml2mod.xmlUCSIsSuperscriptsandSubscripts(code) + return ret + +def uCSIsSupplementalArrowsA(code): + """Check whether the character is part of SupplementalArrows-A + UCS Block """ + ret = libxml2mod.xmlUCSIsSupplementalArrowsA(code) + return ret + +def uCSIsSupplementalArrowsB(code): + """Check whether the character is part of SupplementalArrows-B + UCS Block """ + ret = libxml2mod.xmlUCSIsSupplementalArrowsB(code) + return ret + +def uCSIsSupplementalMathematicalOperators(code): + """Check whether the character is part of + SupplementalMathematicalOperators UCS Block """ + ret = libxml2mod.xmlUCSIsSupplementalMathematicalOperators(code) + return ret + +def uCSIsSupplementaryPrivateUseAreaA(code): + """Check whether the character is part of + SupplementaryPrivateUseArea-A UCS Block """ + ret = libxml2mod.xmlUCSIsSupplementaryPrivateUseAreaA(code) + return ret + +def uCSIsSupplementaryPrivateUseAreaB(code): + """Check whether the character is part of + SupplementaryPrivateUseArea-B UCS Block """ + ret = libxml2mod.xmlUCSIsSupplementaryPrivateUseAreaB(code) + return ret + +def uCSIsSyriac(code): + """Check whether the character is part of Syriac UCS Block """ + ret = libxml2mod.xmlUCSIsSyriac(code) + return ret + +def uCSIsTagalog(code): + """Check whether the character is part of Tagalog UCS Block """ + ret = libxml2mod.xmlUCSIsTagalog(code) + return ret + +def uCSIsTagbanwa(code): + """Check whether the character is part of Tagbanwa UCS Block """ + ret = libxml2mod.xmlUCSIsTagbanwa(code) + return ret + +def uCSIsTags(code): + """Check whether the character is part of Tags UCS Block """ + ret = libxml2mod.xmlUCSIsTags(code) + return ret + +def uCSIsTaiLe(code): + """Check whether the character is part of TaiLe UCS Block """ + ret = libxml2mod.xmlUCSIsTaiLe(code) + return ret + +def uCSIsTaiXuanJingSymbols(code): + """Check whether the character is part of TaiXuanJingSymbols + UCS Block """ + ret = libxml2mod.xmlUCSIsTaiXuanJingSymbols(code) + return ret + +def uCSIsTamil(code): + """Check whether the character is part of Tamil UCS Block """ + ret = libxml2mod.xmlUCSIsTamil(code) + return ret + +def uCSIsTelugu(code): + """Check whether the character is part of Telugu UCS Block """ + ret = libxml2mod.xmlUCSIsTelugu(code) + return ret + +def uCSIsThaana(code): + """Check whether the character is part of Thaana UCS Block """ + ret = libxml2mod.xmlUCSIsThaana(code) + return ret + +def uCSIsThai(code): + """Check whether the character is part of Thai UCS Block """ + ret = libxml2mod.xmlUCSIsThai(code) + return ret + +def uCSIsTibetan(code): + """Check whether the character is part of Tibetan UCS Block """ + ret = libxml2mod.xmlUCSIsTibetan(code) + return ret + +def uCSIsUgaritic(code): + """Check whether the character is part of Ugaritic UCS Block """ + ret = libxml2mod.xmlUCSIsUgaritic(code) + return ret + +def uCSIsUnifiedCanadianAboriginalSyllabics(code): + """Check whether the character is part of + UnifiedCanadianAboriginalSyllabics UCS Block """ + ret = libxml2mod.xmlUCSIsUnifiedCanadianAboriginalSyllabics(code) + return ret + +def uCSIsVariationSelectors(code): + """Check whether the character is part of VariationSelectors + UCS Block """ + ret = libxml2mod.xmlUCSIsVariationSelectors(code) + return ret + +def uCSIsVariationSelectorsSupplement(code): + """Check whether the character is part of + VariationSelectorsSupplement UCS Block """ + ret = libxml2mod.xmlUCSIsVariationSelectorsSupplement(code) + return ret + +def uCSIsYiRadicals(code): + """Check whether the character is part of YiRadicals UCS Block """ + ret = libxml2mod.xmlUCSIsYiRadicals(code) + return ret + +def uCSIsYiSyllables(code): + """Check whether the character is part of YiSyllables UCS Block """ + ret = libxml2mod.xmlUCSIsYiSyllables(code) + return ret + +def uCSIsYijingHexagramSymbols(code): + """Check whether the character is part of + YijingHexagramSymbols UCS Block """ + ret = libxml2mod.xmlUCSIsYijingHexagramSymbols(code) + return ret + +# +# Functions from module xmlversion +# + +def checkVersion(version): + """check the compiled lib version against the include one. + This can warn or immediately kill the application """ + libxml2mod.xmlCheckVersion(version) + +# +# Functions from module xpathInternals +# + +def valuePop(ctxt): + """Pops the top XPath object from the value stack """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.valuePop(ctxt__o) + return ret + +class xmlNode(xmlCore): + def __init__(self, _obj=None): + if type(_obj).__name__ != 'PyCObject': + raise TypeError, 'xmlNode needs a PyCObject argument' + self._o = _obj + xmlCore.__init__(self, _obj=_obj) + + def __repr__(self): + return "" % (self.name, long(pos_id (self))) + + # accessors for xmlNode + def ns(self): + """Get the namespace of a node """ + ret = libxml2mod.xmlNodeGetNs(self._o) + if ret is None:return None + __tmp = xmlNs(_obj=ret) + return __tmp + + def nsDefs(self): + """Get the namespace of a node """ + ret = libxml2mod.xmlNodeGetNsDefs(self._o) + if ret is None:return None + __tmp = xmlNs(_obj=ret) + return __tmp + + # + # xmlNode functions from module debugXML + # + + def debugDumpNode(self, output, depth): + """Dumps debug information for the element node, it is + recursive """ + libxml2mod.xmlDebugDumpNode(output, self._o, depth) + + def debugDumpNodeList(self, output, depth): + """Dumps debug information for the list of element node, it is + recursive """ + libxml2mod.xmlDebugDumpNodeList(output, self._o, depth) + + def debugDumpOneNode(self, output, depth): + """Dumps debug information for the element node, it is not + recursive """ + libxml2mod.xmlDebugDumpOneNode(output, self._o, depth) + + def lsCountNode(self): + """Count the children of @node. """ + ret = libxml2mod.xmlLsCountNode(self._o) + return ret + + def lsOneNode(self, output): + """Dump to @output the type and name of @node. """ + libxml2mod.xmlLsOneNode(output, self._o) + + def shellPrintNode(self): + """Print node to the output FILE """ + libxml2mod.xmlShellPrintNode(self._o) + + # + # xmlNode functions from module tree + # + + def addChild(self, cur): + """Add a new node to @parent, at the end of the child (or + property) list merging adjacent TEXT nodes (in which case + @cur is freed) If the new node is ATTRIBUTE, it is added + into properties instead of children. If there is an + attribute with equal name, it is first destroyed. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlAddChild(self._o, cur__o) + if ret is None:raise treeError('xmlAddChild() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def addChildList(self, cur): + """Add a list of node at the end of the child list of the + parent merging adjacent TEXT nodes (@cur may be freed) """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlAddChildList(self._o, cur__o) + if ret is None:raise treeError('xmlAddChildList() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def addContent(self, content): + """Append the extra substring to the node content. NOTE: In + contrast to xmlNodeSetContent(), @content is supposed to be + raw text, so unescaped XML special chars are allowed, + entity references are not supported. """ + libxml2mod.xmlNodeAddContent(self._o, content) + + def addContentLen(self, content, len): + """Append the extra substring to the node content. NOTE: In + contrast to xmlNodeSetContentLen(), @content is supposed to + be raw text, so unescaped XML special chars are allowed, + entity references are not supported. """ + libxml2mod.xmlNodeAddContentLen(self._o, content, len) + + def addNextSibling(self, elem): + """Add a new node @elem as the next sibling of @cur If the new + node was already inserted in a document it is first + unlinked from its existing context. As a result of text + merging @elem may be freed. If the new node is ATTRIBUTE, + it is added into properties instead of children. If there + is an attribute with equal name, it is first destroyed. """ + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlAddNextSibling(self._o, elem__o) + if ret is None:raise treeError('xmlAddNextSibling() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def addPrevSibling(self, elem): + """Add a new node @elem as the previous sibling of @cur + merging adjacent TEXT nodes (@elem may be freed) If the new + node was already inserted in a document it is first + unlinked from its existing context. If the new node is + ATTRIBUTE, it is added into properties instead of children. + If there is an attribute with equal name, it is first + destroyed. """ + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlAddPrevSibling(self._o, elem__o) + if ret is None:raise treeError('xmlAddPrevSibling() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def addSibling(self, elem): + """Add a new element @elem to the list of siblings of @cur + merging adjacent TEXT nodes (@elem may be freed) If the new + element was already inserted in a document it is first + unlinked from its existing context. """ + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlAddSibling(self._o, elem__o) + if ret is None:raise treeError('xmlAddSibling() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def copyNode(self, extended): + """Do a copy of the node. """ + ret = libxml2mod.xmlCopyNode(self._o, extended) + if ret is None:raise treeError('xmlCopyNode() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def copyNodeList(self): + """Do a recursive copy of the node list. Use + xmlDocCopyNodeList() if possible to ensure string interning. """ + ret = libxml2mod.xmlCopyNodeList(self._o) + if ret is None:raise treeError('xmlCopyNodeList() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def copyProp(self, cur): + """Do a copy of the attribute. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlCopyProp(self._o, cur__o) + if ret is None:raise treeError('xmlCopyProp() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def copyPropList(self, cur): + """Do a copy of an attribute list. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlCopyPropList(self._o, cur__o) + if ret is None:raise treeError('xmlCopyPropList() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def docCopyNode(self, doc, extended): + """Do a copy of the node to a given document. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlDocCopyNode(self._o, doc__o, extended) + if ret is None:raise treeError('xmlDocCopyNode() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def docCopyNodeList(self, doc): + """Do a recursive copy of the node list. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlDocCopyNodeList(doc__o, self._o) + if ret is None:raise treeError('xmlDocCopyNodeList() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def docSetRootElement(self, doc): + """Set the root element of the document (doc->children is a + list containing possibly comments, PIs, etc ...). """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlDocSetRootElement(doc__o, self._o) + if ret is None:return None + __tmp = xmlNode(_obj=ret) + return __tmp + + def firstElementChild(self): + """Finds the first child node of that element which is a + Element node Note the handling of entities references is + different than in the W3C DOM element traversal spec since + we don't have back reference from entities content to + entities references. """ + ret = libxml2mod.xmlFirstElementChild(self._o) + if ret is None:return None + __tmp = xmlNode(_obj=ret) + return __tmp + + def freeNode(self): + """Free a node, this is a recursive behaviour, all the + children are freed too. This doesn't unlink the child from + the list, use xmlUnlinkNode() first. """ + libxml2mod.xmlFreeNode(self._o) + + def freeNodeList(self): + """Free a node and all its siblings, this is a recursive + behaviour, all the children are freed too. """ + libxml2mod.xmlFreeNodeList(self._o) + + def getBase(self, doc): + """Searches for the BASE URL. The code should work on both XML + and HTML document even if base mechanisms are completely + different. It returns the base as defined in RFC 2396 + sections 5.1.1. Base URI within Document Content and 5.1.2. + Base URI from the Encapsulating Entity However it does not + return the document base (5.1.3), use doc->URL in this case """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlNodeGetBase(doc__o, self._o) + return ret + + def getContent(self): + """Read the value of a node, this can be either the text + carried directly by this node if it's a TEXT node or the + aggregate string of the values carried by this node child's + (TEXT and ENTITY_REF). Entity references are substituted. """ + ret = libxml2mod.xmlNodeGetContent(self._o) + return ret + + def getLang(self): + """Searches the language of a node, i.e. the values of the + xml:lang attribute or the one carried by the nearest + ancestor. """ + ret = libxml2mod.xmlNodeGetLang(self._o) + return ret + + def getSpacePreserve(self): + """Searches the space preserving behaviour of a node, i.e. the + values of the xml:space attribute or the one carried by the + nearest ancestor. """ + ret = libxml2mod.xmlNodeGetSpacePreserve(self._o) + return ret + + def hasNsProp(self, name, nameSpace): + """Search for an attribute associated to a node This attribute + has to be anchored in the namespace specified. This does + the entity substitution. This function looks in DTD + attribute declaration for #FIXED or default declaration + values unless DTD use has been turned off. Note that a + namespace of None indicates to use the default namespace. """ + ret = libxml2mod.xmlHasNsProp(self._o, name, nameSpace) + if ret is None:return None + __tmp = xmlAttr(_obj=ret) + return __tmp + + def hasProp(self, name): + """Search an attribute associated to a node This function also + looks in DTD attribute declaration for #FIXED or default + declaration values unless DTD use has been turned off. """ + ret = libxml2mod.xmlHasProp(self._o, name) + if ret is None:return None + __tmp = xmlAttr(_obj=ret) + return __tmp + + def isBlankNode(self): + """Checks whether this node is an empty or whitespace only + (and possibly ignorable) text-node. """ + ret = libxml2mod.xmlIsBlankNode(self._o) + return ret + + def isText(self): + """Is this node a Text node ? """ + ret = libxml2mod.xmlNodeIsText(self._o) + return ret + + def lastChild(self): + """Search the last child of a node. """ + ret = libxml2mod.xmlGetLastChild(self._o) + if ret is None:raise treeError('xmlGetLastChild() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def lastElementChild(self): + """Finds the last child node of that element which is a + Element node Note the handling of entities references is + different than in the W3C DOM element traversal spec since + we don't have back reference from entities content to + entities references. """ + ret = libxml2mod.xmlLastElementChild(self._o) + if ret is None:return None + __tmp = xmlNode(_obj=ret) + return __tmp + + def lineNo(self): + """Get line number of @node. Try to override the limitation of + lines being store in 16 bits ints if XML_PARSE_BIG_LINES + parser option was used """ + ret = libxml2mod.xmlGetLineNo(self._o) + return ret + + def listGetRawString(self, doc, inLine): + """Builds the string equivalent to the text contained in the + Node list made of TEXTs and ENTITY_REFs, contrary to + xmlNodeListGetString() this function doesn't do any + character encoding handling. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlNodeListGetRawString(doc__o, self._o, inLine) + return ret + + def listGetString(self, doc, inLine): + """Build the string equivalent to the text contained in the + Node list made of TEXTs and ENTITY_REFs """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlNodeListGetString(doc__o, self._o, inLine) + return ret + + def newChild(self, ns, name, content): + """Creation of a new child element, added at the end of + @parent children list. @ns and @content parameters are + optional (None). If @ns is None, the newly created element + inherits the namespace of @parent. If @content is non None, + a child list containing the TEXTs and ENTITY_REFs node will + be created. NOTE: @content is supposed to be a piece of XML + CDATA, so it allows entity references. XML special chars + must be escaped first by using + xmlEncodeEntitiesReentrant(), or xmlNewTextChild() should + be used. """ + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlNewChild(self._o, ns__o, name, content) + if ret is None:raise treeError('xmlNewChild() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newNs(self, href, prefix): + """Creation of a new Namespace. This function will refuse to + create a namespace with a similar prefix than an existing + one present on this node. We use href==None in the case of + an element creation where the namespace was not defined. """ + ret = libxml2mod.xmlNewNs(self._o, href, prefix) + if ret is None:raise treeError('xmlNewNs() failed') + __tmp = xmlNs(_obj=ret) + return __tmp + + def newNsProp(self, ns, name, value): + """Create a new property tagged with a namespace and carried + by a node. """ + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlNewNsProp(self._o, ns__o, name, value) + if ret is None:raise treeError('xmlNewNsProp() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def newNsPropEatName(self, ns, name, value): + """Create a new property tagged with a namespace and carried + by a node. """ + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlNewNsPropEatName(self._o, ns__o, name, value) + if ret is None:raise treeError('xmlNewNsPropEatName() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def newProp(self, name, value): + """Create a new property carried by a node. """ + ret = libxml2mod.xmlNewProp(self._o, name, value) + if ret is None:raise treeError('xmlNewProp() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def newTextChild(self, ns, name, content): + """Creation of a new child element, added at the end of + @parent children list. @ns and @content parameters are + optional (None). If @ns is None, the newly created element + inherits the namespace of @parent. If @content is non None, + a child TEXT node will be created containing the string + @content. NOTE: Use xmlNewChild() if @content will contain + entities that need to be preserved. Use this function, + xmlNewTextChild(), if you need to ensure that reserved XML + chars that might appear in @content, such as the ampersand, + greater-than or less-than signs, are automatically replaced + by their XML escaped entity representations. """ + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlNewTextChild(self._o, ns__o, name, content) + if ret is None:raise treeError('xmlNewTextChild() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def nextElementSibling(self): + """Finds the first closest next sibling of the node which is + an element node. Note the handling of entities references + is different than in the W3C DOM element traversal spec + since we don't have back reference from entities content to + entities references. """ + ret = libxml2mod.xmlNextElementSibling(self._o) + if ret is None:return None + __tmp = xmlNode(_obj=ret) + return __tmp + + def noNsProp(self, name): + """Search and get the value of an attribute associated to a + node This does the entity substitution. This function looks + in DTD attribute declaration for #FIXED or default + declaration values unless DTD use has been turned off. This + function is similar to xmlGetProp except it will accept + only an attribute in no namespace. """ + ret = libxml2mod.xmlGetNoNsProp(self._o, name) + return ret + + def nodePath(self): + """Build a structure based Path for the given node """ + ret = libxml2mod.xmlGetNodePath(self._o) + return ret + + def nsProp(self, name, nameSpace): + """Search and get the value of an attribute associated to a + node This attribute has to be anchored in the namespace + specified. This does the entity substitution. This function + looks in DTD attribute declaration for #FIXED or default + declaration values unless DTD use has been turned off. """ + ret = libxml2mod.xmlGetNsProp(self._o, name, nameSpace) + return ret + + def previousElementSibling(self): + """Finds the first closest previous sibling of the node which + is an element node. Note the handling of entities + references is different than in the W3C DOM element + traversal spec since we don't have back reference from + entities content to entities references. """ + ret = libxml2mod.xmlPreviousElementSibling(self._o) + if ret is None:return None + __tmp = xmlNode(_obj=ret) + return __tmp + + def prop(self, name): + """Search and get the value of an attribute associated to a + node This does the entity substitution. This function looks + in DTD attribute declaration for #FIXED or default + declaration values unless DTD use has been turned off. + NOTE: this function acts independently of namespaces + associated to the attribute. Use xmlGetNsProp() or + xmlGetNoNsProp() for namespace aware processing. """ + ret = libxml2mod.xmlGetProp(self._o, name) + return ret + + def reconciliateNs(self, doc): + """This function checks that all the namespaces declared + within the given tree are properly declared. This is needed + for example after Copy or Cut and then paste operations. + The subtree may still hold pointers to namespace + declarations outside the subtree or invalid/masked. As much + as possible the function try to reuse the existing + namespaces found in the new environment. If not possible + the new namespaces are redeclared on @tree at the top of + the given subtree. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlReconciliateNs(doc__o, self._o) + return ret + + def replaceNode(self, cur): + """Unlink the old node from its current context, prune the new + one at the same place. If @cur was already inserted in a + document it is first unlinked from its existing context. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlReplaceNode(self._o, cur__o) + if ret is None:raise treeError('xmlReplaceNode() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def searchNs(self, doc, nameSpace): + """Search a Ns registered under a given name space for a + document. recurse on the parents until it finds the defined + namespace or return None otherwise. @nameSpace can be None, + this is a search for the default namespace. We don't allow + to cross entities boundaries. If you don't declare the + namespace within those you will be in troubles !!! A + warning is generated to cover this case. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlSearchNs(doc__o, self._o, nameSpace) + if ret is None:raise treeError('xmlSearchNs() failed') + __tmp = xmlNs(_obj=ret) + return __tmp + + def searchNsByHref(self, doc, href): + """Search a Ns aliasing a given URI. Recurse on the parents + until it finds the defined namespace or return None + otherwise. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlSearchNsByHref(doc__o, self._o, href) + if ret is None:raise treeError('xmlSearchNsByHref() failed') + __tmp = xmlNs(_obj=ret) + return __tmp + + def setBase(self, uri): + """Set (or reset) the base URI of a node, i.e. the value of + the xml:base attribute. """ + libxml2mod.xmlNodeSetBase(self._o, uri) + + def setContent(self, content): + """Replace the content of a node. NOTE: @content is supposed + to be a piece of XML CDATA, so it allows entity references, + but XML special chars need to be escaped first by using + xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars(). """ + libxml2mod.xmlNodeSetContent(self._o, content) + + def setContentLen(self, content, len): + """Replace the content of a node. NOTE: @content is supposed + to be a piece of XML CDATA, so it allows entity references, + but XML special chars need to be escaped first by using + xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars(). """ + libxml2mod.xmlNodeSetContentLen(self._o, content, len) + + def setLang(self, lang): + """Set the language of a node, i.e. the values of the xml:lang + attribute. """ + libxml2mod.xmlNodeSetLang(self._o, lang) + + def setListDoc(self, doc): + """update all nodes in the list to point to the right document """ + if doc is None: doc__o = None + else: doc__o = doc._o + libxml2mod.xmlSetListDoc(self._o, doc__o) + + def setName(self, name): + """Set (or reset) the name of a node. """ + libxml2mod.xmlNodeSetName(self._o, name) + + def setNs(self, ns): + """Associate a namespace to a node, a posteriori. """ + if ns is None: ns__o = None + else: ns__o = ns._o + libxml2mod.xmlSetNs(self._o, ns__o) + + def setNsProp(self, ns, name, value): + """Set (or reset) an attribute carried by a node. The ns + structure must be in scope, this is not checked """ + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlSetNsProp(self._o, ns__o, name, value) + if ret is None:raise treeError('xmlSetNsProp() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def setProp(self, name, value): + """Set (or reset) an attribute carried by a node. If @name has + a prefix, then the corresponding namespace-binding will be + used, if in scope; it is an error it there's no such + ns-binding for the prefix in scope. """ + ret = libxml2mod.xmlSetProp(self._o, name, value) + if ret is None:raise treeError('xmlSetProp() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def setSpacePreserve(self, val): + """Set (or reset) the space preserving behaviour of a node, + i.e. the value of the xml:space attribute. """ + libxml2mod.xmlNodeSetSpacePreserve(self._o, val) + + def setTreeDoc(self, doc): + """update all nodes under the tree to point to the right + document """ + if doc is None: doc__o = None + else: doc__o = doc._o + libxml2mod.xmlSetTreeDoc(self._o, doc__o) + + def textConcat(self, content, len): + """Concat the given string at the end of the existing node + content """ + ret = libxml2mod.xmlTextConcat(self._o, content, len) + return ret + + def textMerge(self, second): + """Merge two text nodes into one """ + if second is None: second__o = None + else: second__o = second._o + ret = libxml2mod.xmlTextMerge(self._o, second__o) + if ret is None:raise treeError('xmlTextMerge() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def unlinkNode(self): + """Unlink a node from it's current context, the node is not + freed If one need to free the node, use xmlFreeNode() + routine after the unlink to discard it. Note that namespace + nodes can't be unlinked as they do not have pointer to + their parent. """ + libxml2mod.xmlUnlinkNode(self._o) + + def unsetNsProp(self, ns, name): + """Remove an attribute carried by a node. """ + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlUnsetNsProp(self._o, ns__o, name) + return ret + + def unsetProp(self, name): + """Remove an attribute carried by a node. This handles only + attributes in no namespace. """ + ret = libxml2mod.xmlUnsetProp(self._o, name) + return ret + + # + # xmlNode functions from module valid + # + + def isID(self, doc, attr): + """Determine whether an attribute is of type ID. In case we + have DTD(s) then this is done if DTD loading has been + requested. In the case of HTML documents parsed with the + HTML parser, then ID detection is done systematically. """ + if doc is None: doc__o = None + else: doc__o = doc._o + if attr is None: attr__o = None + else: attr__o = attr._o + ret = libxml2mod.xmlIsID(doc__o, self._o, attr__o) + return ret + + def isRef(self, doc, attr): + """Determine whether an attribute is of type Ref. In case we + have DTD(s) then this is simple, otherwise we use an + heuristic: name Ref (upper or lowercase). """ + if doc is None: doc__o = None + else: doc__o = doc._o + if attr is None: attr__o = None + else: attr__o = attr._o + ret = libxml2mod.xmlIsRef(doc__o, self._o, attr__o) + return ret + + def validNormalizeAttributeValue(self, doc, name, value): + """Does the validation related extra step of the normalization + of attribute values: If the declared value is not CDATA, + then the XML processor must further process the normalized + attribute value by discarding any leading and trailing + space (#x20) characters, and by replacing sequences of + space (#x20) characters by single space (#x20) character. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlValidNormalizeAttributeValue(doc__o, self._o, name, value) + return ret + + # + # xmlNode functions from module xinclude + # + + def xincludeProcessTree(self): + """Implement the XInclude substitution for the given subtree """ + ret = libxml2mod.xmlXIncludeProcessTree(self._o) + return ret + + def xincludeProcessTreeFlags(self, flags): + """Implement the XInclude substitution for the given subtree """ + ret = libxml2mod.xmlXIncludeProcessTreeFlags(self._o, flags) + return ret + + # + # xmlNode functions from module xmlschemas + # + + def schemaValidateOneElement(self, ctxt): + """Validate a branch of a tree, starting with the given @elem. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlSchemaValidateOneElement(ctxt__o, self._o) + return ret + + # + # xmlNode functions from module xpath + # + + def xpathCastNodeToNumber(self): + """Converts a node to its number value """ + ret = libxml2mod.xmlXPathCastNodeToNumber(self._o) + return ret + + def xpathCastNodeToString(self): + """Converts a node to its string value. """ + ret = libxml2mod.xmlXPathCastNodeToString(self._o) + return ret + + def xpathCmpNodes(self, node2): + """Compare two nodes w.r.t document order """ + if node2 is None: node2__o = None + else: node2__o = node2._o + ret = libxml2mod.xmlXPathCmpNodes(self._o, node2__o) + return ret + + # + # xmlNode functions from module xpathInternals + # + + def xpathNewNodeSet(self): + """Create a new xmlXPathObjectPtr of type NodeSet and + initialize it with the single Node @val """ + ret = libxml2mod.xmlXPathNewNodeSet(self._o) + if ret is None:raise xpathError('xmlXPathNewNodeSet() failed') + return xpathObjectRet(ret) + + def xpathNewValueTree(self): + """Create a new xmlXPathObjectPtr of type Value Tree (XSLT) + and initialize it with the tree root @val """ + ret = libxml2mod.xmlXPathNewValueTree(self._o) + if ret is None:raise xpathError('xmlXPathNewValueTree() failed') + return xpathObjectRet(ret) + + def xpathNextAncestor(self, ctxt): + """Traversal function for the "ancestor" direction the + ancestor axis contains the ancestors of the context node; + the ancestors of the context node consist of the parent of + context node and the parent's parent and so on; the nodes + are ordered in reverse document order; thus the parent is + the first node on the axis, and the parent's parent is the + second node on the axis """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextAncestor(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextAncestor() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextAncestorOrSelf(self, ctxt): + """Traversal function for the "ancestor-or-self" direction he + ancestor-or-self axis contains the context node and + ancestors of the context node in reverse document order; + thus the context node is the first node on the axis, and + the context node's parent the second; parent here is + defined the same as with the parent axis. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextAncestorOrSelf(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextAncestorOrSelf() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextAttribute(self, ctxt): + """Traversal function for the "attribute" direction TODO: + support DTD inherited default attributes """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextAttribute(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextAttribute() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextChild(self, ctxt): + """Traversal function for the "child" direction The child axis + contains the children of the context node in document order. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextChild(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextChild() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextDescendant(self, ctxt): + """Traversal function for the "descendant" direction the + descendant axis contains the descendants of the context + node in document order; a descendant is a child or a child + of a child and so on. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextDescendant(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextDescendant() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextDescendantOrSelf(self, ctxt): + """Traversal function for the "descendant-or-self" direction + the descendant-or-self axis contains the context node and + the descendants of the context node in document order; thus + the context node is the first node on the axis, and the + first child of the context node is the second node on the + axis """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextDescendantOrSelf(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextDescendantOrSelf() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextFollowing(self, ctxt): + """Traversal function for the "following" direction The + following axis contains all nodes in the same document as + the context node that are after the context node in + document order, excluding any descendants and excluding + attribute nodes and namespace nodes; the nodes are ordered + in document order """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextFollowing(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextFollowing() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextFollowingSibling(self, ctxt): + """Traversal function for the "following-sibling" direction + The following-sibling axis contains the following siblings + of the context node in document order. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextFollowingSibling(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextFollowingSibling() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextNamespace(self, ctxt): + """Traversal function for the "namespace" direction the + namespace axis contains the namespace nodes of the context + node; the order of nodes on this axis is + implementation-defined; the axis will be empty unless the + context node is an element We keep the XML namespace node + at the end of the list. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextNamespace(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextNamespace() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextParent(self, ctxt): + """Traversal function for the "parent" direction The parent + axis contains the parent of the context node, if there is + one. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextParent(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextParent() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextPreceding(self, ctxt): + """Traversal function for the "preceding" direction the + preceding axis contains all nodes in the same document as + the context node that are before the context node in + document order, excluding any ancestors and excluding + attribute nodes and namespace nodes; the nodes are ordered + in reverse document order """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextPreceding(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextPreceding() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextPrecedingSibling(self, ctxt): + """Traversal function for the "preceding-sibling" direction + The preceding-sibling axis contains the preceding siblings + of the context node in reverse document order; the first + preceding sibling is first on the axis; the sibling + preceding that node is the second on the axis and so on. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextPrecedingSibling(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextPrecedingSibling() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextSelf(self, ctxt): + """Traversal function for the "self" direction The self axis + contains just the context node itself """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextSelf(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextSelf() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + # + # xmlNode functions from module xpointer + # + + def xpointerNewCollapsedRange(self): + """Create a new xmlXPathObjectPtr of type range using a single + nodes """ + ret = libxml2mod.xmlXPtrNewCollapsedRange(self._o) + if ret is None:raise treeError('xmlXPtrNewCollapsedRange() failed') + return xpathObjectRet(ret) + + def xpointerNewContext(self, doc, origin): + """Create a new XPointer context """ + if doc is None: doc__o = None + else: doc__o = doc._o + if origin is None: origin__o = None + else: origin__o = origin._o + ret = libxml2mod.xmlXPtrNewContext(doc__o, self._o, origin__o) + if ret is None:raise treeError('xmlXPtrNewContext() failed') + __tmp = xpathContext(_obj=ret) + return __tmp + + def xpointerNewLocationSetNodes(self, end): + """Create a new xmlXPathObjectPtr of type LocationSet and + initialize it with the single range made of the two nodes + @start and @end """ + if end is None: end__o = None + else: end__o = end._o + ret = libxml2mod.xmlXPtrNewLocationSetNodes(self._o, end__o) + if ret is None:raise treeError('xmlXPtrNewLocationSetNodes() failed') + return xpathObjectRet(ret) + + def xpointerNewRange(self, startindex, end, endindex): + """Create a new xmlXPathObjectPtr of type range """ + if end is None: end__o = None + else: end__o = end._o + ret = libxml2mod.xmlXPtrNewRange(self._o, startindex, end__o, endindex) + if ret is None:raise treeError('xmlXPtrNewRange() failed') + return xpathObjectRet(ret) + + def xpointerNewRangeNodes(self, end): + """Create a new xmlXPathObjectPtr of type range using 2 nodes """ + if end is None: end__o = None + else: end__o = end._o + ret = libxml2mod.xmlXPtrNewRangeNodes(self._o, end__o) + if ret is None:raise treeError('xmlXPtrNewRangeNodes() failed') + return xpathObjectRet(ret) + +class xmlDoc(xmlNode): + def __init__(self, _obj=None): + if type(_obj).__name__ != 'PyCObject': + raise TypeError, 'xmlDoc needs a PyCObject argument' + self._o = _obj + xmlNode.__init__(self, _obj=_obj) + + def __repr__(self): + return "" % (self.name, long(pos_id (self))) + + # + # xmlDoc functions from module HTMLparser + # + + def htmlAutoCloseTag(self, name, elem): + """The HTML DTD allows a tag to implicitly close other tags. + The list is kept in htmlStartClose array. This function + checks if the element or one of it's children would + autoclose the given tag. """ + ret = libxml2mod.htmlAutoCloseTag(self._o, name, elem) + return ret + + def htmlIsAutoClosed(self, elem): + """The HTML DTD allows a tag to implicitly close other tags. + The list is kept in htmlStartClose array. This function + checks if a tag is autoclosed by one of it's child """ + ret = libxml2mod.htmlIsAutoClosed(self._o, elem) + return ret + + # + # xmlDoc functions from module HTMLtree + # + + def htmlDocContentDumpFormatOutput(self, buf, encoding, format): + """Dump an HTML document. """ + if buf is None: buf__o = None + else: buf__o = buf._o + libxml2mod.htmlDocContentDumpFormatOutput(buf__o, self._o, encoding, format) + + def htmlDocContentDumpOutput(self, buf, encoding): + """Dump an HTML document. Formating return/spaces are added. """ + if buf is None: buf__o = None + else: buf__o = buf._o + libxml2mod.htmlDocContentDumpOutput(buf__o, self._o, encoding) + + def htmlDocDump(self, f): + """Dump an HTML document to an open FILE. """ + ret = libxml2mod.htmlDocDump(f, self._o) + return ret + + def htmlGetMetaEncoding(self): + """Encoding definition lookup in the Meta tags """ + ret = libxml2mod.htmlGetMetaEncoding(self._o) + return ret + + def htmlNodeDumpFile(self, out, cur): + """Dump an HTML node, recursive behaviour,children are printed + too, and formatting returns are added. """ + if cur is None: cur__o = None + else: cur__o = cur._o + libxml2mod.htmlNodeDumpFile(out, self._o, cur__o) + + def htmlNodeDumpFileFormat(self, out, cur, encoding, format): + """Dump an HTML node, recursive behaviour,children are printed + too. TODO: if encoding == None try to save in the doc + encoding """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.htmlNodeDumpFileFormat(out, self._o, cur__o, encoding, format) + return ret + + def htmlNodeDumpFormatOutput(self, buf, cur, encoding, format): + """Dump an HTML node, recursive behaviour,children are printed + too. """ + if buf is None: buf__o = None + else: buf__o = buf._o + if cur is None: cur__o = None + else: cur__o = cur._o + libxml2mod.htmlNodeDumpFormatOutput(buf__o, self._o, cur__o, encoding, format) + + def htmlNodeDumpOutput(self, buf, cur, encoding): + """Dump an HTML node, recursive behaviour,children are printed + too, and formatting returns/spaces are added. """ + if buf is None: buf__o = None + else: buf__o = buf._o + if cur is None: cur__o = None + else: cur__o = cur._o + libxml2mod.htmlNodeDumpOutput(buf__o, self._o, cur__o, encoding) + + def htmlSaveFile(self, filename): + """Dump an HTML document to a file. If @filename is "-" the + stdout file is used. """ + ret = libxml2mod.htmlSaveFile(filename, self._o) + return ret + + def htmlSaveFileEnc(self, filename, encoding): + """Dump an HTML document to a file using a given encoding and + formatting returns/spaces are added. """ + ret = libxml2mod.htmlSaveFileEnc(filename, self._o, encoding) + return ret + + def htmlSaveFileFormat(self, filename, encoding, format): + """Dump an HTML document to a file using a given encoding. """ + ret = libxml2mod.htmlSaveFileFormat(filename, self._o, encoding, format) + return ret + + def htmlSetMetaEncoding(self, encoding): + """Sets the current encoding in the Meta tags NOTE: this will + not change the document content encoding, just the META + flag associated. """ + ret = libxml2mod.htmlSetMetaEncoding(self._o, encoding) + return ret + + # + # xmlDoc functions from module debugXML + # + + def debugCheckDocument(self, output): + """Check the document for potential content problems, and + output the errors to @output """ + ret = libxml2mod.xmlDebugCheckDocument(output, self._o) + return ret + + def debugDumpDocument(self, output): + """Dumps debug information for the document, it's recursive """ + libxml2mod.xmlDebugDumpDocument(output, self._o) + + def debugDumpDocumentHead(self, output): + """Dumps debug information cncerning the document, not + recursive """ + libxml2mod.xmlDebugDumpDocumentHead(output, self._o) + + def debugDumpEntities(self, output): + """Dumps debug information for all the entities in use by the + document """ + libxml2mod.xmlDebugDumpEntities(output, self._o) + + # + # xmlDoc functions from module entities + # + + def addDocEntity(self, name, type, ExternalID, SystemID, content): + """Register a new entity for this document. """ + ret = libxml2mod.xmlAddDocEntity(self._o, name, type, ExternalID, SystemID, content) + if ret is None:raise treeError('xmlAddDocEntity() failed') + __tmp = xmlEntity(_obj=ret) + return __tmp + + def addDtdEntity(self, name, type, ExternalID, SystemID, content): + """Register a new entity for this document DTD external subset. """ + ret = libxml2mod.xmlAddDtdEntity(self._o, name, type, ExternalID, SystemID, content) + if ret is None:raise treeError('xmlAddDtdEntity() failed') + __tmp = xmlEntity(_obj=ret) + return __tmp + + def docEntity(self, name): + """Do an entity lookup in the document entity hash table and """ + ret = libxml2mod.xmlGetDocEntity(self._o, name) + if ret is None:raise treeError('xmlGetDocEntity() failed') + __tmp = xmlEntity(_obj=ret) + return __tmp + + def dtdEntity(self, name): + """Do an entity lookup in the DTD entity hash table and """ + ret = libxml2mod.xmlGetDtdEntity(self._o, name) + if ret is None:raise treeError('xmlGetDtdEntity() failed') + __tmp = xmlEntity(_obj=ret) + return __tmp + + def encodeEntities(self, input): + """TODO: remove xmlEncodeEntities, once we are not afraid of + breaking binary compatibility People must migrate their + code to xmlEncodeEntitiesReentrant ! This routine will + issue a warning when encountered. """ + ret = libxml2mod.xmlEncodeEntities(self._o, input) + return ret + + def encodeEntitiesReentrant(self, input): + """Do a global encoding of a string, replacing the predefined + entities and non ASCII values with their entities and + CharRef counterparts. Contrary to xmlEncodeEntities, this + routine is reentrant, and result must be deallocated. """ + ret = libxml2mod.xmlEncodeEntitiesReentrant(self._o, input) + return ret + + def encodeSpecialChars(self, input): + """Do a global encoding of a string, replacing the predefined + entities this routine is reentrant, and result must be + deallocated. """ + ret = libxml2mod.xmlEncodeSpecialChars(self._o, input) + return ret + + def newEntity(self, name, type, ExternalID, SystemID, content): + """Create a new entity, this differs from xmlAddDocEntity() + that if the document is None or has no internal subset + defined, then an unlinked entity structure will be + returned, it is then the responsability of the caller to + link it to the document later or free it when not needed + anymore. """ + ret = libxml2mod.xmlNewEntity(self._o, name, type, ExternalID, SystemID, content) + if ret is None:raise treeError('xmlNewEntity() failed') + __tmp = xmlEntity(_obj=ret) + return __tmp + + def parameterEntity(self, name): + """Do an entity lookup in the internal and external subsets and """ + ret = libxml2mod.xmlGetParameterEntity(self._o, name) + if ret is None:raise treeError('xmlGetParameterEntity() failed') + __tmp = xmlEntity(_obj=ret) + return __tmp + + # + # xmlDoc functions from module relaxng + # + + def relaxNGNewDocParserCtxt(self): + """Create an XML RelaxNGs parser context for that document. + Note: since the process of compiling a RelaxNG schemas + modifies the document, the @doc parameter is duplicated + internally. """ + ret = libxml2mod.xmlRelaxNGNewDocParserCtxt(self._o) + if ret is None:raise parserError('xmlRelaxNGNewDocParserCtxt() failed') + __tmp = relaxNgParserCtxt(_obj=ret) + return __tmp + + def relaxNGValidateDoc(self, ctxt): + """Validate a document tree in memory. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlRelaxNGValidateDoc(ctxt__o, self._o) + return ret + + def relaxNGValidateFullElement(self, ctxt, elem): + """Validate a full subtree when + xmlRelaxNGValidatePushElement() returned 0 and the content + of the node has been expanded. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlRelaxNGValidateFullElement(ctxt__o, self._o, elem__o) + return ret + + def relaxNGValidatePopElement(self, ctxt, elem): + """Pop the element end from the RelaxNG validation stack. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlRelaxNGValidatePopElement(ctxt__o, self._o, elem__o) + return ret + + def relaxNGValidatePushElement(self, ctxt, elem): + """Push a new element start on the RelaxNG validation stack. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlRelaxNGValidatePushElement(ctxt__o, self._o, elem__o) + return ret + + # + # xmlDoc functions from module tree + # + + def copyDoc(self, recursive): + """Do a copy of the document info. If recursive, the content + tree will be copied too as well as DTD, namespaces and + entities. """ + ret = libxml2mod.xmlCopyDoc(self._o, recursive) + if ret is None:raise treeError('xmlCopyDoc() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def copyNode(self, node, extended): + """Do a copy of the node to a given document. """ + if node is None: node__o = None + else: node__o = node._o + ret = libxml2mod.xmlDocCopyNode(node__o, self._o, extended) + if ret is None:raise treeError('xmlDocCopyNode() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def copyNodeList(self, node): + """Do a recursive copy of the node list. """ + if node is None: node__o = None + else: node__o = node._o + ret = libxml2mod.xmlDocCopyNodeList(self._o, node__o) + if ret is None:raise treeError('xmlDocCopyNodeList() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def createIntSubset(self, name, ExternalID, SystemID): + """Create the internal subset of a document """ + ret = libxml2mod.xmlCreateIntSubset(self._o, name, ExternalID, SystemID) + if ret is None:raise treeError('xmlCreateIntSubset() failed') + __tmp = xmlDtd(_obj=ret) + return __tmp + + def docCompressMode(self): + """get the compression ratio for a document, ZLIB based """ + ret = libxml2mod.xmlGetDocCompressMode(self._o) + return ret + + def dump(self, f): + """Dump an XML document to an open FILE. """ + ret = libxml2mod.xmlDocDump(f, self._o) + return ret + + def elemDump(self, f, cur): + """Dump an XML/HTML node, recursive behaviour, children are + printed too. """ + if cur is None: cur__o = None + else: cur__o = cur._o + libxml2mod.xmlElemDump(f, self._o, cur__o) + + def formatDump(self, f, format): + """Dump an XML document to an open FILE. """ + ret = libxml2mod.xmlDocFormatDump(f, self._o, format) + return ret + + def freeDoc(self): + """Free up all the structures used by a document, tree + included. """ + libxml2mod.xmlFreeDoc(self._o) + + def getRootElement(self): + """Get the root element of the document (doc->children is a + list containing possibly comments, PIs, etc ...). """ + ret = libxml2mod.xmlDocGetRootElement(self._o) + if ret is None:raise treeError('xmlDocGetRootElement() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def intSubset(self): + """Get the internal subset of a document """ + ret = libxml2mod.xmlGetIntSubset(self._o) + if ret is None:raise treeError('xmlGetIntSubset() failed') + __tmp = xmlDtd(_obj=ret) + return __tmp + + def newCDataBlock(self, content, len): + """Creation of a new node containing a CDATA block. """ + ret = libxml2mod.xmlNewCDataBlock(self._o, content, len) + if ret is None:raise treeError('xmlNewCDataBlock() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newCharRef(self, name): + """Creation of a new character reference node. """ + ret = libxml2mod.xmlNewCharRef(self._o, name) + if ret is None:raise treeError('xmlNewCharRef() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocComment(self, content): + """Creation of a new node containing a comment within a + document. """ + ret = libxml2mod.xmlNewDocComment(self._o, content) + if ret is None:raise treeError('xmlNewDocComment() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocFragment(self): + """Creation of a new Fragment node. """ + ret = libxml2mod.xmlNewDocFragment(self._o) + if ret is None:raise treeError('xmlNewDocFragment() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocNode(self, ns, name, content): + """Creation of a new node element within a document. @ns and + @content are optional (None). NOTE: @content is supposed to + be a piece of XML CDATA, so it allow entities references, + but XML special chars need to be escaped first by using + xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you + don't need entities support. """ + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlNewDocNode(self._o, ns__o, name, content) + if ret is None:raise treeError('xmlNewDocNode() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocNodeEatName(self, ns, name, content): + """Creation of a new node element within a document. @ns and + @content are optional (None). NOTE: @content is supposed to + be a piece of XML CDATA, so it allow entities references, + but XML special chars need to be escaped first by using + xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you + don't need entities support. """ + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlNewDocNodeEatName(self._o, ns__o, name, content) + if ret is None:raise treeError('xmlNewDocNodeEatName() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocPI(self, name, content): + """Creation of a processing instruction element. """ + ret = libxml2mod.xmlNewDocPI(self._o, name, content) + if ret is None:raise treeError('xmlNewDocPI() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocProp(self, name, value): + """Create a new property carried by a document. """ + ret = libxml2mod.xmlNewDocProp(self._o, name, value) + if ret is None:raise treeError('xmlNewDocProp() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def newDocRawNode(self, ns, name, content): + """Creation of a new node element within a document. @ns and + @content are optional (None). """ + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlNewDocRawNode(self._o, ns__o, name, content) + if ret is None:raise treeError('xmlNewDocRawNode() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocText(self, content): + """Creation of a new text node within a document. """ + ret = libxml2mod.xmlNewDocText(self._o, content) + if ret is None:raise treeError('xmlNewDocText() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocTextLen(self, content, len): + """Creation of a new text node with an extra content length + parameter. The text node pertain to a given document. """ + ret = libxml2mod.xmlNewDocTextLen(self._o, content, len) + if ret is None:raise treeError('xmlNewDocTextLen() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDtd(self, name, ExternalID, SystemID): + """Creation of a new DTD for the external subset. To create an + internal subset, use xmlCreateIntSubset(). """ + ret = libxml2mod.xmlNewDtd(self._o, name, ExternalID, SystemID) + if ret is None:raise treeError('xmlNewDtd() failed') + __tmp = xmlDtd(_obj=ret) + return __tmp + + def newGlobalNs(self, href, prefix): + """Creation of a Namespace, the old way using PI and without + scoping DEPRECATED !!! """ + ret = libxml2mod.xmlNewGlobalNs(self._o, href, prefix) + if ret is None:raise treeError('xmlNewGlobalNs() failed') + __tmp = xmlNs(_obj=ret) + return __tmp + + def newReference(self, name): + """Creation of a new reference node. """ + ret = libxml2mod.xmlNewReference(self._o, name) + if ret is None:raise treeError('xmlNewReference() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def nodeDumpOutput(self, buf, cur, level, format, encoding): + """Dump an XML node, recursive behaviour, children are printed + too. Note that @format = 1 provide node indenting only if + xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was + called """ + if buf is None: buf__o = None + else: buf__o = buf._o + if cur is None: cur__o = None + else: cur__o = cur._o + libxml2mod.xmlNodeDumpOutput(buf__o, self._o, cur__o, level, format, encoding) + + def nodeGetBase(self, cur): + """Searches for the BASE URL. The code should work on both XML + and HTML document even if base mechanisms are completely + different. It returns the base as defined in RFC 2396 + sections 5.1.1. Base URI within Document Content and 5.1.2. + Base URI from the Encapsulating Entity However it does not + return the document base (5.1.3), use doc->URL in this case """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlNodeGetBase(self._o, cur__o) + return ret + + def nodeListGetRawString(self, list, inLine): + """Builds the string equivalent to the text contained in the + Node list made of TEXTs and ENTITY_REFs, contrary to + xmlNodeListGetString() this function doesn't do any + character encoding handling. """ + if list is None: list__o = None + else: list__o = list._o + ret = libxml2mod.xmlNodeListGetRawString(self._o, list__o, inLine) + return ret + + def nodeListGetString(self, list, inLine): + """Build the string equivalent to the text contained in the + Node list made of TEXTs and ENTITY_REFs """ + if list is None: list__o = None + else: list__o = list._o + ret = libxml2mod.xmlNodeListGetString(self._o, list__o, inLine) + return ret + + def reconciliateNs(self, tree): + """This function checks that all the namespaces declared + within the given tree are properly declared. This is needed + for example after Copy or Cut and then paste operations. + The subtree may still hold pointers to namespace + declarations outside the subtree or invalid/masked. As much + as possible the function try to reuse the existing + namespaces found in the new environment. If not possible + the new namespaces are redeclared on @tree at the top of + the given subtree. """ + if tree is None: tree__o = None + else: tree__o = tree._o + ret = libxml2mod.xmlReconciliateNs(self._o, tree__o) + return ret + + def saveFile(self, filename): + """Dump an XML document to a file. Will use compression if + compiled in and enabled. If @filename is "-" the stdout + file is used. """ + ret = libxml2mod.xmlSaveFile(filename, self._o) + return ret + + def saveFileEnc(self, filename, encoding): + """Dump an XML document, converting it to the given encoding """ + ret = libxml2mod.xmlSaveFileEnc(filename, self._o, encoding) + return ret + + def saveFileTo(self, buf, encoding): + """Dump an XML document to an I/O buffer. Warning ! This call + xmlOutputBufferClose() on buf which is not available after + this call. """ + if buf is None: buf__o = None + else: buf__o = buf._o + ret = libxml2mod.xmlSaveFileTo(buf__o, self._o, encoding) + return ret + + def saveFormatFile(self, filename, format): + """Dump an XML document to a file. Will use compression if + compiled in and enabled. If @filename is "-" the stdout + file is used. If @format is set then the document will be + indented on output. Note that @format = 1 provide node + indenting only if xmlIndentTreeOutput = 1 or + xmlKeepBlanksDefault(0) was called """ + ret = libxml2mod.xmlSaveFormatFile(filename, self._o, format) + return ret + + def saveFormatFileEnc(self, filename, encoding, format): + """Dump an XML document to a file or an URL. """ + ret = libxml2mod.xmlSaveFormatFileEnc(filename, self._o, encoding, format) + return ret + + def saveFormatFileTo(self, buf, encoding, format): + """Dump an XML document to an I/O buffer. Warning ! This call + xmlOutputBufferClose() on buf which is not available after + this call. """ + if buf is None: buf__o = None + else: buf__o = buf._o + ret = libxml2mod.xmlSaveFormatFileTo(buf__o, self._o, encoding, format) + return ret + + def searchNs(self, node, nameSpace): + """Search a Ns registered under a given name space for a + document. recurse on the parents until it finds the defined + namespace or return None otherwise. @nameSpace can be None, + this is a search for the default namespace. We don't allow + to cross entities boundaries. If you don't declare the + namespace within those you will be in troubles !!! A + warning is generated to cover this case. """ + if node is None: node__o = None + else: node__o = node._o + ret = libxml2mod.xmlSearchNs(self._o, node__o, nameSpace) + if ret is None:raise treeError('xmlSearchNs() failed') + __tmp = xmlNs(_obj=ret) + return __tmp + + def searchNsByHref(self, node, href): + """Search a Ns aliasing a given URI. Recurse on the parents + until it finds the defined namespace or return None + otherwise. """ + if node is None: node__o = None + else: node__o = node._o + ret = libxml2mod.xmlSearchNsByHref(self._o, node__o, href) + if ret is None:raise treeError('xmlSearchNsByHref() failed') + __tmp = xmlNs(_obj=ret) + return __tmp + + def setDocCompressMode(self, mode): + """set the compression ratio for a document, ZLIB based + Correct values: 0 (uncompressed) to 9 (max compression) """ + libxml2mod.xmlSetDocCompressMode(self._o, mode) + + def setListDoc(self, list): + """update all nodes in the list to point to the right document """ + if list is None: list__o = None + else: list__o = list._o + libxml2mod.xmlSetListDoc(list__o, self._o) + + def setRootElement(self, root): + """Set the root element of the document (doc->children is a + list containing possibly comments, PIs, etc ...). """ + if root is None: root__o = None + else: root__o = root._o + ret = libxml2mod.xmlDocSetRootElement(self._o, root__o) + if ret is None:return None + __tmp = xmlNode(_obj=ret) + return __tmp + + def setTreeDoc(self, tree): + """update all nodes under the tree to point to the right + document """ + if tree is None: tree__o = None + else: tree__o = tree._o + libxml2mod.xmlSetTreeDoc(tree__o, self._o) + + def stringGetNodeList(self, value): + """Parse the value string and build the node list associated. + Should produce a flat tree with only TEXTs and ENTITY_REFs. """ + ret = libxml2mod.xmlStringGetNodeList(self._o, value) + if ret is None:raise treeError('xmlStringGetNodeList() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def stringLenGetNodeList(self, value, len): + """Parse the value string and build the node list associated. + Should produce a flat tree with only TEXTs and ENTITY_REFs. """ + ret = libxml2mod.xmlStringLenGetNodeList(self._o, value, len) + if ret is None:raise treeError('xmlStringLenGetNodeList() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + # + # xmlDoc functions from module valid + # + + def ID(self, ID): + """Search the attribute declaring the given ID """ + ret = libxml2mod.xmlGetID(self._o, ID) + if ret is None:raise treeError('xmlGetID() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def isID(self, elem, attr): + """Determine whether an attribute is of type ID. In case we + have DTD(s) then this is done if DTD loading has been + requested. In the case of HTML documents parsed with the + HTML parser, then ID detection is done systematically. """ + if elem is None: elem__o = None + else: elem__o = elem._o + if attr is None: attr__o = None + else: attr__o = attr._o + ret = libxml2mod.xmlIsID(self._o, elem__o, attr__o) + return ret + + def isMixedElement(self, name): + """Search in the DtDs whether an element accept Mixed content + (or ANY) basically if it is supposed to accept text childs """ + ret = libxml2mod.xmlIsMixedElement(self._o, name) + return ret + + def isRef(self, elem, attr): + """Determine whether an attribute is of type Ref. In case we + have DTD(s) then this is simple, otherwise we use an + heuristic: name Ref (upper or lowercase). """ + if elem is None: elem__o = None + else: elem__o = elem._o + if attr is None: attr__o = None + else: attr__o = attr._o + ret = libxml2mod.xmlIsRef(self._o, elem__o, attr__o) + return ret + + def removeID(self, attr): + """Remove the given attribute from the ID table maintained + internally. """ + if attr is None: attr__o = None + else: attr__o = attr._o + ret = libxml2mod.xmlRemoveID(self._o, attr__o) + return ret + + def removeRef(self, attr): + """Remove the given attribute from the Ref table maintained + internally. """ + if attr is None: attr__o = None + else: attr__o = attr._o + ret = libxml2mod.xmlRemoveRef(self._o, attr__o) + return ret + + def validCtxtNormalizeAttributeValue(self, ctxt, elem, name, value): + """Does the validation related extra step of the normalization + of attribute values: If the declared value is not CDATA, + then the XML processor must further process the normalized + attribute value by discarding any leading and trailing + space (#x20) characters, and by replacing sequences of + space (#x20) characters by single space (#x20) character. + Also check VC: Standalone Document Declaration in P32, and + update ctxt->valid accordingly """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidCtxtNormalizeAttributeValue(ctxt__o, self._o, elem__o, name, value) + return ret + + def validNormalizeAttributeValue(self, elem, name, value): + """Does the validation related extra step of the normalization + of attribute values: If the declared value is not CDATA, + then the XML processor must further process the normalized + attribute value by discarding any leading and trailing + space (#x20) characters, and by replacing sequences of + space (#x20) characters by single space (#x20) character. """ + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidNormalizeAttributeValue(self._o, elem__o, name, value) + return ret + + def validateDocument(self, ctxt): + """Try to validate the document instance basically it does + the all the checks described by the XML Rec i.e. validates + the internal and external subset (if present) and validate + the document tree. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlValidateDocument(ctxt__o, self._o) + return ret + + def validateDocumentFinal(self, ctxt): + """Does the final step for the document validation once all + the incremental validation steps have been completed + basically it does the following checks described by the XML + Rec Check all the IDREF/IDREFS attributes definition for + validity """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlValidateDocumentFinal(ctxt__o, self._o) + return ret + + def validateDtd(self, ctxt, dtd): + """Try to validate the document against the dtd instance + Basically it does check all the definitions in the DtD. + Note the the internal subset (if present) is de-coupled + (i.e. not used), which could give problems if ID or IDREF + is present. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if dtd is None: dtd__o = None + else: dtd__o = dtd._o + ret = libxml2mod.xmlValidateDtd(ctxt__o, self._o, dtd__o) + return ret + + def validateDtdFinal(self, ctxt): + """Does the final step for the dtds validation once all the + subsets have been parsed basically it does the following + checks described by the XML Rec - check that ENTITY and + ENTITIES type attributes default or possible values matches + one of the defined entities. - check that NOTATION type + attributes default or possible values matches one of the + defined notations. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlValidateDtdFinal(ctxt__o, self._o) + return ret + + def validateElement(self, ctxt, elem): + """Try to validate the subtree under an element """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidateElement(ctxt__o, self._o, elem__o) + return ret + + def validateNotationUse(self, ctxt, notationName): + """Validate that the given name match a notation declaration. + - [ VC: Notation Declared ] """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlValidateNotationUse(ctxt__o, self._o, notationName) + return ret + + def validateOneAttribute(self, ctxt, elem, attr, value): + """Try to validate a single attribute for an element basically + it does the following checks as described by the XML-1.0 + recommendation: - [ VC: Attribute Value Type ] - [ VC: + Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC: + Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity + Name ] - [ VC: Notation Attributes ] The ID/IDREF + uniqueness and matching are done separately """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if elem is None: elem__o = None + else: elem__o = elem._o + if attr is None: attr__o = None + else: attr__o = attr._o + ret = libxml2mod.xmlValidateOneAttribute(ctxt__o, self._o, elem__o, attr__o, value) + return ret + + def validateOneElement(self, ctxt, elem): + """Try to validate a single element and it's attributes, + basically it does the following checks as described by the + XML-1.0 recommendation: - [ VC: Element Valid ] - [ VC: + Required Attribute ] Then call xmlValidateOneAttribute() + for each attribute present. The ID/IDREF checkings are + done separately """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidateOneElement(ctxt__o, self._o, elem__o) + return ret + + def validateOneNamespace(self, ctxt, elem, prefix, ns, value): + """Try to validate a single namespace declaration for an + element basically it does the following checks as described + by the XML-1.0 recommendation: - [ VC: Attribute Value Type + ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] - + [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: + Entity Name ] - [ VC: Notation Attributes ] The ID/IDREF + uniqueness and matching are done separately """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if elem is None: elem__o = None + else: elem__o = elem._o + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlValidateOneNamespace(ctxt__o, self._o, elem__o, prefix, ns__o, value) + return ret + + def validatePopElement(self, ctxt, elem, qname): + """Pop the element end from the validation stack. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidatePopElement(ctxt__o, self._o, elem__o, qname) + return ret + + def validatePushElement(self, ctxt, elem, qname): + """Push a new element start on the validation stack. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidatePushElement(ctxt__o, self._o, elem__o, qname) + return ret + + def validateRoot(self, ctxt): + """Try to validate a the root element basically it does the + following check as described by the XML-1.0 recommendation: + - [ VC: Root Element Type ] it doesn't try to recurse or + apply other check to the element """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlValidateRoot(ctxt__o, self._o) + return ret + + # + # xmlDoc functions from module xinclude + # + + def xincludeProcess(self): + """Implement the XInclude substitution on the XML document @doc """ + ret = libxml2mod.xmlXIncludeProcess(self._o) + return ret + + def xincludeProcessFlags(self, flags): + """Implement the XInclude substitution on the XML document @doc """ + ret = libxml2mod.xmlXIncludeProcessFlags(self._o, flags) + return ret + + # + # xmlDoc functions from module xmlreader + # + + def NewWalker(self, reader): + """Setup an xmltextReader to parse a preparsed XML document. + This reuses the existing @reader xmlTextReader. """ + if reader is None: reader__o = None + else: reader__o = reader._o + ret = libxml2mod.xmlReaderNewWalker(reader__o, self._o) + return ret + + def readerWalker(self): + """Create an xmltextReader for a preparsed document. """ + ret = libxml2mod.xmlReaderWalker(self._o) + if ret is None:raise treeError('xmlReaderWalker() failed') + __tmp = xmlTextReader(_obj=ret) + return __tmp + + # + # xmlDoc functions from module xmlschemas + # + + def schemaNewDocParserCtxt(self): + """Create an XML Schemas parse context for that document. NB. + The document may be modified during the parsing process. """ + ret = libxml2mod.xmlSchemaNewDocParserCtxt(self._o) + if ret is None:raise parserError('xmlSchemaNewDocParserCtxt() failed') + __tmp = SchemaParserCtxt(_obj=ret) + return __tmp + + def schemaValidateDoc(self, ctxt): + """Validate a document tree in memory. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlSchemaValidateDoc(ctxt__o, self._o) + return ret + + # + # xmlDoc functions from module xpath + # + + def xpathNewContext(self): + """Create a new xmlXPathContext """ + ret = libxml2mod.xmlXPathNewContext(self._o) + if ret is None:raise xpathError('xmlXPathNewContext() failed') + __tmp = xpathContext(_obj=ret) + return __tmp + + def xpathOrderDocElems(self): + """Call this routine to speed up XPath computation on static + documents. This stamps all the element nodes with the + document order Like for line information, the order is kept + in the element->content field, the value stored is actually + - the node number (starting at -1) to be able to + differentiate from line numbers. """ + ret = libxml2mod.xmlXPathOrderDocElems(self._o) + return ret + + # + # xmlDoc functions from module xpointer + # + + def xpointerNewContext(self, here, origin): + """Create a new XPointer context """ + if here is None: here__o = None + else: here__o = here._o + if origin is None: origin__o = None + else: origin__o = origin._o + ret = libxml2mod.xmlXPtrNewContext(self._o, here__o, origin__o) + if ret is None:raise treeError('xmlXPtrNewContext() failed') + __tmp = xpathContext(_obj=ret) + return __tmp + +class parserCtxt(parserCtxtCore): + def __init__(self, _obj=None): + self._o = _obj + parserCtxtCore.__init__(self, _obj=_obj) + + def __del__(self): + if self._o != None: + libxml2mod.xmlFreeParserCtxt(self._o) + self._o = None + + # accessors for parserCtxt + def doc(self): + """Get the document tree from a parser context. """ + ret = libxml2mod.xmlParserGetDoc(self._o) + if ret is None:raise parserError('xmlParserGetDoc() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def isValid(self): + """Get the validity information from a parser context. """ + ret = libxml2mod.xmlParserGetIsValid(self._o) + return ret + + def lineNumbers(self, linenumbers): + """Switch on the generation of line number for elements nodes. """ + libxml2mod.xmlParserSetLineNumbers(self._o, linenumbers) + + def loadSubset(self, loadsubset): + """Switch the parser to load the DTD without validating. """ + libxml2mod.xmlParserSetLoadSubset(self._o, loadsubset) + + def pedantic(self, pedantic): + """Switch the parser to be pedantic. """ + libxml2mod.xmlParserSetPedantic(self._o, pedantic) + + def replaceEntities(self, replaceEntities): + """Switch the parser to replace entities. """ + libxml2mod.xmlParserSetReplaceEntities(self._o, replaceEntities) + + def validate(self, validate): + """Switch the parser to validation mode. """ + libxml2mod.xmlParserSetValidate(self._o, validate) + + def wellFormed(self): + """Get the well formed information from a parser context. """ + ret = libxml2mod.xmlParserGetWellFormed(self._o) + return ret + + # + # parserCtxt functions from module HTMLparser + # + + def htmlCtxtReadDoc(self, cur, URL, encoding, options): + """parse an XML in-memory document and build a tree. This + reuses the existing @ctxt parser context """ + ret = libxml2mod.htmlCtxtReadDoc(self._o, cur, URL, encoding, options) + if ret is None:raise treeError('htmlCtxtReadDoc() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def htmlCtxtReadFd(self, fd, URL, encoding, options): + """parse an XML from a file descriptor and build a tree. This + reuses the existing @ctxt parser context """ + ret = libxml2mod.htmlCtxtReadFd(self._o, fd, URL, encoding, options) + if ret is None:raise treeError('htmlCtxtReadFd() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def htmlCtxtReadFile(self, filename, encoding, options): + """parse an XML file from the filesystem or the network. This + reuses the existing @ctxt parser context """ + ret = libxml2mod.htmlCtxtReadFile(self._o, filename, encoding, options) + if ret is None:raise treeError('htmlCtxtReadFile() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def htmlCtxtReadMemory(self, buffer, size, URL, encoding, options): + """parse an XML in-memory document and build a tree. This + reuses the existing @ctxt parser context """ + ret = libxml2mod.htmlCtxtReadMemory(self._o, buffer, size, URL, encoding, options) + if ret is None:raise treeError('htmlCtxtReadMemory() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def htmlCtxtReset(self): + """Reset a parser context """ + libxml2mod.htmlCtxtReset(self._o) + + def htmlCtxtUseOptions(self, options): + """Applies the options to the parser context """ + ret = libxml2mod.htmlCtxtUseOptions(self._o, options) + return ret + + def htmlFreeParserCtxt(self): + """Free all the memory used by a parser context. However the + parsed document in ctxt->myDoc is not freed. """ + libxml2mod.htmlFreeParserCtxt(self._o) + + def htmlParseCharRef(self): + """parse Reference declarations [66] CharRef ::= '&#' [0-9]+ + ';' | '&#x' [0-9a-fA-F]+ ';' """ + ret = libxml2mod.htmlParseCharRef(self._o) + return ret + + def htmlParseChunk(self, chunk, size, terminate): + """Parse a Chunk of memory """ + ret = libxml2mod.htmlParseChunk(self._o, chunk, size, terminate) + return ret + + def htmlParseDocument(self): + """parse an HTML document (and build a tree if using the + standard SAX interface). """ + ret = libxml2mod.htmlParseDocument(self._o) + return ret + + def htmlParseElement(self): + """parse an HTML element, this is highly recursive this is + kept for compatibility with previous code versions [39] + element ::= EmptyElemTag | STag content ETag [41] + Attribute ::= Name Eq AttValue """ + libxml2mod.htmlParseElement(self._o) + + # + # parserCtxt functions from module parser + # + + def byteConsumed(self): + """This function provides the current index of the parser + relative to the start of the current entity. This function + is computed in bytes from the beginning starting at zero + and finishing at the size in byte of the file if parsing a + file. The function is of constant cost if the input is + UTF-8 but can be costly if run on non-UTF-8 input. """ + ret = libxml2mod.xmlByteConsumed(self._o) + return ret + + def clearParserCtxt(self): + """Clear (release owned resources) and reinitialize a parser + context """ + libxml2mod.xmlClearParserCtxt(self._o) + + def ctxtReadDoc(self, cur, URL, encoding, options): + """parse an XML in-memory document and build a tree. This + reuses the existing @ctxt parser context """ + ret = libxml2mod.xmlCtxtReadDoc(self._o, cur, URL, encoding, options) + if ret is None:raise treeError('xmlCtxtReadDoc() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def ctxtReadFd(self, fd, URL, encoding, options): + """parse an XML from a file descriptor and build a tree. This + reuses the existing @ctxt parser context NOTE that the file + descriptor will not be closed when the reader is closed or + reset. """ + ret = libxml2mod.xmlCtxtReadFd(self._o, fd, URL, encoding, options) + if ret is None:raise treeError('xmlCtxtReadFd() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def ctxtReadFile(self, filename, encoding, options): + """parse an XML file from the filesystem or the network. This + reuses the existing @ctxt parser context """ + ret = libxml2mod.xmlCtxtReadFile(self._o, filename, encoding, options) + if ret is None:raise treeError('xmlCtxtReadFile() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def ctxtReadMemory(self, buffer, size, URL, encoding, options): + """parse an XML in-memory document and build a tree. This + reuses the existing @ctxt parser context """ + ret = libxml2mod.xmlCtxtReadMemory(self._o, buffer, size, URL, encoding, options) + if ret is None:raise treeError('xmlCtxtReadMemory() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def ctxtReset(self): + """Reset a parser context """ + libxml2mod.xmlCtxtReset(self._o) + + def ctxtResetPush(self, chunk, size, filename, encoding): + """Reset a push parser context """ + ret = libxml2mod.xmlCtxtResetPush(self._o, chunk, size, filename, encoding) + return ret + + def ctxtUseOptions(self, options): + """Applies the options to the parser context """ + ret = libxml2mod.xmlCtxtUseOptions(self._o, options) + return ret + + def initParserCtxt(self): + """Initialize a parser context """ + ret = libxml2mod.xmlInitParserCtxt(self._o) + return ret + + def parseChunk(self, chunk, size, terminate): + """Parse a Chunk of memory """ + ret = libxml2mod.xmlParseChunk(self._o, chunk, size, terminate) + return ret + + def parseDocument(self): + """parse an XML document (and build a tree if using the + standard SAX interface). [1] document ::= prolog element + Misc* [22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)? """ + ret = libxml2mod.xmlParseDocument(self._o) + return ret + + def parseExtParsedEnt(self): + """parse a general parsed entity An external general parsed + entity is well-formed if it matches the production labeled + extParsedEnt. [78] extParsedEnt ::= TextDecl? content """ + ret = libxml2mod.xmlParseExtParsedEnt(self._o) + return ret + + def setupParserForBuffer(self, buffer, filename): + """Setup the parser context to parse a new buffer; Clears any + prior contents from the parser context. The buffer + parameter must not be None, but the filename parameter can + be """ + libxml2mod.xmlSetupParserForBuffer(self._o, buffer, filename) + + def stopParser(self): + """Blocks further parser processing """ + libxml2mod.xmlStopParser(self._o) + + # + # parserCtxt functions from module parserInternals + # + + def decodeEntities(self, len, what, end, end2, end3): + """This function is deprecated, we now always process entities + content through xmlStringDecodeEntities TODO: remove it in + next major release. [67] Reference ::= EntityRef | CharRef + [69] PEReference ::= '%' Name ';' """ + ret = libxml2mod.xmlDecodeEntities(self._o, len, what, end, end2, end3) + return ret + + def handleEntity(self, entity): + """Default handling of defined entities, when should we define + a new input stream ? When do we just handle that as a set + of chars ? OBSOLETE: to be removed at some point. """ + if entity is None: entity__o = None + else: entity__o = entity._o + libxml2mod.xmlHandleEntity(self._o, entity__o) + + def namespaceParseNCName(self): + """parse an XML namespace name. TODO: this seems not in use + anymore, the namespace handling is done on top of the SAX + interfaces, i.e. not on raw input. [NS 3] NCName ::= + (Letter | '_') (NCNameChar)* [NS 4] NCNameChar ::= Letter + | Digit | '.' | '-' | '_' | CombiningChar | Extender """ + ret = libxml2mod.xmlNamespaceParseNCName(self._o) + return ret + + def namespaceParseNSDef(self): + """parse a namespace prefix declaration TODO: this seems not + in use anymore, the namespace handling is done on top of + the SAX interfaces, i.e. not on raw input. [NS 1] NSDef + ::= PrefixDef Eq SystemLiteral [NS 2] PrefixDef ::= + 'xmlns' (':' NCName)? """ + ret = libxml2mod.xmlNamespaceParseNSDef(self._o) + return ret + + def nextChar(self): + """Skip to the next char input char. """ + libxml2mod.xmlNextChar(self._o) + + def parseAttValue(self): + """parse a value for an attribute Note: the parser won't do + substitution of entities here, this will be handled later + in xmlStringGetNodeList [10] AttValue ::= '"' ([^<&"] | + Reference)* '"' | "'" ([^<&'] | Reference)* "'" 3.3.3 + Attribute-Value Normalization: Before the value of an + attribute is passed to the application or checked for + validity, the XML processor must normalize it as follows: - + a character reference is processed by appending the + referenced character to the attribute value - an entity + reference is processed by recursively processing the + replacement text of the entity - a whitespace character + (#x20, #xD, #xA, #x9) is processed by appending #x20 to the + normalized value, except that only a single #x20 is + appended for a "#xD#xA" sequence that is part of an + external parsed entity or the literal entity value of an + internal parsed entity - other characters are processed by + appending them to the normalized value If the declared + value is not CDATA, then the XML processor must further + process the normalized attribute value by discarding any + leading and trailing space (#x20) characters, and by + replacing sequences of space (#x20) characters by a single + space (#x20) character. All attributes for which no + declaration has been read should be treated by a + non-validating parser as if declared CDATA. """ + ret = libxml2mod.xmlParseAttValue(self._o) + return ret + + def parseAttributeListDecl(self): + """: parse the Attribute list def for an element [52] + AttlistDecl ::= '' [53] + AttDef ::= S Name S AttType S DefaultDecl """ + libxml2mod.xmlParseAttributeListDecl(self._o) + + def parseCDSect(self): + """Parse escaped pure raw content. [18] CDSect ::= CDStart + CData CDEnd [19] CDStart ::= '' Char*)) [21] CDEnd ::= ']]>' """ + libxml2mod.xmlParseCDSect(self._o) + + def parseCharData(self, cdata): + """parse a CharData section. if we are within a CDATA section + ']]>' marks an end of section. The right angle bracket (>) + may be represented using the string ">", and must, for + compatibility, be escaped using ">" or a character + reference when it appears in the string "]]>" in content, + when that string is not marking the end of a CDATA section. + [14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*) """ + libxml2mod.xmlParseCharData(self._o, cdata) + + def parseCharRef(self): + """parse Reference declarations [66] CharRef ::= '&#' [0-9]+ + ';' | '&#x' [0-9a-fA-F]+ ';' [ WFC: Legal Character ] + Characters referred to using character references must + match the production for Char. """ + ret = libxml2mod.xmlParseCharRef(self._o) + return ret + + def parseComment(self): + """Skip an XML (SGML) comment The spec says that + "For compatibility, the string "--" (double-hyphen) must + not occur within comments. " [15] Comment ::= '' """ + libxml2mod.xmlParseComment(self._o) + + def parseContent(self): + """Parse a content: [43] content ::= (element | CharData | + Reference | CDSect | PI | Comment)* """ + libxml2mod.xmlParseContent(self._o) + + def parseDocTypeDecl(self): + """parse a DOCTYPE declaration [28] doctypedecl ::= + '' [ VC: Root Element Type ] + The Name in the document type declaration must match the + element type of the root element. """ + libxml2mod.xmlParseDocTypeDecl(self._o) + + def parseElement(self): + """parse an XML element, this is highly recursive [39] + element ::= EmptyElemTag | STag content ETag [ WFC: + Element Type Match ] The Name in an element's end-tag must + match the element type in the start-tag. """ + libxml2mod.xmlParseElement(self._o) + + def parseElementDecl(self): + """parse an Element declaration. [45] elementdecl ::= + '' [ VC: Unique + Element Type Declaration ] No element type may be declared + more than once """ + ret = libxml2mod.xmlParseElementDecl(self._o) + return ret + + def parseEncName(self): + """parse the XML encoding name [81] EncName ::= [A-Za-z] + ([A-Za-z0-9._] | '-')* """ + ret = libxml2mod.xmlParseEncName(self._o) + return ret + + def parseEncodingDecl(self): + """parse the XML encoding declaration [80] EncodingDecl ::= S + 'encoding' Eq ('"' EncName '"' | "'" EncName "'") this + setups the conversion filters. """ + ret = libxml2mod.xmlParseEncodingDecl(self._o) + return ret + + def parseEndTag(self): + """parse an end of tag [42] ETag ::= '' With + namespace [NS 9] ETag ::= '' """ + libxml2mod.xmlParseEndTag(self._o) + + def parseEntityDecl(self): + """parse ' [72] PEDecl ::= '' + [73] EntityDef ::= EntityValue | (ExternalID NDataDecl?) + [74] PEDef ::= EntityValue | ExternalID [76] NDataDecl ::= + S 'NDATA' S Name [ VC: Notation Declared ] The Name must + match the declared name of a notation. """ + libxml2mod.xmlParseEntityDecl(self._o) + + def parseEntityRef(self): + """parse ENTITY references declarations [68] EntityRef ::= + '&' Name ';' [ WFC: Entity Declared ] In a document + without any DTD, a document with only an internal DTD + subset which contains no parameter entity references, or a + document with "standalone='yes'", the Name given in the + entity reference must match that in an entity declaration, + except that well-formed documents need not declare any of + the following entities: amp, lt, gt, apos, quot. The + declaration of a parameter entity must precede any + reference to it. Similarly, the declaration of a general + entity must precede any reference to it which appears in a + default value in an attribute-list declaration. Note that + if entities are declared in the external subset or in + external parameter entities, a non-validating processor is + not obligated to read and process their declarations; for + such documents, the rule that an entity must be declared is + a well-formedness constraint only if standalone='yes'. [ + WFC: Parsed Entity ] An entity reference must not contain + the name of an unparsed entity """ + ret = libxml2mod.xmlParseEntityRef(self._o) + if ret is None:raise parserError('xmlParseEntityRef() failed') + __tmp = xmlEntity(_obj=ret) + return __tmp + + def parseExternalSubset(self, ExternalID, SystemID): + """parse Markup declarations from an external subset [30] + extSubset ::= textDecl? extSubsetDecl [31] extSubsetDecl + ::= (markupdecl | conditionalSect | PEReference | S) * """ + libxml2mod.xmlParseExternalSubset(self._o, ExternalID, SystemID) + + def parseMarkupDecl(self): + """parse Markup declarations [29] markupdecl ::= elementdecl + | AttlistDecl | EntityDecl | NotationDecl | PI | Comment [ + VC: Proper Declaration/PE Nesting ] Parameter-entity + replacement text must be properly nested with markup + declarations. That is to say, if either the first character + or the last character of a markup declaration (markupdecl + above) is contained in the replacement text for a + parameter-entity reference, both must be contained in the + same replacement text. [ WFC: PEs in Internal Subset ] In + the internal DTD subset, parameter-entity references can + occur only where markup declarations can occur, not within + markup declarations. (This does not apply to references + that occur in external parameter entities or to the + external subset.) """ + libxml2mod.xmlParseMarkupDecl(self._o) + + def parseMisc(self): + """parse an XML Misc* optional field. [27] Misc ::= Comment | + PI | S """ + libxml2mod.xmlParseMisc(self._o) + + def parseName(self): + """parse an XML name. [4] NameChar ::= Letter | Digit | '.' | + '-' | '_' | ':' | CombiningChar | Extender [5] Name ::= + (Letter | '_' | ':') (NameChar)* [6] Names ::= Name (#x20 + Name)* """ + ret = libxml2mod.xmlParseName(self._o) + return ret + + def parseNamespace(self): + """xmlParseNamespace: parse specific PI '' + Hence there is actually 3 choices: 'PUBLIC' S PubidLiteral + 'PUBLIC' S PubidLiteral S SystemLiteral and 'SYSTEM' S + SystemLiteral See the NOTE on xmlParseExternalID(). """ + libxml2mod.xmlParseNotationDecl(self._o) + + def parsePEReference(self): + """parse PEReference declarations The entity content is + handled directly by pushing it's content as a new input + stream. [69] PEReference ::= '%' Name ';' [ WFC: No + Recursion ] A parsed entity must not contain a recursive + reference to itself, either directly or indirectly. [ WFC: + Entity Declared ] In a document without any DTD, a document + with only an internal DTD subset which contains no + parameter entity references, or a document with + "standalone='yes'", ... ... The declaration of a parameter + entity must precede any reference to it... [ VC: Entity + Declared ] In a document with an external subset or + external parameter entities with "standalone='no'", ... + ... The declaration of a parameter entity must precede any + reference to it... [ WFC: In DTD ] Parameter-entity + references may only appear in the DTD. NOTE: misleading but + this is handled. """ + libxml2mod.xmlParsePEReference(self._o) + + def parsePI(self): + """parse an XML Processing Instruction. [16] PI ::= '' Char*)))? '?>' The + processing is transfered to SAX once parsed. """ + libxml2mod.xmlParsePI(self._o) + + def parsePITarget(self): + """parse the name of a PI [17] PITarget ::= Name - (('X' | + 'x') ('M' | 'm') ('L' | 'l')) """ + ret = libxml2mod.xmlParsePITarget(self._o) + return ret + + def parsePubidLiteral(self): + """parse an XML public literal [12] PubidLiteral ::= '"' + PubidChar* '"' | "'" (PubidChar - "'")* "'" """ + ret = libxml2mod.xmlParsePubidLiteral(self._o) + return ret + + def parseQuotedString(self): + """Parse and return a string between quotes or doublequotes + TODO: Deprecated, to be removed at next drop of binary + compatibility """ + ret = libxml2mod.xmlParseQuotedString(self._o) + return ret + + def parseReference(self): + """parse and handle entity references in content, depending on + the SAX interface, this may end-up in a call to character() + if this is a CharRef, a predefined entity, if there is no + reference() callback. or if the parser was asked to switch + to that mode. [67] Reference ::= EntityRef | CharRef """ + libxml2mod.xmlParseReference(self._o) + + def parseSDDecl(self): + """parse the XML standalone declaration [32] SDDecl ::= S + 'standalone' Eq (("'" ('yes' | 'no') "'") | ('"' ('yes' | + 'no')'"')) [ VC: Standalone Document Declaration ] TODO + The standalone document declaration must have the value + "no" if any external markup declarations contain + declarations of: - attributes with default values, if + elements to which these attributes apply appear in the + document without specifications of values for these + attributes, or - entities (other than amp, lt, gt, apos, + quot), if references to those entities appear in the + document, or - attributes with values subject to + normalization, where the attribute appears in the document + with a value which will change as a result of + normalization, or - element types with element content, if + white space occurs directly within any instance of those + types. """ + ret = libxml2mod.xmlParseSDDecl(self._o) + return ret + + def parseStartTag(self): + """parse a start of tag either for rule element or + EmptyElement. In both case we don't parse the tag closing + chars. [40] STag ::= '<' Name (S Attribute)* S? '>' [ + WFC: Unique Att Spec ] No attribute name may appear more + than once in the same start-tag or empty-element tag. [44] + EmptyElemTag ::= '<' Name (S Attribute)* S? '/>' [ WFC: + Unique Att Spec ] No attribute name may appear more than + once in the same start-tag or empty-element tag. With + namespace: [NS 8] STag ::= '<' QName (S Attribute)* S? '>' + [NS 10] EmptyElement ::= '<' QName (S Attribute)* S? '/>' """ + ret = libxml2mod.xmlParseStartTag(self._o) + return ret + + def parseSystemLiteral(self): + """parse an XML Literal [11] SystemLiteral ::= ('"' [^"]* + '"') | ("'" [^']* "'") """ + ret = libxml2mod.xmlParseSystemLiteral(self._o) + return ret + + def parseTextDecl(self): + """parse an XML declaration header for external entities [77] + TextDecl ::= '' """ + libxml2mod.xmlParseTextDecl(self._o) + + def parseVersionInfo(self): + """parse the XML version. [24] VersionInfo ::= S 'version' Eq + (' VersionNum ' | " VersionNum ") [25] Eq ::= S? '=' S? """ + ret = libxml2mod.xmlParseVersionInfo(self._o) + return ret + + def parseVersionNum(self): + """parse the XML version value. [26] VersionNum ::= '1.' + [0-9]+ In practice allow [0-9].[0-9]+ at that level """ + ret = libxml2mod.xmlParseVersionNum(self._o) + return ret + + def parseXMLDecl(self): + """parse an XML declaration header [23] XMLDecl ::= '' """ + libxml2mod.xmlParseXMLDecl(self._o) + + def parserHandlePEReference(self): + """[69] PEReference ::= '%' Name ';' [ WFC: No Recursion ] A + parsed entity must not contain a recursive reference to + itself, either directly or indirectly. [ WFC: Entity + Declared ] In a document without any DTD, a document with + only an internal DTD subset which contains no parameter + entity references, or a document with "standalone='yes'", + ... ... The declaration of a parameter entity must precede + any reference to it... [ VC: Entity Declared ] In a + document with an external subset or external parameter + entities with "standalone='no'", ... ... The declaration + of a parameter entity must precede any reference to it... + [ WFC: In DTD ] Parameter-entity references may only appear + in the DTD. NOTE: misleading but this is handled. A + PEReference may have been detected in the current input + stream the handling is done accordingly to + http://www.w3.org/TR/REC-xml#entproc i.e. - Included in + literal in entity values - Included as Parameter Entity + reference within DTDs """ + libxml2mod.xmlParserHandlePEReference(self._o) + + def parserHandleReference(self): + """TODO: Remove, now deprecated ... the test is done directly + in the content parsing routines. [67] Reference ::= + EntityRef | CharRef [68] EntityRef ::= '&' Name ';' [ + WFC: Entity Declared ] the Name given in the entity + reference must match that in an entity declaration, except + that well-formed documents need not declare any of the + following entities: amp, lt, gt, apos, quot. [ WFC: Parsed + Entity ] An entity reference must not contain the name of + an unparsed entity [66] CharRef ::= '&#' [0-9]+ ';' | + '&#x' [0-9a-fA-F]+ ';' A PEReference may have been + detected in the current input stream the handling is done + accordingly to http://www.w3.org/TR/REC-xml#entproc """ + libxml2mod.xmlParserHandleReference(self._o) + + def popInput(self): + """xmlPopInput: the current input pointed by ctxt->input came + to an end pop it and return the next char. """ + ret = libxml2mod.xmlPopInput(self._o) + return ret + + def scanName(self): + """Trickery: parse an XML name but without consuming the input + flow Needed for rollback cases. Used only when parsing + entities references. TODO: seems deprecated now, only used + in the default part of xmlParserHandleReference [4] + NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | + CombiningChar | Extender [5] Name ::= (Letter | '_' | ':') + (NameChar)* [6] Names ::= Name (S Name)* """ + ret = libxml2mod.xmlScanName(self._o) + return ret + + def skipBlankChars(self): + """skip all blanks character found at that point in the input + streams. It pops up finished entities in the process if + allowable at that point. """ + ret = libxml2mod.xmlSkipBlankChars(self._o) + return ret + + def stringDecodeEntities(self, str, what, end, end2, end3): + """Takes a entity string content and process to do the + adequate substitutions. [67] Reference ::= EntityRef | + CharRef [69] PEReference ::= '%' Name ';' """ + ret = libxml2mod.xmlStringDecodeEntities(self._o, str, what, end, end2, end3) + return ret + + def stringLenDecodeEntities(self, str, len, what, end, end2, end3): + """Takes a entity string content and process to do the + adequate substitutions. [67] Reference ::= EntityRef | + CharRef [69] PEReference ::= '%' Name ';' """ + ret = libxml2mod.xmlStringLenDecodeEntities(self._o, str, len, what, end, end2, end3) + return ret + +class xmlAttr(xmlNode): + def __init__(self, _obj=None): + if type(_obj).__name__ != 'PyCObject': + raise TypeError, 'xmlAttr needs a PyCObject argument' + self._o = _obj + xmlNode.__init__(self, _obj=_obj) + + def __repr__(self): + return "" % (self.name, long(pos_id (self))) + + # + # xmlAttr functions from module debugXML + # + + def debugDumpAttr(self, output, depth): + """Dumps debug information for the attribute """ + libxml2mod.xmlDebugDumpAttr(output, self._o, depth) + + def debugDumpAttrList(self, output, depth): + """Dumps debug information for the attribute list """ + libxml2mod.xmlDebugDumpAttrList(output, self._o, depth) + + # + # xmlAttr functions from module tree + # + + def copyProp(self, target): + """Do a copy of the attribute. """ + if target is None: target__o = None + else: target__o = target._o + ret = libxml2mod.xmlCopyProp(target__o, self._o) + if ret is None:raise treeError('xmlCopyProp() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def copyPropList(self, target): + """Do a copy of an attribute list. """ + if target is None: target__o = None + else: target__o = target._o + ret = libxml2mod.xmlCopyPropList(target__o, self._o) + if ret is None:raise treeError('xmlCopyPropList() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def freeProp(self): + """Free one attribute, all the content is freed too """ + libxml2mod.xmlFreeProp(self._o) + + def freePropList(self): + """Free a property and all its siblings, all the children are + freed too. """ + libxml2mod.xmlFreePropList(self._o) + + def removeProp(self): + """Unlink and free one attribute, all the content is freed too + Note this doesn't work for namespace definition attributes """ + ret = libxml2mod.xmlRemoveProp(self._o) + return ret + + # + # xmlAttr functions from module valid + # + + def removeID(self, doc): + """Remove the given attribute from the ID table maintained + internally. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlRemoveID(doc__o, self._o) + return ret + + def removeRef(self, doc): + """Remove the given attribute from the Ref table maintained + internally. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlRemoveRef(doc__o, self._o) + return ret + +class xmlAttribute(xmlNode): + def __init__(self, _obj=None): + if type(_obj).__name__ != 'PyCObject': + raise TypeError, 'xmlAttribute needs a PyCObject argument' + self._o = _obj + xmlNode.__init__(self, _obj=_obj) + + def __repr__(self): + return "" % (self.name, long(pos_id (self))) + +class catalog: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + def __del__(self): + if self._o != None: + libxml2mod.xmlFreeCatalog(self._o) + self._o = None + + # + # catalog functions from module catalog + # + + def add(self, type, orig, replace): + """Add an entry in the catalog, it may overwrite existing but + different entries. """ + ret = libxml2mod.xmlACatalogAdd(self._o, type, orig, replace) + return ret + + def catalogIsEmpty(self): + """Check is a catalog is empty """ + ret = libxml2mod.xmlCatalogIsEmpty(self._o) + return ret + + def convertSGMLCatalog(self): + """Convert all the SGML catalog entries as XML ones """ + ret = libxml2mod.xmlConvertSGMLCatalog(self._o) + return ret + + def dump(self, out): + """Dump the given catalog to the given file. """ + libxml2mod.xmlACatalogDump(self._o, out) + + def remove(self, value): + """Remove an entry from the catalog """ + ret = libxml2mod.xmlACatalogRemove(self._o, value) + return ret + + def resolve(self, pubID, sysID): + """Do a complete resolution lookup of an External Identifier """ + ret = libxml2mod.xmlACatalogResolve(self._o, pubID, sysID) + return ret + + def resolvePublic(self, pubID): + """Try to lookup the catalog local reference associated to a + public ID in that catalog """ + ret = libxml2mod.xmlACatalogResolvePublic(self._o, pubID) + return ret + + def resolveSystem(self, sysID): + """Try to lookup the catalog resource for a system ID """ + ret = libxml2mod.xmlACatalogResolveSystem(self._o, sysID) + return ret + + def resolveURI(self, URI): + """Do a complete resolution lookup of an URI """ + ret = libxml2mod.xmlACatalogResolveURI(self._o, URI) + return ret + +class xmlDtd(xmlNode): + def __init__(self, _obj=None): + if type(_obj).__name__ != 'PyCObject': + raise TypeError, 'xmlDtd needs a PyCObject argument' + self._o = _obj + xmlNode.__init__(self, _obj=_obj) + + def __repr__(self): + return "" % (self.name, long(pos_id (self))) + + # + # xmlDtd functions from module debugXML + # + + def debugDumpDTD(self, output): + """Dumps debug information for the DTD """ + libxml2mod.xmlDebugDumpDTD(output, self._o) + + # + # xmlDtd functions from module tree + # + + def copyDtd(self): + """Do a copy of the dtd. """ + ret = libxml2mod.xmlCopyDtd(self._o) + if ret is None:raise treeError('xmlCopyDtd() failed') + __tmp = xmlDtd(_obj=ret) + return __tmp + + def freeDtd(self): + """Free a DTD structure. """ + libxml2mod.xmlFreeDtd(self._o) + + # + # xmlDtd functions from module valid + # + + def dtdAttrDesc(self, elem, name): + """Search the DTD for the description of this attribute on + this element. """ + ret = libxml2mod.xmlGetDtdAttrDesc(self._o, elem, name) + if ret is None:raise treeError('xmlGetDtdAttrDesc() failed') + __tmp = xmlAttribute(_obj=ret) + return __tmp + + def dtdElementDesc(self, name): + """Search the DTD for the description of this element """ + ret = libxml2mod.xmlGetDtdElementDesc(self._o, name) + if ret is None:raise treeError('xmlGetDtdElementDesc() failed') + __tmp = xmlElement(_obj=ret) + return __tmp + + def dtdQAttrDesc(self, elem, name, prefix): + """Search the DTD for the description of this qualified + attribute on this element. """ + ret = libxml2mod.xmlGetDtdQAttrDesc(self._o, elem, name, prefix) + if ret is None:raise treeError('xmlGetDtdQAttrDesc() failed') + __tmp = xmlAttribute(_obj=ret) + return __tmp + + def dtdQElementDesc(self, name, prefix): + """Search the DTD for the description of this element """ + ret = libxml2mod.xmlGetDtdQElementDesc(self._o, name, prefix) + if ret is None:raise treeError('xmlGetDtdQElementDesc() failed') + __tmp = xmlElement(_obj=ret) + return __tmp + +class xmlElement(xmlNode): + def __init__(self, _obj=None): + if type(_obj).__name__ != 'PyCObject': + raise TypeError, 'xmlElement needs a PyCObject argument' + self._o = _obj + xmlNode.__init__(self, _obj=_obj) + + def __repr__(self): + return "" % (self.name, long(pos_id (self))) + +class xmlEntity(xmlNode): + def __init__(self, _obj=None): + if type(_obj).__name__ != 'PyCObject': + raise TypeError, 'xmlEntity needs a PyCObject argument' + self._o = _obj + xmlNode.__init__(self, _obj=_obj) + + def __repr__(self): + return "" % (self.name, long(pos_id (self))) + + # + # xmlEntity functions from module parserInternals + # + + def handleEntity(self, ctxt): + """Default handling of defined entities, when should we define + a new input stream ? When do we just handle that as a set + of chars ? OBSOLETE: to be removed at some point. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + libxml2mod.xmlHandleEntity(ctxt__o, self._o) + +class Error: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + # accessors for Error + def code(self): + """The error code, e.g. an xmlParserError """ + ret = libxml2mod.xmlErrorGetCode(self._o) + return ret + + def domain(self): + """What part of the library raised this error """ + ret = libxml2mod.xmlErrorGetDomain(self._o) + return ret + + def file(self): + """the filename """ + ret = libxml2mod.xmlErrorGetFile(self._o) + return ret + + def level(self): + """how consequent is the error """ + ret = libxml2mod.xmlErrorGetLevel(self._o) + return ret + + def line(self): + """the line number if available """ + ret = libxml2mod.xmlErrorGetLine(self._o) + return ret + + def message(self): + """human-readable informative error message """ + ret = libxml2mod.xmlErrorGetMessage(self._o) + return ret + + # + # Error functions from module xmlerror + # + + def copyError(self, to): + """Save the original error to the new place. """ + if to is None: to__o = None + else: to__o = to._o + ret = libxml2mod.xmlCopyError(self._o, to__o) + return ret + + def resetError(self): + """Cleanup the error. """ + libxml2mod.xmlResetError(self._o) + +class xmlNs(xmlNode): + def __init__(self, _obj=None): + if type(_obj).__name__ != 'PyCObject': + raise TypeError, 'xmlNs needs a PyCObject argument' + self._o = _obj + xmlNode.__init__(self, _obj=_obj) + + def __repr__(self): + return "" % (self.name, long(pos_id (self))) + + # + # xmlNs functions from module tree + # + + def copyNamespace(self): + """Do a copy of the namespace. """ + ret = libxml2mod.xmlCopyNamespace(self._o) + if ret is None:raise treeError('xmlCopyNamespace() failed') + __tmp = xmlNs(_obj=ret) + return __tmp + + def copyNamespaceList(self): + """Do a copy of an namespace list. """ + ret = libxml2mod.xmlCopyNamespaceList(self._o) + if ret is None:raise treeError('xmlCopyNamespaceList() failed') + __tmp = xmlNs(_obj=ret) + return __tmp + + def freeNs(self): + """Free up the structures associated to a namespace """ + libxml2mod.xmlFreeNs(self._o) + + def freeNsList(self): + """Free up all the structures associated to the chained + namespaces. """ + libxml2mod.xmlFreeNsList(self._o) + + def newChild(self, parent, name, content): + """Creation of a new child element, added at the end of + @parent children list. @ns and @content parameters are + optional (None). If @ns is None, the newly created element + inherits the namespace of @parent. If @content is non None, + a child list containing the TEXTs and ENTITY_REFs node will + be created. NOTE: @content is supposed to be a piece of XML + CDATA, so it allows entity references. XML special chars + must be escaped first by using + xmlEncodeEntitiesReentrant(), or xmlNewTextChild() should + be used. """ + if parent is None: parent__o = None + else: parent__o = parent._o + ret = libxml2mod.xmlNewChild(parent__o, self._o, name, content) + if ret is None:raise treeError('xmlNewChild() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocNode(self, doc, name, content): + """Creation of a new node element within a document. @ns and + @content are optional (None). NOTE: @content is supposed to + be a piece of XML CDATA, so it allow entities references, + but XML special chars need to be escaped first by using + xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you + don't need entities support. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlNewDocNode(doc__o, self._o, name, content) + if ret is None:raise treeError('xmlNewDocNode() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocNodeEatName(self, doc, name, content): + """Creation of a new node element within a document. @ns and + @content are optional (None). NOTE: @content is supposed to + be a piece of XML CDATA, so it allow entities references, + but XML special chars need to be escaped first by using + xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you + don't need entities support. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlNewDocNodeEatName(doc__o, self._o, name, content) + if ret is None:raise treeError('xmlNewDocNodeEatName() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocRawNode(self, doc, name, content): + """Creation of a new node element within a document. @ns and + @content are optional (None). """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlNewDocRawNode(doc__o, self._o, name, content) + if ret is None:raise treeError('xmlNewDocRawNode() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newNodeEatName(self, name): + """Creation of a new node element. @ns is optional (None). """ + ret = libxml2mod.xmlNewNodeEatName(self._o, name) + if ret is None:raise treeError('xmlNewNodeEatName() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newNsProp(self, node, name, value): + """Create a new property tagged with a namespace and carried + by a node. """ + if node is None: node__o = None + else: node__o = node._o + ret = libxml2mod.xmlNewNsProp(node__o, self._o, name, value) + if ret is None:raise treeError('xmlNewNsProp() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def newNsPropEatName(self, node, name, value): + """Create a new property tagged with a namespace and carried + by a node. """ + if node is None: node__o = None + else: node__o = node._o + ret = libxml2mod.xmlNewNsPropEatName(node__o, self._o, name, value) + if ret is None:raise treeError('xmlNewNsPropEatName() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def newTextChild(self, parent, name, content): + """Creation of a new child element, added at the end of + @parent children list. @ns and @content parameters are + optional (None). If @ns is None, the newly created element + inherits the namespace of @parent. If @content is non None, + a child TEXT node will be created containing the string + @content. NOTE: Use xmlNewChild() if @content will contain + entities that need to be preserved. Use this function, + xmlNewTextChild(), if you need to ensure that reserved XML + chars that might appear in @content, such as the ampersand, + greater-than or less-than signs, are automatically replaced + by their XML escaped entity representations. """ + if parent is None: parent__o = None + else: parent__o = parent._o + ret = libxml2mod.xmlNewTextChild(parent__o, self._o, name, content) + if ret is None:raise treeError('xmlNewTextChild() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def setNs(self, node): + """Associate a namespace to a node, a posteriori. """ + if node is None: node__o = None + else: node__o = node._o + libxml2mod.xmlSetNs(node__o, self._o) + + def setNsProp(self, node, name, value): + """Set (or reset) an attribute carried by a node. The ns + structure must be in scope, this is not checked """ + if node is None: node__o = None + else: node__o = node._o + ret = libxml2mod.xmlSetNsProp(node__o, self._o, name, value) + if ret is None:raise treeError('xmlSetNsProp() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def unsetNsProp(self, node, name): + """Remove an attribute carried by a node. """ + if node is None: node__o = None + else: node__o = node._o + ret = libxml2mod.xmlUnsetNsProp(node__o, self._o, name) + return ret + + # + # xmlNs functions from module xpathInternals + # + + def xpathNodeSetFreeNs(self): + """Namespace nodes in libxml don't match the XPath semantic. + In a node set the namespace nodes are duplicated and the + next pointer is set to the parent node in the XPath + semantic. Check if such a node needs to be freed """ + libxml2mod.xmlXPathNodeSetFreeNs(self._o) + +class outputBuffer(ioWriteWrapper): + def __init__(self, _obj=None): + self._o = _obj + ioWriteWrapper.__init__(self, _obj=_obj) + + # + # outputBuffer functions from module HTMLtree + # + + def htmlDocContentDumpFormatOutput(self, cur, encoding, format): + """Dump an HTML document. """ + if cur is None: cur__o = None + else: cur__o = cur._o + libxml2mod.htmlDocContentDumpFormatOutput(self._o, cur__o, encoding, format) + + def htmlDocContentDumpOutput(self, cur, encoding): + """Dump an HTML document. Formating return/spaces are added. """ + if cur is None: cur__o = None + else: cur__o = cur._o + libxml2mod.htmlDocContentDumpOutput(self._o, cur__o, encoding) + + def htmlNodeDumpFormatOutput(self, doc, cur, encoding, format): + """Dump an HTML node, recursive behaviour,children are printed + too. """ + if doc is None: doc__o = None + else: doc__o = doc._o + if cur is None: cur__o = None + else: cur__o = cur._o + libxml2mod.htmlNodeDumpFormatOutput(self._o, doc__o, cur__o, encoding, format) + + def htmlNodeDumpOutput(self, doc, cur, encoding): + """Dump an HTML node, recursive behaviour,children are printed + too, and formatting returns/spaces are added. """ + if doc is None: doc__o = None + else: doc__o = doc._o + if cur is None: cur__o = None + else: cur__o = cur._o + libxml2mod.htmlNodeDumpOutput(self._o, doc__o, cur__o, encoding) + + # + # outputBuffer functions from module tree + # + + def nodeDumpOutput(self, doc, cur, level, format, encoding): + """Dump an XML node, recursive behaviour, children are printed + too. Note that @format = 1 provide node indenting only if + xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was + called """ + if doc is None: doc__o = None + else: doc__o = doc._o + if cur is None: cur__o = None + else: cur__o = cur._o + libxml2mod.xmlNodeDumpOutput(self._o, doc__o, cur__o, level, format, encoding) + + def saveFileTo(self, cur, encoding): + """Dump an XML document to an I/O buffer. Warning ! This call + xmlOutputBufferClose() on buf which is not available after + this call. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlSaveFileTo(self._o, cur__o, encoding) + return ret + + def saveFormatFileTo(self, cur, encoding, format): + """Dump an XML document to an I/O buffer. Warning ! This call + xmlOutputBufferClose() on buf which is not available after + this call. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlSaveFormatFileTo(self._o, cur__o, encoding, format) + return ret + + # + # outputBuffer functions from module xmlIO + # + + def getContent(self): + """Gives a pointer to the data currently held in the output + buffer """ + ret = libxml2mod.xmlOutputBufferGetContent(self._o) + return ret + + def write(self, len, buf): + """Write the content of the array in the output I/O buffer + This routine handle the I18N transcoding from internal + UTF-8 The buffer is lossless, i.e. will store in case of + partial or delayed writes. """ + ret = libxml2mod.xmlOutputBufferWrite(self._o, len, buf) + return ret + + def writeString(self, str): + """Write the content of the string in the output I/O buffer + This routine handle the I18N transcoding from internal + UTF-8 The buffer is lossless, i.e. will store in case of + partial or delayed writes. """ + ret = libxml2mod.xmlOutputBufferWriteString(self._o, str) + return ret + +class inputBuffer(ioReadWrapper): + def __init__(self, _obj=None): + self._o = _obj + ioReadWrapper.__init__(self, _obj=_obj) + + def __del__(self): + if self._o != None: + libxml2mod.xmlFreeParserInputBuffer(self._o) + self._o = None + + # + # inputBuffer functions from module xmlIO + # + + def grow(self, len): + """Grow up the content of the input buffer, the old data are + preserved This routine handle the I18N transcoding to + internal UTF-8 This routine is used when operating the + parser in normal (pull) mode TODO: one should be able to + remove one extra copy by copying directly onto in->buffer + or in->raw """ + ret = libxml2mod.xmlParserInputBufferGrow(self._o, len) + return ret + + def push(self, len, buf): + """Push the content of the arry in the input buffer This + routine handle the I18N transcoding to internal UTF-8 This + is used when operating the parser in progressive (push) + mode. """ + ret = libxml2mod.xmlParserInputBufferPush(self._o, len, buf) + return ret + + def read(self, len): + """Refresh the content of the input buffer, the old data are + considered consumed This routine handle the I18N + transcoding to internal UTF-8 """ + ret = libxml2mod.xmlParserInputBufferRead(self._o, len) + return ret + + # + # inputBuffer functions from module xmlreader + # + + def Setup(self, reader, URL, encoding, options): + """Setup an XML reader with new options """ + if reader is None: reader__o = None + else: reader__o = reader._o + ret = libxml2mod.xmlTextReaderSetup(reader__o, self._o, URL, encoding, options) + return ret + + def newTextReader(self, URI): + """Create an xmlTextReader structure fed with @input """ + ret = libxml2mod.xmlNewTextReader(self._o, URI) + if ret is None:raise treeError('xmlNewTextReader() failed') + __tmp = xmlTextReader(_obj=ret) + __tmp.input = self + return __tmp + +class xmlReg: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + def __del__(self): + if self._o != None: + libxml2mod.xmlRegFreeRegexp(self._o) + self._o = None + + # + # xmlReg functions from module xmlregexp + # + + def regexpExec(self, content): + """Check if the regular expression generates the value """ + ret = libxml2mod.xmlRegexpExec(self._o, content) + return ret + + def regexpIsDeterminist(self): + """Check if the regular expression is determinist """ + ret = libxml2mod.xmlRegexpIsDeterminist(self._o) + return ret + + def regexpPrint(self, output): + """Print the content of the compiled regular expression """ + libxml2mod.xmlRegexpPrint(output, self._o) + +class relaxNgParserCtxt: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + def __del__(self): + if self._o != None: + libxml2mod.xmlRelaxNGFreeParserCtxt(self._o) + self._o = None + + # + # relaxNgParserCtxt functions from module relaxng + # + + def relaxNGParse(self): + """parse a schema definition resource and build an internal + XML Shema struture which can be used to validate instances. """ + ret = libxml2mod.xmlRelaxNGParse(self._o) + if ret is None:raise parserError('xmlRelaxNGParse() failed') + __tmp = relaxNgSchema(_obj=ret) + return __tmp + + def relaxParserSetFlag(self, flags): + """Semi private function used to pass informations to a parser + context which are a combination of xmlRelaxNGParserFlag . """ + ret = libxml2mod.xmlRelaxParserSetFlag(self._o, flags) + return ret + +class relaxNgSchema: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + def __del__(self): + if self._o != None: + libxml2mod.xmlRelaxNGFree(self._o) + self._o = None + + # + # relaxNgSchema functions from module relaxng + # + + def relaxNGDump(self, output): + """Dump a RelaxNG structure back """ + libxml2mod.xmlRelaxNGDump(output, self._o) + + def relaxNGDumpTree(self, output): + """Dump the transformed RelaxNG tree. """ + libxml2mod.xmlRelaxNGDumpTree(output, self._o) + + def relaxNGNewValidCtxt(self): + """Create an XML RelaxNGs validation context based on the + given schema """ + ret = libxml2mod.xmlRelaxNGNewValidCtxt(self._o) + if ret is None:raise treeError('xmlRelaxNGNewValidCtxt() failed') + __tmp = relaxNgValidCtxt(_obj=ret) + __tmp.schema = self + return __tmp + + # + # relaxNgSchema functions from module xmlreader + # + + def RelaxNGSetSchema(self, reader): + """Use RelaxNG to validate the document as it is processed. + Activation is only possible before the first Read(). if + @schema is None, then RelaxNG validation is desactivated. @ + The @schema should not be freed until the reader is + deallocated or its use has been deactivated. """ + if reader is None: reader__o = None + else: reader__o = reader._o + ret = libxml2mod.xmlTextReaderRelaxNGSetSchema(reader__o, self._o) + return ret + +class relaxNgValidCtxt(relaxNgValidCtxtCore): + def __init__(self, _obj=None): + self.schema = None + self._o = _obj + relaxNgValidCtxtCore.__init__(self, _obj=_obj) + + def __del__(self): + if self._o != None: + libxml2mod.xmlRelaxNGFreeValidCtxt(self._o) + self._o = None + + # + # relaxNgValidCtxt functions from module relaxng + # + + def relaxNGValidateDoc(self, doc): + """Validate a document tree in memory. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlRelaxNGValidateDoc(self._o, doc__o) + return ret + + def relaxNGValidateFullElement(self, doc, elem): + """Validate a full subtree when + xmlRelaxNGValidatePushElement() returned 0 and the content + of the node has been expanded. """ + if doc is None: doc__o = None + else: doc__o = doc._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlRelaxNGValidateFullElement(self._o, doc__o, elem__o) + return ret + + def relaxNGValidatePopElement(self, doc, elem): + """Pop the element end from the RelaxNG validation stack. """ + if doc is None: doc__o = None + else: doc__o = doc._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlRelaxNGValidatePopElement(self._o, doc__o, elem__o) + return ret + + def relaxNGValidatePushCData(self, data, len): + """check the CData parsed for validation in the current stack """ + ret = libxml2mod.xmlRelaxNGValidatePushCData(self._o, data, len) + return ret + + def relaxNGValidatePushElement(self, doc, elem): + """Push a new element start on the RelaxNG validation stack. """ + if doc is None: doc__o = None + else: doc__o = doc._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlRelaxNGValidatePushElement(self._o, doc__o, elem__o) + return ret + + # + # relaxNgValidCtxt functions from module xmlreader + # + + def RelaxNGValidateCtxt(self, reader, options): + """Use RelaxNG schema context to validate the document as it + is processed. Activation is only possible before the first + Read(). If @ctxt is None, then RelaxNG schema validation is + deactivated. """ + if reader is None: reader__o = None + else: reader__o = reader._o + ret = libxml2mod.xmlTextReaderRelaxNGValidateCtxt(reader__o, self._o, options) + return ret + +class SchemaParserCtxt: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + def __del__(self): + if self._o != None: + libxml2mod.xmlSchemaFreeParserCtxt(self._o) + self._o = None + + # + # SchemaParserCtxt functions from module xmlschemas + # + + def schemaParse(self): + """parse a schema definition resource and build an internal + XML Shema struture which can be used to validate instances. """ + ret = libxml2mod.xmlSchemaParse(self._o) + if ret is None:raise parserError('xmlSchemaParse() failed') + __tmp = Schema(_obj=ret) + return __tmp + +class Schema: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + def __del__(self): + if self._o != None: + libxml2mod.xmlSchemaFree(self._o) + self._o = None + + # + # Schema functions from module xmlreader + # + + def SetSchema(self, reader): + """Use XSD Schema to validate the document as it is processed. + Activation is only possible before the first Read(). if + @schema is None, then Schema validation is desactivated. @ + The @schema should not be freed until the reader is + deallocated or its use has been deactivated. """ + if reader is None: reader__o = None + else: reader__o = reader._o + ret = libxml2mod.xmlTextReaderSetSchema(reader__o, self._o) + return ret + + # + # Schema functions from module xmlschemas + # + + def schemaDump(self, output): + """Dump a Schema structure. """ + libxml2mod.xmlSchemaDump(output, self._o) + + def schemaNewValidCtxt(self): + """Create an XML Schemas validation context based on the given + schema. """ + ret = libxml2mod.xmlSchemaNewValidCtxt(self._o) + if ret is None:raise treeError('xmlSchemaNewValidCtxt() failed') + __tmp = SchemaValidCtxt(_obj=ret) + __tmp.schema = self + return __tmp + +class SchemaValidCtxt(SchemaValidCtxtCore): + def __init__(self, _obj=None): + self.schema = None + self._o = _obj + SchemaValidCtxtCore.__init__(self, _obj=_obj) + + def __del__(self): + if self._o != None: + libxml2mod.xmlSchemaFreeValidCtxt(self._o) + self._o = None + + # + # SchemaValidCtxt functions from module xmlreader + # + + def SchemaValidateCtxt(self, reader, options): + """Use W3C XSD schema context to validate the document as it + is processed. Activation is only possible before the first + Read(). If @ctxt is None, then XML Schema validation is + deactivated. """ + if reader is None: reader__o = None + else: reader__o = reader._o + ret = libxml2mod.xmlTextReaderSchemaValidateCtxt(reader__o, self._o, options) + return ret + + # + # SchemaValidCtxt functions from module xmlschemas + # + + def schemaIsValid(self): + """Check if any error was detected during validation. """ + ret = libxml2mod.xmlSchemaIsValid(self._o) + return ret + + def schemaSetValidOptions(self, options): + """Sets the options to be used during the validation. """ + ret = libxml2mod.xmlSchemaSetValidOptions(self._o, options) + return ret + + def schemaValidCtxtGetOptions(self): + """Get the validation context options. """ + ret = libxml2mod.xmlSchemaValidCtxtGetOptions(self._o) + return ret + + def schemaValidCtxtGetParserCtxt(self): + """allow access to the parser context of the schema validation + context """ + ret = libxml2mod.xmlSchemaValidCtxtGetParserCtxt(self._o) + if ret is None:raise parserError('xmlSchemaValidCtxtGetParserCtxt() failed') + __tmp = parserCtxt(_obj=ret) + return __tmp + + def schemaValidateDoc(self, doc): + """Validate a document tree in memory. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlSchemaValidateDoc(self._o, doc__o) + return ret + + def schemaValidateFile(self, filename, options): + """Do a schemas validation of the given resource, it will use + the SAX streamable validation internally. """ + ret = libxml2mod.xmlSchemaValidateFile(self._o, filename, options) + return ret + + def schemaValidateOneElement(self, elem): + """Validate a branch of a tree, starting with the given @elem. """ + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlSchemaValidateOneElement(self._o, elem__o) + return ret + + def schemaValidateSetFilename(self, filename): + """Workaround to provide file error reporting information when + this is not provided by current APIs """ + libxml2mod.xmlSchemaValidateSetFilename(self._o, filename) + +class xmlTextReaderLocator: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + # + # xmlTextReaderLocator functions from module xmlreader + # + + def BaseURI(self): + """Obtain the base URI for the given locator. """ + ret = libxml2mod.xmlTextReaderLocatorBaseURI(self._o) + return ret + + def LineNumber(self): + """Obtain the line number for the given locator. """ + ret = libxml2mod.xmlTextReaderLocatorLineNumber(self._o) + return ret + +class xmlTextReader(xmlTextReaderCore): + def __init__(self, _obj=None): + self.input = None + self._o = _obj + xmlTextReaderCore.__init__(self, _obj=_obj) + + def __del__(self): + if self._o != None: + libxml2mod.xmlFreeTextReader(self._o) + self._o = None + + # + # xmlTextReader functions from module xmlreader + # + + def AttributeCount(self): + """Provides the number of attributes of the current node """ + ret = libxml2mod.xmlTextReaderAttributeCount(self._o) + return ret + + def BaseUri(self): + """The base URI of the node. """ + ret = libxml2mod.xmlTextReaderConstBaseUri(self._o) + return ret + + def ByteConsumed(self): + """This function provides the current index of the parser used + by the reader, relative to the start of the current entity. + This function actually just wraps a call to + xmlBytesConsumed() for the parser context associated with + the reader. See xmlBytesConsumed() for more information. """ + ret = libxml2mod.xmlTextReaderByteConsumed(self._o) + return ret + + def Close(self): + """This method releases any resources allocated by the current + instance changes the state to Closed and close any + underlying input. """ + ret = libxml2mod.xmlTextReaderClose(self._o) + return ret + + def CurrentDoc(self): + """Hacking interface allowing to get the xmlDocPtr + correponding to the current document being accessed by the + xmlTextReader. NOTE: as a result of this call, the reader + will not destroy the associated XML document and calling + xmlFreeDoc() on the result is needed once the reader + parsing has finished. """ + ret = libxml2mod.xmlTextReaderCurrentDoc(self._o) + if ret is None:raise treeError('xmlTextReaderCurrentDoc() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def CurrentNode(self): + """Hacking interface allowing to get the xmlNodePtr + correponding to the current node being accessed by the + xmlTextReader. This is dangerous because the underlying + node may be destroyed on the next Reads. """ + ret = libxml2mod.xmlTextReaderCurrentNode(self._o) + if ret is None:raise treeError('xmlTextReaderCurrentNode() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def Depth(self): + """The depth of the node in the tree. """ + ret = libxml2mod.xmlTextReaderDepth(self._o) + return ret + + def Encoding(self): + """Determine the encoding of the document being read. """ + ret = libxml2mod.xmlTextReaderConstEncoding(self._o) + return ret + + def Expand(self): + """Reads the contents of the current node and the full + subtree. It then makes the subtree available until the next + xmlTextReaderRead() call """ + ret = libxml2mod.xmlTextReaderExpand(self._o) + if ret is None:raise treeError('xmlTextReaderExpand() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def GetAttribute(self, name): + """Provides the value of the attribute with the specified + qualified name. """ + ret = libxml2mod.xmlTextReaderGetAttribute(self._o, name) + return ret + + def GetAttributeNo(self, no): + """Provides the value of the attribute with the specified + index relative to the containing element. """ + ret = libxml2mod.xmlTextReaderGetAttributeNo(self._o, no) + return ret + + def GetAttributeNs(self, localName, namespaceURI): + """Provides the value of the specified attribute """ + ret = libxml2mod.xmlTextReaderGetAttributeNs(self._o, localName, namespaceURI) + return ret + + def GetParserColumnNumber(self): + """Provide the column number of the current parsing point. """ + ret = libxml2mod.xmlTextReaderGetParserColumnNumber(self._o) + return ret + + def GetParserLineNumber(self): + """Provide the line number of the current parsing point. """ + ret = libxml2mod.xmlTextReaderGetParserLineNumber(self._o) + return ret + + def GetParserProp(self, prop): + """Read the parser internal property. """ + ret = libxml2mod.xmlTextReaderGetParserProp(self._o, prop) + return ret + + def GetRemainder(self): + """Method to get the remainder of the buffered XML. this + method stops the parser, set its state to End Of File and + return the input stream with what is left that the parser + did not use. The implementation is not good, the parser + certainly procgressed past what's left in reader->input, + and there is an allocation problem. Best would be to + rewrite it differently. """ + ret = libxml2mod.xmlTextReaderGetRemainder(self._o) + if ret is None:raise treeError('xmlTextReaderGetRemainder() failed') + __tmp = inputBuffer(_obj=ret) + return __tmp + + def HasAttributes(self): + """Whether the node has attributes. """ + ret = libxml2mod.xmlTextReaderHasAttributes(self._o) + return ret + + def HasValue(self): + """Whether the node can have a text value. """ + ret = libxml2mod.xmlTextReaderHasValue(self._o) + return ret + + def IsDefault(self): + """Whether an Attribute node was generated from the default + value defined in the DTD or schema. """ + ret = libxml2mod.xmlTextReaderIsDefault(self._o) + return ret + + def IsEmptyElement(self): + """Check if the current node is empty """ + ret = libxml2mod.xmlTextReaderIsEmptyElement(self._o) + return ret + + def IsNamespaceDecl(self): + """Determine whether the current node is a namespace + declaration rather than a regular attribute. """ + ret = libxml2mod.xmlTextReaderIsNamespaceDecl(self._o) + return ret + + def IsValid(self): + """Retrieve the validity status from the parser context """ + ret = libxml2mod.xmlTextReaderIsValid(self._o) + return ret + + def LocalName(self): + """The local name of the node. """ + ret = libxml2mod.xmlTextReaderConstLocalName(self._o) + return ret + + def LookupNamespace(self, prefix): + """Resolves a namespace prefix in the scope of the current + element. """ + ret = libxml2mod.xmlTextReaderLookupNamespace(self._o, prefix) + return ret + + def MoveToAttribute(self, name): + """Moves the position of the current instance to the attribute + with the specified qualified name. """ + ret = libxml2mod.xmlTextReaderMoveToAttribute(self._o, name) + return ret + + def MoveToAttributeNo(self, no): + """Moves the position of the current instance to the attribute + with the specified index relative to the containing element. """ + ret = libxml2mod.xmlTextReaderMoveToAttributeNo(self._o, no) + return ret + + def MoveToAttributeNs(self, localName, namespaceURI): + """Moves the position of the current instance to the attribute + with the specified local name and namespace URI. """ + ret = libxml2mod.xmlTextReaderMoveToAttributeNs(self._o, localName, namespaceURI) + return ret + + def MoveToElement(self): + """Moves the position of the current instance to the node that + contains the current Attribute node. """ + ret = libxml2mod.xmlTextReaderMoveToElement(self._o) + return ret + + def MoveToFirstAttribute(self): + """Moves the position of the current instance to the first + attribute associated with the current node. """ + ret = libxml2mod.xmlTextReaderMoveToFirstAttribute(self._o) + return ret + + def MoveToNextAttribute(self): + """Moves the position of the current instance to the next + attribute associated with the current node. """ + ret = libxml2mod.xmlTextReaderMoveToNextAttribute(self._o) + return ret + + def Name(self): + """The qualified name of the node, equal to Prefix :LocalName. """ + ret = libxml2mod.xmlTextReaderConstName(self._o) + return ret + + def NamespaceUri(self): + """The URI defining the namespace associated with the node. """ + ret = libxml2mod.xmlTextReaderConstNamespaceUri(self._o) + return ret + + def NewDoc(self, cur, URL, encoding, options): + """Setup an xmltextReader to parse an XML in-memory document. + The parsing flags @options are a combination of + xmlParserOption. This reuses the existing @reader + xmlTextReader. """ + ret = libxml2mod.xmlReaderNewDoc(self._o, cur, URL, encoding, options) + return ret + + def NewFd(self, fd, URL, encoding, options): + """Setup an xmltextReader to parse an XML from a file + descriptor. NOTE that the file descriptor will not be + closed when the reader is closed or reset. The parsing + flags @options are a combination of xmlParserOption. This + reuses the existing @reader xmlTextReader. """ + ret = libxml2mod.xmlReaderNewFd(self._o, fd, URL, encoding, options) + return ret + + def NewFile(self, filename, encoding, options): + """parse an XML file from the filesystem or the network. The + parsing flags @options are a combination of + xmlParserOption. This reuses the existing @reader + xmlTextReader. """ + ret = libxml2mod.xmlReaderNewFile(self._o, filename, encoding, options) + return ret + + def NewMemory(self, buffer, size, URL, encoding, options): + """Setup an xmltextReader to parse an XML in-memory document. + The parsing flags @options are a combination of + xmlParserOption. This reuses the existing @reader + xmlTextReader. """ + ret = libxml2mod.xmlReaderNewMemory(self._o, buffer, size, URL, encoding, options) + return ret + + def NewWalker(self, doc): + """Setup an xmltextReader to parse a preparsed XML document. + This reuses the existing @reader xmlTextReader. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlReaderNewWalker(self._o, doc__o) + return ret + + def Next(self): + """Skip to the node following the current one in document + order while avoiding the subtree if any. """ + ret = libxml2mod.xmlTextReaderNext(self._o) + return ret + + def NextSibling(self): + """Skip to the node following the current one in document + order while avoiding the subtree if any. Currently + implemented only for Readers built on a document """ + ret = libxml2mod.xmlTextReaderNextSibling(self._o) + return ret + + def NodeType(self): + """Get the node type of the current node Reference: + http://www.gnu.org/software/dotgnu/pnetlib-doc/System/Xml/Xm + lNodeType.html """ + ret = libxml2mod.xmlTextReaderNodeType(self._o) + return ret + + def Normalization(self): + """The value indicating whether to normalize white space and + attribute values. Since attribute value and end of line + normalizations are a MUST in the XML specification only the + value true is accepted. The broken bahaviour of accepting + out of range character entities like � is of course not + supported either. """ + ret = libxml2mod.xmlTextReaderNormalization(self._o) + return ret + + def Prefix(self): + """A shorthand reference to the namespace associated with the + node. """ + ret = libxml2mod.xmlTextReaderConstPrefix(self._o) + return ret + + def Preserve(self): + """This tells the XML Reader to preserve the current node. The + caller must also use xmlTextReaderCurrentDoc() to keep an + handle on the resulting document once parsing has finished """ + ret = libxml2mod.xmlTextReaderPreserve(self._o) + if ret is None:raise treeError('xmlTextReaderPreserve() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def QuoteChar(self): + """The quotation mark character used to enclose the value of + an attribute. """ + ret = libxml2mod.xmlTextReaderQuoteChar(self._o) + return ret + + def Read(self): + """Moves the position of the current instance to the next node + in the stream, exposing its properties. """ + ret = libxml2mod.xmlTextReaderRead(self._o) + return ret + + def ReadAttributeValue(self): + """Parses an attribute value into one or more Text and + EntityReference nodes. """ + ret = libxml2mod.xmlTextReaderReadAttributeValue(self._o) + return ret + + def ReadInnerXml(self): + """Reads the contents of the current node, including child + nodes and markup. """ + ret = libxml2mod.xmlTextReaderReadInnerXml(self._o) + return ret + + def ReadOuterXml(self): + """Reads the contents of the current node, including child + nodes and markup. """ + ret = libxml2mod.xmlTextReaderReadOuterXml(self._o) + return ret + + def ReadState(self): + """Gets the read state of the reader. """ + ret = libxml2mod.xmlTextReaderReadState(self._o) + return ret + + def ReadString(self): + """Reads the contents of an element or a text node as a string. """ + ret = libxml2mod.xmlTextReaderReadString(self._o) + return ret + + def RelaxNGSetSchema(self, schema): + """Use RelaxNG to validate the document as it is processed. + Activation is only possible before the first Read(). if + @schema is None, then RelaxNG validation is desactivated. @ + The @schema should not be freed until the reader is + deallocated or its use has been deactivated. """ + if schema is None: schema__o = None + else: schema__o = schema._o + ret = libxml2mod.xmlTextReaderRelaxNGSetSchema(self._o, schema__o) + return ret + + def RelaxNGValidate(self, rng): + """Use RelaxNG schema to validate the document as it is + processed. Activation is only possible before the first + Read(). If @rng is None, then RelaxNG schema validation is + deactivated. """ + ret = libxml2mod.xmlTextReaderRelaxNGValidate(self._o, rng) + return ret + + def RelaxNGValidateCtxt(self, ctxt, options): + """Use RelaxNG schema context to validate the document as it + is processed. Activation is only possible before the first + Read(). If @ctxt is None, then RelaxNG schema validation is + deactivated. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlTextReaderRelaxNGValidateCtxt(self._o, ctxt__o, options) + return ret + + def SchemaValidate(self, xsd): + """Use W3C XSD schema to validate the document as it is + processed. Activation is only possible before the first + Read(). If @xsd is None, then XML Schema validation is + deactivated. """ + ret = libxml2mod.xmlTextReaderSchemaValidate(self._o, xsd) + return ret + + def SchemaValidateCtxt(self, ctxt, options): + """Use W3C XSD schema context to validate the document as it + is processed. Activation is only possible before the first + Read(). If @ctxt is None, then XML Schema validation is + deactivated. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlTextReaderSchemaValidateCtxt(self._o, ctxt__o, options) + return ret + + def SetParserProp(self, prop, value): + """Change the parser processing behaviour by changing some of + its internal properties. Note that some properties can only + be changed before any read has been done. """ + ret = libxml2mod.xmlTextReaderSetParserProp(self._o, prop, value) + return ret + + def SetSchema(self, schema): + """Use XSD Schema to validate the document as it is processed. + Activation is only possible before the first Read(). if + @schema is None, then Schema validation is desactivated. @ + The @schema should not be freed until the reader is + deallocated or its use has been deactivated. """ + if schema is None: schema__o = None + else: schema__o = schema._o + ret = libxml2mod.xmlTextReaderSetSchema(self._o, schema__o) + return ret + + def Setup(self, input, URL, encoding, options): + """Setup an XML reader with new options """ + if input is None: input__o = None + else: input__o = input._o + ret = libxml2mod.xmlTextReaderSetup(self._o, input__o, URL, encoding, options) + return ret + + def Standalone(self): + """Determine the standalone status of the document being read. """ + ret = libxml2mod.xmlTextReaderStandalone(self._o) + return ret + + def String(self, str): + """Get an interned string from the reader, allows for example + to speedup string name comparisons """ + ret = libxml2mod.xmlTextReaderConstString(self._o, str) + return ret + + def Value(self): + """Provides the text value of the node if present """ + ret = libxml2mod.xmlTextReaderConstValue(self._o) + return ret + + def XmlLang(self): + """The xml:lang scope within which the node resides. """ + ret = libxml2mod.xmlTextReaderConstXmlLang(self._o) + return ret + + def XmlVersion(self): + """Determine the XML version of the document being read. """ + ret = libxml2mod.xmlTextReaderConstXmlVersion(self._o) + return ret + +class URI: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + def __del__(self): + if self._o != None: + libxml2mod.xmlFreeURI(self._o) + self._o = None + + # accessors for URI + def authority(self): + """Get the authority part from an URI """ + ret = libxml2mod.xmlURIGetAuthority(self._o) + return ret + + def fragment(self): + """Get the fragment part from an URI """ + ret = libxml2mod.xmlURIGetFragment(self._o) + return ret + + def opaque(self): + """Get the opaque part from an URI """ + ret = libxml2mod.xmlURIGetOpaque(self._o) + return ret + + def path(self): + """Get the path part from an URI """ + ret = libxml2mod.xmlURIGetPath(self._o) + return ret + + def port(self): + """Get the port part from an URI """ + ret = libxml2mod.xmlURIGetPort(self._o) + return ret + + def query(self): + """Get the query part from an URI """ + ret = libxml2mod.xmlURIGetQuery(self._o) + return ret + + def queryRaw(self): + """Get the raw query part from an URI (i.e. the unescaped + form). """ + ret = libxml2mod.xmlURIGetQueryRaw(self._o) + return ret + + def scheme(self): + """Get the scheme part from an URI """ + ret = libxml2mod.xmlURIGetScheme(self._o) + return ret + + def server(self): + """Get the server part from an URI """ + ret = libxml2mod.xmlURIGetServer(self._o) + return ret + + def setAuthority(self, authority): + """Set the authority part of an URI. """ + libxml2mod.xmlURISetAuthority(self._o, authority) + + def setFragment(self, fragment): + """Set the fragment part of an URI. """ + libxml2mod.xmlURISetFragment(self._o, fragment) + + def setOpaque(self, opaque): + """Set the opaque part of an URI. """ + libxml2mod.xmlURISetOpaque(self._o, opaque) + + def setPath(self, path): + """Set the path part of an URI. """ + libxml2mod.xmlURISetPath(self._o, path) + + def setPort(self, port): + """Set the port part of an URI. """ + libxml2mod.xmlURISetPort(self._o, port) + + def setQuery(self, query): + """Set the query part of an URI. """ + libxml2mod.xmlURISetQuery(self._o, query) + + def setQueryRaw(self, query_raw): + """Set the raw query part of an URI (i.e. the unescaped form). """ + libxml2mod.xmlURISetQueryRaw(self._o, query_raw) + + def setScheme(self, scheme): + """Set the scheme part of an URI. """ + libxml2mod.xmlURISetScheme(self._o, scheme) + + def setServer(self, server): + """Set the server part of an URI. """ + libxml2mod.xmlURISetServer(self._o, server) + + def setUser(self, user): + """Set the user part of an URI. """ + libxml2mod.xmlURISetUser(self._o, user) + + def user(self): + """Get the user part from an URI """ + ret = libxml2mod.xmlURIGetUser(self._o) + return ret + + # + # URI functions from module uri + # + + def parseURIReference(self, str): + """Parse an URI reference string based on RFC 3986 and fills + in the appropriate fields of the @uri structure + URI-reference = URI / relative-ref """ + ret = libxml2mod.xmlParseURIReference(self._o, str) + return ret + + def printURI(self, stream): + """Prints the URI in the stream @stream. """ + libxml2mod.xmlPrintURI(stream, self._o) + + def saveUri(self): + """Save the URI as an escaped string """ + ret = libxml2mod.xmlSaveUri(self._o) + return ret + +class ValidCtxt(ValidCtxtCore): + def __init__(self, _obj=None): + self._o = _obj + ValidCtxtCore.__init__(self, _obj=_obj) + + def __del__(self): + if self._o != None: + libxml2mod.xmlFreeValidCtxt(self._o) + self._o = None + + # + # ValidCtxt functions from module valid + # + + def validCtxtNormalizeAttributeValue(self, doc, elem, name, value): + """Does the validation related extra step of the normalization + of attribute values: If the declared value is not CDATA, + then the XML processor must further process the normalized + attribute value by discarding any leading and trailing + space (#x20) characters, and by replacing sequences of + space (#x20) characters by single space (#x20) character. + Also check VC: Standalone Document Declaration in P32, and + update ctxt->valid accordingly """ + if doc is None: doc__o = None + else: doc__o = doc._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidCtxtNormalizeAttributeValue(self._o, doc__o, elem__o, name, value) + return ret + + def validateDocument(self, doc): + """Try to validate the document instance basically it does + the all the checks described by the XML Rec i.e. validates + the internal and external subset (if present) and validate + the document tree. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlValidateDocument(self._o, doc__o) + return ret + + def validateDocumentFinal(self, doc): + """Does the final step for the document validation once all + the incremental validation steps have been completed + basically it does the following checks described by the XML + Rec Check all the IDREF/IDREFS attributes definition for + validity """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlValidateDocumentFinal(self._o, doc__o) + return ret + + def validateDtd(self, doc, dtd): + """Try to validate the document against the dtd instance + Basically it does check all the definitions in the DtD. + Note the the internal subset (if present) is de-coupled + (i.e. not used), which could give problems if ID or IDREF + is present. """ + if doc is None: doc__o = None + else: doc__o = doc._o + if dtd is None: dtd__o = None + else: dtd__o = dtd._o + ret = libxml2mod.xmlValidateDtd(self._o, doc__o, dtd__o) + return ret + + def validateDtdFinal(self, doc): + """Does the final step for the dtds validation once all the + subsets have been parsed basically it does the following + checks described by the XML Rec - check that ENTITY and + ENTITIES type attributes default or possible values matches + one of the defined entities. - check that NOTATION type + attributes default or possible values matches one of the + defined notations. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlValidateDtdFinal(self._o, doc__o) + return ret + + def validateElement(self, doc, elem): + """Try to validate the subtree under an element """ + if doc is None: doc__o = None + else: doc__o = doc._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidateElement(self._o, doc__o, elem__o) + return ret + + def validateNotationUse(self, doc, notationName): + """Validate that the given name match a notation declaration. + - [ VC: Notation Declared ] """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlValidateNotationUse(self._o, doc__o, notationName) + return ret + + def validateOneAttribute(self, doc, elem, attr, value): + """Try to validate a single attribute for an element basically + it does the following checks as described by the XML-1.0 + recommendation: - [ VC: Attribute Value Type ] - [ VC: + Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC: + Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity + Name ] - [ VC: Notation Attributes ] The ID/IDREF + uniqueness and matching are done separately """ + if doc is None: doc__o = None + else: doc__o = doc._o + if elem is None: elem__o = None + else: elem__o = elem._o + if attr is None: attr__o = None + else: attr__o = attr._o + ret = libxml2mod.xmlValidateOneAttribute(self._o, doc__o, elem__o, attr__o, value) + return ret + + def validateOneElement(self, doc, elem): + """Try to validate a single element and it's attributes, + basically it does the following checks as described by the + XML-1.0 recommendation: - [ VC: Element Valid ] - [ VC: + Required Attribute ] Then call xmlValidateOneAttribute() + for each attribute present. The ID/IDREF checkings are + done separately """ + if doc is None: doc__o = None + else: doc__o = doc._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidateOneElement(self._o, doc__o, elem__o) + return ret + + def validateOneNamespace(self, doc, elem, prefix, ns, value): + """Try to validate a single namespace declaration for an + element basically it does the following checks as described + by the XML-1.0 recommendation: - [ VC: Attribute Value Type + ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] - + [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: + Entity Name ] - [ VC: Notation Attributes ] The ID/IDREF + uniqueness and matching are done separately """ + if doc is None: doc__o = None + else: doc__o = doc._o + if elem is None: elem__o = None + else: elem__o = elem._o + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlValidateOneNamespace(self._o, doc__o, elem__o, prefix, ns__o, value) + return ret + + def validatePopElement(self, doc, elem, qname): + """Pop the element end from the validation stack. """ + if doc is None: doc__o = None + else: doc__o = doc._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidatePopElement(self._o, doc__o, elem__o, qname) + return ret + + def validatePushCData(self, data, len): + """check the CData parsed for validation in the current stack """ + ret = libxml2mod.xmlValidatePushCData(self._o, data, len) + return ret + + def validatePushElement(self, doc, elem, qname): + """Push a new element start on the validation stack. """ + if doc is None: doc__o = None + else: doc__o = doc._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidatePushElement(self._o, doc__o, elem__o, qname) + return ret + + def validateRoot(self, doc): + """Try to validate a the root element basically it does the + following check as described by the XML-1.0 recommendation: + - [ VC: Root Element Type ] it doesn't try to recurse or + apply other check to the element """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlValidateRoot(self._o, doc__o) + return ret + +class xpathContext: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + # accessors for xpathContext + def contextDoc(self): + """Get the doc from an xpathContext """ + ret = libxml2mod.xmlXPathGetContextDoc(self._o) + if ret is None:raise xpathError('xmlXPathGetContextDoc() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def contextNode(self): + """Get the current node from an xpathContext """ + ret = libxml2mod.xmlXPathGetContextNode(self._o) + if ret is None:raise xpathError('xmlXPathGetContextNode() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def contextPosition(self): + """Get the current node from an xpathContext """ + ret = libxml2mod.xmlXPathGetContextPosition(self._o) + return ret + + def contextSize(self): + """Get the current node from an xpathContext """ + ret = libxml2mod.xmlXPathGetContextSize(self._o) + return ret + + def function(self): + """Get the current function name xpathContext """ + ret = libxml2mod.xmlXPathGetFunction(self._o) + return ret + + def functionURI(self): + """Get the current function name URI xpathContext """ + ret = libxml2mod.xmlXPathGetFunctionURI(self._o) + return ret + + def setContextDoc(self, doc): + """Set the doc of an xpathContext """ + if doc is None: doc__o = None + else: doc__o = doc._o + libxml2mod.xmlXPathSetContextDoc(self._o, doc__o) + + def setContextNode(self, node): + """Set the current node of an xpathContext """ + if node is None: node__o = None + else: node__o = node._o + libxml2mod.xmlXPathSetContextNode(self._o, node__o) + + # + # xpathContext functions from module python + # + + def registerXPathFunction(self, name, ns_uri, f): + """Register a Python written function to the XPath interpreter """ + ret = libxml2mod.xmlRegisterXPathFunction(self._o, name, ns_uri, f) + return ret + + # + # xpathContext functions from module xpath + # + + def xpathContextSetCache(self, active, value, options): + """Creates/frees an object cache on the XPath context. If + activates XPath objects (xmlXPathObject) will be cached + internally to be reused. @options: 0: This will set the + XPath object caching: @value: This will set the maximum + number of XPath objects to be cached per slot There are 5 + slots for: node-set, string, number, boolean, and misc + objects. Use <0 for the default number (100). Other values + for @options have currently no effect. """ + ret = libxml2mod.xmlXPathContextSetCache(self._o, active, value, options) + return ret + + def xpathEval(self, str): + """Evaluate the XPath Location Path in the given context. """ + ret = libxml2mod.xmlXPathEval(str, self._o) + if ret is None:raise xpathError('xmlXPathEval() failed') + return xpathObjectRet(ret) + + def xpathEvalExpression(self, str): + """Evaluate the XPath expression in the given context. """ + ret = libxml2mod.xmlXPathEvalExpression(str, self._o) + if ret is None:raise xpathError('xmlXPathEvalExpression() failed') + return xpathObjectRet(ret) + + def xpathFreeContext(self): + """Free up an xmlXPathContext """ + libxml2mod.xmlXPathFreeContext(self._o) + + # + # xpathContext functions from module xpathInternals + # + + def xpathNewParserContext(self, str): + """Create a new xmlXPathParserContext """ + ret = libxml2mod.xmlXPathNewParserContext(str, self._o) + if ret is None:raise xpathError('xmlXPathNewParserContext() failed') + __tmp = xpathParserContext(_obj=ret) + return __tmp + + def xpathNsLookup(self, prefix): + """Search in the namespace declaration array of the context + for the given namespace name associated to the given prefix """ + ret = libxml2mod.xmlXPathNsLookup(self._o, prefix) + return ret + + def xpathRegisterAllFunctions(self): + """Registers all default XPath functions in this context """ + libxml2mod.xmlXPathRegisterAllFunctions(self._o) + + def xpathRegisterNs(self, prefix, ns_uri): + """Register a new namespace. If @ns_uri is None it unregisters + the namespace """ + ret = libxml2mod.xmlXPathRegisterNs(self._o, prefix, ns_uri) + return ret + + def xpathRegisteredFuncsCleanup(self): + """Cleanup the XPath context data associated to registered + functions """ + libxml2mod.xmlXPathRegisteredFuncsCleanup(self._o) + + def xpathRegisteredNsCleanup(self): + """Cleanup the XPath context data associated to registered + variables """ + libxml2mod.xmlXPathRegisteredNsCleanup(self._o) + + def xpathRegisteredVariablesCleanup(self): + """Cleanup the XPath context data associated to registered + variables """ + libxml2mod.xmlXPathRegisteredVariablesCleanup(self._o) + + def xpathVariableLookup(self, name): + """Search in the Variable array of the context for the given + variable value. """ + ret = libxml2mod.xmlXPathVariableLookup(self._o, name) + if ret is None:raise xpathError('xmlXPathVariableLookup() failed') + return xpathObjectRet(ret) + + def xpathVariableLookupNS(self, name, ns_uri): + """Search in the Variable array of the context for the given + variable value. """ + ret = libxml2mod.xmlXPathVariableLookupNS(self._o, name, ns_uri) + if ret is None:raise xpathError('xmlXPathVariableLookupNS() failed') + return xpathObjectRet(ret) + + # + # xpathContext functions from module xpointer + # + + def xpointerEval(self, str): + """Evaluate the XPath Location Path in the given context. """ + ret = libxml2mod.xmlXPtrEval(str, self._o) + if ret is None:raise treeError('xmlXPtrEval() failed') + return xpathObjectRet(ret) + +class xpathParserContext: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + # accessors for xpathParserContext + def context(self): + """Get the xpathContext from an xpathParserContext """ + ret = libxml2mod.xmlXPathParserGetContext(self._o) + if ret is None:raise xpathError('xmlXPathParserGetContext() failed') + __tmp = xpathContext(_obj=ret) + return __tmp + + # + # xpathParserContext functions from module xpathInternals + # + + def xpathAddValues(self): + """Implement the add operation on XPath objects: The numeric + operators convert their operands to numbers as if by + calling the number function. """ + libxml2mod.xmlXPathAddValues(self._o) + + def xpathBooleanFunction(self, nargs): + """Implement the boolean() XPath function boolean + boolean(object) The boolean function converts its argument + to a boolean as follows: - a number is true if and only if + it is neither positive or negative zero nor NaN - a + node-set is true if and only if it is non-empty - a string + is true if and only if its length is non-zero """ + libxml2mod.xmlXPathBooleanFunction(self._o, nargs) + + def xpathCeilingFunction(self, nargs): + """Implement the ceiling() XPath function number + ceiling(number) The ceiling function returns the smallest + (closest to negative infinity) number that is not less than + the argument and that is an integer. """ + libxml2mod.xmlXPathCeilingFunction(self._o, nargs) + + def xpathCompareValues(self, inf, strict): + """Implement the compare operation on XPath objects: @arg1 < + @arg2 (1, 1, ... @arg1 <= @arg2 (1, 0, ... @arg1 > + @arg2 (0, 1, ... @arg1 >= @arg2 (0, 0, ... When + neither object to be compared is a node-set and the + operator is <=, <, >=, >, then the objects are compared by + converted both objects to numbers and comparing the numbers + according to IEEE 754. The < comparison will be true if and + only if the first number is less than the second number. + The <= comparison will be true if and only if the first + number is less than or equal to the second number. The > + comparison will be true if and only if the first number is + greater than the second number. The >= comparison will be + true if and only if the first number is greater than or + equal to the second number. """ + ret = libxml2mod.xmlXPathCompareValues(self._o, inf, strict) + return ret + + def xpathConcatFunction(self, nargs): + """Implement the concat() XPath function string concat(string, + string, string*) The concat function returns the + concatenation of its arguments. """ + libxml2mod.xmlXPathConcatFunction(self._o, nargs) + + def xpathContainsFunction(self, nargs): + """Implement the contains() XPath function boolean + contains(string, string) The contains function returns true + if the first argument string contains the second argument + string, and otherwise returns false. """ + libxml2mod.xmlXPathContainsFunction(self._o, nargs) + + def xpathCountFunction(self, nargs): + """Implement the count() XPath function number count(node-set) """ + libxml2mod.xmlXPathCountFunction(self._o, nargs) + + def xpathDivValues(self): + """Implement the div operation on XPath objects @arg1 / @arg2: + The numeric operators convert their operands to numbers as + if by calling the number function. """ + libxml2mod.xmlXPathDivValues(self._o) + + def xpathEqualValues(self): + """Implement the equal operation on XPath objects content: + @arg1 == @arg2 """ + ret = libxml2mod.xmlXPathEqualValues(self._o) + return ret + + def xpathErr(self, error): + """Handle an XPath error """ + libxml2mod.xmlXPathErr(self._o, error) + + def xpathEvalExpr(self): + """Parse and evaluate an XPath expression in the given + context, then push the result on the context stack """ + libxml2mod.xmlXPathEvalExpr(self._o) + + def xpathFalseFunction(self, nargs): + """Implement the false() XPath function boolean false() """ + libxml2mod.xmlXPathFalseFunction(self._o, nargs) + + def xpathFloorFunction(self, nargs): + """Implement the floor() XPath function number floor(number) + The floor function returns the largest (closest to positive + infinity) number that is not greater than the argument and + that is an integer. """ + libxml2mod.xmlXPathFloorFunction(self._o, nargs) + + def xpathFreeParserContext(self): + """Free up an xmlXPathParserContext """ + libxml2mod.xmlXPathFreeParserContext(self._o) + + def xpathIdFunction(self, nargs): + """Implement the id() XPath function node-set id(object) The + id function selects elements by their unique ID (see [5.2.1 + Unique IDs]). When the argument to id is of type node-set, + then the result is the union of the result of applying id + to the string value of each of the nodes in the argument + node-set. When the argument to id is of any other type, the + argument is converted to a string as if by a call to the + string function; the string is split into a + whitespace-separated list of tokens (whitespace is any + sequence of characters matching the production S); the + result is a node-set containing the elements in the same + document as the context node that have a unique ID equal to + any of the tokens in the list. """ + libxml2mod.xmlXPathIdFunction(self._o, nargs) + + def xpathLangFunction(self, nargs): + """Implement the lang() XPath function boolean lang(string) + The lang function returns true or false depending on + whether the language of the context node as specified by + xml:lang attributes is the same as or is a sublanguage of + the language specified by the argument string. The language + of the context node is determined by the value of the + xml:lang attribute on the context node, or, if the context + node has no xml:lang attribute, by the value of the + xml:lang attribute on the nearest ancestor of the context + node that has an xml:lang attribute. If there is no such + attribute, then lang """ + libxml2mod.xmlXPathLangFunction(self._o, nargs) + + def xpathLastFunction(self, nargs): + """Implement the last() XPath function number last() The last + function returns the number of nodes in the context node + list. """ + libxml2mod.xmlXPathLastFunction(self._o, nargs) + + def xpathLocalNameFunction(self, nargs): + """Implement the local-name() XPath function string + local-name(node-set?) The local-name function returns a + string containing the local part of the name of the node in + the argument node-set that is first in document order. If + the node-set is empty or the first node has no name, an + empty string is returned. If the argument is omitted it + defaults to the context node. """ + libxml2mod.xmlXPathLocalNameFunction(self._o, nargs) + + def xpathModValues(self): + """Implement the mod operation on XPath objects: @arg1 / @arg2 + The numeric operators convert their operands to numbers as + if by calling the number function. """ + libxml2mod.xmlXPathModValues(self._o) + + def xpathMultValues(self): + """Implement the multiply operation on XPath objects: The + numeric operators convert their operands to numbers as if + by calling the number function. """ + libxml2mod.xmlXPathMultValues(self._o) + + def xpathNamespaceURIFunction(self, nargs): + """Implement the namespace-uri() XPath function string + namespace-uri(node-set?) The namespace-uri function returns + a string containing the namespace URI of the expanded name + of the node in the argument node-set that is first in + document order. If the node-set is empty, the first node + has no name, or the expanded name has no namespace URI, an + empty string is returned. If the argument is omitted it + defaults to the context node. """ + libxml2mod.xmlXPathNamespaceURIFunction(self._o, nargs) + + def xpathNextAncestor(self, cur): + """Traversal function for the "ancestor" direction the + ancestor axis contains the ancestors of the context node; + the ancestors of the context node consist of the parent of + context node and the parent's parent and so on; the nodes + are ordered in reverse document order; thus the parent is + the first node on the axis, and the parent's parent is the + second node on the axis """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextAncestor(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextAncestor() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextAncestorOrSelf(self, cur): + """Traversal function for the "ancestor-or-self" direction he + ancestor-or-self axis contains the context node and + ancestors of the context node in reverse document order; + thus the context node is the first node on the axis, and + the context node's parent the second; parent here is + defined the same as with the parent axis. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextAncestorOrSelf(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextAncestorOrSelf() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextAttribute(self, cur): + """Traversal function for the "attribute" direction TODO: + support DTD inherited default attributes """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextAttribute(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextAttribute() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextChild(self, cur): + """Traversal function for the "child" direction The child axis + contains the children of the context node in document order. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextChild(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextChild() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextDescendant(self, cur): + """Traversal function for the "descendant" direction the + descendant axis contains the descendants of the context + node in document order; a descendant is a child or a child + of a child and so on. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextDescendant(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextDescendant() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextDescendantOrSelf(self, cur): + """Traversal function for the "descendant-or-self" direction + the descendant-or-self axis contains the context node and + the descendants of the context node in document order; thus + the context node is the first node on the axis, and the + first child of the context node is the second node on the + axis """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextDescendantOrSelf(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextDescendantOrSelf() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextFollowing(self, cur): + """Traversal function for the "following" direction The + following axis contains all nodes in the same document as + the context node that are after the context node in + document order, excluding any descendants and excluding + attribute nodes and namespace nodes; the nodes are ordered + in document order """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextFollowing(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextFollowing() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextFollowingSibling(self, cur): + """Traversal function for the "following-sibling" direction + The following-sibling axis contains the following siblings + of the context node in document order. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextFollowingSibling(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextFollowingSibling() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextNamespace(self, cur): + """Traversal function for the "namespace" direction the + namespace axis contains the namespace nodes of the context + node; the order of nodes on this axis is + implementation-defined; the axis will be empty unless the + context node is an element We keep the XML namespace node + at the end of the list. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextNamespace(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextNamespace() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextParent(self, cur): + """Traversal function for the "parent" direction The parent + axis contains the parent of the context node, if there is + one. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextParent(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextParent() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextPreceding(self, cur): + """Traversal function for the "preceding" direction the + preceding axis contains all nodes in the same document as + the context node that are before the context node in + document order, excluding any ancestors and excluding + attribute nodes and namespace nodes; the nodes are ordered + in reverse document order """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextPreceding(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextPreceding() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextPrecedingSibling(self, cur): + """Traversal function for the "preceding-sibling" direction + The preceding-sibling axis contains the preceding siblings + of the context node in reverse document order; the first + preceding sibling is first on the axis; the sibling + preceding that node is the second on the axis and so on. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextPrecedingSibling(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextPrecedingSibling() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextSelf(self, cur): + """Traversal function for the "self" direction The self axis + contains just the context node itself """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextSelf(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextSelf() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNormalizeFunction(self, nargs): + """Implement the normalize-space() XPath function string + normalize-space(string?) The normalize-space function + returns the argument string with white space normalized by + stripping leading and trailing whitespace and replacing + sequences of whitespace characters by a single space. + Whitespace characters are the same allowed by the S + production in XML. If the argument is omitted, it defaults + to the context node converted to a string, in other words + the value of the context node. """ + libxml2mod.xmlXPathNormalizeFunction(self._o, nargs) + + def xpathNotEqualValues(self): + """Implement the equal operation on XPath objects content: + @arg1 == @arg2 """ + ret = libxml2mod.xmlXPathNotEqualValues(self._o) + return ret + + def xpathNotFunction(self, nargs): + """Implement the not() XPath function boolean not(boolean) The + not function returns true if its argument is false, and + false otherwise. """ + libxml2mod.xmlXPathNotFunction(self._o, nargs) + + def xpathNumberFunction(self, nargs): + """Implement the number() XPath function number number(object?) """ + libxml2mod.xmlXPathNumberFunction(self._o, nargs) + + def xpathParseNCName(self): + """parse an XML namespace non qualified name. [NS 3] NCName + ::= (Letter | '_') (NCNameChar)* [NS 4] NCNameChar ::= + Letter | Digit | '.' | '-' | '_' | CombiningChar | Extender """ + ret = libxml2mod.xmlXPathParseNCName(self._o) + return ret + + def xpathParseName(self): + """parse an XML name [4] NameChar ::= Letter | Digit | '.' | + '-' | '_' | ':' | CombiningChar | Extender [5] Name ::= + (Letter | '_' | ':') (NameChar)* """ + ret = libxml2mod.xmlXPathParseName(self._o) + return ret + + def xpathPopBoolean(self): + """Pops a boolean from the stack, handling conversion if + needed. Check error with #xmlXPathCheckError. """ + ret = libxml2mod.xmlXPathPopBoolean(self._o) + return ret + + def xpathPopNumber(self): + """Pops a number from the stack, handling conversion if + needed. Check error with #xmlXPathCheckError. """ + ret = libxml2mod.xmlXPathPopNumber(self._o) + return ret + + def xpathPopString(self): + """Pops a string from the stack, handling conversion if + needed. Check error with #xmlXPathCheckError. """ + ret = libxml2mod.xmlXPathPopString(self._o) + return ret + + def xpathPositionFunction(self, nargs): + """Implement the position() XPath function number position() + The position function returns the position of the context + node in the context node list. The first position is 1, and + so the last position will be equal to last(). """ + libxml2mod.xmlXPathPositionFunction(self._o, nargs) + + def xpathRoot(self): + """Initialize the context to the root of the document """ + libxml2mod.xmlXPathRoot(self._o) + + def xpathRoundFunction(self, nargs): + """Implement the round() XPath function number round(number) + The round function returns the number that is closest to + the argument and that is an integer. If there are two such + numbers, then the one that is even is returned. """ + libxml2mod.xmlXPathRoundFunction(self._o, nargs) + + def xpathStartsWithFunction(self, nargs): + """Implement the starts-with() XPath function boolean + starts-with(string, string) The starts-with function + returns true if the first argument string starts with the + second argument string, and otherwise returns false. """ + libxml2mod.xmlXPathStartsWithFunction(self._o, nargs) + + def xpathStringFunction(self, nargs): + """Implement the string() XPath function string + string(object?) The string function converts an object to a + string as follows: - A node-set is converted to a string by + returning the value of the node in the node-set that is + first in document order. If the node-set is empty, an empty + string is returned. - A number is converted to a string as + follows + NaN is converted to the string NaN + positive + zero is converted to the string 0 + negative zero is + converted to the string 0 + positive infinity is converted + to the string Infinity + negative infinity is converted to + the string -Infinity + if the number is an integer, the + number is represented in decimal form as a Number with no + decimal point and no leading zeros, preceded by a minus + sign (-) if the number is negative + otherwise, the number + is represented in decimal form as a Number including a + decimal point with at least one digit before the decimal + point and at least one digit after the decimal point, + preceded by a minus sign (-) if the number is negative; + there must be no leading zeros before the decimal point + apart possibly from the one required digit immediately + before the decimal point; beyond the one required digit + after the decimal point there must be as many, but only as + many, more digits as are needed to uniquely distinguish the + number from all other IEEE 754 numeric values. - The + boolean false value is converted to the string false. The + boolean true value is converted to the string true. If the + argument is omitted, it defaults to a node-set with the + context node as its only member. """ + libxml2mod.xmlXPathStringFunction(self._o, nargs) + + def xpathStringLengthFunction(self, nargs): + """Implement the string-length() XPath function number + string-length(string?) The string-length returns the number + of characters in the string (see [3.6 Strings]). If the + argument is omitted, it defaults to the context node + converted to a string, in other words the value of the + context node. """ + libxml2mod.xmlXPathStringLengthFunction(self._o, nargs) + + def xpathSubValues(self): + """Implement the subtraction operation on XPath objects: The + numeric operators convert their operands to numbers as if + by calling the number function. """ + libxml2mod.xmlXPathSubValues(self._o) + + def xpathSubstringAfterFunction(self, nargs): + """Implement the substring-after() XPath function string + substring-after(string, string) The substring-after + function returns the substring of the first argument string + that follows the first occurrence of the second argument + string in the first argument string, or the empty stringi + if the first argument string does not contain the second + argument string. For example, + substring-after("1999/04/01","/") returns 04/01, and + substring-after("1999/04/01","19") returns 99/04/01. """ + libxml2mod.xmlXPathSubstringAfterFunction(self._o, nargs) + + def xpathSubstringBeforeFunction(self, nargs): + """Implement the substring-before() XPath function string + substring-before(string, string) The substring-before + function returns the substring of the first argument string + that precedes the first occurrence of the second argument + string in the first argument string, or the empty string if + the first argument string does not contain the second + argument string. For example, + substring-before("1999/04/01","/") returns 1999. """ + libxml2mod.xmlXPathSubstringBeforeFunction(self._o, nargs) + + def xpathSubstringFunction(self, nargs): + """Implement the substring() XPath function string + substring(string, number, number?) The substring function + returns the substring of the first argument starting at the + position specified in the second argument with length + specified in the third argument. For example, + substring("12345",2,3) returns "234". If the third argument + is not specified, it returns the substring starting at the + position specified in the second argument and continuing to + the end of the string. For example, substring("12345",2) + returns "2345". More precisely, each character in the + string (see [3.6 Strings]) is considered to have a numeric + position: the position of the first character is 1, the + position of the second character is 2 and so on. The + returned substring contains those characters for which the + position of the character is greater than or equal to the + second argument and, if the third argument is specified, + less than the sum of the second and third arguments; the + comparisons and addition used for the above follow the + standard IEEE 754 rules. Thus: - substring("12345", 1.5, + 2.6) returns "234" - substring("12345", 0, 3) returns "12" + - substring("12345", 0 div 0, 3) returns "" - + substring("12345", 1, 0 div 0) returns "" - + substring("12345", -42, 1 div 0) returns "12345" - + substring("12345", -1 div 0, 1 div 0) returns "" """ + libxml2mod.xmlXPathSubstringFunction(self._o, nargs) + + def xpathSumFunction(self, nargs): + """Implement the sum() XPath function number sum(node-set) The + sum function returns the sum of the values of the nodes in + the argument node-set. """ + libxml2mod.xmlXPathSumFunction(self._o, nargs) + + def xpathTranslateFunction(self, nargs): + """Implement the translate() XPath function string + translate(string, string, string) The translate function + returns the first argument string with occurrences of + characters in the second argument string replaced by the + character at the corresponding position in the third + argument string. For example, translate("bar","abc","ABC") + returns the string BAr. If there is a character in the + second argument string with no character at a corresponding + position in the third argument string (because the second + argument string is longer than the third argument string), + then occurrences of that character in the first argument + string are removed. For example, + translate("--aaa--","abc-","ABC") """ + libxml2mod.xmlXPathTranslateFunction(self._o, nargs) + + def xpathTrueFunction(self, nargs): + """Implement the true() XPath function boolean true() """ + libxml2mod.xmlXPathTrueFunction(self._o, nargs) + + def xpathValueFlipSign(self): + """Implement the unary - operation on an XPath object The + numeric operators convert their operands to numbers as if + by calling the number function. """ + libxml2mod.xmlXPathValueFlipSign(self._o) + + def xpatherror(self, file, line, no): + """Formats an error message. """ + libxml2mod.xmlXPatherror(self._o, file, line, no) + + # + # xpathParserContext functions from module xpointer + # + + def xpointerEvalRangePredicate(self): + """[8] Predicate ::= '[' PredicateExpr ']' [9] + PredicateExpr ::= Expr Evaluate a predicate as in + xmlXPathEvalPredicate() but for a Location Set instead of a + node set """ + libxml2mod.xmlXPtrEvalRangePredicate(self._o) + + def xpointerRangeToFunction(self, nargs): + """Implement the range-to() XPointer function """ + libxml2mod.xmlXPtrRangeToFunction(self._o, nargs) + +# xlinkShow +XLINK_SHOW_NONE = 0 +XLINK_SHOW_NEW = 1 +XLINK_SHOW_EMBED = 2 +XLINK_SHOW_REPLACE = 3 + +# xmlRelaxNGParserFlag +XML_RELAXNGP_NONE = 0 +XML_RELAXNGP_FREE_DOC = 1 +XML_RELAXNGP_CRNG = 2 + +# xmlBufferAllocationScheme +XML_BUFFER_ALLOC_DOUBLEIT = 1 +XML_BUFFER_ALLOC_EXACT = 2 +XML_BUFFER_ALLOC_IMMUTABLE = 3 +XML_BUFFER_ALLOC_IO = 4 +XML_BUFFER_ALLOC_HYBRID = 5 + +# xmlParserSeverities +XML_PARSER_SEVERITY_VALIDITY_WARNING = 1 +XML_PARSER_SEVERITY_VALIDITY_ERROR = 2 +XML_PARSER_SEVERITY_WARNING = 3 +XML_PARSER_SEVERITY_ERROR = 4 + +# xmlAttributeDefault +XML_ATTRIBUTE_NONE = 1 +XML_ATTRIBUTE_REQUIRED = 2 +XML_ATTRIBUTE_IMPLIED = 3 +XML_ATTRIBUTE_FIXED = 4 + +# xmlSchemaValType +XML_SCHEMAS_UNKNOWN = 0 +XML_SCHEMAS_STRING = 1 +XML_SCHEMAS_NORMSTRING = 2 +XML_SCHEMAS_DECIMAL = 3 +XML_SCHEMAS_TIME = 4 +XML_SCHEMAS_GDAY = 5 +XML_SCHEMAS_GMONTH = 6 +XML_SCHEMAS_GMONTHDAY = 7 +XML_SCHEMAS_GYEAR = 8 +XML_SCHEMAS_GYEARMONTH = 9 +XML_SCHEMAS_DATE = 10 +XML_SCHEMAS_DATETIME = 11 +XML_SCHEMAS_DURATION = 12 +XML_SCHEMAS_FLOAT = 13 +XML_SCHEMAS_DOUBLE = 14 +XML_SCHEMAS_BOOLEAN = 15 +XML_SCHEMAS_TOKEN = 16 +XML_SCHEMAS_LANGUAGE = 17 +XML_SCHEMAS_NMTOKEN = 18 +XML_SCHEMAS_NMTOKENS = 19 +XML_SCHEMAS_NAME = 20 +XML_SCHEMAS_QNAME = 21 +XML_SCHEMAS_NCNAME = 22 +XML_SCHEMAS_ID = 23 +XML_SCHEMAS_IDREF = 24 +XML_SCHEMAS_IDREFS = 25 +XML_SCHEMAS_ENTITY = 26 +XML_SCHEMAS_ENTITIES = 27 +XML_SCHEMAS_NOTATION = 28 +XML_SCHEMAS_ANYURI = 29 +XML_SCHEMAS_INTEGER = 30 +XML_SCHEMAS_NPINTEGER = 31 +XML_SCHEMAS_NINTEGER = 32 +XML_SCHEMAS_NNINTEGER = 33 +XML_SCHEMAS_PINTEGER = 34 +XML_SCHEMAS_INT = 35 +XML_SCHEMAS_UINT = 36 +XML_SCHEMAS_LONG = 37 +XML_SCHEMAS_ULONG = 38 +XML_SCHEMAS_SHORT = 39 +XML_SCHEMAS_USHORT = 40 +XML_SCHEMAS_BYTE = 41 +XML_SCHEMAS_UBYTE = 42 +XML_SCHEMAS_HEXBINARY = 43 +XML_SCHEMAS_BASE64BINARY = 44 +XML_SCHEMAS_ANYTYPE = 45 +XML_SCHEMAS_ANYSIMPLETYPE = 46 + +# xmlParserInputState +XML_PARSER_EOF = -1 +XML_PARSER_START = 0 +XML_PARSER_MISC = 1 +XML_PARSER_PI = 2 +XML_PARSER_DTD = 3 +XML_PARSER_PROLOG = 4 +XML_PARSER_COMMENT = 5 +XML_PARSER_START_TAG = 6 +XML_PARSER_CONTENT = 7 +XML_PARSER_CDATA_SECTION = 8 +XML_PARSER_END_TAG = 9 +XML_PARSER_ENTITY_DECL = 10 +XML_PARSER_ENTITY_VALUE = 11 +XML_PARSER_ATTRIBUTE_VALUE = 12 +XML_PARSER_SYSTEM_LITERAL = 13 +XML_PARSER_EPILOG = 14 +XML_PARSER_IGNORE = 15 +XML_PARSER_PUBLIC_LITERAL = 16 + +# xmlEntityType +XML_INTERNAL_GENERAL_ENTITY = 1 +XML_EXTERNAL_GENERAL_PARSED_ENTITY = 2 +XML_EXTERNAL_GENERAL_UNPARSED_ENTITY = 3 +XML_INTERNAL_PARAMETER_ENTITY = 4 +XML_EXTERNAL_PARAMETER_ENTITY = 5 +XML_INTERNAL_PREDEFINED_ENTITY = 6 + +# xmlSaveOption +XML_SAVE_FORMAT = 1 +XML_SAVE_NO_DECL = 2 +XML_SAVE_NO_EMPTY = 4 +XML_SAVE_NO_XHTML = 8 +XML_SAVE_XHTML = 16 +XML_SAVE_AS_XML = 32 +XML_SAVE_AS_HTML = 64 +XML_SAVE_WSNONSIG = 128 + +# xmlPatternFlags +XML_PATTERN_DEFAULT = 0 +XML_PATTERN_XPATH = 1 +XML_PATTERN_XSSEL = 2 +XML_PATTERN_XSFIELD = 4 + +# xmlParserErrors +XML_ERR_OK = 0 +XML_ERR_INTERNAL_ERROR = 1 +XML_ERR_NO_MEMORY = 2 +XML_ERR_DOCUMENT_START = 3 +XML_ERR_DOCUMENT_EMPTY = 4 +XML_ERR_DOCUMENT_END = 5 +XML_ERR_INVALID_HEX_CHARREF = 6 +XML_ERR_INVALID_DEC_CHARREF = 7 +XML_ERR_INVALID_CHARREF = 8 +XML_ERR_INVALID_CHAR = 9 +XML_ERR_CHARREF_AT_EOF = 10 +XML_ERR_CHARREF_IN_PROLOG = 11 +XML_ERR_CHARREF_IN_EPILOG = 12 +XML_ERR_CHARREF_IN_DTD = 13 +XML_ERR_ENTITYREF_AT_EOF = 14 +XML_ERR_ENTITYREF_IN_PROLOG = 15 +XML_ERR_ENTITYREF_IN_EPILOG = 16 +XML_ERR_ENTITYREF_IN_DTD = 17 +XML_ERR_PEREF_AT_EOF = 18 +XML_ERR_PEREF_IN_PROLOG = 19 +XML_ERR_PEREF_IN_EPILOG = 20 +XML_ERR_PEREF_IN_INT_SUBSET = 21 +XML_ERR_ENTITYREF_NO_NAME = 22 +XML_ERR_ENTITYREF_SEMICOL_MISSING = 23 +XML_ERR_PEREF_NO_NAME = 24 +XML_ERR_PEREF_SEMICOL_MISSING = 25 +XML_ERR_UNDECLARED_ENTITY = 26 +XML_WAR_UNDECLARED_ENTITY = 27 +XML_ERR_UNPARSED_ENTITY = 28 +XML_ERR_ENTITY_IS_EXTERNAL = 29 +XML_ERR_ENTITY_IS_PARAMETER = 30 +XML_ERR_UNKNOWN_ENCODING = 31 +XML_ERR_UNSUPPORTED_ENCODING = 32 +XML_ERR_STRING_NOT_STARTED = 33 +XML_ERR_STRING_NOT_CLOSED = 34 +XML_ERR_NS_DECL_ERROR = 35 +XML_ERR_ENTITY_NOT_STARTED = 36 +XML_ERR_ENTITY_NOT_FINISHED = 37 +XML_ERR_LT_IN_ATTRIBUTE = 38 +XML_ERR_ATTRIBUTE_NOT_STARTED = 39 +XML_ERR_ATTRIBUTE_NOT_FINISHED = 40 +XML_ERR_ATTRIBUTE_WITHOUT_VALUE = 41 +XML_ERR_ATTRIBUTE_REDEFINED = 42 +XML_ERR_LITERAL_NOT_STARTED = 43 +XML_ERR_LITERAL_NOT_FINISHED = 44 +XML_ERR_COMMENT_NOT_FINISHED = 45 +XML_ERR_PI_NOT_STARTED = 46 +XML_ERR_PI_NOT_FINISHED = 47 +XML_ERR_NOTATION_NOT_STARTED = 48 +XML_ERR_NOTATION_NOT_FINISHED = 49 +XML_ERR_ATTLIST_NOT_STARTED = 50 +XML_ERR_ATTLIST_NOT_FINISHED = 51 +XML_ERR_MIXED_NOT_STARTED = 52 +XML_ERR_MIXED_NOT_FINISHED = 53 +XML_ERR_ELEMCONTENT_NOT_STARTED = 54 +XML_ERR_ELEMCONTENT_NOT_FINISHED = 55 +XML_ERR_XMLDECL_NOT_STARTED = 56 +XML_ERR_XMLDECL_NOT_FINISHED = 57 +XML_ERR_CONDSEC_NOT_STARTED = 58 +XML_ERR_CONDSEC_NOT_FINISHED = 59 +XML_ERR_EXT_SUBSET_NOT_FINISHED = 60 +XML_ERR_DOCTYPE_NOT_FINISHED = 61 +XML_ERR_MISPLACED_CDATA_END = 62 +XML_ERR_CDATA_NOT_FINISHED = 63 +XML_ERR_RESERVED_XML_NAME = 64 +XML_ERR_SPACE_REQUIRED = 65 +XML_ERR_SEPARATOR_REQUIRED = 66 +XML_ERR_NMTOKEN_REQUIRED = 67 +XML_ERR_NAME_REQUIRED = 68 +XML_ERR_PCDATA_REQUIRED = 69 +XML_ERR_URI_REQUIRED = 70 +XML_ERR_PUBID_REQUIRED = 71 +XML_ERR_LT_REQUIRED = 72 +XML_ERR_GT_REQUIRED = 73 +XML_ERR_LTSLASH_REQUIRED = 74 +XML_ERR_EQUAL_REQUIRED = 75 +XML_ERR_TAG_NAME_MISMATCH = 76 +XML_ERR_TAG_NOT_FINISHED = 77 +XML_ERR_STANDALONE_VALUE = 78 +XML_ERR_ENCODING_NAME = 79 +XML_ERR_HYPHEN_IN_COMMENT = 80 +XML_ERR_INVALID_ENCODING = 81 +XML_ERR_EXT_ENTITY_STANDALONE = 82 +XML_ERR_CONDSEC_INVALID = 83 +XML_ERR_VALUE_REQUIRED = 84 +XML_ERR_NOT_WELL_BALANCED = 85 +XML_ERR_EXTRA_CONTENT = 86 +XML_ERR_ENTITY_CHAR_ERROR = 87 +XML_ERR_ENTITY_PE_INTERNAL = 88 +XML_ERR_ENTITY_LOOP = 89 +XML_ERR_ENTITY_BOUNDARY = 90 +XML_ERR_INVALID_URI = 91 +XML_ERR_URI_FRAGMENT = 92 +XML_WAR_CATALOG_PI = 93 +XML_ERR_NO_DTD = 94 +XML_ERR_CONDSEC_INVALID_KEYWORD = 95 +XML_ERR_VERSION_MISSING = 96 +XML_WAR_UNKNOWN_VERSION = 97 +XML_WAR_LANG_VALUE = 98 +XML_WAR_NS_URI = 99 +XML_WAR_NS_URI_RELATIVE = 100 +XML_ERR_MISSING_ENCODING = 101 +XML_WAR_SPACE_VALUE = 102 +XML_ERR_NOT_STANDALONE = 103 +XML_ERR_ENTITY_PROCESSING = 104 +XML_ERR_NOTATION_PROCESSING = 105 +XML_WAR_NS_COLUMN = 106 +XML_WAR_ENTITY_REDEFINED = 107 +XML_ERR_UNKNOWN_VERSION = 108 +XML_ERR_VERSION_MISMATCH = 109 +XML_ERR_NAME_TOO_LONG = 110 +XML_NS_ERR_XML_NAMESPACE = 200 +XML_NS_ERR_UNDEFINED_NAMESPACE = 201 +XML_NS_ERR_QNAME = 202 +XML_NS_ERR_ATTRIBUTE_REDEFINED = 203 +XML_NS_ERR_EMPTY = 204 +XML_NS_ERR_COLON = 205 +XML_DTD_ATTRIBUTE_DEFAULT = 500 +XML_DTD_ATTRIBUTE_REDEFINED = 501 +XML_DTD_ATTRIBUTE_VALUE = 502 +XML_DTD_CONTENT_ERROR = 503 +XML_DTD_CONTENT_MODEL = 504 +XML_DTD_CONTENT_NOT_DETERMINIST = 505 +XML_DTD_DIFFERENT_PREFIX = 506 +XML_DTD_ELEM_DEFAULT_NAMESPACE = 507 +XML_DTD_ELEM_NAMESPACE = 508 +XML_DTD_ELEM_REDEFINED = 509 +XML_DTD_EMPTY_NOTATION = 510 +XML_DTD_ENTITY_TYPE = 511 +XML_DTD_ID_FIXED = 512 +XML_DTD_ID_REDEFINED = 513 +XML_DTD_ID_SUBSET = 514 +XML_DTD_INVALID_CHILD = 515 +XML_DTD_INVALID_DEFAULT = 516 +XML_DTD_LOAD_ERROR = 517 +XML_DTD_MISSING_ATTRIBUTE = 518 +XML_DTD_MIXED_CORRUPT = 519 +XML_DTD_MULTIPLE_ID = 520 +XML_DTD_NO_DOC = 521 +XML_DTD_NO_DTD = 522 +XML_DTD_NO_ELEM_NAME = 523 +XML_DTD_NO_PREFIX = 524 +XML_DTD_NO_ROOT = 525 +XML_DTD_NOTATION_REDEFINED = 526 +XML_DTD_NOTATION_VALUE = 527 +XML_DTD_NOT_EMPTY = 528 +XML_DTD_NOT_PCDATA = 529 +XML_DTD_NOT_STANDALONE = 530 +XML_DTD_ROOT_NAME = 531 +XML_DTD_STANDALONE_WHITE_SPACE = 532 +XML_DTD_UNKNOWN_ATTRIBUTE = 533 +XML_DTD_UNKNOWN_ELEM = 534 +XML_DTD_UNKNOWN_ENTITY = 535 +XML_DTD_UNKNOWN_ID = 536 +XML_DTD_UNKNOWN_NOTATION = 537 +XML_DTD_STANDALONE_DEFAULTED = 538 +XML_DTD_XMLID_VALUE = 539 +XML_DTD_XMLID_TYPE = 540 +XML_DTD_DUP_TOKEN = 541 +XML_HTML_STRUCURE_ERROR = 800 +XML_HTML_UNKNOWN_TAG = 801 +XML_RNGP_ANYNAME_ATTR_ANCESTOR = 1000 +XML_RNGP_ATTR_CONFLICT = 1001 +XML_RNGP_ATTRIBUTE_CHILDREN = 1002 +XML_RNGP_ATTRIBUTE_CONTENT = 1003 +XML_RNGP_ATTRIBUTE_EMPTY = 1004 +XML_RNGP_ATTRIBUTE_NOOP = 1005 +XML_RNGP_CHOICE_CONTENT = 1006 +XML_RNGP_CHOICE_EMPTY = 1007 +XML_RNGP_CREATE_FAILURE = 1008 +XML_RNGP_DATA_CONTENT = 1009 +XML_RNGP_DEF_CHOICE_AND_INTERLEAVE = 1010 +XML_RNGP_DEFINE_CREATE_FAILED = 1011 +XML_RNGP_DEFINE_EMPTY = 1012 +XML_RNGP_DEFINE_MISSING = 1013 +XML_RNGP_DEFINE_NAME_MISSING = 1014 +XML_RNGP_ELEM_CONTENT_EMPTY = 1015 +XML_RNGP_ELEM_CONTENT_ERROR = 1016 +XML_RNGP_ELEMENT_EMPTY = 1017 +XML_RNGP_ELEMENT_CONTENT = 1018 +XML_RNGP_ELEMENT_NAME = 1019 +XML_RNGP_ELEMENT_NO_CONTENT = 1020 +XML_RNGP_ELEM_TEXT_CONFLICT = 1021 +XML_RNGP_EMPTY = 1022 +XML_RNGP_EMPTY_CONSTRUCT = 1023 +XML_RNGP_EMPTY_CONTENT = 1024 +XML_RNGP_EMPTY_NOT_EMPTY = 1025 +XML_RNGP_ERROR_TYPE_LIB = 1026 +XML_RNGP_EXCEPT_EMPTY = 1027 +XML_RNGP_EXCEPT_MISSING = 1028 +XML_RNGP_EXCEPT_MULTIPLE = 1029 +XML_RNGP_EXCEPT_NO_CONTENT = 1030 +XML_RNGP_EXTERNALREF_EMTPY = 1031 +XML_RNGP_EXTERNAL_REF_FAILURE = 1032 +XML_RNGP_EXTERNALREF_RECURSE = 1033 +XML_RNGP_FORBIDDEN_ATTRIBUTE = 1034 +XML_RNGP_FOREIGN_ELEMENT = 1035 +XML_RNGP_GRAMMAR_CONTENT = 1036 +XML_RNGP_GRAMMAR_EMPTY = 1037 +XML_RNGP_GRAMMAR_MISSING = 1038 +XML_RNGP_GRAMMAR_NO_START = 1039 +XML_RNGP_GROUP_ATTR_CONFLICT = 1040 +XML_RNGP_HREF_ERROR = 1041 +XML_RNGP_INCLUDE_EMPTY = 1042 +XML_RNGP_INCLUDE_FAILURE = 1043 +XML_RNGP_INCLUDE_RECURSE = 1044 +XML_RNGP_INTERLEAVE_ADD = 1045 +XML_RNGP_INTERLEAVE_CREATE_FAILED = 1046 +XML_RNGP_INTERLEAVE_EMPTY = 1047 +XML_RNGP_INTERLEAVE_NO_CONTENT = 1048 +XML_RNGP_INVALID_DEFINE_NAME = 1049 +XML_RNGP_INVALID_URI = 1050 +XML_RNGP_INVALID_VALUE = 1051 +XML_RNGP_MISSING_HREF = 1052 +XML_RNGP_NAME_MISSING = 1053 +XML_RNGP_NEED_COMBINE = 1054 +XML_RNGP_NOTALLOWED_NOT_EMPTY = 1055 +XML_RNGP_NSNAME_ATTR_ANCESTOR = 1056 +XML_RNGP_NSNAME_NO_NS = 1057 +XML_RNGP_PARAM_FORBIDDEN = 1058 +XML_RNGP_PARAM_NAME_MISSING = 1059 +XML_RNGP_PARENTREF_CREATE_FAILED = 1060 +XML_RNGP_PARENTREF_NAME_INVALID = 1061 +XML_RNGP_PARENTREF_NO_NAME = 1062 +XML_RNGP_PARENTREF_NO_PARENT = 1063 +XML_RNGP_PARENTREF_NOT_EMPTY = 1064 +XML_RNGP_PARSE_ERROR = 1065 +XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME = 1066 +XML_RNGP_PAT_ATTR_ATTR = 1067 +XML_RNGP_PAT_ATTR_ELEM = 1068 +XML_RNGP_PAT_DATA_EXCEPT_ATTR = 1069 +XML_RNGP_PAT_DATA_EXCEPT_ELEM = 1070 +XML_RNGP_PAT_DATA_EXCEPT_EMPTY = 1071 +XML_RNGP_PAT_DATA_EXCEPT_GROUP = 1072 +XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE = 1073 +XML_RNGP_PAT_DATA_EXCEPT_LIST = 1074 +XML_RNGP_PAT_DATA_EXCEPT_ONEMORE = 1075 +XML_RNGP_PAT_DATA_EXCEPT_REF = 1076 +XML_RNGP_PAT_DATA_EXCEPT_TEXT = 1077 +XML_RNGP_PAT_LIST_ATTR = 1078 +XML_RNGP_PAT_LIST_ELEM = 1079 +XML_RNGP_PAT_LIST_INTERLEAVE = 1080 +XML_RNGP_PAT_LIST_LIST = 1081 +XML_RNGP_PAT_LIST_REF = 1082 +XML_RNGP_PAT_LIST_TEXT = 1083 +XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME = 1084 +XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME = 1085 +XML_RNGP_PAT_ONEMORE_GROUP_ATTR = 1086 +XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR = 1087 +XML_RNGP_PAT_START_ATTR = 1088 +XML_RNGP_PAT_START_DATA = 1089 +XML_RNGP_PAT_START_EMPTY = 1090 +XML_RNGP_PAT_START_GROUP = 1091 +XML_RNGP_PAT_START_INTERLEAVE = 1092 +XML_RNGP_PAT_START_LIST = 1093 +XML_RNGP_PAT_START_ONEMORE = 1094 +XML_RNGP_PAT_START_TEXT = 1095 +XML_RNGP_PAT_START_VALUE = 1096 +XML_RNGP_PREFIX_UNDEFINED = 1097 +XML_RNGP_REF_CREATE_FAILED = 1098 +XML_RNGP_REF_CYCLE = 1099 +XML_RNGP_REF_NAME_INVALID = 1100 +XML_RNGP_REF_NO_DEF = 1101 +XML_RNGP_REF_NO_NAME = 1102 +XML_RNGP_REF_NOT_EMPTY = 1103 +XML_RNGP_START_CHOICE_AND_INTERLEAVE = 1104 +XML_RNGP_START_CONTENT = 1105 +XML_RNGP_START_EMPTY = 1106 +XML_RNGP_START_MISSING = 1107 +XML_RNGP_TEXT_EXPECTED = 1108 +XML_RNGP_TEXT_HAS_CHILD = 1109 +XML_RNGP_TYPE_MISSING = 1110 +XML_RNGP_TYPE_NOT_FOUND = 1111 +XML_RNGP_TYPE_VALUE = 1112 +XML_RNGP_UNKNOWN_ATTRIBUTE = 1113 +XML_RNGP_UNKNOWN_COMBINE = 1114 +XML_RNGP_UNKNOWN_CONSTRUCT = 1115 +XML_RNGP_UNKNOWN_TYPE_LIB = 1116 +XML_RNGP_URI_FRAGMENT = 1117 +XML_RNGP_URI_NOT_ABSOLUTE = 1118 +XML_RNGP_VALUE_EMPTY = 1119 +XML_RNGP_VALUE_NO_CONTENT = 1120 +XML_RNGP_XMLNS_NAME = 1121 +XML_RNGP_XML_NS = 1122 +XML_XPATH_EXPRESSION_OK = 1200 +XML_XPATH_NUMBER_ERROR = 1201 +XML_XPATH_UNFINISHED_LITERAL_ERROR = 1202 +XML_XPATH_START_LITERAL_ERROR = 1203 +XML_XPATH_VARIABLE_REF_ERROR = 1204 +XML_XPATH_UNDEF_VARIABLE_ERROR = 1205 +XML_XPATH_INVALID_PREDICATE_ERROR = 1206 +XML_XPATH_EXPR_ERROR = 1207 +XML_XPATH_UNCLOSED_ERROR = 1208 +XML_XPATH_UNKNOWN_FUNC_ERROR = 1209 +XML_XPATH_INVALID_OPERAND = 1210 +XML_XPATH_INVALID_TYPE = 1211 +XML_XPATH_INVALID_ARITY = 1212 +XML_XPATH_INVALID_CTXT_SIZE = 1213 +XML_XPATH_INVALID_CTXT_POSITION = 1214 +XML_XPATH_MEMORY_ERROR = 1215 +XML_XPTR_SYNTAX_ERROR = 1216 +XML_XPTR_RESOURCE_ERROR = 1217 +XML_XPTR_SUB_RESOURCE_ERROR = 1218 +XML_XPATH_UNDEF_PREFIX_ERROR = 1219 +XML_XPATH_ENCODING_ERROR = 1220 +XML_XPATH_INVALID_CHAR_ERROR = 1221 +XML_TREE_INVALID_HEX = 1300 +XML_TREE_INVALID_DEC = 1301 +XML_TREE_UNTERMINATED_ENTITY = 1302 +XML_TREE_NOT_UTF8 = 1303 +XML_SAVE_NOT_UTF8 = 1400 +XML_SAVE_CHAR_INVALID = 1401 +XML_SAVE_NO_DOCTYPE = 1402 +XML_SAVE_UNKNOWN_ENCODING = 1403 +XML_REGEXP_COMPILE_ERROR = 1450 +XML_IO_UNKNOWN = 1500 +XML_IO_EACCES = 1501 +XML_IO_EAGAIN = 1502 +XML_IO_EBADF = 1503 +XML_IO_EBADMSG = 1504 +XML_IO_EBUSY = 1505 +XML_IO_ECANCELED = 1506 +XML_IO_ECHILD = 1507 +XML_IO_EDEADLK = 1508 +XML_IO_EDOM = 1509 +XML_IO_EEXIST = 1510 +XML_IO_EFAULT = 1511 +XML_IO_EFBIG = 1512 +XML_IO_EINPROGRESS = 1513 +XML_IO_EINTR = 1514 +XML_IO_EINVAL = 1515 +XML_IO_EIO = 1516 +XML_IO_EISDIR = 1517 +XML_IO_EMFILE = 1518 +XML_IO_EMLINK = 1519 +XML_IO_EMSGSIZE = 1520 +XML_IO_ENAMETOOLONG = 1521 +XML_IO_ENFILE = 1522 +XML_IO_ENODEV = 1523 +XML_IO_ENOENT = 1524 +XML_IO_ENOEXEC = 1525 +XML_IO_ENOLCK = 1526 +XML_IO_ENOMEM = 1527 +XML_IO_ENOSPC = 1528 +XML_IO_ENOSYS = 1529 +XML_IO_ENOTDIR = 1530 +XML_IO_ENOTEMPTY = 1531 +XML_IO_ENOTSUP = 1532 +XML_IO_ENOTTY = 1533 +XML_IO_ENXIO = 1534 +XML_IO_EPERM = 1535 +XML_IO_EPIPE = 1536 +XML_IO_ERANGE = 1537 +XML_IO_EROFS = 1538 +XML_IO_ESPIPE = 1539 +XML_IO_ESRCH = 1540 +XML_IO_ETIMEDOUT = 1541 +XML_IO_EXDEV = 1542 +XML_IO_NETWORK_ATTEMPT = 1543 +XML_IO_ENCODER = 1544 +XML_IO_FLUSH = 1545 +XML_IO_WRITE = 1546 +XML_IO_NO_INPUT = 1547 +XML_IO_BUFFER_FULL = 1548 +XML_IO_LOAD_ERROR = 1549 +XML_IO_ENOTSOCK = 1550 +XML_IO_EISCONN = 1551 +XML_IO_ECONNREFUSED = 1552 +XML_IO_ENETUNREACH = 1553 +XML_IO_EADDRINUSE = 1554 +XML_IO_EALREADY = 1555 +XML_IO_EAFNOSUPPORT = 1556 +XML_XINCLUDE_RECURSION = 1600 +XML_XINCLUDE_PARSE_VALUE = 1601 +XML_XINCLUDE_ENTITY_DEF_MISMATCH = 1602 +XML_XINCLUDE_NO_HREF = 1603 +XML_XINCLUDE_NO_FALLBACK = 1604 +XML_XINCLUDE_HREF_URI = 1605 +XML_XINCLUDE_TEXT_FRAGMENT = 1606 +XML_XINCLUDE_TEXT_DOCUMENT = 1607 +XML_XINCLUDE_INVALID_CHAR = 1608 +XML_XINCLUDE_BUILD_FAILED = 1609 +XML_XINCLUDE_UNKNOWN_ENCODING = 1610 +XML_XINCLUDE_MULTIPLE_ROOT = 1611 +XML_XINCLUDE_XPTR_FAILED = 1612 +XML_XINCLUDE_XPTR_RESULT = 1613 +XML_XINCLUDE_INCLUDE_IN_INCLUDE = 1614 +XML_XINCLUDE_FALLBACKS_IN_INCLUDE = 1615 +XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE = 1616 +XML_XINCLUDE_DEPRECATED_NS = 1617 +XML_XINCLUDE_FRAGMENT_ID = 1618 +XML_CATALOG_MISSING_ATTR = 1650 +XML_CATALOG_ENTRY_BROKEN = 1651 +XML_CATALOG_PREFER_VALUE = 1652 +XML_CATALOG_NOT_CATALOG = 1653 +XML_CATALOG_RECURSION = 1654 +XML_SCHEMAP_PREFIX_UNDEFINED = 1700 +XML_SCHEMAP_ATTRFORMDEFAULT_VALUE = 1701 +XML_SCHEMAP_ATTRGRP_NONAME_NOREF = 1702 +XML_SCHEMAP_ATTR_NONAME_NOREF = 1703 +XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF = 1704 +XML_SCHEMAP_ELEMFORMDEFAULT_VALUE = 1705 +XML_SCHEMAP_ELEM_NONAME_NOREF = 1706 +XML_SCHEMAP_EXTENSION_NO_BASE = 1707 +XML_SCHEMAP_FACET_NO_VALUE = 1708 +XML_SCHEMAP_FAILED_BUILD_IMPORT = 1709 +XML_SCHEMAP_GROUP_NONAME_NOREF = 1710 +XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI = 1711 +XML_SCHEMAP_IMPORT_REDEFINE_NSNAME = 1712 +XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI = 1713 +XML_SCHEMAP_INVALID_BOOLEAN = 1714 +XML_SCHEMAP_INVALID_ENUM = 1715 +XML_SCHEMAP_INVALID_FACET = 1716 +XML_SCHEMAP_INVALID_FACET_VALUE = 1717 +XML_SCHEMAP_INVALID_MAXOCCURS = 1718 +XML_SCHEMAP_INVALID_MINOCCURS = 1719 +XML_SCHEMAP_INVALID_REF_AND_SUBTYPE = 1720 +XML_SCHEMAP_INVALID_WHITE_SPACE = 1721 +XML_SCHEMAP_NOATTR_NOREF = 1722 +XML_SCHEMAP_NOTATION_NO_NAME = 1723 +XML_SCHEMAP_NOTYPE_NOREF = 1724 +XML_SCHEMAP_REF_AND_SUBTYPE = 1725 +XML_SCHEMAP_RESTRICTION_NONAME_NOREF = 1726 +XML_SCHEMAP_SIMPLETYPE_NONAME = 1727 +XML_SCHEMAP_TYPE_AND_SUBTYPE = 1728 +XML_SCHEMAP_UNKNOWN_ALL_CHILD = 1729 +XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD = 1730 +XML_SCHEMAP_UNKNOWN_ATTR_CHILD = 1731 +XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD = 1732 +XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP = 1733 +XML_SCHEMAP_UNKNOWN_BASE_TYPE = 1734 +XML_SCHEMAP_UNKNOWN_CHOICE_CHILD = 1735 +XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD = 1736 +XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD = 1737 +XML_SCHEMAP_UNKNOWN_ELEM_CHILD = 1738 +XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD = 1739 +XML_SCHEMAP_UNKNOWN_FACET_CHILD = 1740 +XML_SCHEMAP_UNKNOWN_FACET_TYPE = 1741 +XML_SCHEMAP_UNKNOWN_GROUP_CHILD = 1742 +XML_SCHEMAP_UNKNOWN_IMPORT_CHILD = 1743 +XML_SCHEMAP_UNKNOWN_LIST_CHILD = 1744 +XML_SCHEMAP_UNKNOWN_NOTATION_CHILD = 1745 +XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD = 1746 +XML_SCHEMAP_UNKNOWN_REF = 1747 +XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD = 1748 +XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD = 1749 +XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD = 1750 +XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD = 1751 +XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD = 1752 +XML_SCHEMAP_UNKNOWN_TYPE = 1753 +XML_SCHEMAP_UNKNOWN_UNION_CHILD = 1754 +XML_SCHEMAP_ELEM_DEFAULT_FIXED = 1755 +XML_SCHEMAP_REGEXP_INVALID = 1756 +XML_SCHEMAP_FAILED_LOAD = 1757 +XML_SCHEMAP_NOTHING_TO_PARSE = 1758 +XML_SCHEMAP_NOROOT = 1759 +XML_SCHEMAP_REDEFINED_GROUP = 1760 +XML_SCHEMAP_REDEFINED_TYPE = 1761 +XML_SCHEMAP_REDEFINED_ELEMENT = 1762 +XML_SCHEMAP_REDEFINED_ATTRGROUP = 1763 +XML_SCHEMAP_REDEFINED_ATTR = 1764 +XML_SCHEMAP_REDEFINED_NOTATION = 1765 +XML_SCHEMAP_FAILED_PARSE = 1766 +XML_SCHEMAP_UNKNOWN_PREFIX = 1767 +XML_SCHEMAP_DEF_AND_PREFIX = 1768 +XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD = 1769 +XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI = 1770 +XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI = 1771 +XML_SCHEMAP_NOT_SCHEMA = 1772 +XML_SCHEMAP_UNKNOWN_MEMBER_TYPE = 1773 +XML_SCHEMAP_INVALID_ATTR_USE = 1774 +XML_SCHEMAP_RECURSIVE = 1775 +XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE = 1776 +XML_SCHEMAP_INVALID_ATTR_COMBINATION = 1777 +XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION = 1778 +XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD = 1779 +XML_SCHEMAP_INVALID_ATTR_NAME = 1780 +XML_SCHEMAP_REF_AND_CONTENT = 1781 +XML_SCHEMAP_CT_PROPS_CORRECT_1 = 1782 +XML_SCHEMAP_CT_PROPS_CORRECT_2 = 1783 +XML_SCHEMAP_CT_PROPS_CORRECT_3 = 1784 +XML_SCHEMAP_CT_PROPS_CORRECT_4 = 1785 +XML_SCHEMAP_CT_PROPS_CORRECT_5 = 1786 +XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1 = 1787 +XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1 = 1788 +XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2 = 1789 +XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2 = 1790 +XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3 = 1791 +XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER = 1792 +XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE = 1793 +XML_SCHEMAP_UNION_NOT_EXPRESSIBLE = 1794 +XML_SCHEMAP_SRC_IMPORT_3_1 = 1795 +XML_SCHEMAP_SRC_IMPORT_3_2 = 1796 +XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1 = 1797 +XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2 = 1798 +XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3 = 1799 +XML_SCHEMAP_COS_CT_EXTENDS_1_3 = 1800 +XML_SCHEMAV_NOROOT = 1801 +XML_SCHEMAV_UNDECLAREDELEM = 1802 +XML_SCHEMAV_NOTTOPLEVEL = 1803 +XML_SCHEMAV_MISSING = 1804 +XML_SCHEMAV_WRONGELEM = 1805 +XML_SCHEMAV_NOTYPE = 1806 +XML_SCHEMAV_NOROLLBACK = 1807 +XML_SCHEMAV_ISABSTRACT = 1808 +XML_SCHEMAV_NOTEMPTY = 1809 +XML_SCHEMAV_ELEMCONT = 1810 +XML_SCHEMAV_HAVEDEFAULT = 1811 +XML_SCHEMAV_NOTNILLABLE = 1812 +XML_SCHEMAV_EXTRACONTENT = 1813 +XML_SCHEMAV_INVALIDATTR = 1814 +XML_SCHEMAV_INVALIDELEM = 1815 +XML_SCHEMAV_NOTDETERMINIST = 1816 +XML_SCHEMAV_CONSTRUCT = 1817 +XML_SCHEMAV_INTERNAL = 1818 +XML_SCHEMAV_NOTSIMPLE = 1819 +XML_SCHEMAV_ATTRUNKNOWN = 1820 +XML_SCHEMAV_ATTRINVALID = 1821 +XML_SCHEMAV_VALUE = 1822 +XML_SCHEMAV_FACET = 1823 +XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1 = 1824 +XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2 = 1825 +XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3 = 1826 +XML_SCHEMAV_CVC_TYPE_3_1_1 = 1827 +XML_SCHEMAV_CVC_TYPE_3_1_2 = 1828 +XML_SCHEMAV_CVC_FACET_VALID = 1829 +XML_SCHEMAV_CVC_LENGTH_VALID = 1830 +XML_SCHEMAV_CVC_MINLENGTH_VALID = 1831 +XML_SCHEMAV_CVC_MAXLENGTH_VALID = 1832 +XML_SCHEMAV_CVC_MININCLUSIVE_VALID = 1833 +XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID = 1834 +XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID = 1835 +XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID = 1836 +XML_SCHEMAV_CVC_TOTALDIGITS_VALID = 1837 +XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID = 1838 +XML_SCHEMAV_CVC_PATTERN_VALID = 1839 +XML_SCHEMAV_CVC_ENUMERATION_VALID = 1840 +XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1 = 1841 +XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2 = 1842 +XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3 = 1843 +XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4 = 1844 +XML_SCHEMAV_CVC_ELT_1 = 1845 +XML_SCHEMAV_CVC_ELT_2 = 1846 +XML_SCHEMAV_CVC_ELT_3_1 = 1847 +XML_SCHEMAV_CVC_ELT_3_2_1 = 1848 +XML_SCHEMAV_CVC_ELT_3_2_2 = 1849 +XML_SCHEMAV_CVC_ELT_4_1 = 1850 +XML_SCHEMAV_CVC_ELT_4_2 = 1851 +XML_SCHEMAV_CVC_ELT_4_3 = 1852 +XML_SCHEMAV_CVC_ELT_5_1_1 = 1853 +XML_SCHEMAV_CVC_ELT_5_1_2 = 1854 +XML_SCHEMAV_CVC_ELT_5_2_1 = 1855 +XML_SCHEMAV_CVC_ELT_5_2_2_1 = 1856 +XML_SCHEMAV_CVC_ELT_5_2_2_2_1 = 1857 +XML_SCHEMAV_CVC_ELT_5_2_2_2_2 = 1858 +XML_SCHEMAV_CVC_ELT_6 = 1859 +XML_SCHEMAV_CVC_ELT_7 = 1860 +XML_SCHEMAV_CVC_ATTRIBUTE_1 = 1861 +XML_SCHEMAV_CVC_ATTRIBUTE_2 = 1862 +XML_SCHEMAV_CVC_ATTRIBUTE_3 = 1863 +XML_SCHEMAV_CVC_ATTRIBUTE_4 = 1864 +XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1 = 1865 +XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1 = 1866 +XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2 = 1867 +XML_SCHEMAV_CVC_COMPLEX_TYPE_4 = 1868 +XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1 = 1869 +XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2 = 1870 +XML_SCHEMAV_ELEMENT_CONTENT = 1871 +XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING = 1872 +XML_SCHEMAV_CVC_COMPLEX_TYPE_1 = 1873 +XML_SCHEMAV_CVC_AU = 1874 +XML_SCHEMAV_CVC_TYPE_1 = 1875 +XML_SCHEMAV_CVC_TYPE_2 = 1876 +XML_SCHEMAV_CVC_IDC = 1877 +XML_SCHEMAV_CVC_WILDCARD = 1878 +XML_SCHEMAV_MISC = 1879 +XML_XPTR_UNKNOWN_SCHEME = 1900 +XML_XPTR_CHILDSEQ_START = 1901 +XML_XPTR_EVAL_FAILED = 1902 +XML_XPTR_EXTRA_OBJECTS = 1903 +XML_C14N_CREATE_CTXT = 1950 +XML_C14N_REQUIRES_UTF8 = 1951 +XML_C14N_CREATE_STACK = 1952 +XML_C14N_INVALID_NODE = 1953 +XML_C14N_UNKNOW_NODE = 1954 +XML_C14N_RELATIVE_NAMESPACE = 1955 +XML_FTP_PASV_ANSWER = 2000 +XML_FTP_EPSV_ANSWER = 2001 +XML_FTP_ACCNT = 2002 +XML_FTP_URL_SYNTAX = 2003 +XML_HTTP_URL_SYNTAX = 2020 +XML_HTTP_USE_IP = 2021 +XML_HTTP_UNKNOWN_HOST = 2022 +XML_SCHEMAP_SRC_SIMPLE_TYPE_1 = 3000 +XML_SCHEMAP_SRC_SIMPLE_TYPE_2 = 3001 +XML_SCHEMAP_SRC_SIMPLE_TYPE_3 = 3002 +XML_SCHEMAP_SRC_SIMPLE_TYPE_4 = 3003 +XML_SCHEMAP_SRC_RESOLVE = 3004 +XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE = 3005 +XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE = 3006 +XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES = 3007 +XML_SCHEMAP_ST_PROPS_CORRECT_1 = 3008 +XML_SCHEMAP_ST_PROPS_CORRECT_2 = 3009 +XML_SCHEMAP_ST_PROPS_CORRECT_3 = 3010 +XML_SCHEMAP_COS_ST_RESTRICTS_1_1 = 3011 +XML_SCHEMAP_COS_ST_RESTRICTS_1_2 = 3012 +XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1 = 3013 +XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2 = 3014 +XML_SCHEMAP_COS_ST_RESTRICTS_2_1 = 3015 +XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1 = 3016 +XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2 = 3017 +XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1 = 3018 +XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2 = 3019 +XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3 = 3020 +XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4 = 3021 +XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5 = 3022 +XML_SCHEMAP_COS_ST_RESTRICTS_3_1 = 3023 +XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1 = 3024 +XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2 = 3025 +XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2 = 3026 +XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1 = 3027 +XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3 = 3028 +XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4 = 3029 +XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5 = 3030 +XML_SCHEMAP_COS_ST_DERIVED_OK_2_1 = 3031 +XML_SCHEMAP_COS_ST_DERIVED_OK_2_2 = 3032 +XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED = 3033 +XML_SCHEMAP_S4S_ELEM_MISSING = 3034 +XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED = 3035 +XML_SCHEMAP_S4S_ATTR_MISSING = 3036 +XML_SCHEMAP_S4S_ATTR_INVALID_VALUE = 3037 +XML_SCHEMAP_SRC_ELEMENT_1 = 3038 +XML_SCHEMAP_SRC_ELEMENT_2_1 = 3039 +XML_SCHEMAP_SRC_ELEMENT_2_2 = 3040 +XML_SCHEMAP_SRC_ELEMENT_3 = 3041 +XML_SCHEMAP_P_PROPS_CORRECT_1 = 3042 +XML_SCHEMAP_P_PROPS_CORRECT_2_1 = 3043 +XML_SCHEMAP_P_PROPS_CORRECT_2_2 = 3044 +XML_SCHEMAP_E_PROPS_CORRECT_2 = 3045 +XML_SCHEMAP_E_PROPS_CORRECT_3 = 3046 +XML_SCHEMAP_E_PROPS_CORRECT_4 = 3047 +XML_SCHEMAP_E_PROPS_CORRECT_5 = 3048 +XML_SCHEMAP_E_PROPS_CORRECT_6 = 3049 +XML_SCHEMAP_SRC_INCLUDE = 3050 +XML_SCHEMAP_SRC_ATTRIBUTE_1 = 3051 +XML_SCHEMAP_SRC_ATTRIBUTE_2 = 3052 +XML_SCHEMAP_SRC_ATTRIBUTE_3_1 = 3053 +XML_SCHEMAP_SRC_ATTRIBUTE_3_2 = 3054 +XML_SCHEMAP_SRC_ATTRIBUTE_4 = 3055 +XML_SCHEMAP_NO_XMLNS = 3056 +XML_SCHEMAP_NO_XSI = 3057 +XML_SCHEMAP_COS_VALID_DEFAULT_1 = 3058 +XML_SCHEMAP_COS_VALID_DEFAULT_2_1 = 3059 +XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1 = 3060 +XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2 = 3061 +XML_SCHEMAP_CVC_SIMPLE_TYPE = 3062 +XML_SCHEMAP_COS_CT_EXTENDS_1_1 = 3063 +XML_SCHEMAP_SRC_IMPORT_1_1 = 3064 +XML_SCHEMAP_SRC_IMPORT_1_2 = 3065 +XML_SCHEMAP_SRC_IMPORT_2 = 3066 +XML_SCHEMAP_SRC_IMPORT_2_1 = 3067 +XML_SCHEMAP_SRC_IMPORT_2_2 = 3068 +XML_SCHEMAP_INTERNAL = 3069 +XML_SCHEMAP_NOT_DETERMINISTIC = 3070 +XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1 = 3071 +XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2 = 3072 +XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3 = 3073 +XML_SCHEMAP_MG_PROPS_CORRECT_1 = 3074 +XML_SCHEMAP_MG_PROPS_CORRECT_2 = 3075 +XML_SCHEMAP_SRC_CT_1 = 3076 +XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3 = 3077 +XML_SCHEMAP_AU_PROPS_CORRECT_2 = 3078 +XML_SCHEMAP_A_PROPS_CORRECT_2 = 3079 +XML_SCHEMAP_C_PROPS_CORRECT = 3080 +XML_SCHEMAP_SRC_REDEFINE = 3081 +XML_SCHEMAP_SRC_IMPORT = 3082 +XML_SCHEMAP_WARN_SKIP_SCHEMA = 3083 +XML_SCHEMAP_WARN_UNLOCATED_SCHEMA = 3084 +XML_SCHEMAP_WARN_ATTR_REDECL_PROH = 3085 +XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH = 3086 +XML_SCHEMAP_AG_PROPS_CORRECT = 3087 +XML_SCHEMAP_COS_CT_EXTENDS_1_2 = 3088 +XML_SCHEMAP_AU_PROPS_CORRECT = 3089 +XML_SCHEMAP_A_PROPS_CORRECT_3 = 3090 +XML_SCHEMAP_COS_ALL_LIMITED = 3091 +XML_SCHEMATRONV_ASSERT = 4000 +XML_SCHEMATRONV_REPORT = 4001 +XML_MODULE_OPEN = 4900 +XML_MODULE_CLOSE = 4901 +XML_CHECK_FOUND_ELEMENT = 5000 +XML_CHECK_FOUND_ATTRIBUTE = 5001 +XML_CHECK_FOUND_TEXT = 5002 +XML_CHECK_FOUND_CDATA = 5003 +XML_CHECK_FOUND_ENTITYREF = 5004 +XML_CHECK_FOUND_ENTITY = 5005 +XML_CHECK_FOUND_PI = 5006 +XML_CHECK_FOUND_COMMENT = 5007 +XML_CHECK_FOUND_DOCTYPE = 5008 +XML_CHECK_FOUND_FRAGMENT = 5009 +XML_CHECK_FOUND_NOTATION = 5010 +XML_CHECK_UNKNOWN_NODE = 5011 +XML_CHECK_ENTITY_TYPE = 5012 +XML_CHECK_NO_PARENT = 5013 +XML_CHECK_NO_DOC = 5014 +XML_CHECK_NO_NAME = 5015 +XML_CHECK_NO_ELEM = 5016 +XML_CHECK_WRONG_DOC = 5017 +XML_CHECK_NO_PREV = 5018 +XML_CHECK_WRONG_PREV = 5019 +XML_CHECK_NO_NEXT = 5020 +XML_CHECK_WRONG_NEXT = 5021 +XML_CHECK_NOT_DTD = 5022 +XML_CHECK_NOT_ATTR = 5023 +XML_CHECK_NOT_ATTR_DECL = 5024 +XML_CHECK_NOT_ELEM_DECL = 5025 +XML_CHECK_NOT_ENTITY_DECL = 5026 +XML_CHECK_NOT_NS_DECL = 5027 +XML_CHECK_NO_HREF = 5028 +XML_CHECK_WRONG_PARENT = 5029 +XML_CHECK_NS_SCOPE = 5030 +XML_CHECK_NS_ANCESTOR = 5031 +XML_CHECK_NOT_UTF8 = 5032 +XML_CHECK_NO_DICT = 5033 +XML_CHECK_NOT_NCNAME = 5034 +XML_CHECK_OUTSIDE_DICT = 5035 +XML_CHECK_WRONG_NAME = 5036 +XML_CHECK_NAME_NOT_NULL = 5037 +XML_I18N_NO_NAME = 6000 +XML_I18N_NO_HANDLER = 6001 +XML_I18N_EXCESS_HANDLER = 6002 +XML_I18N_CONV_FAILED = 6003 +XML_I18N_NO_OUTPUT = 6004 +XML_BUF_OVERFLOW = 7000 + +# xmlExpNodeType +XML_EXP_EMPTY = 0 +XML_EXP_FORBID = 1 +XML_EXP_ATOM = 2 +XML_EXP_SEQ = 3 +XML_EXP_OR = 4 +XML_EXP_COUNT = 5 + +# xmlElementContentType +XML_ELEMENT_CONTENT_PCDATA = 1 +XML_ELEMENT_CONTENT_ELEMENT = 2 +XML_ELEMENT_CONTENT_SEQ = 3 +XML_ELEMENT_CONTENT_OR = 4 + +# xmlParserProperties +XML_PARSER_LOADDTD = 1 +XML_PARSER_DEFAULTATTRS = 2 +XML_PARSER_VALIDATE = 3 +XML_PARSER_SUBST_ENTITIES = 4 + +# xmlReaderTypes +XML_READER_TYPE_NONE = 0 +XML_READER_TYPE_ELEMENT = 1 +XML_READER_TYPE_ATTRIBUTE = 2 +XML_READER_TYPE_TEXT = 3 +XML_READER_TYPE_CDATA = 4 +XML_READER_TYPE_ENTITY_REFERENCE = 5 +XML_READER_TYPE_ENTITY = 6 +XML_READER_TYPE_PROCESSING_INSTRUCTION = 7 +XML_READER_TYPE_COMMENT = 8 +XML_READER_TYPE_DOCUMENT = 9 +XML_READER_TYPE_DOCUMENT_TYPE = 10 +XML_READER_TYPE_DOCUMENT_FRAGMENT = 11 +XML_READER_TYPE_NOTATION = 12 +XML_READER_TYPE_WHITESPACE = 13 +XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14 +XML_READER_TYPE_END_ELEMENT = 15 +XML_READER_TYPE_END_ENTITY = 16 +XML_READER_TYPE_XML_DECLARATION = 17 + +# xmlCatalogPrefer +XML_CATA_PREFER_NONE = 0 +XML_CATA_PREFER_PUBLIC = 1 +XML_CATA_PREFER_SYSTEM = 2 + +# xmlElementType +XML_ELEMENT_NODE = 1 +XML_ATTRIBUTE_NODE = 2 +XML_TEXT_NODE = 3 +XML_CDATA_SECTION_NODE = 4 +XML_ENTITY_REF_NODE = 5 +XML_ENTITY_NODE = 6 +XML_PI_NODE = 7 +XML_COMMENT_NODE = 8 +XML_DOCUMENT_NODE = 9 +XML_DOCUMENT_TYPE_NODE = 10 +XML_DOCUMENT_FRAG_NODE = 11 +XML_NOTATION_NODE = 12 +XML_HTML_DOCUMENT_NODE = 13 +XML_DTD_NODE = 14 +XML_ELEMENT_DECL = 15 +XML_ATTRIBUTE_DECL = 16 +XML_ENTITY_DECL = 17 +XML_NAMESPACE_DECL = 18 +XML_XINCLUDE_START = 19 +XML_XINCLUDE_END = 20 +XML_DOCB_DOCUMENT_NODE = 21 + +# xlinkActuate +XLINK_ACTUATE_NONE = 0 +XLINK_ACTUATE_AUTO = 1 +XLINK_ACTUATE_ONREQUEST = 2 + +# xmlFeature +XML_WITH_THREAD = 1 +XML_WITH_TREE = 2 +XML_WITH_OUTPUT = 3 +XML_WITH_PUSH = 4 +XML_WITH_READER = 5 +XML_WITH_PATTERN = 6 +XML_WITH_WRITER = 7 +XML_WITH_SAX1 = 8 +XML_WITH_FTP = 9 +XML_WITH_HTTP = 10 +XML_WITH_VALID = 11 +XML_WITH_HTML = 12 +XML_WITH_LEGACY = 13 +XML_WITH_C14N = 14 +XML_WITH_CATALOG = 15 +XML_WITH_XPATH = 16 +XML_WITH_XPTR = 17 +XML_WITH_XINCLUDE = 18 +XML_WITH_ICONV = 19 +XML_WITH_ISO8859X = 20 +XML_WITH_UNICODE = 21 +XML_WITH_REGEXP = 22 +XML_WITH_AUTOMATA = 23 +XML_WITH_EXPR = 24 +XML_WITH_SCHEMAS = 25 +XML_WITH_SCHEMATRON = 26 +XML_WITH_MODULES = 27 +XML_WITH_DEBUG = 28 +XML_WITH_DEBUG_MEM = 29 +XML_WITH_DEBUG_RUN = 30 +XML_WITH_ZLIB = 31 +XML_WITH_ICU = 32 +XML_WITH_LZMA = 33 +XML_WITH_NONE = 99999 + +# xmlElementContentOccur +XML_ELEMENT_CONTENT_ONCE = 1 +XML_ELEMENT_CONTENT_OPT = 2 +XML_ELEMENT_CONTENT_MULT = 3 +XML_ELEMENT_CONTENT_PLUS = 4 + +# xmlXPathError +XPATH_EXPRESSION_OK = 0 +XPATH_NUMBER_ERROR = 1 +XPATH_UNFINISHED_LITERAL_ERROR = 2 +XPATH_START_LITERAL_ERROR = 3 +XPATH_VARIABLE_REF_ERROR = 4 +XPATH_UNDEF_VARIABLE_ERROR = 5 +XPATH_INVALID_PREDICATE_ERROR = 6 +XPATH_EXPR_ERROR = 7 +XPATH_UNCLOSED_ERROR = 8 +XPATH_UNKNOWN_FUNC_ERROR = 9 +XPATH_INVALID_OPERAND = 10 +XPATH_INVALID_TYPE = 11 +XPATH_INVALID_ARITY = 12 +XPATH_INVALID_CTXT_SIZE = 13 +XPATH_INVALID_CTXT_POSITION = 14 +XPATH_MEMORY_ERROR = 15 +XPTR_SYNTAX_ERROR = 16 +XPTR_RESOURCE_ERROR = 17 +XPTR_SUB_RESOURCE_ERROR = 18 +XPATH_UNDEF_PREFIX_ERROR = 19 +XPATH_ENCODING_ERROR = 20 +XPATH_INVALID_CHAR_ERROR = 21 +XPATH_INVALID_CTXT = 22 +XPATH_STACK_ERROR = 23 +XPATH_FORBID_VARIABLE_ERROR = 24 + +# xmlTextReaderMode +XML_TEXTREADER_MODE_INITIAL = 0 +XML_TEXTREADER_MODE_INTERACTIVE = 1 +XML_TEXTREADER_MODE_ERROR = 2 +XML_TEXTREADER_MODE_EOF = 3 +XML_TEXTREADER_MODE_CLOSED = 4 +XML_TEXTREADER_MODE_READING = 5 + +# xmlErrorLevel +XML_ERR_NONE = 0 +XML_ERR_WARNING = 1 +XML_ERR_ERROR = 2 +XML_ERR_FATAL = 3 + +# xmlCharEncoding +XML_CHAR_ENCODING_ERROR = -1 +XML_CHAR_ENCODING_NONE = 0 +XML_CHAR_ENCODING_UTF8 = 1 +XML_CHAR_ENCODING_UTF16LE = 2 +XML_CHAR_ENCODING_UTF16BE = 3 +XML_CHAR_ENCODING_UCS4LE = 4 +XML_CHAR_ENCODING_UCS4BE = 5 +XML_CHAR_ENCODING_EBCDIC = 6 +XML_CHAR_ENCODING_UCS4_2143 = 7 +XML_CHAR_ENCODING_UCS4_3412 = 8 +XML_CHAR_ENCODING_UCS2 = 9 +XML_CHAR_ENCODING_8859_1 = 10 +XML_CHAR_ENCODING_8859_2 = 11 +XML_CHAR_ENCODING_8859_3 = 12 +XML_CHAR_ENCODING_8859_4 = 13 +XML_CHAR_ENCODING_8859_5 = 14 +XML_CHAR_ENCODING_8859_6 = 15 +XML_CHAR_ENCODING_8859_7 = 16 +XML_CHAR_ENCODING_8859_8 = 17 +XML_CHAR_ENCODING_8859_9 = 18 +XML_CHAR_ENCODING_2022_JP = 19 +XML_CHAR_ENCODING_SHIFT_JIS = 20 +XML_CHAR_ENCODING_EUC_JP = 21 +XML_CHAR_ENCODING_ASCII = 22 + +# xmlErrorDomain +XML_FROM_NONE = 0 +XML_FROM_PARSER = 1 +XML_FROM_TREE = 2 +XML_FROM_NAMESPACE = 3 +XML_FROM_DTD = 4 +XML_FROM_HTML = 5 +XML_FROM_MEMORY = 6 +XML_FROM_OUTPUT = 7 +XML_FROM_IO = 8 +XML_FROM_FTP = 9 +XML_FROM_HTTP = 10 +XML_FROM_XINCLUDE = 11 +XML_FROM_XPATH = 12 +XML_FROM_XPOINTER = 13 +XML_FROM_REGEXP = 14 +XML_FROM_DATATYPE = 15 +XML_FROM_SCHEMASP = 16 +XML_FROM_SCHEMASV = 17 +XML_FROM_RELAXNGP = 18 +XML_FROM_RELAXNGV = 19 +XML_FROM_CATALOG = 20 +XML_FROM_C14N = 21 +XML_FROM_XSLT = 22 +XML_FROM_VALID = 23 +XML_FROM_CHECK = 24 +XML_FROM_WRITER = 25 +XML_FROM_MODULE = 26 +XML_FROM_I18N = 27 +XML_FROM_SCHEMATRONV = 28 +XML_FROM_BUFFER = 29 +XML_FROM_URI = 30 + +# htmlStatus +HTML_NA = 0 +HTML_INVALID = 1 +HTML_DEPRECATED = 2 +HTML_VALID = 4 +HTML_REQUIRED = 12 + +# xmlSchemaValidOption +XML_SCHEMA_VAL_VC_I_CREATE = 1 + +# xmlSchemaWhitespaceValueType +XML_SCHEMA_WHITESPACE_UNKNOWN = 0 +XML_SCHEMA_WHITESPACE_PRESERVE = 1 +XML_SCHEMA_WHITESPACE_REPLACE = 2 +XML_SCHEMA_WHITESPACE_COLLAPSE = 3 + +# htmlParserOption +HTML_PARSE_RECOVER = 1 +HTML_PARSE_NODEFDTD = 4 +HTML_PARSE_NOERROR = 32 +HTML_PARSE_NOWARNING = 64 +HTML_PARSE_PEDANTIC = 128 +HTML_PARSE_NOBLANKS = 256 +HTML_PARSE_NONET = 2048 +HTML_PARSE_NOIMPLIED = 8192 +HTML_PARSE_COMPACT = 65536 +HTML_PARSE_IGNORE_ENC = 2097152 + +# xmlRelaxNGValidErr +XML_RELAXNG_OK = 0 +XML_RELAXNG_ERR_MEMORY = 1 +XML_RELAXNG_ERR_TYPE = 2 +XML_RELAXNG_ERR_TYPEVAL = 3 +XML_RELAXNG_ERR_DUPID = 4 +XML_RELAXNG_ERR_TYPECMP = 5 +XML_RELAXNG_ERR_NOSTATE = 6 +XML_RELAXNG_ERR_NODEFINE = 7 +XML_RELAXNG_ERR_LISTEXTRA = 8 +XML_RELAXNG_ERR_LISTEMPTY = 9 +XML_RELAXNG_ERR_INTERNODATA = 10 +XML_RELAXNG_ERR_INTERSEQ = 11 +XML_RELAXNG_ERR_INTEREXTRA = 12 +XML_RELAXNG_ERR_ELEMNAME = 13 +XML_RELAXNG_ERR_ATTRNAME = 14 +XML_RELAXNG_ERR_ELEMNONS = 15 +XML_RELAXNG_ERR_ATTRNONS = 16 +XML_RELAXNG_ERR_ELEMWRONGNS = 17 +XML_RELAXNG_ERR_ATTRWRONGNS = 18 +XML_RELAXNG_ERR_ELEMEXTRANS = 19 +XML_RELAXNG_ERR_ATTREXTRANS = 20 +XML_RELAXNG_ERR_ELEMNOTEMPTY = 21 +XML_RELAXNG_ERR_NOELEM = 22 +XML_RELAXNG_ERR_NOTELEM = 23 +XML_RELAXNG_ERR_ATTRVALID = 24 +XML_RELAXNG_ERR_CONTENTVALID = 25 +XML_RELAXNG_ERR_EXTRACONTENT = 26 +XML_RELAXNG_ERR_INVALIDATTR = 27 +XML_RELAXNG_ERR_DATAELEM = 28 +XML_RELAXNG_ERR_VALELEM = 29 +XML_RELAXNG_ERR_LISTELEM = 30 +XML_RELAXNG_ERR_DATATYPE = 31 +XML_RELAXNG_ERR_VALUE = 32 +XML_RELAXNG_ERR_LIST = 33 +XML_RELAXNG_ERR_NOGRAMMAR = 34 +XML_RELAXNG_ERR_EXTRADATA = 35 +XML_RELAXNG_ERR_LACKDATA = 36 +XML_RELAXNG_ERR_INTERNAL = 37 +XML_RELAXNG_ERR_ELEMWRONG = 38 +XML_RELAXNG_ERR_TEXTWRONG = 39 + +# xmlCatalogAllow +XML_CATA_ALLOW_NONE = 0 +XML_CATA_ALLOW_GLOBAL = 1 +XML_CATA_ALLOW_DOCUMENT = 2 +XML_CATA_ALLOW_ALL = 3 + +# xmlAttributeType +XML_ATTRIBUTE_CDATA = 1 +XML_ATTRIBUTE_ID = 2 +XML_ATTRIBUTE_IDREF = 3 +XML_ATTRIBUTE_IDREFS = 4 +XML_ATTRIBUTE_ENTITY = 5 +XML_ATTRIBUTE_ENTITIES = 6 +XML_ATTRIBUTE_NMTOKEN = 7 +XML_ATTRIBUTE_NMTOKENS = 8 +XML_ATTRIBUTE_ENUMERATION = 9 +XML_ATTRIBUTE_NOTATION = 10 + +# xmlSchematronValidOptions +XML_SCHEMATRON_OUT_QUIET = 1 +XML_SCHEMATRON_OUT_TEXT = 2 +XML_SCHEMATRON_OUT_XML = 4 +XML_SCHEMATRON_OUT_ERROR = 8 +XML_SCHEMATRON_OUT_FILE = 256 +XML_SCHEMATRON_OUT_BUFFER = 512 +XML_SCHEMATRON_OUT_IO = 1024 + +# xmlSchemaContentType +XML_SCHEMA_CONTENT_UNKNOWN = 0 +XML_SCHEMA_CONTENT_EMPTY = 1 +XML_SCHEMA_CONTENT_ELEMENTS = 2 +XML_SCHEMA_CONTENT_MIXED = 3 +XML_SCHEMA_CONTENT_SIMPLE = 4 +XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS = 5 +XML_SCHEMA_CONTENT_BASIC = 6 +XML_SCHEMA_CONTENT_ANY = 7 + +# xmlSchemaTypeType +XML_SCHEMA_TYPE_BASIC = 1 +XML_SCHEMA_TYPE_ANY = 2 +XML_SCHEMA_TYPE_FACET = 3 +XML_SCHEMA_TYPE_SIMPLE = 4 +XML_SCHEMA_TYPE_COMPLEX = 5 +XML_SCHEMA_TYPE_SEQUENCE = 6 +XML_SCHEMA_TYPE_CHOICE = 7 +XML_SCHEMA_TYPE_ALL = 8 +XML_SCHEMA_TYPE_SIMPLE_CONTENT = 9 +XML_SCHEMA_TYPE_COMPLEX_CONTENT = 10 +XML_SCHEMA_TYPE_UR = 11 +XML_SCHEMA_TYPE_RESTRICTION = 12 +XML_SCHEMA_TYPE_EXTENSION = 13 +XML_SCHEMA_TYPE_ELEMENT = 14 +XML_SCHEMA_TYPE_ATTRIBUTE = 15 +XML_SCHEMA_TYPE_ATTRIBUTEGROUP = 16 +XML_SCHEMA_TYPE_GROUP = 17 +XML_SCHEMA_TYPE_NOTATION = 18 +XML_SCHEMA_TYPE_LIST = 19 +XML_SCHEMA_TYPE_UNION = 20 +XML_SCHEMA_TYPE_ANY_ATTRIBUTE = 21 +XML_SCHEMA_TYPE_IDC_UNIQUE = 22 +XML_SCHEMA_TYPE_IDC_KEY = 23 +XML_SCHEMA_TYPE_IDC_KEYREF = 24 +XML_SCHEMA_TYPE_PARTICLE = 25 +XML_SCHEMA_TYPE_ATTRIBUTE_USE = 26 +XML_SCHEMA_FACET_MININCLUSIVE = 1000 +XML_SCHEMA_FACET_MINEXCLUSIVE = 1001 +XML_SCHEMA_FACET_MAXINCLUSIVE = 1002 +XML_SCHEMA_FACET_MAXEXCLUSIVE = 1003 +XML_SCHEMA_FACET_TOTALDIGITS = 1004 +XML_SCHEMA_FACET_FRACTIONDIGITS = 1005 +XML_SCHEMA_FACET_PATTERN = 1006 +XML_SCHEMA_FACET_ENUMERATION = 1007 +XML_SCHEMA_FACET_WHITESPACE = 1008 +XML_SCHEMA_FACET_LENGTH = 1009 +XML_SCHEMA_FACET_MAXLENGTH = 1010 +XML_SCHEMA_FACET_MINLENGTH = 1011 +XML_SCHEMA_EXTRA_QNAMEREF = 2000 +XML_SCHEMA_EXTRA_ATTR_USE_PROHIB = 2001 + +# xmlModuleOption +XML_MODULE_LAZY = 1 +XML_MODULE_LOCAL = 2 + +# xmlParserMode +XML_PARSE_UNKNOWN = 0 +XML_PARSE_DOM = 1 +XML_PARSE_SAX = 2 +XML_PARSE_PUSH_DOM = 3 +XML_PARSE_PUSH_SAX = 4 +XML_PARSE_READER = 5 + +# xmlC14NMode +XML_C14N_1_0 = 0 +XML_C14N_EXCLUSIVE_1_0 = 1 +XML_C14N_1_1 = 2 + +# xmlParserOption +XML_PARSE_RECOVER = 1 +XML_PARSE_NOENT = 2 +XML_PARSE_DTDLOAD = 4 +XML_PARSE_DTDATTR = 8 +XML_PARSE_DTDVALID = 16 +XML_PARSE_NOERROR = 32 +XML_PARSE_NOWARNING = 64 +XML_PARSE_PEDANTIC = 128 +XML_PARSE_NOBLANKS = 256 +XML_PARSE_SAX1 = 512 +XML_PARSE_XINCLUDE = 1024 +XML_PARSE_NONET = 2048 +XML_PARSE_NODICT = 4096 +XML_PARSE_NSCLEAN = 8192 +XML_PARSE_NOCDATA = 16384 +XML_PARSE_NOXINCNODE = 32768 +XML_PARSE_COMPACT = 65536 +XML_PARSE_OLD10 = 131072 +XML_PARSE_NOBASEFIX = 262144 +XML_PARSE_HUGE = 524288 +XML_PARSE_OLDSAX = 1048576 +XML_PARSE_IGNORE_ENC = 2097152 +XML_PARSE_BIG_LINES = 4194304 + +# xmlElementTypeVal +XML_ELEMENT_TYPE_UNDEFINED = 0 +XML_ELEMENT_TYPE_EMPTY = 1 +XML_ELEMENT_TYPE_ANY = 2 +XML_ELEMENT_TYPE_MIXED = 3 +XML_ELEMENT_TYPE_ELEMENT = 4 + +# xmlDocProperties +XML_DOC_WELLFORMED = 1 +XML_DOC_NSVALID = 2 +XML_DOC_OLD10 = 4 +XML_DOC_DTDVALID = 8 +XML_DOC_XINCLUDE = 16 +XML_DOC_USERBUILT = 32 +XML_DOC_INTERNAL = 64 +XML_DOC_HTML = 128 + +# xlinkType +XLINK_TYPE_NONE = 0 +XLINK_TYPE_SIMPLE = 1 +XLINK_TYPE_EXTENDED = 2 +XLINK_TYPE_EXTENDED_SET = 3 + +# xmlXPathObjectType +XPATH_UNDEFINED = 0 +XPATH_NODESET = 1 +XPATH_BOOLEAN = 2 +XPATH_NUMBER = 3 +XPATH_STRING = 4 +XPATH_POINT = 5 +XPATH_RANGE = 6 +XPATH_LOCATIONSET = 7 +XPATH_USERS = 8 +XPATH_XSLT_TREE = 9 + +# xmlSchemaValidError +XML_SCHEMAS_ERR_OK = 0 +XML_SCHEMAS_ERR_NOROOT = 1 +XML_SCHEMAS_ERR_UNDECLAREDELEM = 2 +XML_SCHEMAS_ERR_NOTTOPLEVEL = 3 +XML_SCHEMAS_ERR_MISSING = 4 +XML_SCHEMAS_ERR_WRONGELEM = 5 +XML_SCHEMAS_ERR_NOTYPE = 6 +XML_SCHEMAS_ERR_NOROLLBACK = 7 +XML_SCHEMAS_ERR_ISABSTRACT = 8 +XML_SCHEMAS_ERR_NOTEMPTY = 9 +XML_SCHEMAS_ERR_ELEMCONT = 10 +XML_SCHEMAS_ERR_HAVEDEFAULT = 11 +XML_SCHEMAS_ERR_NOTNILLABLE = 12 +XML_SCHEMAS_ERR_EXTRACONTENT = 13 +XML_SCHEMAS_ERR_INVALIDATTR = 14 +XML_SCHEMAS_ERR_INVALIDELEM = 15 +XML_SCHEMAS_ERR_NOTDETERMINIST = 16 +XML_SCHEMAS_ERR_CONSTRUCT = 17 +XML_SCHEMAS_ERR_INTERNAL = 18 +XML_SCHEMAS_ERR_NOTSIMPLE = 19 +XML_SCHEMAS_ERR_ATTRUNKNOWN = 20 +XML_SCHEMAS_ERR_ATTRINVALID = 21 +XML_SCHEMAS_ERR_VALUE = 22 +XML_SCHEMAS_ERR_FACET = 23 +XML_SCHEMAS_ERR_ = 24 +XML_SCHEMAS_ERR_XXX = 25 + diff --git a/python/libxml2class.py b/python/libxml2class.py new file mode 100644 index 0000000..96e8c3f --- /dev/null +++ b/python/libxml2class.py @@ -0,0 +1,8526 @@ +# +# Functions from module HTMLparser +# + +def htmlCreateMemoryParserCtxt(buffer, size): + """Create a parser context for an HTML in-memory document. """ + ret = libxml2mod.htmlCreateMemoryParserCtxt(buffer, size) + if ret is None:raise parserError('htmlCreateMemoryParserCtxt() failed') + return parserCtxt(_obj=ret) + +def htmlHandleOmittedElem(val): + """Set and return the previous value for handling HTML omitted + tags. """ + ret = libxml2mod.htmlHandleOmittedElem(val) + return ret + +def htmlIsScriptAttribute(name): + """Check if an attribute is of content type Script """ + ret = libxml2mod.htmlIsScriptAttribute(name) + return ret + +def htmlNewParserCtxt(): + """Allocate and initialize a new parser context. """ + ret = libxml2mod.htmlNewParserCtxt() + if ret is None:raise parserError('htmlNewParserCtxt() failed') + return parserCtxt(_obj=ret) + +def htmlParseDoc(cur, encoding): + """parse an HTML in-memory document and build a tree. """ + ret = libxml2mod.htmlParseDoc(cur, encoding) + if ret is None:raise parserError('htmlParseDoc() failed') + return xmlDoc(_obj=ret) + +def htmlParseFile(filename, encoding): + """parse an HTML file and build a tree. Automatic support for + ZLIB/Compress compressed document is provided by default if + found at compile-time. """ + ret = libxml2mod.htmlParseFile(filename, encoding) + if ret is None:raise parserError('htmlParseFile() failed') + return xmlDoc(_obj=ret) + +def htmlReadDoc(cur, URL, encoding, options): + """parse an XML in-memory document and build a tree. """ + ret = libxml2mod.htmlReadDoc(cur, URL, encoding, options) + if ret is None:raise treeError('htmlReadDoc() failed') + return xmlDoc(_obj=ret) + +def htmlReadFd(fd, URL, encoding, options): + """parse an XML from a file descriptor and build a tree. """ + ret = libxml2mod.htmlReadFd(fd, URL, encoding, options) + if ret is None:raise treeError('htmlReadFd() failed') + return xmlDoc(_obj=ret) + +def htmlReadFile(filename, encoding, options): + """parse an XML file from the filesystem or the network. """ + ret = libxml2mod.htmlReadFile(filename, encoding, options) + if ret is None:raise treeError('htmlReadFile() failed') + return xmlDoc(_obj=ret) + +def htmlReadMemory(buffer, size, URL, encoding, options): + """parse an XML in-memory document and build a tree. """ + ret = libxml2mod.htmlReadMemory(buffer, size, URL, encoding, options) + if ret is None:raise treeError('htmlReadMemory() failed') + return xmlDoc(_obj=ret) + +# +# Functions from module HTMLtree +# + +def htmlIsBooleanAttr(name): + """Determine if a given attribute is a boolean attribute. """ + ret = libxml2mod.htmlIsBooleanAttr(name) + return ret + +def htmlNewDoc(URI, ExternalID): + """Creates a new HTML document """ + ret = libxml2mod.htmlNewDoc(URI, ExternalID) + if ret is None:raise treeError('htmlNewDoc() failed') + return xmlDoc(_obj=ret) + +def htmlNewDocNoDtD(URI, ExternalID): + """Creates a new HTML document without a DTD node if @URI and + @ExternalID are None """ + ret = libxml2mod.htmlNewDocNoDtD(URI, ExternalID) + if ret is None:raise treeError('htmlNewDocNoDtD() failed') + return xmlDoc(_obj=ret) + +# +# Functions from module SAX2 +# + +def SAXDefaultVersion(version): + """Set the default version of SAX used globally by the + library. By default, during initialization the default is + set to 2. Note that it is generally a better coding style + to use xmlSAXVersion() to set up the version explicitly for + a given parsing context. """ + ret = libxml2mod.xmlSAXDefaultVersion(version) + return ret + +def defaultSAXHandlerInit(): + """Initialize the default SAX2 handler """ + libxml2mod.xmlDefaultSAXHandlerInit() + +def docbDefaultSAXHandlerInit(): + """Initialize the default SAX handler """ + libxml2mod.docbDefaultSAXHandlerInit() + +def htmlDefaultSAXHandlerInit(): + """Initialize the default SAX handler """ + libxml2mod.htmlDefaultSAXHandlerInit() + +# +# Functions from module catalog +# + +def catalogAdd(type, orig, replace): + """Add an entry in the catalog, it may overwrite existing but + different entries. If called before any other catalog + routine, allows to override the default shared catalog put + in place by xmlInitializeCatalog(); """ + ret = libxml2mod.xmlCatalogAdd(type, orig, replace) + return ret + +def catalogCleanup(): + """Free up all the memory associated with catalogs """ + libxml2mod.xmlCatalogCleanup() + +def catalogConvert(): + """Convert all the SGML catalog entries as XML ones """ + ret = libxml2mod.xmlCatalogConvert() + return ret + +def catalogDump(out): + """Dump all the global catalog content to the given file. """ + libxml2mod.xmlCatalogDump(out) + +def catalogGetPublic(pubID): + """Try to lookup the catalog reference associated to a public + ID DEPRECATED, use xmlCatalogResolvePublic() """ + ret = libxml2mod.xmlCatalogGetPublic(pubID) + return ret + +def catalogGetSystem(sysID): + """Try to lookup the catalog reference associated to a system + ID DEPRECATED, use xmlCatalogResolveSystem() """ + ret = libxml2mod.xmlCatalogGetSystem(sysID) + return ret + +def catalogRemove(value): + """Remove an entry from the catalog """ + ret = libxml2mod.xmlCatalogRemove(value) + return ret + +def catalogResolve(pubID, sysID): + """Do a complete resolution lookup of an External Identifier """ + ret = libxml2mod.xmlCatalogResolve(pubID, sysID) + return ret + +def catalogResolvePublic(pubID): + """Try to lookup the catalog reference associated to a public + ID """ + ret = libxml2mod.xmlCatalogResolvePublic(pubID) + return ret + +def catalogResolveSystem(sysID): + """Try to lookup the catalog resource for a system ID """ + ret = libxml2mod.xmlCatalogResolveSystem(sysID) + return ret + +def catalogResolveURI(URI): + """Do a complete resolution lookup of an URI """ + ret = libxml2mod.xmlCatalogResolveURI(URI) + return ret + +def catalogSetDebug(level): + """Used to set the debug level for catalog operation, 0 + disable debugging, 1 enable it """ + ret = libxml2mod.xmlCatalogSetDebug(level) + return ret + +def initializeCatalog(): + """Do the catalog initialization. this function is not thread + safe, catalog initialization should preferably be done once + at startup """ + libxml2mod.xmlInitializeCatalog() + +def loadACatalog(filename): + """Load the catalog and build the associated data structures. + This can be either an XML Catalog or an SGML Catalog It + will recurse in SGML CATALOG entries. On the other hand XML + Catalogs are not handled recursively. """ + ret = libxml2mod.xmlLoadACatalog(filename) + if ret is None:raise treeError('xmlLoadACatalog() failed') + return catalog(_obj=ret) + +def loadCatalog(filename): + """Load the catalog and makes its definitions effective for + the default external entity loader. It will recurse in SGML + CATALOG entries. this function is not thread safe, catalog + initialization should preferably be done once at startup """ + ret = libxml2mod.xmlLoadCatalog(filename) + return ret + +def loadCatalogs(pathss): + """Load the catalogs and makes their definitions effective for + the default external entity loader. this function is not + thread safe, catalog initialization should preferably be + done once at startup """ + libxml2mod.xmlLoadCatalogs(pathss) + +def loadSGMLSuperCatalog(filename): + """Load an SGML super catalog. It won't expand CATALOG or + DELEGATE references. This is only needed for manipulating + SGML Super Catalogs like adding and removing CATALOG or + DELEGATE entries. """ + ret = libxml2mod.xmlLoadSGMLSuperCatalog(filename) + if ret is None:raise treeError('xmlLoadSGMLSuperCatalog() failed') + return catalog(_obj=ret) + +def newCatalog(sgml): + """create a new Catalog. """ + ret = libxml2mod.xmlNewCatalog(sgml) + if ret is None:raise treeError('xmlNewCatalog() failed') + return catalog(_obj=ret) + +def parseCatalogFile(filename): + """parse an XML file and build a tree. It's like + xmlParseFile() except it bypass all catalog lookups. """ + ret = libxml2mod.xmlParseCatalogFile(filename) + if ret is None:raise parserError('xmlParseCatalogFile() failed') + return xmlDoc(_obj=ret) + +# +# Functions from module chvalid +# + +def isBaseChar(ch): + """This function is DEPRECATED. Use xmlIsBaseChar_ch or + xmlIsBaseCharQ instead """ + ret = libxml2mod.xmlIsBaseChar(ch) + return ret + +def isBlank(ch): + """This function is DEPRECATED. Use xmlIsBlank_ch or + xmlIsBlankQ instead """ + ret = libxml2mod.xmlIsBlank(ch) + return ret + +def isChar(ch): + """This function is DEPRECATED. Use xmlIsChar_ch or xmlIsCharQ + instead """ + ret = libxml2mod.xmlIsChar(ch) + return ret + +def isCombining(ch): + """This function is DEPRECATED. Use xmlIsCombiningQ instead """ + ret = libxml2mod.xmlIsCombining(ch) + return ret + +def isDigit(ch): + """This function is DEPRECATED. Use xmlIsDigit_ch or + xmlIsDigitQ instead """ + ret = libxml2mod.xmlIsDigit(ch) + return ret + +def isExtender(ch): + """This function is DEPRECATED. Use xmlIsExtender_ch or + xmlIsExtenderQ instead """ + ret = libxml2mod.xmlIsExtender(ch) + return ret + +def isIdeographic(ch): + """This function is DEPRECATED. Use xmlIsIdeographicQ instead """ + ret = libxml2mod.xmlIsIdeographic(ch) + return ret + +def isPubidChar(ch): + """This function is DEPRECATED. Use xmlIsPubidChar_ch or + xmlIsPubidCharQ instead """ + ret = libxml2mod.xmlIsPubidChar(ch) + return ret + +# +# Functions from module debugXML +# + +def boolToText(boolval): + """Convenient way to turn bool into text """ + ret = libxml2mod.xmlBoolToText(boolval) + return ret + +def debugDumpString(output, str): + """Dumps informations about the string, shorten it if necessary """ + libxml2mod.xmlDebugDumpString(output, str) + +def shellPrintXPathError(errorType, arg): + """Print the xpath error to libxml default error channel """ + libxml2mod.xmlShellPrintXPathError(errorType, arg) + +# +# Functions from module dict +# + +def dictCleanup(): + """Free the dictionary mutex. Do not call unless sure the + library is not in use anymore ! """ + libxml2mod.xmlDictCleanup() + +def initializeDict(): + """Do the dictionary mutex initialization. this function is + not thread safe, initialization should preferably be done + once at startup """ + ret = libxml2mod.xmlInitializeDict() + return ret + +# +# Functions from module encoding +# + +def addEncodingAlias(name, alias): + """Registers an alias @alias for an encoding named @name. + Existing alias will be overwritten. """ + ret = libxml2mod.xmlAddEncodingAlias(name, alias) + return ret + +def cleanupCharEncodingHandlers(): + """Cleanup the memory allocated for the char encoding support, + it unregisters all the encoding handlers and the aliases. """ + libxml2mod.xmlCleanupCharEncodingHandlers() + +def cleanupEncodingAliases(): + """Unregisters all aliases """ + libxml2mod.xmlCleanupEncodingAliases() + +def delEncodingAlias(alias): + """Unregisters an encoding alias @alias """ + ret = libxml2mod.xmlDelEncodingAlias(alias) + return ret + +def encodingAlias(alias): + """Lookup an encoding name for the given alias. """ + ret = libxml2mod.xmlGetEncodingAlias(alias) + return ret + +def initCharEncodingHandlers(): + """Initialize the char encoding support, it registers the + default encoding supported. NOTE: while public, this + function usually doesn't need to be called in normal + processing. """ + libxml2mod.xmlInitCharEncodingHandlers() + +# +# Functions from module entities +# + +def cleanupPredefinedEntities(): + """Cleanup up the predefined entities table. Deprecated call """ + libxml2mod.xmlCleanupPredefinedEntities() + +def initializePredefinedEntities(): + """Set up the predefined entities. Deprecated call """ + libxml2mod.xmlInitializePredefinedEntities() + +def predefinedEntity(name): + """Check whether this name is an predefined entity. """ + ret = libxml2mod.xmlGetPredefinedEntity(name) + if ret is None:raise treeError('xmlGetPredefinedEntity() failed') + return xmlEntity(_obj=ret) + +# +# Functions from module globals +# + +def cleanupGlobals(): + """Additional cleanup for multi-threading """ + libxml2mod.xmlCleanupGlobals() + +def initGlobals(): + """Additional initialisation for multi-threading """ + libxml2mod.xmlInitGlobals() + +def thrDefDefaultBufferSize(v): + ret = libxml2mod.xmlThrDefDefaultBufferSize(v) + return ret + +def thrDefDoValidityCheckingDefaultValue(v): + ret = libxml2mod.xmlThrDefDoValidityCheckingDefaultValue(v) + return ret + +def thrDefGetWarningsDefaultValue(v): + ret = libxml2mod.xmlThrDefGetWarningsDefaultValue(v) + return ret + +def thrDefIndentTreeOutput(v): + ret = libxml2mod.xmlThrDefIndentTreeOutput(v) + return ret + +def thrDefKeepBlanksDefaultValue(v): + ret = libxml2mod.xmlThrDefKeepBlanksDefaultValue(v) + return ret + +def thrDefLineNumbersDefaultValue(v): + ret = libxml2mod.xmlThrDefLineNumbersDefaultValue(v) + return ret + +def thrDefLoadExtDtdDefaultValue(v): + ret = libxml2mod.xmlThrDefLoadExtDtdDefaultValue(v) + return ret + +def thrDefParserDebugEntities(v): + ret = libxml2mod.xmlThrDefParserDebugEntities(v) + return ret + +def thrDefPedanticParserDefaultValue(v): + ret = libxml2mod.xmlThrDefPedanticParserDefaultValue(v) + return ret + +def thrDefSaveNoEmptyTags(v): + ret = libxml2mod.xmlThrDefSaveNoEmptyTags(v) + return ret + +def thrDefSubstituteEntitiesDefaultValue(v): + ret = libxml2mod.xmlThrDefSubstituteEntitiesDefaultValue(v) + return ret + +def thrDefTreeIndentString(v): + ret = libxml2mod.xmlThrDefTreeIndentString(v) + return ret + +# +# Functions from module nanoftp +# + +def nanoFTPCleanup(): + """Cleanup the FTP protocol layer. This cleanup proxy + informations. """ + libxml2mod.xmlNanoFTPCleanup() + +def nanoFTPInit(): + """Initialize the FTP protocol layer. Currently it just checks + for proxy informations, and get the hostname """ + libxml2mod.xmlNanoFTPInit() + +def nanoFTPProxy(host, port, user, passwd, type): + """Setup the FTP proxy informations. This can also be done by + using ftp_proxy ftp_proxy_user and ftp_proxy_password + environment variables. """ + libxml2mod.xmlNanoFTPProxy(host, port, user, passwd, type) + +def nanoFTPScanProxy(URL): + """(Re)Initialize the FTP Proxy context by parsing the URL and + finding the protocol host port it indicates. Should be like + ftp://myproxy/ or ftp://myproxy:3128/ A None URL cleans up + proxy informations. """ + libxml2mod.xmlNanoFTPScanProxy(URL) + +# +# Functions from module nanohttp +# + +def nanoHTTPCleanup(): + """Cleanup the HTTP protocol layer. """ + libxml2mod.xmlNanoHTTPCleanup() + +def nanoHTTPInit(): + """Initialize the HTTP protocol layer. Currently it just + checks for proxy informations """ + libxml2mod.xmlNanoHTTPInit() + +def nanoHTTPScanProxy(URL): + """(Re)Initialize the HTTP Proxy context by parsing the URL + and finding the protocol host port it indicates. Should be + like http://myproxy/ or http://myproxy:3128/ A None URL + cleans up proxy informations. """ + libxml2mod.xmlNanoHTTPScanProxy(URL) + +# +# Functions from module parser +# + +def createDocParserCtxt(cur): + """Creates a parser context for an XML in-memory document. """ + ret = libxml2mod.xmlCreateDocParserCtxt(cur) + if ret is None:raise parserError('xmlCreateDocParserCtxt() failed') + return parserCtxt(_obj=ret) + +def initParser(): + """Initialization function for the XML parser. This is not + reentrant. Call once before processing in case of use in + multithreaded programs. """ + libxml2mod.xmlInitParser() + +def keepBlanksDefault(val): + """Set and return the previous value for default blanks text + nodes support. The 1.x version of the parser used an + heuristic to try to detect ignorable white spaces. As a + result the SAX callback was generating + xmlSAX2IgnorableWhitespace() callbacks instead of + characters() one, and when using the DOM output text nodes + containing those blanks were not generated. The 2.x and + later version will switch to the XML standard way and + ignorableWhitespace() are only generated when running the + parser in validating mode and when the current element + doesn't allow CDATA or mixed content. This function is + provided as a way to force the standard behavior on 1.X + libs and to switch back to the old mode for compatibility + when running 1.X client code on 2.X . Upgrade of 1.X code + should be done by using xmlIsBlankNode() commodity function + to detect the "empty" nodes generated. This value also + affect autogeneration of indentation when saving code if + blanks sections are kept, indentation is not generated. """ + ret = libxml2mod.xmlKeepBlanksDefault(val) + return ret + +def lineNumbersDefault(val): + """Set and return the previous value for enabling line numbers + in elements contents. This may break on old application and + is turned off by default. """ + ret = libxml2mod.xmlLineNumbersDefault(val) + return ret + +def newParserCtxt(): + """Allocate and initialize a new parser context. """ + ret = libxml2mod.xmlNewParserCtxt() + if ret is None:raise parserError('xmlNewParserCtxt() failed') + return parserCtxt(_obj=ret) + +def parseDTD(ExternalID, SystemID): + """Load and parse an external subset. """ + ret = libxml2mod.xmlParseDTD(ExternalID, SystemID) + if ret is None:raise parserError('xmlParseDTD() failed') + return xmlDtd(_obj=ret) + +def parseDoc(cur): + """parse an XML in-memory document and build a tree. """ + ret = libxml2mod.xmlParseDoc(cur) + if ret is None:raise parserError('xmlParseDoc() failed') + return xmlDoc(_obj=ret) + +def parseEntity(filename): + """parse an XML external entity out of context and build a + tree. [78] extParsedEnt ::= TextDecl? content This + correspond to a "Well Balanced" chunk """ + ret = libxml2mod.xmlParseEntity(filename) + if ret is None:raise parserError('xmlParseEntity() failed') + return xmlDoc(_obj=ret) + +def parseFile(filename): + """parse an XML file and build a tree. Automatic support for + ZLIB/Compress compressed document is provided by default if + found at compile-time. """ + ret = libxml2mod.xmlParseFile(filename) + if ret is None:raise parserError('xmlParseFile() failed') + return xmlDoc(_obj=ret) + +def parseMemory(buffer, size): + """parse an XML in-memory block and build a tree. """ + ret = libxml2mod.xmlParseMemory(buffer, size) + if ret is None:raise parserError('xmlParseMemory() failed') + return xmlDoc(_obj=ret) + +def pedanticParserDefault(val): + """Set and return the previous value for enabling pedantic + warnings. """ + ret = libxml2mod.xmlPedanticParserDefault(val) + return ret + +def readDoc(cur, URL, encoding, options): + """parse an XML in-memory document and build a tree. """ + ret = libxml2mod.xmlReadDoc(cur, URL, encoding, options) + if ret is None:raise treeError('xmlReadDoc() failed') + return xmlDoc(_obj=ret) + +def readFd(fd, URL, encoding, options): + """parse an XML from a file descriptor and build a tree. NOTE + that the file descriptor will not be closed when the reader + is closed or reset. """ + ret = libxml2mod.xmlReadFd(fd, URL, encoding, options) + if ret is None:raise treeError('xmlReadFd() failed') + return xmlDoc(_obj=ret) + +def readFile(filename, encoding, options): + """parse an XML file from the filesystem or the network. """ + ret = libxml2mod.xmlReadFile(filename, encoding, options) + if ret is None:raise treeError('xmlReadFile() failed') + return xmlDoc(_obj=ret) + +def readMemory(buffer, size, URL, encoding, options): + """parse an XML in-memory document and build a tree. """ + ret = libxml2mod.xmlReadMemory(buffer, size, URL, encoding, options) + if ret is None:raise treeError('xmlReadMemory() failed') + return xmlDoc(_obj=ret) + +def recoverDoc(cur): + """parse an XML in-memory document and build a tree. In the + case the document is not Well Formed, a attempt to build a + tree is tried anyway """ + ret = libxml2mod.xmlRecoverDoc(cur) + if ret is None:raise treeError('xmlRecoverDoc() failed') + return xmlDoc(_obj=ret) + +def recoverFile(filename): + """parse an XML file and build a tree. Automatic support for + ZLIB/Compress compressed document is provided by default if + found at compile-time. In the case the document is not Well + Formed, it attempts to build a tree anyway """ + ret = libxml2mod.xmlRecoverFile(filename) + if ret is None:raise treeError('xmlRecoverFile() failed') + return xmlDoc(_obj=ret) + +def recoverMemory(buffer, size): + """parse an XML in-memory block and build a tree. In the case + the document is not Well Formed, an attempt to build a tree + is tried anyway """ + ret = libxml2mod.xmlRecoverMemory(buffer, size) + if ret is None:raise treeError('xmlRecoverMemory() failed') + return xmlDoc(_obj=ret) + +def substituteEntitiesDefault(val): + """Set and return the previous value for default entity + support. Initially the parser always keep entity references + instead of substituting entity values in the output. This + function has to be used to change the default parser + behavior SAX::substituteEntities() has to be used for + changing that on a file by file basis. """ + ret = libxml2mod.xmlSubstituteEntitiesDefault(val) + return ret + +# +# Functions from module parserInternals +# + +def checkLanguageID(lang): + """Checks that the value conforms to the LanguageID + production: NOTE: this is somewhat deprecated, those + productions were removed from the XML Second edition. [33] + LanguageID ::= Langcode ('-' Subcode)* [34] Langcode ::= + ISO639Code | IanaCode | UserCode [35] ISO639Code ::= + ([a-z] | [A-Z]) ([a-z] | [A-Z]) [36] IanaCode ::= ('i' | + 'I') '-' ([a-z] | [A-Z])+ [37] UserCode ::= ('x' | 'X') '-' + ([a-z] | [A-Z])+ [38] Subcode ::= ([a-z] | [A-Z])+ The + current REC reference the sucessors of RFC 1766, currently + 5646 http://www.rfc-editor.org/rfc/rfc5646.txt langtag + = language ["-" script] ["-" region] *("-" variant) *("-" + extension) ["-" privateuse] language = 2*3ALPHA + ; shortest ISO 639 code ["-" extlang] ; sometimes + followed by ; extended language subtags / 4ALPHA + ; or reserved for future use / 5*8ALPHA ; or + registered language subtag extlang = 3ALPHA + ; selected ISO 639 codes *2("-" 3ALPHA) ; permanently + reserved script = 4ALPHA ; ISO 15924 + code region = 2ALPHA ; ISO 3166-1 code + / 3DIGIT ; UN M.49 code variant = + 5*8alphanum ; registered variants / (DIGIT + 3alphanum) extension = singleton 1*("-" (2*8alphanum)) + ; Single alphanumerics ; "x" reserved for private use + singleton = DIGIT ; 0 - 9 / %x41-57 + ; A - W / %x59-5A ; Y - Z / %x61-77 + ; a - w / %x79-7A ; y - z it sounds right to + still allow Irregular i-xxx IANA and user codes too The + parser below doesn't try to cope with extension or + privateuse that could be added but that's not interoperable + anyway """ + ret = libxml2mod.xmlCheckLanguageID(lang) + return ret + +def copyChar(len, out, val): + """append the char value in the array """ + ret = libxml2mod.xmlCopyChar(len, out, val) + return ret + +def copyCharMultiByte(out, val): + """append the char value in the array """ + ret = libxml2mod.xmlCopyCharMultiByte(out, val) + return ret + +def createEntityParserCtxt(URL, ID, base): + """Create a parser context for an external entity Automatic + support for ZLIB/Compress compressed document is provided + by default if found at compile-time. """ + ret = libxml2mod.xmlCreateEntityParserCtxt(URL, ID, base) + if ret is None:raise parserError('xmlCreateEntityParserCtxt() failed') + return parserCtxt(_obj=ret) + +def createFileParserCtxt(filename): + """Create a parser context for a file content. Automatic + support for ZLIB/Compress compressed document is provided + by default if found at compile-time. """ + ret = libxml2mod.xmlCreateFileParserCtxt(filename) + if ret is None:raise parserError('xmlCreateFileParserCtxt() failed') + return parserCtxt(_obj=ret) + +def createMemoryParserCtxt(buffer, size): + """Create a parser context for an XML in-memory document. """ + ret = libxml2mod.xmlCreateMemoryParserCtxt(buffer, size) + if ret is None:raise parserError('xmlCreateMemoryParserCtxt() failed') + return parserCtxt(_obj=ret) + +def createURLParserCtxt(filename, options): + """Create a parser context for a file or URL content. + Automatic support for ZLIB/Compress compressed document is + provided by default if found at compile-time and for file + accesses """ + ret = libxml2mod.xmlCreateURLParserCtxt(filename, options) + if ret is None:raise parserError('xmlCreateURLParserCtxt() failed') + return parserCtxt(_obj=ret) + +def htmlCreateFileParserCtxt(filename, encoding): + """Create a parser context for a file content. Automatic + support for ZLIB/Compress compressed document is provided + by default if found at compile-time. """ + ret = libxml2mod.htmlCreateFileParserCtxt(filename, encoding) + if ret is None:raise parserError('htmlCreateFileParserCtxt() failed') + return parserCtxt(_obj=ret) + +def htmlInitAutoClose(): + """Initialize the htmlStartCloseIndex for fast lookup of + closing tags names. This is not reentrant. Call + xmlInitParser() once before processing in case of use in + multithreaded programs. """ + libxml2mod.htmlInitAutoClose() + +def isLetter(c): + """Check whether the character is allowed by the production + [84] Letter ::= BaseChar | Ideographic """ + ret = libxml2mod.xmlIsLetter(c) + return ret + +def namePop(ctxt): + """Pops the top element name from the name stack """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.namePop(ctxt__o) + return ret + +def namePush(ctxt, value): + """Pushes a new element name on top of the name stack """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.namePush(ctxt__o, value) + return ret + +def nodePop(ctxt): + """Pops the top element node from the node stack """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.nodePop(ctxt__o) + if ret is None:raise treeError('nodePop() failed') + return xmlNode(_obj=ret) + +def nodePush(ctxt, value): + """Pushes a new element node on top of the node stack """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if value is None: value__o = None + else: value__o = value._o + ret = libxml2mod.nodePush(ctxt__o, value__o) + return ret + +# +# Functions from module python +# + +def SAXParseFile(SAX, URI, recover): + """Interface to parse an XML file or resource pointed by an + URI to build an event flow to the SAX object """ + libxml2mod.xmlSAXParseFile(SAX, URI, recover) + +def createInputBuffer(file, encoding): + """Create a libxml2 input buffer from a Python file """ + ret = libxml2mod.xmlCreateInputBuffer(file, encoding) + if ret is None:raise treeError('xmlCreateInputBuffer() failed') + return inputBuffer(_obj=ret) + +def createOutputBuffer(file, encoding): + """Create a libxml2 output buffer from a Python file """ + ret = libxml2mod.xmlCreateOutputBuffer(file, encoding) + if ret is None:raise treeError('xmlCreateOutputBuffer() failed') + return outputBuffer(_obj=ret) + +def createPushParser(SAX, chunk, size, URI): + """Create a progressive XML parser context to build either an + event flow if the SAX object is not None, or a DOM tree + otherwise. """ + ret = libxml2mod.xmlCreatePushParser(SAX, chunk, size, URI) + if ret is None:raise parserError('xmlCreatePushParser() failed') + return parserCtxt(_obj=ret) + +def debugMemory(activate): + """Switch on the generation of line number for elements nodes. + Also returns the number of bytes allocated and not freed by + libxml2 since memory debugging was switched on. """ + ret = libxml2mod.xmlDebugMemory(activate) + return ret + +def dumpMemory(): + """dump the memory allocated in the file .memdump """ + libxml2mod.xmlDumpMemory() + +def htmlCreatePushParser(SAX, chunk, size, URI): + """Create a progressive HTML parser context to build either an + event flow if the SAX object is not None, or a DOM tree + otherwise. """ + ret = libxml2mod.htmlCreatePushParser(SAX, chunk, size, URI) + if ret is None:raise parserError('htmlCreatePushParser() failed') + return parserCtxt(_obj=ret) + +def htmlSAXParseFile(SAX, URI, encoding): + """Interface to parse an HTML file or resource pointed by an + URI to build an event flow to the SAX object """ + libxml2mod.htmlSAXParseFile(SAX, URI, encoding) + +def memoryUsed(): + """Returns the total amount of memory allocated by libxml2 """ + ret = libxml2mod.xmlMemoryUsed() + return ret + +def newNode(name): + """Create a new Node """ + ret = libxml2mod.xmlNewNode(name) + if ret is None:raise treeError('xmlNewNode() failed') + return xmlNode(_obj=ret) + +def pythonCleanupParser(): + """Cleanup function for the XML library. It tries to reclaim + all parsing related global memory allocated for the library + processing. It doesn't deallocate any document related + memory. Calling this function should not prevent reusing + the library but one should call xmlCleanupParser() only + when the process has finished using the library or XML + document built with it. """ + libxml2mod.xmlPythonCleanupParser() + +def setEntityLoader(resolver): + """Set the entity resolver as a python function """ + ret = libxml2mod.xmlSetEntityLoader(resolver) + return ret + +# +# Functions from module relaxng +# + +def relaxNGCleanupTypes(): + """Cleanup the default Schemas type library associated to + RelaxNG """ + libxml2mod.xmlRelaxNGCleanupTypes() + +def relaxNGInitTypes(): + """Initilize the default type libraries. """ + ret = libxml2mod.xmlRelaxNGInitTypes() + return ret + +def relaxNGNewMemParserCtxt(buffer, size): + """Create an XML RelaxNGs parse context for that memory buffer + expected to contain an XML RelaxNGs file. """ + ret = libxml2mod.xmlRelaxNGNewMemParserCtxt(buffer, size) + if ret is None:raise parserError('xmlRelaxNGNewMemParserCtxt() failed') + return relaxNgParserCtxt(_obj=ret) + +def relaxNGNewParserCtxt(URL): + """Create an XML RelaxNGs parse context for that file/resource + expected to contain an XML RelaxNGs file. """ + ret = libxml2mod.xmlRelaxNGNewParserCtxt(URL) + if ret is None:raise parserError('xmlRelaxNGNewParserCtxt() failed') + return relaxNgParserCtxt(_obj=ret) + +# +# Functions from module tree +# + +def buildQName(ncname, prefix, memory, len): + """Builds the QName @prefix:@ncname in @memory if there is + enough space and prefix is not None nor empty, otherwise + allocate a new string. If prefix is None or empty it + returns ncname. """ + ret = libxml2mod.xmlBuildQName(ncname, prefix, memory, len) + return ret + +def compressMode(): + """get the default compression mode used, ZLIB based. """ + ret = libxml2mod.xmlGetCompressMode() + return ret + +def isXHTML(systemID, publicID): + """Try to find if the document correspond to an XHTML DTD """ + ret = libxml2mod.xmlIsXHTML(systemID, publicID) + return ret + +def newComment(content): + """Creation of a new node containing a comment. """ + ret = libxml2mod.xmlNewComment(content) + if ret is None:raise treeError('xmlNewComment() failed') + return xmlNode(_obj=ret) + +def newDoc(version): + """Creates a new XML document """ + ret = libxml2mod.xmlNewDoc(version) + if ret is None:raise treeError('xmlNewDoc() failed') + return xmlDoc(_obj=ret) + +def newPI(name, content): + """Creation of a processing instruction element. Use + xmlDocNewPI preferably to get string interning """ + ret = libxml2mod.xmlNewPI(name, content) + if ret is None:raise treeError('xmlNewPI() failed') + return xmlNode(_obj=ret) + +def newText(content): + """Creation of a new text node. """ + ret = libxml2mod.xmlNewText(content) + if ret is None:raise treeError('xmlNewText() failed') + return xmlNode(_obj=ret) + +def newTextLen(content, len): + """Creation of a new text node with an extra parameter for the + content's length """ + ret = libxml2mod.xmlNewTextLen(content, len) + if ret is None:raise treeError('xmlNewTextLen() failed') + return xmlNode(_obj=ret) + +def setCompressMode(mode): + """set the default compression mode used, ZLIB based Correct + values: 0 (uncompressed) to 9 (max compression) """ + libxml2mod.xmlSetCompressMode(mode) + +def validateNCName(value, space): + """Check that a value conforms to the lexical space of NCName """ + ret = libxml2mod.xmlValidateNCName(value, space) + return ret + +def validateNMToken(value, space): + """Check that a value conforms to the lexical space of NMToken """ + ret = libxml2mod.xmlValidateNMToken(value, space) + return ret + +def validateName(value, space): + """Check that a value conforms to the lexical space of Name """ + ret = libxml2mod.xmlValidateName(value, space) + return ret + +def validateQName(value, space): + """Check that a value conforms to the lexical space of QName """ + ret = libxml2mod.xmlValidateQName(value, space) + return ret + +# +# Functions from module uri +# + +def URIEscape(str): + """Escaping routine, does not do validity checks ! It will try + to escape the chars needing this, but this is heuristic + based it's impossible to be sure. """ + ret = libxml2mod.xmlURIEscape(str) + return ret + +def URIEscapeStr(str, list): + """This routine escapes a string to hex, ignoring reserved + characters (a-z) and the characters in the exception list. """ + ret = libxml2mod.xmlURIEscapeStr(str, list) + return ret + +def URIUnescapeString(str, len, target): + """Unescaping routine, but does not check that the string is + an URI. The output is a direct unsigned char translation of + %XX values (no encoding) Note that the length of the result + can only be smaller or same size as the input string. """ + ret = libxml2mod.xmlURIUnescapeString(str, len, target) + return ret + +def buildRelativeURI(URI, base): + """Expresses the URI of the reference in terms relative to the + base. Some examples of this operation include: base = + "http://site1.com/docs/book1.html" URI input + URI returned docs/pic1.gif pic1.gif + docs/img/pic1.gif img/pic1.gif img/pic1.gif + ../img/pic1.gif http://site1.com/docs/pic1.gif pic1.gif + http://site2.com/docs/pic1.gif + http://site2.com/docs/pic1.gif base = "docs/book1.html" + URI input URI returned docs/pic1.gif + pic1.gif docs/img/pic1.gif img/pic1.gif + img/pic1.gif ../img/pic1.gif + http://site1.com/docs/pic1.gif + http://site1.com/docs/pic1.gif Note: if the URI reference + is really wierd or complicated, it may be worthwhile to + first convert it into a "nice" one by calling xmlBuildURI + (using 'base') before calling this routine, since this + routine (for reasonable efficiency) assumes URI has already + been through some validation. """ + ret = libxml2mod.xmlBuildRelativeURI(URI, base) + return ret + +def buildURI(URI, base): + """Computes he final URI of the reference done by checking + that the given URI is valid, and building the final URI + using the base URI. This is processed according to section + 5.2 of the RFC 2396 5.2. Resolving Relative References to + Absolute Form """ + ret = libxml2mod.xmlBuildURI(URI, base) + return ret + +def canonicPath(path): + """Constructs a canonic path from the specified path. """ + ret = libxml2mod.xmlCanonicPath(path) + return ret + +def createURI(): + """Simply creates an empty xmlURI """ + ret = libxml2mod.xmlCreateURI() + if ret is None:raise uriError('xmlCreateURI() failed') + return URI(_obj=ret) + +def normalizeURIPath(path): + """Applies the 5 normalization steps to a path string--that + is, RFC 2396 Section 5.2, steps 6.c through 6.g. + Normalization occurs directly on the string, no new + allocation is done """ + ret = libxml2mod.xmlNormalizeURIPath(path) + return ret + +def parseURI(str): + """Parse an URI based on RFC 3986 URI-reference = [ + absoluteURI | relativeURI ] [ "#" fragment ] """ + ret = libxml2mod.xmlParseURI(str) + if ret is None:raise uriError('xmlParseURI() failed') + return URI(_obj=ret) + +def parseURIRaw(str, raw): + """Parse an URI but allows to keep intact the original + fragments. URI-reference = URI / relative-ref """ + ret = libxml2mod.xmlParseURIRaw(str, raw) + if ret is None:raise uriError('xmlParseURIRaw() failed') + return URI(_obj=ret) + +def pathToURI(path): + """Constructs an URI expressing the existing path """ + ret = libxml2mod.xmlPathToURI(path) + return ret + +# +# Functions from module valid +# + +def newValidCtxt(): + """Allocate a validation context structure. """ + ret = libxml2mod.xmlNewValidCtxt() + if ret is None:raise treeError('xmlNewValidCtxt() failed') + return ValidCtxt(_obj=ret) + +def validateNameValue(value): + """Validate that the given value match Name production """ + ret = libxml2mod.xmlValidateNameValue(value) + return ret + +def validateNamesValue(value): + """Validate that the given value match Names production """ + ret = libxml2mod.xmlValidateNamesValue(value) + return ret + +def validateNmtokenValue(value): + """Validate that the given value match Nmtoken production [ + VC: Name Token ] """ + ret = libxml2mod.xmlValidateNmtokenValue(value) + return ret + +def validateNmtokensValue(value): + """Validate that the given value match Nmtokens production [ + VC: Name Token ] """ + ret = libxml2mod.xmlValidateNmtokensValue(value) + return ret + +# +# Functions from module xmlIO +# + +def checkFilename(path): + """function checks to see if @path is a valid source (file, + socket...) for XML. if stat is not available on the target + machine, """ + ret = libxml2mod.xmlCheckFilename(path) + return ret + +def cleanupInputCallbacks(): + """clears the entire input callback table. this includes the + compiled-in I/O. """ + libxml2mod.xmlCleanupInputCallbacks() + +def cleanupOutputCallbacks(): + """clears the entire output callback table. this includes the + compiled-in I/O callbacks. """ + libxml2mod.xmlCleanupOutputCallbacks() + +def fileMatch(filename): + """input from FILE * """ + ret = libxml2mod.xmlFileMatch(filename) + return ret + +def iOFTPMatch(filename): + """check if the URI matches an FTP one """ + ret = libxml2mod.xmlIOFTPMatch(filename) + return ret + +def iOHTTPMatch(filename): + """check if the URI matches an HTTP one """ + ret = libxml2mod.xmlIOHTTPMatch(filename) + return ret + +def normalizeWindowsPath(path): + """This function is obsolete. Please see xmlURIFromPath in + uri.c for a better solution. """ + ret = libxml2mod.xmlNormalizeWindowsPath(path) + return ret + +def parserGetDirectory(filename): + """lookup the directory for that file """ + ret = libxml2mod.xmlParserGetDirectory(filename) + return ret + +def popInputCallbacks(): + """Clear the top input callback from the input stack. this + includes the compiled-in I/O. """ + ret = libxml2mod.xmlPopInputCallbacks() + return ret + +def registerDefaultInputCallbacks(): + """Registers the default compiled-in I/O handlers. """ + libxml2mod.xmlRegisterDefaultInputCallbacks() + +def registerDefaultOutputCallbacks(): + """Registers the default compiled-in I/O handlers. """ + libxml2mod.xmlRegisterDefaultOutputCallbacks() + +def registerHTTPPostCallbacks(): + """By default, libxml submits HTTP output requests using the + "PUT" method. Calling this method changes the HTTP output + method to use the "POST" method instead. """ + libxml2mod.xmlRegisterHTTPPostCallbacks() + +# +# Functions from module xmlerror +# + +def lastError(): + """Get the last global error registered. This is per thread if + compiled with thread support. """ + ret = libxml2mod.xmlGetLastError() + if ret is None:raise treeError('xmlGetLastError() failed') + return Error(_obj=ret) + +def resetLastError(): + """Cleanup the last global error registered. For parsing error + this does not change the well-formedness result. """ + libxml2mod.xmlResetLastError() + +# +# Functions from module xmlreader +# + +def newTextReaderFilename(URI): + """Create an xmlTextReader structure fed with the resource at + @URI """ + ret = libxml2mod.xmlNewTextReaderFilename(URI) + if ret is None:raise treeError('xmlNewTextReaderFilename() failed') + return xmlTextReader(_obj=ret) + +def readerForDoc(cur, URL, encoding, options): + """Create an xmltextReader for an XML in-memory document. The + parsing flags @options are a combination of xmlParserOption. """ + ret = libxml2mod.xmlReaderForDoc(cur, URL, encoding, options) + if ret is None:raise treeError('xmlReaderForDoc() failed') + return xmlTextReader(_obj=ret) + +def readerForFd(fd, URL, encoding, options): + """Create an xmltextReader for an XML from a file descriptor. + The parsing flags @options are a combination of + xmlParserOption. NOTE that the file descriptor will not be + closed when the reader is closed or reset. """ + ret = libxml2mod.xmlReaderForFd(fd, URL, encoding, options) + if ret is None:raise treeError('xmlReaderForFd() failed') + return xmlTextReader(_obj=ret) + +def readerForFile(filename, encoding, options): + """parse an XML file from the filesystem or the network. The + parsing flags @options are a combination of xmlParserOption. """ + ret = libxml2mod.xmlReaderForFile(filename, encoding, options) + if ret is None:raise treeError('xmlReaderForFile() failed') + return xmlTextReader(_obj=ret) + +def readerForMemory(buffer, size, URL, encoding, options): + """Create an xmltextReader for an XML in-memory document. The + parsing flags @options are a combination of xmlParserOption. """ + ret = libxml2mod.xmlReaderForMemory(buffer, size, URL, encoding, options) + if ret is None:raise treeError('xmlReaderForMemory() failed') + return xmlTextReader(_obj=ret) + +# +# Functions from module xmlregexp +# + +def regexpCompile(regexp): + """Parses a regular expression conforming to XML Schemas Part + 2 Datatype Appendix F and builds an automata suitable for + testing strings against that regular expression """ + ret = libxml2mod.xmlRegexpCompile(regexp) + if ret is None:raise treeError('xmlRegexpCompile() failed') + return xmlReg(_obj=ret) + +# +# Functions from module xmlschemas +# + +def schemaNewMemParserCtxt(buffer, size): + """Create an XML Schemas parse context for that memory buffer + expected to contain an XML Schemas file. """ + ret = libxml2mod.xmlSchemaNewMemParserCtxt(buffer, size) + if ret is None:raise parserError('xmlSchemaNewMemParserCtxt() failed') + return SchemaParserCtxt(_obj=ret) + +def schemaNewParserCtxt(URL): + """Create an XML Schemas parse context for that file/resource + expected to contain an XML Schemas file. """ + ret = libxml2mod.xmlSchemaNewParserCtxt(URL) + if ret is None:raise parserError('xmlSchemaNewParserCtxt() failed') + return SchemaParserCtxt(_obj=ret) + +# +# Functions from module xmlschemastypes +# + +def schemaCleanupTypes(): + """Cleanup the default XML Schemas type library """ + libxml2mod.xmlSchemaCleanupTypes() + +def schemaCollapseString(value): + """Removes and normalize white spaces in the string """ + ret = libxml2mod.xmlSchemaCollapseString(value) + return ret + +def schemaInitTypes(): + """Initialize the default XML Schemas type library """ + libxml2mod.xmlSchemaInitTypes() + +def schemaWhiteSpaceReplace(value): + """Replaces 0xd, 0x9 and 0xa with a space. """ + ret = libxml2mod.xmlSchemaWhiteSpaceReplace(value) + return ret + +# +# Functions from module xmlstring +# + +def UTF8Charcmp(utf1, utf2): + """compares the two UCS4 values """ + ret = libxml2mod.xmlUTF8Charcmp(utf1, utf2) + return ret + +def UTF8Size(utf): + """calculates the internal size of a UTF8 character """ + ret = libxml2mod.xmlUTF8Size(utf) + return ret + +def UTF8Strlen(utf): + """compute the length of an UTF8 string, it doesn't do a full + UTF8 checking of the content of the string. """ + ret = libxml2mod.xmlUTF8Strlen(utf) + return ret + +def UTF8Strloc(utf, utfchar): + """a function to provide the relative location of a UTF8 char """ + ret = libxml2mod.xmlUTF8Strloc(utf, utfchar) + return ret + +def UTF8Strndup(utf, len): + """a strndup for array of UTF8's """ + ret = libxml2mod.xmlUTF8Strndup(utf, len) + return ret + +def UTF8Strpos(utf, pos): + """a function to provide the equivalent of fetching a + character from a string array """ + ret = libxml2mod.xmlUTF8Strpos(utf, pos) + return ret + +def UTF8Strsize(utf, len): + """storage size of an UTF8 string the behaviour is not + garanteed if the input string is not UTF-8 """ + ret = libxml2mod.xmlUTF8Strsize(utf, len) + return ret + +def UTF8Strsub(utf, start, len): + """Create a substring from a given UTF-8 string Note: + positions are given in units of UTF-8 chars """ + ret = libxml2mod.xmlUTF8Strsub(utf, start, len) + return ret + +def checkUTF8(utf): + """Checks @utf for being valid UTF-8. @utf is assumed to be + null-terminated. This function is not super-strict, as it + will allow longer UTF-8 sequences than necessary. Note that + Java is capable of producing these sequences if provoked. + Also note, this routine checks for the 4-byte maximum size, + but does not check for 0x10ffff maximum value. """ + ret = libxml2mod.xmlCheckUTF8(utf) + return ret + +# +# Functions from module xmlunicode +# + +def uCSIsAegeanNumbers(code): + """Check whether the character is part of AegeanNumbers UCS + Block """ + ret = libxml2mod.xmlUCSIsAegeanNumbers(code) + return ret + +def uCSIsAlphabeticPresentationForms(code): + """Check whether the character is part of + AlphabeticPresentationForms UCS Block """ + ret = libxml2mod.xmlUCSIsAlphabeticPresentationForms(code) + return ret + +def uCSIsArabic(code): + """Check whether the character is part of Arabic UCS Block """ + ret = libxml2mod.xmlUCSIsArabic(code) + return ret + +def uCSIsArabicPresentationFormsA(code): + """Check whether the character is part of + ArabicPresentationForms-A UCS Block """ + ret = libxml2mod.xmlUCSIsArabicPresentationFormsA(code) + return ret + +def uCSIsArabicPresentationFormsB(code): + """Check whether the character is part of + ArabicPresentationForms-B UCS Block """ + ret = libxml2mod.xmlUCSIsArabicPresentationFormsB(code) + return ret + +def uCSIsArmenian(code): + """Check whether the character is part of Armenian UCS Block """ + ret = libxml2mod.xmlUCSIsArmenian(code) + return ret + +def uCSIsArrows(code): + """Check whether the character is part of Arrows UCS Block """ + ret = libxml2mod.xmlUCSIsArrows(code) + return ret + +def uCSIsBasicLatin(code): + """Check whether the character is part of BasicLatin UCS Block """ + ret = libxml2mod.xmlUCSIsBasicLatin(code) + return ret + +def uCSIsBengali(code): + """Check whether the character is part of Bengali UCS Block """ + ret = libxml2mod.xmlUCSIsBengali(code) + return ret + +def uCSIsBlock(code, block): + """Check whether the character is part of the UCS Block """ + ret = libxml2mod.xmlUCSIsBlock(code, block) + return ret + +def uCSIsBlockElements(code): + """Check whether the character is part of BlockElements UCS + Block """ + ret = libxml2mod.xmlUCSIsBlockElements(code) + return ret + +def uCSIsBopomofo(code): + """Check whether the character is part of Bopomofo UCS Block """ + ret = libxml2mod.xmlUCSIsBopomofo(code) + return ret + +def uCSIsBopomofoExtended(code): + """Check whether the character is part of BopomofoExtended UCS + Block """ + ret = libxml2mod.xmlUCSIsBopomofoExtended(code) + return ret + +def uCSIsBoxDrawing(code): + """Check whether the character is part of BoxDrawing UCS Block """ + ret = libxml2mod.xmlUCSIsBoxDrawing(code) + return ret + +def uCSIsBraillePatterns(code): + """Check whether the character is part of BraillePatterns UCS + Block """ + ret = libxml2mod.xmlUCSIsBraillePatterns(code) + return ret + +def uCSIsBuhid(code): + """Check whether the character is part of Buhid UCS Block """ + ret = libxml2mod.xmlUCSIsBuhid(code) + return ret + +def uCSIsByzantineMusicalSymbols(code): + """Check whether the character is part of + ByzantineMusicalSymbols UCS Block """ + ret = libxml2mod.xmlUCSIsByzantineMusicalSymbols(code) + return ret + +def uCSIsCJKCompatibility(code): + """Check whether the character is part of CJKCompatibility UCS + Block """ + ret = libxml2mod.xmlUCSIsCJKCompatibility(code) + return ret + +def uCSIsCJKCompatibilityForms(code): + """Check whether the character is part of + CJKCompatibilityForms UCS Block """ + ret = libxml2mod.xmlUCSIsCJKCompatibilityForms(code) + return ret + +def uCSIsCJKCompatibilityIdeographs(code): + """Check whether the character is part of + CJKCompatibilityIdeographs UCS Block """ + ret = libxml2mod.xmlUCSIsCJKCompatibilityIdeographs(code) + return ret + +def uCSIsCJKCompatibilityIdeographsSupplement(code): + """Check whether the character is part of + CJKCompatibilityIdeographsSupplement UCS Block """ + ret = libxml2mod.xmlUCSIsCJKCompatibilityIdeographsSupplement(code) + return ret + +def uCSIsCJKRadicalsSupplement(code): + """Check whether the character is part of + CJKRadicalsSupplement UCS Block """ + ret = libxml2mod.xmlUCSIsCJKRadicalsSupplement(code) + return ret + +def uCSIsCJKSymbolsandPunctuation(code): + """Check whether the character is part of + CJKSymbolsandPunctuation UCS Block """ + ret = libxml2mod.xmlUCSIsCJKSymbolsandPunctuation(code) + return ret + +def uCSIsCJKUnifiedIdeographs(code): + """Check whether the character is part of CJKUnifiedIdeographs + UCS Block """ + ret = libxml2mod.xmlUCSIsCJKUnifiedIdeographs(code) + return ret + +def uCSIsCJKUnifiedIdeographsExtensionA(code): + """Check whether the character is part of + CJKUnifiedIdeographsExtensionA UCS Block """ + ret = libxml2mod.xmlUCSIsCJKUnifiedIdeographsExtensionA(code) + return ret + +def uCSIsCJKUnifiedIdeographsExtensionB(code): + """Check whether the character is part of + CJKUnifiedIdeographsExtensionB UCS Block """ + ret = libxml2mod.xmlUCSIsCJKUnifiedIdeographsExtensionB(code) + return ret + +def uCSIsCat(code, cat): + """Check whether the character is part of the UCS Category """ + ret = libxml2mod.xmlUCSIsCat(code, cat) + return ret + +def uCSIsCatC(code): + """Check whether the character is part of C UCS Category """ + ret = libxml2mod.xmlUCSIsCatC(code) + return ret + +def uCSIsCatCc(code): + """Check whether the character is part of Cc UCS Category """ + ret = libxml2mod.xmlUCSIsCatCc(code) + return ret + +def uCSIsCatCf(code): + """Check whether the character is part of Cf UCS Category """ + ret = libxml2mod.xmlUCSIsCatCf(code) + return ret + +def uCSIsCatCo(code): + """Check whether the character is part of Co UCS Category """ + ret = libxml2mod.xmlUCSIsCatCo(code) + return ret + +def uCSIsCatCs(code): + """Check whether the character is part of Cs UCS Category """ + ret = libxml2mod.xmlUCSIsCatCs(code) + return ret + +def uCSIsCatL(code): + """Check whether the character is part of L UCS Category """ + ret = libxml2mod.xmlUCSIsCatL(code) + return ret + +def uCSIsCatLl(code): + """Check whether the character is part of Ll UCS Category """ + ret = libxml2mod.xmlUCSIsCatLl(code) + return ret + +def uCSIsCatLm(code): + """Check whether the character is part of Lm UCS Category """ + ret = libxml2mod.xmlUCSIsCatLm(code) + return ret + +def uCSIsCatLo(code): + """Check whether the character is part of Lo UCS Category """ + ret = libxml2mod.xmlUCSIsCatLo(code) + return ret + +def uCSIsCatLt(code): + """Check whether the character is part of Lt UCS Category """ + ret = libxml2mod.xmlUCSIsCatLt(code) + return ret + +def uCSIsCatLu(code): + """Check whether the character is part of Lu UCS Category """ + ret = libxml2mod.xmlUCSIsCatLu(code) + return ret + +def uCSIsCatM(code): + """Check whether the character is part of M UCS Category """ + ret = libxml2mod.xmlUCSIsCatM(code) + return ret + +def uCSIsCatMc(code): + """Check whether the character is part of Mc UCS Category """ + ret = libxml2mod.xmlUCSIsCatMc(code) + return ret + +def uCSIsCatMe(code): + """Check whether the character is part of Me UCS Category """ + ret = libxml2mod.xmlUCSIsCatMe(code) + return ret + +def uCSIsCatMn(code): + """Check whether the character is part of Mn UCS Category """ + ret = libxml2mod.xmlUCSIsCatMn(code) + return ret + +def uCSIsCatN(code): + """Check whether the character is part of N UCS Category """ + ret = libxml2mod.xmlUCSIsCatN(code) + return ret + +def uCSIsCatNd(code): + """Check whether the character is part of Nd UCS Category """ + ret = libxml2mod.xmlUCSIsCatNd(code) + return ret + +def uCSIsCatNl(code): + """Check whether the character is part of Nl UCS Category """ + ret = libxml2mod.xmlUCSIsCatNl(code) + return ret + +def uCSIsCatNo(code): + """Check whether the character is part of No UCS Category """ + ret = libxml2mod.xmlUCSIsCatNo(code) + return ret + +def uCSIsCatP(code): + """Check whether the character is part of P UCS Category """ + ret = libxml2mod.xmlUCSIsCatP(code) + return ret + +def uCSIsCatPc(code): + """Check whether the character is part of Pc UCS Category """ + ret = libxml2mod.xmlUCSIsCatPc(code) + return ret + +def uCSIsCatPd(code): + """Check whether the character is part of Pd UCS Category """ + ret = libxml2mod.xmlUCSIsCatPd(code) + return ret + +def uCSIsCatPe(code): + """Check whether the character is part of Pe UCS Category """ + ret = libxml2mod.xmlUCSIsCatPe(code) + return ret + +def uCSIsCatPf(code): + """Check whether the character is part of Pf UCS Category """ + ret = libxml2mod.xmlUCSIsCatPf(code) + return ret + +def uCSIsCatPi(code): + """Check whether the character is part of Pi UCS Category """ + ret = libxml2mod.xmlUCSIsCatPi(code) + return ret + +def uCSIsCatPo(code): + """Check whether the character is part of Po UCS Category """ + ret = libxml2mod.xmlUCSIsCatPo(code) + return ret + +def uCSIsCatPs(code): + """Check whether the character is part of Ps UCS Category """ + ret = libxml2mod.xmlUCSIsCatPs(code) + return ret + +def uCSIsCatS(code): + """Check whether the character is part of S UCS Category """ + ret = libxml2mod.xmlUCSIsCatS(code) + return ret + +def uCSIsCatSc(code): + """Check whether the character is part of Sc UCS Category """ + ret = libxml2mod.xmlUCSIsCatSc(code) + return ret + +def uCSIsCatSk(code): + """Check whether the character is part of Sk UCS Category """ + ret = libxml2mod.xmlUCSIsCatSk(code) + return ret + +def uCSIsCatSm(code): + """Check whether the character is part of Sm UCS Category """ + ret = libxml2mod.xmlUCSIsCatSm(code) + return ret + +def uCSIsCatSo(code): + """Check whether the character is part of So UCS Category """ + ret = libxml2mod.xmlUCSIsCatSo(code) + return ret + +def uCSIsCatZ(code): + """Check whether the character is part of Z UCS Category """ + ret = libxml2mod.xmlUCSIsCatZ(code) + return ret + +def uCSIsCatZl(code): + """Check whether the character is part of Zl UCS Category """ + ret = libxml2mod.xmlUCSIsCatZl(code) + return ret + +def uCSIsCatZp(code): + """Check whether the character is part of Zp UCS Category """ + ret = libxml2mod.xmlUCSIsCatZp(code) + return ret + +def uCSIsCatZs(code): + """Check whether the character is part of Zs UCS Category """ + ret = libxml2mod.xmlUCSIsCatZs(code) + return ret + +def uCSIsCherokee(code): + """Check whether the character is part of Cherokee UCS Block """ + ret = libxml2mod.xmlUCSIsCherokee(code) + return ret + +def uCSIsCombiningDiacriticalMarks(code): + """Check whether the character is part of + CombiningDiacriticalMarks UCS Block """ + ret = libxml2mod.xmlUCSIsCombiningDiacriticalMarks(code) + return ret + +def uCSIsCombiningDiacriticalMarksforSymbols(code): + """Check whether the character is part of + CombiningDiacriticalMarksforSymbols UCS Block """ + ret = libxml2mod.xmlUCSIsCombiningDiacriticalMarksforSymbols(code) + return ret + +def uCSIsCombiningHalfMarks(code): + """Check whether the character is part of CombiningHalfMarks + UCS Block """ + ret = libxml2mod.xmlUCSIsCombiningHalfMarks(code) + return ret + +def uCSIsCombiningMarksforSymbols(code): + """Check whether the character is part of + CombiningMarksforSymbols UCS Block """ + ret = libxml2mod.xmlUCSIsCombiningMarksforSymbols(code) + return ret + +def uCSIsControlPictures(code): + """Check whether the character is part of ControlPictures UCS + Block """ + ret = libxml2mod.xmlUCSIsControlPictures(code) + return ret + +def uCSIsCurrencySymbols(code): + """Check whether the character is part of CurrencySymbols UCS + Block """ + ret = libxml2mod.xmlUCSIsCurrencySymbols(code) + return ret + +def uCSIsCypriotSyllabary(code): + """Check whether the character is part of CypriotSyllabary UCS + Block """ + ret = libxml2mod.xmlUCSIsCypriotSyllabary(code) + return ret + +def uCSIsCyrillic(code): + """Check whether the character is part of Cyrillic UCS Block """ + ret = libxml2mod.xmlUCSIsCyrillic(code) + return ret + +def uCSIsCyrillicSupplement(code): + """Check whether the character is part of CyrillicSupplement + UCS Block """ + ret = libxml2mod.xmlUCSIsCyrillicSupplement(code) + return ret + +def uCSIsDeseret(code): + """Check whether the character is part of Deseret UCS Block """ + ret = libxml2mod.xmlUCSIsDeseret(code) + return ret + +def uCSIsDevanagari(code): + """Check whether the character is part of Devanagari UCS Block """ + ret = libxml2mod.xmlUCSIsDevanagari(code) + return ret + +def uCSIsDingbats(code): + """Check whether the character is part of Dingbats UCS Block """ + ret = libxml2mod.xmlUCSIsDingbats(code) + return ret + +def uCSIsEnclosedAlphanumerics(code): + """Check whether the character is part of + EnclosedAlphanumerics UCS Block """ + ret = libxml2mod.xmlUCSIsEnclosedAlphanumerics(code) + return ret + +def uCSIsEnclosedCJKLettersandMonths(code): + """Check whether the character is part of + EnclosedCJKLettersandMonths UCS Block """ + ret = libxml2mod.xmlUCSIsEnclosedCJKLettersandMonths(code) + return ret + +def uCSIsEthiopic(code): + """Check whether the character is part of Ethiopic UCS Block """ + ret = libxml2mod.xmlUCSIsEthiopic(code) + return ret + +def uCSIsGeneralPunctuation(code): + """Check whether the character is part of GeneralPunctuation + UCS Block """ + ret = libxml2mod.xmlUCSIsGeneralPunctuation(code) + return ret + +def uCSIsGeometricShapes(code): + """Check whether the character is part of GeometricShapes UCS + Block """ + ret = libxml2mod.xmlUCSIsGeometricShapes(code) + return ret + +def uCSIsGeorgian(code): + """Check whether the character is part of Georgian UCS Block """ + ret = libxml2mod.xmlUCSIsGeorgian(code) + return ret + +def uCSIsGothic(code): + """Check whether the character is part of Gothic UCS Block """ + ret = libxml2mod.xmlUCSIsGothic(code) + return ret + +def uCSIsGreek(code): + """Check whether the character is part of Greek UCS Block """ + ret = libxml2mod.xmlUCSIsGreek(code) + return ret + +def uCSIsGreekExtended(code): + """Check whether the character is part of GreekExtended UCS + Block """ + ret = libxml2mod.xmlUCSIsGreekExtended(code) + return ret + +def uCSIsGreekandCoptic(code): + """Check whether the character is part of GreekandCoptic UCS + Block """ + ret = libxml2mod.xmlUCSIsGreekandCoptic(code) + return ret + +def uCSIsGujarati(code): + """Check whether the character is part of Gujarati UCS Block """ + ret = libxml2mod.xmlUCSIsGujarati(code) + return ret + +def uCSIsGurmukhi(code): + """Check whether the character is part of Gurmukhi UCS Block """ + ret = libxml2mod.xmlUCSIsGurmukhi(code) + return ret + +def uCSIsHalfwidthandFullwidthForms(code): + """Check whether the character is part of + HalfwidthandFullwidthForms UCS Block """ + ret = libxml2mod.xmlUCSIsHalfwidthandFullwidthForms(code) + return ret + +def uCSIsHangulCompatibilityJamo(code): + """Check whether the character is part of + HangulCompatibilityJamo UCS Block """ + ret = libxml2mod.xmlUCSIsHangulCompatibilityJamo(code) + return ret + +def uCSIsHangulJamo(code): + """Check whether the character is part of HangulJamo UCS Block """ + ret = libxml2mod.xmlUCSIsHangulJamo(code) + return ret + +def uCSIsHangulSyllables(code): + """Check whether the character is part of HangulSyllables UCS + Block """ + ret = libxml2mod.xmlUCSIsHangulSyllables(code) + return ret + +def uCSIsHanunoo(code): + """Check whether the character is part of Hanunoo UCS Block """ + ret = libxml2mod.xmlUCSIsHanunoo(code) + return ret + +def uCSIsHebrew(code): + """Check whether the character is part of Hebrew UCS Block """ + ret = libxml2mod.xmlUCSIsHebrew(code) + return ret + +def uCSIsHighPrivateUseSurrogates(code): + """Check whether the character is part of + HighPrivateUseSurrogates UCS Block """ + ret = libxml2mod.xmlUCSIsHighPrivateUseSurrogates(code) + return ret + +def uCSIsHighSurrogates(code): + """Check whether the character is part of HighSurrogates UCS + Block """ + ret = libxml2mod.xmlUCSIsHighSurrogates(code) + return ret + +def uCSIsHiragana(code): + """Check whether the character is part of Hiragana UCS Block """ + ret = libxml2mod.xmlUCSIsHiragana(code) + return ret + +def uCSIsIPAExtensions(code): + """Check whether the character is part of IPAExtensions UCS + Block """ + ret = libxml2mod.xmlUCSIsIPAExtensions(code) + return ret + +def uCSIsIdeographicDescriptionCharacters(code): + """Check whether the character is part of + IdeographicDescriptionCharacters UCS Block """ + ret = libxml2mod.xmlUCSIsIdeographicDescriptionCharacters(code) + return ret + +def uCSIsKanbun(code): + """Check whether the character is part of Kanbun UCS Block """ + ret = libxml2mod.xmlUCSIsKanbun(code) + return ret + +def uCSIsKangxiRadicals(code): + """Check whether the character is part of KangxiRadicals UCS + Block """ + ret = libxml2mod.xmlUCSIsKangxiRadicals(code) + return ret + +def uCSIsKannada(code): + """Check whether the character is part of Kannada UCS Block """ + ret = libxml2mod.xmlUCSIsKannada(code) + return ret + +def uCSIsKatakana(code): + """Check whether the character is part of Katakana UCS Block """ + ret = libxml2mod.xmlUCSIsKatakana(code) + return ret + +def uCSIsKatakanaPhoneticExtensions(code): + """Check whether the character is part of + KatakanaPhoneticExtensions UCS Block """ + ret = libxml2mod.xmlUCSIsKatakanaPhoneticExtensions(code) + return ret + +def uCSIsKhmer(code): + """Check whether the character is part of Khmer UCS Block """ + ret = libxml2mod.xmlUCSIsKhmer(code) + return ret + +def uCSIsKhmerSymbols(code): + """Check whether the character is part of KhmerSymbols UCS + Block """ + ret = libxml2mod.xmlUCSIsKhmerSymbols(code) + return ret + +def uCSIsLao(code): + """Check whether the character is part of Lao UCS Block """ + ret = libxml2mod.xmlUCSIsLao(code) + return ret + +def uCSIsLatin1Supplement(code): + """Check whether the character is part of Latin-1Supplement + UCS Block """ + ret = libxml2mod.xmlUCSIsLatin1Supplement(code) + return ret + +def uCSIsLatinExtendedA(code): + """Check whether the character is part of LatinExtended-A UCS + Block """ + ret = libxml2mod.xmlUCSIsLatinExtendedA(code) + return ret + +def uCSIsLatinExtendedAdditional(code): + """Check whether the character is part of + LatinExtendedAdditional UCS Block """ + ret = libxml2mod.xmlUCSIsLatinExtendedAdditional(code) + return ret + +def uCSIsLatinExtendedB(code): + """Check whether the character is part of LatinExtended-B UCS + Block """ + ret = libxml2mod.xmlUCSIsLatinExtendedB(code) + return ret + +def uCSIsLetterlikeSymbols(code): + """Check whether the character is part of LetterlikeSymbols + UCS Block """ + ret = libxml2mod.xmlUCSIsLetterlikeSymbols(code) + return ret + +def uCSIsLimbu(code): + """Check whether the character is part of Limbu UCS Block """ + ret = libxml2mod.xmlUCSIsLimbu(code) + return ret + +def uCSIsLinearBIdeograms(code): + """Check whether the character is part of LinearBIdeograms UCS + Block """ + ret = libxml2mod.xmlUCSIsLinearBIdeograms(code) + return ret + +def uCSIsLinearBSyllabary(code): + """Check whether the character is part of LinearBSyllabary UCS + Block """ + ret = libxml2mod.xmlUCSIsLinearBSyllabary(code) + return ret + +def uCSIsLowSurrogates(code): + """Check whether the character is part of LowSurrogates UCS + Block """ + ret = libxml2mod.xmlUCSIsLowSurrogates(code) + return ret + +def uCSIsMalayalam(code): + """Check whether the character is part of Malayalam UCS Block """ + ret = libxml2mod.xmlUCSIsMalayalam(code) + return ret + +def uCSIsMathematicalAlphanumericSymbols(code): + """Check whether the character is part of + MathematicalAlphanumericSymbols UCS Block """ + ret = libxml2mod.xmlUCSIsMathematicalAlphanumericSymbols(code) + return ret + +def uCSIsMathematicalOperators(code): + """Check whether the character is part of + MathematicalOperators UCS Block """ + ret = libxml2mod.xmlUCSIsMathematicalOperators(code) + return ret + +def uCSIsMiscellaneousMathematicalSymbolsA(code): + """Check whether the character is part of + MiscellaneousMathematicalSymbols-A UCS Block """ + ret = libxml2mod.xmlUCSIsMiscellaneousMathematicalSymbolsA(code) + return ret + +def uCSIsMiscellaneousMathematicalSymbolsB(code): + """Check whether the character is part of + MiscellaneousMathematicalSymbols-B UCS Block """ + ret = libxml2mod.xmlUCSIsMiscellaneousMathematicalSymbolsB(code) + return ret + +def uCSIsMiscellaneousSymbols(code): + """Check whether the character is part of MiscellaneousSymbols + UCS Block """ + ret = libxml2mod.xmlUCSIsMiscellaneousSymbols(code) + return ret + +def uCSIsMiscellaneousSymbolsandArrows(code): + """Check whether the character is part of + MiscellaneousSymbolsandArrows UCS Block """ + ret = libxml2mod.xmlUCSIsMiscellaneousSymbolsandArrows(code) + return ret + +def uCSIsMiscellaneousTechnical(code): + """Check whether the character is part of + MiscellaneousTechnical UCS Block """ + ret = libxml2mod.xmlUCSIsMiscellaneousTechnical(code) + return ret + +def uCSIsMongolian(code): + """Check whether the character is part of Mongolian UCS Block """ + ret = libxml2mod.xmlUCSIsMongolian(code) + return ret + +def uCSIsMusicalSymbols(code): + """Check whether the character is part of MusicalSymbols UCS + Block """ + ret = libxml2mod.xmlUCSIsMusicalSymbols(code) + return ret + +def uCSIsMyanmar(code): + """Check whether the character is part of Myanmar UCS Block """ + ret = libxml2mod.xmlUCSIsMyanmar(code) + return ret + +def uCSIsNumberForms(code): + """Check whether the character is part of NumberForms UCS Block """ + ret = libxml2mod.xmlUCSIsNumberForms(code) + return ret + +def uCSIsOgham(code): + """Check whether the character is part of Ogham UCS Block """ + ret = libxml2mod.xmlUCSIsOgham(code) + return ret + +def uCSIsOldItalic(code): + """Check whether the character is part of OldItalic UCS Block """ + ret = libxml2mod.xmlUCSIsOldItalic(code) + return ret + +def uCSIsOpticalCharacterRecognition(code): + """Check whether the character is part of + OpticalCharacterRecognition UCS Block """ + ret = libxml2mod.xmlUCSIsOpticalCharacterRecognition(code) + return ret + +def uCSIsOriya(code): + """Check whether the character is part of Oriya UCS Block """ + ret = libxml2mod.xmlUCSIsOriya(code) + return ret + +def uCSIsOsmanya(code): + """Check whether the character is part of Osmanya UCS Block """ + ret = libxml2mod.xmlUCSIsOsmanya(code) + return ret + +def uCSIsPhoneticExtensions(code): + """Check whether the character is part of PhoneticExtensions + UCS Block """ + ret = libxml2mod.xmlUCSIsPhoneticExtensions(code) + return ret + +def uCSIsPrivateUse(code): + """Check whether the character is part of PrivateUse UCS Block """ + ret = libxml2mod.xmlUCSIsPrivateUse(code) + return ret + +def uCSIsPrivateUseArea(code): + """Check whether the character is part of PrivateUseArea UCS + Block """ + ret = libxml2mod.xmlUCSIsPrivateUseArea(code) + return ret + +def uCSIsRunic(code): + """Check whether the character is part of Runic UCS Block """ + ret = libxml2mod.xmlUCSIsRunic(code) + return ret + +def uCSIsShavian(code): + """Check whether the character is part of Shavian UCS Block """ + ret = libxml2mod.xmlUCSIsShavian(code) + return ret + +def uCSIsSinhala(code): + """Check whether the character is part of Sinhala UCS Block """ + ret = libxml2mod.xmlUCSIsSinhala(code) + return ret + +def uCSIsSmallFormVariants(code): + """Check whether the character is part of SmallFormVariants + UCS Block """ + ret = libxml2mod.xmlUCSIsSmallFormVariants(code) + return ret + +def uCSIsSpacingModifierLetters(code): + """Check whether the character is part of + SpacingModifierLetters UCS Block """ + ret = libxml2mod.xmlUCSIsSpacingModifierLetters(code) + return ret + +def uCSIsSpecials(code): + """Check whether the character is part of Specials UCS Block """ + ret = libxml2mod.xmlUCSIsSpecials(code) + return ret + +def uCSIsSuperscriptsandSubscripts(code): + """Check whether the character is part of + SuperscriptsandSubscripts UCS Block """ + ret = libxml2mod.xmlUCSIsSuperscriptsandSubscripts(code) + return ret + +def uCSIsSupplementalArrowsA(code): + """Check whether the character is part of SupplementalArrows-A + UCS Block """ + ret = libxml2mod.xmlUCSIsSupplementalArrowsA(code) + return ret + +def uCSIsSupplementalArrowsB(code): + """Check whether the character is part of SupplementalArrows-B + UCS Block """ + ret = libxml2mod.xmlUCSIsSupplementalArrowsB(code) + return ret + +def uCSIsSupplementalMathematicalOperators(code): + """Check whether the character is part of + SupplementalMathematicalOperators UCS Block """ + ret = libxml2mod.xmlUCSIsSupplementalMathematicalOperators(code) + return ret + +def uCSIsSupplementaryPrivateUseAreaA(code): + """Check whether the character is part of + SupplementaryPrivateUseArea-A UCS Block """ + ret = libxml2mod.xmlUCSIsSupplementaryPrivateUseAreaA(code) + return ret + +def uCSIsSupplementaryPrivateUseAreaB(code): + """Check whether the character is part of + SupplementaryPrivateUseArea-B UCS Block """ + ret = libxml2mod.xmlUCSIsSupplementaryPrivateUseAreaB(code) + return ret + +def uCSIsSyriac(code): + """Check whether the character is part of Syriac UCS Block """ + ret = libxml2mod.xmlUCSIsSyriac(code) + return ret + +def uCSIsTagalog(code): + """Check whether the character is part of Tagalog UCS Block """ + ret = libxml2mod.xmlUCSIsTagalog(code) + return ret + +def uCSIsTagbanwa(code): + """Check whether the character is part of Tagbanwa UCS Block """ + ret = libxml2mod.xmlUCSIsTagbanwa(code) + return ret + +def uCSIsTags(code): + """Check whether the character is part of Tags UCS Block """ + ret = libxml2mod.xmlUCSIsTags(code) + return ret + +def uCSIsTaiLe(code): + """Check whether the character is part of TaiLe UCS Block """ + ret = libxml2mod.xmlUCSIsTaiLe(code) + return ret + +def uCSIsTaiXuanJingSymbols(code): + """Check whether the character is part of TaiXuanJingSymbols + UCS Block """ + ret = libxml2mod.xmlUCSIsTaiXuanJingSymbols(code) + return ret + +def uCSIsTamil(code): + """Check whether the character is part of Tamil UCS Block """ + ret = libxml2mod.xmlUCSIsTamil(code) + return ret + +def uCSIsTelugu(code): + """Check whether the character is part of Telugu UCS Block """ + ret = libxml2mod.xmlUCSIsTelugu(code) + return ret + +def uCSIsThaana(code): + """Check whether the character is part of Thaana UCS Block """ + ret = libxml2mod.xmlUCSIsThaana(code) + return ret + +def uCSIsThai(code): + """Check whether the character is part of Thai UCS Block """ + ret = libxml2mod.xmlUCSIsThai(code) + return ret + +def uCSIsTibetan(code): + """Check whether the character is part of Tibetan UCS Block """ + ret = libxml2mod.xmlUCSIsTibetan(code) + return ret + +def uCSIsUgaritic(code): + """Check whether the character is part of Ugaritic UCS Block """ + ret = libxml2mod.xmlUCSIsUgaritic(code) + return ret + +def uCSIsUnifiedCanadianAboriginalSyllabics(code): + """Check whether the character is part of + UnifiedCanadianAboriginalSyllabics UCS Block """ + ret = libxml2mod.xmlUCSIsUnifiedCanadianAboriginalSyllabics(code) + return ret + +def uCSIsVariationSelectors(code): + """Check whether the character is part of VariationSelectors + UCS Block """ + ret = libxml2mod.xmlUCSIsVariationSelectors(code) + return ret + +def uCSIsVariationSelectorsSupplement(code): + """Check whether the character is part of + VariationSelectorsSupplement UCS Block """ + ret = libxml2mod.xmlUCSIsVariationSelectorsSupplement(code) + return ret + +def uCSIsYiRadicals(code): + """Check whether the character is part of YiRadicals UCS Block """ + ret = libxml2mod.xmlUCSIsYiRadicals(code) + return ret + +def uCSIsYiSyllables(code): + """Check whether the character is part of YiSyllables UCS Block """ + ret = libxml2mod.xmlUCSIsYiSyllables(code) + return ret + +def uCSIsYijingHexagramSymbols(code): + """Check whether the character is part of + YijingHexagramSymbols UCS Block """ + ret = libxml2mod.xmlUCSIsYijingHexagramSymbols(code) + return ret + +# +# Functions from module xmlversion +# + +def checkVersion(version): + """check the compiled lib version against the include one. + This can warn or immediately kill the application """ + libxml2mod.xmlCheckVersion(version) + +# +# Functions from module xpathInternals +# + +def valuePop(ctxt): + """Pops the top XPath object from the value stack """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.valuePop(ctxt__o) + return ret + +class xmlNode(xmlCore): + def __init__(self, _obj=None): + if type(_obj).__name__ != 'PyCObject': + raise TypeError, 'xmlNode needs a PyCObject argument' + self._o = _obj + xmlCore.__init__(self, _obj=_obj) + + def __repr__(self): + return "" % (self.name, long(pos_id (self))) + + # accessors for xmlNode + def ns(self): + """Get the namespace of a node """ + ret = libxml2mod.xmlNodeGetNs(self._o) + if ret is None:return None + __tmp = xmlNs(_obj=ret) + return __tmp + + def nsDefs(self): + """Get the namespace of a node """ + ret = libxml2mod.xmlNodeGetNsDefs(self._o) + if ret is None:return None + __tmp = xmlNs(_obj=ret) + return __tmp + + # + # xmlNode functions from module debugXML + # + + def debugDumpNode(self, output, depth): + """Dumps debug information for the element node, it is + recursive """ + libxml2mod.xmlDebugDumpNode(output, self._o, depth) + + def debugDumpNodeList(self, output, depth): + """Dumps debug information for the list of element node, it is + recursive """ + libxml2mod.xmlDebugDumpNodeList(output, self._o, depth) + + def debugDumpOneNode(self, output, depth): + """Dumps debug information for the element node, it is not + recursive """ + libxml2mod.xmlDebugDumpOneNode(output, self._o, depth) + + def lsCountNode(self): + """Count the children of @node. """ + ret = libxml2mod.xmlLsCountNode(self._o) + return ret + + def lsOneNode(self, output): + """Dump to @output the type and name of @node. """ + libxml2mod.xmlLsOneNode(output, self._o) + + def shellPrintNode(self): + """Print node to the output FILE """ + libxml2mod.xmlShellPrintNode(self._o) + + # + # xmlNode functions from module tree + # + + def addChild(self, cur): + """Add a new node to @parent, at the end of the child (or + property) list merging adjacent TEXT nodes (in which case + @cur is freed) If the new node is ATTRIBUTE, it is added + into properties instead of children. If there is an + attribute with equal name, it is first destroyed. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlAddChild(self._o, cur__o) + if ret is None:raise treeError('xmlAddChild() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def addChildList(self, cur): + """Add a list of node at the end of the child list of the + parent merging adjacent TEXT nodes (@cur may be freed) """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlAddChildList(self._o, cur__o) + if ret is None:raise treeError('xmlAddChildList() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def addContent(self, content): + """Append the extra substring to the node content. NOTE: In + contrast to xmlNodeSetContent(), @content is supposed to be + raw text, so unescaped XML special chars are allowed, + entity references are not supported. """ + libxml2mod.xmlNodeAddContent(self._o, content) + + def addContentLen(self, content, len): + """Append the extra substring to the node content. NOTE: In + contrast to xmlNodeSetContentLen(), @content is supposed to + be raw text, so unescaped XML special chars are allowed, + entity references are not supported. """ + libxml2mod.xmlNodeAddContentLen(self._o, content, len) + + def addNextSibling(self, elem): + """Add a new node @elem as the next sibling of @cur If the new + node was already inserted in a document it is first + unlinked from its existing context. As a result of text + merging @elem may be freed. If the new node is ATTRIBUTE, + it is added into properties instead of children. If there + is an attribute with equal name, it is first destroyed. """ + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlAddNextSibling(self._o, elem__o) + if ret is None:raise treeError('xmlAddNextSibling() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def addPrevSibling(self, elem): + """Add a new node @elem as the previous sibling of @cur + merging adjacent TEXT nodes (@elem may be freed) If the new + node was already inserted in a document it is first + unlinked from its existing context. If the new node is + ATTRIBUTE, it is added into properties instead of children. + If there is an attribute with equal name, it is first + destroyed. """ + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlAddPrevSibling(self._o, elem__o) + if ret is None:raise treeError('xmlAddPrevSibling() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def addSibling(self, elem): + """Add a new element @elem to the list of siblings of @cur + merging adjacent TEXT nodes (@elem may be freed) If the new + element was already inserted in a document it is first + unlinked from its existing context. """ + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlAddSibling(self._o, elem__o) + if ret is None:raise treeError('xmlAddSibling() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def copyNode(self, extended): + """Do a copy of the node. """ + ret = libxml2mod.xmlCopyNode(self._o, extended) + if ret is None:raise treeError('xmlCopyNode() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def copyNodeList(self): + """Do a recursive copy of the node list. Use + xmlDocCopyNodeList() if possible to ensure string interning. """ + ret = libxml2mod.xmlCopyNodeList(self._o) + if ret is None:raise treeError('xmlCopyNodeList() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def copyProp(self, cur): + """Do a copy of the attribute. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlCopyProp(self._o, cur__o) + if ret is None:raise treeError('xmlCopyProp() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def copyPropList(self, cur): + """Do a copy of an attribute list. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlCopyPropList(self._o, cur__o) + if ret is None:raise treeError('xmlCopyPropList() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def docCopyNode(self, doc, extended): + """Do a copy of the node to a given document. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlDocCopyNode(self._o, doc__o, extended) + if ret is None:raise treeError('xmlDocCopyNode() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def docCopyNodeList(self, doc): + """Do a recursive copy of the node list. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlDocCopyNodeList(doc__o, self._o) + if ret is None:raise treeError('xmlDocCopyNodeList() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def docSetRootElement(self, doc): + """Set the root element of the document (doc->children is a + list containing possibly comments, PIs, etc ...). """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlDocSetRootElement(doc__o, self._o) + if ret is None:return None + __tmp = xmlNode(_obj=ret) + return __tmp + + def firstElementChild(self): + """Finds the first child node of that element which is a + Element node Note the handling of entities references is + different than in the W3C DOM element traversal spec since + we don't have back reference from entities content to + entities references. """ + ret = libxml2mod.xmlFirstElementChild(self._o) + if ret is None:return None + __tmp = xmlNode(_obj=ret) + return __tmp + + def freeNode(self): + """Free a node, this is a recursive behaviour, all the + children are freed too. This doesn't unlink the child from + the list, use xmlUnlinkNode() first. """ + libxml2mod.xmlFreeNode(self._o) + + def freeNodeList(self): + """Free a node and all its siblings, this is a recursive + behaviour, all the children are freed too. """ + libxml2mod.xmlFreeNodeList(self._o) + + def getBase(self, doc): + """Searches for the BASE URL. The code should work on both XML + and HTML document even if base mechanisms are completely + different. It returns the base as defined in RFC 2396 + sections 5.1.1. Base URI within Document Content and 5.1.2. + Base URI from the Encapsulating Entity However it does not + return the document base (5.1.3), use doc->URL in this case """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlNodeGetBase(doc__o, self._o) + return ret + + def getContent(self): + """Read the value of a node, this can be either the text + carried directly by this node if it's a TEXT node or the + aggregate string of the values carried by this node child's + (TEXT and ENTITY_REF). Entity references are substituted. """ + ret = libxml2mod.xmlNodeGetContent(self._o) + return ret + + def getLang(self): + """Searches the language of a node, i.e. the values of the + xml:lang attribute or the one carried by the nearest + ancestor. """ + ret = libxml2mod.xmlNodeGetLang(self._o) + return ret + + def getSpacePreserve(self): + """Searches the space preserving behaviour of a node, i.e. the + values of the xml:space attribute or the one carried by the + nearest ancestor. """ + ret = libxml2mod.xmlNodeGetSpacePreserve(self._o) + return ret + + def hasNsProp(self, name, nameSpace): + """Search for an attribute associated to a node This attribute + has to be anchored in the namespace specified. This does + the entity substitution. This function looks in DTD + attribute declaration for #FIXED or default declaration + values unless DTD use has been turned off. Note that a + namespace of None indicates to use the default namespace. """ + ret = libxml2mod.xmlHasNsProp(self._o, name, nameSpace) + if ret is None:return None + __tmp = xmlAttr(_obj=ret) + return __tmp + + def hasProp(self, name): + """Search an attribute associated to a node This function also + looks in DTD attribute declaration for #FIXED or default + declaration values unless DTD use has been turned off. """ + ret = libxml2mod.xmlHasProp(self._o, name) + if ret is None:return None + __tmp = xmlAttr(_obj=ret) + return __tmp + + def isBlankNode(self): + """Checks whether this node is an empty or whitespace only + (and possibly ignorable) text-node. """ + ret = libxml2mod.xmlIsBlankNode(self._o) + return ret + + def isText(self): + """Is this node a Text node ? """ + ret = libxml2mod.xmlNodeIsText(self._o) + return ret + + def lastChild(self): + """Search the last child of a node. """ + ret = libxml2mod.xmlGetLastChild(self._o) + if ret is None:raise treeError('xmlGetLastChild() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def lastElementChild(self): + """Finds the last child node of that element which is a + Element node Note the handling of entities references is + different than in the W3C DOM element traversal spec since + we don't have back reference from entities content to + entities references. """ + ret = libxml2mod.xmlLastElementChild(self._o) + if ret is None:return None + __tmp = xmlNode(_obj=ret) + return __tmp + + def lineNo(self): + """Get line number of @node. Try to override the limitation of + lines being store in 16 bits ints if XML_PARSE_BIG_LINES + parser option was used """ + ret = libxml2mod.xmlGetLineNo(self._o) + return ret + + def listGetRawString(self, doc, inLine): + """Builds the string equivalent to the text contained in the + Node list made of TEXTs and ENTITY_REFs, contrary to + xmlNodeListGetString() this function doesn't do any + character encoding handling. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlNodeListGetRawString(doc__o, self._o, inLine) + return ret + + def listGetString(self, doc, inLine): + """Build the string equivalent to the text contained in the + Node list made of TEXTs and ENTITY_REFs """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlNodeListGetString(doc__o, self._o, inLine) + return ret + + def newChild(self, ns, name, content): + """Creation of a new child element, added at the end of + @parent children list. @ns and @content parameters are + optional (None). If @ns is None, the newly created element + inherits the namespace of @parent. If @content is non None, + a child list containing the TEXTs and ENTITY_REFs node will + be created. NOTE: @content is supposed to be a piece of XML + CDATA, so it allows entity references. XML special chars + must be escaped first by using + xmlEncodeEntitiesReentrant(), or xmlNewTextChild() should + be used. """ + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlNewChild(self._o, ns__o, name, content) + if ret is None:raise treeError('xmlNewChild() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newNs(self, href, prefix): + """Creation of a new Namespace. This function will refuse to + create a namespace with a similar prefix than an existing + one present on this node. We use href==None in the case of + an element creation where the namespace was not defined. """ + ret = libxml2mod.xmlNewNs(self._o, href, prefix) + if ret is None:raise treeError('xmlNewNs() failed') + __tmp = xmlNs(_obj=ret) + return __tmp + + def newNsProp(self, ns, name, value): + """Create a new property tagged with a namespace and carried + by a node. """ + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlNewNsProp(self._o, ns__o, name, value) + if ret is None:raise treeError('xmlNewNsProp() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def newNsPropEatName(self, ns, name, value): + """Create a new property tagged with a namespace and carried + by a node. """ + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlNewNsPropEatName(self._o, ns__o, name, value) + if ret is None:raise treeError('xmlNewNsPropEatName() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def newProp(self, name, value): + """Create a new property carried by a node. """ + ret = libxml2mod.xmlNewProp(self._o, name, value) + if ret is None:raise treeError('xmlNewProp() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def newTextChild(self, ns, name, content): + """Creation of a new child element, added at the end of + @parent children list. @ns and @content parameters are + optional (None). If @ns is None, the newly created element + inherits the namespace of @parent. If @content is non None, + a child TEXT node will be created containing the string + @content. NOTE: Use xmlNewChild() if @content will contain + entities that need to be preserved. Use this function, + xmlNewTextChild(), if you need to ensure that reserved XML + chars that might appear in @content, such as the ampersand, + greater-than or less-than signs, are automatically replaced + by their XML escaped entity representations. """ + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlNewTextChild(self._o, ns__o, name, content) + if ret is None:raise treeError('xmlNewTextChild() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def nextElementSibling(self): + """Finds the first closest next sibling of the node which is + an element node. Note the handling of entities references + is different than in the W3C DOM element traversal spec + since we don't have back reference from entities content to + entities references. """ + ret = libxml2mod.xmlNextElementSibling(self._o) + if ret is None:return None + __tmp = xmlNode(_obj=ret) + return __tmp + + def noNsProp(self, name): + """Search and get the value of an attribute associated to a + node This does the entity substitution. This function looks + in DTD attribute declaration for #FIXED or default + declaration values unless DTD use has been turned off. This + function is similar to xmlGetProp except it will accept + only an attribute in no namespace. """ + ret = libxml2mod.xmlGetNoNsProp(self._o, name) + return ret + + def nodePath(self): + """Build a structure based Path for the given node """ + ret = libxml2mod.xmlGetNodePath(self._o) + return ret + + def nsProp(self, name, nameSpace): + """Search and get the value of an attribute associated to a + node This attribute has to be anchored in the namespace + specified. This does the entity substitution. This function + looks in DTD attribute declaration for #FIXED or default + declaration values unless DTD use has been turned off. """ + ret = libxml2mod.xmlGetNsProp(self._o, name, nameSpace) + return ret + + def previousElementSibling(self): + """Finds the first closest previous sibling of the node which + is an element node. Note the handling of entities + references is different than in the W3C DOM element + traversal spec since we don't have back reference from + entities content to entities references. """ + ret = libxml2mod.xmlPreviousElementSibling(self._o) + if ret is None:return None + __tmp = xmlNode(_obj=ret) + return __tmp + + def prop(self, name): + """Search and get the value of an attribute associated to a + node This does the entity substitution. This function looks + in DTD attribute declaration for #FIXED or default + declaration values unless DTD use has been turned off. + NOTE: this function acts independently of namespaces + associated to the attribute. Use xmlGetNsProp() or + xmlGetNoNsProp() for namespace aware processing. """ + ret = libxml2mod.xmlGetProp(self._o, name) + return ret + + def reconciliateNs(self, doc): + """This function checks that all the namespaces declared + within the given tree are properly declared. This is needed + for example after Copy or Cut and then paste operations. + The subtree may still hold pointers to namespace + declarations outside the subtree or invalid/masked. As much + as possible the function try to reuse the existing + namespaces found in the new environment. If not possible + the new namespaces are redeclared on @tree at the top of + the given subtree. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlReconciliateNs(doc__o, self._o) + return ret + + def replaceNode(self, cur): + """Unlink the old node from its current context, prune the new + one at the same place. If @cur was already inserted in a + document it is first unlinked from its existing context. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlReplaceNode(self._o, cur__o) + if ret is None:raise treeError('xmlReplaceNode() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def searchNs(self, doc, nameSpace): + """Search a Ns registered under a given name space for a + document. recurse on the parents until it finds the defined + namespace or return None otherwise. @nameSpace can be None, + this is a search for the default namespace. We don't allow + to cross entities boundaries. If you don't declare the + namespace within those you will be in troubles !!! A + warning is generated to cover this case. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlSearchNs(doc__o, self._o, nameSpace) + if ret is None:raise treeError('xmlSearchNs() failed') + __tmp = xmlNs(_obj=ret) + return __tmp + + def searchNsByHref(self, doc, href): + """Search a Ns aliasing a given URI. Recurse on the parents + until it finds the defined namespace or return None + otherwise. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlSearchNsByHref(doc__o, self._o, href) + if ret is None:raise treeError('xmlSearchNsByHref() failed') + __tmp = xmlNs(_obj=ret) + return __tmp + + def setBase(self, uri): + """Set (or reset) the base URI of a node, i.e. the value of + the xml:base attribute. """ + libxml2mod.xmlNodeSetBase(self._o, uri) + + def setContent(self, content): + """Replace the content of a node. NOTE: @content is supposed + to be a piece of XML CDATA, so it allows entity references, + but XML special chars need to be escaped first by using + xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars(). """ + libxml2mod.xmlNodeSetContent(self._o, content) + + def setContentLen(self, content, len): + """Replace the content of a node. NOTE: @content is supposed + to be a piece of XML CDATA, so it allows entity references, + but XML special chars need to be escaped first by using + xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars(). """ + libxml2mod.xmlNodeSetContentLen(self._o, content, len) + + def setLang(self, lang): + """Set the language of a node, i.e. the values of the xml:lang + attribute. """ + libxml2mod.xmlNodeSetLang(self._o, lang) + + def setListDoc(self, doc): + """update all nodes in the list to point to the right document """ + if doc is None: doc__o = None + else: doc__o = doc._o + libxml2mod.xmlSetListDoc(self._o, doc__o) + + def setName(self, name): + """Set (or reset) the name of a node. """ + libxml2mod.xmlNodeSetName(self._o, name) + + def setNs(self, ns): + """Associate a namespace to a node, a posteriori. """ + if ns is None: ns__o = None + else: ns__o = ns._o + libxml2mod.xmlSetNs(self._o, ns__o) + + def setNsProp(self, ns, name, value): + """Set (or reset) an attribute carried by a node. The ns + structure must be in scope, this is not checked """ + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlSetNsProp(self._o, ns__o, name, value) + if ret is None:raise treeError('xmlSetNsProp() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def setProp(self, name, value): + """Set (or reset) an attribute carried by a node. If @name has + a prefix, then the corresponding namespace-binding will be + used, if in scope; it is an error it there's no such + ns-binding for the prefix in scope. """ + ret = libxml2mod.xmlSetProp(self._o, name, value) + if ret is None:raise treeError('xmlSetProp() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def setSpacePreserve(self, val): + """Set (or reset) the space preserving behaviour of a node, + i.e. the value of the xml:space attribute. """ + libxml2mod.xmlNodeSetSpacePreserve(self._o, val) + + def setTreeDoc(self, doc): + """update all nodes under the tree to point to the right + document """ + if doc is None: doc__o = None + else: doc__o = doc._o + libxml2mod.xmlSetTreeDoc(self._o, doc__o) + + def textConcat(self, content, len): + """Concat the given string at the end of the existing node + content """ + ret = libxml2mod.xmlTextConcat(self._o, content, len) + return ret + + def textMerge(self, second): + """Merge two text nodes into one """ + if second is None: second__o = None + else: second__o = second._o + ret = libxml2mod.xmlTextMerge(self._o, second__o) + if ret is None:raise treeError('xmlTextMerge() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def unlinkNode(self): + """Unlink a node from it's current context, the node is not + freed If one need to free the node, use xmlFreeNode() + routine after the unlink to discard it. Note that namespace + nodes can't be unlinked as they do not have pointer to + their parent. """ + libxml2mod.xmlUnlinkNode(self._o) + + def unsetNsProp(self, ns, name): + """Remove an attribute carried by a node. """ + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlUnsetNsProp(self._o, ns__o, name) + return ret + + def unsetProp(self, name): + """Remove an attribute carried by a node. This handles only + attributes in no namespace. """ + ret = libxml2mod.xmlUnsetProp(self._o, name) + return ret + + # + # xmlNode functions from module valid + # + + def isID(self, doc, attr): + """Determine whether an attribute is of type ID. In case we + have DTD(s) then this is done if DTD loading has been + requested. In the case of HTML documents parsed with the + HTML parser, then ID detection is done systematically. """ + if doc is None: doc__o = None + else: doc__o = doc._o + if attr is None: attr__o = None + else: attr__o = attr._o + ret = libxml2mod.xmlIsID(doc__o, self._o, attr__o) + return ret + + def isRef(self, doc, attr): + """Determine whether an attribute is of type Ref. In case we + have DTD(s) then this is simple, otherwise we use an + heuristic: name Ref (upper or lowercase). """ + if doc is None: doc__o = None + else: doc__o = doc._o + if attr is None: attr__o = None + else: attr__o = attr._o + ret = libxml2mod.xmlIsRef(doc__o, self._o, attr__o) + return ret + + def validNormalizeAttributeValue(self, doc, name, value): + """Does the validation related extra step of the normalization + of attribute values: If the declared value is not CDATA, + then the XML processor must further process the normalized + attribute value by discarding any leading and trailing + space (#x20) characters, and by replacing sequences of + space (#x20) characters by single space (#x20) character. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlValidNormalizeAttributeValue(doc__o, self._o, name, value) + return ret + + # + # xmlNode functions from module xinclude + # + + def xincludeProcessTree(self): + """Implement the XInclude substitution for the given subtree """ + ret = libxml2mod.xmlXIncludeProcessTree(self._o) + return ret + + def xincludeProcessTreeFlags(self, flags): + """Implement the XInclude substitution for the given subtree """ + ret = libxml2mod.xmlXIncludeProcessTreeFlags(self._o, flags) + return ret + + # + # xmlNode functions from module xmlschemas + # + + def schemaValidateOneElement(self, ctxt): + """Validate a branch of a tree, starting with the given @elem. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlSchemaValidateOneElement(ctxt__o, self._o) + return ret + + # + # xmlNode functions from module xpath + # + + def xpathCastNodeToNumber(self): + """Converts a node to its number value """ + ret = libxml2mod.xmlXPathCastNodeToNumber(self._o) + return ret + + def xpathCastNodeToString(self): + """Converts a node to its string value. """ + ret = libxml2mod.xmlXPathCastNodeToString(self._o) + return ret + + def xpathCmpNodes(self, node2): + """Compare two nodes w.r.t document order """ + if node2 is None: node2__o = None + else: node2__o = node2._o + ret = libxml2mod.xmlXPathCmpNodes(self._o, node2__o) + return ret + + # + # xmlNode functions from module xpathInternals + # + + def xpathNewNodeSet(self): + """Create a new xmlXPathObjectPtr of type NodeSet and + initialize it with the single Node @val """ + ret = libxml2mod.xmlXPathNewNodeSet(self._o) + if ret is None:raise xpathError('xmlXPathNewNodeSet() failed') + return xpathObjectRet(ret) + + def xpathNewValueTree(self): + """Create a new xmlXPathObjectPtr of type Value Tree (XSLT) + and initialize it with the tree root @val """ + ret = libxml2mod.xmlXPathNewValueTree(self._o) + if ret is None:raise xpathError('xmlXPathNewValueTree() failed') + return xpathObjectRet(ret) + + def xpathNextAncestor(self, ctxt): + """Traversal function for the "ancestor" direction the + ancestor axis contains the ancestors of the context node; + the ancestors of the context node consist of the parent of + context node and the parent's parent and so on; the nodes + are ordered in reverse document order; thus the parent is + the first node on the axis, and the parent's parent is the + second node on the axis """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextAncestor(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextAncestor() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextAncestorOrSelf(self, ctxt): + """Traversal function for the "ancestor-or-self" direction he + ancestor-or-self axis contains the context node and + ancestors of the context node in reverse document order; + thus the context node is the first node on the axis, and + the context node's parent the second; parent here is + defined the same as with the parent axis. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextAncestorOrSelf(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextAncestorOrSelf() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextAttribute(self, ctxt): + """Traversal function for the "attribute" direction TODO: + support DTD inherited default attributes """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextAttribute(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextAttribute() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextChild(self, ctxt): + """Traversal function for the "child" direction The child axis + contains the children of the context node in document order. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextChild(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextChild() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextDescendant(self, ctxt): + """Traversal function for the "descendant" direction the + descendant axis contains the descendants of the context + node in document order; a descendant is a child or a child + of a child and so on. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextDescendant(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextDescendant() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextDescendantOrSelf(self, ctxt): + """Traversal function for the "descendant-or-self" direction + the descendant-or-self axis contains the context node and + the descendants of the context node in document order; thus + the context node is the first node on the axis, and the + first child of the context node is the second node on the + axis """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextDescendantOrSelf(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextDescendantOrSelf() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextFollowing(self, ctxt): + """Traversal function for the "following" direction The + following axis contains all nodes in the same document as + the context node that are after the context node in + document order, excluding any descendants and excluding + attribute nodes and namespace nodes; the nodes are ordered + in document order """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextFollowing(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextFollowing() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextFollowingSibling(self, ctxt): + """Traversal function for the "following-sibling" direction + The following-sibling axis contains the following siblings + of the context node in document order. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextFollowingSibling(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextFollowingSibling() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextNamespace(self, ctxt): + """Traversal function for the "namespace" direction the + namespace axis contains the namespace nodes of the context + node; the order of nodes on this axis is + implementation-defined; the axis will be empty unless the + context node is an element We keep the XML namespace node + at the end of the list. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextNamespace(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextNamespace() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextParent(self, ctxt): + """Traversal function for the "parent" direction The parent + axis contains the parent of the context node, if there is + one. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextParent(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextParent() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextPreceding(self, ctxt): + """Traversal function for the "preceding" direction the + preceding axis contains all nodes in the same document as + the context node that are before the context node in + document order, excluding any ancestors and excluding + attribute nodes and namespace nodes; the nodes are ordered + in reverse document order """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextPreceding(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextPreceding() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextPrecedingSibling(self, ctxt): + """Traversal function for the "preceding-sibling" direction + The preceding-sibling axis contains the preceding siblings + of the context node in reverse document order; the first + preceding sibling is first on the axis; the sibling + preceding that node is the second on the axis and so on. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextPrecedingSibling(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextPrecedingSibling() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextSelf(self, ctxt): + """Traversal function for the "self" direction The self axis + contains just the context node itself """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlXPathNextSelf(ctxt__o, self._o) + if ret is None:raise xpathError('xmlXPathNextSelf() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + # + # xmlNode functions from module xpointer + # + + def xpointerNewCollapsedRange(self): + """Create a new xmlXPathObjectPtr of type range using a single + nodes """ + ret = libxml2mod.xmlXPtrNewCollapsedRange(self._o) + if ret is None:raise treeError('xmlXPtrNewCollapsedRange() failed') + return xpathObjectRet(ret) + + def xpointerNewContext(self, doc, origin): + """Create a new XPointer context """ + if doc is None: doc__o = None + else: doc__o = doc._o + if origin is None: origin__o = None + else: origin__o = origin._o + ret = libxml2mod.xmlXPtrNewContext(doc__o, self._o, origin__o) + if ret is None:raise treeError('xmlXPtrNewContext() failed') + __tmp = xpathContext(_obj=ret) + return __tmp + + def xpointerNewLocationSetNodes(self, end): + """Create a new xmlXPathObjectPtr of type LocationSet and + initialize it with the single range made of the two nodes + @start and @end """ + if end is None: end__o = None + else: end__o = end._o + ret = libxml2mod.xmlXPtrNewLocationSetNodes(self._o, end__o) + if ret is None:raise treeError('xmlXPtrNewLocationSetNodes() failed') + return xpathObjectRet(ret) + + def xpointerNewRange(self, startindex, end, endindex): + """Create a new xmlXPathObjectPtr of type range """ + if end is None: end__o = None + else: end__o = end._o + ret = libxml2mod.xmlXPtrNewRange(self._o, startindex, end__o, endindex) + if ret is None:raise treeError('xmlXPtrNewRange() failed') + return xpathObjectRet(ret) + + def xpointerNewRangeNodes(self, end): + """Create a new xmlXPathObjectPtr of type range using 2 nodes """ + if end is None: end__o = None + else: end__o = end._o + ret = libxml2mod.xmlXPtrNewRangeNodes(self._o, end__o) + if ret is None:raise treeError('xmlXPtrNewRangeNodes() failed') + return xpathObjectRet(ret) + +class xmlDoc(xmlNode): + def __init__(self, _obj=None): + if type(_obj).__name__ != 'PyCObject': + raise TypeError, 'xmlDoc needs a PyCObject argument' + self._o = _obj + xmlNode.__init__(self, _obj=_obj) + + def __repr__(self): + return "" % (self.name, long(pos_id (self))) + + # + # xmlDoc functions from module HTMLparser + # + + def htmlAutoCloseTag(self, name, elem): + """The HTML DTD allows a tag to implicitly close other tags. + The list is kept in htmlStartClose array. This function + checks if the element or one of it's children would + autoclose the given tag. """ + ret = libxml2mod.htmlAutoCloseTag(self._o, name, elem) + return ret + + def htmlIsAutoClosed(self, elem): + """The HTML DTD allows a tag to implicitly close other tags. + The list is kept in htmlStartClose array. This function + checks if a tag is autoclosed by one of it's child """ + ret = libxml2mod.htmlIsAutoClosed(self._o, elem) + return ret + + # + # xmlDoc functions from module HTMLtree + # + + def htmlDocContentDumpFormatOutput(self, buf, encoding, format): + """Dump an HTML document. """ + if buf is None: buf__o = None + else: buf__o = buf._o + libxml2mod.htmlDocContentDumpFormatOutput(buf__o, self._o, encoding, format) + + def htmlDocContentDumpOutput(self, buf, encoding): + """Dump an HTML document. Formating return/spaces are added. """ + if buf is None: buf__o = None + else: buf__o = buf._o + libxml2mod.htmlDocContentDumpOutput(buf__o, self._o, encoding) + + def htmlDocDump(self, f): + """Dump an HTML document to an open FILE. """ + ret = libxml2mod.htmlDocDump(f, self._o) + return ret + + def htmlGetMetaEncoding(self): + """Encoding definition lookup in the Meta tags """ + ret = libxml2mod.htmlGetMetaEncoding(self._o) + return ret + + def htmlNodeDumpFile(self, out, cur): + """Dump an HTML node, recursive behaviour,children are printed + too, and formatting returns are added. """ + if cur is None: cur__o = None + else: cur__o = cur._o + libxml2mod.htmlNodeDumpFile(out, self._o, cur__o) + + def htmlNodeDumpFileFormat(self, out, cur, encoding, format): + """Dump an HTML node, recursive behaviour,children are printed + too. TODO: if encoding == None try to save in the doc + encoding """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.htmlNodeDumpFileFormat(out, self._o, cur__o, encoding, format) + return ret + + def htmlNodeDumpFormatOutput(self, buf, cur, encoding, format): + """Dump an HTML node, recursive behaviour,children are printed + too. """ + if buf is None: buf__o = None + else: buf__o = buf._o + if cur is None: cur__o = None + else: cur__o = cur._o + libxml2mod.htmlNodeDumpFormatOutput(buf__o, self._o, cur__o, encoding, format) + + def htmlNodeDumpOutput(self, buf, cur, encoding): + """Dump an HTML node, recursive behaviour,children are printed + too, and formatting returns/spaces are added. """ + if buf is None: buf__o = None + else: buf__o = buf._o + if cur is None: cur__o = None + else: cur__o = cur._o + libxml2mod.htmlNodeDumpOutput(buf__o, self._o, cur__o, encoding) + + def htmlSaveFile(self, filename): + """Dump an HTML document to a file. If @filename is "-" the + stdout file is used. """ + ret = libxml2mod.htmlSaveFile(filename, self._o) + return ret + + def htmlSaveFileEnc(self, filename, encoding): + """Dump an HTML document to a file using a given encoding and + formatting returns/spaces are added. """ + ret = libxml2mod.htmlSaveFileEnc(filename, self._o, encoding) + return ret + + def htmlSaveFileFormat(self, filename, encoding, format): + """Dump an HTML document to a file using a given encoding. """ + ret = libxml2mod.htmlSaveFileFormat(filename, self._o, encoding, format) + return ret + + def htmlSetMetaEncoding(self, encoding): + """Sets the current encoding in the Meta tags NOTE: this will + not change the document content encoding, just the META + flag associated. """ + ret = libxml2mod.htmlSetMetaEncoding(self._o, encoding) + return ret + + # + # xmlDoc functions from module debugXML + # + + def debugCheckDocument(self, output): + """Check the document for potential content problems, and + output the errors to @output """ + ret = libxml2mod.xmlDebugCheckDocument(output, self._o) + return ret + + def debugDumpDocument(self, output): + """Dumps debug information for the document, it's recursive """ + libxml2mod.xmlDebugDumpDocument(output, self._o) + + def debugDumpDocumentHead(self, output): + """Dumps debug information cncerning the document, not + recursive """ + libxml2mod.xmlDebugDumpDocumentHead(output, self._o) + + def debugDumpEntities(self, output): + """Dumps debug information for all the entities in use by the + document """ + libxml2mod.xmlDebugDumpEntities(output, self._o) + + # + # xmlDoc functions from module entities + # + + def addDocEntity(self, name, type, ExternalID, SystemID, content): + """Register a new entity for this document. """ + ret = libxml2mod.xmlAddDocEntity(self._o, name, type, ExternalID, SystemID, content) + if ret is None:raise treeError('xmlAddDocEntity() failed') + __tmp = xmlEntity(_obj=ret) + return __tmp + + def addDtdEntity(self, name, type, ExternalID, SystemID, content): + """Register a new entity for this document DTD external subset. """ + ret = libxml2mod.xmlAddDtdEntity(self._o, name, type, ExternalID, SystemID, content) + if ret is None:raise treeError('xmlAddDtdEntity() failed') + __tmp = xmlEntity(_obj=ret) + return __tmp + + def docEntity(self, name): + """Do an entity lookup in the document entity hash table and """ + ret = libxml2mod.xmlGetDocEntity(self._o, name) + if ret is None:raise treeError('xmlGetDocEntity() failed') + __tmp = xmlEntity(_obj=ret) + return __tmp + + def dtdEntity(self, name): + """Do an entity lookup in the DTD entity hash table and """ + ret = libxml2mod.xmlGetDtdEntity(self._o, name) + if ret is None:raise treeError('xmlGetDtdEntity() failed') + __tmp = xmlEntity(_obj=ret) + return __tmp + + def encodeEntities(self, input): + """TODO: remove xmlEncodeEntities, once we are not afraid of + breaking binary compatibility People must migrate their + code to xmlEncodeEntitiesReentrant ! This routine will + issue a warning when encountered. """ + ret = libxml2mod.xmlEncodeEntities(self._o, input) + return ret + + def encodeEntitiesReentrant(self, input): + """Do a global encoding of a string, replacing the predefined + entities and non ASCII values with their entities and + CharRef counterparts. Contrary to xmlEncodeEntities, this + routine is reentrant, and result must be deallocated. """ + ret = libxml2mod.xmlEncodeEntitiesReentrant(self._o, input) + return ret + + def encodeSpecialChars(self, input): + """Do a global encoding of a string, replacing the predefined + entities this routine is reentrant, and result must be + deallocated. """ + ret = libxml2mod.xmlEncodeSpecialChars(self._o, input) + return ret + + def newEntity(self, name, type, ExternalID, SystemID, content): + """Create a new entity, this differs from xmlAddDocEntity() + that if the document is None or has no internal subset + defined, then an unlinked entity structure will be + returned, it is then the responsability of the caller to + link it to the document later or free it when not needed + anymore. """ + ret = libxml2mod.xmlNewEntity(self._o, name, type, ExternalID, SystemID, content) + if ret is None:raise treeError('xmlNewEntity() failed') + __tmp = xmlEntity(_obj=ret) + return __tmp + + def parameterEntity(self, name): + """Do an entity lookup in the internal and external subsets and """ + ret = libxml2mod.xmlGetParameterEntity(self._o, name) + if ret is None:raise treeError('xmlGetParameterEntity() failed') + __tmp = xmlEntity(_obj=ret) + return __tmp + + # + # xmlDoc functions from module relaxng + # + + def relaxNGNewDocParserCtxt(self): + """Create an XML RelaxNGs parser context for that document. + Note: since the process of compiling a RelaxNG schemas + modifies the document, the @doc parameter is duplicated + internally. """ + ret = libxml2mod.xmlRelaxNGNewDocParserCtxt(self._o) + if ret is None:raise parserError('xmlRelaxNGNewDocParserCtxt() failed') + __tmp = relaxNgParserCtxt(_obj=ret) + return __tmp + + def relaxNGValidateDoc(self, ctxt): + """Validate a document tree in memory. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlRelaxNGValidateDoc(ctxt__o, self._o) + return ret + + def relaxNGValidateFullElement(self, ctxt, elem): + """Validate a full subtree when + xmlRelaxNGValidatePushElement() returned 0 and the content + of the node has been expanded. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlRelaxNGValidateFullElement(ctxt__o, self._o, elem__o) + return ret + + def relaxNGValidatePopElement(self, ctxt, elem): + """Pop the element end from the RelaxNG validation stack. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlRelaxNGValidatePopElement(ctxt__o, self._o, elem__o) + return ret + + def relaxNGValidatePushElement(self, ctxt, elem): + """Push a new element start on the RelaxNG validation stack. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlRelaxNGValidatePushElement(ctxt__o, self._o, elem__o) + return ret + + # + # xmlDoc functions from module tree + # + + def copyDoc(self, recursive): + """Do a copy of the document info. If recursive, the content + tree will be copied too as well as DTD, namespaces and + entities. """ + ret = libxml2mod.xmlCopyDoc(self._o, recursive) + if ret is None:raise treeError('xmlCopyDoc() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def copyNode(self, node, extended): + """Do a copy of the node to a given document. """ + if node is None: node__o = None + else: node__o = node._o + ret = libxml2mod.xmlDocCopyNode(node__o, self._o, extended) + if ret is None:raise treeError('xmlDocCopyNode() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def copyNodeList(self, node): + """Do a recursive copy of the node list. """ + if node is None: node__o = None + else: node__o = node._o + ret = libxml2mod.xmlDocCopyNodeList(self._o, node__o) + if ret is None:raise treeError('xmlDocCopyNodeList() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def createIntSubset(self, name, ExternalID, SystemID): + """Create the internal subset of a document """ + ret = libxml2mod.xmlCreateIntSubset(self._o, name, ExternalID, SystemID) + if ret is None:raise treeError('xmlCreateIntSubset() failed') + __tmp = xmlDtd(_obj=ret) + return __tmp + + def docCompressMode(self): + """get the compression ratio for a document, ZLIB based """ + ret = libxml2mod.xmlGetDocCompressMode(self._o) + return ret + + def dump(self, f): + """Dump an XML document to an open FILE. """ + ret = libxml2mod.xmlDocDump(f, self._o) + return ret + + def elemDump(self, f, cur): + """Dump an XML/HTML node, recursive behaviour, children are + printed too. """ + if cur is None: cur__o = None + else: cur__o = cur._o + libxml2mod.xmlElemDump(f, self._o, cur__o) + + def formatDump(self, f, format): + """Dump an XML document to an open FILE. """ + ret = libxml2mod.xmlDocFormatDump(f, self._o, format) + return ret + + def freeDoc(self): + """Free up all the structures used by a document, tree + included. """ + libxml2mod.xmlFreeDoc(self._o) + + def getRootElement(self): + """Get the root element of the document (doc->children is a + list containing possibly comments, PIs, etc ...). """ + ret = libxml2mod.xmlDocGetRootElement(self._o) + if ret is None:raise treeError('xmlDocGetRootElement() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def intSubset(self): + """Get the internal subset of a document """ + ret = libxml2mod.xmlGetIntSubset(self._o) + if ret is None:raise treeError('xmlGetIntSubset() failed') + __tmp = xmlDtd(_obj=ret) + return __tmp + + def newCDataBlock(self, content, len): + """Creation of a new node containing a CDATA block. """ + ret = libxml2mod.xmlNewCDataBlock(self._o, content, len) + if ret is None:raise treeError('xmlNewCDataBlock() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newCharRef(self, name): + """Creation of a new character reference node. """ + ret = libxml2mod.xmlNewCharRef(self._o, name) + if ret is None:raise treeError('xmlNewCharRef() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocComment(self, content): + """Creation of a new node containing a comment within a + document. """ + ret = libxml2mod.xmlNewDocComment(self._o, content) + if ret is None:raise treeError('xmlNewDocComment() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocFragment(self): + """Creation of a new Fragment node. """ + ret = libxml2mod.xmlNewDocFragment(self._o) + if ret is None:raise treeError('xmlNewDocFragment() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocNode(self, ns, name, content): + """Creation of a new node element within a document. @ns and + @content are optional (None). NOTE: @content is supposed to + be a piece of XML CDATA, so it allow entities references, + but XML special chars need to be escaped first by using + xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you + don't need entities support. """ + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlNewDocNode(self._o, ns__o, name, content) + if ret is None:raise treeError('xmlNewDocNode() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocNodeEatName(self, ns, name, content): + """Creation of a new node element within a document. @ns and + @content are optional (None). NOTE: @content is supposed to + be a piece of XML CDATA, so it allow entities references, + but XML special chars need to be escaped first by using + xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you + don't need entities support. """ + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlNewDocNodeEatName(self._o, ns__o, name, content) + if ret is None:raise treeError('xmlNewDocNodeEatName() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocPI(self, name, content): + """Creation of a processing instruction element. """ + ret = libxml2mod.xmlNewDocPI(self._o, name, content) + if ret is None:raise treeError('xmlNewDocPI() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocProp(self, name, value): + """Create a new property carried by a document. """ + ret = libxml2mod.xmlNewDocProp(self._o, name, value) + if ret is None:raise treeError('xmlNewDocProp() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def newDocRawNode(self, ns, name, content): + """Creation of a new node element within a document. @ns and + @content are optional (None). """ + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlNewDocRawNode(self._o, ns__o, name, content) + if ret is None:raise treeError('xmlNewDocRawNode() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocText(self, content): + """Creation of a new text node within a document. """ + ret = libxml2mod.xmlNewDocText(self._o, content) + if ret is None:raise treeError('xmlNewDocText() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocTextLen(self, content, len): + """Creation of a new text node with an extra content length + parameter. The text node pertain to a given document. """ + ret = libxml2mod.xmlNewDocTextLen(self._o, content, len) + if ret is None:raise treeError('xmlNewDocTextLen() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDtd(self, name, ExternalID, SystemID): + """Creation of a new DTD for the external subset. To create an + internal subset, use xmlCreateIntSubset(). """ + ret = libxml2mod.xmlNewDtd(self._o, name, ExternalID, SystemID) + if ret is None:raise treeError('xmlNewDtd() failed') + __tmp = xmlDtd(_obj=ret) + return __tmp + + def newGlobalNs(self, href, prefix): + """Creation of a Namespace, the old way using PI and without + scoping DEPRECATED !!! """ + ret = libxml2mod.xmlNewGlobalNs(self._o, href, prefix) + if ret is None:raise treeError('xmlNewGlobalNs() failed') + __tmp = xmlNs(_obj=ret) + return __tmp + + def newReference(self, name): + """Creation of a new reference node. """ + ret = libxml2mod.xmlNewReference(self._o, name) + if ret is None:raise treeError('xmlNewReference() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def nodeDumpOutput(self, buf, cur, level, format, encoding): + """Dump an XML node, recursive behaviour, children are printed + too. Note that @format = 1 provide node indenting only if + xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was + called """ + if buf is None: buf__o = None + else: buf__o = buf._o + if cur is None: cur__o = None + else: cur__o = cur._o + libxml2mod.xmlNodeDumpOutput(buf__o, self._o, cur__o, level, format, encoding) + + def nodeGetBase(self, cur): + """Searches for the BASE URL. The code should work on both XML + and HTML document even if base mechanisms are completely + different. It returns the base as defined in RFC 2396 + sections 5.1.1. Base URI within Document Content and 5.1.2. + Base URI from the Encapsulating Entity However it does not + return the document base (5.1.3), use doc->URL in this case """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlNodeGetBase(self._o, cur__o) + return ret + + def nodeListGetRawString(self, list, inLine): + """Builds the string equivalent to the text contained in the + Node list made of TEXTs and ENTITY_REFs, contrary to + xmlNodeListGetString() this function doesn't do any + character encoding handling. """ + if list is None: list__o = None + else: list__o = list._o + ret = libxml2mod.xmlNodeListGetRawString(self._o, list__o, inLine) + return ret + + def nodeListGetString(self, list, inLine): + """Build the string equivalent to the text contained in the + Node list made of TEXTs and ENTITY_REFs """ + if list is None: list__o = None + else: list__o = list._o + ret = libxml2mod.xmlNodeListGetString(self._o, list__o, inLine) + return ret + + def reconciliateNs(self, tree): + """This function checks that all the namespaces declared + within the given tree are properly declared. This is needed + for example after Copy or Cut and then paste operations. + The subtree may still hold pointers to namespace + declarations outside the subtree or invalid/masked. As much + as possible the function try to reuse the existing + namespaces found in the new environment. If not possible + the new namespaces are redeclared on @tree at the top of + the given subtree. """ + if tree is None: tree__o = None + else: tree__o = tree._o + ret = libxml2mod.xmlReconciliateNs(self._o, tree__o) + return ret + + def saveFile(self, filename): + """Dump an XML document to a file. Will use compression if + compiled in and enabled. If @filename is "-" the stdout + file is used. """ + ret = libxml2mod.xmlSaveFile(filename, self._o) + return ret + + def saveFileEnc(self, filename, encoding): + """Dump an XML document, converting it to the given encoding """ + ret = libxml2mod.xmlSaveFileEnc(filename, self._o, encoding) + return ret + + def saveFileTo(self, buf, encoding): + """Dump an XML document to an I/O buffer. Warning ! This call + xmlOutputBufferClose() on buf which is not available after + this call. """ + if buf is None: buf__o = None + else: buf__o = buf._o + ret = libxml2mod.xmlSaveFileTo(buf__o, self._o, encoding) + return ret + + def saveFormatFile(self, filename, format): + """Dump an XML document to a file. Will use compression if + compiled in and enabled. If @filename is "-" the stdout + file is used. If @format is set then the document will be + indented on output. Note that @format = 1 provide node + indenting only if xmlIndentTreeOutput = 1 or + xmlKeepBlanksDefault(0) was called """ + ret = libxml2mod.xmlSaveFormatFile(filename, self._o, format) + return ret + + def saveFormatFileEnc(self, filename, encoding, format): + """Dump an XML document to a file or an URL. """ + ret = libxml2mod.xmlSaveFormatFileEnc(filename, self._o, encoding, format) + return ret + + def saveFormatFileTo(self, buf, encoding, format): + """Dump an XML document to an I/O buffer. Warning ! This call + xmlOutputBufferClose() on buf which is not available after + this call. """ + if buf is None: buf__o = None + else: buf__o = buf._o + ret = libxml2mod.xmlSaveFormatFileTo(buf__o, self._o, encoding, format) + return ret + + def searchNs(self, node, nameSpace): + """Search a Ns registered under a given name space for a + document. recurse on the parents until it finds the defined + namespace or return None otherwise. @nameSpace can be None, + this is a search for the default namespace. We don't allow + to cross entities boundaries. If you don't declare the + namespace within those you will be in troubles !!! A + warning is generated to cover this case. """ + if node is None: node__o = None + else: node__o = node._o + ret = libxml2mod.xmlSearchNs(self._o, node__o, nameSpace) + if ret is None:raise treeError('xmlSearchNs() failed') + __tmp = xmlNs(_obj=ret) + return __tmp + + def searchNsByHref(self, node, href): + """Search a Ns aliasing a given URI. Recurse on the parents + until it finds the defined namespace or return None + otherwise. """ + if node is None: node__o = None + else: node__o = node._o + ret = libxml2mod.xmlSearchNsByHref(self._o, node__o, href) + if ret is None:raise treeError('xmlSearchNsByHref() failed') + __tmp = xmlNs(_obj=ret) + return __tmp + + def setDocCompressMode(self, mode): + """set the compression ratio for a document, ZLIB based + Correct values: 0 (uncompressed) to 9 (max compression) """ + libxml2mod.xmlSetDocCompressMode(self._o, mode) + + def setListDoc(self, list): + """update all nodes in the list to point to the right document """ + if list is None: list__o = None + else: list__o = list._o + libxml2mod.xmlSetListDoc(list__o, self._o) + + def setRootElement(self, root): + """Set the root element of the document (doc->children is a + list containing possibly comments, PIs, etc ...). """ + if root is None: root__o = None + else: root__o = root._o + ret = libxml2mod.xmlDocSetRootElement(self._o, root__o) + if ret is None:return None + __tmp = xmlNode(_obj=ret) + return __tmp + + def setTreeDoc(self, tree): + """update all nodes under the tree to point to the right + document """ + if tree is None: tree__o = None + else: tree__o = tree._o + libxml2mod.xmlSetTreeDoc(tree__o, self._o) + + def stringGetNodeList(self, value): + """Parse the value string and build the node list associated. + Should produce a flat tree with only TEXTs and ENTITY_REFs. """ + ret = libxml2mod.xmlStringGetNodeList(self._o, value) + if ret is None:raise treeError('xmlStringGetNodeList() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def stringLenGetNodeList(self, value, len): + """Parse the value string and build the node list associated. + Should produce a flat tree with only TEXTs and ENTITY_REFs. """ + ret = libxml2mod.xmlStringLenGetNodeList(self._o, value, len) + if ret is None:raise treeError('xmlStringLenGetNodeList() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + # + # xmlDoc functions from module valid + # + + def ID(self, ID): + """Search the attribute declaring the given ID """ + ret = libxml2mod.xmlGetID(self._o, ID) + if ret is None:raise treeError('xmlGetID() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def isID(self, elem, attr): + """Determine whether an attribute is of type ID. In case we + have DTD(s) then this is done if DTD loading has been + requested. In the case of HTML documents parsed with the + HTML parser, then ID detection is done systematically. """ + if elem is None: elem__o = None + else: elem__o = elem._o + if attr is None: attr__o = None + else: attr__o = attr._o + ret = libxml2mod.xmlIsID(self._o, elem__o, attr__o) + return ret + + def isMixedElement(self, name): + """Search in the DtDs whether an element accept Mixed content + (or ANY) basically if it is supposed to accept text childs """ + ret = libxml2mod.xmlIsMixedElement(self._o, name) + return ret + + def isRef(self, elem, attr): + """Determine whether an attribute is of type Ref. In case we + have DTD(s) then this is simple, otherwise we use an + heuristic: name Ref (upper or lowercase). """ + if elem is None: elem__o = None + else: elem__o = elem._o + if attr is None: attr__o = None + else: attr__o = attr._o + ret = libxml2mod.xmlIsRef(self._o, elem__o, attr__o) + return ret + + def removeID(self, attr): + """Remove the given attribute from the ID table maintained + internally. """ + if attr is None: attr__o = None + else: attr__o = attr._o + ret = libxml2mod.xmlRemoveID(self._o, attr__o) + return ret + + def removeRef(self, attr): + """Remove the given attribute from the Ref table maintained + internally. """ + if attr is None: attr__o = None + else: attr__o = attr._o + ret = libxml2mod.xmlRemoveRef(self._o, attr__o) + return ret + + def validCtxtNormalizeAttributeValue(self, ctxt, elem, name, value): + """Does the validation related extra step of the normalization + of attribute values: If the declared value is not CDATA, + then the XML processor must further process the normalized + attribute value by discarding any leading and trailing + space (#x20) characters, and by replacing sequences of + space (#x20) characters by single space (#x20) character. + Also check VC: Standalone Document Declaration in P32, and + update ctxt->valid accordingly """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidCtxtNormalizeAttributeValue(ctxt__o, self._o, elem__o, name, value) + return ret + + def validNormalizeAttributeValue(self, elem, name, value): + """Does the validation related extra step of the normalization + of attribute values: If the declared value is not CDATA, + then the XML processor must further process the normalized + attribute value by discarding any leading and trailing + space (#x20) characters, and by replacing sequences of + space (#x20) characters by single space (#x20) character. """ + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidNormalizeAttributeValue(self._o, elem__o, name, value) + return ret + + def validateDocument(self, ctxt): + """Try to validate the document instance basically it does + the all the checks described by the XML Rec i.e. validates + the internal and external subset (if present) and validate + the document tree. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlValidateDocument(ctxt__o, self._o) + return ret + + def validateDocumentFinal(self, ctxt): + """Does the final step for the document validation once all + the incremental validation steps have been completed + basically it does the following checks described by the XML + Rec Check all the IDREF/IDREFS attributes definition for + validity """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlValidateDocumentFinal(ctxt__o, self._o) + return ret + + def validateDtd(self, ctxt, dtd): + """Try to validate the document against the dtd instance + Basically it does check all the definitions in the DtD. + Note the the internal subset (if present) is de-coupled + (i.e. not used), which could give problems if ID or IDREF + is present. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if dtd is None: dtd__o = None + else: dtd__o = dtd._o + ret = libxml2mod.xmlValidateDtd(ctxt__o, self._o, dtd__o) + return ret + + def validateDtdFinal(self, ctxt): + """Does the final step for the dtds validation once all the + subsets have been parsed basically it does the following + checks described by the XML Rec - check that ENTITY and + ENTITIES type attributes default or possible values matches + one of the defined entities. - check that NOTATION type + attributes default or possible values matches one of the + defined notations. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlValidateDtdFinal(ctxt__o, self._o) + return ret + + def validateElement(self, ctxt, elem): + """Try to validate the subtree under an element """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidateElement(ctxt__o, self._o, elem__o) + return ret + + def validateNotationUse(self, ctxt, notationName): + """Validate that the given name match a notation declaration. + - [ VC: Notation Declared ] """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlValidateNotationUse(ctxt__o, self._o, notationName) + return ret + + def validateOneAttribute(self, ctxt, elem, attr, value): + """Try to validate a single attribute for an element basically + it does the following checks as described by the XML-1.0 + recommendation: - [ VC: Attribute Value Type ] - [ VC: + Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC: + Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity + Name ] - [ VC: Notation Attributes ] The ID/IDREF + uniqueness and matching are done separately """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if elem is None: elem__o = None + else: elem__o = elem._o + if attr is None: attr__o = None + else: attr__o = attr._o + ret = libxml2mod.xmlValidateOneAttribute(ctxt__o, self._o, elem__o, attr__o, value) + return ret + + def validateOneElement(self, ctxt, elem): + """Try to validate a single element and it's attributes, + basically it does the following checks as described by the + XML-1.0 recommendation: - [ VC: Element Valid ] - [ VC: + Required Attribute ] Then call xmlValidateOneAttribute() + for each attribute present. The ID/IDREF checkings are + done separately """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidateOneElement(ctxt__o, self._o, elem__o) + return ret + + def validateOneNamespace(self, ctxt, elem, prefix, ns, value): + """Try to validate a single namespace declaration for an + element basically it does the following checks as described + by the XML-1.0 recommendation: - [ VC: Attribute Value Type + ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] - + [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: + Entity Name ] - [ VC: Notation Attributes ] The ID/IDREF + uniqueness and matching are done separately """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if elem is None: elem__o = None + else: elem__o = elem._o + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlValidateOneNamespace(ctxt__o, self._o, elem__o, prefix, ns__o, value) + return ret + + def validatePopElement(self, ctxt, elem, qname): + """Pop the element end from the validation stack. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidatePopElement(ctxt__o, self._o, elem__o, qname) + return ret + + def validatePushElement(self, ctxt, elem, qname): + """Push a new element start on the validation stack. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidatePushElement(ctxt__o, self._o, elem__o, qname) + return ret + + def validateRoot(self, ctxt): + """Try to validate a the root element basically it does the + following check as described by the XML-1.0 recommendation: + - [ VC: Root Element Type ] it doesn't try to recurse or + apply other check to the element """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlValidateRoot(ctxt__o, self._o) + return ret + + # + # xmlDoc functions from module xinclude + # + + def xincludeProcess(self): + """Implement the XInclude substitution on the XML document @doc """ + ret = libxml2mod.xmlXIncludeProcess(self._o) + return ret + + def xincludeProcessFlags(self, flags): + """Implement the XInclude substitution on the XML document @doc """ + ret = libxml2mod.xmlXIncludeProcessFlags(self._o, flags) + return ret + + # + # xmlDoc functions from module xmlreader + # + + def NewWalker(self, reader): + """Setup an xmltextReader to parse a preparsed XML document. + This reuses the existing @reader xmlTextReader. """ + if reader is None: reader__o = None + else: reader__o = reader._o + ret = libxml2mod.xmlReaderNewWalker(reader__o, self._o) + return ret + + def readerWalker(self): + """Create an xmltextReader for a preparsed document. """ + ret = libxml2mod.xmlReaderWalker(self._o) + if ret is None:raise treeError('xmlReaderWalker() failed') + __tmp = xmlTextReader(_obj=ret) + return __tmp + + # + # xmlDoc functions from module xmlschemas + # + + def schemaNewDocParserCtxt(self): + """Create an XML Schemas parse context for that document. NB. + The document may be modified during the parsing process. """ + ret = libxml2mod.xmlSchemaNewDocParserCtxt(self._o) + if ret is None:raise parserError('xmlSchemaNewDocParserCtxt() failed') + __tmp = SchemaParserCtxt(_obj=ret) + return __tmp + + def schemaValidateDoc(self, ctxt): + """Validate a document tree in memory. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlSchemaValidateDoc(ctxt__o, self._o) + return ret + + # + # xmlDoc functions from module xpath + # + + def xpathNewContext(self): + """Create a new xmlXPathContext """ + ret = libxml2mod.xmlXPathNewContext(self._o) + if ret is None:raise xpathError('xmlXPathNewContext() failed') + __tmp = xpathContext(_obj=ret) + return __tmp + + def xpathOrderDocElems(self): + """Call this routine to speed up XPath computation on static + documents. This stamps all the element nodes with the + document order Like for line information, the order is kept + in the element->content field, the value stored is actually + - the node number (starting at -1) to be able to + differentiate from line numbers. """ + ret = libxml2mod.xmlXPathOrderDocElems(self._o) + return ret + + # + # xmlDoc functions from module xpointer + # + + def xpointerNewContext(self, here, origin): + """Create a new XPointer context """ + if here is None: here__o = None + else: here__o = here._o + if origin is None: origin__o = None + else: origin__o = origin._o + ret = libxml2mod.xmlXPtrNewContext(self._o, here__o, origin__o) + if ret is None:raise treeError('xmlXPtrNewContext() failed') + __tmp = xpathContext(_obj=ret) + return __tmp + +class parserCtxt(parserCtxtCore): + def __init__(self, _obj=None): + self._o = _obj + parserCtxtCore.__init__(self, _obj=_obj) + + def __del__(self): + if self._o != None: + libxml2mod.xmlFreeParserCtxt(self._o) + self._o = None + + # accessors for parserCtxt + def doc(self): + """Get the document tree from a parser context. """ + ret = libxml2mod.xmlParserGetDoc(self._o) + if ret is None:raise parserError('xmlParserGetDoc() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def isValid(self): + """Get the validity information from a parser context. """ + ret = libxml2mod.xmlParserGetIsValid(self._o) + return ret + + def lineNumbers(self, linenumbers): + """Switch on the generation of line number for elements nodes. """ + libxml2mod.xmlParserSetLineNumbers(self._o, linenumbers) + + def loadSubset(self, loadsubset): + """Switch the parser to load the DTD without validating. """ + libxml2mod.xmlParserSetLoadSubset(self._o, loadsubset) + + def pedantic(self, pedantic): + """Switch the parser to be pedantic. """ + libxml2mod.xmlParserSetPedantic(self._o, pedantic) + + def replaceEntities(self, replaceEntities): + """Switch the parser to replace entities. """ + libxml2mod.xmlParserSetReplaceEntities(self._o, replaceEntities) + + def validate(self, validate): + """Switch the parser to validation mode. """ + libxml2mod.xmlParserSetValidate(self._o, validate) + + def wellFormed(self): + """Get the well formed information from a parser context. """ + ret = libxml2mod.xmlParserGetWellFormed(self._o) + return ret + + # + # parserCtxt functions from module HTMLparser + # + + def htmlCtxtReadDoc(self, cur, URL, encoding, options): + """parse an XML in-memory document and build a tree. This + reuses the existing @ctxt parser context """ + ret = libxml2mod.htmlCtxtReadDoc(self._o, cur, URL, encoding, options) + if ret is None:raise treeError('htmlCtxtReadDoc() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def htmlCtxtReadFd(self, fd, URL, encoding, options): + """parse an XML from a file descriptor and build a tree. This + reuses the existing @ctxt parser context """ + ret = libxml2mod.htmlCtxtReadFd(self._o, fd, URL, encoding, options) + if ret is None:raise treeError('htmlCtxtReadFd() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def htmlCtxtReadFile(self, filename, encoding, options): + """parse an XML file from the filesystem or the network. This + reuses the existing @ctxt parser context """ + ret = libxml2mod.htmlCtxtReadFile(self._o, filename, encoding, options) + if ret is None:raise treeError('htmlCtxtReadFile() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def htmlCtxtReadMemory(self, buffer, size, URL, encoding, options): + """parse an XML in-memory document and build a tree. This + reuses the existing @ctxt parser context """ + ret = libxml2mod.htmlCtxtReadMemory(self._o, buffer, size, URL, encoding, options) + if ret is None:raise treeError('htmlCtxtReadMemory() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def htmlCtxtReset(self): + """Reset a parser context """ + libxml2mod.htmlCtxtReset(self._o) + + def htmlCtxtUseOptions(self, options): + """Applies the options to the parser context """ + ret = libxml2mod.htmlCtxtUseOptions(self._o, options) + return ret + + def htmlFreeParserCtxt(self): + """Free all the memory used by a parser context. However the + parsed document in ctxt->myDoc is not freed. """ + libxml2mod.htmlFreeParserCtxt(self._o) + + def htmlParseCharRef(self): + """parse Reference declarations [66] CharRef ::= '&#' [0-9]+ + ';' | '&#x' [0-9a-fA-F]+ ';' """ + ret = libxml2mod.htmlParseCharRef(self._o) + return ret + + def htmlParseChunk(self, chunk, size, terminate): + """Parse a Chunk of memory """ + ret = libxml2mod.htmlParseChunk(self._o, chunk, size, terminate) + return ret + + def htmlParseDocument(self): + """parse an HTML document (and build a tree if using the + standard SAX interface). """ + ret = libxml2mod.htmlParseDocument(self._o) + return ret + + def htmlParseElement(self): + """parse an HTML element, this is highly recursive this is + kept for compatibility with previous code versions [39] + element ::= EmptyElemTag | STag content ETag [41] + Attribute ::= Name Eq AttValue """ + libxml2mod.htmlParseElement(self._o) + + # + # parserCtxt functions from module parser + # + + def byteConsumed(self): + """This function provides the current index of the parser + relative to the start of the current entity. This function + is computed in bytes from the beginning starting at zero + and finishing at the size in byte of the file if parsing a + file. The function is of constant cost if the input is + UTF-8 but can be costly if run on non-UTF-8 input. """ + ret = libxml2mod.xmlByteConsumed(self._o) + return ret + + def clearParserCtxt(self): + """Clear (release owned resources) and reinitialize a parser + context """ + libxml2mod.xmlClearParserCtxt(self._o) + + def ctxtReadDoc(self, cur, URL, encoding, options): + """parse an XML in-memory document and build a tree. This + reuses the existing @ctxt parser context """ + ret = libxml2mod.xmlCtxtReadDoc(self._o, cur, URL, encoding, options) + if ret is None:raise treeError('xmlCtxtReadDoc() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def ctxtReadFd(self, fd, URL, encoding, options): + """parse an XML from a file descriptor and build a tree. This + reuses the existing @ctxt parser context NOTE that the file + descriptor will not be closed when the reader is closed or + reset. """ + ret = libxml2mod.xmlCtxtReadFd(self._o, fd, URL, encoding, options) + if ret is None:raise treeError('xmlCtxtReadFd() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def ctxtReadFile(self, filename, encoding, options): + """parse an XML file from the filesystem or the network. This + reuses the existing @ctxt parser context """ + ret = libxml2mod.xmlCtxtReadFile(self._o, filename, encoding, options) + if ret is None:raise treeError('xmlCtxtReadFile() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def ctxtReadMemory(self, buffer, size, URL, encoding, options): + """parse an XML in-memory document and build a tree. This + reuses the existing @ctxt parser context """ + ret = libxml2mod.xmlCtxtReadMemory(self._o, buffer, size, URL, encoding, options) + if ret is None:raise treeError('xmlCtxtReadMemory() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def ctxtReset(self): + """Reset a parser context """ + libxml2mod.xmlCtxtReset(self._o) + + def ctxtResetPush(self, chunk, size, filename, encoding): + """Reset a push parser context """ + ret = libxml2mod.xmlCtxtResetPush(self._o, chunk, size, filename, encoding) + return ret + + def ctxtUseOptions(self, options): + """Applies the options to the parser context """ + ret = libxml2mod.xmlCtxtUseOptions(self._o, options) + return ret + + def initParserCtxt(self): + """Initialize a parser context """ + ret = libxml2mod.xmlInitParserCtxt(self._o) + return ret + + def parseChunk(self, chunk, size, terminate): + """Parse a Chunk of memory """ + ret = libxml2mod.xmlParseChunk(self._o, chunk, size, terminate) + return ret + + def parseDocument(self): + """parse an XML document (and build a tree if using the + standard SAX interface). [1] document ::= prolog element + Misc* [22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)? """ + ret = libxml2mod.xmlParseDocument(self._o) + return ret + + def parseExtParsedEnt(self): + """parse a general parsed entity An external general parsed + entity is well-formed if it matches the production labeled + extParsedEnt. [78] extParsedEnt ::= TextDecl? content """ + ret = libxml2mod.xmlParseExtParsedEnt(self._o) + return ret + + def setupParserForBuffer(self, buffer, filename): + """Setup the parser context to parse a new buffer; Clears any + prior contents from the parser context. The buffer + parameter must not be None, but the filename parameter can + be """ + libxml2mod.xmlSetupParserForBuffer(self._o, buffer, filename) + + def stopParser(self): + """Blocks further parser processing """ + libxml2mod.xmlStopParser(self._o) + + # + # parserCtxt functions from module parserInternals + # + + def decodeEntities(self, len, what, end, end2, end3): + """This function is deprecated, we now always process entities + content through xmlStringDecodeEntities TODO: remove it in + next major release. [67] Reference ::= EntityRef | CharRef + [69] PEReference ::= '%' Name ';' """ + ret = libxml2mod.xmlDecodeEntities(self._o, len, what, end, end2, end3) + return ret + + def handleEntity(self, entity): + """Default handling of defined entities, when should we define + a new input stream ? When do we just handle that as a set + of chars ? OBSOLETE: to be removed at some point. """ + if entity is None: entity__o = None + else: entity__o = entity._o + libxml2mod.xmlHandleEntity(self._o, entity__o) + + def namespaceParseNCName(self): + """parse an XML namespace name. TODO: this seems not in use + anymore, the namespace handling is done on top of the SAX + interfaces, i.e. not on raw input. [NS 3] NCName ::= + (Letter | '_') (NCNameChar)* [NS 4] NCNameChar ::= Letter + | Digit | '.' | '-' | '_' | CombiningChar | Extender """ + ret = libxml2mod.xmlNamespaceParseNCName(self._o) + return ret + + def namespaceParseNSDef(self): + """parse a namespace prefix declaration TODO: this seems not + in use anymore, the namespace handling is done on top of + the SAX interfaces, i.e. not on raw input. [NS 1] NSDef + ::= PrefixDef Eq SystemLiteral [NS 2] PrefixDef ::= + 'xmlns' (':' NCName)? """ + ret = libxml2mod.xmlNamespaceParseNSDef(self._o) + return ret + + def nextChar(self): + """Skip to the next char input char. """ + libxml2mod.xmlNextChar(self._o) + + def parseAttValue(self): + """parse a value for an attribute Note: the parser won't do + substitution of entities here, this will be handled later + in xmlStringGetNodeList [10] AttValue ::= '"' ([^<&"] | + Reference)* '"' | "'" ([^<&'] | Reference)* "'" 3.3.3 + Attribute-Value Normalization: Before the value of an + attribute is passed to the application or checked for + validity, the XML processor must normalize it as follows: - + a character reference is processed by appending the + referenced character to the attribute value - an entity + reference is processed by recursively processing the + replacement text of the entity - a whitespace character + (#x20, #xD, #xA, #x9) is processed by appending #x20 to the + normalized value, except that only a single #x20 is + appended for a "#xD#xA" sequence that is part of an + external parsed entity or the literal entity value of an + internal parsed entity - other characters are processed by + appending them to the normalized value If the declared + value is not CDATA, then the XML processor must further + process the normalized attribute value by discarding any + leading and trailing space (#x20) characters, and by + replacing sequences of space (#x20) characters by a single + space (#x20) character. All attributes for which no + declaration has been read should be treated by a + non-validating parser as if declared CDATA. """ + ret = libxml2mod.xmlParseAttValue(self._o) + return ret + + def parseAttributeListDecl(self): + """: parse the Attribute list def for an element [52] + AttlistDecl ::= '' [53] + AttDef ::= S Name S AttType S DefaultDecl """ + libxml2mod.xmlParseAttributeListDecl(self._o) + + def parseCDSect(self): + """Parse escaped pure raw content. [18] CDSect ::= CDStart + CData CDEnd [19] CDStart ::= '' Char*)) [21] CDEnd ::= ']]>' """ + libxml2mod.xmlParseCDSect(self._o) + + def parseCharData(self, cdata): + """parse a CharData section. if we are within a CDATA section + ']]>' marks an end of section. The right angle bracket (>) + may be represented using the string ">", and must, for + compatibility, be escaped using ">" or a character + reference when it appears in the string "]]>" in content, + when that string is not marking the end of a CDATA section. + [14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*) """ + libxml2mod.xmlParseCharData(self._o, cdata) + + def parseCharRef(self): + """parse Reference declarations [66] CharRef ::= '&#' [0-9]+ + ';' | '&#x' [0-9a-fA-F]+ ';' [ WFC: Legal Character ] + Characters referred to using character references must + match the production for Char. """ + ret = libxml2mod.xmlParseCharRef(self._o) + return ret + + def parseComment(self): + """Skip an XML (SGML) comment The spec says that + "For compatibility, the string "--" (double-hyphen) must + not occur within comments. " [15] Comment ::= '' """ + libxml2mod.xmlParseComment(self._o) + + def parseContent(self): + """Parse a content: [43] content ::= (element | CharData | + Reference | CDSect | PI | Comment)* """ + libxml2mod.xmlParseContent(self._o) + + def parseDocTypeDecl(self): + """parse a DOCTYPE declaration [28] doctypedecl ::= + '' [ VC: Root Element Type ] + The Name in the document type declaration must match the + element type of the root element. """ + libxml2mod.xmlParseDocTypeDecl(self._o) + + def parseElement(self): + """parse an XML element, this is highly recursive [39] + element ::= EmptyElemTag | STag content ETag [ WFC: + Element Type Match ] The Name in an element's end-tag must + match the element type in the start-tag. """ + libxml2mod.xmlParseElement(self._o) + + def parseElementDecl(self): + """parse an Element declaration. [45] elementdecl ::= + '' [ VC: Unique + Element Type Declaration ] No element type may be declared + more than once """ + ret = libxml2mod.xmlParseElementDecl(self._o) + return ret + + def parseEncName(self): + """parse the XML encoding name [81] EncName ::= [A-Za-z] + ([A-Za-z0-9._] | '-')* """ + ret = libxml2mod.xmlParseEncName(self._o) + return ret + + def parseEncodingDecl(self): + """parse the XML encoding declaration [80] EncodingDecl ::= S + 'encoding' Eq ('"' EncName '"' | "'" EncName "'") this + setups the conversion filters. """ + ret = libxml2mod.xmlParseEncodingDecl(self._o) + return ret + + def parseEndTag(self): + """parse an end of tag [42] ETag ::= '' With + namespace [NS 9] ETag ::= '' """ + libxml2mod.xmlParseEndTag(self._o) + + def parseEntityDecl(self): + """parse ' [72] PEDecl ::= '' + [73] EntityDef ::= EntityValue | (ExternalID NDataDecl?) + [74] PEDef ::= EntityValue | ExternalID [76] NDataDecl ::= + S 'NDATA' S Name [ VC: Notation Declared ] The Name must + match the declared name of a notation. """ + libxml2mod.xmlParseEntityDecl(self._o) + + def parseEntityRef(self): + """parse ENTITY references declarations [68] EntityRef ::= + '&' Name ';' [ WFC: Entity Declared ] In a document + without any DTD, a document with only an internal DTD + subset which contains no parameter entity references, or a + document with "standalone='yes'", the Name given in the + entity reference must match that in an entity declaration, + except that well-formed documents need not declare any of + the following entities: amp, lt, gt, apos, quot. The + declaration of a parameter entity must precede any + reference to it. Similarly, the declaration of a general + entity must precede any reference to it which appears in a + default value in an attribute-list declaration. Note that + if entities are declared in the external subset or in + external parameter entities, a non-validating processor is + not obligated to read and process their declarations; for + such documents, the rule that an entity must be declared is + a well-formedness constraint only if standalone='yes'. [ + WFC: Parsed Entity ] An entity reference must not contain + the name of an unparsed entity """ + ret = libxml2mod.xmlParseEntityRef(self._o) + if ret is None:raise parserError('xmlParseEntityRef() failed') + __tmp = xmlEntity(_obj=ret) + return __tmp + + def parseExternalSubset(self, ExternalID, SystemID): + """parse Markup declarations from an external subset [30] + extSubset ::= textDecl? extSubsetDecl [31] extSubsetDecl + ::= (markupdecl | conditionalSect | PEReference | S) * """ + libxml2mod.xmlParseExternalSubset(self._o, ExternalID, SystemID) + + def parseMarkupDecl(self): + """parse Markup declarations [29] markupdecl ::= elementdecl + | AttlistDecl | EntityDecl | NotationDecl | PI | Comment [ + VC: Proper Declaration/PE Nesting ] Parameter-entity + replacement text must be properly nested with markup + declarations. That is to say, if either the first character + or the last character of a markup declaration (markupdecl + above) is contained in the replacement text for a + parameter-entity reference, both must be contained in the + same replacement text. [ WFC: PEs in Internal Subset ] In + the internal DTD subset, parameter-entity references can + occur only where markup declarations can occur, not within + markup declarations. (This does not apply to references + that occur in external parameter entities or to the + external subset.) """ + libxml2mod.xmlParseMarkupDecl(self._o) + + def parseMisc(self): + """parse an XML Misc* optional field. [27] Misc ::= Comment | + PI | S """ + libxml2mod.xmlParseMisc(self._o) + + def parseName(self): + """parse an XML name. [4] NameChar ::= Letter | Digit | '.' | + '-' | '_' | ':' | CombiningChar | Extender [5] Name ::= + (Letter | '_' | ':') (NameChar)* [6] Names ::= Name (#x20 + Name)* """ + ret = libxml2mod.xmlParseName(self._o) + return ret + + def parseNamespace(self): + """xmlParseNamespace: parse specific PI '' + Hence there is actually 3 choices: 'PUBLIC' S PubidLiteral + 'PUBLIC' S PubidLiteral S SystemLiteral and 'SYSTEM' S + SystemLiteral See the NOTE on xmlParseExternalID(). """ + libxml2mod.xmlParseNotationDecl(self._o) + + def parsePEReference(self): + """parse PEReference declarations The entity content is + handled directly by pushing it's content as a new input + stream. [69] PEReference ::= '%' Name ';' [ WFC: No + Recursion ] A parsed entity must not contain a recursive + reference to itself, either directly or indirectly. [ WFC: + Entity Declared ] In a document without any DTD, a document + with only an internal DTD subset which contains no + parameter entity references, or a document with + "standalone='yes'", ... ... The declaration of a parameter + entity must precede any reference to it... [ VC: Entity + Declared ] In a document with an external subset or + external parameter entities with "standalone='no'", ... + ... The declaration of a parameter entity must precede any + reference to it... [ WFC: In DTD ] Parameter-entity + references may only appear in the DTD. NOTE: misleading but + this is handled. """ + libxml2mod.xmlParsePEReference(self._o) + + def parsePI(self): + """parse an XML Processing Instruction. [16] PI ::= '' Char*)))? '?>' The + processing is transfered to SAX once parsed. """ + libxml2mod.xmlParsePI(self._o) + + def parsePITarget(self): + """parse the name of a PI [17] PITarget ::= Name - (('X' | + 'x') ('M' | 'm') ('L' | 'l')) """ + ret = libxml2mod.xmlParsePITarget(self._o) + return ret + + def parsePubidLiteral(self): + """parse an XML public literal [12] PubidLiteral ::= '"' + PubidChar* '"' | "'" (PubidChar - "'")* "'" """ + ret = libxml2mod.xmlParsePubidLiteral(self._o) + return ret + + def parseQuotedString(self): + """Parse and return a string between quotes or doublequotes + TODO: Deprecated, to be removed at next drop of binary + compatibility """ + ret = libxml2mod.xmlParseQuotedString(self._o) + return ret + + def parseReference(self): + """parse and handle entity references in content, depending on + the SAX interface, this may end-up in a call to character() + if this is a CharRef, a predefined entity, if there is no + reference() callback. or if the parser was asked to switch + to that mode. [67] Reference ::= EntityRef | CharRef """ + libxml2mod.xmlParseReference(self._o) + + def parseSDDecl(self): + """parse the XML standalone declaration [32] SDDecl ::= S + 'standalone' Eq (("'" ('yes' | 'no') "'") | ('"' ('yes' | + 'no')'"')) [ VC: Standalone Document Declaration ] TODO + The standalone document declaration must have the value + "no" if any external markup declarations contain + declarations of: - attributes with default values, if + elements to which these attributes apply appear in the + document without specifications of values for these + attributes, or - entities (other than amp, lt, gt, apos, + quot), if references to those entities appear in the + document, or - attributes with values subject to + normalization, where the attribute appears in the document + with a value which will change as a result of + normalization, or - element types with element content, if + white space occurs directly within any instance of those + types. """ + ret = libxml2mod.xmlParseSDDecl(self._o) + return ret + + def parseStartTag(self): + """parse a start of tag either for rule element or + EmptyElement. In both case we don't parse the tag closing + chars. [40] STag ::= '<' Name (S Attribute)* S? '>' [ + WFC: Unique Att Spec ] No attribute name may appear more + than once in the same start-tag or empty-element tag. [44] + EmptyElemTag ::= '<' Name (S Attribute)* S? '/>' [ WFC: + Unique Att Spec ] No attribute name may appear more than + once in the same start-tag or empty-element tag. With + namespace: [NS 8] STag ::= '<' QName (S Attribute)* S? '>' + [NS 10] EmptyElement ::= '<' QName (S Attribute)* S? '/>' """ + ret = libxml2mod.xmlParseStartTag(self._o) + return ret + + def parseSystemLiteral(self): + """parse an XML Literal [11] SystemLiteral ::= ('"' [^"]* + '"') | ("'" [^']* "'") """ + ret = libxml2mod.xmlParseSystemLiteral(self._o) + return ret + + def parseTextDecl(self): + """parse an XML declaration header for external entities [77] + TextDecl ::= '' """ + libxml2mod.xmlParseTextDecl(self._o) + + def parseVersionInfo(self): + """parse the XML version. [24] VersionInfo ::= S 'version' Eq + (' VersionNum ' | " VersionNum ") [25] Eq ::= S? '=' S? """ + ret = libxml2mod.xmlParseVersionInfo(self._o) + return ret + + def parseVersionNum(self): + """parse the XML version value. [26] VersionNum ::= '1.' + [0-9]+ In practice allow [0-9].[0-9]+ at that level """ + ret = libxml2mod.xmlParseVersionNum(self._o) + return ret + + def parseXMLDecl(self): + """parse an XML declaration header [23] XMLDecl ::= '' """ + libxml2mod.xmlParseXMLDecl(self._o) + + def parserHandlePEReference(self): + """[69] PEReference ::= '%' Name ';' [ WFC: No Recursion ] A + parsed entity must not contain a recursive reference to + itself, either directly or indirectly. [ WFC: Entity + Declared ] In a document without any DTD, a document with + only an internal DTD subset which contains no parameter + entity references, or a document with "standalone='yes'", + ... ... The declaration of a parameter entity must precede + any reference to it... [ VC: Entity Declared ] In a + document with an external subset or external parameter + entities with "standalone='no'", ... ... The declaration + of a parameter entity must precede any reference to it... + [ WFC: In DTD ] Parameter-entity references may only appear + in the DTD. NOTE: misleading but this is handled. A + PEReference may have been detected in the current input + stream the handling is done accordingly to + http://www.w3.org/TR/REC-xml#entproc i.e. - Included in + literal in entity values - Included as Parameter Entity + reference within DTDs """ + libxml2mod.xmlParserHandlePEReference(self._o) + + def parserHandleReference(self): + """TODO: Remove, now deprecated ... the test is done directly + in the content parsing routines. [67] Reference ::= + EntityRef | CharRef [68] EntityRef ::= '&' Name ';' [ + WFC: Entity Declared ] the Name given in the entity + reference must match that in an entity declaration, except + that well-formed documents need not declare any of the + following entities: amp, lt, gt, apos, quot. [ WFC: Parsed + Entity ] An entity reference must not contain the name of + an unparsed entity [66] CharRef ::= '&#' [0-9]+ ';' | + '&#x' [0-9a-fA-F]+ ';' A PEReference may have been + detected in the current input stream the handling is done + accordingly to http://www.w3.org/TR/REC-xml#entproc """ + libxml2mod.xmlParserHandleReference(self._o) + + def popInput(self): + """xmlPopInput: the current input pointed by ctxt->input came + to an end pop it and return the next char. """ + ret = libxml2mod.xmlPopInput(self._o) + return ret + + def scanName(self): + """Trickery: parse an XML name but without consuming the input + flow Needed for rollback cases. Used only when parsing + entities references. TODO: seems deprecated now, only used + in the default part of xmlParserHandleReference [4] + NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | + CombiningChar | Extender [5] Name ::= (Letter | '_' | ':') + (NameChar)* [6] Names ::= Name (S Name)* """ + ret = libxml2mod.xmlScanName(self._o) + return ret + + def skipBlankChars(self): + """skip all blanks character found at that point in the input + streams. It pops up finished entities in the process if + allowable at that point. """ + ret = libxml2mod.xmlSkipBlankChars(self._o) + return ret + + def stringDecodeEntities(self, str, what, end, end2, end3): + """Takes a entity string content and process to do the + adequate substitutions. [67] Reference ::= EntityRef | + CharRef [69] PEReference ::= '%' Name ';' """ + ret = libxml2mod.xmlStringDecodeEntities(self._o, str, what, end, end2, end3) + return ret + + def stringLenDecodeEntities(self, str, len, what, end, end2, end3): + """Takes a entity string content and process to do the + adequate substitutions. [67] Reference ::= EntityRef | + CharRef [69] PEReference ::= '%' Name ';' """ + ret = libxml2mod.xmlStringLenDecodeEntities(self._o, str, len, what, end, end2, end3) + return ret + +class xmlAttr(xmlNode): + def __init__(self, _obj=None): + if type(_obj).__name__ != 'PyCObject': + raise TypeError, 'xmlAttr needs a PyCObject argument' + self._o = _obj + xmlNode.__init__(self, _obj=_obj) + + def __repr__(self): + return "" % (self.name, long(pos_id (self))) + + # + # xmlAttr functions from module debugXML + # + + def debugDumpAttr(self, output, depth): + """Dumps debug information for the attribute """ + libxml2mod.xmlDebugDumpAttr(output, self._o, depth) + + def debugDumpAttrList(self, output, depth): + """Dumps debug information for the attribute list """ + libxml2mod.xmlDebugDumpAttrList(output, self._o, depth) + + # + # xmlAttr functions from module tree + # + + def copyProp(self, target): + """Do a copy of the attribute. """ + if target is None: target__o = None + else: target__o = target._o + ret = libxml2mod.xmlCopyProp(target__o, self._o) + if ret is None:raise treeError('xmlCopyProp() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def copyPropList(self, target): + """Do a copy of an attribute list. """ + if target is None: target__o = None + else: target__o = target._o + ret = libxml2mod.xmlCopyPropList(target__o, self._o) + if ret is None:raise treeError('xmlCopyPropList() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def freeProp(self): + """Free one attribute, all the content is freed too """ + libxml2mod.xmlFreeProp(self._o) + + def freePropList(self): + """Free a property and all its siblings, all the children are + freed too. """ + libxml2mod.xmlFreePropList(self._o) + + def removeProp(self): + """Unlink and free one attribute, all the content is freed too + Note this doesn't work for namespace definition attributes """ + ret = libxml2mod.xmlRemoveProp(self._o) + return ret + + # + # xmlAttr functions from module valid + # + + def removeID(self, doc): + """Remove the given attribute from the ID table maintained + internally. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlRemoveID(doc__o, self._o) + return ret + + def removeRef(self, doc): + """Remove the given attribute from the Ref table maintained + internally. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlRemoveRef(doc__o, self._o) + return ret + +class xmlAttribute(xmlNode): + def __init__(self, _obj=None): + if type(_obj).__name__ != 'PyCObject': + raise TypeError, 'xmlAttribute needs a PyCObject argument' + self._o = _obj + xmlNode.__init__(self, _obj=_obj) + + def __repr__(self): + return "" % (self.name, long(pos_id (self))) + +class catalog: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + def __del__(self): + if self._o != None: + libxml2mod.xmlFreeCatalog(self._o) + self._o = None + + # + # catalog functions from module catalog + # + + def add(self, type, orig, replace): + """Add an entry in the catalog, it may overwrite existing but + different entries. """ + ret = libxml2mod.xmlACatalogAdd(self._o, type, orig, replace) + return ret + + def catalogIsEmpty(self): + """Check is a catalog is empty """ + ret = libxml2mod.xmlCatalogIsEmpty(self._o) + return ret + + def convertSGMLCatalog(self): + """Convert all the SGML catalog entries as XML ones """ + ret = libxml2mod.xmlConvertSGMLCatalog(self._o) + return ret + + def dump(self, out): + """Dump the given catalog to the given file. """ + libxml2mod.xmlACatalogDump(self._o, out) + + def remove(self, value): + """Remove an entry from the catalog """ + ret = libxml2mod.xmlACatalogRemove(self._o, value) + return ret + + def resolve(self, pubID, sysID): + """Do a complete resolution lookup of an External Identifier """ + ret = libxml2mod.xmlACatalogResolve(self._o, pubID, sysID) + return ret + + def resolvePublic(self, pubID): + """Try to lookup the catalog local reference associated to a + public ID in that catalog """ + ret = libxml2mod.xmlACatalogResolvePublic(self._o, pubID) + return ret + + def resolveSystem(self, sysID): + """Try to lookup the catalog resource for a system ID """ + ret = libxml2mod.xmlACatalogResolveSystem(self._o, sysID) + return ret + + def resolveURI(self, URI): + """Do a complete resolution lookup of an URI """ + ret = libxml2mod.xmlACatalogResolveURI(self._o, URI) + return ret + +class xmlDtd(xmlNode): + def __init__(self, _obj=None): + if type(_obj).__name__ != 'PyCObject': + raise TypeError, 'xmlDtd needs a PyCObject argument' + self._o = _obj + xmlNode.__init__(self, _obj=_obj) + + def __repr__(self): + return "" % (self.name, long(pos_id (self))) + + # + # xmlDtd functions from module debugXML + # + + def debugDumpDTD(self, output): + """Dumps debug information for the DTD """ + libxml2mod.xmlDebugDumpDTD(output, self._o) + + # + # xmlDtd functions from module tree + # + + def copyDtd(self): + """Do a copy of the dtd. """ + ret = libxml2mod.xmlCopyDtd(self._o) + if ret is None:raise treeError('xmlCopyDtd() failed') + __tmp = xmlDtd(_obj=ret) + return __tmp + + def freeDtd(self): + """Free a DTD structure. """ + libxml2mod.xmlFreeDtd(self._o) + + # + # xmlDtd functions from module valid + # + + def dtdAttrDesc(self, elem, name): + """Search the DTD for the description of this attribute on + this element. """ + ret = libxml2mod.xmlGetDtdAttrDesc(self._o, elem, name) + if ret is None:raise treeError('xmlGetDtdAttrDesc() failed') + __tmp = xmlAttribute(_obj=ret) + return __tmp + + def dtdElementDesc(self, name): + """Search the DTD for the description of this element """ + ret = libxml2mod.xmlGetDtdElementDesc(self._o, name) + if ret is None:raise treeError('xmlGetDtdElementDesc() failed') + __tmp = xmlElement(_obj=ret) + return __tmp + + def dtdQAttrDesc(self, elem, name, prefix): + """Search the DTD for the description of this qualified + attribute on this element. """ + ret = libxml2mod.xmlGetDtdQAttrDesc(self._o, elem, name, prefix) + if ret is None:raise treeError('xmlGetDtdQAttrDesc() failed') + __tmp = xmlAttribute(_obj=ret) + return __tmp + + def dtdQElementDesc(self, name, prefix): + """Search the DTD for the description of this element """ + ret = libxml2mod.xmlGetDtdQElementDesc(self._o, name, prefix) + if ret is None:raise treeError('xmlGetDtdQElementDesc() failed') + __tmp = xmlElement(_obj=ret) + return __tmp + +class xmlElement(xmlNode): + def __init__(self, _obj=None): + if type(_obj).__name__ != 'PyCObject': + raise TypeError, 'xmlElement needs a PyCObject argument' + self._o = _obj + xmlNode.__init__(self, _obj=_obj) + + def __repr__(self): + return "" % (self.name, long(pos_id (self))) + +class xmlEntity(xmlNode): + def __init__(self, _obj=None): + if type(_obj).__name__ != 'PyCObject': + raise TypeError, 'xmlEntity needs a PyCObject argument' + self._o = _obj + xmlNode.__init__(self, _obj=_obj) + + def __repr__(self): + return "" % (self.name, long(pos_id (self))) + + # + # xmlEntity functions from module parserInternals + # + + def handleEntity(self, ctxt): + """Default handling of defined entities, when should we define + a new input stream ? When do we just handle that as a set + of chars ? OBSOLETE: to be removed at some point. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + libxml2mod.xmlHandleEntity(ctxt__o, self._o) + +class Error: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + # accessors for Error + def code(self): + """The error code, e.g. an xmlParserError """ + ret = libxml2mod.xmlErrorGetCode(self._o) + return ret + + def domain(self): + """What part of the library raised this error """ + ret = libxml2mod.xmlErrorGetDomain(self._o) + return ret + + def file(self): + """the filename """ + ret = libxml2mod.xmlErrorGetFile(self._o) + return ret + + def level(self): + """how consequent is the error """ + ret = libxml2mod.xmlErrorGetLevel(self._o) + return ret + + def line(self): + """the line number if available """ + ret = libxml2mod.xmlErrorGetLine(self._o) + return ret + + def message(self): + """human-readable informative error message """ + ret = libxml2mod.xmlErrorGetMessage(self._o) + return ret + + # + # Error functions from module xmlerror + # + + def copyError(self, to): + """Save the original error to the new place. """ + if to is None: to__o = None + else: to__o = to._o + ret = libxml2mod.xmlCopyError(self._o, to__o) + return ret + + def resetError(self): + """Cleanup the error. """ + libxml2mod.xmlResetError(self._o) + +class xmlNs(xmlNode): + def __init__(self, _obj=None): + if type(_obj).__name__ != 'PyCObject': + raise TypeError, 'xmlNs needs a PyCObject argument' + self._o = _obj + xmlNode.__init__(self, _obj=_obj) + + def __repr__(self): + return "" % (self.name, long(pos_id (self))) + + # + # xmlNs functions from module tree + # + + def copyNamespace(self): + """Do a copy of the namespace. """ + ret = libxml2mod.xmlCopyNamespace(self._o) + if ret is None:raise treeError('xmlCopyNamespace() failed') + __tmp = xmlNs(_obj=ret) + return __tmp + + def copyNamespaceList(self): + """Do a copy of an namespace list. """ + ret = libxml2mod.xmlCopyNamespaceList(self._o) + if ret is None:raise treeError('xmlCopyNamespaceList() failed') + __tmp = xmlNs(_obj=ret) + return __tmp + + def freeNs(self): + """Free up the structures associated to a namespace """ + libxml2mod.xmlFreeNs(self._o) + + def freeNsList(self): + """Free up all the structures associated to the chained + namespaces. """ + libxml2mod.xmlFreeNsList(self._o) + + def newChild(self, parent, name, content): + """Creation of a new child element, added at the end of + @parent children list. @ns and @content parameters are + optional (None). If @ns is None, the newly created element + inherits the namespace of @parent. If @content is non None, + a child list containing the TEXTs and ENTITY_REFs node will + be created. NOTE: @content is supposed to be a piece of XML + CDATA, so it allows entity references. XML special chars + must be escaped first by using + xmlEncodeEntitiesReentrant(), or xmlNewTextChild() should + be used. """ + if parent is None: parent__o = None + else: parent__o = parent._o + ret = libxml2mod.xmlNewChild(parent__o, self._o, name, content) + if ret is None:raise treeError('xmlNewChild() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocNode(self, doc, name, content): + """Creation of a new node element within a document. @ns and + @content are optional (None). NOTE: @content is supposed to + be a piece of XML CDATA, so it allow entities references, + but XML special chars need to be escaped first by using + xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you + don't need entities support. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlNewDocNode(doc__o, self._o, name, content) + if ret is None:raise treeError('xmlNewDocNode() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocNodeEatName(self, doc, name, content): + """Creation of a new node element within a document. @ns and + @content are optional (None). NOTE: @content is supposed to + be a piece of XML CDATA, so it allow entities references, + but XML special chars need to be escaped first by using + xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you + don't need entities support. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlNewDocNodeEatName(doc__o, self._o, name, content) + if ret is None:raise treeError('xmlNewDocNodeEatName() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newDocRawNode(self, doc, name, content): + """Creation of a new node element within a document. @ns and + @content are optional (None). """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlNewDocRawNode(doc__o, self._o, name, content) + if ret is None:raise treeError('xmlNewDocRawNode() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newNodeEatName(self, name): + """Creation of a new node element. @ns is optional (None). """ + ret = libxml2mod.xmlNewNodeEatName(self._o, name) + if ret is None:raise treeError('xmlNewNodeEatName() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def newNsProp(self, node, name, value): + """Create a new property tagged with a namespace and carried + by a node. """ + if node is None: node__o = None + else: node__o = node._o + ret = libxml2mod.xmlNewNsProp(node__o, self._o, name, value) + if ret is None:raise treeError('xmlNewNsProp() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def newNsPropEatName(self, node, name, value): + """Create a new property tagged with a namespace and carried + by a node. """ + if node is None: node__o = None + else: node__o = node._o + ret = libxml2mod.xmlNewNsPropEatName(node__o, self._o, name, value) + if ret is None:raise treeError('xmlNewNsPropEatName() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def newTextChild(self, parent, name, content): + """Creation of a new child element, added at the end of + @parent children list. @ns and @content parameters are + optional (None). If @ns is None, the newly created element + inherits the namespace of @parent. If @content is non None, + a child TEXT node will be created containing the string + @content. NOTE: Use xmlNewChild() if @content will contain + entities that need to be preserved. Use this function, + xmlNewTextChild(), if you need to ensure that reserved XML + chars that might appear in @content, such as the ampersand, + greater-than or less-than signs, are automatically replaced + by their XML escaped entity representations. """ + if parent is None: parent__o = None + else: parent__o = parent._o + ret = libxml2mod.xmlNewTextChild(parent__o, self._o, name, content) + if ret is None:raise treeError('xmlNewTextChild() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def setNs(self, node): + """Associate a namespace to a node, a posteriori. """ + if node is None: node__o = None + else: node__o = node._o + libxml2mod.xmlSetNs(node__o, self._o) + + def setNsProp(self, node, name, value): + """Set (or reset) an attribute carried by a node. The ns + structure must be in scope, this is not checked """ + if node is None: node__o = None + else: node__o = node._o + ret = libxml2mod.xmlSetNsProp(node__o, self._o, name, value) + if ret is None:raise treeError('xmlSetNsProp() failed') + __tmp = xmlAttr(_obj=ret) + return __tmp + + def unsetNsProp(self, node, name): + """Remove an attribute carried by a node. """ + if node is None: node__o = None + else: node__o = node._o + ret = libxml2mod.xmlUnsetNsProp(node__o, self._o, name) + return ret + + # + # xmlNs functions from module xpathInternals + # + + def xpathNodeSetFreeNs(self): + """Namespace nodes in libxml don't match the XPath semantic. + In a node set the namespace nodes are duplicated and the + next pointer is set to the parent node in the XPath + semantic. Check if such a node needs to be freed """ + libxml2mod.xmlXPathNodeSetFreeNs(self._o) + +class outputBuffer(ioWriteWrapper): + def __init__(self, _obj=None): + self._o = _obj + ioWriteWrapper.__init__(self, _obj=_obj) + + # + # outputBuffer functions from module HTMLtree + # + + def htmlDocContentDumpFormatOutput(self, cur, encoding, format): + """Dump an HTML document. """ + if cur is None: cur__o = None + else: cur__o = cur._o + libxml2mod.htmlDocContentDumpFormatOutput(self._o, cur__o, encoding, format) + + def htmlDocContentDumpOutput(self, cur, encoding): + """Dump an HTML document. Formating return/spaces are added. """ + if cur is None: cur__o = None + else: cur__o = cur._o + libxml2mod.htmlDocContentDumpOutput(self._o, cur__o, encoding) + + def htmlNodeDumpFormatOutput(self, doc, cur, encoding, format): + """Dump an HTML node, recursive behaviour,children are printed + too. """ + if doc is None: doc__o = None + else: doc__o = doc._o + if cur is None: cur__o = None + else: cur__o = cur._o + libxml2mod.htmlNodeDumpFormatOutput(self._o, doc__o, cur__o, encoding, format) + + def htmlNodeDumpOutput(self, doc, cur, encoding): + """Dump an HTML node, recursive behaviour,children are printed + too, and formatting returns/spaces are added. """ + if doc is None: doc__o = None + else: doc__o = doc._o + if cur is None: cur__o = None + else: cur__o = cur._o + libxml2mod.htmlNodeDumpOutput(self._o, doc__o, cur__o, encoding) + + # + # outputBuffer functions from module tree + # + + def nodeDumpOutput(self, doc, cur, level, format, encoding): + """Dump an XML node, recursive behaviour, children are printed + too. Note that @format = 1 provide node indenting only if + xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was + called """ + if doc is None: doc__o = None + else: doc__o = doc._o + if cur is None: cur__o = None + else: cur__o = cur._o + libxml2mod.xmlNodeDumpOutput(self._o, doc__o, cur__o, level, format, encoding) + + def saveFileTo(self, cur, encoding): + """Dump an XML document to an I/O buffer. Warning ! This call + xmlOutputBufferClose() on buf which is not available after + this call. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlSaveFileTo(self._o, cur__o, encoding) + return ret + + def saveFormatFileTo(self, cur, encoding, format): + """Dump an XML document to an I/O buffer. Warning ! This call + xmlOutputBufferClose() on buf which is not available after + this call. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlSaveFormatFileTo(self._o, cur__o, encoding, format) + return ret + + # + # outputBuffer functions from module xmlIO + # + + def getContent(self): + """Gives a pointer to the data currently held in the output + buffer """ + ret = libxml2mod.xmlOutputBufferGetContent(self._o) + return ret + + def write(self, len, buf): + """Write the content of the array in the output I/O buffer + This routine handle the I18N transcoding from internal + UTF-8 The buffer is lossless, i.e. will store in case of + partial or delayed writes. """ + ret = libxml2mod.xmlOutputBufferWrite(self._o, len, buf) + return ret + + def writeString(self, str): + """Write the content of the string in the output I/O buffer + This routine handle the I18N transcoding from internal + UTF-8 The buffer is lossless, i.e. will store in case of + partial or delayed writes. """ + ret = libxml2mod.xmlOutputBufferWriteString(self._o, str) + return ret + +class inputBuffer(ioReadWrapper): + def __init__(self, _obj=None): + self._o = _obj + ioReadWrapper.__init__(self, _obj=_obj) + + def __del__(self): + if self._o != None: + libxml2mod.xmlFreeParserInputBuffer(self._o) + self._o = None + + # + # inputBuffer functions from module xmlIO + # + + def grow(self, len): + """Grow up the content of the input buffer, the old data are + preserved This routine handle the I18N transcoding to + internal UTF-8 This routine is used when operating the + parser in normal (pull) mode TODO: one should be able to + remove one extra copy by copying directly onto in->buffer + or in->raw """ + ret = libxml2mod.xmlParserInputBufferGrow(self._o, len) + return ret + + def push(self, len, buf): + """Push the content of the arry in the input buffer This + routine handle the I18N transcoding to internal UTF-8 This + is used when operating the parser in progressive (push) + mode. """ + ret = libxml2mod.xmlParserInputBufferPush(self._o, len, buf) + return ret + + def read(self, len): + """Refresh the content of the input buffer, the old data are + considered consumed This routine handle the I18N + transcoding to internal UTF-8 """ + ret = libxml2mod.xmlParserInputBufferRead(self._o, len) + return ret + + # + # inputBuffer functions from module xmlreader + # + + def Setup(self, reader, URL, encoding, options): + """Setup an XML reader with new options """ + if reader is None: reader__o = None + else: reader__o = reader._o + ret = libxml2mod.xmlTextReaderSetup(reader__o, self._o, URL, encoding, options) + return ret + + def newTextReader(self, URI): + """Create an xmlTextReader structure fed with @input """ + ret = libxml2mod.xmlNewTextReader(self._o, URI) + if ret is None:raise treeError('xmlNewTextReader() failed') + __tmp = xmlTextReader(_obj=ret) + __tmp.input = self + return __tmp + +class xmlReg: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + def __del__(self): + if self._o != None: + libxml2mod.xmlRegFreeRegexp(self._o) + self._o = None + + # + # xmlReg functions from module xmlregexp + # + + def regexpExec(self, content): + """Check if the regular expression generates the value """ + ret = libxml2mod.xmlRegexpExec(self._o, content) + return ret + + def regexpIsDeterminist(self): + """Check if the regular expression is determinist """ + ret = libxml2mod.xmlRegexpIsDeterminist(self._o) + return ret + + def regexpPrint(self, output): + """Print the content of the compiled regular expression """ + libxml2mod.xmlRegexpPrint(output, self._o) + +class relaxNgParserCtxt: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + def __del__(self): + if self._o != None: + libxml2mod.xmlRelaxNGFreeParserCtxt(self._o) + self._o = None + + # + # relaxNgParserCtxt functions from module relaxng + # + + def relaxNGParse(self): + """parse a schema definition resource and build an internal + XML Shema struture which can be used to validate instances. """ + ret = libxml2mod.xmlRelaxNGParse(self._o) + if ret is None:raise parserError('xmlRelaxNGParse() failed') + __tmp = relaxNgSchema(_obj=ret) + return __tmp + + def relaxParserSetFlag(self, flags): + """Semi private function used to pass informations to a parser + context which are a combination of xmlRelaxNGParserFlag . """ + ret = libxml2mod.xmlRelaxParserSetFlag(self._o, flags) + return ret + +class relaxNgSchema: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + def __del__(self): + if self._o != None: + libxml2mod.xmlRelaxNGFree(self._o) + self._o = None + + # + # relaxNgSchema functions from module relaxng + # + + def relaxNGDump(self, output): + """Dump a RelaxNG structure back """ + libxml2mod.xmlRelaxNGDump(output, self._o) + + def relaxNGDumpTree(self, output): + """Dump the transformed RelaxNG tree. """ + libxml2mod.xmlRelaxNGDumpTree(output, self._o) + + def relaxNGNewValidCtxt(self): + """Create an XML RelaxNGs validation context based on the + given schema """ + ret = libxml2mod.xmlRelaxNGNewValidCtxt(self._o) + if ret is None:raise treeError('xmlRelaxNGNewValidCtxt() failed') + __tmp = relaxNgValidCtxt(_obj=ret) + __tmp.schema = self + return __tmp + + # + # relaxNgSchema functions from module xmlreader + # + + def RelaxNGSetSchema(self, reader): + """Use RelaxNG to validate the document as it is processed. + Activation is only possible before the first Read(). if + @schema is None, then RelaxNG validation is desactivated. @ + The @schema should not be freed until the reader is + deallocated or its use has been deactivated. """ + if reader is None: reader__o = None + else: reader__o = reader._o + ret = libxml2mod.xmlTextReaderRelaxNGSetSchema(reader__o, self._o) + return ret + +class relaxNgValidCtxt(relaxNgValidCtxtCore): + def __init__(self, _obj=None): + self.schema = None + self._o = _obj + relaxNgValidCtxtCore.__init__(self, _obj=_obj) + + def __del__(self): + if self._o != None: + libxml2mod.xmlRelaxNGFreeValidCtxt(self._o) + self._o = None + + # + # relaxNgValidCtxt functions from module relaxng + # + + def relaxNGValidateDoc(self, doc): + """Validate a document tree in memory. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlRelaxNGValidateDoc(self._o, doc__o) + return ret + + def relaxNGValidateFullElement(self, doc, elem): + """Validate a full subtree when + xmlRelaxNGValidatePushElement() returned 0 and the content + of the node has been expanded. """ + if doc is None: doc__o = None + else: doc__o = doc._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlRelaxNGValidateFullElement(self._o, doc__o, elem__o) + return ret + + def relaxNGValidatePopElement(self, doc, elem): + """Pop the element end from the RelaxNG validation stack. """ + if doc is None: doc__o = None + else: doc__o = doc._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlRelaxNGValidatePopElement(self._o, doc__o, elem__o) + return ret + + def relaxNGValidatePushCData(self, data, len): + """check the CData parsed for validation in the current stack """ + ret = libxml2mod.xmlRelaxNGValidatePushCData(self._o, data, len) + return ret + + def relaxNGValidatePushElement(self, doc, elem): + """Push a new element start on the RelaxNG validation stack. """ + if doc is None: doc__o = None + else: doc__o = doc._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlRelaxNGValidatePushElement(self._o, doc__o, elem__o) + return ret + + # + # relaxNgValidCtxt functions from module xmlreader + # + + def RelaxNGValidateCtxt(self, reader, options): + """Use RelaxNG schema context to validate the document as it + is processed. Activation is only possible before the first + Read(). If @ctxt is None, then RelaxNG schema validation is + deactivated. """ + if reader is None: reader__o = None + else: reader__o = reader._o + ret = libxml2mod.xmlTextReaderRelaxNGValidateCtxt(reader__o, self._o, options) + return ret + +class SchemaParserCtxt: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + def __del__(self): + if self._o != None: + libxml2mod.xmlSchemaFreeParserCtxt(self._o) + self._o = None + + # + # SchemaParserCtxt functions from module xmlschemas + # + + def schemaParse(self): + """parse a schema definition resource and build an internal + XML Shema struture which can be used to validate instances. """ + ret = libxml2mod.xmlSchemaParse(self._o) + if ret is None:raise parserError('xmlSchemaParse() failed') + __tmp = Schema(_obj=ret) + return __tmp + +class Schema: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + def __del__(self): + if self._o != None: + libxml2mod.xmlSchemaFree(self._o) + self._o = None + + # + # Schema functions from module xmlreader + # + + def SetSchema(self, reader): + """Use XSD Schema to validate the document as it is processed. + Activation is only possible before the first Read(). if + @schema is None, then Schema validation is desactivated. @ + The @schema should not be freed until the reader is + deallocated or its use has been deactivated. """ + if reader is None: reader__o = None + else: reader__o = reader._o + ret = libxml2mod.xmlTextReaderSetSchema(reader__o, self._o) + return ret + + # + # Schema functions from module xmlschemas + # + + def schemaDump(self, output): + """Dump a Schema structure. """ + libxml2mod.xmlSchemaDump(output, self._o) + + def schemaNewValidCtxt(self): + """Create an XML Schemas validation context based on the given + schema. """ + ret = libxml2mod.xmlSchemaNewValidCtxt(self._o) + if ret is None:raise treeError('xmlSchemaNewValidCtxt() failed') + __tmp = SchemaValidCtxt(_obj=ret) + __tmp.schema = self + return __tmp + +class SchemaValidCtxt(SchemaValidCtxtCore): + def __init__(self, _obj=None): + self.schema = None + self._o = _obj + SchemaValidCtxtCore.__init__(self, _obj=_obj) + + def __del__(self): + if self._o != None: + libxml2mod.xmlSchemaFreeValidCtxt(self._o) + self._o = None + + # + # SchemaValidCtxt functions from module xmlreader + # + + def SchemaValidateCtxt(self, reader, options): + """Use W3C XSD schema context to validate the document as it + is processed. Activation is only possible before the first + Read(). If @ctxt is None, then XML Schema validation is + deactivated. """ + if reader is None: reader__o = None + else: reader__o = reader._o + ret = libxml2mod.xmlTextReaderSchemaValidateCtxt(reader__o, self._o, options) + return ret + + # + # SchemaValidCtxt functions from module xmlschemas + # + + def schemaIsValid(self): + """Check if any error was detected during validation. """ + ret = libxml2mod.xmlSchemaIsValid(self._o) + return ret + + def schemaSetValidOptions(self, options): + """Sets the options to be used during the validation. """ + ret = libxml2mod.xmlSchemaSetValidOptions(self._o, options) + return ret + + def schemaValidCtxtGetOptions(self): + """Get the validation context options. """ + ret = libxml2mod.xmlSchemaValidCtxtGetOptions(self._o) + return ret + + def schemaValidCtxtGetParserCtxt(self): + """allow access to the parser context of the schema validation + context """ + ret = libxml2mod.xmlSchemaValidCtxtGetParserCtxt(self._o) + if ret is None:raise parserError('xmlSchemaValidCtxtGetParserCtxt() failed') + __tmp = parserCtxt(_obj=ret) + return __tmp + + def schemaValidateDoc(self, doc): + """Validate a document tree in memory. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlSchemaValidateDoc(self._o, doc__o) + return ret + + def schemaValidateFile(self, filename, options): + """Do a schemas validation of the given resource, it will use + the SAX streamable validation internally. """ + ret = libxml2mod.xmlSchemaValidateFile(self._o, filename, options) + return ret + + def schemaValidateOneElement(self, elem): + """Validate a branch of a tree, starting with the given @elem. """ + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlSchemaValidateOneElement(self._o, elem__o) + return ret + + def schemaValidateSetFilename(self, filename): + """Workaround to provide file error reporting information when + this is not provided by current APIs """ + libxml2mod.xmlSchemaValidateSetFilename(self._o, filename) + +class xmlTextReaderLocator: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + # + # xmlTextReaderLocator functions from module xmlreader + # + + def BaseURI(self): + """Obtain the base URI for the given locator. """ + ret = libxml2mod.xmlTextReaderLocatorBaseURI(self._o) + return ret + + def LineNumber(self): + """Obtain the line number for the given locator. """ + ret = libxml2mod.xmlTextReaderLocatorLineNumber(self._o) + return ret + +class xmlTextReader(xmlTextReaderCore): + def __init__(self, _obj=None): + self.input = None + self._o = _obj + xmlTextReaderCore.__init__(self, _obj=_obj) + + def __del__(self): + if self._o != None: + libxml2mod.xmlFreeTextReader(self._o) + self._o = None + + # + # xmlTextReader functions from module xmlreader + # + + def AttributeCount(self): + """Provides the number of attributes of the current node """ + ret = libxml2mod.xmlTextReaderAttributeCount(self._o) + return ret + + def BaseUri(self): + """The base URI of the node. """ + ret = libxml2mod.xmlTextReaderConstBaseUri(self._o) + return ret + + def ByteConsumed(self): + """This function provides the current index of the parser used + by the reader, relative to the start of the current entity. + This function actually just wraps a call to + xmlBytesConsumed() for the parser context associated with + the reader. See xmlBytesConsumed() for more information. """ + ret = libxml2mod.xmlTextReaderByteConsumed(self._o) + return ret + + def Close(self): + """This method releases any resources allocated by the current + instance changes the state to Closed and close any + underlying input. """ + ret = libxml2mod.xmlTextReaderClose(self._o) + return ret + + def CurrentDoc(self): + """Hacking interface allowing to get the xmlDocPtr + correponding to the current document being accessed by the + xmlTextReader. NOTE: as a result of this call, the reader + will not destroy the associated XML document and calling + xmlFreeDoc() on the result is needed once the reader + parsing has finished. """ + ret = libxml2mod.xmlTextReaderCurrentDoc(self._o) + if ret is None:raise treeError('xmlTextReaderCurrentDoc() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def CurrentNode(self): + """Hacking interface allowing to get the xmlNodePtr + correponding to the current node being accessed by the + xmlTextReader. This is dangerous because the underlying + node may be destroyed on the next Reads. """ + ret = libxml2mod.xmlTextReaderCurrentNode(self._o) + if ret is None:raise treeError('xmlTextReaderCurrentNode() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def Depth(self): + """The depth of the node in the tree. """ + ret = libxml2mod.xmlTextReaderDepth(self._o) + return ret + + def Encoding(self): + """Determine the encoding of the document being read. """ + ret = libxml2mod.xmlTextReaderConstEncoding(self._o) + return ret + + def Expand(self): + """Reads the contents of the current node and the full + subtree. It then makes the subtree available until the next + xmlTextReaderRead() call """ + ret = libxml2mod.xmlTextReaderExpand(self._o) + if ret is None:raise treeError('xmlTextReaderExpand() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def GetAttribute(self, name): + """Provides the value of the attribute with the specified + qualified name. """ + ret = libxml2mod.xmlTextReaderGetAttribute(self._o, name) + return ret + + def GetAttributeNo(self, no): + """Provides the value of the attribute with the specified + index relative to the containing element. """ + ret = libxml2mod.xmlTextReaderGetAttributeNo(self._o, no) + return ret + + def GetAttributeNs(self, localName, namespaceURI): + """Provides the value of the specified attribute """ + ret = libxml2mod.xmlTextReaderGetAttributeNs(self._o, localName, namespaceURI) + return ret + + def GetParserColumnNumber(self): + """Provide the column number of the current parsing point. """ + ret = libxml2mod.xmlTextReaderGetParserColumnNumber(self._o) + return ret + + def GetParserLineNumber(self): + """Provide the line number of the current parsing point. """ + ret = libxml2mod.xmlTextReaderGetParserLineNumber(self._o) + return ret + + def GetParserProp(self, prop): + """Read the parser internal property. """ + ret = libxml2mod.xmlTextReaderGetParserProp(self._o, prop) + return ret + + def GetRemainder(self): + """Method to get the remainder of the buffered XML. this + method stops the parser, set its state to End Of File and + return the input stream with what is left that the parser + did not use. The implementation is not good, the parser + certainly procgressed past what's left in reader->input, + and there is an allocation problem. Best would be to + rewrite it differently. """ + ret = libxml2mod.xmlTextReaderGetRemainder(self._o) + if ret is None:raise treeError('xmlTextReaderGetRemainder() failed') + __tmp = inputBuffer(_obj=ret) + return __tmp + + def HasAttributes(self): + """Whether the node has attributes. """ + ret = libxml2mod.xmlTextReaderHasAttributes(self._o) + return ret + + def HasValue(self): + """Whether the node can have a text value. """ + ret = libxml2mod.xmlTextReaderHasValue(self._o) + return ret + + def IsDefault(self): + """Whether an Attribute node was generated from the default + value defined in the DTD or schema. """ + ret = libxml2mod.xmlTextReaderIsDefault(self._o) + return ret + + def IsEmptyElement(self): + """Check if the current node is empty """ + ret = libxml2mod.xmlTextReaderIsEmptyElement(self._o) + return ret + + def IsNamespaceDecl(self): + """Determine whether the current node is a namespace + declaration rather than a regular attribute. """ + ret = libxml2mod.xmlTextReaderIsNamespaceDecl(self._o) + return ret + + def IsValid(self): + """Retrieve the validity status from the parser context """ + ret = libxml2mod.xmlTextReaderIsValid(self._o) + return ret + + def LocalName(self): + """The local name of the node. """ + ret = libxml2mod.xmlTextReaderConstLocalName(self._o) + return ret + + def LookupNamespace(self, prefix): + """Resolves a namespace prefix in the scope of the current + element. """ + ret = libxml2mod.xmlTextReaderLookupNamespace(self._o, prefix) + return ret + + def MoveToAttribute(self, name): + """Moves the position of the current instance to the attribute + with the specified qualified name. """ + ret = libxml2mod.xmlTextReaderMoveToAttribute(self._o, name) + return ret + + def MoveToAttributeNo(self, no): + """Moves the position of the current instance to the attribute + with the specified index relative to the containing element. """ + ret = libxml2mod.xmlTextReaderMoveToAttributeNo(self._o, no) + return ret + + def MoveToAttributeNs(self, localName, namespaceURI): + """Moves the position of the current instance to the attribute + with the specified local name and namespace URI. """ + ret = libxml2mod.xmlTextReaderMoveToAttributeNs(self._o, localName, namespaceURI) + return ret + + def MoveToElement(self): + """Moves the position of the current instance to the node that + contains the current Attribute node. """ + ret = libxml2mod.xmlTextReaderMoveToElement(self._o) + return ret + + def MoveToFirstAttribute(self): + """Moves the position of the current instance to the first + attribute associated with the current node. """ + ret = libxml2mod.xmlTextReaderMoveToFirstAttribute(self._o) + return ret + + def MoveToNextAttribute(self): + """Moves the position of the current instance to the next + attribute associated with the current node. """ + ret = libxml2mod.xmlTextReaderMoveToNextAttribute(self._o) + return ret + + def Name(self): + """The qualified name of the node, equal to Prefix :LocalName. """ + ret = libxml2mod.xmlTextReaderConstName(self._o) + return ret + + def NamespaceUri(self): + """The URI defining the namespace associated with the node. """ + ret = libxml2mod.xmlTextReaderConstNamespaceUri(self._o) + return ret + + def NewDoc(self, cur, URL, encoding, options): + """Setup an xmltextReader to parse an XML in-memory document. + The parsing flags @options are a combination of + xmlParserOption. This reuses the existing @reader + xmlTextReader. """ + ret = libxml2mod.xmlReaderNewDoc(self._o, cur, URL, encoding, options) + return ret + + def NewFd(self, fd, URL, encoding, options): + """Setup an xmltextReader to parse an XML from a file + descriptor. NOTE that the file descriptor will not be + closed when the reader is closed or reset. The parsing + flags @options are a combination of xmlParserOption. This + reuses the existing @reader xmlTextReader. """ + ret = libxml2mod.xmlReaderNewFd(self._o, fd, URL, encoding, options) + return ret + + def NewFile(self, filename, encoding, options): + """parse an XML file from the filesystem or the network. The + parsing flags @options are a combination of + xmlParserOption. This reuses the existing @reader + xmlTextReader. """ + ret = libxml2mod.xmlReaderNewFile(self._o, filename, encoding, options) + return ret + + def NewMemory(self, buffer, size, URL, encoding, options): + """Setup an xmltextReader to parse an XML in-memory document. + The parsing flags @options are a combination of + xmlParserOption. This reuses the existing @reader + xmlTextReader. """ + ret = libxml2mod.xmlReaderNewMemory(self._o, buffer, size, URL, encoding, options) + return ret + + def NewWalker(self, doc): + """Setup an xmltextReader to parse a preparsed XML document. + This reuses the existing @reader xmlTextReader. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlReaderNewWalker(self._o, doc__o) + return ret + + def Next(self): + """Skip to the node following the current one in document + order while avoiding the subtree if any. """ + ret = libxml2mod.xmlTextReaderNext(self._o) + return ret + + def NextSibling(self): + """Skip to the node following the current one in document + order while avoiding the subtree if any. Currently + implemented only for Readers built on a document """ + ret = libxml2mod.xmlTextReaderNextSibling(self._o) + return ret + + def NodeType(self): + """Get the node type of the current node Reference: + http://www.gnu.org/software/dotgnu/pnetlib-doc/System/Xml/Xm + lNodeType.html """ + ret = libxml2mod.xmlTextReaderNodeType(self._o) + return ret + + def Normalization(self): + """The value indicating whether to normalize white space and + attribute values. Since attribute value and end of line + normalizations are a MUST in the XML specification only the + value true is accepted. The broken bahaviour of accepting + out of range character entities like � is of course not + supported either. """ + ret = libxml2mod.xmlTextReaderNormalization(self._o) + return ret + + def Prefix(self): + """A shorthand reference to the namespace associated with the + node. """ + ret = libxml2mod.xmlTextReaderConstPrefix(self._o) + return ret + + def Preserve(self): + """This tells the XML Reader to preserve the current node. The + caller must also use xmlTextReaderCurrentDoc() to keep an + handle on the resulting document once parsing has finished """ + ret = libxml2mod.xmlTextReaderPreserve(self._o) + if ret is None:raise treeError('xmlTextReaderPreserve() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def QuoteChar(self): + """The quotation mark character used to enclose the value of + an attribute. """ + ret = libxml2mod.xmlTextReaderQuoteChar(self._o) + return ret + + def Read(self): + """Moves the position of the current instance to the next node + in the stream, exposing its properties. """ + ret = libxml2mod.xmlTextReaderRead(self._o) + return ret + + def ReadAttributeValue(self): + """Parses an attribute value into one or more Text and + EntityReference nodes. """ + ret = libxml2mod.xmlTextReaderReadAttributeValue(self._o) + return ret + + def ReadInnerXml(self): + """Reads the contents of the current node, including child + nodes and markup. """ + ret = libxml2mod.xmlTextReaderReadInnerXml(self._o) + return ret + + def ReadOuterXml(self): + """Reads the contents of the current node, including child + nodes and markup. """ + ret = libxml2mod.xmlTextReaderReadOuterXml(self._o) + return ret + + def ReadState(self): + """Gets the read state of the reader. """ + ret = libxml2mod.xmlTextReaderReadState(self._o) + return ret + + def ReadString(self): + """Reads the contents of an element or a text node as a string. """ + ret = libxml2mod.xmlTextReaderReadString(self._o) + return ret + + def RelaxNGSetSchema(self, schema): + """Use RelaxNG to validate the document as it is processed. + Activation is only possible before the first Read(). if + @schema is None, then RelaxNG validation is desactivated. @ + The @schema should not be freed until the reader is + deallocated or its use has been deactivated. """ + if schema is None: schema__o = None + else: schema__o = schema._o + ret = libxml2mod.xmlTextReaderRelaxNGSetSchema(self._o, schema__o) + return ret + + def RelaxNGValidate(self, rng): + """Use RelaxNG schema to validate the document as it is + processed. Activation is only possible before the first + Read(). If @rng is None, then RelaxNG schema validation is + deactivated. """ + ret = libxml2mod.xmlTextReaderRelaxNGValidate(self._o, rng) + return ret + + def RelaxNGValidateCtxt(self, ctxt, options): + """Use RelaxNG schema context to validate the document as it + is processed. Activation is only possible before the first + Read(). If @ctxt is None, then RelaxNG schema validation is + deactivated. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlTextReaderRelaxNGValidateCtxt(self._o, ctxt__o, options) + return ret + + def SchemaValidate(self, xsd): + """Use W3C XSD schema to validate the document as it is + processed. Activation is only possible before the first + Read(). If @xsd is None, then XML Schema validation is + deactivated. """ + ret = libxml2mod.xmlTextReaderSchemaValidate(self._o, xsd) + return ret + + def SchemaValidateCtxt(self, ctxt, options): + """Use W3C XSD schema context to validate the document as it + is processed. Activation is only possible before the first + Read(). If @ctxt is None, then XML Schema validation is + deactivated. """ + if ctxt is None: ctxt__o = None + else: ctxt__o = ctxt._o + ret = libxml2mod.xmlTextReaderSchemaValidateCtxt(self._o, ctxt__o, options) + return ret + + def SetParserProp(self, prop, value): + """Change the parser processing behaviour by changing some of + its internal properties. Note that some properties can only + be changed before any read has been done. """ + ret = libxml2mod.xmlTextReaderSetParserProp(self._o, prop, value) + return ret + + def SetSchema(self, schema): + """Use XSD Schema to validate the document as it is processed. + Activation is only possible before the first Read(). if + @schema is None, then Schema validation is desactivated. @ + The @schema should not be freed until the reader is + deallocated or its use has been deactivated. """ + if schema is None: schema__o = None + else: schema__o = schema._o + ret = libxml2mod.xmlTextReaderSetSchema(self._o, schema__o) + return ret + + def Setup(self, input, URL, encoding, options): + """Setup an XML reader with new options """ + if input is None: input__o = None + else: input__o = input._o + ret = libxml2mod.xmlTextReaderSetup(self._o, input__o, URL, encoding, options) + return ret + + def Standalone(self): + """Determine the standalone status of the document being read. """ + ret = libxml2mod.xmlTextReaderStandalone(self._o) + return ret + + def String(self, str): + """Get an interned string from the reader, allows for example + to speedup string name comparisons """ + ret = libxml2mod.xmlTextReaderConstString(self._o, str) + return ret + + def Value(self): + """Provides the text value of the node if present """ + ret = libxml2mod.xmlTextReaderConstValue(self._o) + return ret + + def XmlLang(self): + """The xml:lang scope within which the node resides. """ + ret = libxml2mod.xmlTextReaderConstXmlLang(self._o) + return ret + + def XmlVersion(self): + """Determine the XML version of the document being read. """ + ret = libxml2mod.xmlTextReaderConstXmlVersion(self._o) + return ret + +class URI: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + def __del__(self): + if self._o != None: + libxml2mod.xmlFreeURI(self._o) + self._o = None + + # accessors for URI + def authority(self): + """Get the authority part from an URI """ + ret = libxml2mod.xmlURIGetAuthority(self._o) + return ret + + def fragment(self): + """Get the fragment part from an URI """ + ret = libxml2mod.xmlURIGetFragment(self._o) + return ret + + def opaque(self): + """Get the opaque part from an URI """ + ret = libxml2mod.xmlURIGetOpaque(self._o) + return ret + + def path(self): + """Get the path part from an URI """ + ret = libxml2mod.xmlURIGetPath(self._o) + return ret + + def port(self): + """Get the port part from an URI """ + ret = libxml2mod.xmlURIGetPort(self._o) + return ret + + def query(self): + """Get the query part from an URI """ + ret = libxml2mod.xmlURIGetQuery(self._o) + return ret + + def queryRaw(self): + """Get the raw query part from an URI (i.e. the unescaped + form). """ + ret = libxml2mod.xmlURIGetQueryRaw(self._o) + return ret + + def scheme(self): + """Get the scheme part from an URI """ + ret = libxml2mod.xmlURIGetScheme(self._o) + return ret + + def server(self): + """Get the server part from an URI """ + ret = libxml2mod.xmlURIGetServer(self._o) + return ret + + def setAuthority(self, authority): + """Set the authority part of an URI. """ + libxml2mod.xmlURISetAuthority(self._o, authority) + + def setFragment(self, fragment): + """Set the fragment part of an URI. """ + libxml2mod.xmlURISetFragment(self._o, fragment) + + def setOpaque(self, opaque): + """Set the opaque part of an URI. """ + libxml2mod.xmlURISetOpaque(self._o, opaque) + + def setPath(self, path): + """Set the path part of an URI. """ + libxml2mod.xmlURISetPath(self._o, path) + + def setPort(self, port): + """Set the port part of an URI. """ + libxml2mod.xmlURISetPort(self._o, port) + + def setQuery(self, query): + """Set the query part of an URI. """ + libxml2mod.xmlURISetQuery(self._o, query) + + def setQueryRaw(self, query_raw): + """Set the raw query part of an URI (i.e. the unescaped form). """ + libxml2mod.xmlURISetQueryRaw(self._o, query_raw) + + def setScheme(self, scheme): + """Set the scheme part of an URI. """ + libxml2mod.xmlURISetScheme(self._o, scheme) + + def setServer(self, server): + """Set the server part of an URI. """ + libxml2mod.xmlURISetServer(self._o, server) + + def setUser(self, user): + """Set the user part of an URI. """ + libxml2mod.xmlURISetUser(self._o, user) + + def user(self): + """Get the user part from an URI """ + ret = libxml2mod.xmlURIGetUser(self._o) + return ret + + # + # URI functions from module uri + # + + def parseURIReference(self, str): + """Parse an URI reference string based on RFC 3986 and fills + in the appropriate fields of the @uri structure + URI-reference = URI / relative-ref """ + ret = libxml2mod.xmlParseURIReference(self._o, str) + return ret + + def printURI(self, stream): + """Prints the URI in the stream @stream. """ + libxml2mod.xmlPrintURI(stream, self._o) + + def saveUri(self): + """Save the URI as an escaped string """ + ret = libxml2mod.xmlSaveUri(self._o) + return ret + +class ValidCtxt(ValidCtxtCore): + def __init__(self, _obj=None): + self._o = _obj + ValidCtxtCore.__init__(self, _obj=_obj) + + def __del__(self): + if self._o != None: + libxml2mod.xmlFreeValidCtxt(self._o) + self._o = None + + # + # ValidCtxt functions from module valid + # + + def validCtxtNormalizeAttributeValue(self, doc, elem, name, value): + """Does the validation related extra step of the normalization + of attribute values: If the declared value is not CDATA, + then the XML processor must further process the normalized + attribute value by discarding any leading and trailing + space (#x20) characters, and by replacing sequences of + space (#x20) characters by single space (#x20) character. + Also check VC: Standalone Document Declaration in P32, and + update ctxt->valid accordingly """ + if doc is None: doc__o = None + else: doc__o = doc._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidCtxtNormalizeAttributeValue(self._o, doc__o, elem__o, name, value) + return ret + + def validateDocument(self, doc): + """Try to validate the document instance basically it does + the all the checks described by the XML Rec i.e. validates + the internal and external subset (if present) and validate + the document tree. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlValidateDocument(self._o, doc__o) + return ret + + def validateDocumentFinal(self, doc): + """Does the final step for the document validation once all + the incremental validation steps have been completed + basically it does the following checks described by the XML + Rec Check all the IDREF/IDREFS attributes definition for + validity """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlValidateDocumentFinal(self._o, doc__o) + return ret + + def validateDtd(self, doc, dtd): + """Try to validate the document against the dtd instance + Basically it does check all the definitions in the DtD. + Note the the internal subset (if present) is de-coupled + (i.e. not used), which could give problems if ID or IDREF + is present. """ + if doc is None: doc__o = None + else: doc__o = doc._o + if dtd is None: dtd__o = None + else: dtd__o = dtd._o + ret = libxml2mod.xmlValidateDtd(self._o, doc__o, dtd__o) + return ret + + def validateDtdFinal(self, doc): + """Does the final step for the dtds validation once all the + subsets have been parsed basically it does the following + checks described by the XML Rec - check that ENTITY and + ENTITIES type attributes default or possible values matches + one of the defined entities. - check that NOTATION type + attributes default or possible values matches one of the + defined notations. """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlValidateDtdFinal(self._o, doc__o) + return ret + + def validateElement(self, doc, elem): + """Try to validate the subtree under an element """ + if doc is None: doc__o = None + else: doc__o = doc._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidateElement(self._o, doc__o, elem__o) + return ret + + def validateNotationUse(self, doc, notationName): + """Validate that the given name match a notation declaration. + - [ VC: Notation Declared ] """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlValidateNotationUse(self._o, doc__o, notationName) + return ret + + def validateOneAttribute(self, doc, elem, attr, value): + """Try to validate a single attribute for an element basically + it does the following checks as described by the XML-1.0 + recommendation: - [ VC: Attribute Value Type ] - [ VC: + Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC: + Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity + Name ] - [ VC: Notation Attributes ] The ID/IDREF + uniqueness and matching are done separately """ + if doc is None: doc__o = None + else: doc__o = doc._o + if elem is None: elem__o = None + else: elem__o = elem._o + if attr is None: attr__o = None + else: attr__o = attr._o + ret = libxml2mod.xmlValidateOneAttribute(self._o, doc__o, elem__o, attr__o, value) + return ret + + def validateOneElement(self, doc, elem): + """Try to validate a single element and it's attributes, + basically it does the following checks as described by the + XML-1.0 recommendation: - [ VC: Element Valid ] - [ VC: + Required Attribute ] Then call xmlValidateOneAttribute() + for each attribute present. The ID/IDREF checkings are + done separately """ + if doc is None: doc__o = None + else: doc__o = doc._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidateOneElement(self._o, doc__o, elem__o) + return ret + + def validateOneNamespace(self, doc, elem, prefix, ns, value): + """Try to validate a single namespace declaration for an + element basically it does the following checks as described + by the XML-1.0 recommendation: - [ VC: Attribute Value Type + ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] - + [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: + Entity Name ] - [ VC: Notation Attributes ] The ID/IDREF + uniqueness and matching are done separately """ + if doc is None: doc__o = None + else: doc__o = doc._o + if elem is None: elem__o = None + else: elem__o = elem._o + if ns is None: ns__o = None + else: ns__o = ns._o + ret = libxml2mod.xmlValidateOneNamespace(self._o, doc__o, elem__o, prefix, ns__o, value) + return ret + + def validatePopElement(self, doc, elem, qname): + """Pop the element end from the validation stack. """ + if doc is None: doc__o = None + else: doc__o = doc._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidatePopElement(self._o, doc__o, elem__o, qname) + return ret + + def validatePushCData(self, data, len): + """check the CData parsed for validation in the current stack """ + ret = libxml2mod.xmlValidatePushCData(self._o, data, len) + return ret + + def validatePushElement(self, doc, elem, qname): + """Push a new element start on the validation stack. """ + if doc is None: doc__o = None + else: doc__o = doc._o + if elem is None: elem__o = None + else: elem__o = elem._o + ret = libxml2mod.xmlValidatePushElement(self._o, doc__o, elem__o, qname) + return ret + + def validateRoot(self, doc): + """Try to validate a the root element basically it does the + following check as described by the XML-1.0 recommendation: + - [ VC: Root Element Type ] it doesn't try to recurse or + apply other check to the element """ + if doc is None: doc__o = None + else: doc__o = doc._o + ret = libxml2mod.xmlValidateRoot(self._o, doc__o) + return ret + +class xpathContext: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + # accessors for xpathContext + def contextDoc(self): + """Get the doc from an xpathContext """ + ret = libxml2mod.xmlXPathGetContextDoc(self._o) + if ret is None:raise xpathError('xmlXPathGetContextDoc() failed') + __tmp = xmlDoc(_obj=ret) + return __tmp + + def contextNode(self): + """Get the current node from an xpathContext """ + ret = libxml2mod.xmlXPathGetContextNode(self._o) + if ret is None:raise xpathError('xmlXPathGetContextNode() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def contextPosition(self): + """Get the current node from an xpathContext """ + ret = libxml2mod.xmlXPathGetContextPosition(self._o) + return ret + + def contextSize(self): + """Get the current node from an xpathContext """ + ret = libxml2mod.xmlXPathGetContextSize(self._o) + return ret + + def function(self): + """Get the current function name xpathContext """ + ret = libxml2mod.xmlXPathGetFunction(self._o) + return ret + + def functionURI(self): + """Get the current function name URI xpathContext """ + ret = libxml2mod.xmlXPathGetFunctionURI(self._o) + return ret + + def setContextDoc(self, doc): + """Set the doc of an xpathContext """ + if doc is None: doc__o = None + else: doc__o = doc._o + libxml2mod.xmlXPathSetContextDoc(self._o, doc__o) + + def setContextNode(self, node): + """Set the current node of an xpathContext """ + if node is None: node__o = None + else: node__o = node._o + libxml2mod.xmlXPathSetContextNode(self._o, node__o) + + # + # xpathContext functions from module python + # + + def registerXPathFunction(self, name, ns_uri, f): + """Register a Python written function to the XPath interpreter """ + ret = libxml2mod.xmlRegisterXPathFunction(self._o, name, ns_uri, f) + return ret + + # + # xpathContext functions from module xpath + # + + def xpathContextSetCache(self, active, value, options): + """Creates/frees an object cache on the XPath context. If + activates XPath objects (xmlXPathObject) will be cached + internally to be reused. @options: 0: This will set the + XPath object caching: @value: This will set the maximum + number of XPath objects to be cached per slot There are 5 + slots for: node-set, string, number, boolean, and misc + objects. Use <0 for the default number (100). Other values + for @options have currently no effect. """ + ret = libxml2mod.xmlXPathContextSetCache(self._o, active, value, options) + return ret + + def xpathEval(self, str): + """Evaluate the XPath Location Path in the given context. """ + ret = libxml2mod.xmlXPathEval(str, self._o) + if ret is None:raise xpathError('xmlXPathEval() failed') + return xpathObjectRet(ret) + + def xpathEvalExpression(self, str): + """Evaluate the XPath expression in the given context. """ + ret = libxml2mod.xmlXPathEvalExpression(str, self._o) + if ret is None:raise xpathError('xmlXPathEvalExpression() failed') + return xpathObjectRet(ret) + + def xpathFreeContext(self): + """Free up an xmlXPathContext """ + libxml2mod.xmlXPathFreeContext(self._o) + + # + # xpathContext functions from module xpathInternals + # + + def xpathNewParserContext(self, str): + """Create a new xmlXPathParserContext """ + ret = libxml2mod.xmlXPathNewParserContext(str, self._o) + if ret is None:raise xpathError('xmlXPathNewParserContext() failed') + __tmp = xpathParserContext(_obj=ret) + return __tmp + + def xpathNsLookup(self, prefix): + """Search in the namespace declaration array of the context + for the given namespace name associated to the given prefix """ + ret = libxml2mod.xmlXPathNsLookup(self._o, prefix) + return ret + + def xpathRegisterAllFunctions(self): + """Registers all default XPath functions in this context """ + libxml2mod.xmlXPathRegisterAllFunctions(self._o) + + def xpathRegisterNs(self, prefix, ns_uri): + """Register a new namespace. If @ns_uri is None it unregisters + the namespace """ + ret = libxml2mod.xmlXPathRegisterNs(self._o, prefix, ns_uri) + return ret + + def xpathRegisteredFuncsCleanup(self): + """Cleanup the XPath context data associated to registered + functions """ + libxml2mod.xmlXPathRegisteredFuncsCleanup(self._o) + + def xpathRegisteredNsCleanup(self): + """Cleanup the XPath context data associated to registered + variables """ + libxml2mod.xmlXPathRegisteredNsCleanup(self._o) + + def xpathRegisteredVariablesCleanup(self): + """Cleanup the XPath context data associated to registered + variables """ + libxml2mod.xmlXPathRegisteredVariablesCleanup(self._o) + + def xpathVariableLookup(self, name): + """Search in the Variable array of the context for the given + variable value. """ + ret = libxml2mod.xmlXPathVariableLookup(self._o, name) + if ret is None:raise xpathError('xmlXPathVariableLookup() failed') + return xpathObjectRet(ret) + + def xpathVariableLookupNS(self, name, ns_uri): + """Search in the Variable array of the context for the given + variable value. """ + ret = libxml2mod.xmlXPathVariableLookupNS(self._o, name, ns_uri) + if ret is None:raise xpathError('xmlXPathVariableLookupNS() failed') + return xpathObjectRet(ret) + + # + # xpathContext functions from module xpointer + # + + def xpointerEval(self, str): + """Evaluate the XPath Location Path in the given context. """ + ret = libxml2mod.xmlXPtrEval(str, self._o) + if ret is None:raise treeError('xmlXPtrEval() failed') + return xpathObjectRet(ret) + +class xpathParserContext: + def __init__(self, _obj=None): + if _obj != None:self._o = _obj;return + self._o = None + + # accessors for xpathParserContext + def context(self): + """Get the xpathContext from an xpathParserContext """ + ret = libxml2mod.xmlXPathParserGetContext(self._o) + if ret is None:raise xpathError('xmlXPathParserGetContext() failed') + __tmp = xpathContext(_obj=ret) + return __tmp + + # + # xpathParserContext functions from module xpathInternals + # + + def xpathAddValues(self): + """Implement the add operation on XPath objects: The numeric + operators convert their operands to numbers as if by + calling the number function. """ + libxml2mod.xmlXPathAddValues(self._o) + + def xpathBooleanFunction(self, nargs): + """Implement the boolean() XPath function boolean + boolean(object) The boolean function converts its argument + to a boolean as follows: - a number is true if and only if + it is neither positive or negative zero nor NaN - a + node-set is true if and only if it is non-empty - a string + is true if and only if its length is non-zero """ + libxml2mod.xmlXPathBooleanFunction(self._o, nargs) + + def xpathCeilingFunction(self, nargs): + """Implement the ceiling() XPath function number + ceiling(number) The ceiling function returns the smallest + (closest to negative infinity) number that is not less than + the argument and that is an integer. """ + libxml2mod.xmlXPathCeilingFunction(self._o, nargs) + + def xpathCompareValues(self, inf, strict): + """Implement the compare operation on XPath objects: @arg1 < + @arg2 (1, 1, ... @arg1 <= @arg2 (1, 0, ... @arg1 > + @arg2 (0, 1, ... @arg1 >= @arg2 (0, 0, ... When + neither object to be compared is a node-set and the + operator is <=, <, >=, >, then the objects are compared by + converted both objects to numbers and comparing the numbers + according to IEEE 754. The < comparison will be true if and + only if the first number is less than the second number. + The <= comparison will be true if and only if the first + number is less than or equal to the second number. The > + comparison will be true if and only if the first number is + greater than the second number. The >= comparison will be + true if and only if the first number is greater than or + equal to the second number. """ + ret = libxml2mod.xmlXPathCompareValues(self._o, inf, strict) + return ret + + def xpathConcatFunction(self, nargs): + """Implement the concat() XPath function string concat(string, + string, string*) The concat function returns the + concatenation of its arguments. """ + libxml2mod.xmlXPathConcatFunction(self._o, nargs) + + def xpathContainsFunction(self, nargs): + """Implement the contains() XPath function boolean + contains(string, string) The contains function returns true + if the first argument string contains the second argument + string, and otherwise returns false. """ + libxml2mod.xmlXPathContainsFunction(self._o, nargs) + + def xpathCountFunction(self, nargs): + """Implement the count() XPath function number count(node-set) """ + libxml2mod.xmlXPathCountFunction(self._o, nargs) + + def xpathDivValues(self): + """Implement the div operation on XPath objects @arg1 / @arg2: + The numeric operators convert their operands to numbers as + if by calling the number function. """ + libxml2mod.xmlXPathDivValues(self._o) + + def xpathEqualValues(self): + """Implement the equal operation on XPath objects content: + @arg1 == @arg2 """ + ret = libxml2mod.xmlXPathEqualValues(self._o) + return ret + + def xpathErr(self, error): + """Handle an XPath error """ + libxml2mod.xmlXPathErr(self._o, error) + + def xpathEvalExpr(self): + """Parse and evaluate an XPath expression in the given + context, then push the result on the context stack """ + libxml2mod.xmlXPathEvalExpr(self._o) + + def xpathFalseFunction(self, nargs): + """Implement the false() XPath function boolean false() """ + libxml2mod.xmlXPathFalseFunction(self._o, nargs) + + def xpathFloorFunction(self, nargs): + """Implement the floor() XPath function number floor(number) + The floor function returns the largest (closest to positive + infinity) number that is not greater than the argument and + that is an integer. """ + libxml2mod.xmlXPathFloorFunction(self._o, nargs) + + def xpathFreeParserContext(self): + """Free up an xmlXPathParserContext """ + libxml2mod.xmlXPathFreeParserContext(self._o) + + def xpathIdFunction(self, nargs): + """Implement the id() XPath function node-set id(object) The + id function selects elements by their unique ID (see [5.2.1 + Unique IDs]). When the argument to id is of type node-set, + then the result is the union of the result of applying id + to the string value of each of the nodes in the argument + node-set. When the argument to id is of any other type, the + argument is converted to a string as if by a call to the + string function; the string is split into a + whitespace-separated list of tokens (whitespace is any + sequence of characters matching the production S); the + result is a node-set containing the elements in the same + document as the context node that have a unique ID equal to + any of the tokens in the list. """ + libxml2mod.xmlXPathIdFunction(self._o, nargs) + + def xpathLangFunction(self, nargs): + """Implement the lang() XPath function boolean lang(string) + The lang function returns true or false depending on + whether the language of the context node as specified by + xml:lang attributes is the same as or is a sublanguage of + the language specified by the argument string. The language + of the context node is determined by the value of the + xml:lang attribute on the context node, or, if the context + node has no xml:lang attribute, by the value of the + xml:lang attribute on the nearest ancestor of the context + node that has an xml:lang attribute. If there is no such + attribute, then lang """ + libxml2mod.xmlXPathLangFunction(self._o, nargs) + + def xpathLastFunction(self, nargs): + """Implement the last() XPath function number last() The last + function returns the number of nodes in the context node + list. """ + libxml2mod.xmlXPathLastFunction(self._o, nargs) + + def xpathLocalNameFunction(self, nargs): + """Implement the local-name() XPath function string + local-name(node-set?) The local-name function returns a + string containing the local part of the name of the node in + the argument node-set that is first in document order. If + the node-set is empty or the first node has no name, an + empty string is returned. If the argument is omitted it + defaults to the context node. """ + libxml2mod.xmlXPathLocalNameFunction(self._o, nargs) + + def xpathModValues(self): + """Implement the mod operation on XPath objects: @arg1 / @arg2 + The numeric operators convert their operands to numbers as + if by calling the number function. """ + libxml2mod.xmlXPathModValues(self._o) + + def xpathMultValues(self): + """Implement the multiply operation on XPath objects: The + numeric operators convert their operands to numbers as if + by calling the number function. """ + libxml2mod.xmlXPathMultValues(self._o) + + def xpathNamespaceURIFunction(self, nargs): + """Implement the namespace-uri() XPath function string + namespace-uri(node-set?) The namespace-uri function returns + a string containing the namespace URI of the expanded name + of the node in the argument node-set that is first in + document order. If the node-set is empty, the first node + has no name, or the expanded name has no namespace URI, an + empty string is returned. If the argument is omitted it + defaults to the context node. """ + libxml2mod.xmlXPathNamespaceURIFunction(self._o, nargs) + + def xpathNextAncestor(self, cur): + """Traversal function for the "ancestor" direction the + ancestor axis contains the ancestors of the context node; + the ancestors of the context node consist of the parent of + context node and the parent's parent and so on; the nodes + are ordered in reverse document order; thus the parent is + the first node on the axis, and the parent's parent is the + second node on the axis """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextAncestor(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextAncestor() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextAncestorOrSelf(self, cur): + """Traversal function for the "ancestor-or-self" direction he + ancestor-or-self axis contains the context node and + ancestors of the context node in reverse document order; + thus the context node is the first node on the axis, and + the context node's parent the second; parent here is + defined the same as with the parent axis. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextAncestorOrSelf(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextAncestorOrSelf() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextAttribute(self, cur): + """Traversal function for the "attribute" direction TODO: + support DTD inherited default attributes """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextAttribute(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextAttribute() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextChild(self, cur): + """Traversal function for the "child" direction The child axis + contains the children of the context node in document order. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextChild(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextChild() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextDescendant(self, cur): + """Traversal function for the "descendant" direction the + descendant axis contains the descendants of the context + node in document order; a descendant is a child or a child + of a child and so on. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextDescendant(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextDescendant() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextDescendantOrSelf(self, cur): + """Traversal function for the "descendant-or-self" direction + the descendant-or-self axis contains the context node and + the descendants of the context node in document order; thus + the context node is the first node on the axis, and the + first child of the context node is the second node on the + axis """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextDescendantOrSelf(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextDescendantOrSelf() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextFollowing(self, cur): + """Traversal function for the "following" direction The + following axis contains all nodes in the same document as + the context node that are after the context node in + document order, excluding any descendants and excluding + attribute nodes and namespace nodes; the nodes are ordered + in document order """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextFollowing(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextFollowing() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextFollowingSibling(self, cur): + """Traversal function for the "following-sibling" direction + The following-sibling axis contains the following siblings + of the context node in document order. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextFollowingSibling(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextFollowingSibling() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextNamespace(self, cur): + """Traversal function for the "namespace" direction the + namespace axis contains the namespace nodes of the context + node; the order of nodes on this axis is + implementation-defined; the axis will be empty unless the + context node is an element We keep the XML namespace node + at the end of the list. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextNamespace(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextNamespace() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextParent(self, cur): + """Traversal function for the "parent" direction The parent + axis contains the parent of the context node, if there is + one. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextParent(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextParent() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextPreceding(self, cur): + """Traversal function for the "preceding" direction the + preceding axis contains all nodes in the same document as + the context node that are before the context node in + document order, excluding any ancestors and excluding + attribute nodes and namespace nodes; the nodes are ordered + in reverse document order """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextPreceding(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextPreceding() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextPrecedingSibling(self, cur): + """Traversal function for the "preceding-sibling" direction + The preceding-sibling axis contains the preceding siblings + of the context node in reverse document order; the first + preceding sibling is first on the axis; the sibling + preceding that node is the second on the axis and so on. """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextPrecedingSibling(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextPrecedingSibling() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNextSelf(self, cur): + """Traversal function for the "self" direction The self axis + contains just the context node itself """ + if cur is None: cur__o = None + else: cur__o = cur._o + ret = libxml2mod.xmlXPathNextSelf(self._o, cur__o) + if ret is None:raise xpathError('xmlXPathNextSelf() failed') + __tmp = xmlNode(_obj=ret) + return __tmp + + def xpathNormalizeFunction(self, nargs): + """Implement the normalize-space() XPath function string + normalize-space(string?) The normalize-space function + returns the argument string with white space normalized by + stripping leading and trailing whitespace and replacing + sequences of whitespace characters by a single space. + Whitespace characters are the same allowed by the S + production in XML. If the argument is omitted, it defaults + to the context node converted to a string, in other words + the value of the context node. """ + libxml2mod.xmlXPathNormalizeFunction(self._o, nargs) + + def xpathNotEqualValues(self): + """Implement the equal operation on XPath objects content: + @arg1 == @arg2 """ + ret = libxml2mod.xmlXPathNotEqualValues(self._o) + return ret + + def xpathNotFunction(self, nargs): + """Implement the not() XPath function boolean not(boolean) The + not function returns true if its argument is false, and + false otherwise. """ + libxml2mod.xmlXPathNotFunction(self._o, nargs) + + def xpathNumberFunction(self, nargs): + """Implement the number() XPath function number number(object?) """ + libxml2mod.xmlXPathNumberFunction(self._o, nargs) + + def xpathParseNCName(self): + """parse an XML namespace non qualified name. [NS 3] NCName + ::= (Letter | '_') (NCNameChar)* [NS 4] NCNameChar ::= + Letter | Digit | '.' | '-' | '_' | CombiningChar | Extender """ + ret = libxml2mod.xmlXPathParseNCName(self._o) + return ret + + def xpathParseName(self): + """parse an XML name [4] NameChar ::= Letter | Digit | '.' | + '-' | '_' | ':' | CombiningChar | Extender [5] Name ::= + (Letter | '_' | ':') (NameChar)* """ + ret = libxml2mod.xmlXPathParseName(self._o) + return ret + + def xpathPopBoolean(self): + """Pops a boolean from the stack, handling conversion if + needed. Check error with #xmlXPathCheckError. """ + ret = libxml2mod.xmlXPathPopBoolean(self._o) + return ret + + def xpathPopNumber(self): + """Pops a number from the stack, handling conversion if + needed. Check error with #xmlXPathCheckError. """ + ret = libxml2mod.xmlXPathPopNumber(self._o) + return ret + + def xpathPopString(self): + """Pops a string from the stack, handling conversion if + needed. Check error with #xmlXPathCheckError. """ + ret = libxml2mod.xmlXPathPopString(self._o) + return ret + + def xpathPositionFunction(self, nargs): + """Implement the position() XPath function number position() + The position function returns the position of the context + node in the context node list. The first position is 1, and + so the last position will be equal to last(). """ + libxml2mod.xmlXPathPositionFunction(self._o, nargs) + + def xpathRoot(self): + """Initialize the context to the root of the document """ + libxml2mod.xmlXPathRoot(self._o) + + def xpathRoundFunction(self, nargs): + """Implement the round() XPath function number round(number) + The round function returns the number that is closest to + the argument and that is an integer. If there are two such + numbers, then the one that is even is returned. """ + libxml2mod.xmlXPathRoundFunction(self._o, nargs) + + def xpathStartsWithFunction(self, nargs): + """Implement the starts-with() XPath function boolean + starts-with(string, string) The starts-with function + returns true if the first argument string starts with the + second argument string, and otherwise returns false. """ + libxml2mod.xmlXPathStartsWithFunction(self._o, nargs) + + def xpathStringFunction(self, nargs): + """Implement the string() XPath function string + string(object?) The string function converts an object to a + string as follows: - A node-set is converted to a string by + returning the value of the node in the node-set that is + first in document order. If the node-set is empty, an empty + string is returned. - A number is converted to a string as + follows + NaN is converted to the string NaN + positive + zero is converted to the string 0 + negative zero is + converted to the string 0 + positive infinity is converted + to the string Infinity + negative infinity is converted to + the string -Infinity + if the number is an integer, the + number is represented in decimal form as a Number with no + decimal point and no leading zeros, preceded by a minus + sign (-) if the number is negative + otherwise, the number + is represented in decimal form as a Number including a + decimal point with at least one digit before the decimal + point and at least one digit after the decimal point, + preceded by a minus sign (-) if the number is negative; + there must be no leading zeros before the decimal point + apart possibly from the one required digit immediately + before the decimal point; beyond the one required digit + after the decimal point there must be as many, but only as + many, more digits as are needed to uniquely distinguish the + number from all other IEEE 754 numeric values. - The + boolean false value is converted to the string false. The + boolean true value is converted to the string true. If the + argument is omitted, it defaults to a node-set with the + context node as its only member. """ + libxml2mod.xmlXPathStringFunction(self._o, nargs) + + def xpathStringLengthFunction(self, nargs): + """Implement the string-length() XPath function number + string-length(string?) The string-length returns the number + of characters in the string (see [3.6 Strings]). If the + argument is omitted, it defaults to the context node + converted to a string, in other words the value of the + context node. """ + libxml2mod.xmlXPathStringLengthFunction(self._o, nargs) + + def xpathSubValues(self): + """Implement the subtraction operation on XPath objects: The + numeric operators convert their operands to numbers as if + by calling the number function. """ + libxml2mod.xmlXPathSubValues(self._o) + + def xpathSubstringAfterFunction(self, nargs): + """Implement the substring-after() XPath function string + substring-after(string, string) The substring-after + function returns the substring of the first argument string + that follows the first occurrence of the second argument + string in the first argument string, or the empty stringi + if the first argument string does not contain the second + argument string. For example, + substring-after("1999/04/01","/") returns 04/01, and + substring-after("1999/04/01","19") returns 99/04/01. """ + libxml2mod.xmlXPathSubstringAfterFunction(self._o, nargs) + + def xpathSubstringBeforeFunction(self, nargs): + """Implement the substring-before() XPath function string + substring-before(string, string) The substring-before + function returns the substring of the first argument string + that precedes the first occurrence of the second argument + string in the first argument string, or the empty string if + the first argument string does not contain the second + argument string. For example, + substring-before("1999/04/01","/") returns 1999. """ + libxml2mod.xmlXPathSubstringBeforeFunction(self._o, nargs) + + def xpathSubstringFunction(self, nargs): + """Implement the substring() XPath function string + substring(string, number, number?) The substring function + returns the substring of the first argument starting at the + position specified in the second argument with length + specified in the third argument. For example, + substring("12345",2,3) returns "234". If the third argument + is not specified, it returns the substring starting at the + position specified in the second argument and continuing to + the end of the string. For example, substring("12345",2) + returns "2345". More precisely, each character in the + string (see [3.6 Strings]) is considered to have a numeric + position: the position of the first character is 1, the + position of the second character is 2 and so on. The + returned substring contains those characters for which the + position of the character is greater than or equal to the + second argument and, if the third argument is specified, + less than the sum of the second and third arguments; the + comparisons and addition used for the above follow the + standard IEEE 754 rules. Thus: - substring("12345", 1.5, + 2.6) returns "234" - substring("12345", 0, 3) returns "12" + - substring("12345", 0 div 0, 3) returns "" - + substring("12345", 1, 0 div 0) returns "" - + substring("12345", -42, 1 div 0) returns "12345" - + substring("12345", -1 div 0, 1 div 0) returns "" """ + libxml2mod.xmlXPathSubstringFunction(self._o, nargs) + + def xpathSumFunction(self, nargs): + """Implement the sum() XPath function number sum(node-set) The + sum function returns the sum of the values of the nodes in + the argument node-set. """ + libxml2mod.xmlXPathSumFunction(self._o, nargs) + + def xpathTranslateFunction(self, nargs): + """Implement the translate() XPath function string + translate(string, string, string) The translate function + returns the first argument string with occurrences of + characters in the second argument string replaced by the + character at the corresponding position in the third + argument string. For example, translate("bar","abc","ABC") + returns the string BAr. If there is a character in the + second argument string with no character at a corresponding + position in the third argument string (because the second + argument string is longer than the third argument string), + then occurrences of that character in the first argument + string are removed. For example, + translate("--aaa--","abc-","ABC") """ + libxml2mod.xmlXPathTranslateFunction(self._o, nargs) + + def xpathTrueFunction(self, nargs): + """Implement the true() XPath function boolean true() """ + libxml2mod.xmlXPathTrueFunction(self._o, nargs) + + def xpathValueFlipSign(self): + """Implement the unary - operation on an XPath object The + numeric operators convert their operands to numbers as if + by calling the number function. """ + libxml2mod.xmlXPathValueFlipSign(self._o) + + def xpatherror(self, file, line, no): + """Formats an error message. """ + libxml2mod.xmlXPatherror(self._o, file, line, no) + + # + # xpathParserContext functions from module xpointer + # + + def xpointerEvalRangePredicate(self): + """[8] Predicate ::= '[' PredicateExpr ']' [9] + PredicateExpr ::= Expr Evaluate a predicate as in + xmlXPathEvalPredicate() but for a Location Set instead of a + node set """ + libxml2mod.xmlXPtrEvalRangePredicate(self._o) + + def xpointerRangeToFunction(self, nargs): + """Implement the range-to() XPointer function """ + libxml2mod.xmlXPtrRangeToFunction(self._o, nargs) + +# xlinkShow +XLINK_SHOW_NONE = 0 +XLINK_SHOW_NEW = 1 +XLINK_SHOW_EMBED = 2 +XLINK_SHOW_REPLACE = 3 + +# xmlRelaxNGParserFlag +XML_RELAXNGP_NONE = 0 +XML_RELAXNGP_FREE_DOC = 1 +XML_RELAXNGP_CRNG = 2 + +# xmlBufferAllocationScheme +XML_BUFFER_ALLOC_DOUBLEIT = 1 +XML_BUFFER_ALLOC_EXACT = 2 +XML_BUFFER_ALLOC_IMMUTABLE = 3 +XML_BUFFER_ALLOC_IO = 4 +XML_BUFFER_ALLOC_HYBRID = 5 + +# xmlParserSeverities +XML_PARSER_SEVERITY_VALIDITY_WARNING = 1 +XML_PARSER_SEVERITY_VALIDITY_ERROR = 2 +XML_PARSER_SEVERITY_WARNING = 3 +XML_PARSER_SEVERITY_ERROR = 4 + +# xmlAttributeDefault +XML_ATTRIBUTE_NONE = 1 +XML_ATTRIBUTE_REQUIRED = 2 +XML_ATTRIBUTE_IMPLIED = 3 +XML_ATTRIBUTE_FIXED = 4 + +# xmlSchemaValType +XML_SCHEMAS_UNKNOWN = 0 +XML_SCHEMAS_STRING = 1 +XML_SCHEMAS_NORMSTRING = 2 +XML_SCHEMAS_DECIMAL = 3 +XML_SCHEMAS_TIME = 4 +XML_SCHEMAS_GDAY = 5 +XML_SCHEMAS_GMONTH = 6 +XML_SCHEMAS_GMONTHDAY = 7 +XML_SCHEMAS_GYEAR = 8 +XML_SCHEMAS_GYEARMONTH = 9 +XML_SCHEMAS_DATE = 10 +XML_SCHEMAS_DATETIME = 11 +XML_SCHEMAS_DURATION = 12 +XML_SCHEMAS_FLOAT = 13 +XML_SCHEMAS_DOUBLE = 14 +XML_SCHEMAS_BOOLEAN = 15 +XML_SCHEMAS_TOKEN = 16 +XML_SCHEMAS_LANGUAGE = 17 +XML_SCHEMAS_NMTOKEN = 18 +XML_SCHEMAS_NMTOKENS = 19 +XML_SCHEMAS_NAME = 20 +XML_SCHEMAS_QNAME = 21 +XML_SCHEMAS_NCNAME = 22 +XML_SCHEMAS_ID = 23 +XML_SCHEMAS_IDREF = 24 +XML_SCHEMAS_IDREFS = 25 +XML_SCHEMAS_ENTITY = 26 +XML_SCHEMAS_ENTITIES = 27 +XML_SCHEMAS_NOTATION = 28 +XML_SCHEMAS_ANYURI = 29 +XML_SCHEMAS_INTEGER = 30 +XML_SCHEMAS_NPINTEGER = 31 +XML_SCHEMAS_NINTEGER = 32 +XML_SCHEMAS_NNINTEGER = 33 +XML_SCHEMAS_PINTEGER = 34 +XML_SCHEMAS_INT = 35 +XML_SCHEMAS_UINT = 36 +XML_SCHEMAS_LONG = 37 +XML_SCHEMAS_ULONG = 38 +XML_SCHEMAS_SHORT = 39 +XML_SCHEMAS_USHORT = 40 +XML_SCHEMAS_BYTE = 41 +XML_SCHEMAS_UBYTE = 42 +XML_SCHEMAS_HEXBINARY = 43 +XML_SCHEMAS_BASE64BINARY = 44 +XML_SCHEMAS_ANYTYPE = 45 +XML_SCHEMAS_ANYSIMPLETYPE = 46 + +# xmlParserInputState +XML_PARSER_EOF = -1 +XML_PARSER_START = 0 +XML_PARSER_MISC = 1 +XML_PARSER_PI = 2 +XML_PARSER_DTD = 3 +XML_PARSER_PROLOG = 4 +XML_PARSER_COMMENT = 5 +XML_PARSER_START_TAG = 6 +XML_PARSER_CONTENT = 7 +XML_PARSER_CDATA_SECTION = 8 +XML_PARSER_END_TAG = 9 +XML_PARSER_ENTITY_DECL = 10 +XML_PARSER_ENTITY_VALUE = 11 +XML_PARSER_ATTRIBUTE_VALUE = 12 +XML_PARSER_SYSTEM_LITERAL = 13 +XML_PARSER_EPILOG = 14 +XML_PARSER_IGNORE = 15 +XML_PARSER_PUBLIC_LITERAL = 16 + +# xmlEntityType +XML_INTERNAL_GENERAL_ENTITY = 1 +XML_EXTERNAL_GENERAL_PARSED_ENTITY = 2 +XML_EXTERNAL_GENERAL_UNPARSED_ENTITY = 3 +XML_INTERNAL_PARAMETER_ENTITY = 4 +XML_EXTERNAL_PARAMETER_ENTITY = 5 +XML_INTERNAL_PREDEFINED_ENTITY = 6 + +# xmlSaveOption +XML_SAVE_FORMAT = 1 +XML_SAVE_NO_DECL = 2 +XML_SAVE_NO_EMPTY = 4 +XML_SAVE_NO_XHTML = 8 +XML_SAVE_XHTML = 16 +XML_SAVE_AS_XML = 32 +XML_SAVE_AS_HTML = 64 +XML_SAVE_WSNONSIG = 128 + +# xmlPatternFlags +XML_PATTERN_DEFAULT = 0 +XML_PATTERN_XPATH = 1 +XML_PATTERN_XSSEL = 2 +XML_PATTERN_XSFIELD = 4 + +# xmlParserErrors +XML_ERR_OK = 0 +XML_ERR_INTERNAL_ERROR = 1 +XML_ERR_NO_MEMORY = 2 +XML_ERR_DOCUMENT_START = 3 +XML_ERR_DOCUMENT_EMPTY = 4 +XML_ERR_DOCUMENT_END = 5 +XML_ERR_INVALID_HEX_CHARREF = 6 +XML_ERR_INVALID_DEC_CHARREF = 7 +XML_ERR_INVALID_CHARREF = 8 +XML_ERR_INVALID_CHAR = 9 +XML_ERR_CHARREF_AT_EOF = 10 +XML_ERR_CHARREF_IN_PROLOG = 11 +XML_ERR_CHARREF_IN_EPILOG = 12 +XML_ERR_CHARREF_IN_DTD = 13 +XML_ERR_ENTITYREF_AT_EOF = 14 +XML_ERR_ENTITYREF_IN_PROLOG = 15 +XML_ERR_ENTITYREF_IN_EPILOG = 16 +XML_ERR_ENTITYREF_IN_DTD = 17 +XML_ERR_PEREF_AT_EOF = 18 +XML_ERR_PEREF_IN_PROLOG = 19 +XML_ERR_PEREF_IN_EPILOG = 20 +XML_ERR_PEREF_IN_INT_SUBSET = 21 +XML_ERR_ENTITYREF_NO_NAME = 22 +XML_ERR_ENTITYREF_SEMICOL_MISSING = 23 +XML_ERR_PEREF_NO_NAME = 24 +XML_ERR_PEREF_SEMICOL_MISSING = 25 +XML_ERR_UNDECLARED_ENTITY = 26 +XML_WAR_UNDECLARED_ENTITY = 27 +XML_ERR_UNPARSED_ENTITY = 28 +XML_ERR_ENTITY_IS_EXTERNAL = 29 +XML_ERR_ENTITY_IS_PARAMETER = 30 +XML_ERR_UNKNOWN_ENCODING = 31 +XML_ERR_UNSUPPORTED_ENCODING = 32 +XML_ERR_STRING_NOT_STARTED = 33 +XML_ERR_STRING_NOT_CLOSED = 34 +XML_ERR_NS_DECL_ERROR = 35 +XML_ERR_ENTITY_NOT_STARTED = 36 +XML_ERR_ENTITY_NOT_FINISHED = 37 +XML_ERR_LT_IN_ATTRIBUTE = 38 +XML_ERR_ATTRIBUTE_NOT_STARTED = 39 +XML_ERR_ATTRIBUTE_NOT_FINISHED = 40 +XML_ERR_ATTRIBUTE_WITHOUT_VALUE = 41 +XML_ERR_ATTRIBUTE_REDEFINED = 42 +XML_ERR_LITERAL_NOT_STARTED = 43 +XML_ERR_LITERAL_NOT_FINISHED = 44 +XML_ERR_COMMENT_NOT_FINISHED = 45 +XML_ERR_PI_NOT_STARTED = 46 +XML_ERR_PI_NOT_FINISHED = 47 +XML_ERR_NOTATION_NOT_STARTED = 48 +XML_ERR_NOTATION_NOT_FINISHED = 49 +XML_ERR_ATTLIST_NOT_STARTED = 50 +XML_ERR_ATTLIST_NOT_FINISHED = 51 +XML_ERR_MIXED_NOT_STARTED = 52 +XML_ERR_MIXED_NOT_FINISHED = 53 +XML_ERR_ELEMCONTENT_NOT_STARTED = 54 +XML_ERR_ELEMCONTENT_NOT_FINISHED = 55 +XML_ERR_XMLDECL_NOT_STARTED = 56 +XML_ERR_XMLDECL_NOT_FINISHED = 57 +XML_ERR_CONDSEC_NOT_STARTED = 58 +XML_ERR_CONDSEC_NOT_FINISHED = 59 +XML_ERR_EXT_SUBSET_NOT_FINISHED = 60 +XML_ERR_DOCTYPE_NOT_FINISHED = 61 +XML_ERR_MISPLACED_CDATA_END = 62 +XML_ERR_CDATA_NOT_FINISHED = 63 +XML_ERR_RESERVED_XML_NAME = 64 +XML_ERR_SPACE_REQUIRED = 65 +XML_ERR_SEPARATOR_REQUIRED = 66 +XML_ERR_NMTOKEN_REQUIRED = 67 +XML_ERR_NAME_REQUIRED = 68 +XML_ERR_PCDATA_REQUIRED = 69 +XML_ERR_URI_REQUIRED = 70 +XML_ERR_PUBID_REQUIRED = 71 +XML_ERR_LT_REQUIRED = 72 +XML_ERR_GT_REQUIRED = 73 +XML_ERR_LTSLASH_REQUIRED = 74 +XML_ERR_EQUAL_REQUIRED = 75 +XML_ERR_TAG_NAME_MISMATCH = 76 +XML_ERR_TAG_NOT_FINISHED = 77 +XML_ERR_STANDALONE_VALUE = 78 +XML_ERR_ENCODING_NAME = 79 +XML_ERR_HYPHEN_IN_COMMENT = 80 +XML_ERR_INVALID_ENCODING = 81 +XML_ERR_EXT_ENTITY_STANDALONE = 82 +XML_ERR_CONDSEC_INVALID = 83 +XML_ERR_VALUE_REQUIRED = 84 +XML_ERR_NOT_WELL_BALANCED = 85 +XML_ERR_EXTRA_CONTENT = 86 +XML_ERR_ENTITY_CHAR_ERROR = 87 +XML_ERR_ENTITY_PE_INTERNAL = 88 +XML_ERR_ENTITY_LOOP = 89 +XML_ERR_ENTITY_BOUNDARY = 90 +XML_ERR_INVALID_URI = 91 +XML_ERR_URI_FRAGMENT = 92 +XML_WAR_CATALOG_PI = 93 +XML_ERR_NO_DTD = 94 +XML_ERR_CONDSEC_INVALID_KEYWORD = 95 +XML_ERR_VERSION_MISSING = 96 +XML_WAR_UNKNOWN_VERSION = 97 +XML_WAR_LANG_VALUE = 98 +XML_WAR_NS_URI = 99 +XML_WAR_NS_URI_RELATIVE = 100 +XML_ERR_MISSING_ENCODING = 101 +XML_WAR_SPACE_VALUE = 102 +XML_ERR_NOT_STANDALONE = 103 +XML_ERR_ENTITY_PROCESSING = 104 +XML_ERR_NOTATION_PROCESSING = 105 +XML_WAR_NS_COLUMN = 106 +XML_WAR_ENTITY_REDEFINED = 107 +XML_ERR_UNKNOWN_VERSION = 108 +XML_ERR_VERSION_MISMATCH = 109 +XML_ERR_NAME_TOO_LONG = 110 +XML_NS_ERR_XML_NAMESPACE = 200 +XML_NS_ERR_UNDEFINED_NAMESPACE = 201 +XML_NS_ERR_QNAME = 202 +XML_NS_ERR_ATTRIBUTE_REDEFINED = 203 +XML_NS_ERR_EMPTY = 204 +XML_NS_ERR_COLON = 205 +XML_DTD_ATTRIBUTE_DEFAULT = 500 +XML_DTD_ATTRIBUTE_REDEFINED = 501 +XML_DTD_ATTRIBUTE_VALUE = 502 +XML_DTD_CONTENT_ERROR = 503 +XML_DTD_CONTENT_MODEL = 504 +XML_DTD_CONTENT_NOT_DETERMINIST = 505 +XML_DTD_DIFFERENT_PREFIX = 506 +XML_DTD_ELEM_DEFAULT_NAMESPACE = 507 +XML_DTD_ELEM_NAMESPACE = 508 +XML_DTD_ELEM_REDEFINED = 509 +XML_DTD_EMPTY_NOTATION = 510 +XML_DTD_ENTITY_TYPE = 511 +XML_DTD_ID_FIXED = 512 +XML_DTD_ID_REDEFINED = 513 +XML_DTD_ID_SUBSET = 514 +XML_DTD_INVALID_CHILD = 515 +XML_DTD_INVALID_DEFAULT = 516 +XML_DTD_LOAD_ERROR = 517 +XML_DTD_MISSING_ATTRIBUTE = 518 +XML_DTD_MIXED_CORRUPT = 519 +XML_DTD_MULTIPLE_ID = 520 +XML_DTD_NO_DOC = 521 +XML_DTD_NO_DTD = 522 +XML_DTD_NO_ELEM_NAME = 523 +XML_DTD_NO_PREFIX = 524 +XML_DTD_NO_ROOT = 525 +XML_DTD_NOTATION_REDEFINED = 526 +XML_DTD_NOTATION_VALUE = 527 +XML_DTD_NOT_EMPTY = 528 +XML_DTD_NOT_PCDATA = 529 +XML_DTD_NOT_STANDALONE = 530 +XML_DTD_ROOT_NAME = 531 +XML_DTD_STANDALONE_WHITE_SPACE = 532 +XML_DTD_UNKNOWN_ATTRIBUTE = 533 +XML_DTD_UNKNOWN_ELEM = 534 +XML_DTD_UNKNOWN_ENTITY = 535 +XML_DTD_UNKNOWN_ID = 536 +XML_DTD_UNKNOWN_NOTATION = 537 +XML_DTD_STANDALONE_DEFAULTED = 538 +XML_DTD_XMLID_VALUE = 539 +XML_DTD_XMLID_TYPE = 540 +XML_DTD_DUP_TOKEN = 541 +XML_HTML_STRUCURE_ERROR = 800 +XML_HTML_UNKNOWN_TAG = 801 +XML_RNGP_ANYNAME_ATTR_ANCESTOR = 1000 +XML_RNGP_ATTR_CONFLICT = 1001 +XML_RNGP_ATTRIBUTE_CHILDREN = 1002 +XML_RNGP_ATTRIBUTE_CONTENT = 1003 +XML_RNGP_ATTRIBUTE_EMPTY = 1004 +XML_RNGP_ATTRIBUTE_NOOP = 1005 +XML_RNGP_CHOICE_CONTENT = 1006 +XML_RNGP_CHOICE_EMPTY = 1007 +XML_RNGP_CREATE_FAILURE = 1008 +XML_RNGP_DATA_CONTENT = 1009 +XML_RNGP_DEF_CHOICE_AND_INTERLEAVE = 1010 +XML_RNGP_DEFINE_CREATE_FAILED = 1011 +XML_RNGP_DEFINE_EMPTY = 1012 +XML_RNGP_DEFINE_MISSING = 1013 +XML_RNGP_DEFINE_NAME_MISSING = 1014 +XML_RNGP_ELEM_CONTENT_EMPTY = 1015 +XML_RNGP_ELEM_CONTENT_ERROR = 1016 +XML_RNGP_ELEMENT_EMPTY = 1017 +XML_RNGP_ELEMENT_CONTENT = 1018 +XML_RNGP_ELEMENT_NAME = 1019 +XML_RNGP_ELEMENT_NO_CONTENT = 1020 +XML_RNGP_ELEM_TEXT_CONFLICT = 1021 +XML_RNGP_EMPTY = 1022 +XML_RNGP_EMPTY_CONSTRUCT = 1023 +XML_RNGP_EMPTY_CONTENT = 1024 +XML_RNGP_EMPTY_NOT_EMPTY = 1025 +XML_RNGP_ERROR_TYPE_LIB = 1026 +XML_RNGP_EXCEPT_EMPTY = 1027 +XML_RNGP_EXCEPT_MISSING = 1028 +XML_RNGP_EXCEPT_MULTIPLE = 1029 +XML_RNGP_EXCEPT_NO_CONTENT = 1030 +XML_RNGP_EXTERNALREF_EMTPY = 1031 +XML_RNGP_EXTERNAL_REF_FAILURE = 1032 +XML_RNGP_EXTERNALREF_RECURSE = 1033 +XML_RNGP_FORBIDDEN_ATTRIBUTE = 1034 +XML_RNGP_FOREIGN_ELEMENT = 1035 +XML_RNGP_GRAMMAR_CONTENT = 1036 +XML_RNGP_GRAMMAR_EMPTY = 1037 +XML_RNGP_GRAMMAR_MISSING = 1038 +XML_RNGP_GRAMMAR_NO_START = 1039 +XML_RNGP_GROUP_ATTR_CONFLICT = 1040 +XML_RNGP_HREF_ERROR = 1041 +XML_RNGP_INCLUDE_EMPTY = 1042 +XML_RNGP_INCLUDE_FAILURE = 1043 +XML_RNGP_INCLUDE_RECURSE = 1044 +XML_RNGP_INTERLEAVE_ADD = 1045 +XML_RNGP_INTERLEAVE_CREATE_FAILED = 1046 +XML_RNGP_INTERLEAVE_EMPTY = 1047 +XML_RNGP_INTERLEAVE_NO_CONTENT = 1048 +XML_RNGP_INVALID_DEFINE_NAME = 1049 +XML_RNGP_INVALID_URI = 1050 +XML_RNGP_INVALID_VALUE = 1051 +XML_RNGP_MISSING_HREF = 1052 +XML_RNGP_NAME_MISSING = 1053 +XML_RNGP_NEED_COMBINE = 1054 +XML_RNGP_NOTALLOWED_NOT_EMPTY = 1055 +XML_RNGP_NSNAME_ATTR_ANCESTOR = 1056 +XML_RNGP_NSNAME_NO_NS = 1057 +XML_RNGP_PARAM_FORBIDDEN = 1058 +XML_RNGP_PARAM_NAME_MISSING = 1059 +XML_RNGP_PARENTREF_CREATE_FAILED = 1060 +XML_RNGP_PARENTREF_NAME_INVALID = 1061 +XML_RNGP_PARENTREF_NO_NAME = 1062 +XML_RNGP_PARENTREF_NO_PARENT = 1063 +XML_RNGP_PARENTREF_NOT_EMPTY = 1064 +XML_RNGP_PARSE_ERROR = 1065 +XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME = 1066 +XML_RNGP_PAT_ATTR_ATTR = 1067 +XML_RNGP_PAT_ATTR_ELEM = 1068 +XML_RNGP_PAT_DATA_EXCEPT_ATTR = 1069 +XML_RNGP_PAT_DATA_EXCEPT_ELEM = 1070 +XML_RNGP_PAT_DATA_EXCEPT_EMPTY = 1071 +XML_RNGP_PAT_DATA_EXCEPT_GROUP = 1072 +XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE = 1073 +XML_RNGP_PAT_DATA_EXCEPT_LIST = 1074 +XML_RNGP_PAT_DATA_EXCEPT_ONEMORE = 1075 +XML_RNGP_PAT_DATA_EXCEPT_REF = 1076 +XML_RNGP_PAT_DATA_EXCEPT_TEXT = 1077 +XML_RNGP_PAT_LIST_ATTR = 1078 +XML_RNGP_PAT_LIST_ELEM = 1079 +XML_RNGP_PAT_LIST_INTERLEAVE = 1080 +XML_RNGP_PAT_LIST_LIST = 1081 +XML_RNGP_PAT_LIST_REF = 1082 +XML_RNGP_PAT_LIST_TEXT = 1083 +XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME = 1084 +XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME = 1085 +XML_RNGP_PAT_ONEMORE_GROUP_ATTR = 1086 +XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR = 1087 +XML_RNGP_PAT_START_ATTR = 1088 +XML_RNGP_PAT_START_DATA = 1089 +XML_RNGP_PAT_START_EMPTY = 1090 +XML_RNGP_PAT_START_GROUP = 1091 +XML_RNGP_PAT_START_INTERLEAVE = 1092 +XML_RNGP_PAT_START_LIST = 1093 +XML_RNGP_PAT_START_ONEMORE = 1094 +XML_RNGP_PAT_START_TEXT = 1095 +XML_RNGP_PAT_START_VALUE = 1096 +XML_RNGP_PREFIX_UNDEFINED = 1097 +XML_RNGP_REF_CREATE_FAILED = 1098 +XML_RNGP_REF_CYCLE = 1099 +XML_RNGP_REF_NAME_INVALID = 1100 +XML_RNGP_REF_NO_DEF = 1101 +XML_RNGP_REF_NO_NAME = 1102 +XML_RNGP_REF_NOT_EMPTY = 1103 +XML_RNGP_START_CHOICE_AND_INTERLEAVE = 1104 +XML_RNGP_START_CONTENT = 1105 +XML_RNGP_START_EMPTY = 1106 +XML_RNGP_START_MISSING = 1107 +XML_RNGP_TEXT_EXPECTED = 1108 +XML_RNGP_TEXT_HAS_CHILD = 1109 +XML_RNGP_TYPE_MISSING = 1110 +XML_RNGP_TYPE_NOT_FOUND = 1111 +XML_RNGP_TYPE_VALUE = 1112 +XML_RNGP_UNKNOWN_ATTRIBUTE = 1113 +XML_RNGP_UNKNOWN_COMBINE = 1114 +XML_RNGP_UNKNOWN_CONSTRUCT = 1115 +XML_RNGP_UNKNOWN_TYPE_LIB = 1116 +XML_RNGP_URI_FRAGMENT = 1117 +XML_RNGP_URI_NOT_ABSOLUTE = 1118 +XML_RNGP_VALUE_EMPTY = 1119 +XML_RNGP_VALUE_NO_CONTENT = 1120 +XML_RNGP_XMLNS_NAME = 1121 +XML_RNGP_XML_NS = 1122 +XML_XPATH_EXPRESSION_OK = 1200 +XML_XPATH_NUMBER_ERROR = 1201 +XML_XPATH_UNFINISHED_LITERAL_ERROR = 1202 +XML_XPATH_START_LITERAL_ERROR = 1203 +XML_XPATH_VARIABLE_REF_ERROR = 1204 +XML_XPATH_UNDEF_VARIABLE_ERROR = 1205 +XML_XPATH_INVALID_PREDICATE_ERROR = 1206 +XML_XPATH_EXPR_ERROR = 1207 +XML_XPATH_UNCLOSED_ERROR = 1208 +XML_XPATH_UNKNOWN_FUNC_ERROR = 1209 +XML_XPATH_INVALID_OPERAND = 1210 +XML_XPATH_INVALID_TYPE = 1211 +XML_XPATH_INVALID_ARITY = 1212 +XML_XPATH_INVALID_CTXT_SIZE = 1213 +XML_XPATH_INVALID_CTXT_POSITION = 1214 +XML_XPATH_MEMORY_ERROR = 1215 +XML_XPTR_SYNTAX_ERROR = 1216 +XML_XPTR_RESOURCE_ERROR = 1217 +XML_XPTR_SUB_RESOURCE_ERROR = 1218 +XML_XPATH_UNDEF_PREFIX_ERROR = 1219 +XML_XPATH_ENCODING_ERROR = 1220 +XML_XPATH_INVALID_CHAR_ERROR = 1221 +XML_TREE_INVALID_HEX = 1300 +XML_TREE_INVALID_DEC = 1301 +XML_TREE_UNTERMINATED_ENTITY = 1302 +XML_TREE_NOT_UTF8 = 1303 +XML_SAVE_NOT_UTF8 = 1400 +XML_SAVE_CHAR_INVALID = 1401 +XML_SAVE_NO_DOCTYPE = 1402 +XML_SAVE_UNKNOWN_ENCODING = 1403 +XML_REGEXP_COMPILE_ERROR = 1450 +XML_IO_UNKNOWN = 1500 +XML_IO_EACCES = 1501 +XML_IO_EAGAIN = 1502 +XML_IO_EBADF = 1503 +XML_IO_EBADMSG = 1504 +XML_IO_EBUSY = 1505 +XML_IO_ECANCELED = 1506 +XML_IO_ECHILD = 1507 +XML_IO_EDEADLK = 1508 +XML_IO_EDOM = 1509 +XML_IO_EEXIST = 1510 +XML_IO_EFAULT = 1511 +XML_IO_EFBIG = 1512 +XML_IO_EINPROGRESS = 1513 +XML_IO_EINTR = 1514 +XML_IO_EINVAL = 1515 +XML_IO_EIO = 1516 +XML_IO_EISDIR = 1517 +XML_IO_EMFILE = 1518 +XML_IO_EMLINK = 1519 +XML_IO_EMSGSIZE = 1520 +XML_IO_ENAMETOOLONG = 1521 +XML_IO_ENFILE = 1522 +XML_IO_ENODEV = 1523 +XML_IO_ENOENT = 1524 +XML_IO_ENOEXEC = 1525 +XML_IO_ENOLCK = 1526 +XML_IO_ENOMEM = 1527 +XML_IO_ENOSPC = 1528 +XML_IO_ENOSYS = 1529 +XML_IO_ENOTDIR = 1530 +XML_IO_ENOTEMPTY = 1531 +XML_IO_ENOTSUP = 1532 +XML_IO_ENOTTY = 1533 +XML_IO_ENXIO = 1534 +XML_IO_EPERM = 1535 +XML_IO_EPIPE = 1536 +XML_IO_ERANGE = 1537 +XML_IO_EROFS = 1538 +XML_IO_ESPIPE = 1539 +XML_IO_ESRCH = 1540 +XML_IO_ETIMEDOUT = 1541 +XML_IO_EXDEV = 1542 +XML_IO_NETWORK_ATTEMPT = 1543 +XML_IO_ENCODER = 1544 +XML_IO_FLUSH = 1545 +XML_IO_WRITE = 1546 +XML_IO_NO_INPUT = 1547 +XML_IO_BUFFER_FULL = 1548 +XML_IO_LOAD_ERROR = 1549 +XML_IO_ENOTSOCK = 1550 +XML_IO_EISCONN = 1551 +XML_IO_ECONNREFUSED = 1552 +XML_IO_ENETUNREACH = 1553 +XML_IO_EADDRINUSE = 1554 +XML_IO_EALREADY = 1555 +XML_IO_EAFNOSUPPORT = 1556 +XML_XINCLUDE_RECURSION = 1600 +XML_XINCLUDE_PARSE_VALUE = 1601 +XML_XINCLUDE_ENTITY_DEF_MISMATCH = 1602 +XML_XINCLUDE_NO_HREF = 1603 +XML_XINCLUDE_NO_FALLBACK = 1604 +XML_XINCLUDE_HREF_URI = 1605 +XML_XINCLUDE_TEXT_FRAGMENT = 1606 +XML_XINCLUDE_TEXT_DOCUMENT = 1607 +XML_XINCLUDE_INVALID_CHAR = 1608 +XML_XINCLUDE_BUILD_FAILED = 1609 +XML_XINCLUDE_UNKNOWN_ENCODING = 1610 +XML_XINCLUDE_MULTIPLE_ROOT = 1611 +XML_XINCLUDE_XPTR_FAILED = 1612 +XML_XINCLUDE_XPTR_RESULT = 1613 +XML_XINCLUDE_INCLUDE_IN_INCLUDE = 1614 +XML_XINCLUDE_FALLBACKS_IN_INCLUDE = 1615 +XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE = 1616 +XML_XINCLUDE_DEPRECATED_NS = 1617 +XML_XINCLUDE_FRAGMENT_ID = 1618 +XML_CATALOG_MISSING_ATTR = 1650 +XML_CATALOG_ENTRY_BROKEN = 1651 +XML_CATALOG_PREFER_VALUE = 1652 +XML_CATALOG_NOT_CATALOG = 1653 +XML_CATALOG_RECURSION = 1654 +XML_SCHEMAP_PREFIX_UNDEFINED = 1700 +XML_SCHEMAP_ATTRFORMDEFAULT_VALUE = 1701 +XML_SCHEMAP_ATTRGRP_NONAME_NOREF = 1702 +XML_SCHEMAP_ATTR_NONAME_NOREF = 1703 +XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF = 1704 +XML_SCHEMAP_ELEMFORMDEFAULT_VALUE = 1705 +XML_SCHEMAP_ELEM_NONAME_NOREF = 1706 +XML_SCHEMAP_EXTENSION_NO_BASE = 1707 +XML_SCHEMAP_FACET_NO_VALUE = 1708 +XML_SCHEMAP_FAILED_BUILD_IMPORT = 1709 +XML_SCHEMAP_GROUP_NONAME_NOREF = 1710 +XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI = 1711 +XML_SCHEMAP_IMPORT_REDEFINE_NSNAME = 1712 +XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI = 1713 +XML_SCHEMAP_INVALID_BOOLEAN = 1714 +XML_SCHEMAP_INVALID_ENUM = 1715 +XML_SCHEMAP_INVALID_FACET = 1716 +XML_SCHEMAP_INVALID_FACET_VALUE = 1717 +XML_SCHEMAP_INVALID_MAXOCCURS = 1718 +XML_SCHEMAP_INVALID_MINOCCURS = 1719 +XML_SCHEMAP_INVALID_REF_AND_SUBTYPE = 1720 +XML_SCHEMAP_INVALID_WHITE_SPACE = 1721 +XML_SCHEMAP_NOATTR_NOREF = 1722 +XML_SCHEMAP_NOTATION_NO_NAME = 1723 +XML_SCHEMAP_NOTYPE_NOREF = 1724 +XML_SCHEMAP_REF_AND_SUBTYPE = 1725 +XML_SCHEMAP_RESTRICTION_NONAME_NOREF = 1726 +XML_SCHEMAP_SIMPLETYPE_NONAME = 1727 +XML_SCHEMAP_TYPE_AND_SUBTYPE = 1728 +XML_SCHEMAP_UNKNOWN_ALL_CHILD = 1729 +XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD = 1730 +XML_SCHEMAP_UNKNOWN_ATTR_CHILD = 1731 +XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD = 1732 +XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP = 1733 +XML_SCHEMAP_UNKNOWN_BASE_TYPE = 1734 +XML_SCHEMAP_UNKNOWN_CHOICE_CHILD = 1735 +XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD = 1736 +XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD = 1737 +XML_SCHEMAP_UNKNOWN_ELEM_CHILD = 1738 +XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD = 1739 +XML_SCHEMAP_UNKNOWN_FACET_CHILD = 1740 +XML_SCHEMAP_UNKNOWN_FACET_TYPE = 1741 +XML_SCHEMAP_UNKNOWN_GROUP_CHILD = 1742 +XML_SCHEMAP_UNKNOWN_IMPORT_CHILD = 1743 +XML_SCHEMAP_UNKNOWN_LIST_CHILD = 1744 +XML_SCHEMAP_UNKNOWN_NOTATION_CHILD = 1745 +XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD = 1746 +XML_SCHEMAP_UNKNOWN_REF = 1747 +XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD = 1748 +XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD = 1749 +XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD = 1750 +XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD = 1751 +XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD = 1752 +XML_SCHEMAP_UNKNOWN_TYPE = 1753 +XML_SCHEMAP_UNKNOWN_UNION_CHILD = 1754 +XML_SCHEMAP_ELEM_DEFAULT_FIXED = 1755 +XML_SCHEMAP_REGEXP_INVALID = 1756 +XML_SCHEMAP_FAILED_LOAD = 1757 +XML_SCHEMAP_NOTHING_TO_PARSE = 1758 +XML_SCHEMAP_NOROOT = 1759 +XML_SCHEMAP_REDEFINED_GROUP = 1760 +XML_SCHEMAP_REDEFINED_TYPE = 1761 +XML_SCHEMAP_REDEFINED_ELEMENT = 1762 +XML_SCHEMAP_REDEFINED_ATTRGROUP = 1763 +XML_SCHEMAP_REDEFINED_ATTR = 1764 +XML_SCHEMAP_REDEFINED_NOTATION = 1765 +XML_SCHEMAP_FAILED_PARSE = 1766 +XML_SCHEMAP_UNKNOWN_PREFIX = 1767 +XML_SCHEMAP_DEF_AND_PREFIX = 1768 +XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD = 1769 +XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI = 1770 +XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI = 1771 +XML_SCHEMAP_NOT_SCHEMA = 1772 +XML_SCHEMAP_UNKNOWN_MEMBER_TYPE = 1773 +XML_SCHEMAP_INVALID_ATTR_USE = 1774 +XML_SCHEMAP_RECURSIVE = 1775 +XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE = 1776 +XML_SCHEMAP_INVALID_ATTR_COMBINATION = 1777 +XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION = 1778 +XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD = 1779 +XML_SCHEMAP_INVALID_ATTR_NAME = 1780 +XML_SCHEMAP_REF_AND_CONTENT = 1781 +XML_SCHEMAP_CT_PROPS_CORRECT_1 = 1782 +XML_SCHEMAP_CT_PROPS_CORRECT_2 = 1783 +XML_SCHEMAP_CT_PROPS_CORRECT_3 = 1784 +XML_SCHEMAP_CT_PROPS_CORRECT_4 = 1785 +XML_SCHEMAP_CT_PROPS_CORRECT_5 = 1786 +XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1 = 1787 +XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1 = 1788 +XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2 = 1789 +XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2 = 1790 +XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3 = 1791 +XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER = 1792 +XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE = 1793 +XML_SCHEMAP_UNION_NOT_EXPRESSIBLE = 1794 +XML_SCHEMAP_SRC_IMPORT_3_1 = 1795 +XML_SCHEMAP_SRC_IMPORT_3_2 = 1796 +XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1 = 1797 +XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2 = 1798 +XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3 = 1799 +XML_SCHEMAP_COS_CT_EXTENDS_1_3 = 1800 +XML_SCHEMAV_NOROOT = 1801 +XML_SCHEMAV_UNDECLAREDELEM = 1802 +XML_SCHEMAV_NOTTOPLEVEL = 1803 +XML_SCHEMAV_MISSING = 1804 +XML_SCHEMAV_WRONGELEM = 1805 +XML_SCHEMAV_NOTYPE = 1806 +XML_SCHEMAV_NOROLLBACK = 1807 +XML_SCHEMAV_ISABSTRACT = 1808 +XML_SCHEMAV_NOTEMPTY = 1809 +XML_SCHEMAV_ELEMCONT = 1810 +XML_SCHEMAV_HAVEDEFAULT = 1811 +XML_SCHEMAV_NOTNILLABLE = 1812 +XML_SCHEMAV_EXTRACONTENT = 1813 +XML_SCHEMAV_INVALIDATTR = 1814 +XML_SCHEMAV_INVALIDELEM = 1815 +XML_SCHEMAV_NOTDETERMINIST = 1816 +XML_SCHEMAV_CONSTRUCT = 1817 +XML_SCHEMAV_INTERNAL = 1818 +XML_SCHEMAV_NOTSIMPLE = 1819 +XML_SCHEMAV_ATTRUNKNOWN = 1820 +XML_SCHEMAV_ATTRINVALID = 1821 +XML_SCHEMAV_VALUE = 1822 +XML_SCHEMAV_FACET = 1823 +XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1 = 1824 +XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2 = 1825 +XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3 = 1826 +XML_SCHEMAV_CVC_TYPE_3_1_1 = 1827 +XML_SCHEMAV_CVC_TYPE_3_1_2 = 1828 +XML_SCHEMAV_CVC_FACET_VALID = 1829 +XML_SCHEMAV_CVC_LENGTH_VALID = 1830 +XML_SCHEMAV_CVC_MINLENGTH_VALID = 1831 +XML_SCHEMAV_CVC_MAXLENGTH_VALID = 1832 +XML_SCHEMAV_CVC_MININCLUSIVE_VALID = 1833 +XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID = 1834 +XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID = 1835 +XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID = 1836 +XML_SCHEMAV_CVC_TOTALDIGITS_VALID = 1837 +XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID = 1838 +XML_SCHEMAV_CVC_PATTERN_VALID = 1839 +XML_SCHEMAV_CVC_ENUMERATION_VALID = 1840 +XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1 = 1841 +XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2 = 1842 +XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3 = 1843 +XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4 = 1844 +XML_SCHEMAV_CVC_ELT_1 = 1845 +XML_SCHEMAV_CVC_ELT_2 = 1846 +XML_SCHEMAV_CVC_ELT_3_1 = 1847 +XML_SCHEMAV_CVC_ELT_3_2_1 = 1848 +XML_SCHEMAV_CVC_ELT_3_2_2 = 1849 +XML_SCHEMAV_CVC_ELT_4_1 = 1850 +XML_SCHEMAV_CVC_ELT_4_2 = 1851 +XML_SCHEMAV_CVC_ELT_4_3 = 1852 +XML_SCHEMAV_CVC_ELT_5_1_1 = 1853 +XML_SCHEMAV_CVC_ELT_5_1_2 = 1854 +XML_SCHEMAV_CVC_ELT_5_2_1 = 1855 +XML_SCHEMAV_CVC_ELT_5_2_2_1 = 1856 +XML_SCHEMAV_CVC_ELT_5_2_2_2_1 = 1857 +XML_SCHEMAV_CVC_ELT_5_2_2_2_2 = 1858 +XML_SCHEMAV_CVC_ELT_6 = 1859 +XML_SCHEMAV_CVC_ELT_7 = 1860 +XML_SCHEMAV_CVC_ATTRIBUTE_1 = 1861 +XML_SCHEMAV_CVC_ATTRIBUTE_2 = 1862 +XML_SCHEMAV_CVC_ATTRIBUTE_3 = 1863 +XML_SCHEMAV_CVC_ATTRIBUTE_4 = 1864 +XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1 = 1865 +XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1 = 1866 +XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2 = 1867 +XML_SCHEMAV_CVC_COMPLEX_TYPE_4 = 1868 +XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1 = 1869 +XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2 = 1870 +XML_SCHEMAV_ELEMENT_CONTENT = 1871 +XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING = 1872 +XML_SCHEMAV_CVC_COMPLEX_TYPE_1 = 1873 +XML_SCHEMAV_CVC_AU = 1874 +XML_SCHEMAV_CVC_TYPE_1 = 1875 +XML_SCHEMAV_CVC_TYPE_2 = 1876 +XML_SCHEMAV_CVC_IDC = 1877 +XML_SCHEMAV_CVC_WILDCARD = 1878 +XML_SCHEMAV_MISC = 1879 +XML_XPTR_UNKNOWN_SCHEME = 1900 +XML_XPTR_CHILDSEQ_START = 1901 +XML_XPTR_EVAL_FAILED = 1902 +XML_XPTR_EXTRA_OBJECTS = 1903 +XML_C14N_CREATE_CTXT = 1950 +XML_C14N_REQUIRES_UTF8 = 1951 +XML_C14N_CREATE_STACK = 1952 +XML_C14N_INVALID_NODE = 1953 +XML_C14N_UNKNOW_NODE = 1954 +XML_C14N_RELATIVE_NAMESPACE = 1955 +XML_FTP_PASV_ANSWER = 2000 +XML_FTP_EPSV_ANSWER = 2001 +XML_FTP_ACCNT = 2002 +XML_FTP_URL_SYNTAX = 2003 +XML_HTTP_URL_SYNTAX = 2020 +XML_HTTP_USE_IP = 2021 +XML_HTTP_UNKNOWN_HOST = 2022 +XML_SCHEMAP_SRC_SIMPLE_TYPE_1 = 3000 +XML_SCHEMAP_SRC_SIMPLE_TYPE_2 = 3001 +XML_SCHEMAP_SRC_SIMPLE_TYPE_3 = 3002 +XML_SCHEMAP_SRC_SIMPLE_TYPE_4 = 3003 +XML_SCHEMAP_SRC_RESOLVE = 3004 +XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE = 3005 +XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE = 3006 +XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES = 3007 +XML_SCHEMAP_ST_PROPS_CORRECT_1 = 3008 +XML_SCHEMAP_ST_PROPS_CORRECT_2 = 3009 +XML_SCHEMAP_ST_PROPS_CORRECT_3 = 3010 +XML_SCHEMAP_COS_ST_RESTRICTS_1_1 = 3011 +XML_SCHEMAP_COS_ST_RESTRICTS_1_2 = 3012 +XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1 = 3013 +XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2 = 3014 +XML_SCHEMAP_COS_ST_RESTRICTS_2_1 = 3015 +XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1 = 3016 +XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2 = 3017 +XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1 = 3018 +XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2 = 3019 +XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3 = 3020 +XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4 = 3021 +XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5 = 3022 +XML_SCHEMAP_COS_ST_RESTRICTS_3_1 = 3023 +XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1 = 3024 +XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2 = 3025 +XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2 = 3026 +XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1 = 3027 +XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3 = 3028 +XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4 = 3029 +XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5 = 3030 +XML_SCHEMAP_COS_ST_DERIVED_OK_2_1 = 3031 +XML_SCHEMAP_COS_ST_DERIVED_OK_2_2 = 3032 +XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED = 3033 +XML_SCHEMAP_S4S_ELEM_MISSING = 3034 +XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED = 3035 +XML_SCHEMAP_S4S_ATTR_MISSING = 3036 +XML_SCHEMAP_S4S_ATTR_INVALID_VALUE = 3037 +XML_SCHEMAP_SRC_ELEMENT_1 = 3038 +XML_SCHEMAP_SRC_ELEMENT_2_1 = 3039 +XML_SCHEMAP_SRC_ELEMENT_2_2 = 3040 +XML_SCHEMAP_SRC_ELEMENT_3 = 3041 +XML_SCHEMAP_P_PROPS_CORRECT_1 = 3042 +XML_SCHEMAP_P_PROPS_CORRECT_2_1 = 3043 +XML_SCHEMAP_P_PROPS_CORRECT_2_2 = 3044 +XML_SCHEMAP_E_PROPS_CORRECT_2 = 3045 +XML_SCHEMAP_E_PROPS_CORRECT_3 = 3046 +XML_SCHEMAP_E_PROPS_CORRECT_4 = 3047 +XML_SCHEMAP_E_PROPS_CORRECT_5 = 3048 +XML_SCHEMAP_E_PROPS_CORRECT_6 = 3049 +XML_SCHEMAP_SRC_INCLUDE = 3050 +XML_SCHEMAP_SRC_ATTRIBUTE_1 = 3051 +XML_SCHEMAP_SRC_ATTRIBUTE_2 = 3052 +XML_SCHEMAP_SRC_ATTRIBUTE_3_1 = 3053 +XML_SCHEMAP_SRC_ATTRIBUTE_3_2 = 3054 +XML_SCHEMAP_SRC_ATTRIBUTE_4 = 3055 +XML_SCHEMAP_NO_XMLNS = 3056 +XML_SCHEMAP_NO_XSI = 3057 +XML_SCHEMAP_COS_VALID_DEFAULT_1 = 3058 +XML_SCHEMAP_COS_VALID_DEFAULT_2_1 = 3059 +XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1 = 3060 +XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2 = 3061 +XML_SCHEMAP_CVC_SIMPLE_TYPE = 3062 +XML_SCHEMAP_COS_CT_EXTENDS_1_1 = 3063 +XML_SCHEMAP_SRC_IMPORT_1_1 = 3064 +XML_SCHEMAP_SRC_IMPORT_1_2 = 3065 +XML_SCHEMAP_SRC_IMPORT_2 = 3066 +XML_SCHEMAP_SRC_IMPORT_2_1 = 3067 +XML_SCHEMAP_SRC_IMPORT_2_2 = 3068 +XML_SCHEMAP_INTERNAL = 3069 +XML_SCHEMAP_NOT_DETERMINISTIC = 3070 +XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1 = 3071 +XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2 = 3072 +XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3 = 3073 +XML_SCHEMAP_MG_PROPS_CORRECT_1 = 3074 +XML_SCHEMAP_MG_PROPS_CORRECT_2 = 3075 +XML_SCHEMAP_SRC_CT_1 = 3076 +XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3 = 3077 +XML_SCHEMAP_AU_PROPS_CORRECT_2 = 3078 +XML_SCHEMAP_A_PROPS_CORRECT_2 = 3079 +XML_SCHEMAP_C_PROPS_CORRECT = 3080 +XML_SCHEMAP_SRC_REDEFINE = 3081 +XML_SCHEMAP_SRC_IMPORT = 3082 +XML_SCHEMAP_WARN_SKIP_SCHEMA = 3083 +XML_SCHEMAP_WARN_UNLOCATED_SCHEMA = 3084 +XML_SCHEMAP_WARN_ATTR_REDECL_PROH = 3085 +XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH = 3086 +XML_SCHEMAP_AG_PROPS_CORRECT = 3087 +XML_SCHEMAP_COS_CT_EXTENDS_1_2 = 3088 +XML_SCHEMAP_AU_PROPS_CORRECT = 3089 +XML_SCHEMAP_A_PROPS_CORRECT_3 = 3090 +XML_SCHEMAP_COS_ALL_LIMITED = 3091 +XML_SCHEMATRONV_ASSERT = 4000 +XML_SCHEMATRONV_REPORT = 4001 +XML_MODULE_OPEN = 4900 +XML_MODULE_CLOSE = 4901 +XML_CHECK_FOUND_ELEMENT = 5000 +XML_CHECK_FOUND_ATTRIBUTE = 5001 +XML_CHECK_FOUND_TEXT = 5002 +XML_CHECK_FOUND_CDATA = 5003 +XML_CHECK_FOUND_ENTITYREF = 5004 +XML_CHECK_FOUND_ENTITY = 5005 +XML_CHECK_FOUND_PI = 5006 +XML_CHECK_FOUND_COMMENT = 5007 +XML_CHECK_FOUND_DOCTYPE = 5008 +XML_CHECK_FOUND_FRAGMENT = 5009 +XML_CHECK_FOUND_NOTATION = 5010 +XML_CHECK_UNKNOWN_NODE = 5011 +XML_CHECK_ENTITY_TYPE = 5012 +XML_CHECK_NO_PARENT = 5013 +XML_CHECK_NO_DOC = 5014 +XML_CHECK_NO_NAME = 5015 +XML_CHECK_NO_ELEM = 5016 +XML_CHECK_WRONG_DOC = 5017 +XML_CHECK_NO_PREV = 5018 +XML_CHECK_WRONG_PREV = 5019 +XML_CHECK_NO_NEXT = 5020 +XML_CHECK_WRONG_NEXT = 5021 +XML_CHECK_NOT_DTD = 5022 +XML_CHECK_NOT_ATTR = 5023 +XML_CHECK_NOT_ATTR_DECL = 5024 +XML_CHECK_NOT_ELEM_DECL = 5025 +XML_CHECK_NOT_ENTITY_DECL = 5026 +XML_CHECK_NOT_NS_DECL = 5027 +XML_CHECK_NO_HREF = 5028 +XML_CHECK_WRONG_PARENT = 5029 +XML_CHECK_NS_SCOPE = 5030 +XML_CHECK_NS_ANCESTOR = 5031 +XML_CHECK_NOT_UTF8 = 5032 +XML_CHECK_NO_DICT = 5033 +XML_CHECK_NOT_NCNAME = 5034 +XML_CHECK_OUTSIDE_DICT = 5035 +XML_CHECK_WRONG_NAME = 5036 +XML_CHECK_NAME_NOT_NULL = 5037 +XML_I18N_NO_NAME = 6000 +XML_I18N_NO_HANDLER = 6001 +XML_I18N_EXCESS_HANDLER = 6002 +XML_I18N_CONV_FAILED = 6003 +XML_I18N_NO_OUTPUT = 6004 +XML_BUF_OVERFLOW = 7000 + +# xmlExpNodeType +XML_EXP_EMPTY = 0 +XML_EXP_FORBID = 1 +XML_EXP_ATOM = 2 +XML_EXP_SEQ = 3 +XML_EXP_OR = 4 +XML_EXP_COUNT = 5 + +# xmlElementContentType +XML_ELEMENT_CONTENT_PCDATA = 1 +XML_ELEMENT_CONTENT_ELEMENT = 2 +XML_ELEMENT_CONTENT_SEQ = 3 +XML_ELEMENT_CONTENT_OR = 4 + +# xmlParserProperties +XML_PARSER_LOADDTD = 1 +XML_PARSER_DEFAULTATTRS = 2 +XML_PARSER_VALIDATE = 3 +XML_PARSER_SUBST_ENTITIES = 4 + +# xmlReaderTypes +XML_READER_TYPE_NONE = 0 +XML_READER_TYPE_ELEMENT = 1 +XML_READER_TYPE_ATTRIBUTE = 2 +XML_READER_TYPE_TEXT = 3 +XML_READER_TYPE_CDATA = 4 +XML_READER_TYPE_ENTITY_REFERENCE = 5 +XML_READER_TYPE_ENTITY = 6 +XML_READER_TYPE_PROCESSING_INSTRUCTION = 7 +XML_READER_TYPE_COMMENT = 8 +XML_READER_TYPE_DOCUMENT = 9 +XML_READER_TYPE_DOCUMENT_TYPE = 10 +XML_READER_TYPE_DOCUMENT_FRAGMENT = 11 +XML_READER_TYPE_NOTATION = 12 +XML_READER_TYPE_WHITESPACE = 13 +XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14 +XML_READER_TYPE_END_ELEMENT = 15 +XML_READER_TYPE_END_ENTITY = 16 +XML_READER_TYPE_XML_DECLARATION = 17 + +# xmlCatalogPrefer +XML_CATA_PREFER_NONE = 0 +XML_CATA_PREFER_PUBLIC = 1 +XML_CATA_PREFER_SYSTEM = 2 + +# xmlElementType +XML_ELEMENT_NODE = 1 +XML_ATTRIBUTE_NODE = 2 +XML_TEXT_NODE = 3 +XML_CDATA_SECTION_NODE = 4 +XML_ENTITY_REF_NODE = 5 +XML_ENTITY_NODE = 6 +XML_PI_NODE = 7 +XML_COMMENT_NODE = 8 +XML_DOCUMENT_NODE = 9 +XML_DOCUMENT_TYPE_NODE = 10 +XML_DOCUMENT_FRAG_NODE = 11 +XML_NOTATION_NODE = 12 +XML_HTML_DOCUMENT_NODE = 13 +XML_DTD_NODE = 14 +XML_ELEMENT_DECL = 15 +XML_ATTRIBUTE_DECL = 16 +XML_ENTITY_DECL = 17 +XML_NAMESPACE_DECL = 18 +XML_XINCLUDE_START = 19 +XML_XINCLUDE_END = 20 +XML_DOCB_DOCUMENT_NODE = 21 + +# xlinkActuate +XLINK_ACTUATE_NONE = 0 +XLINK_ACTUATE_AUTO = 1 +XLINK_ACTUATE_ONREQUEST = 2 + +# xmlFeature +XML_WITH_THREAD = 1 +XML_WITH_TREE = 2 +XML_WITH_OUTPUT = 3 +XML_WITH_PUSH = 4 +XML_WITH_READER = 5 +XML_WITH_PATTERN = 6 +XML_WITH_WRITER = 7 +XML_WITH_SAX1 = 8 +XML_WITH_FTP = 9 +XML_WITH_HTTP = 10 +XML_WITH_VALID = 11 +XML_WITH_HTML = 12 +XML_WITH_LEGACY = 13 +XML_WITH_C14N = 14 +XML_WITH_CATALOG = 15 +XML_WITH_XPATH = 16 +XML_WITH_XPTR = 17 +XML_WITH_XINCLUDE = 18 +XML_WITH_ICONV = 19 +XML_WITH_ISO8859X = 20 +XML_WITH_UNICODE = 21 +XML_WITH_REGEXP = 22 +XML_WITH_AUTOMATA = 23 +XML_WITH_EXPR = 24 +XML_WITH_SCHEMAS = 25 +XML_WITH_SCHEMATRON = 26 +XML_WITH_MODULES = 27 +XML_WITH_DEBUG = 28 +XML_WITH_DEBUG_MEM = 29 +XML_WITH_DEBUG_RUN = 30 +XML_WITH_ZLIB = 31 +XML_WITH_ICU = 32 +XML_WITH_LZMA = 33 +XML_WITH_NONE = 99999 + +# xmlElementContentOccur +XML_ELEMENT_CONTENT_ONCE = 1 +XML_ELEMENT_CONTENT_OPT = 2 +XML_ELEMENT_CONTENT_MULT = 3 +XML_ELEMENT_CONTENT_PLUS = 4 + +# xmlXPathError +XPATH_EXPRESSION_OK = 0 +XPATH_NUMBER_ERROR = 1 +XPATH_UNFINISHED_LITERAL_ERROR = 2 +XPATH_START_LITERAL_ERROR = 3 +XPATH_VARIABLE_REF_ERROR = 4 +XPATH_UNDEF_VARIABLE_ERROR = 5 +XPATH_INVALID_PREDICATE_ERROR = 6 +XPATH_EXPR_ERROR = 7 +XPATH_UNCLOSED_ERROR = 8 +XPATH_UNKNOWN_FUNC_ERROR = 9 +XPATH_INVALID_OPERAND = 10 +XPATH_INVALID_TYPE = 11 +XPATH_INVALID_ARITY = 12 +XPATH_INVALID_CTXT_SIZE = 13 +XPATH_INVALID_CTXT_POSITION = 14 +XPATH_MEMORY_ERROR = 15 +XPTR_SYNTAX_ERROR = 16 +XPTR_RESOURCE_ERROR = 17 +XPTR_SUB_RESOURCE_ERROR = 18 +XPATH_UNDEF_PREFIX_ERROR = 19 +XPATH_ENCODING_ERROR = 20 +XPATH_INVALID_CHAR_ERROR = 21 +XPATH_INVALID_CTXT = 22 +XPATH_STACK_ERROR = 23 +XPATH_FORBID_VARIABLE_ERROR = 24 + +# xmlTextReaderMode +XML_TEXTREADER_MODE_INITIAL = 0 +XML_TEXTREADER_MODE_INTERACTIVE = 1 +XML_TEXTREADER_MODE_ERROR = 2 +XML_TEXTREADER_MODE_EOF = 3 +XML_TEXTREADER_MODE_CLOSED = 4 +XML_TEXTREADER_MODE_READING = 5 + +# xmlErrorLevel +XML_ERR_NONE = 0 +XML_ERR_WARNING = 1 +XML_ERR_ERROR = 2 +XML_ERR_FATAL = 3 + +# xmlCharEncoding +XML_CHAR_ENCODING_ERROR = -1 +XML_CHAR_ENCODING_NONE = 0 +XML_CHAR_ENCODING_UTF8 = 1 +XML_CHAR_ENCODING_UTF16LE = 2 +XML_CHAR_ENCODING_UTF16BE = 3 +XML_CHAR_ENCODING_UCS4LE = 4 +XML_CHAR_ENCODING_UCS4BE = 5 +XML_CHAR_ENCODING_EBCDIC = 6 +XML_CHAR_ENCODING_UCS4_2143 = 7 +XML_CHAR_ENCODING_UCS4_3412 = 8 +XML_CHAR_ENCODING_UCS2 = 9 +XML_CHAR_ENCODING_8859_1 = 10 +XML_CHAR_ENCODING_8859_2 = 11 +XML_CHAR_ENCODING_8859_3 = 12 +XML_CHAR_ENCODING_8859_4 = 13 +XML_CHAR_ENCODING_8859_5 = 14 +XML_CHAR_ENCODING_8859_6 = 15 +XML_CHAR_ENCODING_8859_7 = 16 +XML_CHAR_ENCODING_8859_8 = 17 +XML_CHAR_ENCODING_8859_9 = 18 +XML_CHAR_ENCODING_2022_JP = 19 +XML_CHAR_ENCODING_SHIFT_JIS = 20 +XML_CHAR_ENCODING_EUC_JP = 21 +XML_CHAR_ENCODING_ASCII = 22 + +# xmlErrorDomain +XML_FROM_NONE = 0 +XML_FROM_PARSER = 1 +XML_FROM_TREE = 2 +XML_FROM_NAMESPACE = 3 +XML_FROM_DTD = 4 +XML_FROM_HTML = 5 +XML_FROM_MEMORY = 6 +XML_FROM_OUTPUT = 7 +XML_FROM_IO = 8 +XML_FROM_FTP = 9 +XML_FROM_HTTP = 10 +XML_FROM_XINCLUDE = 11 +XML_FROM_XPATH = 12 +XML_FROM_XPOINTER = 13 +XML_FROM_REGEXP = 14 +XML_FROM_DATATYPE = 15 +XML_FROM_SCHEMASP = 16 +XML_FROM_SCHEMASV = 17 +XML_FROM_RELAXNGP = 18 +XML_FROM_RELAXNGV = 19 +XML_FROM_CATALOG = 20 +XML_FROM_C14N = 21 +XML_FROM_XSLT = 22 +XML_FROM_VALID = 23 +XML_FROM_CHECK = 24 +XML_FROM_WRITER = 25 +XML_FROM_MODULE = 26 +XML_FROM_I18N = 27 +XML_FROM_SCHEMATRONV = 28 +XML_FROM_BUFFER = 29 +XML_FROM_URI = 30 + +# htmlStatus +HTML_NA = 0 +HTML_INVALID = 1 +HTML_DEPRECATED = 2 +HTML_VALID = 4 +HTML_REQUIRED = 12 + +# xmlSchemaValidOption +XML_SCHEMA_VAL_VC_I_CREATE = 1 + +# xmlSchemaWhitespaceValueType +XML_SCHEMA_WHITESPACE_UNKNOWN = 0 +XML_SCHEMA_WHITESPACE_PRESERVE = 1 +XML_SCHEMA_WHITESPACE_REPLACE = 2 +XML_SCHEMA_WHITESPACE_COLLAPSE = 3 + +# htmlParserOption +HTML_PARSE_RECOVER = 1 +HTML_PARSE_NODEFDTD = 4 +HTML_PARSE_NOERROR = 32 +HTML_PARSE_NOWARNING = 64 +HTML_PARSE_PEDANTIC = 128 +HTML_PARSE_NOBLANKS = 256 +HTML_PARSE_NONET = 2048 +HTML_PARSE_NOIMPLIED = 8192 +HTML_PARSE_COMPACT = 65536 +HTML_PARSE_IGNORE_ENC = 2097152 + +# xmlRelaxNGValidErr +XML_RELAXNG_OK = 0 +XML_RELAXNG_ERR_MEMORY = 1 +XML_RELAXNG_ERR_TYPE = 2 +XML_RELAXNG_ERR_TYPEVAL = 3 +XML_RELAXNG_ERR_DUPID = 4 +XML_RELAXNG_ERR_TYPECMP = 5 +XML_RELAXNG_ERR_NOSTATE = 6 +XML_RELAXNG_ERR_NODEFINE = 7 +XML_RELAXNG_ERR_LISTEXTRA = 8 +XML_RELAXNG_ERR_LISTEMPTY = 9 +XML_RELAXNG_ERR_INTERNODATA = 10 +XML_RELAXNG_ERR_INTERSEQ = 11 +XML_RELAXNG_ERR_INTEREXTRA = 12 +XML_RELAXNG_ERR_ELEMNAME = 13 +XML_RELAXNG_ERR_ATTRNAME = 14 +XML_RELAXNG_ERR_ELEMNONS = 15 +XML_RELAXNG_ERR_ATTRNONS = 16 +XML_RELAXNG_ERR_ELEMWRONGNS = 17 +XML_RELAXNG_ERR_ATTRWRONGNS = 18 +XML_RELAXNG_ERR_ELEMEXTRANS = 19 +XML_RELAXNG_ERR_ATTREXTRANS = 20 +XML_RELAXNG_ERR_ELEMNOTEMPTY = 21 +XML_RELAXNG_ERR_NOELEM = 22 +XML_RELAXNG_ERR_NOTELEM = 23 +XML_RELAXNG_ERR_ATTRVALID = 24 +XML_RELAXNG_ERR_CONTENTVALID = 25 +XML_RELAXNG_ERR_EXTRACONTENT = 26 +XML_RELAXNG_ERR_INVALIDATTR = 27 +XML_RELAXNG_ERR_DATAELEM = 28 +XML_RELAXNG_ERR_VALELEM = 29 +XML_RELAXNG_ERR_LISTELEM = 30 +XML_RELAXNG_ERR_DATATYPE = 31 +XML_RELAXNG_ERR_VALUE = 32 +XML_RELAXNG_ERR_LIST = 33 +XML_RELAXNG_ERR_NOGRAMMAR = 34 +XML_RELAXNG_ERR_EXTRADATA = 35 +XML_RELAXNG_ERR_LACKDATA = 36 +XML_RELAXNG_ERR_INTERNAL = 37 +XML_RELAXNG_ERR_ELEMWRONG = 38 +XML_RELAXNG_ERR_TEXTWRONG = 39 + +# xmlCatalogAllow +XML_CATA_ALLOW_NONE = 0 +XML_CATA_ALLOW_GLOBAL = 1 +XML_CATA_ALLOW_DOCUMENT = 2 +XML_CATA_ALLOW_ALL = 3 + +# xmlAttributeType +XML_ATTRIBUTE_CDATA = 1 +XML_ATTRIBUTE_ID = 2 +XML_ATTRIBUTE_IDREF = 3 +XML_ATTRIBUTE_IDREFS = 4 +XML_ATTRIBUTE_ENTITY = 5 +XML_ATTRIBUTE_ENTITIES = 6 +XML_ATTRIBUTE_NMTOKEN = 7 +XML_ATTRIBUTE_NMTOKENS = 8 +XML_ATTRIBUTE_ENUMERATION = 9 +XML_ATTRIBUTE_NOTATION = 10 + +# xmlSchematronValidOptions +XML_SCHEMATRON_OUT_QUIET = 1 +XML_SCHEMATRON_OUT_TEXT = 2 +XML_SCHEMATRON_OUT_XML = 4 +XML_SCHEMATRON_OUT_ERROR = 8 +XML_SCHEMATRON_OUT_FILE = 256 +XML_SCHEMATRON_OUT_BUFFER = 512 +XML_SCHEMATRON_OUT_IO = 1024 + +# xmlSchemaContentType +XML_SCHEMA_CONTENT_UNKNOWN = 0 +XML_SCHEMA_CONTENT_EMPTY = 1 +XML_SCHEMA_CONTENT_ELEMENTS = 2 +XML_SCHEMA_CONTENT_MIXED = 3 +XML_SCHEMA_CONTENT_SIMPLE = 4 +XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS = 5 +XML_SCHEMA_CONTENT_BASIC = 6 +XML_SCHEMA_CONTENT_ANY = 7 + +# xmlSchemaTypeType +XML_SCHEMA_TYPE_BASIC = 1 +XML_SCHEMA_TYPE_ANY = 2 +XML_SCHEMA_TYPE_FACET = 3 +XML_SCHEMA_TYPE_SIMPLE = 4 +XML_SCHEMA_TYPE_COMPLEX = 5 +XML_SCHEMA_TYPE_SEQUENCE = 6 +XML_SCHEMA_TYPE_CHOICE = 7 +XML_SCHEMA_TYPE_ALL = 8 +XML_SCHEMA_TYPE_SIMPLE_CONTENT = 9 +XML_SCHEMA_TYPE_COMPLEX_CONTENT = 10 +XML_SCHEMA_TYPE_UR = 11 +XML_SCHEMA_TYPE_RESTRICTION = 12 +XML_SCHEMA_TYPE_EXTENSION = 13 +XML_SCHEMA_TYPE_ELEMENT = 14 +XML_SCHEMA_TYPE_ATTRIBUTE = 15 +XML_SCHEMA_TYPE_ATTRIBUTEGROUP = 16 +XML_SCHEMA_TYPE_GROUP = 17 +XML_SCHEMA_TYPE_NOTATION = 18 +XML_SCHEMA_TYPE_LIST = 19 +XML_SCHEMA_TYPE_UNION = 20 +XML_SCHEMA_TYPE_ANY_ATTRIBUTE = 21 +XML_SCHEMA_TYPE_IDC_UNIQUE = 22 +XML_SCHEMA_TYPE_IDC_KEY = 23 +XML_SCHEMA_TYPE_IDC_KEYREF = 24 +XML_SCHEMA_TYPE_PARTICLE = 25 +XML_SCHEMA_TYPE_ATTRIBUTE_USE = 26 +XML_SCHEMA_FACET_MININCLUSIVE = 1000 +XML_SCHEMA_FACET_MINEXCLUSIVE = 1001 +XML_SCHEMA_FACET_MAXINCLUSIVE = 1002 +XML_SCHEMA_FACET_MAXEXCLUSIVE = 1003 +XML_SCHEMA_FACET_TOTALDIGITS = 1004 +XML_SCHEMA_FACET_FRACTIONDIGITS = 1005 +XML_SCHEMA_FACET_PATTERN = 1006 +XML_SCHEMA_FACET_ENUMERATION = 1007 +XML_SCHEMA_FACET_WHITESPACE = 1008 +XML_SCHEMA_FACET_LENGTH = 1009 +XML_SCHEMA_FACET_MAXLENGTH = 1010 +XML_SCHEMA_FACET_MINLENGTH = 1011 +XML_SCHEMA_EXTRA_QNAMEREF = 2000 +XML_SCHEMA_EXTRA_ATTR_USE_PROHIB = 2001 + +# xmlModuleOption +XML_MODULE_LAZY = 1 +XML_MODULE_LOCAL = 2 + +# xmlParserMode +XML_PARSE_UNKNOWN = 0 +XML_PARSE_DOM = 1 +XML_PARSE_SAX = 2 +XML_PARSE_PUSH_DOM = 3 +XML_PARSE_PUSH_SAX = 4 +XML_PARSE_READER = 5 + +# xmlC14NMode +XML_C14N_1_0 = 0 +XML_C14N_EXCLUSIVE_1_0 = 1 +XML_C14N_1_1 = 2 + +# xmlParserOption +XML_PARSE_RECOVER = 1 +XML_PARSE_NOENT = 2 +XML_PARSE_DTDLOAD = 4 +XML_PARSE_DTDATTR = 8 +XML_PARSE_DTDVALID = 16 +XML_PARSE_NOERROR = 32 +XML_PARSE_NOWARNING = 64 +XML_PARSE_PEDANTIC = 128 +XML_PARSE_NOBLANKS = 256 +XML_PARSE_SAX1 = 512 +XML_PARSE_XINCLUDE = 1024 +XML_PARSE_NONET = 2048 +XML_PARSE_NODICT = 4096 +XML_PARSE_NSCLEAN = 8192 +XML_PARSE_NOCDATA = 16384 +XML_PARSE_NOXINCNODE = 32768 +XML_PARSE_COMPACT = 65536 +XML_PARSE_OLD10 = 131072 +XML_PARSE_NOBASEFIX = 262144 +XML_PARSE_HUGE = 524288 +XML_PARSE_OLDSAX = 1048576 +XML_PARSE_IGNORE_ENC = 2097152 +XML_PARSE_BIG_LINES = 4194304 + +# xmlElementTypeVal +XML_ELEMENT_TYPE_UNDEFINED = 0 +XML_ELEMENT_TYPE_EMPTY = 1 +XML_ELEMENT_TYPE_ANY = 2 +XML_ELEMENT_TYPE_MIXED = 3 +XML_ELEMENT_TYPE_ELEMENT = 4 + +# xmlDocProperties +XML_DOC_WELLFORMED = 1 +XML_DOC_NSVALID = 2 +XML_DOC_OLD10 = 4 +XML_DOC_DTDVALID = 8 +XML_DOC_XINCLUDE = 16 +XML_DOC_USERBUILT = 32 +XML_DOC_INTERNAL = 64 +XML_DOC_HTML = 128 + +# xlinkType +XLINK_TYPE_NONE = 0 +XLINK_TYPE_SIMPLE = 1 +XLINK_TYPE_EXTENDED = 2 +XLINK_TYPE_EXTENDED_SET = 3 + +# xmlXPathObjectType +XPATH_UNDEFINED = 0 +XPATH_NODESET = 1 +XPATH_BOOLEAN = 2 +XPATH_NUMBER = 3 +XPATH_STRING = 4 +XPATH_POINT = 5 +XPATH_RANGE = 6 +XPATH_LOCATIONSET = 7 +XPATH_USERS = 8 +XPATH_XSLT_TREE = 9 + +# xmlSchemaValidError +XML_SCHEMAS_ERR_OK = 0 +XML_SCHEMAS_ERR_NOROOT = 1 +XML_SCHEMAS_ERR_UNDECLAREDELEM = 2 +XML_SCHEMAS_ERR_NOTTOPLEVEL = 3 +XML_SCHEMAS_ERR_MISSING = 4 +XML_SCHEMAS_ERR_WRONGELEM = 5 +XML_SCHEMAS_ERR_NOTYPE = 6 +XML_SCHEMAS_ERR_NOROLLBACK = 7 +XML_SCHEMAS_ERR_ISABSTRACT = 8 +XML_SCHEMAS_ERR_NOTEMPTY = 9 +XML_SCHEMAS_ERR_ELEMCONT = 10 +XML_SCHEMAS_ERR_HAVEDEFAULT = 11 +XML_SCHEMAS_ERR_NOTNILLABLE = 12 +XML_SCHEMAS_ERR_EXTRACONTENT = 13 +XML_SCHEMAS_ERR_INVALIDATTR = 14 +XML_SCHEMAS_ERR_INVALIDELEM = 15 +XML_SCHEMAS_ERR_NOTDETERMINIST = 16 +XML_SCHEMAS_ERR_CONSTRUCT = 17 +XML_SCHEMAS_ERR_INTERNAL = 18 +XML_SCHEMAS_ERR_NOTSIMPLE = 19 +XML_SCHEMAS_ERR_ATTRUNKNOWN = 20 +XML_SCHEMAS_ERR_ATTRINVALID = 21 +XML_SCHEMAS_ERR_VALUE = 22 +XML_SCHEMAS_ERR_FACET = 23 +XML_SCHEMAS_ERR_ = 24 +XML_SCHEMAS_ERR_XXX = 25 + diff --git a/python/libxml2class.txt b/python/libxml2class.txt new file mode 100644 index 0000000..b16567c --- /dev/null +++ b/python/libxml2class.txt @@ -0,0 +1,1176 @@ + Generated Classes for libxml2-python + +# +# Global functions of the module +# + + +# functions from module HTMLparser +htmlCreateMemoryParserCtxt() +htmlHandleOmittedElem() +htmlIsScriptAttribute() +htmlNewParserCtxt() +htmlParseDoc() +htmlParseFile() +htmlReadDoc() +htmlReadFd() +htmlReadFile() +htmlReadMemory() + +# functions from module HTMLtree +htmlIsBooleanAttr() +htmlNewDoc() +htmlNewDocNoDtD() + +# functions from module SAX2 +SAXDefaultVersion() +defaultSAXHandlerInit() +docbDefaultSAXHandlerInit() +htmlDefaultSAXHandlerInit() + +# functions from module catalog +catalogAdd() +catalogCleanup() +catalogConvert() +catalogDump() +catalogGetPublic() +catalogGetSystem() +catalogRemove() +catalogResolve() +catalogResolvePublic() +catalogResolveSystem() +catalogResolveURI() +catalogSetDebug() +initializeCatalog() +loadACatalog() +loadCatalog() +loadCatalogs() +loadSGMLSuperCatalog() +newCatalog() +parseCatalogFile() + +# functions from module chvalid +isBaseChar() +isBlank() +isChar() +isCombining() +isDigit() +isExtender() +isIdeographic() +isPubidChar() + +# functions from module debugXML +boolToText() +debugDumpString() +shellPrintXPathError() + +# functions from module dict +dictCleanup() +initializeDict() + +# functions from module encoding +addEncodingAlias() +cleanupCharEncodingHandlers() +cleanupEncodingAliases() +delEncodingAlias() +encodingAlias() +initCharEncodingHandlers() + +# functions from module entities +cleanupPredefinedEntities() +initializePredefinedEntities() +predefinedEntity() + +# functions from module globals +cleanupGlobals() +initGlobals() +thrDefDefaultBufferSize() +thrDefDoValidityCheckingDefaultValue() +thrDefGetWarningsDefaultValue() +thrDefIndentTreeOutput() +thrDefKeepBlanksDefaultValue() +thrDefLineNumbersDefaultValue() +thrDefLoadExtDtdDefaultValue() +thrDefParserDebugEntities() +thrDefPedanticParserDefaultValue() +thrDefSaveNoEmptyTags() +thrDefSubstituteEntitiesDefaultValue() +thrDefTreeIndentString() + +# functions from module nanoftp +nanoFTPCleanup() +nanoFTPInit() +nanoFTPProxy() +nanoFTPScanProxy() + +# functions from module nanohttp +nanoHTTPCleanup() +nanoHTTPInit() +nanoHTTPScanProxy() + +# functions from module parser +createDocParserCtxt() +initParser() +keepBlanksDefault() +lineNumbersDefault() +newParserCtxt() +parseDTD() +parseDoc() +parseEntity() +parseFile() +parseMemory() +pedanticParserDefault() +readDoc() +readFd() +readFile() +readMemory() +recoverDoc() +recoverFile() +recoverMemory() +substituteEntitiesDefault() + +# functions from module parserInternals +checkLanguageID() +copyChar() +copyCharMultiByte() +createEntityParserCtxt() +createFileParserCtxt() +createMemoryParserCtxt() +createURLParserCtxt() +htmlCreateFileParserCtxt() +htmlInitAutoClose() +isLetter() +namePop() +namePush() +nodePop() +nodePush() + +# functions from module python +SAXParseFile() +createInputBuffer() +createOutputBuffer() +createPushParser() +debugMemory() +dumpMemory() +htmlCreatePushParser() +htmlSAXParseFile() +memoryUsed() +newNode() +pythonCleanupParser() +setEntityLoader() + +# functions from module relaxng +relaxNGCleanupTypes() +relaxNGInitTypes() +relaxNGNewMemParserCtxt() +relaxNGNewParserCtxt() + +# functions from module tree +buildQName() +compressMode() +isXHTML() +newComment() +newDoc() +newPI() +newText() +newTextLen() +setCompressMode() +validateNCName() +validateNMToken() +validateName() +validateQName() + +# functions from module uri +URIEscape() +URIEscapeStr() +URIUnescapeString() +buildRelativeURI() +buildURI() +canonicPath() +createURI() +normalizeURIPath() +parseURI() +parseURIRaw() +pathToURI() + +# functions from module valid +newValidCtxt() +validateNameValue() +validateNamesValue() +validateNmtokenValue() +validateNmtokensValue() + +# functions from module xmlIO +checkFilename() +cleanupInputCallbacks() +cleanupOutputCallbacks() +fileMatch() +iOFTPMatch() +iOHTTPMatch() +normalizeWindowsPath() +parserGetDirectory() +popInputCallbacks() +registerDefaultInputCallbacks() +registerDefaultOutputCallbacks() +registerHTTPPostCallbacks() + +# functions from module xmlerror +lastError() +resetLastError() + +# functions from module xmlreader +newTextReaderFilename() +readerForDoc() +readerForFd() +readerForFile() +readerForMemory() + +# functions from module xmlregexp +regexpCompile() + +# functions from module xmlschemas +schemaNewMemParserCtxt() +schemaNewParserCtxt() + +# functions from module xmlschemastypes +schemaCleanupTypes() +schemaCollapseString() +schemaInitTypes() +schemaWhiteSpaceReplace() + +# functions from module xmlstring +UTF8Charcmp() +UTF8Size() +UTF8Strlen() +UTF8Strloc() +UTF8Strndup() +UTF8Strpos() +UTF8Strsize() +UTF8Strsub() +checkUTF8() + +# functions from module xmlunicode +uCSIsAegeanNumbers() +uCSIsAlphabeticPresentationForms() +uCSIsArabic() +uCSIsArabicPresentationFormsA() +uCSIsArabicPresentationFormsB() +uCSIsArmenian() +uCSIsArrows() +uCSIsBasicLatin() +uCSIsBengali() +uCSIsBlock() +uCSIsBlockElements() +uCSIsBopomofo() +uCSIsBopomofoExtended() +uCSIsBoxDrawing() +uCSIsBraillePatterns() +uCSIsBuhid() +uCSIsByzantineMusicalSymbols() +uCSIsCJKCompatibility() +uCSIsCJKCompatibilityForms() +uCSIsCJKCompatibilityIdeographs() +uCSIsCJKCompatibilityIdeographsSupplement() +uCSIsCJKRadicalsSupplement() +uCSIsCJKSymbolsandPunctuation() +uCSIsCJKUnifiedIdeographs() +uCSIsCJKUnifiedIdeographsExtensionA() +uCSIsCJKUnifiedIdeographsExtensionB() +uCSIsCat() +uCSIsCatC() +uCSIsCatCc() +uCSIsCatCf() +uCSIsCatCo() +uCSIsCatCs() +uCSIsCatL() +uCSIsCatLl() +uCSIsCatLm() +uCSIsCatLo() +uCSIsCatLt() +uCSIsCatLu() +uCSIsCatM() +uCSIsCatMc() +uCSIsCatMe() +uCSIsCatMn() +uCSIsCatN() +uCSIsCatNd() +uCSIsCatNl() +uCSIsCatNo() +uCSIsCatP() +uCSIsCatPc() +uCSIsCatPd() +uCSIsCatPe() +uCSIsCatPf() +uCSIsCatPi() +uCSIsCatPo() +uCSIsCatPs() +uCSIsCatS() +uCSIsCatSc() +uCSIsCatSk() +uCSIsCatSm() +uCSIsCatSo() +uCSIsCatZ() +uCSIsCatZl() +uCSIsCatZp() +uCSIsCatZs() +uCSIsCherokee() +uCSIsCombiningDiacriticalMarks() +uCSIsCombiningDiacriticalMarksforSymbols() +uCSIsCombiningHalfMarks() +uCSIsCombiningMarksforSymbols() +uCSIsControlPictures() +uCSIsCurrencySymbols() +uCSIsCypriotSyllabary() +uCSIsCyrillic() +uCSIsCyrillicSupplement() +uCSIsDeseret() +uCSIsDevanagari() +uCSIsDingbats() +uCSIsEnclosedAlphanumerics() +uCSIsEnclosedCJKLettersandMonths() +uCSIsEthiopic() +uCSIsGeneralPunctuation() +uCSIsGeometricShapes() +uCSIsGeorgian() +uCSIsGothic() +uCSIsGreek() +uCSIsGreekExtended() +uCSIsGreekandCoptic() +uCSIsGujarati() +uCSIsGurmukhi() +uCSIsHalfwidthandFullwidthForms() +uCSIsHangulCompatibilityJamo() +uCSIsHangulJamo() +uCSIsHangulSyllables() +uCSIsHanunoo() +uCSIsHebrew() +uCSIsHighPrivateUseSurrogates() +uCSIsHighSurrogates() +uCSIsHiragana() +uCSIsIPAExtensions() +uCSIsIdeographicDescriptionCharacters() +uCSIsKanbun() +uCSIsKangxiRadicals() +uCSIsKannada() +uCSIsKatakana() +uCSIsKatakanaPhoneticExtensions() +uCSIsKhmer() +uCSIsKhmerSymbols() +uCSIsLao() +uCSIsLatin1Supplement() +uCSIsLatinExtendedA() +uCSIsLatinExtendedAdditional() +uCSIsLatinExtendedB() +uCSIsLetterlikeSymbols() +uCSIsLimbu() +uCSIsLinearBIdeograms() +uCSIsLinearBSyllabary() +uCSIsLowSurrogates() +uCSIsMalayalam() +uCSIsMathematicalAlphanumericSymbols() +uCSIsMathematicalOperators() +uCSIsMiscellaneousMathematicalSymbolsA() +uCSIsMiscellaneousMathematicalSymbolsB() +uCSIsMiscellaneousSymbols() +uCSIsMiscellaneousSymbolsandArrows() +uCSIsMiscellaneousTechnical() +uCSIsMongolian() +uCSIsMusicalSymbols() +uCSIsMyanmar() +uCSIsNumberForms() +uCSIsOgham() +uCSIsOldItalic() +uCSIsOpticalCharacterRecognition() +uCSIsOriya() +uCSIsOsmanya() +uCSIsPhoneticExtensions() +uCSIsPrivateUse() +uCSIsPrivateUseArea() +uCSIsRunic() +uCSIsShavian() +uCSIsSinhala() +uCSIsSmallFormVariants() +uCSIsSpacingModifierLetters() +uCSIsSpecials() +uCSIsSuperscriptsandSubscripts() +uCSIsSupplementalArrowsA() +uCSIsSupplementalArrowsB() +uCSIsSupplementalMathematicalOperators() +uCSIsSupplementaryPrivateUseAreaA() +uCSIsSupplementaryPrivateUseAreaB() +uCSIsSyriac() +uCSIsTagalog() +uCSIsTagbanwa() +uCSIsTags() +uCSIsTaiLe() +uCSIsTaiXuanJingSymbols() +uCSIsTamil() +uCSIsTelugu() +uCSIsThaana() +uCSIsThai() +uCSIsTibetan() +uCSIsUgaritic() +uCSIsUnifiedCanadianAboriginalSyllabics() +uCSIsVariationSelectors() +uCSIsVariationSelectorsSupplement() +uCSIsYiRadicals() +uCSIsYiSyllables() +uCSIsYijingHexagramSymbols() + +# functions from module xmlversion +checkVersion() + +# functions from module xpathInternals +valuePop() + + +# +# Set of classes of the module +# + + + +Class xmlNode(xmlCore) + # accessors + ns() + nsDefs() + + # functions from module debugXML + debugDumpNode() + debugDumpNodeList() + debugDumpOneNode() + lsCountNode() + lsOneNode() + shellPrintNode() + + # functions from module tree + addChild() + addChildList() + addContent() + addContentLen() + addNextSibling() + addPrevSibling() + addSibling() + copyNode() + copyNodeList() + copyProp() + copyPropList() + docCopyNode() + docCopyNodeList() + docSetRootElement() + firstElementChild() + freeNode() + freeNodeList() + getBase() + getContent() + getLang() + getSpacePreserve() + hasNsProp() + hasProp() + isBlankNode() + isText() + lastChild() + lastElementChild() + lineNo() + listGetRawString() + listGetString() + newChild() + newNs() + newNsProp() + newNsPropEatName() + newProp() + newTextChild() + nextElementSibling() + noNsProp() + nodePath() + nsProp() + previousElementSibling() + prop() + reconciliateNs() + replaceNode() + searchNs() + searchNsByHref() + setBase() + setContent() + setContentLen() + setLang() + setListDoc() + setName() + setNs() + setNsProp() + setProp() + setSpacePreserve() + setTreeDoc() + textConcat() + textMerge() + unlinkNode() + unsetNsProp() + unsetProp() + + # functions from module valid + isID() + isRef() + validNormalizeAttributeValue() + + # functions from module xinclude + xincludeProcessTree() + xincludeProcessTreeFlags() + + # functions from module xmlschemas + schemaValidateOneElement() + + # functions from module xpath + xpathCastNodeToNumber() + xpathCastNodeToString() + xpathCmpNodes() + + # functions from module xpathInternals + xpathNewNodeSet() + xpathNewValueTree() + xpathNextAncestor() + xpathNextAncestorOrSelf() + xpathNextAttribute() + xpathNextChild() + xpathNextDescendant() + xpathNextDescendantOrSelf() + xpathNextFollowing() + xpathNextFollowingSibling() + xpathNextNamespace() + xpathNextParent() + xpathNextPreceding() + xpathNextPrecedingSibling() + xpathNextSelf() + + # functions from module xpointer + xpointerNewCollapsedRange() + xpointerNewContext() + xpointerNewLocationSetNodes() + xpointerNewRange() + xpointerNewRangeNodes() + + +Class xmlDoc(xmlNode) + + # functions from module HTMLparser + htmlAutoCloseTag() + htmlIsAutoClosed() + + # functions from module HTMLtree + htmlDocContentDumpFormatOutput() + htmlDocContentDumpOutput() + htmlDocDump() + htmlGetMetaEncoding() + htmlNodeDumpFile() + htmlNodeDumpFileFormat() + htmlNodeDumpFormatOutput() + htmlNodeDumpOutput() + htmlSaveFile() + htmlSaveFileEnc() + htmlSaveFileFormat() + htmlSetMetaEncoding() + + # functions from module debugXML + debugCheckDocument() + debugDumpDocument() + debugDumpDocumentHead() + debugDumpEntities() + + # functions from module entities + addDocEntity() + addDtdEntity() + docEntity() + dtdEntity() + encodeEntities() + encodeEntitiesReentrant() + encodeSpecialChars() + newEntity() + parameterEntity() + + # functions from module relaxng + relaxNGNewDocParserCtxt() + relaxNGValidateDoc() + relaxNGValidateFullElement() + relaxNGValidatePopElement() + relaxNGValidatePushElement() + + # functions from module tree + copyDoc() + copyNode() + copyNodeList() + createIntSubset() + docCompressMode() + dump() + elemDump() + formatDump() + freeDoc() + getRootElement() + intSubset() + newCDataBlock() + newCharRef() + newDocComment() + newDocFragment() + newDocNode() + newDocNodeEatName() + newDocPI() + newDocProp() + newDocRawNode() + newDocText() + newDocTextLen() + newDtd() + newGlobalNs() + newReference() + nodeDumpOutput() + nodeGetBase() + nodeListGetRawString() + nodeListGetString() + reconciliateNs() + saveFile() + saveFileEnc() + saveFileTo() + saveFormatFile() + saveFormatFileEnc() + saveFormatFileTo() + searchNs() + searchNsByHref() + setDocCompressMode() + setListDoc() + setRootElement() + setTreeDoc() + stringGetNodeList() + stringLenGetNodeList() + + # functions from module valid + ID() + isID() + isMixedElement() + isRef() + removeID() + removeRef() + validCtxtNormalizeAttributeValue() + validNormalizeAttributeValue() + validateDocument() + validateDocumentFinal() + validateDtd() + validateDtdFinal() + validateElement() + validateNotationUse() + validateOneAttribute() + validateOneElement() + validateOneNamespace() + validatePopElement() + validatePushElement() + validateRoot() + + # functions from module xinclude + xincludeProcess() + xincludeProcessFlags() + + # functions from module xmlreader + NewWalker() + readerWalker() + + # functions from module xmlschemas + schemaNewDocParserCtxt() + schemaValidateDoc() + + # functions from module xpath + xpathNewContext() + xpathOrderDocElems() + + # functions from module xpointer + xpointerNewContext() + + +Class parserCtxt(parserCtxtCore) + # accessors + doc() + isValid() + lineNumbers() + loadSubset() + pedantic() + replaceEntities() + validate() + wellFormed() + + # functions from module HTMLparser + htmlCtxtReadDoc() + htmlCtxtReadFd() + htmlCtxtReadFile() + htmlCtxtReadMemory() + htmlCtxtReset() + htmlCtxtUseOptions() + htmlFreeParserCtxt() + htmlParseCharRef() + htmlParseChunk() + htmlParseDocument() + htmlParseElement() + + # functions from module parser + byteConsumed() + clearParserCtxt() + ctxtReadDoc() + ctxtReadFd() + ctxtReadFile() + ctxtReadMemory() + ctxtReset() + ctxtResetPush() + ctxtUseOptions() + initParserCtxt() + parseChunk() + parseDocument() + parseExtParsedEnt() + setupParserForBuffer() + stopParser() + + # functions from module parserInternals + decodeEntities() + handleEntity() + namespaceParseNCName() + namespaceParseNSDef() + nextChar() + parseAttValue() + parseAttributeListDecl() + parseCDSect() + parseCharData() + parseCharRef() + parseComment() + parseContent() + parseDocTypeDecl() + parseElement() + parseElementDecl() + parseEncName() + parseEncodingDecl() + parseEndTag() + parseEntityDecl() + parseEntityRef() + parseExternalSubset() + parseMarkupDecl() + parseMisc() + parseName() + parseNamespace() + parseNmtoken() + parseNotationDecl() + parsePEReference() + parsePI() + parsePITarget() + parsePubidLiteral() + parseQuotedString() + parseReference() + parseSDDecl() + parseStartTag() + parseSystemLiteral() + parseTextDecl() + parseVersionInfo() + parseVersionNum() + parseXMLDecl() + parserHandlePEReference() + parserHandleReference() + popInput() + scanName() + skipBlankChars() + stringDecodeEntities() + stringLenDecodeEntities() + + +Class xmlAttr(xmlNode) + + # functions from module debugXML + debugDumpAttr() + debugDumpAttrList() + + # functions from module tree + copyProp() + copyPropList() + freeProp() + freePropList() + removeProp() + + # functions from module valid + removeID() + removeRef() + + +Class xmlAttribute(xmlNode) +Class catalog() + + # functions from module catalog + add() + catalogIsEmpty() + convertSGMLCatalog() + dump() + remove() + resolve() + resolvePublic() + resolveSystem() + resolveURI() + + +Class xmlDtd(xmlNode) + + # functions from module debugXML + debugDumpDTD() + + # functions from module tree + copyDtd() + freeDtd() + + # functions from module valid + dtdAttrDesc() + dtdElementDesc() + dtdQAttrDesc() + dtdQElementDesc() + + +Class xmlElement(xmlNode) + + +Class xmlEntity(xmlNode) + + # functions from module parserInternals + handleEntity() +Class Error() + # accessors + code() + domain() + file() + level() + line() + message() + + # functions from module xmlerror + copyError() + resetError() + + +Class xmlNs(xmlNode) + + # functions from module tree + copyNamespace() + copyNamespaceList() + freeNs() + freeNsList() + newChild() + newDocNode() + newDocNodeEatName() + newDocRawNode() + newNodeEatName() + newNsProp() + newNsPropEatName() + newTextChild() + setNs() + setNsProp() + unsetNsProp() + + # functions from module xpathInternals + xpathNodeSetFreeNs() + + +Class outputBuffer(ioWriteWrapper) + + # functions from module HTMLtree + htmlDocContentDumpFormatOutput() + htmlDocContentDumpOutput() + htmlNodeDumpFormatOutput() + htmlNodeDumpOutput() + + # functions from module tree + nodeDumpOutput() + saveFileTo() + saveFormatFileTo() + + # functions from module xmlIO + getContent() + write() + writeString() + + +Class inputBuffer(ioReadWrapper) + + # functions from module xmlIO + grow() + push() + read() + + # functions from module xmlreader + Setup() + newTextReader() +Class xmlReg() + + # functions from module xmlregexp + regexpExec() + regexpIsDeterminist() + regexpPrint() +Class relaxNgParserCtxt() + + # functions from module relaxng + relaxNGParse() + relaxParserSetFlag() +Class relaxNgSchema() + + # functions from module relaxng + relaxNGDump() + relaxNGDumpTree() + relaxNGNewValidCtxt() + + # functions from module xmlreader + RelaxNGSetSchema() + + +Class relaxNgValidCtxt(relaxNgValidCtxtCore) + + # functions from module relaxng + relaxNGValidateDoc() + relaxNGValidateFullElement() + relaxNGValidatePopElement() + relaxNGValidatePushCData() + relaxNGValidatePushElement() + + # functions from module xmlreader + RelaxNGValidateCtxt() +Class SchemaParserCtxt() + + # functions from module xmlschemas + schemaParse() +Class Schema() + + # functions from module xmlreader + SetSchema() + + # functions from module xmlschemas + schemaDump() + schemaNewValidCtxt() + + +Class SchemaValidCtxt(SchemaValidCtxtCore) + + # functions from module xmlreader + SchemaValidateCtxt() + + # functions from module xmlschemas + schemaIsValid() + schemaSetValidOptions() + schemaValidCtxtGetOptions() + schemaValidCtxtGetParserCtxt() + schemaValidateDoc() + schemaValidateFile() + schemaValidateOneElement() + schemaValidateSetFilename() +Class xmlTextReaderLocator() + + # functions from module xmlreader + BaseURI() + LineNumber() + + +Class xmlTextReader(xmlTextReaderCore) + + # functions from module xmlreader + AttributeCount() + BaseUri() + ByteConsumed() + Close() + CurrentDoc() + CurrentNode() + Depth() + Encoding() + Expand() + GetAttribute() + GetAttributeNo() + GetAttributeNs() + GetParserColumnNumber() + GetParserLineNumber() + GetParserProp() + GetRemainder() + HasAttributes() + HasValue() + IsDefault() + IsEmptyElement() + IsNamespaceDecl() + IsValid() + LocalName() + LookupNamespace() + MoveToAttribute() + MoveToAttributeNo() + MoveToAttributeNs() + MoveToElement() + MoveToFirstAttribute() + MoveToNextAttribute() + Name() + NamespaceUri() + NewDoc() + NewFd() + NewFile() + NewMemory() + NewWalker() + Next() + NextSibling() + NodeType() + Normalization() + Prefix() + Preserve() + QuoteChar() + Read() + ReadAttributeValue() + ReadInnerXml() + ReadOuterXml() + ReadState() + ReadString() + RelaxNGSetSchema() + RelaxNGValidate() + RelaxNGValidateCtxt() + SchemaValidate() + SchemaValidateCtxt() + SetParserProp() + SetSchema() + Setup() + Standalone() + String() + Value() + XmlLang() + XmlVersion() +Class URI() + # accessors + authority() + fragment() + opaque() + path() + port() + query() + queryRaw() + scheme() + server() + setAuthority() + setFragment() + setOpaque() + setPath() + setPort() + setQuery() + setQueryRaw() + setScheme() + setServer() + setUser() + user() + + # functions from module uri + parseURIReference() + printURI() + saveUri() + + +Class ValidCtxt(ValidCtxtCore) + + # functions from module valid + validCtxtNormalizeAttributeValue() + validateDocument() + validateDocumentFinal() + validateDtd() + validateDtdFinal() + validateElement() + validateNotationUse() + validateOneAttribute() + validateOneElement() + validateOneNamespace() + validatePopElement() + validatePushCData() + validatePushElement() + validateRoot() +Class xpathContext() + # accessors + contextDoc() + contextNode() + contextPosition() + contextSize() + function() + functionURI() + setContextDoc() + setContextNode() + + # functions from module python + registerXPathFunction() + + # functions from module xpath + xpathContextSetCache() + xpathEval() + xpathEvalExpression() + xpathFreeContext() + + # functions from module xpathInternals + xpathNewParserContext() + xpathNsLookup() + xpathRegisterAllFunctions() + xpathRegisterNs() + xpathRegisteredFuncsCleanup() + xpathRegisteredNsCleanup() + xpathRegisteredVariablesCleanup() + xpathVariableLookup() + xpathVariableLookupNS() + + # functions from module xpointer + xpointerEval() +Class xpathParserContext() + # accessors + context() + + # functions from module xpathInternals + xpathAddValues() + xpathBooleanFunction() + xpathCeilingFunction() + xpathCompareValues() + xpathConcatFunction() + xpathContainsFunction() + xpathCountFunction() + xpathDivValues() + xpathEqualValues() + xpathErr() + xpathEvalExpr() + xpathFalseFunction() + xpathFloorFunction() + xpathFreeParserContext() + xpathIdFunction() + xpathLangFunction() + xpathLastFunction() + xpathLocalNameFunction() + xpathModValues() + xpathMultValues() + xpathNamespaceURIFunction() + xpathNextAncestor() + xpathNextAncestorOrSelf() + xpathNextAttribute() + xpathNextChild() + xpathNextDescendant() + xpathNextDescendantOrSelf() + xpathNextFollowing() + xpathNextFollowingSibling() + xpathNextNamespace() + xpathNextParent() + xpathNextPreceding() + xpathNextPrecedingSibling() + xpathNextSelf() + xpathNormalizeFunction() + xpathNotEqualValues() + xpathNotFunction() + xpathNumberFunction() + xpathParseNCName() + xpathParseName() + xpathPopBoolean() + xpathPopNumber() + xpathPopString() + xpathPositionFunction() + xpathRoot() + xpathRoundFunction() + xpathStartsWithFunction() + xpathStringFunction() + xpathStringLengthFunction() + xpathSubValues() + xpathSubstringAfterFunction() + xpathSubstringBeforeFunction() + xpathSubstringFunction() + xpathSumFunction() + xpathTranslateFunction() + xpathTrueFunction() + xpathValueFlipSign() + xpatherror() + + # functions from module xpointer + xpointerEvalRangePredicate() + xpointerRangeToFunction() diff --git a/python/setup.py b/python/setup.py index b985979..7cb8bfc 100755 --- a/python/setup.py +++ b/python/setup.py @@ -226,7 +226,7 @@ else: setup (name = "libxml2-python", # On *nix, the version number is created from setup.py.in # On windows, it is set by configure.js - version = "2.8.0", + version = "2.9.0", description = descr, author = "Daniel Veillard", author_email = "veillard@redhat.com", diff --git a/python/tests/Makefile.am b/python/tests/Makefile.am index 52c89fc..ab079bb 100644 --- a/python/tests/Makefile.am +++ b/python/tests/Makefile.am @@ -55,8 +55,11 @@ XMLS= \ invalid.xml \ test.dtd +CLEANFILES = core tmp.xml *.pyc + if WITH_PYTHON tests: $(PYTESTS) + @for f in $(XMLS) ; do test -f $$f || $(LN_S) $(srcdir)/$$f . ; done @echo "## running Python regression tests" -@(PYTHONPATH="..:../.libs:$(srcdir)/..:$$PYTHONPATH" ; \ export PYTHONPATH; \ @@ -69,6 +72,3 @@ tests: $(PYTESTS) else tests: endif - -clean: - rm -f *.pyc core diff --git a/python/tests/Makefile.in b/python/tests/Makefile.in index a2aaf89..699d403 100644 --- a/python/tests/Makefile.in +++ b/python/tests/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -48,11 +48,11 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -77,6 +77,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(exampledir)" DATA = $(dist_example_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -84,7 +90,6 @@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -121,6 +126,7 @@ HTML_DIR = @HTML_DIR@ HTML_OBJ = @HTML_OBJ@ HTTP_OBJ = @HTTP_OBJ@ ICONV_LIBS = @ICONV_LIBS@ +ICU_LIBS = @ICU_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -201,7 +207,6 @@ TEST_VTIME = @TEST_VTIME@ TEST_XINCLUDE = @TEST_XINCLUDE@ TEST_XPATH = @TEST_XPATH@ TEST_XPTR = @TEST_XPTR@ -THREADS_W32 = @THREADS_W32@ THREAD_CFLAGS = @THREAD_CFLAGS@ THREAD_LIBS = @THREAD_LIBS@ VERSION = @VERSION@ @@ -363,6 +368,7 @@ XMLS = \ invalid.xml \ test.dtd +CLEANFILES = core tmp.xml *.pyc all: all-am .SUFFIXES: @@ -419,9 +425,7 @@ uninstall-dist_exampleDATA: @$(NORMAL_UNINSTALL) @list='$(dist_example_DATA)'; test -n "$(exampledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(exampledir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(exampledir)" && rm -f $$files + dir='$(DESTDIR)$(exampledir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: @@ -476,13 +480,19 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -491,6 +501,8 @@ distclean-generic: maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am @@ -571,6 +583,7 @@ uninstall-am: uninstall-dist_exampleDATA @WITH_PYTHON_TRUE@tests: $(PYTESTS) +@WITH_PYTHON_TRUE@ @for f in $(XMLS) ; do test -f $$f || $(LN_S) $(srcdir)/$$f . ; done @WITH_PYTHON_TRUE@ @echo "## running Python regression tests" @WITH_PYTHON_TRUE@ -@(PYTHONPATH="..:../.libs:$(srcdir)/..:$$PYTHONPATH" ; \ @WITH_PYTHON_TRUE@ export PYTHONPATH; \ @@ -582,9 +595,6 @@ uninstall-am: uninstall-dist_exampleDATA @WITH_PYTHON_TRUE@ echo "-- $$test" ; echo "$$log" ; fi ; done) @WITH_PYTHON_FALSE@tests: -clean: - rm -f *.pyc core - # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/relaxng.c b/relaxng.c index 18f6a0b..f600d07 100644 --- a/relaxng.c +++ b/relaxng.c @@ -39,9 +39,10 @@ static const xmlChar *xmlRelaxNGNs = (const xmlChar *) "http://relaxng.org/ns/structure/1.0"; -#define IS_RELAXNG(node, type) \ +#define IS_RELAXNG(node, typ) \ ((node != NULL) && (node->ns != NULL) && \ - (xmlStrEqual(node->name, (const xmlChar *) type)) && \ + (node->type == XML_ELEMENT_NODE) && \ + (xmlStrEqual(node->name, (const xmlChar *) typ)) && \ (xmlStrEqual(node->ns->href, xmlRelaxNGNs))) @@ -60,7 +61,7 @@ static const xmlChar *xmlRelaxNGNs = (const xmlChar *) #define DEBUG_LIST 1 -#define DEBUG_INCLUDE 1 +#define DEBUG_INCLUDE 1 #define DEBUG_ERROR 1 @@ -71,7 +72,7 @@ static const xmlChar *xmlRelaxNGNs = (const xmlChar *) #define MAX_ERROR 5 -#define TODO \ +#define TODO \ xmlGenericError(xmlGenericErrorContext, \ "Unimplemented block at %s:%d\n", \ __FILE__, __LINE__); @@ -421,7 +422,7 @@ struct _xmlRelaxNGDocument { /************************************************************************ * * - * Some factorized error routines * + * Some factorized error routines * * * ************************************************************************/ @@ -564,9 +565,9 @@ xmlRngVErr(xmlRelaxNGValidCtxtPtr ctxt, xmlNodePtr node, int error, } /************************************************************************ - * * - * Preliminary type checking interfaces * - * * + * * + * Preliminary type checking interfaces * + * * ************************************************************************/ /** @@ -654,9 +655,9 @@ struct _xmlRelaxNGTypeLibrary { }; /************************************************************************ - * * - * Allocation functions * - * * + * * + * Allocation functions * + * * ************************************************************************/ static void xmlRelaxNGFreeGrammar(xmlRelaxNGGrammarPtr grammar); static void xmlRelaxNGFreeDefine(xmlRelaxNGDefinePtr define); @@ -1397,9 +1398,9 @@ xmlRelaxNGFreeValidState(xmlRelaxNGValidCtxtPtr ctxt, } /************************************************************************ - * * - * Semi internal functions * - * * + * * + * Semi internal functions * + * * ************************************************************************/ /** @@ -1429,9 +1430,9 @@ xmlRelaxParserSetFlag(xmlRelaxNGParserCtxtPtr ctxt, int flags) } /************************************************************************ - * * - * Document functions * - * * + * * + * Document functions * + * * ************************************************************************/ static xmlDocPtr xmlRelaxNGCleanupDoc(xmlRelaxNGParserCtxtPtr ctxt, xmlDocPtr doc); @@ -2007,9 +2008,9 @@ xmlRelaxNGLoadExternalRef(xmlRelaxNGParserCtxtPtr ctxt, } /************************************************************************ - * * - * Error functions * - * * + * * + * Error functions * + * * ************************************************************************/ #define VALID_ERR(a) xmlRelaxNGAddValidError(ctxt, a, NULL, NULL, 0); @@ -2360,7 +2361,7 @@ xmlRelaxNGAddValidError(xmlRelaxNGValidCtxtPtr ctxt, * generate the error directly */ if (((ctxt->flags & FLAGS_IGNORABLE) == 0) || - (ctxt->flags & FLAGS_NEGATIVE)) { + (ctxt->flags & FLAGS_NEGATIVE)) { xmlNodePtr node, seq; /* @@ -2390,9 +2391,9 @@ xmlRelaxNGAddValidError(xmlRelaxNGValidCtxtPtr ctxt, /************************************************************************ - * * - * Type library hooks * - * * + * * + * Type library hooks * + * * ************************************************************************/ static xmlChar *xmlRelaxNGNormalize(xmlRelaxNGValidCtxtPtr ctxt, const xmlChar * str); @@ -2847,12 +2848,12 @@ xmlRelaxNGCleanupTypes(void) } /************************************************************************ - * * - * Compiling element content into regexp * - * * + * * + * Compiling element content into regexp * + * * * Sometime the element content can be compiled into a pure regexp, * * This allows a faster execution and streamability at that level * - * * + * * ************************************************************************/ /* from automata.c but not exported */ @@ -3325,9 +3326,9 @@ xmlRelaxNGTryCompile(xmlRelaxNGParserCtxtPtr ctxt, xmlRelaxNGDefinePtr def) } /************************************************************************ - * * - * Parsing functions * - * * + * * + * Parsing functions * + * * ************************************************************************/ static xmlRelaxNGDefinePtr xmlRelaxNGParseAttribute(xmlRelaxNGParserCtxtPtr @@ -6705,9 +6706,9 @@ xmlRelaxNGParseDocument(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node) } /************************************************************************ - * * - * Reading RelaxNGs * - * * + * * + * Reading RelaxNGs * + * * ************************************************************************/ /** @@ -7521,7 +7522,7 @@ xmlRelaxNGParse(xmlRelaxNGParserCtxtPtr ctxt) xmlRngPErr(ctxt, (xmlNodePtr) doc, XML_RNGP_EMPTY, "xmlRelaxNGParse: %s is empty\n", (ctxt->URL ? ctxt->URL : BAD_CAST "schemas"), NULL); - + xmlFreeDoc(ctxt->document); ctxt->document = NULL; return (NULL); @@ -7663,9 +7664,9 @@ xmlRelaxNGSetParserStructuredErrors(xmlRelaxNGParserCtxtPtr ctxt, #ifdef LIBXML_OUTPUT_ENABLED /************************************************************************ - * * - * Dump back a compiled form * - * * + * * + * Dump back a compiled form * + * * ************************************************************************/ static void xmlRelaxNGDumpDefine(FILE * output, xmlRelaxNGDefinePtr define); @@ -7806,7 +7807,7 @@ xmlRelaxNGDumpDefine(FILE * output, xmlRelaxNGDefinePtr define) * xmlRelaxNGDumpGrammar: * @output: the file output * @grammar: a grammar structure - * @top: is this a top grammar + * @top: is this a top grammar * * Dump a RelaxNG structure back */ @@ -7899,9 +7900,9 @@ xmlRelaxNGDumpTree(FILE * output, xmlRelaxNGPtr schema) #endif /* LIBXML_OUTPUT_ENABLED */ /************************************************************************ - * * - * Validation of compiled content * - * * + * * + * Validation of compiled content * + * * ************************************************************************/ static int xmlRelaxNGValidateDefinition(xmlRelaxNGValidCtxtPtr ctxt, xmlRelaxNGDefinePtr define); @@ -8044,9 +8045,9 @@ xmlRelaxNGValidateCompiledContent(xmlRelaxNGValidCtxtPtr ctxt, } /************************************************************************ - * * - * Progressive validation of when possible * - * * + * * + * Progressive validation of when possible * + * * ************************************************************************/ static int xmlRelaxNGValidateAttributeList(xmlRelaxNGValidCtxtPtr ctxt, xmlRelaxNGDefinePtr defines); @@ -8480,9 +8481,9 @@ xmlRelaxNGValidateFullElement(xmlRelaxNGValidCtxtPtr ctxt, } /************************************************************************ - * * - * Generic interpreted validation implementation * - * * + * * + * Generic interpreted validation implementation * + * * ************************************************************************/ static int xmlRelaxNGValidateValue(xmlRelaxNGValidCtxtPtr ctxt, xmlRelaxNGDefinePtr define); @@ -10842,9 +10843,9 @@ xmlRelaxNGCleanPSVI(xmlNodePtr node) { return; } /************************************************************************ - * * - * Validation interfaces * - * * + * * + * Validation interfaces * + * * ************************************************************************/ /** diff --git a/result/HTML/53867.html b/result/HTML/53867.html new file mode 100644 index 0000000..f4902af --- /dev/null +++ b/result/HTML/53867.html @@ -0,0 +1,70 @@ + + + + + + diff --git a/result/HTML/53867.html.err b/result/HTML/53867.html.err new file mode 100644 index 0000000..e69de29 diff --git a/result/HTML/53867.html.sax b/result/HTML/53867.html.sax new file mode 100644 index 0000000..81a9f15 --- /dev/null +++ b/result/HTML/53867.html.sax @@ -0,0 +1,26 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(style) +SAX.cdata( +....... +....................., 1000) +SAX.cdata(.............................., 1000) +SAX.cdata(.............................., 1000) +SAX.cdata(................ +............., 977) +SAX.endElement(style) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.endDocument() diff --git a/result/HTML/Down.html b/result/HTML/Down.html new file mode 100644 index 0000000..8489033 --- /dev/null +++ b/result/HTML/Down.html @@ -0,0 +1,13 @@ + + + + This service is temporary down + + + +

            Sorry, this service is temporary down

            +We are doing our best to get it back on-line, + +

            The W3C system administrators

            + + diff --git a/result/HTML/Down.html.err b/result/HTML/Down.html.err new file mode 100644 index 0000000..e69de29 diff --git a/result/HTML/Down.html.sax b/result/HTML/Down.html.sax new file mode 100644 index 0000000..c23c332 --- /dev/null +++ b/result/HTML/Down.html.sax @@ -0,0 +1,37 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(head) +SAX.ignorableWhitespace( + , 3) +SAX.startElement(title) +SAX.characters(This service is temporary down, 30) +SAX.endElement(title) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(head) +SAX.ignorableWhitespace( + +, 2) +SAX.startElement(body, bgcolor='#FFFFFF') +SAX.characters( +, 1) +SAX.startElement(h1, align='center') +SAX.characters(Sorry, this service is tempora, 37) +SAX.endElement(h1) +SAX.characters( +We are doing our best to get , 48) +SAX.startElement(p) +SAX.characters(The W3C system administrators, 29) +SAX.endElement(p) +SAX.characters( +, 1) +SAX.endElement(body) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.endDocument() diff --git a/result/HTML/attrents.html b/result/HTML/attrents.html new file mode 100644 index 0000000..f7feaa6 --- /dev/null +++ b/result/HTML/attrents.html @@ -0,0 +1,6 @@ + + + +
            + + diff --git a/result/HTML/attrents.html.err b/result/HTML/attrents.html.err new file mode 100644 index 0000000..e69de29 diff --git a/result/HTML/attrents.html.sax b/result/HTML/attrents.html.sax new file mode 100644 index 0000000..c1cfb42 --- /dev/null +++ b/result/HTML/attrents.html.sax @@ -0,0 +1,21 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(html) +SAX.ignorableWhitespace( +, 2) +SAX.startElement(body, bgcolor='#FFFFFF') +SAX.characters( + , 18) +SAX.startElement(a, href='mailto:katherine@cbfanc.org,website@bis.doc.gov?subject=South San Francisco BIS Seminar - October 16th') +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 2) +SAX.endElement(body) +SAX.ignorableWhitespace( +, 2) +SAX.endElement(html) +SAX.ignorableWhitespace( +, 2) +SAX.endDocument() diff --git a/result/HTML/autoclose.html b/result/HTML/autoclose.html new file mode 100644 index 0000000..cacf4ed --- /dev/null +++ b/result/HTML/autoclose.html @@ -0,0 +1,4 @@ + + +
            + diff --git a/result/HTML/autoclose.html.err b/result/HTML/autoclose.html.err new file mode 100644 index 0000000..e69de29 diff --git a/result/HTML/autoclose.html.sax b/result/HTML/autoclose.html.sax new file mode 100644 index 0000000..5a45627 --- /dev/null +++ b/result/HTML/autoclose.html.sax @@ -0,0 +1,11 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(html) +SAX.startElement(body) +SAX.startElement(hr) +SAX.endElement(hr) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(body) +SAX.endElement(html) +SAX.endDocument() diff --git a/result/HTML/autoclose2.html b/result/HTML/autoclose2.html new file mode 100644 index 0000000..1ac8f99 --- /dev/null +++ b/result/HTML/autoclose2.html @@ -0,0 +1,3 @@ + +

            toto +

            diff --git a/result/HTML/autoclose2.html.err b/result/HTML/autoclose2.html.err new file mode 100644 index 0000000..e69de29 diff --git a/result/HTML/autoclose2.html.sax b/result/HTML/autoclose2.html.sax new file mode 100644 index 0000000..d1e6abb --- /dev/null +++ b/result/HTML/autoclose2.html.sax @@ -0,0 +1,11 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(html) +SAX.startElement(body) +SAX.startElement(p) +SAX.characters(toto +, 5) +SAX.endElement(p) +SAX.endElement(body) +SAX.endElement(html) +SAX.endDocument() diff --git a/result/HTML/autoclose3.html b/result/HTML/autoclose3.html new file mode 100644 index 0000000..13461aa --- /dev/null +++ b/result/HTML/autoclose3.html @@ -0,0 +1,7 @@ + +
              +
            • item 1 +
            • +
            • item 2 +
            • +
            diff --git a/result/HTML/autoclose3.html.err b/result/HTML/autoclose3.html.err new file mode 100644 index 0000000..e69de29 diff --git a/result/HTML/autoclose3.html.sax b/result/HTML/autoclose3.html.sax new file mode 100644 index 0000000..25e06ea --- /dev/null +++ b/result/HTML/autoclose3.html.sax @@ -0,0 +1,19 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(html) +SAX.startElement(body) +SAX.startElement(ul) +SAX.characters( +, 1) +SAX.startElement(li) +SAX.characters(item 1 +, 7) +SAX.endElement(li) +SAX.startElement(li) +SAX.characters(item 2 +, 7) +SAX.endElement(li) +SAX.endElement(ul) +SAX.endElement(body) +SAX.endElement(html) +SAX.endDocument() diff --git a/result/HTML/cf_128.html b/result/HTML/cf_128.html new file mode 100644 index 0000000..e2261ea --- /dev/null +++ b/result/HTML/cf_128.html @@ -0,0 +1,24 @@ + + + +gnome-xml push mode bug + + + + + + + + +
            + Foo1 + + + + +
            Foo2

            +

            +
            +
            Foo3
            + + diff --git a/result/HTML/cf_128.html.err b/result/HTML/cf_128.html.err new file mode 100644 index 0000000..e69de29 diff --git a/result/HTML/cf_128.html.sax b/result/HTML/cf_128.html.sax new file mode 100644 index 0000000..8f66a42 --- /dev/null +++ b/result/HTML/cf_128.html.sax @@ -0,0 +1,69 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(HTML, -//W3C//DTD HTML 4.0 Transitional//EN, http://www.w3.org/TR/REC-html40/strict.dtd) +SAX.startElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(title) +SAX.characters(gnome-xml push mode bug, 23) +SAX.endElement(title) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(body) +SAX.characters( + +, 2) +SAX.startElement(table, border='4') +SAX.characters( + , 3) +SAX.startElement(tr) +SAX.characters( + , 5) +SAX.startElement(td, bgcolor='white') +SAX.characters( + Foo1 + , 8) +SAX.startElement(table, border='4') +SAX.characters( + , 4) +SAX.startElement(tr) +SAX.characters( + , 6) +SAX.startElement(td) +SAX.characters(Foo2, 4) +SAX.startElement(p) +SAX.endElement(p) +SAX.startElement(p) +SAX.endElement(p) +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(table) +SAX.characters( + , 5) +SAX.endElement(td) +SAX.characters( + , 5) +SAX.startElement(td, bgcolor='blue') +SAX.characters(Foo3, 4) +SAX.endElement(td) +SAX.characters( + , 4) +SAX.endElement(tr) +SAX.characters( + , 3) +SAX.endElement(table) +SAX.characters( + , 3) +SAX.endElement(body) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(html) +SAX.ignorableWhitespace( +, 3) +SAX.endDocument() diff --git a/result/HTML/doc2.htm b/result/HTML/doc2.htm new file mode 100644 index 0000000..4f959e9 --- /dev/null +++ b/result/HTML/doc2.htm @@ -0,0 +1,30 @@ + + + +Welcome to Copernic.com + + + + + + + + + + + + + + + + <body bgcolor="#FFFFFF" text="#000000" link="#000080" vlink="#000080" alink="#000080" topmargin="0" leftmargin="0" marginheight="0" marginwidth="0"> + <p>This page uses frames, but your browser doesn't support them.</p> + </body> + + + diff --git a/result/HTML/doc2.htm.err b/result/HTML/doc2.htm.err new file mode 100644 index 0000000..5ac09cd --- /dev/null +++ b/result/HTML/doc2.htm.err @@ -0,0 +1,3 @@ +./test/HTML/doc2.htm:10: HTML parser error : Misplaced DOCTYPE declaration + + + +BP6.com #1 online resource for the BP6 Mobo.... + + + + + + + + + + + +

            +

            +
            + + + + + + + + + + + + + +
            +
            +

            Monday, July 31st, 2000

            +
            + + + + +
            +
            +

            +

            + + + + + + +
            +
            +
            + + + + + + + + + + + + +
            +

            Abit BP6 Motherboard specification and information.
            BP6 Specs +

            +
            +

            How to cool the BX Chipset on your BP6.
            BX Cooling +

            +
            +

            The U;timate Gaming Contest - Coming Soon!
            UGM Contest +

            +
            +

            Cooling & Heatsink review for the BP6.
            Heatsinks +

            +
            +

            BP6 101 - Class is now in session. Welcome newbies!
            BP6 101 +

            +
            +

            Install guide for installing Windows 2000 on the BP6
            Win2k Install +

            +
            +

            Taking a first look at the Abit Linux release called
            Gentus +

            +
            +
            +
            +
            +
            +
            + + + + + + + + +
            + + + + + + +
            +
            REVIEWS
            +
            +
            BP6 Reviews
            BP6 Watercooling
            BX Chipset Cooling
            Benchmarks
            BP6FSB Utility
            PowerLeap NEO S370
            SETI on the BP6
            Golden Orbs I
            Golden Orbs II
            VTT Solution

            NAVIGATE +
            +
            News
            Online Text Chat
            Voice Chat
            Messageboard
            Temp. Converter
            Picture Gallery
            Latest BIOS
            Drivers & Files
            UGM of the week
            BP6 Contest

            OTHER STUFF + +
            +
            Who is Tim?
            Contact BP6.com
            Affiliates Section
            Sponsors Section
            Links

            PC SPECIALS +
            +
            Vendor + Specials


            Pic of the day +
            + +
            +

            No picture is available for today.

            +
            +
            +
            +
            +
            +
            +
            +
            +

            +

            + + + + + + +
            +
            + +
            +
            Headlines
            Chat + with ABIT - 8:09PM PDT
            Fixed + wallpaper - 11:47PM PDT
            Seti + update - 10:40PM PDT
            Judge + gives Napster the Boot!! - 2:10PM PDT
            Ram + Sinks.. more cooling for small places. - 8:54AM + PDT
            is + it [H]ard? - 9:19PM PDT
            WiLd + CaSe!! - 1:40PM PDT
            What + the heck is a Peltier?!?! - 10:05AM PDT
            HELLO + EVERYONE!!! - 10:03PM PDT
            BP6 + Q3 server up and running.. - 2:06AM PDT

            + + + + + + +
            Sunday, + July 30, 2000
            +
            Chat with + ABIT
            Posted by Holodeck2 @ 8:09PM + PDT  0 comments +  | top
            I’m slacking a little. All game no + work makes Holodeck2 a happy boy :-)

            Wallpaper update: I got + off my lazy ass and redid the 1280x1024 wall paper, now it has the 2 + celerons.

            Fullon3d had a live chat with that Eric guy from Abit. + Submitted by: MJS

            Here’s a little clip:
            [Falcon] + BP6-2??
            [EricBoeing] We already have a micro ATX dual flip-chip + board
            [EricBoeing] but it's OEM only
            [EricBoeing] the full ATX + version should be out Septemberish


            + + + + + + +
            Thursday, + July 27, 2000
            +
            Fixed + wallpaper
            Posted by Holodeck2 @ 11:47PM + PDT  5 comments +  | top
            Get them now!!
            This is a + fixed bp6 wallpaper. In all the popular flavors, err... + resolutions.

            It's still the Intels Inside one with a spelling + change; from "Mothboard" to "Motherboard"

            Thanks to Matt for + pointing that out to me.
            I would also like to thank Kevin for + hosting my last batch and Radu for the previous "DUEL"/"DUAL" + error.
            And 1 more person, THANK YOU TIM for letting me borrow + your server space ;-)

            If you need a weird resolution, feel + free to e-mail me requesting + for one.
            If you have ideas or more errors to point out, mailto:Holodeck2@home.com

            800x600
            1024x768
            1152x864
            1280x1024
            1600x1200
            +

            Enjoy :-)
            +

            +

            Holodeck2,
            [H]ard at + work on the Brand Spanking New Wallpaper.



            Seti update
            Posted by Holodeck2 @ 10:40PM + PDT  5 comments +  | top

            You like the + pic?

            Bp6 User Group Update:
            Completed 61531 + units!!
            #168 on Top 200 All Groups (Going to pass CLRC in + a few days)
            #74 on Top 200 Teams (Gaining fast on + Starfleet)

            We are flying though at the speed of light (may be + a little slower).
            Good job everyone!!

            Check this page at + least once a day for new stuff :-)


            Judge gives Napster the + Boot!!
            Posted by Holodeck2 @ 2:10PM + PDT  0 comments +  | top
            Good afternoon for everyone living in + EST. I was going to post today morning but I didn't. Here's my + story:
            I woke up and thought about posting something but I + decided to wax my car before the sun came up (draw your own + conclusions), wax on, wax off, wax on,..., did that for about an + hour. Then I saw the sun rise (Aaahh I'm melting... not). I sat in + front of my comp and started to search for good news to post. Saw + that a stoopid judge temporally shuts down napster. Goes to room and + cry. and now I'm here :-)

            Judge shuts Napster down +


            Check out the Goofy guy in the suit
            He's Sean + Fanning, founder of Napster.

            Got news?? mailto:Holodeck2@home.com


            Ram Sinks.. more cooling for small + places.
            Posted by tim @ 8:54AM PDT  0 comments +  | top
            Need some cooling for your Videocard + memory to get a little extra overclockability and FPS? Overclockers Hiedout Ram Sinks They just notified + me of their new design.


            + + + + + + +
            Wednesday, July 26, + 2000
            +
            is it + [H]ard?
            Posted by Holodeck2 @ 9:19PM + PDT  0 comments +  | top
            Big heatsinks are good, very good. The + bigger the better.
            You can never can have a too big of heatsink + on a small chip (CPU, GPU, CHIPSET, etc)


            My overclocked + Voodoo3 2000 with a BIG mofo heatsink on top.
            Peltier and + watercooling next up :-)
            (if you pry off the heatsink you void + the warranty )

            it was originally posted on [H]ardOCP
            I’m not only a + BP6er but also a [H]ardOCPer


            WiLd CaSe!!
            Posted by Holodeck2 @ 1:40PM + PDT  8 comments +  | top
            Now this person really knows how to + keep his case cool!!
            Addin an 18" Fan!! WOW!!


            Click to go to his + site.


            What the heck is a + Peltier?!?!
            Posted by Holodeck2 @ 10:05AM + PDT  6 comments +  | top
            This is for all you people who wanted + to know what a peltier is.

            The quest fo the Perfect + Peltier

            Thanks to + TweakMax.com +

            Note: Today morning when I woke up I saw my whole screen + cluttered with a bunch of IMs!! I live in the USA on EST. If you + live somewhere else please check the time in my area. for example: + If you live in Europe and IM me in the morning your time I would be + sleeping it would be like 4 in the morning here. Just to let you + know
            I'm not angry at anyone... + good thing I have a long fuse


            + + + + + + +
            Tuesday, + July 25, 2000
            +
            HELLO + EVERYONE!!!
            Posted by Holodeck2 @ 10:03PM + PDT 
            Hello + everyone, Woohoo!! I'm on!!
            Who is this Holodeck2 person + anyways?!?! Read on :-)
            I’m a regular on the bp6 messageboard, + trying to help people out with their problems.
            I’m the + self-proclaimed bp6 cooling expert, If you have a cooling idea, I’ve + probably already done it and can offer some incite.
            My computer + is always on so you can contact me whenever... problem is, I'm not + always in front of it. I'll try to update this page and keep + everyone happy :-)
            Any Questions or comments, you can either + contact me or post it on the messageboard.

            Ways to contact + me.
            E-mail: Holodeck2@home.com (All E-mails + will be answered in 24 hours or less, I guarantee it.)
            When you + write me an e-mail please put in the subject line "BP6" then the + rest of your subject so my e-mail program can sort it, thanks
            AIM: Holodeck2 (instant response + if I’m in front of my comp and not trying to frag someone)
            ICQ: 82640218 (rarely + on)

            P.S. If someone named “Digital Vortex” on either Quake 3 + or 2 frags you, it’s probably me. ;-)


            + + + + + + +
            Monday, + July 24, 2000
            +
            BP6 Q3 server up and + running..
            Posted by tim @ 2:06AM PDT  3 comments +  | top
            Setup a Q3 server for anyone wanting + to practice in preparation for Quakecon.. Connect to bp6.dyndns.org + default port. (SERVER: BP6 system, 256 MB ram, celeron 600 on a T3 + connection)... Will be moved to another BP6 server eventually. This + is only a temporary test of the system and net connection.
            (BTW- + there are a few bot's running around in there..)


            BIOS Savior to the + rescue....
            Posted by tim @ 12:53AM PDT  2 comments +  | top
            Do you sweat during the BIOS flashing + procedure on your BP6 mobo? If so then this little gadget maybe + worth a first look. It's called the "RD1 BIOS Savior" and it + plugs in between your BIOS ROM and the BIOS ROM socket on your mobo. + This device will backup your BIOS and and allow you to recover your + BIOS in the event that your flashing session goes wrong. In the + event of a bad flash, just flip a switch on the RDI and boot up your + system, and flash again. This is also good as a failsafe in case you + don't believe in Virus Protecting your computer. (Thanks to Fred for + link)
            Manufacturers Brochure (PDF Format)
            Another info page
            Available for about $20



            + + + + + + +
            Monday, + July 17, 2000
            +
            How To + Overclock
            Posted by DareDevil @ 4:17PM + PDT  3 comments +  | top
            For those of you who are new to + overclocking, this guide will explain to you how to overclock, and + what some of the terms are. Like 'FSB' (what the heck is that!? + :0))

            How To Overclock


            The Cardcooler + XT
            Posted by DareDevil @ 4:11PM + PDT  1 comments +  | top
            Wow! I am impressed! Nevermind keeping + the CPU's cool... Keep your whole board cool!

            Even if your + not overclocking your system (or planning on it), this unit will + provide system stability and longevity. What would happen one day of + your GeForce or CPU fan went dead? You can also think of this + cooling unit as a backup to essential cooling fans in your + system.

            Check this out!

            http://www.brokenpixel.com/articles/coolerXT/cardcoolerXT_1.shtml +


            'Nerd + Inside'
            Posted by DareDevil @ 11:53AM + PDT  1 comments +  | top
            We all need to have some fun + sometimes! Check out this little web site that sells 'nerd' clothing + ;) (I like the bibs in the Junior Hackerz section) :-Þ

            +


            Dual PSU Wiring diagram... (preview to + Part 1 Watercooling Project)
            Posted by tim @ 12:43AM PDT  11 comments +  | top
            When is comes to overclocking your + system, cooling plays a big role. Powering all of those fans in your + system can cause quite a strain on your PSU (Power Supply Unit). + Depending on the number of peripherals in your system, adding a more + powerfull PSU or adding a second PSU may be neccesary. For + watercooling and using peltiers, dedicating a second PSU to power + the Peltiers (TEC's) is a good idea. Here I have come up with 2 + diagrams on how I wired dual 300 watt ATX power supply units for the + Blizzard BP6 watercooling project. Consider this part of Step 1. + More will follow this week. BTW.. hacking up your PSU's is very + dangerous and is not recommended unless you know what you are doing. +

            View Diagram 1 here.
            View Diagram 2 here.

            I used Tap-In Squeeze Connectors and + 22 guage wire to connect the wires. You can get them at Radio Shack + Part# 64-3053 or click here.


            + + + + + + +
            Sunday, + July 16, 2000
            +
            RAM Overclocking? + Hmmmmm.
            Posted by DareDevil @ 9:57AM + PDT  3 comments +  | top
            I know we're pretty big overclockers + here at BP6.Com so, this is a post of choice ;-) I've seen the + question in the message boards, 'why can't I overclock any higher?' + Well, it's not always the CPU that's holding you back... Many other + things need to be taken care of to overclock such as your PCI + devices (can they handle the higher bus speed), the actual CPU, and + your RAM. I'm not saying that that a high quality stick of silicon + will enable you to overclock your 366MHz to 1 GHZ (I wish!), but, it + will certainly help =)

            Extreme Overclocking has tested + (overclocked) PC133 RAM to there full potential. Here's a quote I + found and the link:

            Well, the guys at Extreme Overclocking + have been hard at work again with their latest review. This time + they have put seven 128MB PC133 memory modules through the torture + tests to determine their maximum overclocking potential. Which one's + came out on top? Read the review to find out....

            Cooked RAM... Yummie

            The + ÐÐ.


            CPU + Guide
            Posted by DareDevil @ 9:17AM + PDT  0 comments +  | top
            A follow up on the 'Weekly CPU + Prices', this guide will help you determine which cpu is best for + you (and your board ;-)). Sent to me by Spanky, here's the + link:

            +
          • http://www6.tomshardware.com/howto/00q2/000412/index.html


          • + + + + + + +
            Saturday, + July 15, 2000
            +
            Weekly CPU + Prices
            Posted by DareDevil @ 11:29AM + PDT  2 comments +  | top
            Wow, found this very useful! Wanting + to buy a new CPU? Check out this detailed price list!

            Click Here.

            Thanks Sharky + Extreme!


            Fast Wallpapers
            Posted by DareDevil @ 9:51AM + PDT  0 comments +  | top
            FAST-MHz has released some wallpapers! + Click here to view them. They come in sizes + 800x600 1024x768 and 1152x864. If you have your desktop set at a + larger size, just use the 'stretch' function in desktop properties + instead of 'center'. Works great.

            In other news, we want to + finnish off all the sections at BP6.Com so, to start, we're going to + work on the Picture Gallery. To help us out, you can send in + all your cool, wierd, crazy pics that you may have to: thedaredevil@bp6.com. (The + topic being computers, duh! :0) And no... I don't want to recieve + any porno piccies in my mailbox! I have enough of those!) Kidding + guys.

            Okay, that's all for now.

            The + ÐÐ.


            + + + + + + +
            Friday, + July 14, 2000
            +
            Hey + There!
            Posted by DareDevil @ 5:05PM + PDT  7 comments +  | top
            Hey guys, just wanted to introduce + myself, some of you may have already met me on the BP6.com board. + I'll be posting up news from time to time now so, if you'd like, you + may send me some news to be posted if you find any ( we don't want + to flood Tim ;-) ).

            My e-mail address is killz@i82hq.com

            Ciao for + now.

            The ÐÐ.


            +
            +
            +
            +
            +
            +

            +

            + + + + + + +
            +
            + +
            +
            Newsletter


            +
            + +
            Search news


            News + archive +
            +
            + + + + + + + +
            + + + + +
            +
            +

            PC Price + Search

            +

            +
            +
            +



            BP6.com Special - Enter CODE: BP6-hd in the order (notes) to receive a discount
            BP6.COM + Special
            Code:BP6-hd
            + + + + + + +
             
            +
            +
            + +
            +
         
        + + + + + + +
        +

        Copyright + ©1999-2000 BP6.com, All rights reserved.
        Got news? Send it to
        Tim

        +
        + + + + diff --git a/result/HTML/doc3.htm.err b/result/HTML/doc3.htm.err new file mode 100644 index 0000000..cdf715a --- /dev/null +++ b/result/HTML/doc3.htm.err @@ -0,0 +1,81 @@ +./test/HTML/doc3.htm:10: HTML parser error : Misplaced DOCTYPE declaration +

        + ^ +./test/HTML/doc3.htm:236: HTML parser error : Unexpected end tag : font + Specials




        + ^ +./test/HTML/doc3.htm:747: HTML parser error : Unexpected end tag : font +om/ad_static.asp?pid=2097&sid=1881&asid=7708"> + ^ +./test/HTML/doc3.htm:747: HTML parser error : Unexpected end tag : p +=7708">

        + ^ +./test/HTML/doc3.htm:772: HTML parser error : Unexpected end tag : form + archive
        Code:BP6-hd

      < + ^ +./test/HTML/doc3.htm:840: HTML parser error : Unexpected end tag : td +
       
      + ^ diff --git a/result/HTML/doc3.htm.sax b/result/HTML/doc3.htm.sax new file mode 100644 index 0000000..13477f1 --- /dev/null +++ b/result/HTML/doc3.htm.sax @@ -0,0 +1,2878 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(HTML, -//W3C//DTD HTML 4.0 Transitional//EN, ) +SAX.comment( saved from url=(0025)http://bp6.gamesquad.net/ ) +SAX.comment( BEGIN Naviscope Javascript ) +SAX.startElement(html) +SAX.startElement(head) +SAX.startElement(title) +SAX.characters(BP6.com #1 online resource for, 47) +SAX.endElement(title) +SAX.ignorableWhitespace( +, 2) +SAX.startElement(script, language='javascript') +SAX.cdata( + NS_ActualOpen=wind, 199) +SAX.endElement(script) +SAX.ignorableWhitespace( +, 2) +SAX.comment( END Naviscope Javascript ) +SAX.error: Misplaced DOCTYPE declaration +SAX.internalSubset(HTML, -//W3C//DTD HTML 3.2//EN, ) +SAX.comment(last modified on Tuesday, February 22, 2000 11:47 PM ) +SAX.ignorableWhitespace( +, 2) +SAX.startElement(meta, content='text/html;CHARSET=iso-8859-1', http-equiv='Content-Type') +SAX.endElement(meta) +SAX.ignorableWhitespace( +, 2) +SAX.startElement(meta, content='Tim', name='Author') +SAX.endElement(meta) +SAX.ignorableWhitespace( +, 2) +SAX.startElement(style, type='text/css') +SAX.cdata(A.nav { + COLOR: #003399; TEXT, 115) +SAX.endElement(style) +SAX.ignorableWhitespace( + +, 4) +SAX.startElement(script, language='JavaScript') +SAX.cdata( +<!-- Idea by: Nic Wolfe (, 476) +SAX.endElement(script) +SAX.ignorableWhitespace( + +, 4) +SAX.startElement(meta, content='MSHTML 5.00.3103.1000', name='GENERATOR') +SAX.endElement(meta) +SAX.endElement(head) +SAX.ignorableWhitespace( +, 2) +SAX.startElement(body, alink='red', bgcolor='black', link='red', text='white', vlink='red') +SAX.characters( +, 2) +SAX.startElement(p) +SAX.characters( +, 2) +SAX.endElement(p) +SAX.startElement(div, align='center') +SAX.characters( +, 2) +SAX.startElement(table, border='0', cellpadding='0', cellspacing='0', width='80%') +SAX.characters( + , 4) +SAX.startElement(tbody) +SAX.characters( + , 4) +SAX.startElement(tr) +SAX.characters( + , 6) +SAX.startElement(td, valign='top', width='31') +SAX.startElement(a, href='http://bp6.gamesquad.net/') +SAX.startElement(img, align='bottom', border='0', height='74', src='doc3_files/logo.gif', width='252') +SAX.endElement(img) +SAX.endElement(a) +SAX.endElement(td) +SAX.characters( + , 6) +SAX.startElement(td, align='left', bgcolor='#000000') +SAX.startElement(img, height='15', src='doc3_files/spacer.gif', width='15') +SAX.endElement(img) +SAX.comment( START GAMESQUAD.NET IFRAME RICH MEDIA CODE ) +SAX.characters( , 1) +SAX.comment( © 2000 GameSquad.net All Rights Reserved. ) +SAX.startElement(iframe, border='0', frameborder='no', height='60', marginheight='0', marginwidth='0', scrolling='no', src='doc3_files/adcycle.htm', width='468') +SAX.characters( +, 1) +SAX.error: htmlParseEntityRef: expecting ';' +SAX.startElement(a, href='http://ads.gamesquad.net/addclick.exe/adclick.cgi?REGION=game|tech|ent&id=1', target='_top') +SAX.error: htmlParseEntityRef: expecting ';' +SAX.error: htmlParseEntityRef: expecting ';' +SAX.startElement(img, src='http://ads.gamesquad.net/addclick.exe/adcycle.cgi?group=52&media=1&id=1', width='468', height='60', border='0', alt='GSN ROS Ad') +SAX.endElement(img) +SAX.endElement(a) +SAX.characters( +, 1) +SAX.endElement(iframe) +SAX.comment( END GAMESQUAD.NET IFRAME RICH MEDIA CODE ) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(img, height='15', src='doc3_files/spacer.gif', width='400') +SAX.endElement(img) +SAX.characters( , 1) +SAX.endElement(td) +SAX.endElement(tr) +SAX.characters( + , 4) +SAX.startElement(tr) +SAX.characters( + , 6) +SAX.startElement(td, bgcolor='#003399', colspan='2') +SAX.characters( + , 8) +SAX.startElement(p, align='right') +SAX.startElement(img, align='right', border='0', height='18', hspace='0', src='doc3_files/trcorner.gif', width='20') +SAX.endElement(img) +SAX.startElement(img, align='left', border='0', height='18', hspace='0', src='doc3_files/tlcorner.gif', width='20') +SAX.endElement(img) +SAX.startElement(font, face='Verdana', size='2') +SAX.characters(Monday, July 31st, 2000, 23) +SAX.endElement(font) +SAX.characters( , 1) +SAX.endElement(p) +SAX.endElement(td) +SAX.endElement(tr) +SAX.characters( + , 4) +SAX.startElement(tr) +SAX.characters( + , 6) +SAX.startElement(td, colspan='2') +SAX.characters( + , 8) +SAX.startElement(table, bgcolor='#003399', border='0', cellpadding='0', cellspacing='4', width='100%') +SAX.startElement(tbody) +SAX.characters( + , 10) +SAX.startElement(tr) +SAX.characters( + , 12) +SAX.startElement(td, bgcolor='#666666', width='100%') +SAX.characters( + , 14) +SAX.startElement(center) +SAX.characters( + , 14) +SAX.startElement(p) +SAX.characters( + , 14) +SAX.endElement(p) +SAX.startElement(table, bgcolor='black', border='0', cellpadding='0', cellspacing='1', width='100%') +SAX.characters( + , 16) +SAX.startElement(tbody) +SAX.characters( + , 16) +SAX.startElement(tr) +SAX.characters( + , 18) +SAX.startElement(td, background='doc3_files/hscan.gif', bgcolor='#666666', width='100%') +SAX.startElement(img, height='1', src='doc3_files/spacer.gif', width='738') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + , 20) +SAX.startElement(center) +SAX.characters( + , 20) +SAX.startElement(table, border='0', cellpadding='2', cellspacing='0', width='91%') +SAX.characters( + , 22) +SAX.startElement(tbody) +SAX.characters( + , 22) +SAX.startElement(tr) +SAX.characters( + , 24) +SAX.startElement(td, valign='top', width='15%') +SAX.characters( + , 26) +SAX.startElement(p, align='center') +SAX.startElement(a, href='http://bp6.gamesquad.net/specs.phtml') +SAX.startElement(img, align='bottom', alt='Abit BP6 Motherboard specification and information.', border='0', height='45', src='doc3_files/bp6icon.gif', width='70') +SAX.endElement(img) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/specs.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(BP6 Specs, 9) +SAX.endElement(font) +SAX.endElement(a) +SAX.characters( + , 25) +SAX.endElement(p) +SAX.endElement(td) +SAX.characters( + , 24) +SAX.startElement(td, valign='top', width='15%') +SAX.characters( + , 26) +SAX.startElement(p, align='center') +SAX.startElement(a, href='http://bp6.gamesquad.net/bxcool.phtml') +SAX.startElement(img, align='bottom', alt='How to cool the BX Chipset on your BP6.', border='0', height='45', src='doc3_files/bxcool.gif', width='70') +SAX.endElement(img) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(BX Cooling, 10) +SAX.endElement(font) +SAX.endElement(a) +SAX.characters( + , 27) +SAX.endElement(p) +SAX.endElement(td) +SAX.characters( + , 24) +SAX.startElement(td, valign='top', width='15%') +SAX.characters( + , 26) +SAX.startElement(p, align='center') +SAX.startElement(a, href='http://bp6.gamesquad.net/contest.phtml') +SAX.startElement(img, align='bottom', alt='The U;timate Gaming Contest - Coming Soon!', border='0', height='45', src='doc3_files/ugmcontest.gif', width='70') +SAX.endElement(img) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/contest.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(UGM Contest, 11) +SAX.endElement(font) +SAX.endElement(a) +SAX.characters( + , 27) +SAX.endElement(p) +SAX.endElement(td) +SAX.characters( + , 24) +SAX.startElement(td, valign='top', width='15%') +SAX.characters( + , 26) +SAX.startElement(p, align='center') +SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml') +SAX.startElement(img, align='bottom', alt='Cooling & Heatsink review for the BP6.', border='0', height='45', src='doc3_files/alpha.gif', width='70') +SAX.endElement(img) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(Heatsinks, 9) +SAX.endElement(font) +SAX.endElement(a) +SAX.characters( + , 25) +SAX.endElement(p) +SAX.endElement(td) +SAX.characters( + , 24) +SAX.startElement(td, valign='top', width='15%') +SAX.characters( + , 26) +SAX.startElement(p, align='center') +SAX.startElement(a, href='http://bp6.gamesquad.net/101.phtml') +SAX.startElement(img, align='bottom', alt='BP6 101 - Class is now in session. Welcome newbies!', border='0', height='45', src='doc3_files/bp6101.gif', width='70') +SAX.endElement(img) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/101.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(BP6 101, 7) +SAX.endElement(font) +SAX.endElement(a) +SAX.characters( + , 25) +SAX.endElement(p) +SAX.endElement(td) +SAX.characters( + , 24) +SAX.startElement(td, valign='top', width='15%') +SAX.characters( + , 26) +SAX.startElement(p, align='center') +SAX.startElement(a, href='http://bp6.gamesquad.net/win2k_install.phtml') +SAX.startElement(img, align='bottom', alt='Install guide for installing Windows 2000 on the BP6 ', border='0', height='45', src='doc3_files/win2kht.gif', width='70') +SAX.endElement(img) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/win2k_install.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(Win2k Install, 13) +SAX.endElement(font) +SAX.endElement(a) +SAX.characters( + , 27) +SAX.endElement(p) +SAX.endElement(td) +SAX.characters( + , 24) +SAX.startElement(td, valign='top', width='15%') +SAX.characters( + , 26) +SAX.startElement(p, align='center') +SAX.startElement(a, href='http://www.gentus.com/') +SAX.error: error parsing attribute name +SAX.startElement(img, align='bottom', alt='Taking a first look at the Abit Linux release called ', border='0', height='45', src='doc3_files/gentusbox.gif', width='70', gentus) +SAX.endElement(img) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://www.gentus.com/') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(Gentus, 6) +SAX.endElement(font) +SAX.endElement(a) +SAX.characters( + , 21) +SAX.endElement(p) +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(tbody) +SAX.endElement(table) +SAX.endElement(center) +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(tbody) +SAX.endElement(table) +SAX.endElement(center) +SAX.error: Unexpected end tag : p +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(tbody) +SAX.endElement(table) +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(tbody) +SAX.endElement(table) +SAX.characters( +, 2) +SAX.startElement(table, bgcolor='#003399', border='0', cellspacing='6', width='80%') +SAX.characters( + , 4) +SAX.startElement(tbody) +SAX.characters( + , 4) +SAX.startElement(tr) +SAX.characters( + , 6) +SAX.startElement(td, bgcolor='black', valign='top', width='10%') +SAX.characters( + , 8) +SAX.startElement(table, border='0', cellpadding='3', cellspacing='0', width='100%') +SAX.characters( + , 10) +SAX.startElement(tbody) +SAX.characters( + , 10) +SAX.startElement(tr) +SAX.characters( + , 12) +SAX.startElement(td, width='100%') +SAX.startElement(img, height='1', src='doc3_files/spacer.gif', width='111') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(b) +SAX.startElement(font, color='yellow', face='Verdana', size='2') +SAX.characters(REVIEWS, 7) +SAX.endElement(font) +SAX.endElement(b) +SAX.startElement(font, face='Verdana', size='2') +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + , 14) +SAX.startElement(hr, align='center') +SAX.endElement(hr) +SAX.characters( + , 14) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/bp6reviews.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(BP6 Reviews, 11) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/h2o.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(BP6 Watercooling, 16) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/bxcool.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(BX Chipset Cooling, 18) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/benchmark.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(Benchmarks, 10) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/bp6fsb.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(BP6FSB Utility, 14) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/powerleap.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(PowerLeap NEO S370, 18) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/seti.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(SETI on the BP6, 15) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/orbs.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(Golden Orbs I, 13) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/orbs/orbs2.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(Golden Orbs II, 14) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/Q6fix.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(VTT Solution, 12) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(b) +SAX.startElement(font, color='yellow', face='Verdana', size='2') +SAX.characters(NAVIGATE, 8) +SAX.endElement(font) +SAX.endElement(b) +SAX.startElement(font, color='yellow', face='Verdana', size='2') +SAX.characters( + , 15) +SAX.startElement(hr, align='center') +SAX.endElement(hr) +SAX.characters( + , 14) +SAX.endElement(font) +SAX.startElement(a, href='http://www.bp6.com/') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(News, 4) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/chat.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(Online Text Chat, 16) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='javascript:popUp('chat_popup.htm')') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(Voice Chat, 10) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://216.247.220.192/Forum') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(Messageboard, 12) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/cooling') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(Temp. Converter, 15) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(Picture Gallery, 15) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/bios.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(Latest BIOS, 11) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/files/') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(Drivers , 8) +SAX.characters(&, 1) +SAX.characters( Files, 6) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(UGM of the week, 15) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/contest.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(BP6 Contest, 11) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(b) +SAX.startElement(font, color='yellow', face='Verdana', size='2') +SAX.characters(OTHER STUFF, 11) +SAX.endElement(font) +SAX.endElement(b) +SAX.startElement(font, color='yellow', face='Verdana', size='2') +SAX.characters( + + , 17) +SAX.startElement(hr, align='center') +SAX.endElement(hr) +SAX.characters( + , 14) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/whois.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(Who is Tim?, 11) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='mailto:tim@bp6.com') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(Contact BP6.com, 15) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(Affiliates Section, 18) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(font, face='Verdana', size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(Sponsors Section , 17) +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(a, href='http://bp6.gamesquad.net/links.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(Links, 5) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(b) +SAX.startElement(font, color='yellow', face='Verdana', size='2') +SAX.characters(PC SPECIALS, 11) +SAX.endElement(font) +SAX.endElement(b) +SAX.startElement(font, color='yellow', face='Verdana', size='2') +SAX.characters( + , 15) +SAX.startElement(hr, align='center') +SAX.endElement(hr) +SAX.characters( + , 14) +SAX.endElement(font) +SAX.startElement(a, href='http://bp6.gamesquad.net/specials.phtml') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(Vendor + Specials, 29) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.error: Unexpected end tag : font +SAX.error: Unexpected end tag : a +SAX.startElement(b) +SAX.startElement(font, color='yellow', face='Verdana', size='2') +SAX.characters(Pic of the day, 14) +SAX.endElement(font) +SAX.endElement(b) +SAX.characters( + , 14) +SAX.startElement(hr) +SAX.endElement(hr) +SAX.characters( + + , 29) +SAX.startElement(center) +SAX.characters( + , 14) +SAX.startElement(p, align='center') +SAX.startElement(font, face='Verdana, Arial, Helvetica', size='1') +SAX.startElement(a, href='http://bp6.gamesquad.net/cgi-bin/schlabo/potd.pl') +SAX.startElement(img, alt='No picture is available for today.', border='0', src='doc3_files/potd_na_110x83.gif') +SAX.endElement(img) +SAX.endElement(a) +SAX.characters( , 1) +SAX.endElement(font) +SAX.endElement(p) +SAX.endElement(center) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + , 14) +SAX.startElement(center) +SAX.endElement(center) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment(FTP Help) +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(tbody) +SAX.endElement(table) +SAX.endElement(td) +SAX.characters( + , 6) +SAX.startElement(td, bgcolor='white', valign='top', width='80%') +SAX.startElement(img, height='1', src='doc3_files/spacer.gif', width='490') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + , 8) +SAX.startElement(center) +SAX.characters( + , 8) +SAX.startElement(p) +SAX.characters( + , 8) +SAX.endElement(p) +SAX.startElement(table, bgcolor='white', border='0', cellpadding='10', cellspacing='0', height='100%', width='100%') +SAX.characters( + , 10) +SAX.startElement(tbody) +SAX.characters( + , 10) +SAX.startElement(tr) +SAX.characters( + , 12) +SAX.startElement(td, bgcolor='white', valign='top', width='100%') +SAX.characters( + , 14) +SAX.startElement(center) +SAX.startElement(a, href='http://www.encounter2001.com/', target='_blank') +SAX.startElement(img, border='0', height='60', src='doc3_files/banner2.gif', width='468') +SAX.endElement(img) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.endElement(center) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, name='news_top') +SAX.endElement(a) +SAX.startElement(font, color='#003366', face='verdana,arial', size='2') +SAX.startElement(b) +SAX.characters(Headlines, 9) +SAX.endElement(b) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='arial', size='1') +SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem965012956,78924,') +SAX.characters(Chat + with ABIT -, 41) +SAX.endElement(a) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='arial', size='1') +SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964766837,26344,') +SAX.characters(Fixed + wallpaper , 43) +SAX.endElement(a) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='arial', size='1') +SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964762841,25865,') +SAX.characters(Seti + update - 10, 39) +SAX.endElement(a) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='arial', size='1') +SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964732235,45502,') +SAX.characters(Judge + gives Naps, 57) +SAX.endElement(a) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='arial', size='1') +SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964713289,83675,') +SAX.characters(Ram + Sinks.. more, 83) +SAX.endElement(a) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='arial', size='1') +SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964671589,7831,') +SAX.characters(is + it [H]ard? - , 40) +SAX.endElement(a) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='arial', size='1') +SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964644047,60218,') +SAX.characters(WiLd + CaSe!! - 1:, 38) +SAX.endElement(a) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='arial', size='1') +SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964631110,84122,') +SAX.characters(What + the heck is, 58) +SAX.endElement(a) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='arial', size='1') +SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964587833,74573,') +SAX.characters(HELLO + EVERYONE!!, 45) +SAX.endElement(a) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, face='arial', size='1') +SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964429577,13375,') +SAX.characters(BP6 + Q3 server up, 57) +SAX.endElement(a) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment( NP v3.7.5 ) +SAX.startElement(a, name='newsitem965012956,78924,') +SAX.endElement(a) +SAX.characters( + , 14) +SAX.startElement(table, bgcolor='#003399', width='100%') +SAX.characters( + , 16) +SAX.startElement(tbody) +SAX.characters( + , 16) +SAX.startElement(tr) +SAX.characters( + , 18) +SAX.startElement(td) +SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2') +SAX.startElement(b) +SAX.characters(Sunday, + Ju, 41) +SAX.endElement(b) +SAX.endElement(font) +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(tbody) +SAX.endElement(table) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment(
      ) +SAX.startElement(b) +SAX.startElement(u) +SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2') +SAX.characters(Chat with + ABIT, 28) +SAX.endElement(font) +SAX.endElement(u) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#0066cc', face='Arial', size='1') +SAX.startElement(small) +SAX.characters(Posted by , 10) +SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com') +SAX.characters(Holodeck2, 9) +SAX.endElement(a) +SAX.characters( @ 8:09PM + PDT, 27) +SAX.endElement(small) +SAX.characters( , 2) +SAX.characters( , 1) +SAX.startElement(a, href='http://bp6.gamesquad.net/news/965012956,78924,.html') +SAX.startElement(img, border='0', src='doc3_files/comments.gif') +SAX.endElement(img) +SAX.characters(0 comments, 10) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top') +SAX.characters(top, 3) +SAX.endElement(a) +SAX.endElement(font) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='black', face='Arial', size='2') +SAX.characters(I, 1) +SAX.characters(’, 3) +SAX.characters(m slacking a little. All game , 83) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Wallpaper update: I got + , 130) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(b) +SAX.startElement(a, href='http://fullon3d.com/chat/abit/', target='3d') +SAX.characters(Fullon3d had a live chat with , 69) +SAX.endElement(a) +SAX.endElement(b) +SAX.characters(Submitted by: MJS, 17) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Here, 4) +SAX.characters(’, 3) +SAX.characters(s a little clip:, 16) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters([Falcon] + BP6-2??, 30) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters([EricBoeing] We already have a, 75) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters([EricBoeing] but it's OEM only, 30) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters([EricBoeing] the full ATX + , 74) +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, name='newsitem964766837,26344,') +SAX.endElement(a) +SAX.characters( + , 14) +SAX.startElement(table, bgcolor='#003399', width='100%') +SAX.characters( + , 16) +SAX.startElement(tbody) +SAX.characters( + , 16) +SAX.startElement(tr) +SAX.characters( + , 18) +SAX.startElement(td) +SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2') +SAX.startElement(b) +SAX.characters(Thursday, + , 43) +SAX.endElement(b) +SAX.endElement(font) +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(tbody) +SAX.endElement(table) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment(
      ) +SAX.startElement(b) +SAX.startElement(u) +SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2') +SAX.characters(Fixed + wallpaper, 29) +SAX.endElement(font) +SAX.endElement(u) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#0066cc', face='Arial', size='1') +SAX.startElement(small) +SAX.characters(Posted by , 10) +SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com') +SAX.characters(Holodeck2, 9) +SAX.endElement(a) +SAX.characters( @ 11:47PM + PDT, 28) +SAX.endElement(small) +SAX.characters( , 2) +SAX.characters( , 1) +SAX.startElement(a, href='http://bp6.gamesquad.net/news/964766837,26344,.html') +SAX.startElement(img, border='0', src='doc3_files/comments.gif') +SAX.endElement(img) +SAX.characters(5 comments, 10) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top') +SAX.characters(top, 3) +SAX.endElement(a) +SAX.endElement(font) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='black', face='Arial', size='2') +SAX.startElement(b) +SAX.characters(Get them now!!, 14) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(This is a + fixed , 106) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(img, height='180', src='doc3_files/3-800.jpg', width='240') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(It's still the Intels Inside o, 104) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Thanks to Matt for + , 57) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(I would also like to thank Kev, 133) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(And 1 more person, THANK YOU T, 90) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(If you need a weird resolution, 59) +SAX.startElement(a, href='mailto:Holodeck2@home.com') +SAX.characters(e-mail, 6) +SAX.endElement(a) +SAX.characters( me requesting + f, 37) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(If you have ideas or more erro, 47) +SAX.startElement(a, href='mailto:Holodeck2@home.com') +SAX.characters(mailto:Holodeck2@home.com, 25) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='doc3_files/3-800.jpg', target='800') +SAX.characters(800x600 , 8) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://www.bp6.com/pics/holodeck2/wallpaper/3-1024.jpg', target='800') +SAX.characters(1024x768 , 9) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://www.bp6.com/pics/holodeck2/wallpaper/3-1152.jpg', target='800') +SAX.characters(1152x864 , 9) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://www.bp6.com/pics/holodeck2/wallpaper/3-1280x1024.jpg', target='800') +SAX.characters(1280x1024 , 10) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://www.bp6.com/pics/holodeck2/wallpaper/3-1600.jpg', target='800') +SAX.characters(1600x1200 , 10) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + , 14) +SAX.startElement(p) +SAX.characters(Enjoy :-), 9) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + , 14) +SAX.endElement(p) +SAX.startElement(p) +SAX.startElement(a, href='mailto:Holodeck2@home.com') +SAX.characters(Holodeck2,, 10) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters([H]ard at + work o, 65) +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(p) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, name='newsitem964762841,25865,') +SAX.endElement(a) +SAX.startElement(b) +SAX.startElement(u) +SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2') +SAX.characters(Seti update, 11) +SAX.endElement(font) +SAX.endElement(u) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#0066cc', face='Arial', size='1') +SAX.startElement(small) +SAX.characters(Posted by , 10) +SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com') +SAX.characters(Holodeck2, 9) +SAX.endElement(a) +SAX.characters( @ 10:40PM + PDT, 28) +SAX.endElement(small) +SAX.characters( , 2) +SAX.characters( , 1) +SAX.startElement(a, href='http://bp6.gamesquad.net/news/964762841,25865,.html') +SAX.startElement(img, border='0', src='doc3_files/comments.gif') +SAX.endElement(img) +SAX.characters(5 comments, 10) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top') +SAX.characters(top, 3) +SAX.endElement(a) +SAX.endElement(font) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='black', face='Arial', size='2') +SAX.startElement(img, height='54', src='doc3_files/setiupdate.jpg', width='400') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(You like the + pic, 31) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Bp6 User Group Update:, 22) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Completed 61531 + , 37) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(b) +SAX.characters(#168 on Top 200 All Groups, 26) +SAX.endElement(b) +SAX.characters( (Going to pass CLRC in + , 49) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(b) +SAX.characters(#74 on Top 200 Teams, 20) +SAX.endElement(b) +SAX.characters( (Gaining fast on + , 42) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(We are flying though at the sp, 82) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Good job everyone!!, 19) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Check this page at + , 67) +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, name='newsitem964732235,45502,') +SAX.endElement(a) +SAX.startElement(b) +SAX.startElement(u) +SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2') +SAX.characters(Judge gives Napster the + , 44) +SAX.endElement(font) +SAX.endElement(u) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#0066cc', face='Arial', size='1') +SAX.startElement(small) +SAX.characters(Posted by , 10) +SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com') +SAX.characters(Holodeck2, 9) +SAX.endElement(a) +SAX.characters( @ 2:10PM + PDT, 27) +SAX.endElement(small) +SAX.characters( , 2) +SAX.characters( , 1) +SAX.startElement(a, href='http://bp6.gamesquad.net/news/964732235,45502,.html') +SAX.startElement(img, border='0', src='doc3_files/comments.gif') +SAX.endElement(img) +SAX.characters(0 comments, 10) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top') +SAX.characters(top, 3) +SAX.endElement(a) +SAX.endElement(font) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='black', face='Arial', size='2') +SAX.characters(Good afternoon for everyone li, 135) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(I woke up and thought about po, 488) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://www.msnbc.com/news/437532.asp', target='Judge vs Napster') +SAX.characters(Judge shuts Napster down + , 38) +SAX.startElement(p) +SAX.startElement(img, height='143', src='doc3_files/669915.jpg', width='200') +SAX.endElement(img) +SAX.endElement(p) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Check out the Goofy guy in the, 35) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(He's Sean + Fannin, 52) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Got news?? , 11) +SAX.startElement(a, href='mailto:Holodeck2@home.com') +SAX.characters(mailto:Holodeck2@home.com, 25) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, name='newsitem964713289,83675,') +SAX.endElement(a) +SAX.startElement(b) +SAX.startElement(u) +SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2') +SAX.characters(Ram Sinks.. more cooling for s, 56) +SAX.endElement(font) +SAX.endElement(u) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#0066cc', face='Arial', size='1') +SAX.startElement(small) +SAX.characters(Posted by , 10) +SAX.startElement(a, class='nav', href='mailto:tim@bp6.com') +SAX.characters(tim, 3) +SAX.endElement(a) +SAX.characters( @ 8:54AM PDT, 13) +SAX.endElement(small) +SAX.characters( , 2) +SAX.characters( , 1) +SAX.startElement(a, href='http://bp6.gamesquad.net/news/964713289,83675,.html') +SAX.startElement(img, border='0', src='doc3_files/comments.gif') +SAX.endElement(img) +SAX.characters(0 comments, 10) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top') +SAX.characters(top, 3) +SAX.endElement(a) +SAX.endElement(font) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='black', face='Arial', size='2') +SAX.characters(Need some cooling for your Vid, 106) +SAX.startElement(a, href='http://www.overclockershideout.com/RamSinks.html', target='_BLANK') +SAX.characters(Overclockers Hiedout Ram Sinks, 30) +SAX.endElement(a) +SAX.characters( They just notified + , 57) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(img, border='1', src='doc3_files/ramsink.jpg') +SAX.endElement(img) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, name='newsitem964671589,7831,') +SAX.endElement(a) +SAX.characters( + , 14) +SAX.startElement(table, bgcolor='#003399', width='100%') +SAX.characters( + , 16) +SAX.startElement(tbody) +SAX.characters( + , 16) +SAX.startElement(tr) +SAX.characters( + , 18) +SAX.startElement(td) +SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2') +SAX.startElement(b) +SAX.characters(Wednesday, July 26, + , 38) +SAX.endElement(b) +SAX.endElement(font) +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(tbody) +SAX.endElement(table) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment(
      ) +SAX.startElement(b) +SAX.startElement(u) +SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2') +SAX.characters(is it + [H]ard?, 27) +SAX.endElement(font) +SAX.endElement(u) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#0066cc', face='Arial', size='1') +SAX.startElement(small) +SAX.characters(Posted by , 10) +SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com') +SAX.characters(Holodeck2, 9) +SAX.endElement(a) +SAX.characters( @ 9:19PM + PDT, 27) +SAX.endElement(small) +SAX.characters( , 2) +SAX.characters( , 1) +SAX.startElement(a, href='http://bp6.gamesquad.net/news/964671589,7831,.html') +SAX.startElement(img, border='0', src='doc3_files/comments.gif') +SAX.endElement(img) +SAX.characters(0 comments, 10) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top') +SAX.characters(top, 3) +SAX.endElement(a) +SAX.endElement(font) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='black', face='Arial', size='2') +SAX.characters(Big heatsinks are good, very g, 71) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(You can never can have a too b, 99) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(img, height='173', src='doc3_files/voodooside2.jpg', width='230') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(My overclocked + V, 74) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Peltier and + wate, 50) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters((if you pry off the heatsink y, 66) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(it was originally posted on , 28) +SAX.startElement(a, href='http://www.hardocp.com/') +SAX.characters([H]ardOCP , 10) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(I, 1) +SAX.characters(’, 3) +SAX.characters(m not only a + BP6, 55) +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, name='newsitem964644047,60218,') +SAX.endElement(a) +SAX.startElement(b) +SAX.startElement(u) +SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2') +SAX.characters(WiLd CaSe!!, 11) +SAX.endElement(font) +SAX.endElement(u) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#0066cc', face='Arial', size='1') +SAX.startElement(small) +SAX.characters(Posted by , 10) +SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com') +SAX.characters(Holodeck2, 9) +SAX.endElement(a) +SAX.characters( @ 1:40PM + PDT, 27) +SAX.endElement(small) +SAX.characters( , 2) +SAX.characters( , 1) +SAX.startElement(a, href='http://bp6.gamesquad.net/news/964644047,60218,.html') +SAX.startElement(img, border='0', src='doc3_files/comments.gif') +SAX.endElement(img) +SAX.characters(8 comments, 10) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top') +SAX.characters(top, 3) +SAX.endElement(a) +SAX.endElement(font) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='black', face='Arial', size='2') +SAX.characters(Now this person really knows h, 70) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Addin an 18" Fan!! WOW!!, 24) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://www.envador.com/Photos/PVCII/', target='_blank') +SAX.startElement(img, src='doc3_files/TN_OpenedUp1.jpg') +SAX.endElement(img) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Click to go to his + , 38) +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, name='newsitem964631110,84122,') +SAX.endElement(a) +SAX.startElement(b) +SAX.startElement(u) +SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2') +SAX.characters(What the heck is a + , 44) +SAX.endElement(font) +SAX.endElement(u) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#0066cc', face='Arial', size='1') +SAX.startElement(small) +SAX.characters(Posted by , 10) +SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com') +SAX.characters(Holodeck2, 9) +SAX.endElement(a) +SAX.characters( @ 10:05AM + PDT, 28) +SAX.endElement(small) +SAX.characters( , 2) +SAX.characters( , 1) +SAX.startElement(a, href='http://bp6.gamesquad.net/news/964631110,84122,.html') +SAX.startElement(img, border='0', src='doc3_files/comments.gif') +SAX.endElement(img) +SAX.characters(6 comments, 10) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top') +SAX.characters(top, 3) +SAX.endElement(a) +SAX.endElement(font) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='black', face='Arial', size='2') +SAX.characters(This is for all you people who, 78) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(The quest fo the Perfect + , 46) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://www.tweakmax.com/html/peltier/peltier-1.cfm', target='_blank') +SAX.startElement(img, src='doc3_files/peltier.jpg') +SAX.endElement(img) +SAX.endElement(a) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Thanks to + , 24) +SAX.startElement(a, href='http://www.tweakmax.com/', target='_blank') +SAX.characters(TweakMax.com, 12) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Note: Today morning when I wok, 397) +SAX.startElement(img, src='doc3_files/smile.gif') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(I'm not angry at anyone... + , 71) +SAX.startElement(img, src='doc3_files/tongue.gif') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, name='newsitem964587833,74573,') +SAX.endElement(a) +SAX.characters( + , 14) +SAX.startElement(table, bgcolor='#003399', width='100%') +SAX.characters( + , 16) +SAX.startElement(tbody) +SAX.characters( + , 16) +SAX.startElement(tr) +SAX.characters( + , 18) +SAX.startElement(td) +SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2') +SAX.startElement(b) +SAX.characters(Tuesday, + J, 42) +SAX.endElement(b) +SAX.endElement(font) +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(tbody) +SAX.endElement(table) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment(
      ) +SAX.startElement(b) +SAX.startElement(u) +SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2') +SAX.characters(HELLO + EVERYONE!!, 31) +SAX.endElement(font) +SAX.endElement(u) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#0066cc', face='Arial', size='1') +SAX.startElement(small) +SAX.characters(Posted by , 10) +SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com') +SAX.characters(Holodeck2, 9) +SAX.endElement(a) +SAX.characters( @ 10:03PM + PDT, 28) +SAX.endElement(small) +SAX.characters( , 2) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='black', face='Arial', size='2') +SAX.characters(Hello + everyone, , 47) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Who is this Holodeck2 person , 66) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(I, 1) +SAX.characters(’, 3) +SAX.characters(m a regular on the bp6 message, 97) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(I, 1) +SAX.characters(’, 3) +SAX.characters(m the + self-procl, 85) +SAX.characters(’, 3) +SAX.characters(ve + probably alre, 68) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(My computer + is a, 200) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Any Questions or comments, you, 98) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Ways to contact + , 33) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(E-mail: , 8) +SAX.startElement(a, href='mailto:Holodeck2@home.com') +SAX.characters(Holodeck2@home.com, 18) +SAX.endElement(a) +SAX.characters( (All E-mails + wi, 82) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(When you + write m, 163) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://www.aol.com/aim') +SAX.characters(AIM: , 5) +SAX.endElement(a) +SAX.characters(Holodeck2 (instant response +, 46) +SAX.characters(’, 3) +SAX.characters(m in front of my comp and not , 53) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://www.icq.com/download') +SAX.characters(ICQ: , 5) +SAX.endElement(a) +SAX.characters(82640218 (rarely + , 34) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(P.S. If someone named , 22) +SAX.characters(“, 3) +SAX.characters(Digital Vortex, 14) +SAX.characters(”, 3) +SAX.characters( on either Quake 3 + , 51) +SAX.characters(’, 3) +SAX.characters(s probably me. ;-), 18) +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, name='newsitem964429577,13375,') +SAX.endElement(a) +SAX.characters( + , 14) +SAX.startElement(table, bgcolor='#003399', width='100%') +SAX.characters( + , 16) +SAX.startElement(tbody) +SAX.characters( + , 16) +SAX.startElement(tr) +SAX.characters( + , 18) +SAX.startElement(td) +SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2') +SAX.startElement(b) +SAX.characters(Monday, + Ju, 41) +SAX.endElement(b) +SAX.endElement(font) +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(tbody) +SAX.endElement(table) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment(
      ) +SAX.startElement(b) +SAX.startElement(u) +SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2') +SAX.characters(BP6 Q3 server up and + , 44) +SAX.endElement(font) +SAX.endElement(u) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#0066cc', face='Arial', size='1') +SAX.startElement(small) +SAX.characters(Posted by , 10) +SAX.startElement(a, class='nav', href='mailto:tim@bp6.com') +SAX.characters(tim, 3) +SAX.endElement(a) +SAX.characters( @ 2:06AM PDT, 13) +SAX.endElement(small) +SAX.characters( , 2) +SAX.characters( , 1) +SAX.startElement(a, href='http://bp6.gamesquad.net/news/964429577,13375,.html') +SAX.startElement(img, border='0', src='doc3_files/comments.gif') +SAX.endElement(img) +SAX.characters(3 comments, 10) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top') +SAX.characters(top, 3) +SAX.endElement(a) +SAX.endElement(font) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='black', face='Arial', size='2') +SAX.characters(Setup a Q3 server for anyone w, 355) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters((BTW- + there are , 68) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, name='newsitem964425184,95812,') +SAX.endElement(a) +SAX.startElement(b) +SAX.startElement(u) +SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2') +SAX.characters(BIOS Savior to the + , 43) +SAX.endElement(font) +SAX.endElement(u) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#0066cc', face='Arial', size='1') +SAX.startElement(small) +SAX.characters(Posted by , 10) +SAX.startElement(a, class='nav', href='mailto:tim@bp6.com') +SAX.characters(tim, 3) +SAX.endElement(a) +SAX.characters( @ 12:53AM PDT, 14) +SAX.endElement(small) +SAX.characters( , 2) +SAX.characters( , 1) +SAX.startElement(a, href='http://bp6.gamesquad.net/news/964425184,95812,.html') +SAX.startElement(img, border='0', src='doc3_files/comments.gif') +SAX.endElement(img) +SAX.characters(2 comments, 10) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top') +SAX.characters(top, 3) +SAX.endElement(a) +SAX.endElement(font) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='black', face='Arial', size='2') +SAX.characters(Do you sweat during the BIOS f, 167) +SAX.startElement(b) +SAX.characters(RD1 BIOS Savior, 15) +SAX.endElement(b) +SAX.characters(" and it + plugs i, 520) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://www.ioss.com.tw/eg/rd1/RD1info0004.PDF', target='_NEW') +SAX.characters(Manufacturers Brochure, 22) +SAX.endElement(a) +SAX.characters( (PDF Format), 13) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://192.216.185.10/mwave/doc/A06950.html', target='_BLANK"') +SAX.characters(Another info page, 17) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://192.216.185.10/mwave/ProdMB-AC-MW.hmx?UID=&CID=&updepts=MB&DNAME=%3Cb%3EMotherboards%3C%2Fb%3E&Back=ProdMB-AC-MW.hmx?', target='_BLANK') +SAX.characters(Available for about $20, 23) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(img, src='doc3_files/rd1.jpg') +SAX.endElement(img) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, name='newsitem963875853,12731,') +SAX.endElement(a) +SAX.characters( + , 14) +SAX.startElement(table, bgcolor='#003399', width='100%') +SAX.characters( + , 16) +SAX.startElement(tbody) +SAX.characters( + , 16) +SAX.startElement(tr) +SAX.characters( + , 18) +SAX.startElement(td) +SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2') +SAX.startElement(b) +SAX.characters(Monday, + Ju, 41) +SAX.endElement(b) +SAX.endElement(font) +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(tbody) +SAX.endElement(table) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment(
      ) +SAX.startElement(b) +SAX.startElement(u) +SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2') +SAX.characters(How To + Overclock, 30) +SAX.endElement(font) +SAX.endElement(u) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#0066cc', face='Arial', size='1') +SAX.startElement(small) +SAX.characters(Posted by , 10) +SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com') +SAX.characters(DareDevil, 9) +SAX.endElement(a) +SAX.characters( @ 4:17PM + PDT, 27) +SAX.endElement(small) +SAX.characters( , 2) +SAX.characters( , 1) +SAX.startElement(a, href='http://bp6.gamesquad.net/news/963875853,12731,.html') +SAX.startElement(img, border='0', src='doc3_files/comments.gif') +SAX.endElement(img) +SAX.characters(3 comments, 10) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top') +SAX.characters(top, 3) +SAX.endElement(a) +SAX.endElement(font) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='black', face='Arial', size='2') +SAX.characters(For those of you who are new t, 209) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://netkills.qgl.org/a_oc_comp.shtml', target='_blank') +SAX.characters(How To Overclock, 16) +SAX.endElement(a) +SAX.characters( , 1) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, name='newsitem963875485,23353,') +SAX.endElement(a) +SAX.startElement(b) +SAX.startElement(u) +SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2') +SAX.characters(The Cardcooler + X, 31) +SAX.endElement(font) +SAX.endElement(u) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#0066cc', face='Arial', size='1') +SAX.startElement(small) +SAX.characters(Posted by , 10) +SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com') +SAX.characters(DareDevil, 9) +SAX.endElement(a) +SAX.characters( @ 4:11PM + PDT, 27) +SAX.endElement(small) +SAX.characters( , 2) +SAX.characters( , 1) +SAX.startElement(a, href='http://bp6.gamesquad.net/news/963875485,23353,.html') +SAX.startElement(img, border='0', src='doc3_files/comments.gif') +SAX.endElement(img) +SAX.characters(1 comments, 10) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top') +SAX.characters(top, 3) +SAX.endElement(a) +SAX.endElement(font) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='black', face='Arial', size='2') +SAX.characters(Wow! I am impressed! Nevermind, 98) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(i) +SAX.characters(Even if your + not, 345) +SAX.endElement(i) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Check this out!, 15) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://www.brokenpixel.com/articles/coolerXT/cardcoolerXT_1.shtml', target='_blank') +SAX.characters(http://www.brokenpixel.com/art, 65) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, name='newsitem963859982,88982,') +SAX.endElement(a) +SAX.startElement(b) +SAX.startElement(u) +SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2') +SAX.characters('Nerd + Inside', 27) +SAX.endElement(font) +SAX.endElement(u) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#0066cc', face='Arial', size='1') +SAX.startElement(small) +SAX.characters(Posted by , 10) +SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com') +SAX.characters(DareDevil, 9) +SAX.endElement(a) +SAX.characters( @ 11:53AM + PDT, 28) +SAX.endElement(small) +SAX.characters( , 2) +SAX.characters( , 1) +SAX.startElement(a, href='http://bp6.gamesquad.net/news/963859982,88982,.html') +SAX.startElement(img, border='0', src='doc3_files/comments.gif') +SAX.endElement(img) +SAX.characters(1 comments, 10) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top') +SAX.characters(top, 3) +SAX.endElement(a) +SAX.endElement(font) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='black', face='Arial', size='2') +SAX.characters(We all need to have some fun , 181) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + , 14) +SAX.startElement(div, align='center') +SAX.startElement(a, href='http://www.nerdgear.com/', target='_blank') +SAX.startElement(img, border='0', src='doc3_files/nerdinside.gif') +SAX.endElement(img) +SAX.endElement(a) +SAX.endElement(div) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, name='newsitem963819796,9688,') +SAX.endElement(a) +SAX.startElement(b) +SAX.startElement(u) +SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2') +SAX.characters(Dual PSU Wiring diagram... (pr, 81) +SAX.endElement(font) +SAX.endElement(u) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#0066cc', face='Arial', size='1') +SAX.startElement(small) +SAX.characters(Posted by , 10) +SAX.startElement(a, class='nav', href='mailto:tim@bp6.com') +SAX.characters(tim, 3) +SAX.endElement(a) +SAX.characters( @ 12:43AM PDT, 14) +SAX.endElement(small) +SAX.characters( , 2) +SAX.characters( , 1) +SAX.startElement(a, href='http://bp6.gamesquad.net/news/963819796,9688,.html') +SAX.startElement(img, border='0', src='doc3_files/comments.gif') +SAX.endElement(img) +SAX.characters(11 comments, 11) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top') +SAX.characters(top, 3) +SAX.endElement(a) +SAX.endElement(font) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='black', face='Arial', size='2') +SAX.characters(When is comes to overclocking , 848) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(View Diagram 1 , 15) +SAX.startElement(a, href='http://bp6.gamesquad.net/images/wiring.jpg', target='_BLANK') +SAX.characters(here, 4) +SAX.endElement(a) +SAX.characters(., 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(View Diagram 2 , 15) +SAX.startElement(a, href='http://bp6.gamesquad.net/images/psu2.gif', target='_BLANK') +SAX.characters(here, 4) +SAX.endElement(a) +SAX.characters(., 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(I used Tap-In Squeeze Connecto, 150) +SAX.startElement(a, href='http://www.radioshack.com/ProductCatalog/ProductDetail/Index/1,2098,,00.html?SKUString1=64&SKUString2=3053', target='_blank') +SAX.characters(click here, 10) +SAX.endElement(a) +SAX.characters(., 1) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, name='newsitem963766655,78511,') +SAX.endElement(a) +SAX.characters( + , 14) +SAX.startElement(table, bgcolor='#003399', width='100%') +SAX.characters( + , 16) +SAX.startElement(tbody) +SAX.characters( + , 16) +SAX.startElement(tr) +SAX.characters( + , 18) +SAX.startElement(td) +SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2') +SAX.startElement(b) +SAX.characters(Sunday, + Ju, 41) +SAX.endElement(b) +SAX.endElement(font) +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(tbody) +SAX.endElement(table) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment(
      ) +SAX.startElement(b) +SAX.startElement(u) +SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2') +SAX.characters(RAM Overclocking? + , 39) +SAX.endElement(font) +SAX.endElement(u) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#0066cc', face='Arial', size='1') +SAX.startElement(small) +SAX.characters(Posted by , 10) +SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com') +SAX.characters(DareDevil, 9) +SAX.endElement(a) +SAX.characters( @ 9:57AM + PDT, 27) +SAX.endElement(small) +SAX.characters( , 2) +SAX.characters( , 1) +SAX.startElement(a, href='http://bp6.gamesquad.net/news/963766655,78511,.html') +SAX.startElement(img, border='0', src='doc3_files/comments.gif') +SAX.endElement(img) +SAX.characters(3 comments, 10) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top') +SAX.characters(top, 3) +SAX.endElement(a) +SAX.endElement(font) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='black', face='Arial', size='2') +SAX.characters(I know we're pretty big overcl, 636) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Extreme Overclocking has teste, 145) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(i) +SAX.characters(Well, the guys at Extreme Over, 344) +SAX.endElement(i) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://www.extremeoverclocking.com/reviews/memory/ram_roundup_1.html', target='_blank') +SAX.characters(Cooked RAM... Yummie, 20) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(The + ÐÐ., 23) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, name='newsitem963764236,76720,') +SAX.endElement(a) +SAX.startElement(b) +SAX.startElement(u) +SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2') +SAX.characters(CPU + Guide, 23) +SAX.endElement(font) +SAX.endElement(u) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#0066cc', face='Arial', size='1') +SAX.startElement(small) +SAX.characters(Posted by , 10) +SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com') +SAX.characters(DareDevil, 9) +SAX.endElement(a) +SAX.characters( @ 9:17AM + PDT, 27) +SAX.endElement(small) +SAX.characters( , 2) +SAX.characters( , 1) +SAX.startElement(a, href='http://bp6.gamesquad.net/news/963764236,76720,.html') +SAX.startElement(img, border='0', src='doc3_files/comments.gif') +SAX.endElement(img) +SAX.characters(0 comments, 10) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top') +SAX.characters(top, 3) +SAX.endElement(a) +SAX.endElement(font) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='black', face='Arial', size='2') +SAX.characters(A follow up on the 'Weekly CPU, 203) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + , 14) +SAX.startElement(li) +SAX.startElement(a, href='http://www6.tomshardware.com/howto/00q2/000412/index.html', target='_blank') +SAX.characters(http://www6.tomshardware.com/h, 57) +SAX.endElement(a) +SAX.endElement(li) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, name='newsitem963685749,28290,') +SAX.endElement(a) +SAX.characters( + , 14) +SAX.startElement(table, bgcolor='#003399', width='100%') +SAX.characters( + , 16) +SAX.startElement(tbody) +SAX.characters( + , 16) +SAX.startElement(tr) +SAX.characters( + , 18) +SAX.startElement(td) +SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2') +SAX.startElement(b) +SAX.characters(Saturday, + , 43) +SAX.endElement(b) +SAX.endElement(font) +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(tbody) +SAX.endElement(table) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment(
      ) +SAX.startElement(b) +SAX.startElement(u) +SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2') +SAX.characters(Weekly CPU + Price, 31) +SAX.endElement(font) +SAX.endElement(u) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#0066cc', face='Arial', size='1') +SAX.startElement(small) +SAX.characters(Posted by , 10) +SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com') +SAX.characters(DareDevil, 9) +SAX.endElement(a) +SAX.characters( @ 11:29AM + PDT, 28) +SAX.endElement(small) +SAX.characters( , 2) +SAX.characters( , 1) +SAX.startElement(a, href='http://bp6.gamesquad.net/news/963685749,28290,.html') +SAX.startElement(img, border='0', src='doc3_files/comments.gif') +SAX.endElement(img) +SAX.characters(2 comments, 10) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top') +SAX.characters(top, 3) +SAX.endElement(a) +SAX.endElement(font) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='black', face='Arial', size='2') +SAX.characters(Wow, found this very useful! W, 104) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://www.sharkyextreme.com/hardware/weekly_cpu/', target='_blank') +SAX.characters(Click Here., 11) +SAX.endElement(a) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Thanks Sharky + Ex, 36) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, name='newsitem963679881,35277,') +SAX.endElement(a) +SAX.startElement(b) +SAX.startElement(u) +SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2') +SAX.characters(Fast Wallpapers, 15) +SAX.endElement(font) +SAX.endElement(u) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#0066cc', face='Arial', size='1') +SAX.startElement(small) +SAX.characters(Posted by , 10) +SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com') +SAX.characters(DareDevil, 9) +SAX.endElement(a) +SAX.characters( @ 9:51AM + PDT, 27) +SAX.endElement(small) +SAX.characters( , 2) +SAX.characters( , 1) +SAX.startElement(a, href='http://bp6.gamesquad.net/news/963679881,35277,.html') +SAX.startElement(img, border='0', src='doc3_files/comments.gif') +SAX.endElement(img) +SAX.characters(0 comments, 10) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top') +SAX.characters(top, 3) +SAX.endElement(a) +SAX.endElement(font) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='black', face='Arial', size='2') +SAX.characters(FAST-MHz has released some wal, 53) +SAX.startElement(a, href='http://64.29.18.111/wallpaper/index.html', target='_blank') +SAX.characters(Click here, 10) +SAX.endElement(a) +SAX.characters( to view them. They come in si, 241) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(In other news, we want to + , 135) +SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml', target='_blank') +SAX.characters(Picture Gallery, 15) +SAX.endElement(a) +SAX.characters(. To help us out, you can send, 103) +SAX.startElement(a, href='mailto:thedaredevil@bp6.com') +SAX.characters(thedaredevil@bp6.com, 20) +SAX.endElement(a) +SAX.characters(. (The + topic bei, 186) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Okay, that's all for now., 25) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(The + ÐÐ., 23) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, name='newsitem963619505,3764,') +SAX.endElement(a) +SAX.characters( + , 14) +SAX.startElement(table, bgcolor='#003399', width='100%') +SAX.characters( + , 16) +SAX.startElement(tbody) +SAX.characters( + , 16) +SAX.startElement(tr) +SAX.characters( + , 18) +SAX.startElement(td) +SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2') +SAX.startElement(b) +SAX.characters(Friday, + Ju, 41) +SAX.endElement(b) +SAX.endElement(font) +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(tbody) +SAX.endElement(table) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment(
      ) +SAX.startElement(b) +SAX.startElement(u) +SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2') +SAX.characters(Hey + There!, 24) +SAX.endElement(font) +SAX.endElement(u) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='#0066cc', face='Arial', size='1') +SAX.startElement(small) +SAX.characters(Posted by , 10) +SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com') +SAX.characters(DareDevil, 9) +SAX.endElement(a) +SAX.characters( @ 5:05PM + PDT, 27) +SAX.endElement(small) +SAX.characters( , 2) +SAX.characters( , 1) +SAX.startElement(a, href='http://bp6.gamesquad.net/news/963619505,3764,.html') +SAX.startElement(img, border='0', src='doc3_files/comments.gif') +SAX.endElement(img) +SAX.characters(7 comments, 10) +SAX.endElement(a) +SAX.characters( + , 15) +SAX.characters( , 2) +SAX.characters(|, 1) +SAX.characters( , 2) +SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top') +SAX.characters(top, 3) +SAX.endElement(a) +SAX.endElement(font) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, color='black', face='Arial', size='2') +SAX.characters(Hey guys, just wanted to intro, 312) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(My e-mail address is , 21) +SAX.startElement(a, href='mailto:killz@i82hq.com') +SAX.characters(killz@i82hq.com, 15) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Ciao for + now., 27) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(The ÐÐ., 9) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + , 14) +SAX.endElement(font) +SAX.startElement(center) +SAX.startElement(iframe, frameborder='0', height='60', marginheight='0', marginwidth='0', noresize, scrolling='no', src='doc3_files/ad_iframe.htm', width='468') +SAX.startElement(a, href='http://ads.adflight.com/go_static.asp?asid=7708', target='_top') +SAX.error: htmlParseEntityRef: expecting ';' +SAX.error: htmlParseEntityRef: expecting ';' +SAX.startElement(img, width='468', height='60', border='0', alt='Advertisement', src='http://ads.adflight.com/ad_static.asp?pid=2097&sid=1881&asid=7708') +SAX.endElement(img) +SAX.endElement(a) +SAX.endElement(iframe) +SAX.endElement(center) +SAX.error: Unexpected end tag : li +SAX.error: Unexpected end tag : font +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(tbody) +SAX.endElement(table) +SAX.endElement(center) +SAX.error: Unexpected end tag : p +SAX.endElement(td) +SAX.characters( + , 6) +SAX.startElement(td, bgcolor='silver', valign='top', width='10%') +SAX.characters( + , 8) +SAX.startElement(center) +SAX.characters( + , 8) +SAX.startElement(p) +SAX.characters( + , 8) +SAX.endElement(p) +SAX.startElement(table, bgcolor='silver', border='0', cellpadding='0', cellspacing='0', width='100%') +SAX.characters( + , 10) +SAX.startElement(tbody) +SAX.characters( + , 10) +SAX.startElement(tr) +SAX.characters( + , 12) +SAX.startElement(td, colstart='1') +SAX.characters( + , 14) +SAX.startElement(center) +SAX.comment(
      +
      +

      Newsletter
      +
      +
      +

      ) +SAX.characters( + , 14) +SAX.startElement(form, action='http://bp6.gamesquad.net/cgi-bin/news/viewnews.cgi?emaillist', method='post') +SAX.startElement(img, height='1', src='doc3_files/spacer.gif', width='111') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='1') +SAX.characters(Newsletter, 10) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(input, name='npemail', size='13', value='e-mail addr.') +SAX.endElement(input) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(input, name='npsubscribe', style='BACKGROUND-COLOR: #000000; COLOR: #ffffff; FONT-FAMILY: Verdana; FONT-SIZE: xx-small; FONT-WEIGHT: bold', type='submit', value='Subscribe') +SAX.endElement(input) +SAX.startElement(br) +SAX.endElement(br) +SAX.comment( ) +SAX.endElement(font) +SAX.endElement(form) +SAX.startElement(font, size='1') +SAX.characters( + , 14) +SAX.startElement(form, action='http://bp6.gamesquad.net/cgi-bin/news/viewnews.cgi?search', method='post') +SAX.characters(Search news, 11) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(input, name='searchstring', size='13') +SAX.endElement(input) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(input, name='submit', style='BACKGROUND-COLOR: #000000; COLOR: #ffffff; FONT-FAMILY: Verdana; FONT-SIZE: xx-small; FONT-WEIGHT: bold', type='submit', value='Submit') +SAX.endElement(input) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://bp6.gamesquad.net/cgi-bin/news/viewnews.cgi?newsall') +SAX.characters(News + archive, 26) +SAX.endElement(a) +SAX.endElement(form) +SAX.endElement(font) +SAX.characters( , 1) +SAX.error: Unexpected end tag : form +SAX.endElement(center) +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(tbody) +SAX.endElement(table) +SAX.comment( + + + +
      +

      +

      +) +SAX.characters( + , 8) +SAX.startElement(table, bgcolor='silver', border='0', cellpadding='0', cellspacing='0', width='100%') +SAX.characters( + , 10) +SAX.startElement(tbody) +SAX.characters( + , 10) +SAX.startElement(tr) +SAX.characters( + , 12) +SAX.startElement(td, align='middle', width='100%') +SAX.comment( BEGIN GoTo.com Search Box ) +SAX.characters( + , 14) +SAX.startElement(script, language='javascript', type='text/javascript') +SAX.cdata( + <!-- + if ((, 532) +SAX.error: Unexpected end tag : iframe +SAX.cdata("); + } else if ((parseI, 463) +SAX.error: End tag : expected '>' +SAX.error: Unexpected end tag : sc +SAX.cdata("); + document.write("RI, 361) +SAX.error: Unexpected end tag : a +SAX.cdata("); + } + // --, 37) +SAX.endElement(script) +SAX.characters( + , 14) +SAX.startElement(b) +SAX.startElement(noscript) +SAX.endElement(noscript) +SAX.endElement(b) +SAX.startElement(a, href='http://www.goto.com/d/search/ssn/?fromGIF=true', target='_blank') +SAX.startElement(img, align='bottom', border='0', height='90', ismap, src='doc3_files/100x90.gif', width='100') +SAX.endElement(img) +SAX.endElement(a) +SAX.startElement(b) +SAX.startElement(a, href='http://www.goto.com/d/search/ssn/?fromGIF=true', target='_blank') +SAX.characters( + , 15) +SAX.endElement(a) +SAX.error: Unexpected end tag : a +SAX.endElement(b) +SAX.startElement(b) +SAX.error: Unexpected end tag : noscript +SAX.endElement(b) +SAX.startElement(b) +SAX.comment( END GoTo.com Search Box ) +SAX.endElement(b) +SAX.comment( Pricewatch Search Box ) +SAX.characters( + , 14) +SAX.startElement(form, action='http://www.pricewatch.com/search/search.asp', method='get', target='_Blank') +SAX.characters( + , 14) +SAX.startElement(center) +SAX.characters( + , 14) +SAX.startElement(p) +SAX.startElement(b) +SAX.startElement(font, color='white', face='ARIAL, HELVETICA', size='1') +SAX.characters(PC Price + Search, 29) +SAX.startElement(br) +SAX.endElement(br) +SAX.endElement(font) +SAX.endElement(b) +SAX.startElement(input, maxlength='30', name='criteria', size='10') +SAX.endElement(input) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(input, name='submit', style='BACKGROUND-COLOR: #000000; COLOR: #ffffff; FONT-FAMILY: Verdana; FONT-SIZE: xx-small; FONT-WEIGHT: bold', type='submit', value='Search') +SAX.endElement(input) +SAX.characters( + , 15) +SAX.endElement(p) +SAX.error: Opening and ending tag mismatch: form and center +SAX.endElement(center) +SAX.endElement(form) +SAX.comment( Pricewatch Search Box ) +SAX.startElement(a, href='http://www.puicorp.com/bp6specials.htm', target='_BLANK') +SAX.startElement(img, src='doc3_files/puibp6.gif') +SAX.endElement(img) +SAX.endElement(a) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(a, href='http://store.yahoo.com/dunamis-site/maxtor.html', target='_BLANK') +SAX.startElement(img, alt='BP6.com Special - Enter CODE: BP6-hd in the order (notes) to receive a discount', src='doc3_files/hd5.gif') +SAX.endElement(img) +SAX.startElement(font, size='1') +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(BP6.COM + Special, 29) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Code:BP6-hd, 11) +SAX.endElement(font) +SAX.endElement(a) +SAX.characters( , 1) +SAX.error: Unexpected end tag : p +SAX.error: Opening and ending tag mismatch: center and td +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(tbody) +SAX.endElement(table) +SAX.characters( + , 8) +SAX.startElement(table, bgcolor='silver', border='0', cellpadding='0', cellspacing='0', height='100%', width='100%') +SAX.characters( + , 10) +SAX.startElement(tbody) +SAX.characters( + , 10) +SAX.startElement(tr) +SAX.characters( + , 12) +SAX.startElement(td, width='100%') +SAX.characters( , 2) +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(tbody) +SAX.endElement(table) +SAX.error: Unexpected end tag : p +SAX.endElement(center) +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(tbody) +SAX.endElement(table) +SAX.comment(
      ) +SAX.characters( +, 2) +SAX.startElement(center) +SAX.endElement(center) +SAX.error: Unexpected end tag : td +SAX.error: Unexpected end tag : tr +SAX.startElement(tr) +SAX.startElement(td, colspan='3', valign='TOP', height='70') +SAX.characters( , 2) +SAX.endElement(td) +SAX.characters( , 1) +SAX.endElement(tr) +SAX.error: Unexpected end tag : table +SAX.characters( +, 2) +SAX.startElement(table, border='0', width='780') +SAX.characters( + , 4) +SAX.startElement(tbody) +SAX.characters( + , 4) +SAX.startElement(tr) +SAX.characters( + , 6) +SAX.startElement(td, width='780') +SAX.characters( + , 8) +SAX.startElement(p, align='center') +SAX.startElement(font, color='#999999', face='verdana,arial', size='1') +SAX.characters(Copyright + ©1999-2, 59) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(Got news? Send it to , 21) +SAX.endElement(font) +SAX.startElement(a, href='mailto:tim@bp6.com') +SAX.startElement(font, color='white', face='Verdana', size='1') +SAX.characters(Tim, 3) +SAX.endElement(font) +SAX.endElement(a) +SAX.characters( , 1) +SAX.endElement(p) +SAX.endElement(td) +SAX.endElement(tr) +SAX.comment(

      Site design by Tim Brinkley

      + +
      + + + + + +
      +Atipa Linux solutions. Your reliable cluster, server, and workstation solution. Win a Free Celeron Linux Workstation! + + +Linux Today Logo
      linux.com partner

      +
      + +[ headlines | +features | +commercial | +security | +jobs | +volt | +contribute/submit | +advertise | +search | +site digests | +mailing lists | +about us | +link us ] + +

      +

      + + diff --git a/result/HTML/test2.html.err b/result/HTML/test2.html.err new file mode 100644 index 0000000..e69de29 diff --git a/result/HTML/test2.html.sax b/result/HTML/test2.html.sax new file mode 100644 index 0000000..78bb090 --- /dev/null +++ b/result/HTML/test2.html.sax @@ -0,0 +1,145 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.internalSubset(HTML, -//W3C//DTD HTML 4.0 Transitional//EN, http://www.w3.org/TR/REC-html40/loose.dtd) +SAX.startElement(html) +SAX.startElement(head) +SAX.ignorableWhitespace( , 1) +SAX.startElement(title) +SAX.characters(Linux Today, 11) +SAX.endElement(title) +SAX.endElement(head) +SAX.ignorableWhitespace( +, 1) +SAX.startElement(body, bgcolor='White', link='Blue', text='Black', vlink='Black', alink='Red') +SAX.characters( + +, 2) +SAX.startElement(center) +SAX.characters( +, 1) +SAX.startElement(table, border='0', width='100%', cellspacing='0', cellpadding='0') +SAX.characters( + , 9) +SAX.startElement(tr, bgcolor='#FFFFFF') +SAX.characters( + , 17) +SAX.startElement(td, height='90') +SAX.characters( +, 1) +SAX.startElement(a, href='http://linuxtoday.com/cgi-bin/click.pl?adnum=49') +SAX.startElement(img, src='/pics/door_linux.gif', border='0', width='468', height='60', alt='Atipa Linux solutions. Your reliable cluster, server, and workstation solution. Win a Free Celeron Linux Workstation!') +SAX.endElement(img) +SAX.endElement(a) +SAX.characters( + + , 18) +SAX.endElement(td) +SAX.characters( + , 5) +SAX.startElement(td) +SAX.startElement(img, src='/pics/lt.gif', vspace='5', alt='Linux Today Logo') +SAX.endElement(img) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='-1') +SAX.startElement(a, href='http://linux.com') +SAX.characters(linux.com, 9) +SAX.endElement(a) +SAX.characters( partner, 8) +SAX.endElement(font) +SAX.startElement(p) +SAX.endElement(p) +SAX.endElement(td) +SAX.characters( + + , 10) +SAX.endElement(tr) +SAX.characters( +, 1) +SAX.endElement(table) +SAX.characters( +, 1) +SAX.startElement(font, size='2', face='Helvetica') +SAX.characters( +[ , 3) +SAX.startElement(a, href='http://linuxtoday.com/') +SAX.characters(headlines, 9) +SAX.endElement(a) +SAX.characters( | +, 3) +SAX.startElement(a, href='http://features.linuxtoday.com/') +SAX.characters(features, 8) +SAX.endElement(a) +SAX.characters( | +, 3) +SAX.startElement(a, href='http://commercial.linuxtoday.com/') +SAX.characters(commercial, 10) +SAX.endElement(a) +SAX.characters( | +, 3) +SAX.startElement(a, href='http://security.linuxtoday.com/') +SAX.characters(security, 8) +SAX.endElement(a) +SAX.characters( | +, 3) +SAX.startElement(a, href='http://jobs.linuxtoday.com/') +SAX.characters(jobs, 4) +SAX.endElement(a) +SAX.characters( | +, 3) +SAX.startElement(a, href='http://linuxtoday.com/volt/') +SAX.characters(volt, 4) +SAX.endElement(a) +SAX.characters( | +, 4) +SAX.startElement(a, href='http://linuxtoday.com/contrib.pl') +SAX.characters(contribute/submit, 17) +SAX.endElement(a) +SAX.characters( | +, 3) +SAX.startElement(a, href='http://linuxtoday.com/advertise/') +SAX.characters(advertise, 9) +SAX.endElement(a) +SAX.characters( | +, 3) +SAX.startElement(a, href='http://linuxtoday.com/search.html') +SAX.characters(search, 6) +SAX.endElement(a) +SAX.characters( | +, 3) +SAX.startElement(a, href='http://linuxtoday.com/digests/') +SAX.characters(site digests, 12) +SAX.endElement(a) +SAX.characters( | +, 3) +SAX.startElement(a, href='http://linuxtoday.com/mail-lists') +SAX.characters(mailing lists, 13) +SAX.endElement(a) +SAX.characters( | +, 3) +SAX.startElement(a, href='http://linuxtoday.com/about/') +SAX.characters(about us, 8) +SAX.endElement(a) +SAX.characters( | +, 3) +SAX.startElement(a, href='http://linuxtoday.com/linkus.html') +SAX.characters(link us, 7) +SAX.endElement(a) +SAX.characters( ], 2) +SAX.endElement(font) +SAX.characters( +, 1) +SAX.endElement(center) +SAX.characters( +, 1) +SAX.startElement(p) +SAX.characters( +, 1) +SAX.endElement(p) +SAX.endElement(body) +SAX.ignorableWhitespace( +, 1) +SAX.endElement(html) +SAX.ignorableWhitespace( +, 1) +SAX.endDocument() diff --git a/result/HTML/test3.html b/result/HTML/test3.html new file mode 100644 index 0000000..b37a1c7 --- /dev/null +++ b/result/HTML/test3.html @@ -0,0 +1,59 @@ + + + + + + +

      Component Package diagram ProblemDomain

      +

      +
      +
      +
      +Stereotype problem domain
      +
      +Alias Problem Domain
      +
      Note
      +
      The Problem Domain package is the model behind the Human +
      Interface, thats stores and manipulates the Family Tree. +
      + +
      +

      +
      +
      + +

      Class HumanInterface.FamilyFrame +

      +

      Class ProblemDomain.Birth +

      +

      Class ProblemDomain.Death +

      +

      Class ProblemDomain.Divorce +

      +

      Class ProblemDomain.Family +

      +

      Class ProblemDomain.Individual +

      +

      Class ProblemDomain.LifeEvent +

      +

      Class ProblemDomain.Marriage +

      +

      Class ProblemDomain.Note +

      +
      + +

      Links

      + + + + + + + + diff --git a/result/HTML/test3.html.err b/result/HTML/test3.html.err new file mode 100644 index 0000000..c743503 --- /dev/null +++ b/result/HTML/test3.html.err @@ -0,0 +1,12 @@ +./test/HTML/test3.html:6: HTML parser error : Unexpected end tag : p +


      + ^ +./test/HTML/test3.html:13: HTML parser error : Unexpected end tag : p +


      + ^ +./test/HTML/test3.html:27: HTML parser error : Opening and ending tag mismatch: h4 and b +

      Links

      + ^ +./test/HTML/test3.html:27: HTML parser error : Unexpected end tag : b +

      Links

      + ^ diff --git a/result/HTML/test3.html.sax b/result/HTML/test3.html.sax new file mode 100644 index 0000000..c9f6638 --- /dev/null +++ b/result/HTML/test3.html.sax @@ -0,0 +1,230 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(html) +SAX.ignorableWhitespace( +, 2) +SAX.startElement(head) +SAX.ignorableWhitespace( +, 2) +SAX.startElement(base, target='contents') +SAX.endElement(base) +SAX.ignorableWhitespace( +, 2) +SAX.endElement(head) +SAX.ignorableWhitespace( +, 2) +SAX.startElement(body) +SAX.startElement(a, name='ProblemDomain.Package') +SAX.startElement(h2) +SAX.characters(Component Package diagram Prob, 39) +SAX.endElement(h2) +SAX.characters( +, 2) +SAX.endElement(a) +SAX.startElement(p) +SAX.endElement(p) +SAX.startElement(hr) +SAX.endElement(hr) +SAX.error: Unexpected end tag : p +SAX.characters( +, 2) +SAX.startElement(dl) +SAX.characters( +, 2) +SAX.startElement(dt) +SAX.startElement(b) +SAX.characters(Stereotype , 11) +SAX.endElement(b) +SAX.characters(problem domain, 14) +SAX.endElement(dt) +SAX.characters( +, 2) +SAX.startElement(dt) +SAX.startElement(b) +SAX.characters(Alias , 6) +SAX.endElement(b) +SAX.characters(Problem Domain, 14) +SAX.endElement(dt) +SAX.characters( +, 2) +SAX.startElement(dt) +SAX.startElement(b) +SAX.characters(Note , 5) +SAX.endElement(b) +SAX.endElement(dt) +SAX.startElement(dd) +SAX.characters(The Problem Domain package is , 59) +SAX.startElement(dd) +SAX.characters(Interface, thats stores and ma, 58) +SAX.endElement(dd) +SAX.endElement(dd) +SAX.endElement(dl) +SAX.characters( +, 2) +SAX.startElement(p) +SAX.endElement(p) +SAX.startElement(hr) +SAX.endElement(hr) +SAX.error: Unexpected end tag : p +SAX.characters( +, 2) +SAX.startElement(dl) +SAX.characters( + +, 4) +SAX.startElement(dt) +SAX.startElement(h4) +SAX.characters(Class , 6) +SAX.startElement(a, href='HumanInterface.FamilyFrame.html#HumanInterface.FamilyFrame') +SAX.characters(HumanInterface.FamilyFrame, 26) +SAX.endElement(a) +SAX.endElement(h4) +SAX.endElement(dt) +SAX.characters( +, 2) +SAX.startElement(dt) +SAX.startElement(h4) +SAX.characters(Class , 6) +SAX.startElement(a, href='ProblemDomain.Birth.html#ProblemDomain.Birth') +SAX.characters(ProblemDomain.Birth, 19) +SAX.endElement(a) +SAX.endElement(h4) +SAX.endElement(dt) +SAX.characters( +, 2) +SAX.startElement(dt) +SAX.startElement(h4) +SAX.characters(Class , 6) +SAX.startElement(a, href='ProblemDomain.Death.html#ProblemDomain.Death') +SAX.characters(ProblemDomain.Death, 19) +SAX.endElement(a) +SAX.endElement(h4) +SAX.endElement(dt) +SAX.characters( +, 2) +SAX.startElement(dt) +SAX.startElement(h4) +SAX.characters(Class , 6) +SAX.startElement(a, href='ProblemDomain.Divorce.html#ProblemDomain.Divorce') +SAX.characters(ProblemDomain.Divorce, 21) +SAX.endElement(a) +SAX.endElement(h4) +SAX.endElement(dt) +SAX.characters( +, 2) +SAX.startElement(dt) +SAX.startElement(h4) +SAX.characters(Class , 6) +SAX.startElement(a, href='ProblemDomain.Family.html#ProblemDomain.Family') +SAX.characters(ProblemDomain.Family, 20) +SAX.endElement(a) +SAX.endElement(h4) +SAX.endElement(dt) +SAX.characters( +, 2) +SAX.startElement(dt) +SAX.startElement(h4) +SAX.characters(Class , 6) +SAX.startElement(a, href='ProblemDomain.Individual.html#ProblemDomain.Individual') +SAX.characters(ProblemDomain.Individual, 24) +SAX.endElement(a) +SAX.endElement(h4) +SAX.endElement(dt) +SAX.characters( +, 2) +SAX.startElement(dt) +SAX.startElement(h4) +SAX.characters(Class , 6) +SAX.startElement(a, href='ProblemDomain.LifeEvent.html#ProblemDomain.LifeEvent') +SAX.characters(ProblemDomain.LifeEvent, 23) +SAX.endElement(a) +SAX.endElement(h4) +SAX.endElement(dt) +SAX.characters( +, 2) +SAX.startElement(dt) +SAX.startElement(h4) +SAX.characters(Class , 6) +SAX.startElement(a, href='ProblemDomain.Marriage.html#ProblemDomain.Marriage') +SAX.characters(ProblemDomain.Marriage, 22) +SAX.endElement(a) +SAX.endElement(h4) +SAX.endElement(dt) +SAX.characters( +, 2) +SAX.startElement(dt) +SAX.startElement(h4) +SAX.characters(Class , 6) +SAX.startElement(a, href='ProblemDomain.Note.html#ProblemDomain.Note') +SAX.characters(ProblemDomain.Note, 18) +SAX.endElement(a) +SAX.endElement(h4) +SAX.endElement(dt) +SAX.characters( +, 2) +SAX.endElement(dl) +SAX.characters( + +, 4) +SAX.startElement(h4) +SAX.startElement(b) +SAX.characters(Links, 5) +SAX.error: Opening and ending tag mismatch: h4 and b +SAX.endElement(b) +SAX.endElement(h4) +SAX.error: Unexpected end tag : b +SAX.characters( +, 2) +SAX.startElement(ul) +SAX.startElement(li) +SAX.startElement(b) +SAX.characters(Link to , 8) +SAX.endElement(b) +SAX.startElement(a, href='HumanInterface.Package.html#HumanInterface.Package') +SAX.characters(HumanInterface, 14) +SAX.endElement(a) +SAX.endElement(li) +SAX.endElement(ul) +SAX.characters( +, 2) +SAX.startElement(dir) +SAX.endElement(dir) +SAX.characters( +, 2) +SAX.startElement(ul) +SAX.startElement(li) +SAX.startElement(b) +SAX.characters(Link to , 8) +SAX.endElement(b) +SAX.startElement(a, href='DataManagement.FlatFile.Package.html#DataManagement.FlatFile.Package') +SAX.characters(DataManagement.FlatFile, 23) +SAX.endElement(a) +SAX.endElement(li) +SAX.endElement(ul) +SAX.characters( +, 2) +SAX.startElement(dir) +SAX.endElement(dir) +SAX.characters( +, 2) +SAX.startElement(ul) +SAX.startElement(li) +SAX.startElement(b) +SAX.characters(Link to , 8) +SAX.endElement(b) +SAX.startElement(a, href='DataManagement.Package.html#DataManagement.Package') +SAX.characters(DataManagement, 14) +SAX.endElement(a) +SAX.endElement(li) +SAX.endElement(ul) +SAX.characters( +, 2) +SAX.startElement(dir) +SAX.endElement(dir) +SAX.characters( +, 2) +SAX.endElement(body) +SAX.endElement(html) +SAX.ignorableWhitespace( +, 2) +SAX.endDocument() diff --git a/result/HTML/utf8bug.html b/result/HTML/utf8bug.html new file mode 100644 index 0000000..66a498a --- /dev/null +++ b/result/HTML/utf8bug.html @@ -0,0 +1,215 @@ + + + + + + + + +شهير بلاگ + + + + + + + + + + + + + + +
      + + + + + +
      + + 
      +
      +
      + + + + + +
      + + +خانه + +تماس با من + +آرشيو + +جستجو در سایت + +درباره من + + + +RSS + + + +
      +

      + يکشنبه، 15 ارديبهشت 1387  + -   + Sunday, May 04, 2008 +

      +
      +
      +
      +
      + + + + +
      + + + + +
      + + + + + + + + + + +
      +
      + تاريخ درج: چهارشنبه، 29 اسÙند 1386 + - Wednesday, March 19, 2008      + نويسنده:       + Ø¯ÙØ¹Ø§Øª مشاهده: 2688 + بار      كد: 341 +
      +
      + + + +
      +
      +
      +
      + +
      + + + + +
      + عکس محصول هنر یکی از همکاران است. روی آن کلیک کند. +
      +
      + +
      +

      +
      +
        +نظرات + کاربران:
      • +حاجی Ø¬ÙØ±Ø³ÙˆÙ†:
        4/5/2008 - + 7:08:00 PM
        با درود به شما... بدون هیچ گونه طنز + Ùˆ دستکاری توسط حاجی دایی نقل شده است این ها Ú©Ù‡ در بیان جدی + اینقدر طناز هستند وای به روزی Ú©Ù‡ بخواهند طنز بنویسند. ببین + شهیر جان Ú†Ù‡ کسانی سر جوانان ما را با اصلاحات 8 سال گول + مالیدند.. این ها را بخوانید :::::((دبيركل مجمع اسلامي بانوان + Ú¯ÙØª: به نظر مي‌رسد آقاي خاتمي قصد ÙØ§ØµÙ„Ù‡ Ú¯Ø±ÙØªÙ† از تندروها + را ندارد Ùˆ تا اين روند ادامه دارد ما با تندروها در يك ائتلا٠+ شركت نمي‌كنيم. به گزارش خبرنگار سياسي خبرگزاري ÙØ§Ø±Ø³ØŒ + ÙØ§Ø·Ù…Ù‡ كروبي دبيركل مجمع اسلامي بانوان عصر امروز شنبه در جمع + خبرنگاران رسانه‌هاي گروهي روند برگزاري انتخابات هشتمين + دوره مجلس شوراي اسلامي را تحليل كرد. وي ضمن برشمردن مرزبندي خود + با جربان تندروي اصلاح طلب Ø§ÙØ²ÙˆØ¯: اين ما نيستيم كه با ستاد ائتلا٠+ اصلاح طلبان اختلا٠داريم اما انحصارگري برخي از گروه‌ها + جريان اصلاحات را دچار از هم‌گسستگي كرد. داوطلب هشتمين دوره + انتخابات مجلس شوراي اسلامي درباره تشكيل ستاد مردمي اصلاحات خاطر + نشان كرد: آقاي خاتمي به توصيه‌ها Ùˆ نظرات دوستانشان توجهي + ندارند Ùˆ اگر اين امكان وجود داشت كه همه جريانات اصلاح طلب زير + يك عنوان ÙØ¹Ø§Ù„يت كنند حتما از آن استقبال مي‌كرديم اما به + نظر نمي‌رسد كه آقاي خاتمي بخواهد از تندروها ÙØ§ØµÙ„Ù‡ بگيرد Ùˆ + تا اين روند ادامه داشته باشد ما با تندروها در يك ائتلا٠شركت + نمي‌كنيم. وي در مورد شركت تشكل متبوع خود در مرحله بعدي + انتخابات مجلس Ú¯ÙØª: برخي از كانديداهاي نزديك به ما به مرحله دوم + انتخابات راه ÙŠØ§ÙØªÙ‡â€ŒØ§Ù†Ø¯ Ùˆ ما با تمام توان در اين مرحله از + آنها Ø¯ÙØ§Ø¹ خواهيم كرد. كروبي تاكيد كرد: گروهي انحصارگر با + اقدامات غيرعقلاني Ùˆ تندروي‌هاي خود اتوبوس اصلاحات را در دره + سرنگون كردند)))) Ù„Ø·ÙØ§ پیدا کنید پرتقال ÙØ±ÙˆØ´ را......واقعا این + ها Ù…ÛŒ خواهند دوباره وارد مجلس Ùˆ دولت شوند.....اووووووووووووووو + لالالالالالا........نه!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! البته این + مجمع بانوان بیشتر به Ø³ÙØ±Ù‡ های نذر Ùˆ سبزی پاک کردن های خونه + مامان بزرگ Ùˆ خاله زنک بازی های عصر قاجاریه Ùˆ مجلس پا تختی Ùˆ + حنا بندون عروس شباهت دارد. مهندس جان گویا ما از دست این ....Ùˆ + عیالش باید برویم گوشه همان ابدارخانه Ùˆ شاغلام Ùˆ چایی + دیشلمه....شما تشری٠نمی آورید؟
      • +

      • +سیاوش:
        4/3/2008 - 9:28:00 PM
        مرد هزار چهره مرد هزار چهره کیست؟شخصیتی ساخته Ùˆ پرداخته مهران مدیری، پیمان قاسم خانی Ùˆ دیگر نویسندگان؟ تنها Ù‡Ø¯ÙØ´ آنست Ú©Ù‡ چند روز تعطیلات، مارا سرگم کند Ùˆ دیگر هیچ؟ مرد هزار چهره یک طنز است یک طنز تلخ، برداشتی واقعی از جامعه ایرانی. من جوانم پس دردآشنای جوانانم Ùˆ خود را با خود Ùˆ دیگر جوانان طر٠می کنم بسیار اند جوانانی Ú©Ù‡ مصداق مرد هزار چهره هستند جوانانی سودا زده یا به قول خود مسعود "جو گیر" Ú©Ù‡ هر با محصولی کهنه را با تعریÙÛŒ جدید به آنها ارائه کنند چنان با تمام Ùˆ جود Ù…ÛŒ پذیرند Ú©Ù‡ گویی راه ÙØ§Ø¦Ù‚ آمدن بر تمام مشکلاتشان را ÛŒØ§ÙØªÙ‡ اند Ùˆ Ù…ÛŒ خرند، خواه این تحÙÙ‡ تئوری بر Ú¯Ø±ÙØªÙ‡ از تÙکرات خشک Ùˆ ÙØ³ÛŒÙ„ÛŒ گروهی باشد یا مدل ملیجک وار لباسی در پشت ویترین ÙØ±ÙˆØ´Ú¯Ø§Ù‡. مهم نیست Ú†Ù‡ باشد! مهم نیست دلیل انتخابش Ú†Ù‡ باشد! مهم نیست نتیجه این انتخاب چیست! تنها مهم است Ú©Ù‡ Ù…ÛŒ گویند از این Ø·Ø±Ù Ø¨ÙØ±Ù…ائید!حال این Ø¨ÙØ±Ù…ائید Ú†Ù‡ معنایی دارد باز هم مهم نیست!!! وای بر ما Ú©Ù‡ نه خود را Ù…ÛŒ شناسیم Ùˆ نه در جهت شناخت خویش قدم Ù…ÛŒ گذاریم. وای بر ما Ú©Ù‡ دیگر حتی ندای درون خویش را نمی توانیم بشنویم. وای بر ما Ú©Ù‡ نمی دانیم Ú†Ù‡ Ù…ÛŒ خواهیم Ùˆ هر بار Ú©Ù‡ چیزی Ù…ÛŒ خواهیم Ùˆ در مسیر وصال پا Ù…ÛŒ گذاریم به میانه راه نرسیده چنان مجذوب زرق Ùˆ برق راههای دیگر Ù…ÛŒ شویم Ú©Ù‡ مبدا Ùˆ مقصد را یکجا ÙØ±Ø§Ù…وش Ù…ÛŒ کنیم. وای بر ما Ú©Ù‡ نمی توانیم در برابر هر آنچه در مقابل انسانیت ما ایستاده "نه"بگوییم. درست است Ú©Ù‡ ما جوانان به تنهایی مقصر نیستیم اما چون شروع تقصیریم پس Ù…ÛŒ توانیم از ابتدا مانع مشکل هم باشیم. با احترام سیاوش
        + 
        +بسیار زیبا سیاوش جان. درود بر تو. شهیر +
      • +

      • +احسان __ خط سوم:
        4/3/2008 - 8:21:00 PM
        با سلام Ùˆ ادای احترام وکسب اجازه از شهیر عزیز . از عماد جان عزیزم بخاطر زحمتی Ú©Ù‡ کشیدند Ùˆ اطلاعات خوبی Ú©Ù‡ دادند ØŒ به سهم خودم تشکر Ù…ÛŒ کنم . با کمال شرمندگی از اینکه "بدون هماهنگی" Ùˆ " اجازه ای قبلی شما" Ùˆ "بسرعت" ØŒ معدود اشتباهات تایپی را Ú©Ù‡ با توجه به حجم مطلب ØŒ امری کاملا اجتناب ناپذیر است ØŒ سعی کردم Ú©Ù‡ اصلاح کنم ØŒ از شما پوزش Ù…ÛŒ خواهم . البته عماد جان عزیزم ØŒ بد نیست بدانید Ú©Ù‡ در میزان اشتباه در تایپ هرگز به پای بنده نخواهید رسید ! شاهد ادعای حقیر، شهیر Ùˆ حسین جان عزیزم هستند Ú©Ù‡ خبردارند Ú©Ù‡ چگونه بنده در یک Ùقره عملیات تایپ ØŒ دو ØµÙØ­Ù‡ ای کامل را جا انداختم !!! کاÙÛŒ است بپرسید ØŒ در نهایت صداقت ØŒ بر این رکورد بی نظیر Ùˆ تاریخی شهادت خواهند داد ! باز هم از زحمات عماد جان Ùˆ نیز سوالات خوب حسین جان تشکر Ù…ÛŒ کنم Ú©Ù‡ ان وعده ای مقاله ای عیدانه ای Ù…ÙØµÙ„ شهیر را در باره ای زنده یاد مرحوم مصدق ØŒ در وسع خود بجای اوردند . ضمن انکه هیچکدام از دوستان، این زحمت ارزشمند عماد جان را دلیل ان نخواهند دانست Ú©Ù‡ شهیرعزیز بعد از بازگشت از Ù…Ø³Ø§ÙØ±Øª ØŒ سر ÙØ±ØµØª وعده ای خود را عمل نکنند . مشتاقانه اما نه عجولانه ØŒ منتظر مقاله ای شهیر هم خواهیم ماند. با احترام : احسان
        + 
        +احسان جان، من Ùکر کردم قضیه شامل مرور زمان شده است. تا امروز Ú©Ù‡ نرسیده ام دست به این پروژه بزنم. اگر عشق به Ø­ÙØ¸ ارتباط با شما ها نبود تا روز 25 اپریل به خودم مرخصی Ù…ÛŒ دادم. در این Ø³ÙØ± خدا Ù…ÛŒ داند چند هزار مایل در 3 قاره را پیموده ام. از پوست Ú©Ù„ÙØª خودم در عجبم Ú©Ù‡ چطوری تونستم اخبار را دنبال کنم Ùˆ چند مقاله کوتاه بنویسم. Ú¯Ø±ÙØªØ§Ø±ÛŒ زیاد بود. شهیر +
      • +

      • +عماد Û²Û´ ساله از اصÙهان:
        4/3/2008 - 7:14:00 PM
        شهير جان اگر طولانی شد ببخشيد چاره ای نبود احسان جان از کمک شما نيز در ويرايش اين مطلب متشکرم اميدوارم حسين عزیز نيز راضی باشد
        + 
        +ممنون از زحمتی که کشیدی عماد جان. شهیر +
      • +

      • +حسین:
        4/3/2008 - 7:04:00 PM
        سلام آقا شهیر با اجازه شما خواستم از عماد عزیز وهمچنین سرور بزرگوار آقااحسان تشکر کنم وبه آقا عمادبگویم دستت درد نکنه بابت زحمتت ÙˆÙوق العاده عالی بود.قسمتی Ú©Ù‡ نوشتید" خود دکتر مصدق در تقریراتشان به اشتباه بودن تصمیمشان مبنی بر Ø§Ø³ØªØ¹ÙØ§Ø¡ اقرار Ù…ÛŒ کنند"واقعا جالب وحاکی از روح بلند دکتر مصدق هست .بااینکه سوالات خرد وریز زیاد هست اما از اینکه به سوالات عمده من با توجه به کتاب دکتر مصدق پاسخ دادید بازهم تشکر میکنم .میخواستم این پاسخ را برای نویسنده مقاله رجانیوز copy&paste
        +کنم Ú¯ÙØªÙ… شاید هرچند به احتمال ضعی٠برای سایت دوست داشتنی آقا شهیر مشکلی پیش +آید.خواستم با حذ٠نام آقا شهیر وشما از کامنت اینکار را بکنم احتمال دادم راضی +نباشید .بنابراین ÙØ¹Ù„ا علیرغم میل ÙØ±Ø§ÙˆØ§Ù† از اینکار صر٠نظر کردم .بهرحال بازهم +ممنون ومتشکر
      • +

      • +حاجی Ø¬ÙØ±Ø³ÙˆÙ†:
        4/3/2008 - 6:06:00 PM FOO!
        با درود از قدیم Ú¯ÙØªÙ‡ اند Ú©Ù‡ یک کلمه هم از مادر عروس بشنوید. بنابراین به Ø§ÙØ§Ø¶Ø§Øª اخیر کشور دوست Ùˆ برادر Ùˆ سوسیالیست چین عزیز Ùˆ جان جانان کمونیست عنایت Ø¨ÙØ±Ù…ایید: رادیو ÙØ±Ø¯Ø§: ديپلمات ها در وين Ú¯ÙØªÙ‡ اند: Ú©Ù‡ چين، از Ù…Ø®Ø§Ù„ÙØ§Ù† تشديد تحريم های ايران در شورای امينت، اطلاعات خود درباره ارتباط برنامه هسته ای تهران با تلاش برای دستيابی سلاح اتمی را در اختيار آژانس بين المللی انرژی اتمی قرار داده است. العجب!!!!!! انتخاب :با وجود اینکه چین به شدت با تحریمهای شورای امنیت سازمان ملل علیه ایران Ù…Ø®Ø§Ù„ÙØª Ù…ÛŒ کرد، اطلاعاتی در رابطه با ÙØ¹Ø§Ù„یتهای هسته ای ایران در اختیار مقامات آژانس بین المللی انرژی اتمی قرار داده Ú©Ù‡ بر اساس آن ایران در تلاش برای دست یابی به سلاح های اتمی است. به گزارش خبرنگار سرویس بین الملل خبرگزاری انتخاب به نقل از ÙØ§Ú©Ø³ نیوز؛جان بولتون ،نمایندۀ پیشین ایالات متحدۀ امریکا در سازمان ملل،در این باره Ú¯ÙØª: اقدام اینچنینی از سوی چین به دلیل روابط نظامی Ú©Ù‡ میان دو کشور [ایران Ùˆ چین] برقرار است، بسیار قابل توجه است. خبرنگار انتخاب Ù…ÛŒ Ø§ÙØ²Ø§ÛŒØ¯Ø› در حالی چین به این اقدام دست زده است Ú©Ù‡ همکاری های تجاری Ùˆ نظامی ایران با این کشور بطور بی سابقه ای Ø§ÙØ²Ø§ÛŒØ´ ÛŒØ§ÙØªÙ‡ است. یا باب الحوائج!!!!! رادیو زمانه: چین با وجود Ù…Ø®Ø§Ù„ÙØª با تحریم‌های شدید شورای امنیت علیه تهران، اطلاعاتی درباره تلاش‌های تهران برای ساخت تسلیحات هسته‌ای به آژانس بین‌المللی انرژی اتمی ارائه کرده است. آسوشیتدپرس با اعلام این خبر به نقل از چند دیپلمات آشنا با پرونده هسته‌ای ایران نوشت، Ù¾Ú©Ù† به همراه مسکو همواره بر سر راه شورای امنیت Ùˆ امریکا برای اعمال مجازات های سخت تر علیه تهران به دلیل مقاومت هسته ای این کشور به صورت یک مانع عمل کرده‌اند. این گزارش Ù…ÛŒ Ø§ÙØ²Ø§ÛŒØ¯ØŒ تصمیم چین برای ارائه اطلاعاتی جهت Ø§Ø³ØªÙØ§Ø¯Ù‡ در تحقیقات آژانس انرژی اتمی درباره برنامه تسلیحات هسته‌ای ایران، گویای Ø§ÙØ²Ø§ÛŒØ´ نارضایتی بین‌المللی درباره برنامه هسته‌ای جمهوری اسلامی است Ú©Ù‡ حتی تلاش برای ساخت چنین تسلیحاتی را نیز تکذیب می‌کند. بر اساس این گزارش، دو دیپلمات بلندپایه Ú©Ù‡ ارتباط نزدیکی با آژانس بین‌المللی انرژی اتمی دارند این اقدام چین را برملا کرده‌اند. آژانس بین‌المللی انرژی اتمی از اظهار نظر در این باره خودداری کرده است. العجب. من مامور Ùˆ معذور..حالا از پدر عروس چند کلمه بشنوید: سخنگوی آژانس بین المللی انرژی اتمی ادعای برخی از رسانه های غربی را درباره این Ú©Ù‡ چین اطلاعاتی را درباره برنامه هسته ای ایران در اختیار آژانس قرار داده است ØŒ تکذیب کرد . ملیسا Ùلمینگ در Ú¯ÙØª Ùˆ Ú¯Ùˆ با خبرنگار واحد مرکزی خبر تاکید کرد : آژانس بین المللی انرژی اتمی هرگز درباره اطلاعات محرمانه Ø¯Ø±ÛŒØ§ÙØªÛŒ از کشورها اظهار نظر نمی کند . ÙˆÛŒ Ú¯ÙØª: هم +
      • +
      +
      +
      +
      +
      + + diff --git a/result/HTML/utf8bug.html.err b/result/HTML/utf8bug.html.err new file mode 100644 index 0000000..a6ef047 --- /dev/null +++ b/result/HTML/utf8bug.html.err @@ -0,0 +1,15 @@ +./test/HTML/utf8bug.html:45: HTML parser error : htmlParseEntityRef: expecting ';' + + ^ +./test/HTML/utf8bug.html:118: HTML parser error : htmlParseEntityRef: expecting ';' + اندازه فونت:  + کوچک  + معمولی  + بزرگ  + ) +SAX.characters( + + + , 7) +SAX.startElement(div, class='Titr1') +SAX.characters( + , 5) +SAX.endElement(div) +SAX.characters( + , 3) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + , 3) +SAX.startElement(div, id='NewsBody') +SAX.characters( + + , 8) +SAX.startElement(div, class='Image') +SAX.characters( + + , 10) +SAX.error: htmlParseEntityRef: expecting ';' +SAX.startElement(a, href='showimage.aspx?path=Files_Upload\302.JPG&Width=', rel='lightbox', title='شهير بلاگ') +SAX.characters( + , 5) +SAX.error: htmlParseEntityRef: expecting ';' +SAX.startElement(img, src='showimage.aspx?path=Files_Upload\302.JPG&Width=220', align='left', border='1') +SAX.endElement(img) +SAX.characters( + , 5) +SAX.endElement(a) +SAX.endElement(div) +SAX.characters( + , 4) +SAX.startElement(strong) +SAX.startElement(font, size='4') +SAX.startElement(font, color='#0000ff') +SAX.characters(عکس, 6) +SAX.endElement(font) +SAX.characters( , 1) +SAX.startElement(font, color='#0000ff') +SAX.characters(محصو, 81) +SAX.endElement(font) +SAX.endElement(font) +SAX.endElement(strong) +SAX.startElement(s1) +SAX.error: Tag s1 invalid +SAX.characters( , 2) +SAX.endElement(s1) +SAX.endElement(div) +SAX.characters( + , 3) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + , 3) +SAX.startElement(div, align='left') +SAX.characters( + , 4) +SAX.startElement(a, href='printfriendly.asp?id=341') +SAX.characters( + , 4) +SAX.startElement(img, src='shell/PrintFriendly.png', border='0') +SAX.endElement(img) +SAX.endElement(a) +SAX.characters( + , 4) +SAX.startElement(a, href='#', onclick='window.open('SendNews.asp?PageID=341','myWin','toolbar=no,directories=no,location=no,status=no,menubar=no,resizable=yes,scrollbars=no,width=500, height=200'); return false') +SAX.characters( + , 4) +SAX.startElement(img, border='0', src='Shell/SendToFriends.jpg', width='140', height='30') +SAX.endElement(img) +SAX.characters( + , 4) +SAX.endElement(a) +SAX.characters( + , 3) +SAX.endElement(div) +SAX.characters( + , 3) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + , 3) +SAX.endElement(td) +SAX.characters( + , 2) +SAX.endElement(tr) +SAX.characters( + , 2) +SAX.startElement(tr) +SAX.characters( + , 3) +SAX.startElement(td) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( + , 3) +SAX.startElement(hr) +SAX.endElement(hr) +SAX.startElement(div, id='Comments') +SAX.startElement(ul) +SAX.startElement(b) +SAX.characters(ن, 2) +SAX.characters(ظ, 2) +SAX.characters(ر, 2) +SAX.characters(ا, 2) +SAX.characters(ت, 2) +SAX.characters( + , 3) +SAX.characters(ک, 2) +SAX.characters(ا, 2) +SAX.characters(ر, 2) +SAX.characters(ب, 2) +SAX.characters(ر, 2) +SAX.characters(ا, 2) +SAX.characters(ن, 2) +SAX.characters(:, 1) +SAX.endElement(b) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(li) +SAX.startElement(font, color='blue') +SAX.characters(حاجی , 22) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='1') +SAX.characters(4/5/2008 - + 7:08:00 PM, 23) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(با در, 28) +SAX.characters( , 2) +SAX.characters(بدون , 476) +SAX.characters(‌, 3) +SAX.characters(رسد آ, 203) +SAX.characters(‌, 3) +SAX.characters(كنيم. , 222) +SAX.characters(‌, 3) +SAX.characters(هاي گ, 403) +SAX.characters(‌, 3) +SAX.characters(ها + ج, 56) +SAX.characters(‌, 3) +SAX.characters(گسست, 230) +SAX.characters(‌, 3) +SAX.characters(ها و ن, 240) +SAX.characters(‌, 3) +SAX.characters(كردي, 38) +SAX.characters(‌, 3) +SAX.characters(رسد ك, 209) +SAX.characters(‌, 3) +SAX.characters(كنيم. , 241) +SAX.characters(‌, 3) +SAX.characters(اند و , 221) +SAX.characters(‌, 3) +SAX.characters(هاي خ, 848) +SAX.endElement(li) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(li) +SAX.startElement(font, color='blue') +SAX.characters(سیاو, 11) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='1') +SAX.characters(4/3/2008 - 9:28:00 PM, 21) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(مرد ه, 693) +SAX.characters(", 1) +SAX.characters(جو گی, 11) +SAX.characters(", 1) +SAX.characters( که هر, 1000) +SAX.characters( وای ب, 460) +SAX.characters(", 1) +SAX.characters(نه, 4) +SAX.characters(", 1) +SAX.characters(بگوی, 233) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.characters( , 2) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.startElement(font, color='#800000') +SAX.characters(بسیا, 67) +SAX.endElement(font) +SAX.endElement(li) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(li) +SAX.startElement(font, color='blue') +SAX.characters(احسا, 26) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='1') +SAX.characters(4/3/2008 - 8:21:00 PM, 21) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(با سل, 291) +SAX.characters(", 1) +SAX.characters(بدون , 23) +SAX.characters(", 1) +SAX.characters( و , 4) +SAX.characters(", 1) +SAX.characters( اجاز, 32) +SAX.characters(", 1) +SAX.characters( و , 4) +SAX.characters(", 1) +SAX.characters(بسرع, 10) +SAX.characters(", 1) +SAX.characters( ، معد, 1001) +SAX.characters(د مرح, 481) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.characters( , 2) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.startElement(font, color='#800000') +SAX.characters(احسا, 602) +SAX.endElement(font) +SAX.endElement(li) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(li) +SAX.startElement(font, color='blue') +SAX.characters(عماد , 41) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='1') +SAX.characters(4/3/2008 - 7:14:00 PM, 21) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(شهير , 227) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.characters( , 2) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +, 1) +SAX.startElement(font, color='#800000') +SAX.characters(ممنو, 68) +SAX.endElement(font) +SAX.endElement(li) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(li) +SAX.startElement(font, color='blue') +SAX.characters(حسین:, 9) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='1') +SAX.characters(4/3/2008 - 7:04:00 PM, 21) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(سلام , 834) +SAX.error: htmlParseEntityRef: expecting ';' +SAX.characters(&, 1) +SAX.characters(paste, 5) +SAX.characters( , 1) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters( +کنم گ, 440) +SAX.endElement(li) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(li) +SAX.startElement(font, color='blue') +SAX.characters(حاجی , 22) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.startElement(font, size='1') +SAX.characters(4/3/2008 - 6:06:00 PM FOO!, 26) +SAX.endElement(font) +SAX.startElement(br) +SAX.endElement(br) +SAX.characters(با در, 1000) +SAX.characters(ژانس , 999) +SAX.characters(‌, 3) +SAX.characters(های ش, 98) +SAX.characters(‌, 3) +SAX.characters(های ت, 59) +SAX.characters(‌, 3) +SAX.characters(ای به , 27) +SAX.characters(‌, 3) +SAX.characters(المل, 186) +SAX.characters(‌, 3) +SAX.characters(ای ای, 299) +SAX.characters(‌, 3) +SAX.characters(اند. ا, 223) +SAX.characters(‌, 3) +SAX.characters(ای ای, 65) +SAX.characters(‌, 3) +SAX.characters(المل, 47) +SAX.characters(‌, 3) +SAX.characters(ای جم, 130) +SAX.characters(‌, 3) +SAX.characters(کند. ب, 132) +SAX.characters(‌, 3) +SAX.characters(المل, 93) +SAX.characters(‌, 3) +SAX.characters(اند. آ, 25) +SAX.characters(‌, 3) +SAX.characters(المل, 814) +SAX.endElement(li) +SAX.endElement(ul) +SAX.endElement(div) +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(table) +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(table) +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(table) +SAX.endElement(td) +SAX.endElement(tr) +SAX.endElement(table) +SAX.endElement(body) +SAX.endElement(html) +SAX.endDocument() diff --git a/result/HTML/wired.html b/result/HTML/wired.html new file mode 100644 index 0000000..74d366e --- /dev/null +++ b/result/HTML/wired.html @@ -0,0 +1,576 @@ + + +Top Stories News from Wired News + + + + + + + +
      + + + + + + + +
      + +
      True to the Original
      + + + + + + + + + + + + + + + + + + + + + + + + + + + +

         updated 10:15 a.m.  15.Oct.99.PDT
      + + + + + + + + + + +
      + + + + + + + + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      SECTIONS
      Business
      Culture
      Technology
      Politics
      +WIRE SERVICE NEWS
      Top Headlines
      Sports
      Finance
      + FREE DELIVERY
      + + + + + +
      +
      + + + + + + + + + +  +
      +
      + + +
      +
      + STOCKS
      Get Quote:
      +  +
      +Financial Services
      +
      +
      +
      + + + Datek + Wired Index Fund + internet.com Index Fund + GetSmart's MortgageFinder +
      Today's Summary
      Wired Index | All Indexes
      Portfolios
      FIND A BOOK
      + + + + + + + + + + +
      +
      + + + + +
      +
      + + + +
      +

      + Powered by barnesandnoble.com + +
      + + +

      +
      + +
      WIRED + MAGAZINE
      + + +
      + +Wired Magazine
      + +Issue 7.11 +
      +
      + + +Subscribe to Wired.
      Special offer!
      + + +
      +
      + HOTWIRED +
      +Frontdoor
      +Webmonkey
      +Webmonkey Guides
      +RGB Gallery
      +Animation Express
      +Suck.com
      +
      +
      + HOTBOT +
      +Search
      +Shopping
      +
      +
      +
      + + + Wired News staff

      + + + + Contact us
      + + +

      + + Wired News delivered
      by PalmPilot,
      Outlook Express,
      In-Box Direct,
      +or PointCast

      + + + +
      +
      + + + + + + + + + + + + + + + +
      +
      +
      +
      + + + + +Nomad's Land

      Homeless, but ID'd, in Seattle
      8:15 a.m. The city council approves a plan to track the homeless by a numbering system, saying it'll improve services. The implications worry privacy advocates, naturally. By Craig Bicknell.
      in Politics
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
       HITS & MISC.
        +
      + + Calendar of E-Vents
      Ongoing goings-on.

      Rants & Raves
      Readers on Apple's G4 ... AOL's passwords ... MS vs. Linux.

      +
       CURRENT HOO-HA
        + +
      + +MP3 Rocks the Web
      Download the sound.
      Sponsored by Musicmaker


      + +The Wireless World
      Networking gets unplugged.
      Sponsored by Ericsson


      + +Digital Hollywood
      The buzz of tech.

      + +IPO Outlook
      Deals in the pipeline.
      Sponsored by Sun


      + +E-Biz
      Business unusual.
      Sponsored by IBM


      + +Med-Tech Center
      From the bleeding edge.
      Sponsored by WebMD


      + +The Linux Effect
      Not just for geeks.


      + +Executive Summary
      CEOs, COOs, CIOs unite.
      Sponsored by Vignette


      + +Making the Grade
      Reading, writing, and ROM.
      Sponsored by U of Phoenix


      + +Infostructure
      An IS/IT resource
      Sponsored by Sprint


      + +Y2K Watch
      Tick... Tick... Tick...

      + +More Hoo-Ha
       
      + +
      +
       MEANWHILE...
        +
      + + + +Führer Furor

      +Contruction workers in Berlin opened an old wound in the German psyche this week when they accidentally stumbled across Adolf Hitler's bunker while excavating near the Brandenburg Gate. The bunker, just south of the Gate, was where Hitler and his closest associates barricaded themselves as the Red Army approached Berlin in the waning days of World War II. It is also where the Führer and his bride, Eva Braun, committed suicide rather than fall into the hands of the Russians. Although the bunker's location has never been a mystery, it has been sealed off since the end of the war to keep neo-Nazis from turning it into a shrine. +

      +
    • More from Lycos +


    • +
      + + + 
      + +
      + +Other Top Stories
      +
      + + +Wall Street Keeps Reeling
      10:15 a.m. The Dow and Nasdaq suffer sizeable losses during the first half of Friday trading. Why? Wholesale prices are the highest this decade, and Greenspan is concerned about stock prices.
      in Reuters

      The Market's Madness
      9:10 a.m. The bulls and the bears are in the midst of a Battle Royale, and all this turbulence is not a healthy thing. So say the experts.
      in Reuters

      'Want a Loan? What's Your Race?'
      3:00 a.m. The Federal Reserve is in the middle of changing banking regulations to let banks collect data on the race, sex, religion, and national origin of their customers. By Declan McCullagh.
      in Politics

      Music Regs: A Bagful of Noise
      3:00 a.m. The struggle to come up with a digital music standard that would minimize download piracy is pushing right up against the holiday gift-giving season. By Jennifer Sullivan.
      in Business

      Can't Beat 'Em? Green 'Em
      3:00 a.m. High-tech companies are notoriously environmentally unfriendly, and a growing number of "Greenies" are trying to change things from the inside ... with varying results. By Chris Gaither.
      in Technology

      Y2K Cloud Over MS Office
      3:00 a.m. Windows NT sales remain strong, but corporate clients are wary of upgrading to MS Office 2000. Analysts say that means strong, but not stunning, Microsoft earnings.
      in Business

      Med-Tech
      Biochips for Custom Chemo
      3:00 a.m. Different cancer patients need different medicine, but doctors can rarely determine the best match. New biochip technology promises chemotherapy tailored to a tumor's genetic make-up. By Kristen Philipkoski.
      in Technology

      High Stakes in Priceline Suit
      3:00 a.m. It's not just another round of Redmond-bashing. A Priceline.com lawsuit against Microsoft's Expedia.com may have a big impact on how Net companies protect their business models. By Joanna Glasner.
      in Business

      Biodiversity Merges Online
      3:00 a.m. The far-flung databases on global biodiversity get together to form one monster database. Soon the red-eyed tree frog will be eyeing those Swedish lingonberries. From the Environment News Service.
      in Technology

      + + + + +
      +Elsewhere Today
      +
      + + +FCC: Hands-Off on Broadband
      The Industry Standard

      White House Lashes Out on Treaty
      Lycos

      Steve Jobs at 44
      Time

      Computers May Run on Gas
      ZDNN

      Much Is Free in the Wired World
      The New York Times (Registration Required)

      Melissa: I'm Baaaack
      USA Today

      Domain Owners Surrender Privacy
      MSNBC

      Dividing to Conquer in VC Game
      The Washington Post

      The Red Hat Diaries
      Salon

      Screensaver to Predict Climate
      BBC News

      + + + + + +
      + +
      + + + +
      +
      + +

      + +

      +Send us feedback + |  +Work at Wired Digital + |  +Advertise with us +
      +About Wired Digital + |  +Our Privacy Policy
      + + +

      +

      Copyright © 1994-99 Wired Digital Inc. All rights reserved. + +
      + + + + + + + + + + +

      +
      + + +
      + + +
      + + diff --git a/result/HTML/wired.html.err b/result/HTML/wired.html.err new file mode 100644 index 0000000..70db11b --- /dev/null +++ b/result/HTML/wired.html.err @@ -0,0 +1,249 @@ +./test/HTML/wired.html:6: HTML parser error : htmlParseEntityRef: expecting ';' +
      + ^ +./test/HTML/wired.html:346: HTML parser error : Opening and ending tag mismatch: td and font +

      +Sponsored bySun Microsystems. We're the dot in .com
      +Entity TypeCharacter
      ParameterInternal +GeneralExternal Parsed +GeneralUnparsed
      Reference +in ContentNot recognizedIncludedIncluded if validatingForbiddenIncluded
      Reference +in Attribute ValueNot recognizedIncluded in literalForbiddenForbiddenIncluded
      Occurs as +Attribute ValueNot recognizedForbiddenForbiddenNotifyNot recognized
      Reference +in EntityValueIncluded in literalBypassedBypassedForbiddenIncluded
      Reference +in DTDIncluded as PEForbiddenForbiddenForbiddenForbidden
      + + + + +
      + Foo1 + + +
      Foo2

      +
      Foo3
      + + diff --git a/test/HTML/doc2.htm b/test/HTML/doc2.htm new file mode 100644 index 0000000..ff6f285 --- /dev/null +++ b/test/HTML/doc2.htm @@ -0,0 +1,30 @@ + + +Welcome to Copernic.com + + + + + + + + <body bgcolor="#FFFFFF" text="#000000" link="#000080" vlink="#000080" alink="#000080" + topmargin="0" leftmargin="0" marginheight="0" marginwidth="0"> + <p>This page uses frames, but your browser doesn't support them.</p> + </body> + diff --git a/test/HTML/doc3.htm b/test/HTML/doc3.htm new file mode 100644 index 0000000..ba28998 --- /dev/null +++ b/test/HTML/doc3.htm @@ -0,0 +1,851 @@ + + +BP6.com #1 online resource for the BP6 Mobo.... + + + + + + + + + + +

      +

      + + + + + + + + +

      +

      Monday, July 31st, 2000

      + + +
      +
      +

      + + + +

      +
      + + + + + + + + + +
      +

      Abit BP6 Motherboard specification and information.
      BP6 Specs +

      +

      How to cool the BX Chipset on your BP6.
      BX Cooling +

      +

      The U;timate Gaming Contest - Coming Soon!
      UGM Contest +

      +

      Cooling & Heatsink review for the BP6.
      Heatsinks +

      +

      BP6 101 - Class is now in session. Welcome newbies!
      BP6 101 +

      +

      Install guide for installing Windows 2000 on the BP6
      Win2k Install +

      +

      Taking a first look at the Abit Linux release called
      Gentus +

      + + + + + +
      + + + +

      REVIEWS
      +
      +
      BP6 Reviews
      BP6 Watercooling
      BX Chipset Cooling
      Benchmarks
      BP6FSB Utility
      PowerLeap NEO S370
      SETI on the BP6
      Golden Orbs I
      Golden Orbs II
      VTT Solution

      NAVIGATE +
      +
      News
      Online Text Chat
      Voice Chat
      Messageboard
      Temp. Converter
      Picture Gallery
      Latest BIOS
      Drivers & Files
      UGM of the week
      BP6 Contest

      OTHER STUFF + +
      +
      Who is Tim?
      Contact BP6.com
      Affiliates Section
      Sponsors Section
      Links

      PC SPECIALS +
      +
      Vendor + Specials


      Pic of the day +
      + +
      +

      No picture is available for today.


      +


      +
      +

      + + + +
      +
      +

      Headlines
      Chat + with ABIT - 8:09PM PDT
      Fixed + wallpaper - 11:47PM PDT
      Seti + update - 10:40PM PDT
      Judge + gives Napster the Boot!! - 2:10PM PDT
      Ram + Sinks.. more cooling for small places. - 8:54AM + PDT
      is + it [H]ard? - 9:19PM PDT
      WiLd + CaSe!! - 1:40PM PDT
      What + the heck is a Peltier?!?! - 10:05AM PDT
      HELLO + EVERYONE!!! - 10:03PM PDT
      BP6 + Q3 server up and running.. - 2:06AM PDT

      + + + +
      Sunday, + July 30, 2000

      Chat with + ABIT
      Posted by Holodeck2 @ 8:09PM + PDT  0 comments +  | top
      I’m slacking a little. All game no + work makes Holodeck2 a happy boy :-)

      Wallpaper update: I got + off my lazy ass and redid the 1280x1024 wall paper, now it has the 2 + celerons.

      Fullon3d had a live chat with that Eric guy from Abit. + Submitted by: MJS

      Here’s a little clip:
      [Falcon] + BP6-2??
      [EricBoeing] We already have a micro ATX dual flip-chip + board
      [EricBoeing] but it's OEM only
      [EricBoeing] the full ATX + version should be out Septemberish


      + + + +
      Thursday, + July 27, 2000

      Fixed + wallpaper
      Posted by Holodeck2 @ 11:47PM + PDT  5 comments +  | top
      Get them now!!
      This is a + fixed bp6 wallpaper. In all the popular flavors, err... + resolutions.

      It's still the Intels Inside one with a spelling + change; from "Mothboard" to "Motherboard"

      Thanks to Matt for + pointing that out to me.
      I would also like to thank Kevin for + hosting my last batch and Radu for the previous "DUEL"/"DUAL" + error.
      And 1 more person, THANK YOU TIM for letting me borrow + your server space ;-)

      If you need a weird resolution, feel + free to e-mail me requesting + for one.
      If you have ideas or more errors to point out, mailto:Holodeck2@home.com

      800x600
      1024x768
      1152x864
      1280x1024
      1600x1200
      +

      Enjoy :-)
      +

      Holodeck2,
      [H]ard at + work on the Brand Spanking New Wallpaper.


      Seti update
      Posted by Holodeck2 @ 10:40PM + PDT  5 comments +  | top

      You like the + pic?

      Bp6 User Group Update:
      Completed 61531 + units!!
      #168 on Top 200 All Groups (Going to pass CLRC in + a few days)
      #74 on Top 200 Teams (Gaining fast on + Starfleet)

      We are flying though at the speed of light (may be + a little slower).
      Good job everyone!!

      Check this page at + least once a day for new stuff :-)


      Judge gives Napster the + Boot!!
      Posted by Holodeck2 @ 2:10PM + PDT  0 comments +  | top
      Good afternoon for everyone living in + EST. I was going to post today morning but I didn't. Here's my + story:
      I woke up and thought about posting something but I + decided to wax my car before the sun came up (draw your own + conclusions), wax on, wax off, wax on,..., did that for about an + hour. Then I saw the sun rise (Aaahh I'm melting... not). I sat in + front of my comp and started to search for good news to post. Saw + that a stoopid judge temporally shuts down napster. Goes to room and + cry. and now I'm here :-)

      Judge shuts Napster down +


      Check out the Goofy guy in the suit
      He's Sean + Fanning, founder of Napster.

      Got news?? mailto:Holodeck2@home.com


      Ram Sinks.. more cooling for small + places.
      Posted by tim @ 8:54AM PDT  0 comments +  | top
      Need some cooling for your Videocard + memory to get a little extra overclockability and FPS? Overclockers Hiedout Ram Sinks They just notified + me of their new design.


      + + + +
      Wednesday, July 26, + 2000

      is it + [H]ard?
      Posted by Holodeck2 @ 9:19PM + PDT  0 comments +  | top
      Big heatsinks are good, very good. The + bigger the better.
      You can never can have a too big of heatsink + on a small chip (CPU, GPU, CHIPSET, etc)


      My overclocked + Voodoo3 2000 with a BIG mofo heatsink on top.
      Peltier and + watercooling next up :-)
      (if you pry off the heatsink you void + the warranty )

      it was originally posted on [H]ardOCP
      I’m not only a + BP6er but also a [H]ardOCPer


      WiLd CaSe!!
      Posted by Holodeck2 @ 1:40PM + PDT  8 comments +  | top
      Now this person really knows how to + keep his case cool!!
      Addin an 18" Fan!! WOW!!


      Click to go to his + site.


      What the heck is a + Peltier?!?!
      Posted by Holodeck2 @ 10:05AM + PDT  6 comments +  | top
      This is for all you people who wanted + to know what a peltier is.

      The quest fo the Perfect + Peltier

      Thanks to + TweakMax.com +

      Note: Today morning when I woke up I saw my whole screen + cluttered with a bunch of IMs!! I live in the USA on EST. If you + live somewhere else please check the time in my area. for example: + If you live in Europe and IM me in the morning your time I would be + sleeping it would be like 4 in the morning here. Just to let you + know
      I'm not angry at anyone... + good thing I have a long fuse


      + + + +
      Tuesday, + July 25, 2000

      HELLO + EVERYONE!!!
      Posted by Holodeck2 @ 10:03PM + PDT 
      Hello + everyone, Woohoo!! I'm on!!
      Who is this Holodeck2 person + anyways?!?! Read on :-)
      I’m a regular on the bp6 messageboard, + trying to help people out with their problems.
      I’m the + self-proclaimed bp6 cooling expert, If you have a cooling idea, I’ve + probably already done it and can offer some incite.
      My computer + is always on so you can contact me whenever... problem is, I'm not + always in front of it. I'll try to update this page and keep + everyone happy :-)
      Any Questions or comments, you can either + contact me or post it on the messageboard.

      Ways to contact + me.
      E-mail: Holodeck2@home.com (All E-mails + will be answered in 24 hours or less, I guarantee it.)
      When you + write me an e-mail please put in the subject line "BP6" then the + rest of your subject so my e-mail program can sort it, thanks
      AIM: Holodeck2 (instant response + if I’m in front of my comp and not trying to frag someone)
      ICQ: 82640218 (rarely + on)

      P.S. If someone named “Digital Vortex” on either Quake 3 + or 2 frags you, it’s probably me. ;-)


      + + + +
      Monday, + July 24, 2000

      BP6 Q3 server up and + running..
      Posted by tim @ 2:06AM PDT  3 comments +  | top
      Setup a Q3 server for anyone wanting + to practice in preparation for Quakecon.. Connect to bp6.dyndns.org + default port. (SERVER: BP6 system, 256 MB ram, celeron 600 on a T3 + connection)... Will be moved to another BP6 server eventually. This + is only a temporary test of the system and net connection.
      (BTW- + there are a few bot's running around in there..)


      BIOS Savior to the + rescue....
      Posted by tim @ 12:53AM PDT  2 comments +  | top
      Do you sweat during the BIOS flashing + procedure on your BP6 mobo? If so then this little gadget maybe + worth a first look. It's called the "RD1 BIOS Savior" and it + plugs in between your BIOS ROM and the BIOS ROM socket on your mobo. + This device will backup your BIOS and and allow you to recover your + BIOS in the event that your flashing session goes wrong. In the + event of a bad flash, just flip a switch on the RDI and boot up your + system, and flash again. This is also good as a failsafe in case you + don't believe in Virus Protecting your computer. (Thanks to Fred for + link)
      Manufacturers Brochure (PDF Format)
      Another info page
      Available for about $20



      + + + +
      Monday, + July 17, 2000

      How To + Overclock
      Posted by DareDevil @ 4:17PM + PDT  3 comments +  | top
      For those of you who are new to + overclocking, this guide will explain to you how to overclock, and + what some of the terms are. Like 'FSB' (what the heck is that!? + :0))

      How To Overclock


      The Cardcooler + XT
      Posted by DareDevil @ 4:11PM + PDT  1 comments +  | top
      Wow! I am impressed! Nevermind keeping + the CPU's cool... Keep your whole board cool!

      Even if your + not overclocking your system (or planning on it), this unit will + provide system stability and longevity. What would happen one day of + your GeForce or CPU fan went dead? You can also think of this + cooling unit as a backup to essential cooling fans in your + system.

      Check this out!

      http://www.brokenpixel.com/articles/coolerXT/cardcoolerXT_1.shtml +


      'Nerd + Inside'
      Posted by DareDevil @ 11:53AM + PDT  1 comments +  | top
      We all need to have some fun + sometimes! Check out this little web site that sells 'nerd' clothing + ;) (I like the bibs in the Junior Hackerz section) :-Þ

      +



      Dual PSU Wiring diagram... (preview to + Part 1 Watercooling Project)
      Posted by tim @ 12:43AM PDT  11 comments +  | top
      When is comes to overclocking your + system, cooling plays a big role. Powering all of those fans in your + system can cause quite a strain on your PSU (Power Supply Unit). + Depending on the number of peripherals in your system, adding a more + powerfull PSU or adding a second PSU may be neccesary. For + watercooling and using peltiers, dedicating a second PSU to power + the Peltiers (TEC's) is a good idea. Here I have come up with 2 + diagrams on how I wired dual 300 watt ATX power supply units for the + Blizzard BP6 watercooling project. Consider this part of Step 1. + More will follow this week. BTW.. hacking up your PSU's is very + dangerous and is not recommended unless you know what you are doing. +

      View Diagram 1 here.
      View Diagram 2 here.

      I used Tap-In Squeeze Connectors and + 22 guage wire to connect the wires. You can get them at Radio Shack + Part# 64-3053 or click here.


      + + + +
      Sunday, + July 16, 2000

      RAM Overclocking? + Hmmmmm.
      Posted by DareDevil @ 9:57AM + PDT  3 comments +  | top
      I know we're pretty big overclockers + here at BP6.Com so, this is a post of choice ;-) I've seen the + question in the message boards, 'why can't I overclock any higher?' + Well, it's not always the CPU that's holding you back... Many other + things need to be taken care of to overclock such as your PCI + devices (can they handle the higher bus speed), the actual CPU, and + your RAM. I'm not saying that that a high quality stick of silicon + will enable you to overclock your 366MHz to 1 GHZ (I wish!), but, it + will certainly help =)

      Extreme Overclocking has tested + (overclocked) PC133 RAM to there full potential. Here's a quote I + found and the link:

      Well, the guys at Extreme Overclocking + have been hard at work again with their latest review. This time + they have put seven 128MB PC133 memory modules through the torture + tests to determine their maximum overclocking potential. Which one's + came out on top? Read the review to find out....

      Cooked RAM... Yummie

      The + ÐÐ.


      CPU + Guide
      Posted by DareDevil @ 9:17AM + PDT  0 comments +  | top
      A follow up on the 'Weekly CPU + Prices', this guide will help you determine which cpu is best for + you (and your board ;-)). Sent to me by Spanky, here's the + link:

      +
    • http://www6.tomshardware.com/howto/00q2/000412/index.html

      + + + +
      Saturday, + July 15, 2000

      Weekly CPU + Prices
      Posted by DareDevil @ 11:29AM + PDT  2 comments +  | top
      Wow, found this very useful! Wanting + to buy a new CPU? Check out this detailed price list!

      Click Here.

      Thanks Sharky + Extreme!


      Fast Wallpapers
      Posted by DareDevil @ 9:51AM + PDT  0 comments +  | top
      FAST-MHz has released some wallpapers! + Click here to view them. They come in sizes + 800x600 1024x768 and 1152x864. If you have your desktop set at a + larger size, just use the 'stretch' function in desktop properties + instead of 'center'. Works great.

      In other news, we want to + finnish off all the sections at BP6.Com so, to start, we're going to + work on the Picture Gallery. To help us out, you can send in + all your cool, wierd, crazy pics that you may have to: thedaredevil@bp6.com. (The + topic being computers, duh! :0) And no... I don't want to recieve + any porno piccies in my mailbox! I have enough of those!) Kidding + guys.

      Okay, that's all for now.

      The + ÐÐ.


      + + + +
      Friday, + July 14, 2000

      Hey + There!
      Posted by DareDevil @ 5:05PM + PDT  7 comments +  | top
      Hey guys, just wanted to introduce + myself, some of you may have already met me on the BP6.com board. + I'll be posting up news from time to time now so, if you'd like, you + may send me some news to be posted if you find any ( we don't want + to flood Tim ;-) ).

      My e-mail address is killz@i82hq.com

      Ciao for + now.

      The ÐÐ.


      +
    • +
      +

      + + + +
      +
      +

      Newsletter


      +
      Search news


      News + archive
      + + + +
      + + +
      +
      +

      PC Price + Search

      +





      BP6.com Special - Enter CODE: BP6-hd in the order (notes) to receive a discount
      BP6.COM + Special
      Code:BP6-hd

      + + + +
       

      +
       
      + + + +
      +

      Copyright + ©1999-2000 BP6.com, All rights reserved.
      Got news? Send it to
      Tim

      + + diff --git a/test/HTML/entities.html b/test/HTML/entities.html new file mode 100644 index 0000000..97aeb14 --- /dev/null +++ b/test/HTML/entities.html @@ -0,0 +1,5 @@ +

      +a&b +a&b +a & b +

      diff --git a/test/HTML/entities2.html b/test/HTML/entities2.html new file mode 100644 index 0000000..53cc7b0 --- /dev/null +++ b/test/HTML/entities2.html @@ -0,0 +1,7 @@ + + +
      + +
      + + \ No newline at end of file diff --git a/test/HTML/fp40.htm b/test/HTML/fp40.htm new file mode 100644 index 0000000..840b81e --- /dev/null +++ b/test/HTML/fp40.htm @@ -0,0 +1,166 @@ + + + + + +README - Microsoft FrontPage 2000 Server Extensions + + + + + +

      Microsoft FrontPage 2000 Server Extensions, UNIX

      + +© Copyright Microsoft Corporation, 1999  + + +

      The FrontPage Server Extensions are a set of programs on the Web server that support: + +

        +
      • Authoring FrontPage webs
      • +
      • Administering FrontPage webs
      • +
      • Browse-time FrontPage web functionality
      • +
      + + +

      Contents 

      + +Release Notes
      +Resources for More Information +

       

      +
      +

      Release Notes

      + +

      This section provides complementary or late-breaking +information to supplement the Microsoft FrontPage Server Extensions documentation.

      + +

      Apache 1.3.4 Support
      +Upgrading from previous version of FrontPage Server Extensions
      +Uploading files into executable folders

      + + +

      Top of Page

      + + +

      Apache 1.3.4 Support

      + +

      You need to take some special steps to run the FrontPage Server Extensions with Apache 1.3.4. +FrontPage Server Extensions expect to find all resource directives in the main server +configuration file, usually http.conf. To prevent the server extensions from using any secondary +configuration files (access.conf, srm.conf), add the following lines to http.conf:

      + + +
      +
      + +ResourceConfig /dev/null 
      +AccessConfig /dev/null
      +
      + + + +

      If you have some settings stored in secondary configuration files, move them to http.conf.

      + +

      You must stop and restart the web server for your changes to http.conf to take effect.

      + + + +

      Top of Section

      + + + +

      Upgrading from previous version of FrontPage Server Extensions

      + +

      Custom entries in frontpage.cnf are not migrated to FrontPage 2000.

      + +

      When you install FrontPage 2000 Server Extensions, a new frontpage.cnf file is created in the /usr/local/frontpage/version4.0 directory. +Any custom settings stored in a previous-version frontpage.cnf are not used. However, you can copy +your custom settings from the previous-version frontpage.cnf file after you install the FrontPage 2000 Server Extensions.

      + +

      Do not overwrite the FrontPage 2000 frontpage.cnf file with a frontpage.cnf file from an +earlier version of the FrontPage Server Extensions.

      + + + +

      Top of Section

      + + + +

      Uploading files into executable folders

      + + +

      After upgrading to FrontPage 2000, FrontPage authors will not be able to upload files into +executable folders. For security reasons, the default setting on FrontPage 2000 webs does not +allow authors to upload executable files into executable folders in a FrontPage web. This +setting protects servers so that authors do not inadvertently upload a program containing a bug +or a virus.

      + +

      To allow FrontPage authors to upload executables, set the NoExecutableCgiUpload configuration +variable to zero (0). For information about FrontPage Server Extension configuration variables, +see the FrontPage 2000 Server Extensions Resource Kit at http://officeupdate.microsoft.com/frontpage/wpp/serk/.

      + + + +

      Top of Section

      + + + +
      + + + +

      Resources for More Information

      + +

      This section lists sources of more information about the +FrontPage Server Extensions.

      + +

      Server Extensions Resource Kit
      +Server Extensions Resource Kit Update
      +Knowledge Base

      + + +

      Top of Page

      + + +

      Server Extensions Resource Kit

      + +

      The FrontPage 2000 Server Extensions include a full set of documentation: the Server +Extensions Resource Kit. This is an HTML document installed on the server machine (by +default) in /usr/local/frontpage/version4.0/serk. To view the Server Extensions Resource +Kit, open /usr/local/frontpage/version4.0/serk/default.htm in your Web browser.

      + +

      The Server Extensions Resource Kit contains detailed information about installing and +administering the FrontPage Server Extensions along with an overview of the Server +Extensions, a detailed discussion of Server Extensions security on UNIX and Windows, +troubleshooting information, and a full set of appendixes.

      + +

      Top of Section

      + + +

      Server Extensions Resource Kit Update

      + +

      For updated information about installing, setting up, and administrating the FrontPage Server +Extensions, see the Server Extensions Resource Kit Update at: http://officeupdate.microsoft.com/frontpage/wpp/serk/.

      + + +

      Top of Section

      + + +

      Microsoft Knowledge Base

      + +

      For further technical information on FrontPage, please consult Support Online. Use Support +Online to easily search Microsoft Product Support Services' collection of resources including +technical articles from Microsoft's extensive Knowledge Base, FAQs, & troubleshooters to find +fast, accurate answers. You can also customize the site to control your search using either +keywords or the site's natural language search engine, which uses normal everyday language for +answering inquiries, so you can write your question in your own words. To begin, go to +http://support.microsoft.com/support/.

      + +

      Top of Section

      + + +

       

      + +
      + + diff --git a/test/HTML/html5_enc.html b/test/HTML/html5_enc.html new file mode 100644 index 0000000..3ebf491 --- /dev/null +++ b/test/HTML/html5_enc.html @@ -0,0 +1,8 @@ + + + + + +

      très

      + + diff --git a/test/HTML/liclose.html b/test/HTML/liclose.html new file mode 100644 index 0000000..7364034 --- /dev/null +++ b/test/HTML/liclose.html @@ -0,0 +1,13 @@ + + + + + + +
        +
      • First item +
      • Second item, closes the first one +
      + + diff --git a/test/HTML/lt.html b/test/HTML/lt.html new file mode 100644 index 0000000..62f6d94 --- /dev/null +++ b/test/HTML/lt.html @@ -0,0 +1,5 @@ + + + + + diff --git a/test/HTML/noscript.html b/test/HTML/noscript.html new file mode 100644 index 0000000..454e943 --- /dev/null +++ b/test/HTML/noscript.html @@ -0,0 +1,10 @@ + + + + omg + + + +

      yo

      + + diff --git a/test/HTML/pre.html b/test/HTML/pre.html new file mode 100644 index 0000000..8e1a66d --- /dev/null +++ b/test/HTML/pre.html @@ -0,0 +1,5 @@ + + +
      + + diff --git a/test/HTML/python.html b/test/HTML/python.html new file mode 100644 index 0000000..51a6394 --- /dev/null +++ b/test/HTML/python.html @@ -0,0 +1,10 @@ + + + + + +Python Programming Language + + + diff --git a/test/HTML/reg1.html b/test/HTML/reg1.html new file mode 100644 index 0000000..ecdd007 --- /dev/null +++ b/test/HTML/reg1.html @@ -0,0 +1,10 @@ + + +Regression test 1 + + +

      Regression test 1

      +

      +Ok file no problem + + diff --git a/test/HTML/reg2.html b/test/HTML/reg2.html new file mode 100644 index 0000000..7145c19 --- /dev/null +++ b/test/HTML/reg2.html @@ -0,0 +1,12 @@ + + +Regression test 2 + + +

      Regression test 2

      +

      +Autoclose of tag P +

      +Ok file no problem + + diff --git a/test/HTML/reg3.html b/test/HTML/reg3.html new file mode 100644 index 0000000..014483b --- /dev/null +++ b/test/HTML/reg3.html @@ -0,0 +1,13 @@ + + +Regression test 3 + + +

      Regression test 3

      +

      +Autoclose of tag P +


      +

      +Ok file no problem + + diff --git a/test/HTML/reg4.html b/test/HTML/reg4.html new file mode 100644 index 0000000..7d04ca2 --- /dev/null +++ b/test/HTML/reg4.html @@ -0,0 +1,12 @@ + + +Regression test 4 + + +

      Regression test 4

      +

      +Wrong close of tag P +


      +

      + + diff --git a/test/HTML/repeat.html b/test/HTML/repeat.html new file mode 100644 index 0000000..d6d6f97 --- /dev/null +++ b/test/HTML/repeat.html @@ -0,0 +1 @@ +
      diff --git a/test/HTML/script.html b/test/HTML/script.html new file mode 100644 index 0000000..197b002 --- /dev/null +++ b/test/HTML/script.html @@ -0,0 +1,9 @@ + +Script tests + + + + + diff --git a/test/HTML/script2.html b/test/HTML/script2.html new file mode 100644 index 0000000..2606a83 --- /dev/null +++ b/test/HTML/script2.html @@ -0,0 +1,19 @@ + + + + +Test Page + + +
      + +

      + PříliÅ¡ žluÅ¥ouÄký kůň úpÄ›l Äábelksé ódy; +

      +
      + + + diff --git a/test/HTML/test2.html b/test/HTML/test2.html new file mode 100644 index 0000000..c8fd44c --- /dev/null +++ b/test/HTML/test2.html @@ -0,0 +1,33 @@ + + Linux Today + + +
      + + + + + + +
      +Atipa Linux solutions. Your reliable cluster, server, and workstation solution. Win a Free Celeron Linux Workstation! + + Linux Today Logo
      linux.com partner

      + +[ headlines | +features | +commercial | +security | +jobs | +volt | +contribute/submit | +advertise | +search | +site digests | +mailing lists | +about us | +link us ] +
      +

      + + diff --git a/test/HTML/test3.html b/test/HTML/test3.html new file mode 100644 index 0000000..af1f190 --- /dev/null +++ b/test/HTML/test3.html @@ -0,0 +1,34 @@ + + + + +

      Component Package diagram ProblemDomain

      +


      +
      +
      Stereotype problem domain
      +
      Alias Problem Domain
      +
      Note
      The Problem Domain package is the model behind the Human +
      Interface, thats stores and manipulates the Family Tree. +
      +


      +
      + +

      Class HumanInterface.FamilyFrame

      +

      Class ProblemDomain.Birth

      +

      Class ProblemDomain.Death

      +

      Class ProblemDomain.Divorce

      +

      Class ProblemDomain.Family

      +

      Class ProblemDomain.Individual

      +

      Class ProblemDomain.LifeEvent

      +

      Class ProblemDomain.Marriage

      +

      Class ProblemDomain.Note

      +
      + +

      Links

      + + + + + + + diff --git a/test/HTML/utf8bug.html b/test/HTML/utf8bug.html new file mode 100644 index 0000000..c3cface --- /dev/null +++ b/test/HTML/utf8bug.html @@ -0,0 +1,182 @@ + + + + + + + + +شهير بلاگ + + + + + + + + + + + + +
      + + + + + +
      +  
      +
      + +
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Not Recognized +

      Outside the DTD, the % character has no +special significance; thus, what would be parameter entity references in the +DTD are not recognized as markup in content. +Similarly, the names of unparsed entities are not recognized except +when they appear in the value of an appropriately declared attribute. +

      +
      + +Included +

      An entity is +included when its +replacement text is retrieved +and processed, in place of the reference itself, +as though it were part of the document at the location the +reference was recognized. +The replacement text may contain both +character data +and (except for parameter entities) markup, +which must be recognized in +the usual way, except that the replacement text of entities used to escape +markup delimiters (the entities &magicents;) is always treated as +data. (The string "AT&amp;T;" expands to +"AT&T;" and the remaining ampersand is not recognized +as an entity-reference delimiter.) +A character reference is included when the indicated +character is processed in place of the reference itself. +

      +
      + +Included If Validating +

      When an XML processor recognizes a reference to a parsed entity, in order +to validate +the document, the processor must +include its +replacement text. +If the entity is external, and the processor is not +attempting to validate the XML document, the +processor may, but need not, +include the entity's replacement text. +If a non-validating parser does not include the replacement text, +it must inform the application that it recognized, but did not +read, the entity.

      +

      This rule is based on the recognition that the automatic inclusion +provided by the SGML and XML entity mechanism, primarily designed +to support modularity in authoring, is not necessarily +appropriate for other applications, in particular document browsing. +Browsers, for example, when encountering an external parsed entity reference, +might choose to provide a visual indication of the entity's +presence and retrieve it for display only on demand. +

      +
      + +Forbidden +

      The following are forbidden, and constitute +fatal errors: + +

      the appearance of a reference to an +unparsed entity. +

      +

      the appearance of any character or general-entity reference in the +DTD except within an EntityValue or +AttValue.

      +

      a reference to an external entity in an attribute value.

      +
      + +

      +
      + +Included in Literal +

      When an entity reference appears in an +attribute value, or a parameter entity reference appears in a literal entity +value, its replacement text is +processed in place of the reference itself as though it +were part of the document at the location the reference was recognized, +except that a single or double quote character in the replacement text +is always treated as a normal data character and will not terminate the +literal. +For example, this is well-formed: + +]]> +while this is not: +<!ENTITY EndAttr "27'" > +<element attribute='a-&EndAttr;> +

      + +Notify +

      When the name of an unparsed +entity appears as a token in the +value of an attribute of declared type ENTITY or ENTITIES, +a validating processor must inform the +application of the system +and public (if any) +identifiers for both the entity and its associated +notation.

      +
      + +Bypassed +

      When a general entity reference appears in the +EntityValue in an entity declaration, +it is bypassed and left as is.

      +
      + +Included as PE +

      Just as with external parsed entities, parameter entities +need only be included if +validating. +When a parameter-entity reference is recognized in the DTD +and included, its +replacement +text is enlarged by the attachment of one leading and one following +space (#x20) character; the intent is to constrain the replacement +text of parameter +entities to contain an integral number of grammatical tokens in the DTD. +

      +
      + + + +Construction of Internal Entity Replacement Text +

      In discussing the treatment +of internal entities, it is +useful to distinguish two forms of the entity's value. +The literal +entity value is the quoted string actually +present in the entity declaration, corresponding to the +non-terminal EntityValue. +The replacement +text is the content of the entity, after +replacement of character references and parameter-entity +references. +

      + +

      The literal entity value +as given in an internal entity declaration +(EntityValue) may contain character, +parameter-entity, and general-entity references. +Such references must be contained entirely within the +literal entity value. +The actual replacement text that is +included as described above +must contain the replacement text of any +parameter entities referred to, and must contain the character +referred to, in place of any character references in the +literal entity value; however, +general-entity references must be left as-is, unexpanded. +For example, given the following declarations: + + + +]]> +then the replacement text for the entity "book" is: +La Peste: Albert Camus, +© 1947 Éditions Gallimard. &rights; +The general-entity reference "&rights;" would be expanded +should the reference "&book;" appear in the document's +content or an attribute value.

      +

      These simple rules may have complex interactions; for a detailed +discussion of a difficult example, see +. +

      + +
      + +Predefined Entities +

      Entity and character +references can both be used to escape the left angle bracket, +ampersand, and other delimiters. A set of general entities +(&magicents;) is specified for this purpose. +Numeric character references may also be used; they are +expanded immediately when recognized and must be treated as +character data, so the numeric character references +"&#60;" and "&#38;" may be used to +escape < and & when they occur +in character data.

      +

      All XML processors must recognize these entities whether they +are declared or not. +For interoperability, +valid XML documents should declare these +entities, like any others, before using them. +If the entities in question are declared, they must be declared +as internal entities whose replacement text is the single +character being escaped or a character reference to +that character, as shown below. + + + + + +]]> +Note that the < and & characters +in the declarations of "lt" and "amp" +are doubly escaped to meet the requirement that entity replacement +be well-formed. +

      +
      + + +Notation Declarations + +

      Notations identify by +name the format of unparsed +entities, the +format of elements which bear a notation attribute, +or the application to which +a processing instruction is +addressed.

      +

      +Notation declarations +provide a name for the notation, for use in +entity and attribute-list declarations and in attribute specifications, +and an external identifier for the notation which may allow an XML +processor or its client application to locate a helper application +capable of processing data in the given notation. + +Notation Declarations +NotationDecl +'<!NOTATION' S Name +S +(ExternalID | +PublicID) +S? '>' +PublicID +'PUBLIC' S +PubidLiteral + + +

      +

      XML processors must provide applications with the name and external +identifier(s) of any notation declared and referred to in an attribute +value, attribute definition, or entity declaration. They may +additionally resolve the external identifier into the +system identifier, +file name, or other information needed to allow the +application to call a processor for data in the notation described. (It +is not an error, however, for XML documents to declare and refer to +notations for which notation-specific applications are not available on +the system where the XML processor or application is running.)

      +
      + + + +Document Entity + +

      The document +entity serves as the root of the entity +tree and a starting-point for an XML +processor. +This specification does +not specify how the document entity is to be located by an XML +processor; unlike other entities, the document entity has no name and might +well appear on a processor input stream +without any identification at all.

      +
      + + + + + + +Conformance + + +Validating and Non-Validating Processors +

      Conforming XML processors fall into two +classes: validating and non-validating.

      +

      Validating and non-validating processors alike must report +violations of this specification's well-formedness constraints +in the content of the +document entity and any +other parsed entities that +they read.

      +

      +Validating processors must report +violations of the constraints expressed by the declarations in the +DTD, and +failures to fulfill the validity constraints given +in this specification. + +To accomplish this, validating XML processors must read and process the entire +DTD and all external parsed entities referenced in the document. +

      +

      Non-validating processors are required to check only the +document entity, including +the entire internal DTD subset, for well-formedness. + +While they are not required to check the document for validity, +they are required to +process all the declarations they read in the +internal DTD subset and in any parameter entity that they +read, up to the first reference +to a parameter entity that they do not read; that is to +say, they must +use the information in those declarations to +normalize attribute values, +include the replacement text of +internal entities, and supply +default attribute values. + +They must not process +entity declarations or +attribute-list declarations +encountered after a reference to a parameter entity that is not +read, since the entity may have contained overriding declarations. +

      +
      + +Using XML Processors +

      The behavior of a validating XML processor is highly predictable; it +must read every piece of a document and report all well-formedness and +validity violations. +Less is required of a non-validating processor; it need not read any +part of the document other than the document entity. +This has two effects that may be important to users of XML processors: + +

      Certain well-formedness errors, specifically those that require +reading external entities, may not be detected by a non-validating processor. +Examples include the constraints entitled +Entity Declared, +Parsed Entity, and +No Recursion, as well +as some of the cases described as +forbidden in +.

      +

      The information passed from the processor to the application may +vary, depending on whether the processor reads +parameter and external entities. +For example, a non-validating processor may not +normalize attribute values, +include the replacement text of +internal entities, or supply +default attribute values, +where doing so depends on having read declarations in +external or parameter entities.

      + +

      +

      For maximum reliability in interoperating between different XML +processors, applications which use non-validating processors should not +rely on any behaviors not required of such processors. +Applications which require facilities such as the use of default +attributes or internal entities which are declared in external +entities should use validating XML processors.

      +
      +
      + + +Notation + +

      The formal grammar of XML is given in this specification using a simple +Extended Backus-Naur Form (EBNF) notation. Each rule in the grammar defines +one symbol, in the form +symbol ::= expression

      +

      Symbols are written with an initial capital letter if they are +defined by a regular expression, or with an initial lower case letter +otherwise. +Literal strings are quoted. + +

      + +

      Within the expression on the right-hand side of a rule, the following +expressions are used to match strings of one or more characters: + + + +

      where N is a hexadecimal integer, the +expression matches the character in ISO/IEC 10646 whose canonical +(UCS-4) +code value, when interpreted as an unsigned binary number, has +the value indicated. The number of leading zeros in the +#xN form is insignificant; the number of leading +zeros in the corresponding code value +is governed by the character +encoding in use and is not significant for XML.

      + + + +

      matches any character +with a value in the range(s) indicated (inclusive).

      +
      + + +

      matches any character +with a value outside the +range indicated.

      +
      + + +

      matches any character +with a value not among the characters given.

      +
      + + +

      matches a literal string matching +that given inside the double quotes.

      +
      + + +

      matches a literal string matching +that given inside the single quotes.

      +
      + +These symbols may be combined to match more complex patterns as follows, +where A and B represent simple expressions: + + + +

      expression is treated as a unit +and may be combined as described in this list.

      +
      + + +

      matches A or nothing; optional A.

      +
      + + +

      matches A followed by B.

      +
      + + +

      matches A or B but not both.

      +
      + + +

      matches any string that matches A but does not match +B. +

      +
      + + +

      matches one or more occurrences of A.

      +
      + + +

      matches zero or more occurrences of A.

      +
      + +
      +Other notations used in the productions are: + + + +

      comment.

      +
      + + +

      well-formedness constraint; this identifies by name a +constraint on +well-formed documents +associated with a production.

      +
      + + +

      validity constraint; this identifies by name a constraint on +valid documents associated with +a production.

      +
      +
      +

      + + + + + + + + + +References + +Normative References + + + +(Internet Assigned Numbers Authority) Official Names for +Character Sets, +ed. Keld Simonsen et al. +See ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets. + + + +IETF (Internet Engineering Task Force). +RFC 1766: Tags for the Identification of Languages, +ed. H. Alvestrand. +1995. + + + +(International Organization for Standardization). +ISO 639:1988 (E). +Code for the representation of names of languages. +[Geneva]: International Organization for +Standardization, 1988. + + +(International Organization for Standardization). +ISO 3166-1:1997 (E). +Codes for the representation of names of countries and their subdivisions +— Part 1: Country codes +[Geneva]: International Organization for +Standardization, 1997. + +ISO +(International Organization for Standardization). +ISO/IEC 10646-1993 (E). Information technology — Universal +Multiple-Octet Coded Character Set (UCS) — Part 1: +Architecture and Basic Multilingual Plane. +[Geneva]: International Organization for +Standardization, 1993 (plus amendments AM 1 through AM 7). + + +The Unicode Consortium. +The Unicode Standard, Version 2.0. +Reading, Mass.: Addison-Wesley Developers Press, 1996. + + + + + +Other References + + + +Aho, Alfred V., +Ravi Sethi, and Jeffrey D. Ullman. +Compilers: Principles, Techniques, and Tools. +Reading: Addison-Wesley, 1986, rpt. corr. 1988. + + +Berners-Lee, T., R. Fielding, and L. Masinter. +Uniform Resource Identifiers (URI): Generic Syntax and +Semantics. +1997. +(Work in progress; see updates to RFC1738.) + +Brüggemann-Klein, Anne. +Regular Expressions into Finite Automata. +Extended abstract in I. Simon, Hrsg., LATIN 1992, +S. 97-98. Springer-Verlag, Berlin 1992. +Full Version in Theoretical Computer Science 120: 197-213, 1993. + + + +Brüggemann-Klein, Anne, +and Derick Wood. +Deterministic Regular Languages. +Universität Freiburg, Institut für Informatik, +Bericht 38, Oktober 1991. + + +James Clark. +Comparison of SGML and XML. See +http://www.w3.org/TR/NOTE-sgml-xml-971215. + + +IETF (Internet Engineering Task Force). +RFC 1738: Uniform Resource Locators (URL), +ed. T. Berners-Lee, L. Masinter, M. McCahill. +1994. + + + +IETF (Internet Engineering Task Force). +RFC 1808: Relative Uniform Resource Locators, +ed. R. Fielding. +1995. + + + +IETF (Internet Engineering Task Force). +RFC 2141: URN Syntax, +ed. R. Moats. +1997. + + +ISO +(International Organization for Standardization). +ISO 8879:1986(E). Information processing — Text and Office +Systems — Standard Generalized Markup Language (SGML). First +edition — 1986-10-15. [Geneva]: International Organization for +Standardization, 1986. + + + +ISO +(International Organization for Standardization). +ISO/IEC 10744-1992 (E). Information technology — +Hypermedia/Time-based Structuring Language (HyTime). + +[Geneva]: International Organization for +Standardization, 1992. +Extended Facilities Annexe. +[Geneva]: International Organization for +Standardization, 1996. + + + + + + + + +Character Classes +

      Following the characteristics defined in the Unicode standard, +characters are classed as base characters (among others, these +contain the alphabetic characters of the Latin alphabet, without +diacritics), ideographic characters, and combining characters (among +others, this class contains most diacritics); these classes combine +to form the class of letters. Digits and extenders are +also distinguished. + +Characters + +Letter +BaseChar +| Ideographic +BaseChar +[#x0041-#x005A] +| [#x0061-#x007A] +| [#x00C0-#x00D6] +| [#x00D8-#x00F6] +| [#x00F8-#x00FF] +| [#x0100-#x0131] +| [#x0134-#x013E] +| [#x0141-#x0148] +| [#x014A-#x017E] +| [#x0180-#x01C3] +| [#x01CD-#x01F0] +| [#x01F4-#x01F5] +| [#x01FA-#x0217] +| [#x0250-#x02A8] +| [#x02BB-#x02C1] +| #x0386 +| [#x0388-#x038A] +| #x038C +| [#x038E-#x03A1] +| [#x03A3-#x03CE] +| [#x03D0-#x03D6] +| #x03DA +| #x03DC +| #x03DE +| #x03E0 +| [#x03E2-#x03F3] +| [#x0401-#x040C] +| [#x040E-#x044F] +| [#x0451-#x045C] +| [#x045E-#x0481] +| [#x0490-#x04C4] +| [#x04C7-#x04C8] +| [#x04CB-#x04CC] +| [#x04D0-#x04EB] +| [#x04EE-#x04F5] +| [#x04F8-#x04F9] +| [#x0531-#x0556] +| #x0559 +| [#x0561-#x0586] +| [#x05D0-#x05EA] +| [#x05F0-#x05F2] +| [#x0621-#x063A] +| [#x0641-#x064A] +| [#x0671-#x06B7] +| [#x06BA-#x06BE] +| [#x06C0-#x06CE] +| [#x06D0-#x06D3] +| #x06D5 +| [#x06E5-#x06E6] +| [#x0905-#x0939] +| #x093D +| [#x0958-#x0961] +| [#x0985-#x098C] +| [#x098F-#x0990] +| [#x0993-#x09A8] +| [#x09AA-#x09B0] +| #x09B2 +| [#x09B6-#x09B9] +| [#x09DC-#x09DD] +| [#x09DF-#x09E1] +| [#x09F0-#x09F1] +| [#x0A05-#x0A0A] +| [#x0A0F-#x0A10] +| [#x0A13-#x0A28] +| [#x0A2A-#x0A30] +| [#x0A32-#x0A33] +| [#x0A35-#x0A36] +| [#x0A38-#x0A39] +| [#x0A59-#x0A5C] +| #x0A5E +| [#x0A72-#x0A74] +| [#x0A85-#x0A8B] +| #x0A8D +| [#x0A8F-#x0A91] +| [#x0A93-#x0AA8] +| [#x0AAA-#x0AB0] +| [#x0AB2-#x0AB3] +| [#x0AB5-#x0AB9] +| #x0ABD +| #x0AE0 +| [#x0B05-#x0B0C] +| [#x0B0F-#x0B10] +| [#x0B13-#x0B28] +| [#x0B2A-#x0B30] +| [#x0B32-#x0B33] +| [#x0B36-#x0B39] +| #x0B3D +| [#x0B5C-#x0B5D] +| [#x0B5F-#x0B61] +| [#x0B85-#x0B8A] +| [#x0B8E-#x0B90] +| [#x0B92-#x0B95] +| [#x0B99-#x0B9A] +| #x0B9C +| [#x0B9E-#x0B9F] +| [#x0BA3-#x0BA4] +| [#x0BA8-#x0BAA] +| [#x0BAE-#x0BB5] +| [#x0BB7-#x0BB9] +| [#x0C05-#x0C0C] +| [#x0C0E-#x0C10] +| [#x0C12-#x0C28] +| [#x0C2A-#x0C33] +| [#x0C35-#x0C39] +| [#x0C60-#x0C61] +| [#x0C85-#x0C8C] +| [#x0C8E-#x0C90] +| [#x0C92-#x0CA8] +| [#x0CAA-#x0CB3] +| [#x0CB5-#x0CB9] +| #x0CDE +| [#x0CE0-#x0CE1] +| [#x0D05-#x0D0C] +| [#x0D0E-#x0D10] +| [#x0D12-#x0D28] +| [#x0D2A-#x0D39] +| [#x0D60-#x0D61] +| [#x0E01-#x0E2E] +| #x0E30 +| [#x0E32-#x0E33] +| [#x0E40-#x0E45] +| [#x0E81-#x0E82] +| #x0E84 +| [#x0E87-#x0E88] +| #x0E8A +| #x0E8D +| [#x0E94-#x0E97] +| [#x0E99-#x0E9F] +| [#x0EA1-#x0EA3] +| #x0EA5 +| #x0EA7 +| [#x0EAA-#x0EAB] +| [#x0EAD-#x0EAE] +| #x0EB0 +| [#x0EB2-#x0EB3] +| #x0EBD +| [#x0EC0-#x0EC4] +| [#x0F40-#x0F47] +| [#x0F49-#x0F69] +| [#x10A0-#x10C5] +| [#x10D0-#x10F6] +| #x1100 +| [#x1102-#x1103] +| [#x1105-#x1107] +| #x1109 +| [#x110B-#x110C] +| [#x110E-#x1112] +| #x113C +| #x113E +| #x1140 +| #x114C +| #x114E +| #x1150 +| [#x1154-#x1155] +| #x1159 +| [#x115F-#x1161] +| #x1163 +| #x1165 +| #x1167 +| #x1169 +| [#x116D-#x116E] +| [#x1172-#x1173] +| #x1175 +| #x119E +| #x11A8 +| #x11AB +| [#x11AE-#x11AF] +| [#x11B7-#x11B8] +| #x11BA +| [#x11BC-#x11C2] +| #x11EB +| #x11F0 +| #x11F9 +| [#x1E00-#x1E9B] +| [#x1EA0-#x1EF9] +| [#x1F00-#x1F15] +| [#x1F18-#x1F1D] +| [#x1F20-#x1F45] +| [#x1F48-#x1F4D] +| [#x1F50-#x1F57] +| #x1F59 +| #x1F5B +| #x1F5D +| [#x1F5F-#x1F7D] +| [#x1F80-#x1FB4] +| [#x1FB6-#x1FBC] +| #x1FBE +| [#x1FC2-#x1FC4] +| [#x1FC6-#x1FCC] +| [#x1FD0-#x1FD3] +| [#x1FD6-#x1FDB] +| [#x1FE0-#x1FEC] +| [#x1FF2-#x1FF4] +| [#x1FF6-#x1FFC] +| #x2126 +| [#x212A-#x212B] +| #x212E +| [#x2180-#x2182] +| [#x3041-#x3094] +| [#x30A1-#x30FA] +| [#x3105-#x312C] +| [#xAC00-#xD7A3] + +Ideographic +[#x4E00-#x9FA5] +| #x3007 +| [#x3021-#x3029] + +CombiningChar +[#x0300-#x0345] +| [#x0360-#x0361] +| [#x0483-#x0486] +| [#x0591-#x05A1] +| [#x05A3-#x05B9] +| [#x05BB-#x05BD] +| #x05BF +| [#x05C1-#x05C2] +| #x05C4 +| [#x064B-#x0652] +| #x0670 +| [#x06D6-#x06DC] +| [#x06DD-#x06DF] +| [#x06E0-#x06E4] +| [#x06E7-#x06E8] +| [#x06EA-#x06ED] +| [#x0901-#x0903] +| #x093C +| [#x093E-#x094C] +| #x094D +| [#x0951-#x0954] +| [#x0962-#x0963] +| [#x0981-#x0983] +| #x09BC +| #x09BE +| #x09BF +| [#x09C0-#x09C4] +| [#x09C7-#x09C8] +| [#x09CB-#x09CD] +| #x09D7 +| [#x09E2-#x09E3] +| #x0A02 +| #x0A3C +| #x0A3E +| #x0A3F +| [#x0A40-#x0A42] +| [#x0A47-#x0A48] +| [#x0A4B-#x0A4D] +| [#x0A70-#x0A71] +| [#x0A81-#x0A83] +| #x0ABC +| [#x0ABE-#x0AC5] +| [#x0AC7-#x0AC9] +| [#x0ACB-#x0ACD] +| [#x0B01-#x0B03] +| #x0B3C +| [#x0B3E-#x0B43] +| [#x0B47-#x0B48] +| [#x0B4B-#x0B4D] +| [#x0B56-#x0B57] +| [#x0B82-#x0B83] +| [#x0BBE-#x0BC2] +| [#x0BC6-#x0BC8] +| [#x0BCA-#x0BCD] +| #x0BD7 +| [#x0C01-#x0C03] +| [#x0C3E-#x0C44] +| [#x0C46-#x0C48] +| [#x0C4A-#x0C4D] +| [#x0C55-#x0C56] +| [#x0C82-#x0C83] +| [#x0CBE-#x0CC4] +| [#x0CC6-#x0CC8] +| [#x0CCA-#x0CCD] +| [#x0CD5-#x0CD6] +| [#x0D02-#x0D03] +| [#x0D3E-#x0D43] +| [#x0D46-#x0D48] +| [#x0D4A-#x0D4D] +| #x0D57 +| #x0E31 +| [#x0E34-#x0E3A] +| [#x0E47-#x0E4E] +| #x0EB1 +| [#x0EB4-#x0EB9] +| [#x0EBB-#x0EBC] +| [#x0EC8-#x0ECD] +| [#x0F18-#x0F19] +| #x0F35 +| #x0F37 +| #x0F39 +| #x0F3E +| #x0F3F +| [#x0F71-#x0F84] +| [#x0F86-#x0F8B] +| [#x0F90-#x0F95] +| #x0F97 +| [#x0F99-#x0FAD] +| [#x0FB1-#x0FB7] +| #x0FB9 +| [#x20D0-#x20DC] +| #x20E1 +| [#x302A-#x302F] +| #x3099 +| #x309A + +Digit +[#x0030-#x0039] +| [#x0660-#x0669] +| [#x06F0-#x06F9] +| [#x0966-#x096F] +| [#x09E6-#x09EF] +| [#x0A66-#x0A6F] +| [#x0AE6-#x0AEF] +| [#x0B66-#x0B6F] +| [#x0BE7-#x0BEF] +| [#x0C66-#x0C6F] +| [#x0CE6-#x0CEF] +| [#x0D66-#x0D6F] +| [#x0E50-#x0E59] +| [#x0ED0-#x0ED9] +| [#x0F20-#x0F29] + +Extender +#x00B7 +| #x02D0 +| #x02D1 +| #x0387 +| #x0640 +| #x0E46 +| #x0EC6 +| #x3005 +| [#x3031-#x3035] +| [#x309D-#x309E] +| [#x30FC-#x30FE] + + + + +

      +

      The character classes defined here can be derived from the +Unicode character database as follows: + + +

      Name start characters must have one of the categories Ll, Lu, +Lo, Lt, Nl.

      + + +

      Name characters other than Name-start characters +must have one of the categories Mc, Me, Mn, Lm, or Nd.

      +
      + +

      Characters in the compatibility area (i.e. with character code +greater than #xF900 and less than #xFFFE) are not allowed in XML +names.

      +
      + +

      Characters which have a font or compatibility decomposition (i.e. those +with a "compatibility formatting tag" in field 5 of the database -- +marked by field 5 beginning with a "<") are not allowed.

      +
      + +

      The following characters are treated as name-start characters +rather than name characters, because the property file classifies +them as Alphabetic: [#x02BB-#x02C1], #x0559, #x06E5, #x06E6.

      +
      + +

      Characters #x20DD-#x20E0 are excluded (in accordance with +Unicode, section 5.14).

      +
      + +

      Character #x00B7 is classified as an extender, because the +property list so identifies it.

      +
      + +

      Character #x0387 is added as a name character, because #x00B7 +is its canonical equivalent.

      +
      + +

      Characters ':' and '_' are allowed as name-start characters.

      +
      + +

      Characters '-' and '.' are allowed as name characters.

      +
      + +

      +
      + +XML and SGML + +

      XML is designed to be a subset of SGML, in that every +valid XML document should also be a +conformant SGML document. +For a detailed comparison of the additional restrictions that XML places on +documents beyond those of SGML, see . +

      +
      + +Expansion of Entity and Character References +

      This appendix contains some examples illustrating the +sequence of entity- and character-reference recognition and +expansion, as specified in .

      +

      +If the DTD contains the declaration +An ampersand (&#38;) may be escaped +numerically (&#38;#38;) or with a general entity +(&amp;).

      " > +]]> +then the XML processor will recognize the character references +when it parses the entity declaration, and resolve them before +storing the following string as the +value of the entity "example": +An ampersand (&) may be escaped +numerically (&#38;) or with a general entity +(&amp;).

      +]]>
      +A reference in the document to "&example;" +will cause the text to be reparsed, at which time the +start- and end-tags of the "p" element will be recognized +and the three references will be recognized and expanded, +resulting in a "p" element with the following content +(all data, no delimiters or markup): + +

      +

      A more complex example will illustrate the rules and their +effects fully. In the following example, the line numbers are +solely for reference. + +2 +4 +5 ' > +6 %xx; +7 ]> +8 This sample shows a &tricky; method. +]]> +This produces the following: + +

      in line 4, the reference to character 37 is expanded immediately, +and the parameter entity "xx" is stored in the symbol +table with the value "%zz;". Since the replacement text +is not rescanned, the reference to parameter entity "zz" +is not recognized. (And it would be an error if it were, since +"zz" is not yet declared.)

      +

      in line 5, the character reference "&#60;" is +expanded immediately and the parameter entity "zz" is +stored with the replacement text +"<!ENTITY tricky "error-prone" >", +which is a well-formed entity declaration.

      +

      in line 6, the reference to "xx" is recognized, +and the replacement text of "xx" (namely +"%zz;") is parsed. The reference to "zz" +is recognized in its turn, and its replacement text +("<!ENTITY tricky "error-prone" >") is parsed. +The general entity "tricky" has now been +declared, with the replacement text "error-prone".

      +

      +in line 8, the reference to the general entity "tricky" is +recognized, and it is expanded, so the full content of the +"test" element is the self-describing (and ungrammatical) string +This sample shows a error-prone method. +

      + +

      +
      + +Deterministic Content Models +

      For compatibility, it is +required +that content models in element type declarations be deterministic. +

      + +

      SGML +requires deterministic content models (it calls them +"unambiguous"); XML processors built using SGML systems may +flag non-deterministic content models as errors.

      +

      For example, the content model ((b, c) | (b, d)) is +non-deterministic, because given an initial b the parser +cannot know which b in the model is being matched without +looking ahead to see which element follows the b. +In this case, the two references to +b can be collapsed +into a single reference, making the model read +(b, (c | d)). An initial b now clearly +matches only a single name in the content model. The parser doesn't +need to look ahead to see what follows; either c or +d would be accepted.

      +

      More formally: a finite state automaton may be constructed from the +content model using the standard algorithms, e.g. algorithm 3.5 +in section 3.9 +of Aho, Sethi, and Ullman . +In many such algorithms, a follow set is constructed for each +position in the regular expression (i.e., each leaf +node in the +syntax tree for the regular expression); +if any position has a follow set in which +more than one following position is +labeled with the same element type name, +then the content model is in error +and may be reported as an error. +

      +

      Algorithms exist which allow many but not all non-deterministic +content models to be reduced automatically to equivalent deterministic +models; see Brüggemann-Klein 1991 .

      +
      + +Autodetection of Character Encodings +

      The XML encoding declaration functions as an internal label on each +entity, indicating which character encoding is in use. Before an XML +processor can read the internal label, however, it apparently has to +know what character encoding is in use—which is what the internal label +is trying to indicate. In the general case, this is a hopeless +situation. It is not entirely hopeless in XML, however, because XML +limits the general case in two ways: each implementation is assumed +to support only a finite set of character encodings, and the XML +encoding declaration is restricted in position and content in order to +make it feasible to autodetect the character encoding in use in each +entity in normal cases. Also, in many cases other sources of information +are available in addition to the XML data stream itself. +Two cases may be distinguished, +depending on whether the XML entity is presented to the +processor without, or with, any accompanying +(external) information. We consider the first case first. +

      +

      +Because each XML entity not in UTF-8 or UTF-16 format must +begin with an XML encoding declaration, in which the first characters +must be '<?xml', any conforming processor can detect, +after two to four octets of input, which of the following cases apply. +In reading this list, it may help to know that in UCS-4, '<' is +"#x0000003C" and '?' is "#x0000003F", and the Byte +Order Mark required of UTF-16 data streams is "#xFEFF".

      +

      + + +

      00 00 00 3C: UCS-4, big-endian machine (1234 order)

      + + +

      3C 00 00 00: UCS-4, little-endian machine (4321 order)

      +
      + +

      00 00 3C 00: UCS-4, unusual octet order (2143)

      +
      + +

      00 3C 00 00: UCS-4, unusual octet order (3412)

      +
      + +

      FE FF: UTF-16, big-endian

      +
      + +

      FF FE: UTF-16, little-endian

      +
      + +

      00 3C 00 3F: UTF-16, big-endian, no Byte Order Mark +(and thus, strictly speaking, in error)

      +
      + +

      3C 00 3F 00: UTF-16, little-endian, no Byte Order Mark +(and thus, strictly speaking, in error)

      +
      + +

      3C 3F 78 6D: UTF-8, ISO 646, ASCII, some part of ISO 8859, +Shift-JIS, EUC, or any other 7-bit, 8-bit, or mixed-width encoding +which ensures that the characters of ASCII have their normal positions, +width, +and values; the actual encoding declaration must be read to +detect which of these applies, but since all of these encodings +use the same bit patterns for the ASCII characters, the encoding +declaration itself may be read reliably +

      +
      + +

      4C 6F A7 94: EBCDIC (in some flavor; the full +encoding declaration must be read to tell which code page is in +use)

      +
      + +

      other: UTF-8 without an encoding declaration, or else +the data stream is corrupt, fragmentary, or enclosed in +a wrapper of some kind

      +
      + +

      +

      +This level of autodetection is enough to read the XML encoding +declaration and parse the character-encoding identifier, which is +still necessary to distinguish the individual members of each family +of encodings (e.g. to tell UTF-8 from 8859, and the parts of 8859 +from each other, or to distinguish the specific EBCDIC code page in +use, and so on). +

      +

      +Because the contents of the encoding declaration are restricted to +ASCII characters, a processor can reliably read the entire encoding +declaration as soon as it has detected which family of encodings is in +use. Since in practice, all widely used character encodings fall into +one of the categories above, the XML encoding declaration allows +reasonably reliable in-band labeling of character encodings, even when +external sources of information at the operating-system or +transport-protocol level are unreliable. +

      +

      +Once the processor has detected the character encoding in use, it can +act appropriately, whether by invoking a separate input routine for +each case, or by calling the proper conversion function on each +character of input. +

      +

      +Like any self-labeling system, the XML encoding declaration will not +work if any software changes the entity's character set or encoding +without updating the encoding declaration. Implementors of +character-encoding routines should be careful to ensure the accuracy +of the internal and external information used to label the entity. +

      +

      The second possible case occurs when the XML entity is accompanied +by encoding information, as in some file systems and some network +protocols. +When multiple sources of information are available, + +their relative +priority and the preferred method of handling conflict should be +specified as part of the higher-level protocol used to deliver XML. +Rules for the relative priority of the internal label and the +MIME-type label in an external header, for example, should be part of the +RFC document defining the text/xml and application/xml MIME types. In +the interests of interoperability, however, the following rules +are recommended. + +

      If an XML entity is in a file, the Byte-Order Mark +and encoding-declaration PI are used (if present) to determine the +character encoding. All other heuristics and sources of information +are solely for error recovery. +

      +

      If an XML entity is delivered with a +MIME type of text/xml, then the charset parameter +on the MIME type determines the +character encoding method; all other heuristics and sources of +information are solely for error recovery. +

      +

      If an XML entity is delivered +with a +MIME type of application/xml, then the Byte-Order Mark and +encoding-declaration PI are used (if present) to determine the +character encoding. All other heuristics and sources of +information are solely for error recovery. +

      + +These rules apply only in the absence of protocol-level documentation; +in particular, when the MIME types text/xml and application/xml are +defined, the recommendations of the relevant RFC will supersede +these rules. +

      + +
      + + +W3C XML Working Group + +

      This specification was prepared and approved for publication by the +W3C XML Working Group (WG). WG approval of this specification does +not necessarily imply that all WG members voted for its approval. +The current and former members of the XML WG are:

      + + +Jon Bosak, SunChair +James ClarkTechnical Lead +Tim Bray, Textuality and NetscapeXML Co-editor +Jean Paoli, MicrosoftXML Co-editor +C. M. Sperberg-McQueen, U. of Ill.XML +Co-editor +Dan Connolly, W3CW3C Liaison +Paula Angerstein, Texcel +Steve DeRose, INSO +Dave Hollander, HP +Eliot Kimber, ISOGEN +Eve Maler, ArborText +Tom Magliery, NCSA +Murray Maloney, Muzmo and Grif +Makoto Murata, Fuji Xerox Information Systems +Joel Nava, Adobe +Conleth O'Connell, Vignette +Peter Sharpe, SoftQuad +John Tigue, DataChannel + + +
      +
      + + diff --git a/test/valid/UTF16Entity.xml b/test/valid/UTF16Entity.xml new file mode 100644 index 0000000..8bb29ac --- /dev/null +++ b/test/valid/UTF16Entity.xml @@ -0,0 +1,8 @@ + + + + +]> + + &utf16b; &utf16l; diff --git a/test/valid/dia.xml b/test/valid/dia.xml new file mode 100644 index 0000000..3ab3d06 --- /dev/null +++ b/test/valid/dia.xml @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/valid/dtds/127772.dtd b/test/valid/dtds/127772.dtd new file mode 100644 index 0000000..873fb35 --- /dev/null +++ b/test/valid/dtds/127772.dtd @@ -0,0 +1,7 @@ + + + + + diff --git a/test/valid/dtds/NewsMLv1.0.dtd b/test/valid/dtds/NewsMLv1.0.dtd new file mode 100644 index 0000000..5799b29 --- /dev/null +++ b/test/valid/dtds/NewsMLv1.0.dtd @@ -0,0 +1,1578 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/valid/dtds/destfoo.ent b/test/valid/dtds/destfoo.ent new file mode 100644 index 0000000..0791e1a --- /dev/null +++ b/test/valid/dtds/destfoo.ent @@ -0,0 +1 @@ + diff --git a/test/valid/dtds/external.ent b/test/valid/dtds/external.ent new file mode 100644 index 0000000..8a4495d --- /dev/null +++ b/test/valid/dtds/external.ent @@ -0,0 +1,3 @@ + + +"> diff --git a/test/valid/dtds/external2.ent b/test/valid/dtds/external2.ent new file mode 100644 index 0000000..348e1db --- /dev/null +++ b/test/valid/dtds/external2.ent @@ -0,0 +1 @@ + diff --git a/test/valid/dtds/nitf-2-5.dtd b/test/valid/dtds/nitf-2-5.dtd new file mode 100644 index 0000000..253e620 --- /dev/null +++ b/test/valid/dtds/nitf-2-5.dtd @@ -0,0 +1,1004 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/valid/dtds/notes.dtd b/test/valid/dtds/notes.dtd new file mode 100644 index 0000000..b40a8ac --- /dev/null +++ b/test/valid/dtds/notes.dtd @@ -0,0 +1,19 @@ + + + + + + + + + diff --git a/test/valid/dtds/objednavka.dtd b/test/valid/dtds/objednavka.dtd new file mode 100644 index 0000000..ac63df1 --- /dev/null +++ b/test/valid/dtds/objednavka.dtd @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/valid/dtds/spec.dtd b/test/valid/dtds/spec.dtd new file mode 100755 index 0000000..0fdfb86 --- /dev/null +++ b/test/valid/dtds/spec.dtd @@ -0,0 +1,972 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/valid/dtds/utf16b.ent b/test/valid/dtds/utf16b.ent new file mode 100644 index 0000000..52c7e2d Binary files /dev/null and b/test/valid/dtds/utf16b.ent differ diff --git a/test/valid/dtds/utf16l.ent b/test/valid/dtds/utf16l.ent new file mode 100644 index 0000000..2cad40a Binary files /dev/null and b/test/valid/dtds/utf16l.ent differ diff --git a/test/valid/dtds/xhtml-lat1.ent b/test/valid/dtds/xhtml-lat1.ent new file mode 100644 index 0000000..aaae738 --- /dev/null +++ b/test/valid/dtds/xhtml-lat1.ent @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/valid/dtds/xhtml-special.ent b/test/valid/dtds/xhtml-special.ent new file mode 100644 index 0000000..cf709d1 --- /dev/null +++ b/test/valid/dtds/xhtml-special.ent @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/valid/dtds/xhtml-symbol.ent b/test/valid/dtds/xhtml-symbol.ent new file mode 100644 index 0000000..16f876b --- /dev/null +++ b/test/valid/dtds/xhtml-symbol.ent @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/valid/dtds/xhtml.cat b/test/valid/dtds/xhtml.cat new file mode 100644 index 0000000..0624dea --- /dev/null +++ b/test/valid/dtds/xhtml.cat @@ -0,0 +1,14 @@ +OVERRIDE YES + -- Oasis entity catalog for Extensible HTML 1.0 -- + +PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "xhtml1-strict.dtd" +PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd" +PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "xhtml1-frameset.dtd" + + -- ISO latin 1 entity set for Extensible HTML (XML 1.0 format) -- + +PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN" "xhtml-lat1.ent" +PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN" "xhtml-symbol.ent" +PUBLIC "-//W3C//ENTITIES Special for XHTML//EN" "xhtml-special.ent" + +SGMLDECL "xhtml1.dcl" diff --git a/test/valid/dtds/xhtml1-frameset.dtd b/test/valid/dtds/xhtml1-frameset.dtd new file mode 100644 index 0000000..1dd44e5 --- /dev/null +++ b/test/valid/dtds/xhtml1-frameset.dtd @@ -0,0 +1,1223 @@ + + + + + +%HTMLlat1; + + +%HTMLsymbol; + + +%HTMLspecial; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/valid/dtds/xhtml1-strict.dtd b/test/valid/dtds/xhtml1-strict.dtd new file mode 100644 index 0000000..d7c3da2 --- /dev/null +++ b/test/valid/dtds/xhtml1-strict.dtd @@ -0,0 +1,986 @@ + + + + + +%HTMLlat1; + + +%HTMLsymbol; + + +%HTMLspecial; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/valid/dtds/xhtml1-transitional.dtd b/test/valid/dtds/xhtml1-transitional.dtd new file mode 100644 index 0000000..def8d66 --- /dev/null +++ b/test/valid/dtds/xhtml1-transitional.dtd @@ -0,0 +1,1194 @@ + + + + + +%HTMLlat1; + + +%HTMLsymbol; + + +%HTMLspecial; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/valid/dtds/xhtml1.dcl b/test/valid/dtds/xhtml1.dcl new file mode 100644 index 0000000..fed2103 --- /dev/null +++ b/test/valid/dtds/xhtml1.dcl @@ -0,0 +1,179 @@ +" + PIC "?>" + SHORTREF NONE + + NAMES + SGMLREF + + QUANTITY NONE + + ENTITIES + "amp" 38 + "lt" 60 + "gt" 62 + "quot" 34 + "apos" 39 + + FEATURES + MINIMIZE + DATATAG NO + OMITTAG NO + RANK NO + SHORTTAG + STARTTAG + EMPTY NO + UNCLOSED NO + NETENABL IMMEDNET + ENDTAG + EMPTY NO + UNCLOSED NO + ATTRIB + DEFAULT YES + OMITNAME NO + VALUE NO + EMPTYNRM YES + IMPLYDEF + ATTLIST NO + DOCTYPE NO + ELEMENT NO + ENTITY NO + NOTATION NO + LINK + SIMPLE NO + IMPLICIT NO + EXPLICIT NO + OTHER + CONCUR NO + SUBDOC NO + FORMAL NO + URN NO + KEEPRSRE YES + VALIDITY TYPE + ENTITIES + REF ANY + INTEGRAL YES + APPINFO NONE + SEEALSO "ISO 8879:1986//NOTATION + Extensible Markup Language (XML) 1.0//EN" +> diff --git a/test/valid/dtds/xmlspec.dtd b/test/valid/dtds/xmlspec.dtd new file mode 100644 index 0000000..55cfba6 --- /dev/null +++ b/test/valid/dtds/xmlspec.dtd @@ -0,0 +1,1102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/valid/id1.xml b/test/valid/id1.xml new file mode 100644 index 0000000..7390f5e --- /dev/null +++ b/test/valid/id1.xml @@ -0,0 +1,13 @@ + + + + + +]> + + + + + + diff --git a/test/valid/id2.xml b/test/valid/id2.xml new file mode 100644 index 0000000..5b4a77a --- /dev/null +++ b/test/valid/id2.xml @@ -0,0 +1,14 @@ + + + + + +"> +]> + + + &dest; + + + diff --git a/test/valid/id3.xml b/test/valid/id3.xml new file mode 100644 index 0000000..933d06d --- /dev/null +++ b/test/valid/id3.xml @@ -0,0 +1,14 @@ + + + + + + +]> + + + &dest; + + + diff --git a/test/valid/index.xml b/test/valid/index.xml new file mode 100644 index 0000000..2a0e671 --- /dev/null +++ b/test/valid/index.xml @@ -0,0 +1,111 @@ + + + %nitf; +]> + + + + 20011022T154508Z + + + + + afp.com + 20011022 + mmd--deutsch--journal--spo + 1 + urn:NewsML:afp.com:20011022:mmd--deutsch--journal--spo:1 + + HINTERGRUND + + + + 20011022T154508Z + 20011022T154508Z + + + + + + + + + + + + + + Berliner SPD führt Gespräche mit FDP und Grünen + + + + + + INFOGRAFIK: Das Berliner Wahlergebnis + + + + + + Schwierige Koalitionsverhandlungen in Berlin + + + + + + Die Lieblingsfarben des Kanzlers sind Rot Gelb Grün + + + + + + INFOGRAFIK: Wen wählt Wowereit? + + + + + + CDU ist auch in kommunalen Rathäusern der Verlierer + + + + + + Gutes Abschneiden der PDS hat verschiedene Gründe + + + + + + Ans Regieren hat sich Klaus Wowereit gewöhnt + + + + + + Steffel brachte CDU nicht auf Erfolgskurs + + + + + + Sibyll Klotz: Vollblutpolitikerin mit "Berliner Schnauze" + + + + + + Mit Gysi muss weiter gerechnet werden + + + + + + Rexrodt - das Stehaufmännchen der Berliner FDP + + + + + + diff --git a/test/valid/mixed_ns.xml b/test/valid/mixed_ns.xml new file mode 100644 index 0000000..22d8ed8 --- /dev/null +++ b/test/valid/mixed_ns.xml @@ -0,0 +1,16 @@ + + + + + + + +]> + + Some text. + + Some text. + + Some text. + diff --git a/test/valid/notes.xml b/test/valid/notes.xml new file mode 100644 index 0000000..157d178 --- /dev/null +++ b/test/valid/notes.xml @@ -0,0 +1,5 @@ + + + diff --git a/test/valid/ns.xml b/test/valid/ns.xml new file mode 100644 index 0000000..117c30f --- /dev/null +++ b/test/valid/ns.xml @@ -0,0 +1,9 @@ + + + + +]> + + diff --git a/test/valid/ns2.xml b/test/valid/ns2.xml new file mode 100644 index 0000000..bfab69a --- /dev/null +++ b/test/valid/ns2.xml @@ -0,0 +1,14 @@ + + + + + + + +]> + + + + diff --git a/test/valid/objednavka.xml b/test/valid/objednavka.xml new file mode 100644 index 0000000..c785b1a --- /dev/null +++ b/test/valid/objednavka.xml @@ -0,0 +1,39 @@ + + + + + Jan Novák + BÄ›lehradská 147 + Praha 2 + 12000 + + + Petra Nováková + Anglická 15 + Praha 2 + 12000 + + DPD + dobírka + 2004-11-14 + 2004-11-19 + + + 2N7-516 + SekaÄka na trávu + 1 + 2999 + http://example.org/sekacka.html + + + Q3Y-116 + Travní semeno + 2.5 + 127.50 + + + + <Řádka>O dodávku mám zájem pouze v případÄ›, že se jedná o trávu v odrůdÄ› konopí. + <Řádka>Dále jsem se chtÄ›l zeptat, zda je doprava zdarma. + + diff --git a/test/valid/rss.xml b/test/valid/rss.xml new file mode 100644 index 0000000..5d6102d --- /dev/null +++ b/test/valid/rss.xml @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]> + + + +PP + + diff --git a/test/valid/t10.xml b/test/valid/t10.xml new file mode 100644 index 0000000..de066f9 --- /dev/null +++ b/test/valid/t10.xml @@ -0,0 +1,12 @@ + + + + +]> + + + + + + diff --git a/test/valid/t11.xml b/test/valid/t11.xml new file mode 100644 index 0000000..cc3fb31 --- /dev/null +++ b/test/valid/t11.xml @@ -0,0 +1,2 @@ + +&peInCdata; diff --git a/test/valid/t4.dtd b/test/valid/t4.dtd new file mode 100644 index 0000000..27292bc --- /dev/null +++ b/test/valid/t4.dtd @@ -0,0 +1,4 @@ + + + + diff --git a/test/valid/t4.xml b/test/valid/t4.xml new file mode 100644 index 0000000..baeb9d0 --- /dev/null +++ b/test/valid/t4.xml @@ -0,0 +1,3 @@ + + +&abc; diff --git a/test/valid/t4a.dtd b/test/valid/t4a.dtd new file mode 100644 index 0000000..b7cdc7c --- /dev/null +++ b/test/valid/t4a.dtd @@ -0,0 +1,5 @@ + + + + + diff --git a/test/valid/t4a.xml b/test/valid/t4a.xml new file mode 100644 index 0000000..27fa603 --- /dev/null +++ b/test/valid/t4a.xml @@ -0,0 +1,3 @@ + + +&abc; diff --git a/test/valid/t6.dtd b/test/valid/t6.dtd new file mode 100644 index 0000000..7497c28 --- /dev/null +++ b/test/valid/t6.dtd @@ -0,0 +1,5 @@ + + + + + diff --git a/test/valid/t6.xml b/test/valid/t6.xml new file mode 100644 index 0000000..b9f62ca --- /dev/null +++ b/test/valid/t6.xml @@ -0,0 +1,3 @@ + + +&abc; diff --git a/test/valid/t8.xml b/test/valid/t8.xml new file mode 100644 index 0000000..c7c2b0a --- /dev/null +++ b/test/valid/t8.xml @@ -0,0 +1,8 @@ + +' > +' > +' > +%defroot; %defmiddle; %deftest; +]> +sample diff --git a/test/valid/t8a.xml b/test/valid/t8a.xml new file mode 100644 index 0000000..13470eb --- /dev/null +++ b/test/valid/t8a.xml @@ -0,0 +1,8 @@ + +' > +' > +' > +%defroot;%defmiddle;%deftest; +]> +sample diff --git a/test/valid/t9.xml b/test/valid/t9.xml new file mode 100644 index 0000000..645d35a --- /dev/null +++ b/test/valid/t9.xml @@ -0,0 +1,8 @@ + +' > +' > +' > +%defroot; %defmiddle; %deftest; +]> +sample diff --git a/test/valid/t9a.xml b/test/valid/t9a.xml new file mode 100644 index 0000000..23d3c06 --- /dev/null +++ b/test/valid/t9a.xml @@ -0,0 +1,8 @@ + +' > +' > +' > +%defroot;%defmiddle;%deftest; +]> +sample diff --git a/test/valid/xhtml1.xhtml b/test/valid/xhtml1.xhtml new file mode 100644 index 0000000..24d68f4 --- /dev/null +++ b/test/valid/xhtml1.xhtml @@ -0,0 +1,1505 @@ + + + + +XHTML 1.0: The Extensible HyperText Markup +Language + + + + + +

      W3C

      + +

      XHTML 1.0: +The Extensible HyperText Markup Language

      + +

      A Reformulation of HTML 4.0 in XML 1.0

      + +

      W3C Proposed Recommendation 10 December 1999

      + +
      +
      This version:
      + +
      +http://www.w3.org/TR/1999/PR-xhtml1-19991210
      +(Postscript version, +PDF version, +ZIP archive, or +Gzip'd TAR archive) +
      + +
      Latest version:
      + +
      +http://www.w3.org/TR/xhtml1
      + +
      Previous versions:
      + +
      +http://www.w3.org/TR/1999/WD-xhtml1-19991124
      +
      +http://www.w3.org/TR/1999/PR-xhtml1-19990824
      + +
      Authors:
      + +
      See acknowledgements.
      +
      + + +
      +
      + +

      Abstract

      + +

      This specification defines XHTML 1.0, a reformulation of HTML +4.0 as an XML 1.0 application, and three DTDs corresponding to +the ones defined by HTML 4.0. The semantics of the elements and +their attributes are defined in the W3C Recommendation for HTML +4.0. These semantics provide the foundation for future +extensibility of XHTML. Compatibility with existing HTML user +agents is possible by following a small set of guidelines.

      + +

      Status of this document

      + +

      This section describes the status of this document at the time +of its publication. Other documents may supersede this document. The +latest status of this document series is maintained at the W3C.

      + +

      This specification is a Proposed Recommendation of the HTML Working Group. It is +a revision of the Proposed Recommendation dated 24 August +1999 incorporating changes as a result of comments from the Proposed +Recommendation review, and +comments and further deliberations of the W3C HTML Working Group. A +diff-marked version from the previous +proposed recommendation is available for comparison purposes.

      + +

      On 10 December 1999, this document enters a + +Proposed Recommendation review period. From that date until 8 January +2000, +W3C Advisory Committee representatives are encouraged +to review this specification and return comments in their completed +ballots to w3c-html-review@w3.org. Please send any comments of a +confidential nature in separate email to w3t-html@w3.org, which is +visible to the Team only.

      + +

      No sooner than 14 days after the end of the review period, the +Director will announce the document's disposition: it may become a W3C +Recommendation (possibly with minor changes), it may revert to Working +Draft status, or it may be dropped as a W3C work item.

      + +

      Publication as a Proposed Recommendation does not imply endorsement +by the W3C membership. This is still a draft document and may be +updated, replaced or obsoleted by other documents at any time. It is +inappropriate to cite W3C Proposed Recommendation as other than "work +in progress."

      + +

      This document has been produced as part of the W3C HTML Activity. The goals of +the HTML Working +Group (members +only) are discussed in the HTML Working Group +charter (members +only).

      + +

      A list of current W3C Recommendations and other technical documents +can be found at http://www.w3.org/TR.

      + +

      Public discussion on HTML features takes place on the mailing list www-html@w3.org (archive). The W3C +staff contact for work on HTML is Dave +Raggett.

      + +

      Please report errors in this document to www-html-editor@w3.org.

      + +

      The list of known errors in this specification is available at http://www.w3.org/1999/12/PR-xhtml1-19991210-errata.

      + +

      Contents

      + + + + +

      1. What is XHTML?

      + +

      XHTML is a family of current and future document types and modules that +reproduce, subset, and extend HTML 4.0 [HTML]. XHTML family document types are XML based, +and ultimately are designed to work in conjunction with XML-based user agents. +The details of this family and its evolution are +discussed in more detail in the section on Future +Directions.

      + +

      XHTML 1.0 (this specification) is the first document type in the XHTML +family. It is a reformulation of the three HTML 4.0 document types as +applications of XML 1.0 [XML]. It is intended +to be used as a language for content that is both XML-conforming and, if some +simple guidelines are followed, +operates in HTML 4.0 conforming user agents. Developers who migrate +their content to XHTML 1.0 will realize the following benefits:

      + +
        +
      • XHTML documents are XML conforming. As such, they are readily viewed, +edited, and validated with standard XML tools.
      • +
      • XHTML documents can be written to +to operate as well or better than they did before in existing +HTML 4.0-conforming user agents as well as in new, XHTML 1.0 conforming user +agents.
      • +
      • XHTML documents can utilize applications (e.g. scripts and applets) that rely +upon either the HTML Document Object Model or the XML Document Object Model [DOM].
      • +
      • As the XHTML family evolves, documents conforming to XHTML 1.0 will be more +likely to interoperate within and among various XHTML environments.
      • +
      + +

      The XHTML family is the next step in the evolution of the Internet. By +migrating to XHTML today, content developers can enter the XML world with all +of its attendant benefits, while still remaining confident in their +content's backward and future compatibility.

      + +

      1.1 What is HTML 4.0?

      + +

      HTML 4.0 [HTML] is an SGML (Standard +Generalized Markup Language) application conforming to +International Standard ISO 8879, and is widely regarded as the +standard publishing language of the World Wide Web.

      + +

      SGML is a language for describing markup languages, +particularly those used in electronic document exchange, document +management, and document publishing. HTML is an example of a +language defined in SGML.

      + +

      SGML has been around since the middle 1980's and has remained +quite stable. Much of this stability stems from the fact that the +language is both feature-rich and flexible. This flexibility, +however, comes at a price, and that price is a level of +complexity that has inhibited its adoption in a diversity of +environments, including the World Wide Web.

      + +

      HTML, as originally conceived, was to be a language for the +exchange of scientific and other technical documents, suitable +for use by non-document specialists. HTML addressed the problem +of SGML complexity by specifying a small set of structural and +semantic tags suitable for authoring relatively simple documents. +In addition to simplifying the document structure, HTML added +support for hypertext. Multimedia capabilities were added +later.

      + +

      In a remarkably short space of time, HTML became wildly +popular and rapidly outgrew its original purpose. Since HTML's +inception, there has been rapid invention of new elements for use +within HTML (as a standard) and for adapting HTML to vertical, +highly specialized, markets. This plethora of new elements has +led to compatibility problems for documents across different +platforms.

      + +

      As the heterogeneity of both software and platforms rapidly +proliferate, it is clear that the suitability of 'classic' HTML +4.0 for use on these platforms is somewhat limited.

      + +

      1.2 What is XML?

      + +

      XML is the shorthand for Extensible Markup +Language, and is an acronym of Extensible Markup Language [XML].

      + +

      XML was conceived as a means of regaining the power and +flexibility of SGML without most of its complexity. Although a +restricted form of SGML, XML nonetheless preserves most of SGML's +power and richness, and yet still retains all of SGML's commonly +used features.

      + +

      While retaining these beneficial features, XML removes many of +the more complex features of SGML that make the authoring and +design of suitable software both difficult and costly.

      + +

      1.3 Why the need for XHTML?

      + +

      The benefits of migrating to XHTML 1.0 are described above. Some of the +benefits of migrating to XHTML in general are:

      + +
        +
      • Document developers and user agent designers are constantly +discovering new ways to express their ideas through new markup. In XML, it is +relatively easy to introduce new elements or additional element +attributes. The XHTML family is designed to accommodate these extensions +through XHTML modules and techniques for developing new XHTML-conforming +modules (described in the forthcoming XHTML Modularization specification). +These modules will permit the combination of existing and +new feature sets when developing content and when designing new user +agents.
      • + +
      • Alternate ways of accessing the Internet are constantly being +introduced. Some estimates indicate that by the year 2002, 75% of +Internet document viewing will be carried out on these alternate +platforms. The XHTML family is designed with general user agent +interoperability in mind. Through a new user agent and document profiling +mechanism, servers, proxies, and user agents will be able to perform +best effort content transformation. Ultimately, it will be possible to +develop XHTML-conforming content that is usable by any XHTML-conforming +user agent.
      • + +
      + +

      2. Definitions

      + +

      2.1 Terminology

      + +

      The following terms are used in this specification. These +terms extend the definitions in +[RFC2119] in ways based upon similar definitions in ISO/IEC +9945-1:1990 [POSIX.1]:

      + +
      +
      Implementation-defined
      + +
      A value or behavior is implementation-defined when it is left +to the implementation to define [and document] the corresponding +requirements for correct document construction.
      + +
      May
      + +
      With respect to implementations, the word "may" is to be +interpreted as an optional feature that is not required in this +specification but can be provided. With respect to Document Conformance, the word "may" means that +the optional feature must not be used. The term "optional" has +the same definition as "may".
      + +
      Must
      + +
      In this specification, the word "must" is to be interpreted +as a mandatory requirement on the implementation or on Strictly +Conforming XHTML Documents, depending upon the context. The term +"shall" has the same definition as "must".
      + +
      Reserved
      + +
      A value or behavior is unspecified, but it is not allowed to +be used by Conforming Documents nor to be supported by a +Conforming User Agents.
      + +
      Should
      + +
      With respect to implementations, the word "should" is to be +interpreted as an implementation recommendation, but not a +requirement. With respect to documents, the word "should" is to +be interpreted as recommended programming practice for documents +and a requirement for Strictly Conforming XHTML Documents.
      + +
      Supported
      + +
      Certain facilities in this specification are optional. If a +facility is supported, it behaves as specified by this +specification.
      + +
      Unspecified
      + +
      When a value or behavior is unspecified, the specification +defines no portability requirements for a facility on an +implementation even when faced with a document that uses the +facility. A document that requires specific behavior in such an +instance, rather than tolerating any behavior when using that +facility, is not a Strictly Conforming XHTML Document.
      +
      + +

      2.2 General Terms

      + +
      +
      Attribute
      + +
      An attribute is a parameter to an element declared in the +DTD. An attribute's type and value range, including a possible +default value, are defined in the DTD.
      + +
      DTD
      + +
      A DTD, or document type definition, is a collection of XML +declarations that, as a collection, defines the legal structure, +elements, and +attributes that are available for use in a document that +complies to the DTD.
      + +
      Document
      + +
      A document is a stream of data that, after being combined +with any other streams it references, is structured such that it +holds information contained within +elements that are organized as defined in the associated +DTD. See Document +Conformance for more information.
      + +
      Element
      + +
      An element is a document structuring unit declared in the +DTD. The element's content model is +defined in the DTD, and additional +semantics may be defined in the prose description of the +element.
      + +
      Facilities
      + +
      Functionality includes elements, +attributes, and the semantics +associated with those elements and +attributes. An implementation +supporting that functionality is said to provide the necessary +facilities.
      + +
      Implementation
      + +
      An implementation is a system that provides collection of +facilities and services that supports +this specification. See User Agent +Conformance for more information.
      + +
      Parsing
      + +
      Parsing is the act whereby a +document is scanned, and the information contained within +the document is filtered into the +context of the elements in which the +information is structured.
      + +
      Rendering
      + +
      Rendering is the act whereby the information in a document is presented. This presentation is +done in the form most appropriate to the environment (e.g. +aurally, visually, in print).
      + +
      User Agent
      + +
      A user agent is an implementation +that retrieves and processes XHTML documents. See User Agent Conformance for more information.
      + +
      Validation
      + +
      Validation is a process whereby +documents are verified against the associated DTD, ensuring that the structure, use of elements, and use of +attributes are consistent with the definitions in the +DTD.
      + +
      Well-formed
      + +
      A document is well-formed when it +is structured according to the rules defined in Section 2.1 of +the XML 1.0 Recommendation [XML]. +Basically, this definition states that elements, delimited by +their start and end tags, are nested properly within one +another.
      +
      + + +

      3. Normative Definition of +XHTML 1.0

      + +

      3.1 Document +Conformance

      + +

      This version of XHTML provides a definition of strictly +conforming XHTML documents, which are restricted to tags and +attributes from the XHTML namespace. See Section 3.1.2 for information on using XHTML +with other namespaces, for instance, to include metadata +expressed in RDF within XHTML documents.

      + +

      3.1.1 Strictly Conforming +Documents

      + +

      A Strictly Conforming XHTML Document is a document that +requires only the facilities described as mandatory in this +specification. Such a document must meet all of the following +criteria:

      + +
        +
      1. +

        It must validate against one of the three DTDs found in Appendix A.

        +
      2. + +
      3. +

        The root element of the document must be +<html>.

        +
      4. + +
      5. +

        The root element of the document must designate the XHTML +namespace using the xmlns attribute [XMLNAMES]. The namespace for XHTML is +defined to be +http://www.w3.org/1999/xhtml.

        +
      6. + +
      7. +

        There must be a DOCTYPE declaration in the document prior to +the root element. The public identifier included in +the DOCTYPE declaration must reference one of the three DTDs +found in Appendix A using the respective +Formal Public Identifier. The system identifier may be changed to reflect +local system conventions.

        + +
        +<!DOCTYPE html 
        +     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        +     "http://www.w3.org/TR/1999/PR-xhtml1-19991210/DTD/xhtml1-strict.dtd>
        +
        +<!DOCTYPE html 
        +     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        +     "http://www.w3.org/TR/1999/PR-xhtml1-19991210/DTD/xhtml1-transitional.dtd>
        +
        +<!DOCTYPE html 
        +     PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
        +     "http://www.w3.org/TR/1999/PR-xhtml1-19991210/DTD/xhtml1-frameset.dtd>
        +
        +
      8. +
      + +

      Here is an example of a minimal XHTML document.

      + +
      +
      +<?xml version="1.0" encoding="UTF-8"?>
      +<!DOCTYPE html 
      +     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      +    "http://www.w3.org/TR/1999/PR-xhtml1-19991210/DTD/xhtml1-strict.dtd">
      +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
      +  <head>
      +    <title>Virtual Library</title>
      +  </head>
      +  <body>
      +    <p>Moved to <a href="http://vlib.org/">vlib.org</a>.</p>
      +  </body>
      +</html>
      +
      + +

      Note that in this example, the XML declaration is included. An XML +declaration like the one above is +not required in all XML documents. XHTML document authors are strongly encouraged to use XML declarations in all their documents. Such a declaration is required +when the character encoding of the document is other than the default UTF-8 or +UTF-16.

      + +

      3.1.2 Using XHTML with +other namespaces

      + +

      The XHTML namespace may be used with other XML namespaces +as per [XMLNAMES], although such +documents are not strictly conforming XHTML 1.0 documents as +defined above. Future work by W3C will address ways to specify +conformance for documents involving multiple namespaces.

      + +

      The following example shows the way in which XHTML 1.0 could +be used in conjunction with the MathML Recommendation:

      + +
      +
      +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
      +  <head>
      +    <title>A Math Example</title>
      +  </head>
      +  <body>
      +    <p>The following is MathML markup:</p>
      +    <math xmlns="http://www.w3.org/1998/Math/MathML">
      +      <apply> <log/>
      +        <logbase>
      +          <cn> 3 </cn>
      +        </logbase>
      +        <ci> x </ci>
      +      </apply>
      +    </math>
      +  </body>
      +</html>
      +
      +
      + +

      The following example shows the way in which XHTML 1.0 markup +could be incorporated into another XML namespace:

      + +
      +
      +<?xml version="1.0" encoding="UTF-8"?>
      +<!-- initially, the default namespace is "books" -->
      +<book xmlns='urn:loc.gov:books'
      +    xmlns:isbn='urn:ISBN:0-395-36341-6' xml:lang="en" lang="en">
      +  <title>Cheaper by the Dozen</title>
      +  <isbn:number>1568491379</isbn:number>
      +  <notes>
      +    <!-- make HTML the default namespace for a hypertext commentary -->
      +    <p xmlns='http://www.w3.org/1999/xhtml'>
      +        This is also available <a href="http://www.w3.org/">online</a>.
      +    </p>
      +  </notes>
      +</book>
      +
      +
      + +

      3.2 User Agent +Conformance

      + +

      A conforming user agent must meet all of the following +criteria:

      + +
        +
      1. In order to be consistent with the XML 1.0 Recommendation [XML], the user agent must parse and evaluate +an XHTML document for well-formedness. If the user agent claims +to be a validating user agent, it must also validate documents +against their referenced DTDs according to +[XML].
      2. + +
      3. When the user agent claims to support +facilities defined within this specification or required by +this specification through normative reference, it must do so in +ways consistent with the facilities' definition.
      4. + +
      5. When a user agent processes an XHTML document as generic XML, +it shall only recognize attributes of type +ID (e.g. the id attribute on most XHTML elements) +as fragment identifiers.
      6. + +
      7. If a user agent encounters an element it does not recognize, +it must render the element's content.
      8. + +
      9. If a user agent encounters an attribute it does not +recognize, it must ignore the entire attribute specification +(i.e., the attribute and its value).
      10. + +
      11. If a user agent encounters an attribute value it doesn't +recognize, it must use the default attribute value.
      12. + +
      13. If it encounters an entity reference (other than one +of the predefined entities) for which the User Agent has +processed no declaration (which could happen if the declaration +is in the external subset which the User Agent hasn't read), the entity +reference should be rendered as the characters (starting +with the ampersand and ending with the semi-colon) that +make up the entity reference.
      14. + +
      15. When rendering content, User Agents that encounter +characters or character entity references that are recognized but not renderable should display the document in such a way that it is obvious to the user that normal rendering has not taken place.
      16. + +
      17. +The following characters are defined in [XML] as whitespace characters: + +
          +
        • Space (&#x0020;)
        • +
        • Tab (&#x0009;)
        • +
        • Carriage return (&#x000D;)
        • +
        • Line feed (&#x000A;)
        • +
        + +

        +The XML processor normalizes different system's line end codes into one +single line-feed character, that is passed up to the application. The XHTML +user agent in addition, must treat the following characters as whitespace: +

        + +
          +
        • Form feed (&#x000C;)
        • +
        • Zero-width space (&#x200B;)
        • +
        + +

        +In elements where the 'xml:space' attribute is set to 'preserve', the user +agent must leave all whitespace characters intact (with the exception of +leading and trailing whitespace characters, which should be removed). +Otherwise, whitespace +is handled according to the following rules: +

        + +
          +
        • +All whitespace surrounding block elements should be removed. +
        • +
        • +Comments are removed entirely and do not affect whitespace handling. One +whitespace character on either side of a comment is treated as two white +space characters. +
        • +
        • +Leading and trailing whitespace inside a block element must be removed. +
        • +
        • Line feed characters within a block element must be converted into a +space (except when the 'xml:space' attribute is set to 'preserve'). +
        • +
        • +A sequence of white space characters must be reduced to a single space +character (except when the 'xml:space' attribute is set to 'preserve'). +
        • +
        • +With regard to rendition, +the User Agent should render the content in a +manner appropriate to the language in which the content is written. +In languages whose primary script is Latinate, the ASCII space +character is typically used to encode both grammatical word boundaries and +typographic whitespace; in languages whose script is related to Nagari +(e.g., Sanskrit, Thai, etc.), grammatical boundaries may be encoded using +the ZW 'space' character, but will not typically be represented by +typographic whitespace in rendered output; languages using Arabiform scripts +may encode typographic whitespace using a space character, but may also use +the ZW space character to delimit 'internal' grammatical boundaries (what +look like words in Arabic to an English eye frequently encode several words, +e.g. 'kitAbuhum' = 'kitAbu-hum' = 'book them' == their book); and languages +in the Chinese script tradition typically neither encode such delimiters nor +use typographic whitespace in this way. +
        • +
        + +

        Whitespace in attribute values is processed according to [XML].

        +
      18. +
      + + +

      4. Differences with HTML +4.0

      + +

      Due to the fact that XHTML is an XML application, certain +practices that were perfectly legal in SGML-based HTML 4.0 [HTML] must be changed.

      + +

      4.1 Documents must be +well-formed

      + +

      Well-formedness is a new concept +introduced by [XML]. Essentially this +means that all elements must either have closing tags or be +written in a special form (as described below), and that all the +elements must nest.

      + +

      Although overlapping is illegal in SGML, it was widely +tolerated in existing browsers.

      + +
      +

      CORRECT: nested elements.

      + +

      <p>here is an emphasized +<em>paragraph</em>.</p>

      +
      + +
      +

      INCORRECT: overlapping elements

      + +

      <p>here is an emphasized +<em>paragraph.</p></em>

      +
      + +

      4.2 Element and attribute +names must be in lower case

      + +

      XHTML documents must use lower case for all HTML element and +attribute names. This difference is necessary because XML is +case-sensitive e.g. <li> and <LI> are different +tags.

      + +

      4.3 For non-empty elements, +end tags are required

      + +

      In SGML-based HTML 4.0 certain elements were permitted to omit +the end tag; with the elements that followed implying closure. +This omission is not permitted in XML-based XHTML. All elements +other than those declared in the DTD as EMPTY must +have an end tag.

      + +
      +

      CORRECT: terminated elements

      + +

      <p>here is a paragraph.</p><p>here is +another paragraph.</p>

      +
      + +
      +

      INCORRECT: unterminated elements

      + +

      <p>here is a paragraph.<p>here is another +paragraph.

      +
      + +

      4.4 Attribute values must +always be quoted

      + +

      All attribute values must be quoted, even those which appear +to be numeric.

      + +
      +

      CORRECT: quoted attribute values

      + +

      <table rows="3">

      +
      + +
      +

      INCORRECT: unquoted attribute values

      + +

      <table rows=3>

      +
      + +

      4.5 Attribute +Minimization

      + +

      XML does not support attribute minimization. Attribute-value +pairs must be written in full. Attribute names such as +compact and checked cannot occur in elements +without their value being specified.

      + +
      +

      CORRECT: unminimized attributes

      + +

      <dl compact="compact">

      +
      + +
      +

      INCORRECT: minimized attributes

      + +

      <dl compact>

      +
      + +

      4.6 Empty Elements

      + +

      Empty elements must either have an end tag or the start tag must end with />. For instance, +<br/> or <hr></hr>. See HTML Compatibility Guidelines for information on ways to +ensure this is backward compatible with HTML 4.0 user agents.

      + +
      +

      CORRECT: terminated empty tags

      + +

      <br/><hr/>

      +
      + +
      +

      INCORRECT: unterminated empty tags

      + +

      <br><hr>

      +
      + +

      4.7 Whitespace handling in +attribute values

      + +

      In attribute values, user agents will strip leading and +trailing whitespace from attribute values and map sequences +of one or more whitespace characters (including line breaks) to +a single inter-word space (an ASCII space character for western +scripts). See +Section 3.3.3 of [XML].

      + +

      4.8 Script and Style +elements

      + +

      In XHTML, the script and style elements are declared as having +#PCDATA content. As a result, < and +& will be treated as the start of markup, and +entities such as &lt; and &amp; +will be recognized as entity references by the XML processor to +< and & respectively. Wrapping +the content of the script or style element within a +CDATA marked section avoids the expansion of these +entities.

      + +
      +
      +<script>
      + <![CDATA[
      + ... unescaped script content ...
      + ]]>
      + </script>
      +
      +
      + +

      CDATA sections are recognized by the XML +processor and appear as nodes in the Document Object Model, see + +Section 1.3 of the DOM Level 1 Recommendation [DOM].

      + +

      An alternative is to use external script and style +documents.

      + +

      4.9 SGML exclusions

      + +

      SGML gives the writer of a DTD the ability to exclude specific +elements from being contained within an element. Such +prohibitions (called "exclusions") are not possible in XML.

      + +

      For example, the HTML 4.0 Strict DTD forbids the nesting of an +'a' element within another 'a' element +to any descendant depth. It is not possible to spell out such +prohibitions in XML. Even though these prohibitions cannot be +defined in the DTD, certain elements should not be nested. A +summary of such elements and the elements that should not be +nested in them is found in the normative +Appendix B.

      + +

      4.10 The elements with 'id' and 'name' +attributes

      + +

      HTML 4.0 defined the name attribute for the elements +a, +applet, frame, +iframe, img, and map. +HTML 4.0 also introduced +the id attribute. Both of these attributes are designed to be +used as fragment identifiers.

      +

      In XML, fragment identifiers are of type ID, and +there can only be a single attribute of type ID per element. +Therefore, in XHTML 1.0 the id +attribute is defined to be of type ID. In order to +ensure that XHTML 1.0 documents are well-structured XML documents, XHTML 1.0 +documents MUST use the id attribute when defining fragment +identifiers, even on elements that historically have also had a +name attribute. +See the HTML Compatibility +Guidelines for information on ensuring such anchors are backwards +compatible when serving XHTML documents as media type text/html. +

      +

      Note that in XHTML 1.0, the name attribute of these +elements is formally deprecated, and will be removed in a +subsequent version of XHTML.

      + + +

      5. Compatibility Issues

      + +

      Although there is no requirement for XHTML 1.0 documents to be +compatible with existing user agents, in practice this is easy to +accomplish. Guidelines for creating compatible documents can be +found in Appendix C.

      + +

      5.1 Internet Media Type

      +

      As of the publication of this recommendation, the general +recommended MIME labeling for XML-based applications +has yet to be resolved.

      + +

      However, XHTML Documents which follow the guidelines set forth +in Appendix C, "HTML Compatibility Guidelines" may be +labeled with the Internet Media Type "text/html", as they +are compatible with most HTML browsers. This document +makes no recommendation about MIME labeling of other +XHTML documents.

      + + +

      6. Future Directions

      + +

      XHTML 1.0 provides the basis for a family of document types +that will extend and subset XHTML, in order to support a wide +range of new devices and applications, by defining modules and +specifying a mechanism for combining these modules. This +mechanism will enable the extension and sub-setting of XHTML 1.0 +in a uniform way through the definition of new modules.

      + +

      6.1 Modularizing HTML

      + +

      As the use of XHTML moves from the traditional desktop user +agents to other platforms, it is clear that not all of the XHTML +elements will be required on all platforms. For example a hand +held device or a cell-phone may only support a subset of XHTML +elements.

      + +

      The process of modularization breaks XHTML up into a series of +smaller element sets. These elements can then be recombined to +meet the needs of different communities.

      + +

      These modules will be defined in a later W3C document.

      + +

      6.2 Subsets and +Extensibility

      + +

      Modularization brings with it several advantages:

      + +
        +
      • +

        It provides a formal mechanism for sub-setting XHTML.

        +
      • + +
      • +

        It provides a formal mechanism for extending XHTML.

        +
      • + +
      • +

        It simplifies the transformation between document types.

        +
      • + +
      • +

        It promotes the reuse of modules in new document types.

        +
      • +
      + +

      6.3 Document +Profiles

      + +

      A document profile specifies the syntax and semantics of a set +of documents. Conformance to a document profile provides a basis +for interoperability guarantees. The document profile specifies +the facilities required to process documents of that type, e.g. +which image formats can be used, levels of scripting, style sheet +support, and so on.

      + +

      For product designers this enables various groups to define +their own standard profile.

      + +

      For authors this will obviate the need to write several +different versions of documents for different clients.

      + +

      For special groups such as chemists, medical doctors, or +mathematicians this allows a special profile to be built using +standard HTML elements plus a group of elements geared to the +specialist's needs.

      + + +

      +Appendix A. DTDs

      + +

      This appendix is normative.

      + +

      These DTDs and entity sets form a normative part of this +specification. The complete set of DTD files together with an XML +declaration and SGML Open Catalog is included in the zip file for this specification.

      + +

      A.1 Document Type +Definitions

      + +

      These DTDs approximate the HTML 4.0 DTDs. It is likely that +when the DTDs are modularized, a method of DTD construction will +be employed that corresponds more closely to HTML 4.0.

      + + + +

      A.2 Entity Sets

      + +

      The XHTML entity sets are the same as for HTML 4.0, but have +been modified to be valid XML 1.0 entity declarations. Note the +entity for the Euro currency sign (&euro; or +&#8364; or &#x20AC;) is defined +as part of the special characters.

      + + + + +

      Appendix B. Element +Prohibitions

      + +

      This appendix is normative.

      + +

      The following elements have prohibitions on which elements +they can contain (see Section 4.9). This +prohibition applies to all depths of nesting, i.e. it contains +all the descendant elements.

      + +
      a
      +
      +cannot contain other a elements.
      +
      pre
      +
      cannot contain the img, object, +big, small, sub, or +sup elements.
      + +
      button
      +
      cannot contain the input, select, +textarea, label, button, +form, fieldset, iframe or +isindex elements.
      +
      label
      +
      cannot contain other label elements.
      +
      form
      +
      cannot contain other form elements.
      +
      + + +

      Appendix C. +HTML Compatibility Guidelines

      + +

      This appendix is informative.

      + +

      This appendix summarizes design guidelines for authors who +wish their XHTML documents to render on existing HTML user +agents.

      + +

      C.1 Processing Instructions

      +

      Be aware that processing instructions are rendered on some +user agents. However, also note that when the XML declaration is not included +in a document, the document can only use the default character encodings UTF-8 +or UTF-16.

      + +

      C.2 Empty Elements

      +

      Include a space before the trailing / and +> of empty elements, e.g. +<br />, +<hr /> and <img +src="karen.jpg" alt="Karen" />. Also, use the +minimized tag syntax for empty elements, e.g. <br />, as the alternative syntax <br></br> allowed by XML +gives uncertain results in many existing user agents.

      + +

      C.3 Element Minimization and Empty Element Content

      +

      Given an empty instance of an element whose content model is +not EMPTY (for example, an empty title or paragraph) +do not use the minimized form (e.g. use +<p> </p> and not +<p />).

      + +

      C.4 Embedded Style Sheets and Scripts

      +

      Use external style sheets if your style sheet uses +< or & or ]]> or --. Use +external scripts if your script uses < or +& or ]]> or --. Note that XML parsers +are permitted to silently remove the contents of comments. Therefore, the historical +practice of "hiding" scripts and style sheets within comments to make the +documents backward compatible is likely to not work as expected in XML-based +implementations.

      + +

      C.5 Line Breaks within Attribute Values

      +

      Avoid line breaks and multiple whitespace characters within +attribute values. These are handled inconsistently by user +agents.

      + +

      C.6 Isindex

      +

      Don't include more than one isindex element in +the document head. The isindex element +is deprecated in favor of the input element.

      + +

      C.7 The lang and xml:lang Attributes

      +

      Use both the lang and xml:lang +attributes when specifying the language of an element. The value +of the xml:lang attribute takes precedence.

      + +

      C.8 Fragment Identifiers

      +

      In XML, URIs [RFC2396] that end with fragment identifiers of the form +"#foo" do not refer to elements with an attribute +name="foo"; rather, they refer to elements with an +attribute defined to be of type ID, e.g., the +id attribute in HTML 4.0. Many existing HTML clients don't +support the use of ID-type attributes in this way, +so identical values may be supplied for both of these attributes to ensure +maximum forward and backward compatibility (e.g., <a id="foo" name="foo">...</a>).

      + +

      Further, since the set of +legal values for attributes of type ID is much smaller than +for those of type CDATA, the type of the name +attribute has been changed to NMTOKEN. This attribute is +constrained such that it can only have the same values as type +ID, or as the Name production in XML 1.0 Section +2.5, production 5. Unfortunately, this constraint cannot be expressed in the +XHTML 1.0 DTDs. Because of this change, care must be taken when +converting existing HTML documents. The values of these attributes +must be unique within the document, valid, and any references to these +fragment identifiers (both +internal and external) must be updated should the values be changed during +conversion.

      +

      Finally, note that XHTML 1.0 has deprecated the +name attribute of the a, applet, frame, iframe, img, and map +elements, and it will be +removed from XHTML in subsequent versions.

      + +

      C.9 Character Encoding

      +

      To specify a character encoding in the document, use both the +encoding attribute specification on the xml declaration (e.g. +<?xml version="1.0" +encoding="EUC-JP"?>) and a meta http-equiv statement +(e.g. <meta http-equiv="Content-type" +content='text/html; charset="EUC-JP"' />). The +value of the encoding attribute of the xml processing instruction +takes precedence.

      + +

      C.10 Boolean Attributes

      +

      Some HTML user agents are unable to interpret boolean +attributes when these appear in their full (non-minimized) form, +as required by XML 1.0. Note this problem doesn't effect user +agents compliant with HTML 4.0. The following attributes are +involved: compact, nowrap, +ismap, declare, noshade, +checked, disabled, readonly, +multiple, selected, +noresize, defer.

      + +

      C.11 Document Object Model and XHTML

      +

      +The Document Object Model level 1 Recommendation [DOM] +defines document object model interfaces for XML and HTML 4.0. The HTML 4.0 +document object model specifies that HTML element and attribute names are +returned in upper-case. The XML document object model specifies that +element and attribute names are returned in the case they are specified. In +XHTML 1.0, elements and attributes are specified in lower-case. This apparent difference can be +addressed in two ways: +

      +
        +
      1. Applications that access XHTML documents served as Internet media type +text/html +via the DOM can use the HTML DOM, +and can rely upon element and attribute names being returned in +upper-case from those interfaces.
      2. +
      3. Applications that access XHTML documents served as Internet media types +text/xml or application/xml +can also use the XML DOM. Elements and attributes will be returned in lower-case. +Also, some XHTML elements may or may +not appear +in the object tree because they are optional in the content model +(e.g. the tbody element within +table). This occurs because in HTML 4.0 some elements were +permitted to be minimized such that their start and end tags are both omitted +(an SGML feature). +This is not possible in XML. Rather than require document authors to insert +extraneous elements, XHTML has made the elements optional. +Applications need to adapt to this +accordingly.
      4. +
      + +

      C.12 Using Ampersands in Attribute Values

      +

      +When an attribute value contains an ampersand, it must be expressed as a character +entity reference +(e.g. "&amp;"). For example, when the +href attribute +of the a element refers to a +CGI script that takes parameters, it must be expressed as +http://my.site.dom/cgi-bin/myscript.pl?class=guest&amp;name=user +rather than as +http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user. +

      + +

      C.13 Cascading Style Sheets (CSS) and XHTML

      + +

      The Cascading Style Sheets level 2 Recommendation [CSS2] defines style +properties which are applied to the parse tree of the HTML or XML +document. Differences in parsing will produce different visual or +aural results, depending on the selectors used. The following hints +will reduce this effect for documents which are served without +modification as both media types:

      + +
        +
      1. +CSS style sheets for XHTML should use lower case element and +attribute names.
      2. + + +
      3. In tables, the tbody element will be inferred by the parser of an +HTML user agent, but not by the parser of an XML user agent. Therefore +you should always explicitely add a tbody element if it is referred to +in a CSS selector.
      4. + +
      5. Within the XHTML name space, user agents are expected to +recognize the "id" attribute as an attribute of type ID. +Therefore, style sheets should be able to continue using the +shorthand "#" selector syntax even if the user agent does not read +the DTD.
      6. + +
      7. Within the XHTML name space, user agents are expected to +recognize the "class" attribute. Therefore, style sheets should be +able to continue using the shorthand "." selector syntax.
      8. + +
      9. +CSS defines different conformance rules for HTML and XML documents; +be aware that the HTML rules apply to XHTML documents delivered as +HTML and the XML rules apply to XHTML documents delivered as XML.
      10. +
      + +

      Appendix D. +Acknowledgements

      + +

      This appendix is informative.

      + +

      This specification was written with the participation of the +members of the W3C HTML working group:

      + +
      +
      Steven Pemberton, CWI (HTML Working Group Chair)
      +Murray Altheim, Sun Microsystems
      +Daniel Austin, CNET: The Computer Network
      +Frank Boumphrey, HTML Writers Guild
      +John Burger, Mitre
      +Andrew W. Donoho, IBM
      +Sam Dooley, IBM
      +Klaus Hofrichter, GMD
      +Philipp Hoschka, W3C
      +Masayasu Ishikawa, W3C
      +Warner ten Kate, Philips Electronics
      +Peter King, Phone.com
      +Paula Klante, JetForm
      +Shin'ichi Matsui, W3C/Panasonic
      +Shane McCarron, Applied Testing and Technology (The Open Group through August +1999)
      +Ann Navarro, HTML Writers Guild
      +Zach Nies, Quark
      +Dave Raggett, W3C/HP (W3C lead for HTML)
      +Patrick Schmitz, Microsoft
      +Sebastian Schnitzenbaumer, Stack Overflow
      +Chris Wilson, Microsoft
      +Ted Wugofski, Gateway 2000
      +Dan Zigmond, WebTV Networks
      +
      + + +

      Appendix E. References

      + +

      This appendix is informative.

      + +
      + +
      [CSS2]
      + +
      "Cascading Style Sheets, level 2 (CSS2) Specification", B. +Bos, H. W. Lie, C. Lilley, I. Jacobs, 12 May 1998.
      +Available at: +http://www.w3.org/TR/REC-CSS2
      + +
      [DOM]
      + +
      "Document Object Model (DOM) Level 1 Specification", Lauren +Wood et al., 1 October 1998.
      +Available at: +http://www.w3.org/TR/REC-DOM-Level-1
      + +
      [HTML]
      + +
      "HTML 4.01 Specification", D. Raggett, A. Le Hors, I. +Jacobs, 24 August 1999.
      +Available at: +http://www.w3.org/TR/1999/PR-html40-19990824
      + +
      [POSIX.1]
      + +
      "ISO/IEC 9945-1:1990 Information Technology - Portable +Operating System Interface (POSIX) - Part 1: System Application +Program Interface (API) [C Language]", Institute of Electrical +and Electronics Engineers, Inc, 1990.
      + +
      +[RFC2046]
      + +
      "RFC2046: Multipurpose Internet Mail Extensions (MIME) Part +Two: Media Types", N. Freed and N. Borenstein, November +1996.
      +Available at +http://www.ietf.org/rfc/rfc2046.txt. Note that this RFC +obsoletes RFC1521, RFC1522, and RFC1590.
      + +
      +[RFC2119]
      + +
      "RFC2119: Key words for use in RFCs to Indicate Requirement +Levels", S. Bradner, March 1997.
      +Available at: +http://www.ietf.org/rfc/rfc2119.txt
      + +
      +[RFC2376]
      + +
      "RFC2376: XML Media Types", E. Whitehead, M. Murata, July +1998.
      +Available at: +http://www.ietf.org/rfc/rfc2376.txt
      + +
      +[RFC2396]
      + +
      "RFC2396: Uniform Resource Identifiers (URI): Generic +Syntax", T. Berners-Lee, R. Fielding, L. Masinter, August +1998.
      +This document updates RFC1738 and RFC1808.
      +Available at: +http://www.ietf.org/rfc/rfc2396.txt
      + +
      [XML]
      + +
      "Extensible Markup Language (XML) 1.0 Specification", T. +Bray, J. Paoli, C. M. Sperberg-McQueen, 10 February 1998.
      +Available at: +http://www.w3.org/TR/REC-xml
      + +
      [XMLNAMES]
      + +
      "Namespaces in XML", T. Bray, D. Hollander, A. Layman, 14 +January 1999.
      +XML namespaces provide a simple method for qualifying names used +in XML documents by associating them with namespaces identified +by URI.
      +Available at: +http://www.w3.org/TR/REC-xml-names
      + +
      +

      +

      + + + + diff --git a/test/valid/xlink.xml b/test/valid/xlink.xml new file mode 100644 index 0000000..19194aa --- /dev/null +++ b/test/valid/xlink.xml @@ -0,0 +1,529 @@ + + + +]> + + + + + + + +
      + XML Linking Language (XLink) + Version 1.0 + WD-xlink-19990527 + World Wide Web Consortium Working Draft + 29May1999 + +

      This draft is for public discussion.

      +
      + http://www.w3.org/XML/Group/1999/05/WD-xlink-current + + + http://www.w3.org/XML/Group/1999/05/WD-xlink-19990527 + http://www.w3.org/XML/Group/1999/05/WD-xlink-19990505 + http://www.w3.org/TR/1998/WD-xlink-19980303 + http://www.w3.org/TR/WD-xml-link-970630 + + + + + + Steve DeRose + Inso Corp. and Brown University + Steven_DeRose@Brown.edu + + + David Orchard + IBM Corp. + dorchard@ca.ibm.com + + + Ben Trafford + Invited Expert + bent@exemplary.net + + + + + +

      This is a W3C Working Draft for review by W3C members and other interested parties. It is a draft document and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use W3C Working Drafts as reference material or to cite them as other than "work in progress". A list of current W3C working drafts can be found at http://www.w3.org/TR.

      +

      Note: Since working drafts are subject to frequent change, you are advised to reference the above URI, rather than the URIs for working drafts themselves. Some of the work remaining is described in .

      +

      This work is part of the W3C XML Activity (for current status, see http://www.w3.org/XML/Activity ). For information about the XPointer language which is expected to be used with XLink, see http://www.w3.org/TR/WD-xptr. +

      +

      See http://www.w3.org/TR/NOTE-xlink-principles for additional background on the design principles informing XLink.

      +

      Also see http://www.w3.org/TR/NOTE-xlink-req/ for the XLink requirements that this document attempts to satisfy.

      +
      + + + +

      This specification defines constructs that may be inserted into XML DTDs, schemas and document instances to describe links between objects. It uses XML syntax to create structures that can describe the simple unidirectional hyperlinks of today's HTML as well as more sophisticated links.

      +
      + + +

      Burlington, Seekonk, et al.: World-Wide Web Consortium, XML Working Group, 1998.

      +
      + + +

      Created in electronic form.

      +
      + + + English + Extended Backus-Naur Form (formal grammar) + + + + + 1997-01-15 : Skeleton draft by TB + 1997-01-24 : Fleshed out by sjd + 1997-04-08 : Substantive draft + 1997-06-30 : Public draft + 1997-08-01 : Public draft + 1997-08-05 : Prose/organization work by sjd + 1997-10-14: Conformance and design principles; a bit of cleanup by elm + 1997-11-07: Update for editorial issues per issues doc, by sjd. + 1997-12-01: Update for editorial issues per issues doc in preparation for F2F meeting, by sjd. + 1998-01-13: Editorial cleanup, addition of new design principles, by elm. + 1998-02-27: Splitting out of XLink and XPointer, by elm. + 1998-03-03: Moved most of the XPointer locator stuff here. elm + 1999-04-24: Editorial rewrites to represent new ideas on XLink, especially the inclusion of arcs. bent + 1999-05-05: Prose/organization work by dorchard. Moved much of the semantics section around, from: locators, link semantics, remote resource semantics, local resource semantics; to: resource semantics, locators, behavior semantics, link semantics, arc semantics + 1999-05-12: Prose/organization work. Re-organized some of the sections, removed XML constructs from the document, added descriptive prose, edited document text for clarity. Rewrote the link recognition section. bent + 1999-05-17: Further prose work. Added non-normative examples. Clarified arcs. bent + 1999-05-23: Edited for grammar and clarity. bent + 1999-05-27: Final once-over before sending to group. Fixed sjd's email address. bent + + +
      + + + + Introduction +

      This specification defines constructs that may be inserted into XML DTDs, schemas, and document instances to describe links between objects. A link, as the term is used here, is an explicit relationship between two or more data objects or portions of data objects. This specification is concerned with the syntax used to assert link existence and describe link characteristics. Implicit (unasserted) relationships, for example that of one word to the next or that of a word in a text to its entry in an on-line dictionary are obviously important, but outside its scope.

      +

      Links are asserted by elements contained in XML document instances. The simplest case is very like an HTML A link, and has these characteristics: + +

      The link is expressed at one of its ends (similar to the A element in some document)

      +

      Users can only initiate travel from that end to the other

      +

      The link's effect on windows, frames, go-back lists, stylesheets in use, and so on is mainly determined by browsers, not by the link itself. For example, traveral of A links normally replaces the current view, perhaps with a user option to open a new window.

      +

      The link goes to only one destination (although a server may have great freedom in finding or dynamically creating that destination).

      + +

      +

      While this set of characteristics is already very powerful and obviously has proven itself highly useful and effective, each of these assumptions also limits the range of hypertext functionality. The linking model defined here provides ways to create links that go beyond each of these specific characteristics, thus providing features previously available mostly in dedicated hypermedia systems. +

      + + + Origin and Goals +

      Following is a summary of the design principles governing XLink: + +

      XLink must be straightforwardly usable over the Internet.

      +

      XLink must be usable by a wide variety of link usage domains and classes of linking application software.

      +

      XLink must support HTML 4.0 linking constructs.

      +

      The XLink expression language must be XML.

      +

      The XLink design must be formal, concise, and illustrative.

      +

      XLinks must be human-readable and human-writable.

      +

      XLinks may reside within or outside the documents in which the + participating resources reside.

      +

      XLink must represent the abstract structure and significance of links.

      +

      XLink must be feasible to implement.

      +

      XLink must be informed by knowledge of established hypermedia systems and standards.

      + +

      +
      + + + + Relationship to Existing Standards +

      Three standards have been especially influential: + +

      HTML: Defines several SGML element types that represent links.

      +

      HyTime: Defines inline and out-of-line link structures and some semantic features, including traversal control and presentation of objects. +

      +

      Text Encoding Initiative Guidelines (TEI P3): Provides structures for creating links, aggregate objects, and link collections out of them.

      + +

      +

      Many other linking systems have also informed this design, especially Dexter, FRESS, MicroCosm, and InterMedia.

      +
      + + + Terminology +

      The following basic terms apply in this document. + + + +

      A symbolic representation of traversal behavior in links, especially the direction, context and timing of traversal.

      + + + +

      A representation of the relevant structure specified by the tags and attributes in an XML document, based on "groves" as defined in the ISO DSSSL standard.

      +
      + + +

      Abstractly, a link which serves as one of its own resources. Concretely, a link where the content of the linking element serves as a participating resource. + HTML A, HyTime clink, and TEI XREF + are all inline links.

      +
      + + +

      An explicit relationship between two or more data objects or portions of data objects.

      +
      + + +

      An element that asserts the existence and describes the characteristics of a link.

      +
      + + +

      The content of an inlinelinking element. Note that the content of the linking element could be explicitly pointed to by means of a regular locator in the same linking element, in which case the resource is considered remote, not local.

      +
      + + +

      Data, provided as part of a link, which identifies a + resource.

      +
      + + +

      A link whose traversal can be initiated from more than one of its participating resources. Note that being able to "go back" after following a one-directional link does not make the link multidirectional.

      +
      + + +

      A link whose content does not serve as one of the link's participating resources . Such links presuppose a notion like extended link groups, which instruct application software where to look for links. Out-of-line links are generally required for supporting multidirectional traversal and for allowing read-only resources to have outgoing links.

      +
      + +

      In the context of link behavior, a parsed link is any link whose content is transcluded into the document where the link originated. The use of the term "parsed" directly refers to the concept in XML of a + parsed entity.

      +
      + + +

      A resource that belongs to a link. All resources are potential contributors to a link; participating resources are the actual contributors to a particular link.

      +
      + + +

      Any participating resource of a link that is pointed to with a locator.

      +
      + + +

      In the abstract sense, an addressable unit of information or service that is participating in a link. Examples include files, images, documents, programs, and query results. Concretely, anything reachable by the use of a locator in some linking element. Note that this term and its definition are taken from the basic specifications governing the World Wide Web. +

      +
      + + +

      A portion of a resource, pointed to as the precise destination of a link. As one example, a link might specify that an entire document be retrieved and displayed, but that some specific part(s) of it is the specific linked data, to be treated in an application-appropriate manner such as indication by highlighting, scrolling, etc.

      +
      + + +

      The action of using a link; that is, of accessing a resource. Traversal may be initiated by a user action (for example, clicking on the displayed content of a linking element) or occur under program control.

      +
      + +

      +
      + + + Notation +

      The formal grammar for locators is given using a simple Extended Backus-Naur Form (EBNF) location, as described in the XML specification.

      + +
      +
      + + + Locator Syntax +

      The locator for a resource is typically provided by means of a Uniform Resource Identifier, or URI. XPointers can be used in conjunction with the URI structure, as fragment identifiers, to specify a more precise sub-resource.

      + +

      A locator generally contains a URI, as described in IETF RFCs and . As these RFCs state, the URI may include a trailing query (marked by a leading "?"), and be followed by a "#" and a fragment identifier, with the query interpreted by the host providing the indicated resource, and the interpretation of the fragment identifier dependent on the data type of the indicated resource.

      + +

      In order to locate XML documents and portions of documents, a locator value may contain either a URI or a fragment identifier, or both. Any fragment identifier for pointing into XML must be an XPointer.

      +

      Special syntax may be used to request the use of particular processing models in accessing the locator's resource. This is designed to reflect the realities of network operation, where it may or may not be desirable to exercise fine control over the distribution of work between local and remote processors. + + Locator + + Locator + URI + | Connector (XPointer | Name) + | URI Connector (XPointer | Name) + + + Connector'#' | '|' + + + URIURIchar* + + +

      +

      In this discussion, the term designated resource refers to the resource which an entire locator serves to locate. The following rules apply: + + +

      The URI, if provided, locates a resource called the containing resource.

      + + +

      If the URI is not provided, the containing resource is considered to be the document in which the linking element is contained. +

      + +

      If an XPointer is provided, the designated resource is a sub-resource + of the containing resource; otherwise the designated resource is the + containing resource.

      +
      + + +

      If the Connector is followed directly by a Name, the Name is shorthand for the XPointer"id(Name)"; that is, the sub-resource is the element in the containing resource that has an XML ID attribute whose value matches the Name. This shorthand is to encourage use of the robust id addressing mode.

      +
      + + +

      If the connector is "#", this signals an intent that the containing resource is to be fetched as a whole from the host that provides it, and that the XPointer processing to extract the sub-resource + is to be performed on the client, that is to say on the same system where the linking element is recognized and processed.

      +
      + +

      If the connector is "|", no intent is signaled as to what processing model is to be used to go about accessing the designated resource.

      +
      + +

      +

      Note that the definition of a URI includes an optional query component.

      +

      In the case where the URI contains a query (to be interpreted by the server), information providers and authors of server software are urged to use queries as follows: + + Query + + Query'XML-XPTR=' ( XPointer | Name) + + +

      + +
      + + + Link Recognition +

      The existence of a link is asserted by a linking element. Linking elements must be recognized reliably by application software in order to provide appropriate display and behavior. There are several ways link recognition could be accomplished: for example, reserving element type names, reserving attributes names, leaving the matter of recognition entirely up to stylesheets and application software, or using the XLink namespace to specify element names and attribute names that would be recognized by namespace and XLink-aware processors. Using element and attribute names within the XLink namespace provides a balance between giving users control of their own markup language design and keeping the identification of linking elements simple and unambiguous.

      +

      The two approaches to identifying linking elements are relatively simple to implement. For example, here's how the HTML A element would be declared using attributes within the XLink namespace, and then how an element within the XLink namespace might do the same: + <A xlink:type="simple" xlink:href="http://www.w3.org/TR/wd-xlink/" +xlink:title="The Xlink Working Draft">The XLink Working Draft.</A> + <xlink:simple href="http://www.w3.org/TR/wd-xlink/" +title="The XLink Working Draft">The XLink Working Draft</xlink:simple> + Any arbitrary element can be made into an XLink by using the xlink:type attribute. And, of course, the explicit XLink elements may be used, as well. This document will go on to describe the linking attributes that are associated with linking elements. It may be assumed by the reader that these attributes would require the xlink namespace prefix if they existed within an arbitrary element, or that they may be used directly if they exist within an explicit Xlink element.

      + +
      + + + + Linking Attributes +

      XLink has several attributes associated with the variety of links it may represent. These attributes define four main concepts: locators, arcs, behaviors, and semantics. Locators define where the actual resource is located. Arcs define the traversal of links. Where does the link come from? Where does it go to? All this information can be stored in the arc attributes. Behaviors define how the link is activated, and what the application should do with the resource being linked to. Semantics define useful information that the application may use, and enables the link for such specalized targets as constricted devices and accessibility software.

      + + + Locator Attributes +

      The only locator attribute at this time is href. This attribute must contain either a string in the form of a URI that defines the remote resource being linked to, a string containing a fragment identifier that links to a local resource, or a string containing a URI with a fragment identifier concacenated onto it.

      +
      + + + Arc Attributes +

      Arcs contain two attributes, from and to. The from attribute may contain a string containing the content of a role attribute from the resource being linked from. The purpose of the from attribute is to define where this link is being actuated from.

      +

      The to attribute may contain a string containing the content of a role attribute from the resource being linked to. The purpose of the to attribute is to define where this link traverses to.

      +

      The application may use this information in a number of ways, especially in a complex hypertext system, but it is mainly useful in providing context for application behavior.

      + +
      + + + Behavior Attributes +

      There are two attributes associated with behavior: show and actuate. The show attribute defines how the remote resource is to be revealed to the user. It has three options: new, parsed, and replace. The new option indicates that the remote resource should be shown in a new window (or other device context) without replacing the previous content. The parsed option, relating directly to the XML concept of a parsed entity, indicates that the content should be integrated into the document from which the link was actuated. The replace option is the one most commonly seen on the World Wide Web, where the document being linked from is entirely replaced by the object being linked to.

      +

      The actuate attribute defines how the link is initiated. It has two options: user and auto. The user option indicates that the link must be initiated by some sort of human-initiated selection, such as clicking on an HTML anchor. The auto option indicates that the link is automatically initiated when the application deems that the user has reached the link. It then follows the behavior set out in the show option.

      + +
      + + + Semantic Attributes +

      There are two attributes associated with semantics, role and title. The role attribute is a generic string used to describe the function of the link's content. For example, a poem might have a link with a role="stanza". The role is also used as an identifier for the from and to attributes of arcs.

      +

      The title attribute is designed to provide human-readable text describing the link. It is very useful for those who have text-based applications, whether that be due to a constricted device that cannot display the link's content, or if it's being read by an application to a visually-impaired user, or if it's being used to create a table of links. The title attribute contains a simple, descriptive string.

      +
      +
      + + + Linking Elements +

      There are several kinds of linking elements in XLink: simple links, locators, arcs, and extended links. These elements may be instantiated via element declarations from the XLink namespace, or they may be instantiated via attribute declarations from the XLink namespace. Both kinds of instantiation are described in the definition of each linking element.

      +

      The simple link is used to declare a link that approximates the functionality of the HTML A element. It has, however, a few added features to increase its value, including the potential declaration of semantics and behavior. The locator elements are used to define the resource being linked to. Some links may contain multiple locators, representing a choice of potential links to be traversed. The arcs are used to define the traversal semantics of the link. Finally, an extended linking element differs from a simple link in that it can connect any number of resources, not just one local resource (optionally) and one remote resource, and in that extended links are more often out-of-line than simple links.

      + + + Simple Links + +

      The following are two examples of linking elements, each showing all the possible attributes that can be associated with a simple link. Here is the explicit XLink simple linking element. + <!ELEMENT xlink:simple ANY> +<!ATTLIST xlink:slink + href CDATA #REQUIRED + role CDATA #IMPLIED + title CDATA #IMPLIED + show (new|parsed|replace) "replace" + actuate (user|auto) "user" +> + And here is how to make an arbitrary element into a simple link. + <!ELEMENT xlink:simple ANY> +<!ATTLIST foo + xlink:type (simple|extended|locator|arc) #FIXED "simple" + xlink:href CDATA #REQUIRED + xlink:role CDATA #IMPLIED + xlink:title CDATA #IMPLIED + xlink:show (new|parsed|replace) "replace" + xlink:actuate (user|auto) "user" +> + Here is how the first example might look in a document: +<xlink:simple href="http://www.w3.org/TR/wd-xlink" role="working draft" + title="The XLink Working Draft" show="replace" actuate="user"> +The XLink Working Draft.</xlink:simple> +<foo xlink:href="http://www.w3.org/TR/wd-xlink" xlink:role="working draft" + xlink:title="The XLink Working Draft" xlink:show="new" xlink:actuate="user"> +The XLink Working Draft.</foo> + Alternately, a simple link could be as terse as this: +<foo xlink:href="#stanza1">The First Stanza.</foo> +

      +

      + There are no constraints on the contents of a simple linking element. In + the sample declaration above, it is given a content model of ANY + to illustrate that any content model or declared content is acceptable. In + a valid document, every element that is significant to XLink must still conform + to the constraints expressed in its governing DTD.

      +

      Note that it is meaningful to have an out-of-line simple link, although + such links are uncommon. They are called "one-ended" and are typically used + to associate discrete semantic properties with locations. The properties might + be expressed by attributes on the link, the link's element type name, or in + some other way, and are not considered full-fledged resources of the link. + Most out-of-line links are extended links, as these have a far wider range + of uses.

      +
      + + +Extended Links +

      An extended link differs from a simple link in that it can connect any number of resources, not just one local resource (optionally) and one remote resource, and in that extended links are more often out-of-line than simple links.

      +

      These additional capabilities of extended links are required for: + + +

      Enabling outgoing links in documents that cannot be modified to add an inline link

      + + +

      Creating links to and from resources in formats with no native support for embedded links (such as most multimedia formats)

      +
      + +

      Applying and filtering sets of relevant links on demand

      +
      +

      Enabling other advanced hypermedia capabilities

      + +

      +

      Application software might be expected to provide traversal among all of a link's participating resources (subject to semantic constraints outside the scope of this specification) and to signal the fact that a given resource or sub-resource participates in one or more links when it is displayed (even though there is no markup at exactly that point to signal it).

      +

      A linking element for an extended link contains a series of child elements that serve as locators and arcs. Because an extended link can have more than one remote resource, it separates out linking itself from the mechanisms used to locate each resource (whereas a simple link combines the two).

      +

      The xlink:type attribute value for an extended link must be extended, if the link is being instantiated on an arbitrary element. Note that extended links introduce variants of the show and actuate behavior attributes. These attributes, the showdefault and actuatedefault define the same behavior as their counterparts. However, in this case, they are considered to define the default behavior for all the linking elements that they contain.

      +

      However, when a linking element within an extended link has a show or actuate attribute of its own, that attribute overrides the defaults set on the extended linking element.

      +

      The extended linking element itself retains those attributes relevant to the link as a whole, and to its local resource if any. Following are two sample declaration for an extended link. The first is an example of the explicit XLink extended link: + +<!ELEMENT xlink:extended ((xlink:arc | xlink:locator)*)> +<!ATTLIST xlink:extended + role CDATA #IMPLIED + title CDATA #IMPLIED + showdefault (new|parsed|replace) #IMPLIED + actuatedefault (user|auto) #IMPLIED > + + The second is an example of an arbitrary element being used an extended link: + +<!ELEMENT foo ((xlink:arc | xlink:locator)*)> +<!ATTLIST foo + xlink:type (simple|extended|locator|arc) #FIXED "extended" + xlink:role CDATA #IMPLIED + xlink:title CDATA #IMPLIED + xlink:showdefault (new|parsed|replace) #IMPLIED + xlink:actuatedefault (user|auto) #IMPLIED > + + The following two examples demonstrate how each of the above might appear within a document instance. Note that the content of these examples would be other elements. For brevity's sake, they've been left blank. The first example shows how the link might appear, using an explicit XLink extended link: + +<xlink:extended role="address book" title="Ben's Address Book" showdefault="replace" actuatedefault="user"> ... </xlink:extended> + + And the second shows how the link might appear, using an arbitrary element: + +<foo xlink:type="extended" xlink:role="address book" xlink:title="Ben's Address Book" xlink:showdefault="replace" xlink:actuatedefault="user"> ... </foo> +

      + +
      + + + Arc Elements +

      An arc is contained within an extended link for the purpose of defining traversal behavior. More than one arc may be associated with a link. Otherwise, arc elements function exactly as the arc attributes might lead on to expect.

      + +
      + +
      + +Conformance +

      An element conforms to XLink if: +

      The element has an xml:link attribute whose value is +one of the attribute values prescribed by this specification, and

      +

      the element and all of its attributes and content adhere to the +syntactic +requirements imposed by the chosen xml:link attribute value, +as prescribed in this specification.

      +

      +

      Note that conformance is assessed at the level of individual elements, +rather than whole XML documents, because XLink and non-XLink linking mechanisms +may be used side by side in any one document.

      +

      An application conforms to XLink if it interprets XLink-conforming elements +according to all required semantics prescribed by this specification and, +for any optional semantics it chooses to support, supports them in the way +prescribed.

      +
      + + +Unfinished Work + +Structured Titles +

      The simple title mechanism described in this draft is insufficient to cope +with internationalization or the use of multimedia in link titles. A future +version will provide a mechanism for the use of structured link titles.

      +
      +
      + +References + +Eve Maler and Steve DeRose, editors. +XML Pointer Language (XPointer) V1.0. ArborText, Inso, and Brown +University. Burlington, Seekonk, et al.: World Wide Web Consortium, 1998. +(See http://www.w3.org/TR/WD-xptr + .) +ISO (International Organization for +Standardization). ISO/IEC 10744-1992 (E). Information technology +- Hypermedia/Time-based Structuring Language (HyTime). [Geneva]: +International Organization for Standardization, 1992. Extended +Facilities +Annex. [Geneva]: International Organization for Standardization, +1996. (See http://www.ornl.go +v/sgml/wg8/hytime/html/is10744r.html ). +IETF (Internet Engineering Task +Force). +RFC 1738: Uniform Resource Locators. 1991. (See +http://www.w3.org/Addressing/rfc1738.txt). +IETF (Internet Engineering Task +Force). +RFC 1808: Relative Uniform Resource Locators. 1995. (See http://www.w3.org/Addressing/rfc +1808.txt ). +C. M. Sperberg-McQueen and Lou Burnard, editors. + +Guidelines for Electronic Text Encoding and Interchange. Association +for Computers and the Humanities (ACH), Association for Computational +Linguistics +(ACL), and Association for Literary and Linguistic Computing (ALLC). Chicago, +Oxford: Text Encoding Initiative, 1994. +]Steven J. DeRose and David G. Durand. 1995. "The +TEI Hypertext Guidelines." In Computing and the Humanities +29(3). +Reprinted in Text Encoding Initiative: Background and +Context, +ed. Nancy Ide and Jean ronis , ISBN 0-7923-3704-2. + +
      + diff --git a/test/wap.xml b/test/wap.xml new file mode 100644 index 0000000..2795509 --- /dev/null +++ b/test/wap.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + +

      If automatic testing failed, select Failed + + + + + .

      +
      + +
      diff --git a/test/warning/ent8 b/test/warning/ent8 new file mode 100644 index 0000000..6240939 --- /dev/null +++ b/test/warning/ent8 @@ -0,0 +1,3 @@ + + + &unknown; but Okay diff --git a/test/warning/ent9 b/test/warning/ent9 new file mode 100644 index 0000000..009e322 --- /dev/null +++ b/test/warning/ent9 @@ -0,0 +1,7 @@ + +prefix is indeclared here"> +]> + + &xml; + diff --git a/test/winblanks.xml b/test/winblanks.xml new file mode 100644 index 0000000..8f937f2 --- /dev/null +++ b/test/winblanks.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/test/wml.xml b/test/wml.xml new file mode 100644 index 0000000..1cfecc7 --- /dev/null +++ b/test/wml.xml @@ -0,0 +1,11 @@ + + + + +

      + Cinéma
      +

      + +
      +
      + diff --git a/test/xhtml1 b/test/xhtml1 new file mode 100644 index 0000000..70e3a34 --- /dev/null +++ b/test/xhtml1 @@ -0,0 +1,34 @@ + + + + + + Virtual Library + + + + +

      Moved to example.org.

      + + + foo + +

      + +

      coucou

      +

      salut

      + +

      test

      + +
      +
      Internet Engineering Task Force
      +
      An organization which establishes technical standards for the Internet
      +
      + + + + diff --git a/test/xhtmlcomp b/test/xhtmlcomp new file mode 100644 index 0000000..47dd2a7 --- /dev/null +++ b/test/xhtmlcomp @@ -0,0 +1,8 @@ + + + + +

      a b

      + + diff --git a/test/xml1 b/test/xml1 new file mode 100644 index 0000000..40df24a --- /dev/null +++ b/test/xml1 @@ -0,0 +1,7 @@ + +An ampersand (&#38;) may be escaped + numerically (&#38;#38;) or with a general entity + (&amp;).

      " > +]> +&example; diff --git a/test/xml2 b/test/xml2 new file mode 100644 index 0000000..922314b --- /dev/null +++ b/test/xml2 @@ -0,0 +1,8 @@ + + + +' > +%xx; +]> +This sample shows a &tricky; method. diff --git a/test/xmlid/id_err1.xml b/test/xmlid/id_err1.xml new file mode 100644 index 0000000..d8c47cc --- /dev/null +++ b/test/xmlid/id_err1.xml @@ -0,0 +1 @@ + diff --git a/test/xmlid/id_err2.xml b/test/xmlid/id_err2.xml new file mode 100644 index 0000000..99010a7 --- /dev/null +++ b/test/xmlid/id_err2.xml @@ -0,0 +1,5 @@ + + +]> + diff --git a/test/xmlid/id_tst1.xml b/test/xmlid/id_tst1.xml new file mode 100644 index 0000000..7c3249c --- /dev/null +++ b/test/xmlid/id_tst1.xml @@ -0,0 +1 @@ + diff --git a/test/xmlid/id_tst2.xml b/test/xmlid/id_tst2.xml new file mode 100644 index 0000000..2bf5861 --- /dev/null +++ b/test/xmlid/id_tst2.xml @@ -0,0 +1 @@ + diff --git a/test/xmlid/id_tst3.xml b/test/xmlid/id_tst3.xml new file mode 100644 index 0000000..7316a13 --- /dev/null +++ b/test/xmlid/id_tst3.xml @@ -0,0 +1 @@ + diff --git a/test/xmlid/id_tst4.xml b/test/xmlid/id_tst4.xml new file mode 100644 index 0000000..ea057a3 --- /dev/null +++ b/test/xmlid/id_tst4.xml @@ -0,0 +1,4 @@ + + + + diff --git a/test/xsdtest/xsdtest.xml b/test/xsdtest/xsdtest.xml new file mode 100644 index 0000000..b8a6de9 --- /dev/null +++ b/test/xsdtest/xsdtest.xml @@ -0,0 +1,806 @@ + + +2001-12-01T19:45:00 +2001-12-01T19:45:00Z +2001-12-01T19:45:00-11:59 +0001-01-12T00:00:00+12:00 +2001-12-1T19:45:00+24:00 +2001-12-1T19:45:00 + + + 2001-12-01T19:45:00 + 2001-12-01T19:45:00.00 + + + 2001-12-01T19:45:00Z + 2001-12-01T19:45:00.00Z + 2001-12-01T20:45:00+01:00 + + + + +foobar +http://www.example.com +http://ji%6d@www.example.com +http://www.example.co%6d +nosuchscheme:stuff +foo$bar:stuff +f%oobar + + +10 +01 +0123456789 ++10 +-10 +1.0 +.1 +9999999999999999999999999999999 +1. +0. + + + 0 + +0 + -0 + 00 + + + 10 + +10 + +0010 + 010 + + + -10 + -0010 + -010 + + + + +P1Y +P1Y0M2DT17H5M12S +-P1Y +P60D +PT24H +PT1.2S +P24h +P24H +P1YT +P +-P + + + -P6M + + + P0Y + -P0Y + + + P1Y + P001Y + P001Y0M + P1Y0M0DT0H0M0.0S + + + P6M + + + PT6M + + + PT1S + PT1.0S + + + + PT1M + PT61S + + + PT59S + PT1M + + + PT60S + PT1M + + + PT1H + PT61M + + + PT59M + PT1H + + + PT60M + PT1H + + + P1D + PT25H + + + PT23H + P1D + + + P1D + PT24H + + + P1Y + P13M + + + P11M + P1Y + + + P12M + P1Y + + + P364D + P1Y + + + P1Y + P365D + + + P1Y + P366D + + + P1Y + P367D + + + P149D + P5M + + + P150D + P5M + + + P151D + P5M + + + P152D + P5M + + + P153D + P5M + + + P5M + P154D + + + P27D + P1M + + + P28D + P1M + + + P29D + P1M + + + P30D + P1M + + + P31D + P1M + + + P1M + P32D + + + +12:45:00 +12:45:00Z + + +1886-12-01 +1886-12-01Z + + 1066-12-31 + 1900-01-01 + + + 1900-01-01 + 1900-01-02 + + + +1996-12 +1996-01 +1996-01Z +1996-00 + +1996-01 + + 1996-01Z + 1996-01+00:00 + 1996-01-00:00 + +1996-01+01:00 +1996-01-01:00 + + + +2001 +2001Z + + 1999 + 2000 + + + 1999+07:00 + 2000+07:00 + + + +--12-01 +--12-01Z + + --12-01 + --12-04 + + + --11-17 + --12-04 + + + +---20 +---20Z + + ---01 + ---31 + + + +--12 +--01 +--01Z + --12 +---01 +--00 +--13 +- -13 + + --01 + --12 + + + --01 + --02 + + + +true +false +0 +1 +00 +00 +01 + +true1 +false0 + + + +AAAA +abcd efgh ijkl mnop qrst uvwx yzAB CDEF GHIJ KLMN OPQR +STUV WXYZ 0123 4567 89+/ +BA== + +BA== +BQ== +Bg== +Bw== +BBA= +BBA= +BBE= +BBI= +BBM= +BBQ= +BBU= +BBY= +BBc= +BBg= +BBk= +BBo= +BBs= +BBw= +BB0= +BB4= +BB8= +==== +BB== +BBB= +B=== +B + + +deadbeef +d e a d +b eef + + +DEADBEEF +D E A D +B EEF + + + +deadbeef +BA== +BBA= +dead +deadBA== + + +deadbeef + +0123456789ABCDEFabcdef +00 00 +00.00 +0G + + + 00 + + 00 + + + + 01 + + + 10 + + + 0a + 0A + + + +00 +0000 + 0000 +AAAA + + +1.0 +1. +.1 +- 1 +1 .0 ++INF ++NaN +-NaN + + + 0 + -0 + +0 + 0 + 0. + .0 + 0.0 + 0e0 + 0E0 + 0E+0 + 0E-0 + + + 1E0 + 0.1E1 + 10E-1 + +1 + + + -1 + + + INF + INF + + + -INF + -INF + + + NaN + NaN + + + + -INF + -1000 + + + 1000 + INF + + + -1 + 1 + + + 0 + 1 + + + -1 + 0 + + + +1.0 +1. +.1 +- 1 +1 .0 ++INF ++NaN +-NaN + + + 0 + -0 + +0 + 0 + 0. + .0 + 0.0 + 0e0 + 0E0 + 0E+0 + 0E-0 + + + 1E0 + 0.1E1 + 10E-1 + +1 + + + -1 + + + INF + INF + + + -INF + -INF + + + NaN + NaN + + + + -INF + -1000 + + + 1000 + INF + + + -1 + 1 + + + 0 + 1 + + + -1 + 0 + + + +foo +x:foo +y:foo + + + foo + foo + + + x:foo + x:foo + z:foo + + + x:bar + z:bar + + + y:foo + + + y:bar + + + + +foo +x:foo +y:foo + + +1.0 +1. +.1 ++1.0 +-1.0 + 1 +99999999999999999999999999999999999999999999999999999999999999999 +-99999999999999999999999999999999999999999999999999999999999999999 +junk +--1 +++1 ++-1 +1.2. +..1 +1.. +1 .2 +1+ ++ 1 + + 0 + 1 + + + +-1 +0 +-0 +1 + + +1 +0 ++1 ++0 +-1 + + ++1 +1 +0 +-1 + + +-1 ++1 +0 + + +1 ++1 +0 + 0 +1 2 +9999999999999999999999999999999999999999999999999999999999999999999999999 +9223372036854775807 +-9223372036854775808 +9223372036854775808 +-9223372036854775809 + + + +1 +01 + 1 +2147483647 +-2147483648 +2147483648 +-2147483649 +9999999999999999999999999999999999999999999999999999999999999999999999999 + + + 1 + +1 + 1 + 001 + + + -1 + -1 + -001 + + + + +1 +32767 +-32768 +32768 +-32769 +9999999999999999999999999999999999999999999999999999999999999999999999999 + + + 1 + +1 + 1 + 001 + + + -1 + -1 + -001 + + + + +1 +127 +-128 +128 +-129 + + +1 ++1 +-1 +0 +18446744073709551615 +18446744073709551616 +-1 + + +1 ++1 +0 +4294967295 +4294967296 +-1 + + +1 ++1 +0 +65535 +65536 +-1 + + +1 ++1 +0 +255 +256 +-1 + + +any thing at all! + + +any thing at all! + + +any thing at all! + + + + + + + + x + x + x + x + x + x + x + x + x + + + x y + x y + x y + x y + x y + x y + x y + x y + x y + x y + x y + x y + x y + + + +x + x +𐠀 + + +en +en-UK +i-cherokee +x-klingon +en-uk-scotland +en.UK + + +foo +_0123456789 +. +: +- +1234 + foo + + +foo +foo:bar +0foo + +foo foo +FOO FOO + + + +foo +_ +. +: +- +1234 + foo + foo +fo +f + + +foo bar + +1 2 3 4 + + +foobar +foo:bar +foo bar + + + +foo +foo + + + +foo + foo bar + + diff --git a/test/xsdtest/xsdtest.xsl b/test/xsdtest/xsdtest.xsl new file mode 100644 index 0000000..d57adf2 --- /dev/null +++ b/test/xsdtest/xsdtest.xsl @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + +Datatype + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<!DOCTYPE + + [ + + + +]> + + + + + + + + + element + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/xsdtest/xsdtestsuite.xml b/test/xsdtest/xsdtestsuite.xml new file mode 100644 index 0000000..1c91cb9 --- /dev/null +++ b/test/xsdtest/xsdtestsuite.xml @@ -0,0 +1,5286 @@ + + + + Datatype dateTime + + + + + + + + + 2001-12-01T19:45:00 + + + 2001-12-01T19:45:00Z + + + 2001-12-01T19:45:00-11:59 + + + 0001-01-12T00:00:00+12:00 + + + 2001-12-1T19:45:00+24:00 + + + 2001-12-1T19:45:00 + + + + + + 2001-12-01T19:45:00 + + + + 2001-12-01T19:45:00.00 + + + 2001-12-01T19:45:00Z + + + 2001-12-01T19:45:00.00Z + + + 2001-12-01T20:45:00+01:00 + + + + + + 2001-12-01T19:45:00Z + + + + 2001-12-01T19:45:00.00Z + + + 2001-12-01T20:45:00+01:00 + + + 2001-12-01T19:45:00 + + + 2001-12-01T19:45:00.00 + + + + + Datatype anyURI + + + + + + + + + foobar + + + http://www.example.com + + + http://ji%6d@www.example.com + + + http://www.example.co%6d + + + nosuchscheme:stuff + + + foo$bar:stuff + + + f%oobar + + + + + Datatype integer + + + + + + + + + 10 + + + 01 + + + 0123456789 + + + +10 + + + -10 + + + 1.0 + + + .1 + + + 9999999999999999999999999999999 + + + 1. + + + 0. + + + + + + 0 + + + + +0 + + + -0 + + + 00 + + + 10 + + + +10 + + + +0010 + + + 010 + + + -10 + + + -0010 + + + -010 + + + + + + 10 + + + + +10 + + + +0010 + + + 010 + + + 0 + + + +0 + + + -0 + + + 00 + + + -10 + + + -0010 + + + -010 + + + + + + -10 + + + + -0010 + + + -010 + + + 0 + + + +0 + + + -0 + + + 00 + + + 10 + + + +10 + + + +0010 + + + 010 + + + + + Datatype duration + + + + + + + + + P1Y + + + P1Y0M2DT17H5M12S + + + -P1Y + + + P60D + + + PT24H + + + PT1.2S + + + P24h + + + P24H + + + P1YT + + + P + + + -P + + + + + + -P6M + + + + P0Y + + + -P0Y + + + P1Y + + + P001Y + + + P001Y0M + + + P1Y0M0DT0H0M0.0S + + + P6M + + + PT6M + + + PT1S + + + PT1.0S + + + + + + P0Y + + + + -P0Y + + + -P6M + + + P1Y + + + P001Y + + + P001Y0M + + + P1Y0M0DT0H0M0.0S + + + P6M + + + PT6M + + + PT1S + + + PT1.0S + + + + + + P1Y + + + + P001Y + + + P001Y0M + + + P1Y0M0DT0H0M0.0S + + + -P6M + + + P0Y + + + -P0Y + + + P6M + + + PT6M + + + PT1S + + + PT1.0S + + + + + + P6M + + + + -P6M + + + P0Y + + + -P0Y + + + P1Y + + + P001Y + + + P001Y0M + + + P1Y0M0DT0H0M0.0S + + + PT6M + + + PT1S + + + PT1.0S + + + + + + PT6M + + + + -P6M + + + P0Y + + + -P0Y + + + P1Y + + + P001Y + + + P001Y0M + + + P1Y0M0DT0H0M0.0S + + + P6M + + + PT1S + + + PT1.0S + + + + + + PT1S + + + + PT1.0S + + + -P6M + + + P0Y + + + -P0Y + + + P1Y + + + P001Y + + + P001Y0M + + + P1Y0M0DT0H0M0.0S + + + P6M + + + PT6M + + + + + + + PT1M + + + + + PT61S + + + PT1M + + + + + + + PT61S + + + + + PT1M + + + PT61S + + + + + + + PT59S + + + + + PT1M + + + PT59S + + + + + + + PT1M + + + + + PT59S + + + PT1M + + + + + + + PT60S + + + + + PT1M + + + PT60S + + + + + + + PT1M + + + + + PT60S + + + PT1M + + + + + + + PT1H + + + + + PT61M + + + PT1H + + + + + + + PT61M + + + + + PT1H + + + PT61M + + + + + + + PT59M + + + + + PT1H + + + PT59M + + + + + + + PT1H + + + + + PT59M + + + PT1H + + + + + + + PT60M + + + + + PT1H + + + PT60M + + + + + + + PT1H + + + + + PT60M + + + PT1H + + + + + + + P1D + + + + + PT25H + + + P1D + + + + + + + PT25H + + + + + P1D + + + PT25H + + + + + + + PT23H + + + + + P1D + + + PT23H + + + + + + + P1D + + + + + PT23H + + + P1D + + + + + + + P1D + + + + + PT24H + + + P1D + + + + + + + PT24H + + + + + P1D + + + PT24H + + + + + + + P1Y + + + + + P13M + + + P1Y + + + + + + + P13M + + + + + P1Y + + + P13M + + + + + + + P11M + + + + + P1Y + + + P11M + + + + + + + P1Y + + + + + P11M + + + P1Y + + + + + + + P12M + + + + + P1Y + + + P12M + + + + + + + P1Y + + + + + P12M + + + P1Y + + + + + + + P364D + + + + + P1Y + + + P364D + + + + + + + P1Y + + + + + P364D + + + P1Y + + + + + + + P1Y + + + + + P365D + + + P1Y + + + + + + + P365D + + + + + P1Y + + + P365D + + + + + + + P1Y + + + + + P366D + + + P1Y + + + + + + + P366D + + + + + P1Y + + + P366D + + + + + + + P1Y + + + + + P367D + + + P1Y + + + + + + + P367D + + + + + P1Y + + + P367D + + + + + + + P149D + + + + + P5M + + + P149D + + + + + + + P5M + + + + + P149D + + + P5M + + + + + + + P150D + + + + + P5M + + + P150D + + + + + + + P5M + + + + + P150D + + + P5M + + + + + + + P151D + + + + + P5M + + + P151D + + + + + + + P5M + + + + + P151D + + + P5M + + + + + + + P152D + + + + + P5M + + + P152D + + + + + + + P5M + + + + + P152D + + + P5M + + + + + + + P153D + + + + + P5M + + + P153D + + + + + + + P5M + + + + + P153D + + + P5M + + + + + + + P5M + + + + + P154D + + + P5M + + + + + + + P154D + + + + + P5M + + + P154D + + + + + + + P27D + + + + + P1M + + + P27D + + + + + + + P1M + + + + + P27D + + + P1M + + + + + + + P28D + + + + + P1M + + + P28D + + + + + + + P1M + + + + + P28D + + + P1M + + + + + + + P29D + + + + + P1M + + + P29D + + + + + + + P1M + + + + + P29D + + + P1M + + + + + + + P30D + + + + + P1M + + + P30D + + + + + + + P1M + + + + + P30D + + + P1M + + + + + + + P31D + + + + + P1M + + + P31D + + + + + + + P1M + + + + + P31D + + + P1M + + + + + + + P1M + + + + + P32D + + + P1M + + + + + + + P32D + + + + + P1M + + + P32D + + + + + Datatype time + + + + + + + + + 12:45:00 + + + 12:45:00Z + + + + + Datatype date + + + + + + + + + 1886-12-01 + + + 1886-12-01Z + + + + + + + 1066-12-31 + + + + + 1900-01-01 + + + 1066-12-31 + + + + + + + 1900-01-01 + + + + + 1066-12-31 + + + 1900-01-01 + + + + + + + 1900-01-01 + + + + + 1900-01-02 + + + 1900-01-01 + + + + + + + 1900-01-02 + + + + + 1900-01-01 + + + 1900-01-02 + + + + + Datatype gYearMonth + + + + + + + + + 1996-12 + + + 1996-01 + + + 1996-01Z + + + 1996-00 + + + + + + 1996-01 + + + + 1996-01Z + + + 1996-01+00:00 + + + 1996-01-00:00 + + + 1996-01+01:00 + + + 1996-01-01:00 + + + + + + 1996-01Z + + + + 1996-01+00:00 + + + 1996-01-00:00 + + + 1996-01 + + + 1996-01+01:00 + + + 1996-01-01:00 + + + + + + 1996-01+01:00 + + + + 1996-01 + + + 1996-01Z + + + 1996-01+00:00 + + + 1996-01-00:00 + + + 1996-01-01:00 + + + + + + 1996-01-01:00 + + + + 1996-01 + + + 1996-01Z + + + 1996-01+00:00 + + + 1996-01-00:00 + + + 1996-01+01:00 + + + + + Datatype gYear + + + + + + + + + 2001 + + + 2001Z + + + + + + + 1999 + + + + + 2000 + + + 1999 + + + + + + + 2000 + + + + + 1999 + + + 2000 + + + + + + + 1999+07:00 + + + + + 2000+07:00 + + + 1999+07:00 + + + + + + + 2000+07:00 + + + + + 1999+07:00 + + + 2000+07:00 + + + + + Datatype gMonthDay + + + + + + + + + --12-01 + + + --12-01Z + + + + + + + --12-01 + + + + + --12-04 + + + --12-01 + + + + + + + --12-04 + + + + + --12-01 + + + --12-04 + + + + + + + --11-17 + + + + + --12-04 + + + --11-17 + + + + + + + --12-04 + + + + + --11-17 + + + --12-04 + + + + + Datatype gDay + + + + + + + + + ---20 + + + ---20Z + + + + + + + ---01 + + + + + ---31 + + + ---01 + + + + + + + ---31 + + + + + ---01 + + + ---31 + + + + + Datatype gMonth + + + + + + + + + --12 + + + --01 + + + --01Z + + + --12 + + + ---01 + + + --00 + + + --13 + + + - -13 + + + + + + + --01 + + + + + --12 + + + --01 + + + + + + + --12 + + + + + --01 + + + --12 + + + + + + + --01 + + + + + --02 + + + --01 + + + + + + + --02 + + + + + --01 + + + --02 + + + + + Datatype boolean + + + + + + + + + true + + + false + + + 0 + + + 1 + + + 00 + + + 00 + + + 01 + + + + + + true + + + + 1 + + + false + + + 0 + + + + + + false + + + + 0 + + + true + + + 1 + + + + + Datatype base64Binary + + + + + + + + + AAAA + + + abcd efgh ijkl mnop qrst uvwx yzAB CDEF GHIJ KLMN OPQR +STUV WXYZ 0123 4567 89+/ + + + BA== + + + + + + BA== + + + BQ== + + + Bg== + + + Bw== + + + BBA= + + + BBA= + + + BBE= + + + BBI= + + + BBM= + + + BBQ= + + + BBU= + + + BBY= + + + BBc= + + + BBg= + + + BBk= + + + BBo= + + + BBs= + + + BBw= + + + BB0= + + + BB4= + + + BB8= + + + ==== + + + BB== + + + BBB= + + + B=== + + + B + + + + + + deadbeef + + + + d + e a d +b eef + + + DEADBEEF + + + D + E A D +B EEF + + + + + + DEADBEEF + + + + D + E A D +B EEF + + + deadbeef + + + d + e a d +b eef + + + + + + + 0 + + + + + + + + + + + + 1 + + + + + + + + + + + + 6 + + + + + deadbeef + + + + + + + 7 + + + + + deadbeef + + + + + + + 5 + + + + + deadbeef + + + + + + + 1 + + + + + BA== + + + + + + + 2 + + + + + BA== + + + + + + + 0 + + + + + BA== + + + + + + + 2 + + + + + BBA= + + + + + + + 3 + + + + + BBA= + + + + + + + 1 + + + + + BBA= + + + + + + + 3 + + + + + dead + + + + + + + 4 + + + + + dead + + + + + + + 2 + + + + + dead + + + + + + + 4 + + + + + deadBA== + + + + + + + 5 + + + + + deadBA== + + + + + + + 3 + + + + + deadBA== + + + + + Datatype hexBinary + + + + + + + + + deadbeef + + + + + + 0123456789ABCDEFabcdef + + + 00 00 + + + 00.00 + + + 0G + + + + + + 00 + + + + + 00 + + + + 01 + + + 10 + + + 0a + + + 0A + + + + + + 01 + + + + 00 + + + + 00 + + + + 10 + + + 0a + + + 0A + + + + + + 10 + + + + 00 + + + + 00 + + + + 01 + + + 0a + + + 0A + + + + + + 0a + + + + 0A + + + 00 + + + + 00 + + + + 01 + + + 10 + + + + + + + 0 + + + + + + + + + + + + 1 + + + + + + + + + + + + 1 + + + + + 00 + + + + + + + 2 + + + + + 00 + + + + + + + 0 + + + + + 00 + + + + + + + 2 + + + + + 0000 + + + + + + + 3 + + + + + 0000 + + + + + + + 1 + + + + + 0000 + + + + + + + 2 + + + + + 0000 + + + + + + + 3 + + + + + 0000 + + + + + + + 1 + + + + + 0000 + + + + + + + 2 + + + + + AAAA + + + + + + + 3 + + + + + AAAA + + + + + + + 1 + + + + + AAAA + + + + + Datatype float + + + + + + + + + 1.0 + + + 1. + + + .1 + + + - 1 + + + 1 .0 + + + +INF + + + +NaN + + + -NaN + + + + + + 0 + + + + -0 + + + +0 + + + 0 + + + 0. + + + .0 + + + 0.0 + + + 0e0 + + + 0E0 + + + 0E+0 + + + 0E-0 + + + 1E0 + + + 0.1E1 + + + 10E-1 + + + +1 + + + -1 + + + INF + + + INF + + + -INF + + + -INF + + + NaN + + + NaN + + + + + + 1E0 + + + + 0.1E1 + + + 10E-1 + + + +1 + + + 0 + + + -0 + + + +0 + + + 0 + + + 0. + + + .0 + + + 0.0 + + + 0e0 + + + 0E0 + + + 0E+0 + + + 0E-0 + + + -1 + + + INF + + + INF + + + -INF + + + -INF + + + NaN + + + NaN + + + + + + -1 + + + + 0 + + + -0 + + + +0 + + + 0 + + + 0. + + + .0 + + + 0.0 + + + 0e0 + + + 0E0 + + + 0E+0 + + + 0E-0 + + + 1E0 + + + 0.1E1 + + + 10E-1 + + + +1 + + + INF + + + INF + + + -INF + + + -INF + + + NaN + + + NaN + + + + + + INF + + + + INF + + + 0 + + + -0 + + + +0 + + + 0 + + + 0. + + + .0 + + + 0.0 + + + 0e0 + + + 0E0 + + + 0E+0 + + + 0E-0 + + + 1E0 + + + 0.1E1 + + + 10E-1 + + + +1 + + + -1 + + + -INF + + + -INF + + + NaN + + + NaN + + + + + + -INF + + + + -INF + + + 0 + + + -0 + + + +0 + + + 0 + + + 0. + + + .0 + + + 0.0 + + + 0e0 + + + 0E0 + + + 0E+0 + + + 0E-0 + + + 1E0 + + + 0.1E1 + + + 10E-1 + + + +1 + + + -1 + + + INF + + + INF + + + NaN + + + NaN + + + + + + NaN + + + + NaN + + + 0 + + + -0 + + + +0 + + + 0 + + + 0. + + + .0 + + + 0.0 + + + 0e0 + + + 0E0 + + + 0E+0 + + + 0E-0 + + + 1E0 + + + 0.1E1 + + + 10E-1 + + + +1 + + + -1 + + + INF + + + INF + + + -INF + + + -INF + + + + + + + -INF + + + + + -1000 + + + -INF + + + + + + + -1000 + + + + + -INF + + + -1000 + + + + + + + 1000 + + + + + INF + + + 1000 + + + + + + + INF + + + + + 1000 + + + INF + + + + + + + -1 + + + + + 1 + + + -1 + + + + + + + 1 + + + + + -1 + + + 1 + + + + + + + 0 + + + + + 1 + + + 0 + + + + + + + 1 + + + + + 0 + + + 1 + + + + + + + -1 + + + + + 0 + + + -1 + + + + + + + 0 + + + + + -1 + + + 0 + + + + + Datatype double + + + + + + + + + 1.0 + + + 1. + + + .1 + + + - 1 + + + 1 .0 + + + +INF + + + +NaN + + + -NaN + + + + + + 0 + + + + -0 + + + +0 + + + 0 + + + 0. + + + .0 + + + 0.0 + + + 0e0 + + + 0E0 + + + 0E+0 + + + 0E-0 + + + 1E0 + + + 0.1E1 + + + 10E-1 + + + +1 + + + -1 + + + INF + + + INF + + + -INF + + + -INF + + + NaN + + + NaN + + + + + + 1E0 + + + + 0.1E1 + + + 10E-1 + + + +1 + + + 0 + + + -0 + + + +0 + + + 0 + + + 0. + + + .0 + + + 0.0 + + + 0e0 + + + 0E0 + + + 0E+0 + + + 0E-0 + + + -1 + + + INF + + + INF + + + -INF + + + -INF + + + NaN + + + NaN + + + + + + -1 + + + + 0 + + + -0 + + + +0 + + + 0 + + + 0. + + + .0 + + + 0.0 + + + 0e0 + + + 0E0 + + + 0E+0 + + + 0E-0 + + + 1E0 + + + 0.1E1 + + + 10E-1 + + + +1 + + + INF + + + INF + + + -INF + + + -INF + + + NaN + + + NaN + + + + + + INF + + + + INF + + + 0 + + + -0 + + + +0 + + + 0 + + + 0. + + + .0 + + + 0.0 + + + 0e0 + + + 0E0 + + + 0E+0 + + + 0E-0 + + + 1E0 + + + 0.1E1 + + + 10E-1 + + + +1 + + + -1 + + + -INF + + + -INF + + + NaN + + + NaN + + + + + + -INF + + + + -INF + + + 0 + + + -0 + + + +0 + + + 0 + + + 0. + + + .0 + + + 0.0 + + + 0e0 + + + 0E0 + + + 0E+0 + + + 0E-0 + + + 1E0 + + + 0.1E1 + + + 10E-1 + + + +1 + + + -1 + + + INF + + + INF + + + NaN + + + NaN + + + + + + NaN + + + + NaN + + + 0 + + + -0 + + + +0 + + + 0 + + + 0. + + + .0 + + + 0.0 + + + 0e0 + + + 0E0 + + + 0E+0 + + + 0E-0 + + + 1E0 + + + 0.1E1 + + + 10E-1 + + + +1 + + + -1 + + + INF + + + INF + + + -INF + + + -INF + + + + + + + -INF + + + + + -1000 + + + -INF + + + + + + + -1000 + + + + + -INF + + + -1000 + + + + + + + 1000 + + + + + INF + + + 1000 + + + + + + + INF + + + + + 1000 + + + INF + + + + + + + -1 + + + + + 1 + + + -1 + + + + + + + 1 + + + + + -1 + + + 1 + + + + + + + 0 + + + + + 1 + + + 0 + + + + + + + 1 + + + + + 0 + + + 1 + + + + + + + -1 + + + + + 0 + + + -1 + + + + + + + 0 + + + + + -1 + + + 0 + + + + + Datatype QName + + + + + + + + + foo + + + x:foo + + + y:foo + + + + + + foo + + + + foo + + + x:foo + + + x:foo + + + z:foo + + + x:bar + + + z:bar + + + y:foo + + + y:bar + + + + + + x:foo + + + + x:foo + + + z:foo + + + foo + + + foo + + + x:bar + + + z:bar + + + y:foo + + + y:bar + + + + + + x:bar + + + + z:bar + + + foo + + + foo + + + x:foo + + + x:foo + + + z:foo + + + y:foo + + + y:bar + + + + + + y:foo + + + + foo + + + foo + + + x:foo + + + x:foo + + + z:foo + + + x:bar + + + z:bar + + + y:bar + + + + + + y:bar + + + + foo + + + foo + + + x:foo + + + x:foo + + + z:foo + + + x:bar + + + z:bar + + + y:foo + + + + + Datatype NOTATION + + + + + + + + + foo + + + x:foo + + + y:foo + + + + + Datatype decimal + + + + + + + + + 1.0 + + + 1. + + + .1 + + + +1.0 + + + -1.0 + + + 1 + + + 99999999999999999999999999999999999999999999999999999999999999999 + + + -99999999999999999999999999999999999999999999999999999999999999999 + + + junk + + + --1 + + + ++1 + + + +-1 + + + 1.2. + + + ..1 + + + 1.. + + + 1 .2 + + + 1+ + + + + 1 + + + + + + + 0 + + + + + 1 + + + 0 + + + + + + + 1 + + + + + 0 + + + 1 + + + + + Datatype nonPositiveInteger + + + + + + + + + -1 + + + 0 + + + -0 + + + 1 + + + + + Datatype nonNegativeInteger + + + + + + + + + 1 + + + 0 + + + +1 + + + +0 + + + -1 + + + + + Datatype positiveInteger + + + + + + + + + +1 + + + 1 + + + 0 + + + -1 + + + + + Datatype negativeInteger + + + + + + + + + -1 + + + +1 + + + 0 + + + + + Datatype long + + + + + + + + + 1 + + + +1 + + + 0 + + + 0 + + + 1 2 + + + 9999999999999999999999999999999999999999999999999999999999999999999999999 + + + 9223372036854775807 + + + -9223372036854775808 + + + 9223372036854775808 + + + -9223372036854775809 + + + + + + + + Datatype int + + + + + + + + + 1 + + + 01 + + + 1 + + + 2147483647 + + + -2147483648 + + + 2147483648 + + + -2147483649 + + + 9999999999999999999999999999999999999999999999999999999999999999999999999 + + + + + + 1 + + + + +1 + + + 1 + + + 001 + + + -1 + + + -1 + + + -001 + + + + + + -1 + + + + -1 + + + -001 + + + 1 + + + +1 + + + 1 + + + 001 + + + + + Datatype short + + + + + + + + + 1 + + + 32767 + + + -32768 + + + 32768 + + + -32769 + + + 9999999999999999999999999999999999999999999999999999999999999999999999999 + + + + + + 1 + + + + +1 + + + 1 + + + 001 + + + -1 + + + -1 + + + -001 + + + + + + -1 + + + + -1 + + + -001 + + + 1 + + + +1 + + + 1 + + + 001 + + + + + Datatype byte + + + + + + + + + 1 + + + 127 + + + -128 + + + 128 + + + -129 + + + + + Datatype unsignedLong + + + + + + + + + 1 + + + +1 + + + -1 + + + 0 + + + 18446744073709551615 + + + 18446744073709551616 + + + -1 + + + + + Datatype unsignedInt + + + + + + + + + 1 + + + +1 + + + 0 + + + 4294967295 + + + 4294967296 + + + -1 + + + + + Datatype unsignedShort + + + + + + + + + 1 + + + +1 + + + 0 + + + 65535 + + + 65536 + + + -1 + + + + + Datatype unsignedByte + + + + + + + + + 1 + + + +1 + + + 0 + + + 255 + + + 256 + + + -1 + + + + + Datatype string + + + + + + + + + any thing at all! + + + + + Datatype normalizedString + + + + + + + + + any thing at all! + + + + + Datatype token + + + + + + + + + any thing at all! + + + + + + + + + + + + + + + + + x + + + x + + + + x + + + x + + + x + + + +x + + + x + + + x + + + + x + + + + x y + + + x y + + + + x y + + + x y + + + x y + + + x +y + + + x y + + + x y + + + x y + + + +x y + + + x y + + + x y + + + + x + y + + + + + + + x + + + + x + + + + x + + + x + + + x + + + +x + + + x + + + x + + + + x + + + + + + + + + + + + + + x y + + + x y + + + + x y + + + x y + + + x y + + + x +y + + + x y + + + x y + + + x y + + + +x y + + + x y + + + x y + + + + x + y + + + + + + + x y + + + + x y + + + + x y + + + x y + + + x y + + + x +y + + + x y + + + x y + + + x y + + + +x y + + + x y + + + x y + + + + x + y + + + + + + + + + + + + + + x + + + x + + + + x + + + x + + + x + + + +x + + + x + + + x + + + + x + + + + + + + + 0 + + + + + + + + + + + + 1 + + + + + + + + + + + + 1 + + + + + x + + + + + + + 2 + + + + + x + + + + + + + 0 + + + + + x + + + + + + + 1 + + + + + x + + + + + + + 2 + + + + + x + + + + + + + 0 + + + + + x + + + + + + + 1 + + + + + ð € + + + + + + + 2 + + + + + ð € + + + + + + + 0 + + + + + ð € + + + + + Datatype language + + + + + + + + + en + + + en-UK + + + i-cherokee + + + x-klingon + + + en-uk-scotland + + + en.UK + + + + + Datatype Name + + + + + + + + + foo + + + _0123456789 + + + . + + + : + + + - + + + 1234 + + + foo + + + + + Datatype NCName + + + + + + + + + foo + + + foo:bar + + + 0foo + + + + + + foo + + + + foo + + + FOO + + + FOO + + + + + + FOO + + + + FOO + + + foo + + + foo + + + + + Datatype NMTOKEN + + + + + + + + + foo + + + _ + + + . + + + : + + + - + + + 1234 + + + foo + + + + + + + 3 + + + + + foo + + + + + + + 4 + + + + + foo + + + + + + + 2 + + + + + foo + + + + + + + 2 + + + + + fo + + + + + + + 3 + + + + + fo + + + + + + + 1 + + + + + fo + + + + + + + 1 + + + + + f + + + + + + + 2 + + + + + f + + + + + + + 0 + + + + + f + + + + + Datatype NMTOKENS + + + + + + + + + foo bar + + + + + + 1 2 3 4 + + + + + Datatype ID + + + + + + + + + foobar + + + foo:bar + + + foo bar + + + + + Datatype ENTITY + + + + + + + + + + + + foo + + + foo + + + + + Datatype ENTITIES + + + + + + + + + + + + foo + + + foo bar + + + + diff --git a/testAutomata.c b/testAutomata.c index 2f575ce..6c4de90 100644 --- a/testAutomata.c +++ b/testAutomata.c @@ -70,10 +70,10 @@ testRegexpFile(const char *filename) { continue; len = strlen(expr); len--; - while ((len >= 0) && + while ((len >= 0) && ((expr[len] == '\n') || (expr[len] == '\t') || (expr[len] == '\r') || (expr[len] == ' '))) len--; - expr[len + 1] = 0; + expr[len + 1] = 0; if (len >= 0) { if ((am != NULL) && (expr[0] == 't') && (expr[1] == ' ')) { char *ptr = &expr[2]; diff --git a/testC14N.c b/testC14N.c index f735a29..86e58f2 100644 --- a/testC14N.c +++ b/testC14N.c @@ -3,7 +3,7 @@ * (http://www.w3.org/TR/2001/REC-xml-c14n-20010315) * * See Copyright for the status of this software. - * + * * Author: Aleksey Sanin */ #include "libxml.h" @@ -11,11 +11,13 @@ #include #include +#ifndef STDOUT_FILENO #ifdef HAVE_UNISTD_H #include #else #define STDOUT_FILENO fileno(stdout) #endif /* HAVE_UNISTD_H */ +#endif #ifdef HAVE_STDLIB_H #include #endif @@ -54,11 +56,11 @@ static xmlChar **parse_list(xmlChar *str); /* static void print_xpath_nodes(xmlNodeSetPtr nodes); */ -static int +static int test_c14n(const char* xml_filename, int with_comments, int mode, const char* xpath_filename, xmlChar **inclusive_namespaces) { xmlDocPtr doc; - xmlXPathObjectPtr xpath = NULL; + xmlXPathObjectPtr xpath = NULL; xmlChar *result = NULL; int ret; @@ -74,34 +76,34 @@ test_c14n(const char* xml_filename, int with_comments, int mode, fprintf(stderr, "Error: unable to parse file \"%s\"\n", xml_filename); return(-1); } - + /* * Check the document is of the right kind - */ + */ if(xmlDocGetRootElement(doc) == NULL) { fprintf(stderr,"Error: empty document for file \"%s\"\n", xml_filename); xmlFreeDoc(doc); return(-1); } - /* - * load xpath file if specified + /* + * load xpath file if specified */ if(xpath_filename) { xpath = load_xpath_expr(doc, xpath_filename); if(xpath == NULL) { fprintf(stderr,"Error: unable to evaluate xpath expression\n"); - xmlFreeDoc(doc); + xmlFreeDoc(doc); return(-1); } } /* * Canonical form - */ + */ /* fprintf(stderr,"File \"%s\" loaded: start canonization\n", xml_filename); */ - ret = xmlC14NDocDumpMemory(doc, - (xpath) ? xpath->nodesetval : NULL, + ret = xmlC14NDocDumpMemory(doc, + (xpath) ? xpath->nodesetval : NULL, mode, inclusive_namespaces, with_comments, &result); if(ret >= 0) { @@ -114,25 +116,25 @@ test_c14n(const char* xml_filename, int with_comments, int mode, } else { fprintf(stderr,"Error: failed to canonicalize XML file \"%s\" (ret=%d)\n", xml_filename, ret); if(result != NULL) xmlFree(result); - xmlFreeDoc(doc); + xmlFreeDoc(doc); return(-1); } - + /* * Cleanup - */ + */ if(xpath != NULL) xmlXPathFreeObject(xpath); - xmlFreeDoc(doc); + xmlFreeDoc(doc); return(ret); } int main(int argc, char **argv) { int ret = -1; - + /* * Init libxml - */ + */ xmlInitParser(); LIBXML_TEST_VERSION @@ -152,14 +154,14 @@ int main(int argc, char **argv) { ret = test_c14n(argv[2], 0, XML_C14N_1_1, (argc > 3) ? argv[3] : NULL, NULL); } else if(strcmp(argv[1], "--exc-with-comments") == 0) { xmlChar **list; - + /* load exclusive namespace from command line */ list = (argc > 4) ? parse_list((xmlChar *)argv[4]) : NULL; ret = test_c14n(argv[2], 1, XML_C14N_EXCLUSIVE_1_0, (argc > 3) ? argv[3] : NULL, list); if(list != NULL) xmlFree(list); } else if(strcmp(argv[1], "--exc-without-comments") == 0) { xmlChar **list; - + /* load exclusive namespace from command line */ list = (argc > 4) ? parse_list((xmlChar *)argv[4]) : NULL; ret = test_c14n(argv[2], 0, XML_C14N_EXCLUSIVE_1_0, (argc > 3) ? argv[3] : NULL, list); @@ -169,7 +171,7 @@ int main(int argc, char **argv) { usage(argv[0]); } - /* + /* * Shutdown libxml */ xmlCleanupParser(); @@ -235,13 +237,13 @@ parse_list(xmlChar *str) { static xmlXPathObjectPtr load_xpath_expr (xmlDocPtr parent_doc, const char* filename) { - xmlXPathObjectPtr xpath; + xmlXPathObjectPtr xpath; xmlDocPtr doc; xmlChar *expr; - xmlXPathContextPtr ctx; + xmlXPathContextPtr ctx; xmlNodePtr node; xmlNsPtr ns; - + /* * load XPath expr as a file */ @@ -253,10 +255,10 @@ load_xpath_expr (xmlDocPtr parent_doc, const char* filename) { fprintf(stderr, "Error: unable to parse file \"%s\"\n", filename); return(NULL); } - + /* * Check the document is of the right kind - */ + */ if(xmlDocGetRootElement(doc) == NULL) { fprintf(stderr,"Error: empty document for file \"%s\"\n", filename); xmlFreeDoc(doc); @@ -267,8 +269,8 @@ load_xpath_expr (xmlDocPtr parent_doc, const char* filename) { while(node != NULL && !xmlStrEqual(node->name, (const xmlChar *)"XPath")) { node = node->next; } - - if(node == NULL) { + + if(node == NULL) { fprintf(stderr,"Error: XPath element expected in the file \"%s\"\n", filename); xmlFreeDoc(doc); return(NULL); @@ -284,8 +286,8 @@ load_xpath_expr (xmlDocPtr parent_doc, const char* filename) { ctx = xmlXPathNewContext(parent_doc); if(ctx == NULL) { fprintf(stderr,"Error: unable to create new context\n"); - xmlFree(expr); - xmlFreeDoc(doc); + xmlFree(expr); + xmlFreeDoc(doc); return(NULL); } @@ -296,31 +298,31 @@ load_xpath_expr (xmlDocPtr parent_doc, const char* filename) { while(ns != NULL) { if(xmlXPathRegisterNs(ctx, ns->prefix, ns->href) != 0) { fprintf(stderr,"Error: unable to register NS with prefix=\"%s\" and href=\"%s\"\n", ns->prefix, ns->href); - xmlFree(expr); - xmlXPathFreeContext(ctx); - xmlFreeDoc(doc); + xmlFree(expr); + xmlXPathFreeContext(ctx); + xmlFreeDoc(doc); return(NULL); } ns = ns->next; } - /* + /* * Evaluate xpath */ xpath = xmlXPathEvalExpression(expr, ctx); if(xpath == NULL) { fprintf(stderr,"Error: unable to evaluate xpath expression\n"); - xmlFree(expr); - xmlXPathFreeContext(ctx); - xmlFreeDoc(doc); + xmlFree(expr); + xmlXPathFreeContext(ctx); + xmlFreeDoc(doc); return(NULL); } /* print_xpath_nodes(xpath->nodesetval); */ - xmlFree(expr); - xmlXPathFreeContext(ctx); - xmlFreeDoc(doc); + xmlFree(expr); + xmlXPathFreeContext(ctx); + xmlFreeDoc(doc); return(xpath); } @@ -329,28 +331,28 @@ static void print_xpath_nodes(xmlNodeSetPtr nodes) { xmlNodePtr cur; int i; - - if(nodes == NULL ){ + + if(nodes == NULL ){ fprintf(stderr, "Error: no nodes set defined\n"); return; } - + fprintf(stderr, "Nodes Set:\n-----\n"); for(i = 0; i < nodes->nodeNr; ++i) { if(nodes->nodeTab[i]->type == XML_NAMESPACE_DECL) { xmlNsPtr ns; - + ns = (xmlNsPtr)nodes->nodeTab[i]; cur = (xmlNodePtr)ns->next; - fprintf(stderr, "namespace \"%s\"=\"%s\" for node %s:%s\n", + fprintf(stderr, "namespace \"%s\"=\"%s\" for node %s:%s\n", ns->prefix, ns->href, (cur->ns) ? cur->ns->prefix : BAD_CAST "", cur->name); } else if(nodes->nodeTab[i]->type == XML_ELEMENT_NODE) { - cur = nodes->nodeTab[i]; - fprintf(stderr, "element node \"%s:%s\"\n", + cur = nodes->nodeTab[i]; + fprintf(stderr, "element node \"%s:%s\"\n", (cur->ns) ? cur->ns->prefix : BAD_CAST "", cur->name); } else { - cur = nodes->nodeTab[i]; + cur = nodes->nodeTab[i]; fprintf(stderr, "node \"%s\": type %d\n", cur->name, cur->type); } } diff --git a/testHTML.c b/testHTML.c index f350342..9b42778 100644 --- a/testHTML.c +++ b/testHTML.c @@ -179,7 +179,7 @@ resolveEntityDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar *publicId, const xm { /* xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; */ - + fprintf(stdout, "SAX.resolveEntity("); if (publicId != NULL) fprintf(stdout, "%s", (char *)publicId); @@ -233,8 +233,8 @@ getParameterEntityDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar *name) /** * entityDeclDebug: * @ctxt: An XML parser context - * @name: the entity name - * @type: the entity type + * @name: the entity name + * @type: the entity type * @publicId: The public ID of the entity * @systemId: The system ID of the entity * @content: the entity value (without processing). @@ -252,8 +252,8 @@ entityDeclDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar *name, int type, /** * attributeDeclDebug: * @ctxt: An XML parser context - * @name: the attribute name - * @type: the attribute type + * @name: the attribute name + * @type: the attribute type * * An attribute definition has been parsed */ @@ -269,8 +269,8 @@ attributeDeclDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar *elem, const xmlCha /** * elementDeclDebug: * @ctxt: An XML parser context - * @name: the element name - * @type: the element type + * @name: the element name + * @type: the element type * @content: the element value (without processing). * * An element definition has been parsed @@ -453,7 +453,7 @@ cdataDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar *ch, int len) * @ctxt: An XML parser context * @name: The entity name * - * called when an entity reference is detected. + * called when an entity reference is detected. */ static void referenceDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar *name) @@ -687,7 +687,7 @@ parseSAXFile(char *filename) { fclose(f); } } - } else { + } else { #endif /* LIBXML_PUSH_ENABLED */ doc = htmlSAXParseFile(filename, NULL, emptySAXHandler, NULL); if (doc != NULL) { @@ -746,7 +746,7 @@ parseAndPrintFile(char *filename) { } fclose(f); } - } else { + } else { doc = htmlReadFile(filename, NULL, options); } #else @@ -774,7 +774,7 @@ parseAndPrintFile(char *filename) { /* * print it. */ - if (!noout) { + if (!noout) { #ifdef LIBXML_DEBUG_ENABLED if (!debug) { if (encoding) @@ -789,7 +789,7 @@ parseAndPrintFile(char *filename) { else htmlDocDump(stdout, doc); #endif - } + } #endif /* LIBXML_OUTPUT_ENABLED */ /* @@ -838,13 +838,13 @@ int main(int argc, char **argv) { for (count = 0;count < 100 * repeat;count++) { if (sax) parseSAXFile(argv[i]); - else + else parseAndPrintFile(argv[i]); - } + } } else { if (sax) parseSAXFile(argv[i]); - else + else parseAndPrintFile(argv[i]); } files ++; diff --git a/testModule.c b/testModule.c index 8293c45..e399f5c 100644 --- a/testModule.c +++ b/testModule.c @@ -39,7 +39,7 @@ #endif typedef int (*hello_world_t)(void); - + int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) { xmlChar filename[PATH_MAX]; xmlModulePtr module = NULL; @@ -62,7 +62,7 @@ int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) { fprintf(stderr, "Lookup returned NULL\n"); return(1); } - + (*hello_world)(); xmlModuleClose(module); diff --git a/testRegexp.c b/testRegexp.c index 626536e..21dac94 100644 --- a/testRegexp.c +++ b/testRegexp.c @@ -49,10 +49,10 @@ testRegexpFile(const char *filename) { while (fgets(expression, 4500, input) != NULL) { len = strlen(expression); len--; - while ((len >= 0) && + while ((len >= 0) && ((expression[len] == '\n') || (expression[len] == '\t') || (expression[len] == '\r') || (expression[len] == ' '))) len--; - expression[len + 1] = 0; + expression[len + 1] = 0; if (len >= 0) { if (expression[0] == '#') continue; @@ -103,10 +103,10 @@ runFileTest(xmlExpCtxtPtr ctxt, const char *filename) { while (fgets(expression, 4500, input) != NULL) { len = strlen(expression); len--; - while ((len >= 0) && + while ((len >= 0) && ((expression[len] == '\n') || (expression[len] == '\t') || (expression[len] == '\r') || (expression[len] == ' '))) len--; - expression[len + 1] = 0; + expression[len + 1] = 0; if (len >= 0) { if (expression[0] == '#') continue; @@ -115,7 +115,7 @@ runFileTest(xmlExpCtxtPtr ctxt, const char *filename) { if (expr != NULL) { xmlExpFree(ctxt, expr); - if (xmlExpCtxtNbNodes(ctxt) != 0) + if (xmlExpCtxtNbNodes(ctxt) != 0) printf(" Parse/free of Expression leaked %d\n", xmlExpCtxtNbNodes(ctxt)); expr = NULL; @@ -142,7 +142,7 @@ runFileTest(xmlExpCtxtPtr ctxt, const char *filename) { break; } else { int ret; - + nodes2 = xmlExpCtxtNbNodes(ctxt); ret = xmlExpSubsume(ctxt, expr, sub); @@ -174,14 +174,14 @@ runFileTest(xmlExpCtxtPtr ctxt, const char *filename) { } if (expr != NULL) { xmlExpFree(ctxt, expr); - if (xmlExpCtxtNbNodes(ctxt) != 0) + if (xmlExpCtxtNbNodes(ctxt) != 0) printf(" Parse/free of Expression leaked %d\n", xmlExpCtxtNbNodes(ctxt)); } fclose(input); } -static void +static void testReduce(xmlExpCtxtPtr ctxt, xmlExpNodePtr expr, const char *tst) { xmlBufferPtr xmlExpBuf; xmlExpNodePtr sub, deriv; @@ -213,7 +213,7 @@ testReduce(xmlExpCtxtPtr ctxt, xmlExpNodePtr expr, const char *tst) { xmlExpFree(ctxt, sub); } -static void +static void exprDebug(xmlExpCtxtPtr ctxt, xmlExpNodePtr expr) { xmlBufferPtr xmlExpBuf; xmlExpNodePtr deriv; diff --git a/testRelax.c b/testRelax.c index e18b3c2..8e94a7a 100644 --- a/testRelax.c +++ b/testRelax.c @@ -49,7 +49,7 @@ static int debug = 0; #endif static int noout = 0; static int tree = 0; -#ifdef HAVE_SYS_MMAN_H +#ifdef HAVE_MMAP static int memory = 0; #endif @@ -65,7 +65,7 @@ int main(int argc, char **argv) { debug++; else #endif -#ifdef HAVE_SYS_MMAN_H +#ifdef HAVE_MMAP if ((!strcmp(argv[i], "-memory")) || (!strcmp(argv[i], "--memory"))) { memory++; } else @@ -84,12 +84,12 @@ int main(int argc, char **argv) { if (schema == NULL) { xmlRelaxNGParserCtxtPtr ctxt; -#ifdef HAVE_SYS_MMAN_H +#ifdef HAVE_MMAP if (memory) { int fd; struct stat info; const char *base; - if (stat(argv[i], &info) < 0) + if (stat(argv[i], &info) < 0) break; if ((fd = open(argv[i], O_RDONLY)) < 0) break; @@ -174,7 +174,7 @@ int main(int argc, char **argv) { #endif printf("\t--noout : do not print the result\n"); printf("\t--tree : print the intermediate Relax-NG document tree\n"); -#ifdef HAVE_SYS_MMAN_H +#ifdef HAVE_MMAP printf("\t--memory : test the schemas in memory parsing\n"); #endif } diff --git a/testSAX.c b/testSAX.c index cd16268..81c4b93 100644 --- a/testSAX.c +++ b/testSAX.c @@ -71,7 +71,7 @@ static int timing = 0; * function calls */ -#ifndef HAVE_GETTIMEOFDAY +#ifndef HAVE_GETTIMEOFDAY #ifdef HAVE_SYS_TIMEB_H #ifdef HAVE_SYS_TIME_H #ifdef HAVE_FTIME @@ -368,7 +368,7 @@ resolveEntityDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar *publicId, const xm return(NULL); /* xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; */ - + fprintf(stdout, "SAX.resolveEntity("); if (publicId != NULL) fprintf(stdout, "%s", (char *)publicId); @@ -428,8 +428,8 @@ getParameterEntityDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar *name) /** * entityDeclDebug: * @ctxt: An XML parser context - * @name: the entity name - * @type: the entity type + * @name: the entity name + * @type: the entity type * @publicId: The public ID of the entity * @systemId: The system ID of the entity * @content: the entity value (without processing). @@ -458,8 +458,8 @@ const xmlChar *nullstr = BAD_CAST "(null)"; /** * attributeDeclDebug: * @ctxt: An XML parser context - * @name: the attribute name - * @type: the attribute type + * @name: the attribute name + * @type: the attribute type * * An attribute definition has been parsed */ @@ -483,8 +483,8 @@ attributeDeclDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar * elem, /** * elementDeclDebug: * @ctxt: An XML parser context - * @name: the element name - * @type: the element type + * @name: the element name + * @type: the element type * @content: the element value (without processing). * * An element definition has been parsed @@ -670,7 +670,7 @@ charactersDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar *ch, int len) * @ctxt: An XML parser context * @name: The entity name * - * called when an entity reference is detected. + * called when an entity reference is detected. */ static void referenceDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar *name) @@ -906,7 +906,7 @@ startElementNsDebug(void *ctx ATTRIBUTE_UNUSED, else fprintf(stdout, ", '%s'", (char *) URI); fprintf(stdout, ", %d", nb_namespaces); - + if (namespaces != NULL) { for (i = 0;i < nb_namespaces * 2;i++) { fprintf(stdout, ", xmlns"); @@ -1131,7 +1131,7 @@ int main(int argc, char **argv) { int files = 0; LIBXML_TEST_VERSION /* be safe, plus calls xmlInitParser */ - + for (i = 1; i < argc ; i++) { if ((!strcmp(argv[i], "-debug")) || (!strcmp(argv[i], "--debug"))) debug++; diff --git a/testSchemas.c b/testSchemas.c index 47f8b39..b98e631 100644 --- a/testSchemas.c +++ b/testSchemas.c @@ -49,7 +49,7 @@ static int debug = 0; #endif static int noout = 0; -#ifdef HAVE_SYS_MMAN_H +#ifdef HAVE_MMAP static int memory = 0; #endif @@ -65,7 +65,7 @@ int main(int argc, char **argv) { debug++; else #endif -#ifdef HAVE_SYS_MMAN_H +#ifdef HAVE_MMAP if ((!strcmp(argv[i], "-memory")) || (!strcmp(argv[i], "--memory"))) { memory++; } else @@ -80,12 +80,12 @@ int main(int argc, char **argv) { if (schema == NULL) { xmlSchemaParserCtxtPtr ctxt; -#ifdef HAVE_SYS_MMAN_H +#ifdef HAVE_MMAP if (memory) { int fd; struct stat info; const char *base; - if (stat(argv[i], &info) < 0) + if (stat(argv[i], &info) < 0) break; if ((fd = open(argv[i], O_RDONLY)) < 0) break; @@ -164,7 +164,7 @@ int main(int argc, char **argv) { printf("\t--debug : dump a debug tree of the in-memory document\n"); #endif printf("\t--noout : do not print the result\n"); -#ifdef HAVE_SYS_MMAN_H +#ifdef HAVE_MMAP printf("\t--memory : test the schemas in memory parsing\n"); #endif } diff --git a/testThreadsWin32.c b/testThreadsWin32.c index 6ed702e..3d1a5ba 100644 --- a/testThreadsWin32.c +++ b/testThreadsWin32.c @@ -104,7 +104,7 @@ main() for (i = 0; i < num_threads; i++) { DWORD useless; - tid[i] = CreateThread(NULL, 0, + tid[i] = CreateThread(NULL, 0, thread_specific_data, testfiles[i], 0, &useless); if (tid[i] == NULL) { @@ -113,7 +113,7 @@ main() } } - if (WaitForMultipleObjects (num_threads, tid, TRUE, INFINITE) == WAIT_FAILED) + if (WaitForMultipleObjects (num_threads, tid, TRUE, INFINITE) == WAIT_FAILED) perror ("WaitForMultipleObjects failed"); for (i = 0; i < num_threads; i++) @@ -129,7 +129,7 @@ main() xmlCatalogCleanup(); for (i = 0; i < num_threads; i++) { - if (results[i] != (DWORD) Okay) + if (results[i] != (DWORD) Okay) printf("Thread %d handling %s failed\n", i, testfiles[i]); } } diff --git a/testXPath.c b/testXPath.c index 677419a..ebb9ff7 100644 --- a/testXPath.c +++ b/testXPath.c @@ -51,7 +51,7 @@ static xmlDocPtr document = NULL; /* * Default document */ -static xmlChar buffer[] = +static xmlChar buffer[] = "\n\ \n\ \n\ @@ -79,7 +79,7 @@ static void testXPath(const char *str) { xmlXPathObjectPtr res; xmlXPathContextPtr ctxt; - + #if defined(LIBXML_XPTR_ENABLED) if (xptr) { ctxt = xmlXPtrNewContext(document, NULL, NULL); @@ -96,7 +96,7 @@ testXPath(const char *str) { comp = xmlXPathCompile(BAD_CAST str); if (comp != NULL) { - if (tree) + if (tree) xmlXPathDebugDumpCompExpr(stdout, comp, 0); res = xmlXPathCompiledEval(comp, ctxt); @@ -127,10 +127,10 @@ testXPathFile(const char *filename) { while (fgets(expression, 4500, input) != NULL) { len = strlen(expression); len--; - while ((len >= 0) && + while ((len >= 0) && ((expression[len] == '\n') || (expression[len] == '\t') || (expression[len] == '\r') || (expression[len] == ' '))) len--; - expression[len + 1] = 0; + expression[len + 1] = 0; if (len >= 0) { printf("\n========================\nExpression: %s\n", expression) ; testXPath(expression); @@ -150,7 +150,7 @@ int main(int argc, char **argv) { #if defined(LIBXML_XPTR_ENABLED) if ((!strcmp(argv[i], "-xptr")) || (!strcmp(argv[i], "--xptr"))) xptr++; - else + else #endif if ((!strcmp(argv[i], "-debug")) || (!strcmp(argv[i], "--debug"))) debug++; @@ -172,10 +172,12 @@ int main(int argc, char **argv) { xmlLoadExtDtdDefaultValue |= XML_DETECT_IDS; xmlLoadExtDtdDefaultValue |= XML_COMPLETE_ATTRS; xmlSubstituteEntitiesDefaultValue = 1; +#ifdef LIBXML_SAX1_ENABLED if (nocdata != 0) { xmlDefaultSAXHandlerInit(); xmlDefaultSAXHandler.cdataBlock = NULL; } +#endif if (document == NULL) { if (filename == NULL) document = xmlReadDoc(buffer,NULL,NULL,XML_PARSE_COMPACT); @@ -211,7 +213,7 @@ int main(int argc, char **argv) { printf("\t--file : or\n"); printf("\t-f : read queries from files, args\n"); } - if (document != NULL) + if (document != NULL) xmlFreeDoc(document); xmlCleanupParser(); xmlMemoryDump(); diff --git a/testapi.c b/testapi.c index 4f4b39b..48656b3 100644 --- a/testapi.c +++ b/testapi.c @@ -8,20 +8,14 @@ * daniel@veillard.com */ -#ifdef HAVE_CONFIG_H #include "libxml.h" -#else #include -#endif #include /* for putenv() */ #include #include #include -#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__MINGW32__) -#define snprintf _snprintf -#endif static int testlibxml2(void); static int test_module(const char *module); @@ -107,7 +101,7 @@ get_api_attr(void) { if ((api_root == NULL) || (api_root->type != XML_ELEMENT_NODE)) { get_api_root(); } - if (api_root == NULL) + if (api_root == NULL) return(NULL); if (api_root->properties != NULL) { api_attr = api_root->properties; @@ -127,8 +121,10 @@ int main(int argc, char **argv) { int ret; int blocks, mem; +#ifdef HAVE_PUTENV /* access to the proxy can slow up regression tests a lot */ putenv((char *) "http_proxy="); +#endif memset(chartab, 0, sizeof(chartab)); strncpy((char *) chartab, " chartab\n", 20); @@ -201,7 +197,7 @@ int main(int argc, char **argv) { #include #include -/* +/* We manually define xmlErrMemory because it's normal declaration is "hidden" by #ifdef IN_LIBXML */ @@ -291,7 +287,7 @@ static void des_long(int no ATTRIBUTE_UNUSED, long val ATTRIBUTE_UNUSED, int nr static xmlChar gen_xmlChar(int no, int nr ATTRIBUTE_UNUSED) { if (no == 0) return('a'); if (no == 1) return(' '); - if (no == 2) return((xmlChar) 'ø'); + if (no == 2) return((xmlChar) '\xf8'); return(0); } @@ -399,7 +395,7 @@ static void des_debug_FILE_ptr(int no ATTRIBUTE_UNUSED, FILE *val, int nr ATTRIB static xmlChar *gen_const_xmlChar_ptr(int no, int nr ATTRIBUTE_UNUSED) { if (no == 0) return((xmlChar *) "foo"); if (no == 1) return((xmlChar *) ""); - if (no == 2) return((xmlChar *) "nøne"); + if (no == 2) return((xmlChar *) "n" "\xf8" "ne"); if (no == 3) return((xmlChar *) " 2ab "); return(NULL); } @@ -543,7 +539,7 @@ static void des_xmlNodePtr(int no, xmlNodePtr val, int nr ATTRIBUTE_UNUSED) { #define gen_nb_xmlDtdPtr 3 static xmlDtdPtr gen_xmlDtdPtr(int no, int nr ATTRIBUTE_UNUSED) { - if (no == 0) + if (no == 0) return(xmlNewDtd(NULL, BAD_CAST "dtd", BAD_CAST"foo", BAD_CAST"bar")); if (no == 1) return(get_api_dtd()); return(NULL); @@ -740,7 +736,7 @@ static void des_xmlSchemaValidCtxtPtr(int no ATTRIBUTE_UNUSED, xmlSchemaValidCtx #endif /* LIBXML_SCHEMAS_ENABLED */ #define gen_nb_xmlHashDeallocator 2 -static void +static void test_xmlHashDeallocator(void *payload ATTRIBUTE_UNUSED, xmlChar *name ATTRIBUTE_UNUSED) { } @@ -8251,6 +8247,16 @@ test_xmlDictExists(void) { } +static int +test_xmlDictGetUsage(void) { + int test_ret = 0; + + + /* missing type support */ + return(test_ret); +} + + static int test_xmlDictLookup(void) { int test_ret = 0; @@ -8415,6 +8421,16 @@ test_xmlDictReference(void) { } +static int +test_xmlDictSetLimit(void) { + int test_ret = 0; + + + /* missing type support */ + return(test_ret); +} + + static int test_xmlDictSize(void) { int test_ret = 0; @@ -8475,15 +8491,17 @@ static int test_dict(void) { int test_ret = 0; - if (quiet == 0) printf("Testing dict : 10 of 11 functions ...\n"); + if (quiet == 0) printf("Testing dict : 10 of 13 functions ...\n"); test_ret += test_xmlDictCleanup(); test_ret += test_xmlDictCreate(); test_ret += test_xmlDictCreateSub(); test_ret += test_xmlDictExists(); + test_ret += test_xmlDictGetUsage(); test_ret += test_xmlDictLookup(); test_ret += test_xmlDictOwns(); test_ret += test_xmlDictQLookup(); test_ret += test_xmlDictReference(); + test_ret += test_xmlDictSetLimit(); test_ret += test_xmlDictSize(); test_ret += test_xmlInitializeDict(); @@ -18385,6 +18403,153 @@ test_xmlAttrSerializeTxtContent(void) { } +#define gen_nb_const_xmlBufPtr 1 +static xmlBufPtr gen_const_xmlBufPtr(int no ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) { + return(NULL); +} +static void des_const_xmlBufPtr(int no ATTRIBUTE_UNUSED, const xmlBufPtr val ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) { +} + +static int +test_xmlBufContent(void) { + int test_ret = 0; + + int mem_base; + xmlChar * ret_val; + xmlBufPtr buf; /* the buffer */ + int n_buf; + + for (n_buf = 0;n_buf < gen_nb_const_xmlBufPtr;n_buf++) { + mem_base = xmlMemBlocks(); + buf = gen_const_xmlBufPtr(n_buf, 0); + + ret_val = xmlBufContent((const xmlBufPtr)buf); + desret_xmlChar_ptr(ret_val); + call_tests++; + des_const_xmlBufPtr(n_buf, (const xmlBufPtr)buf, 0); + xmlResetLastError(); + if (mem_base != xmlMemBlocks()) { + printf("Leak of %d blocks found in xmlBufContent", + xmlMemBlocks() - mem_base); + test_ret++; + printf(" %d", n_buf); + printf("\n"); + } + } + function_tests++; + + return(test_ret); +} + + +static int +test_xmlBufEnd(void) { + int test_ret = 0; + + int mem_base; + xmlChar * ret_val; + xmlBufPtr buf; /* the buffer */ + int n_buf; + + for (n_buf = 0;n_buf < gen_nb_const_xmlBufPtr;n_buf++) { + mem_base = xmlMemBlocks(); + buf = gen_const_xmlBufPtr(n_buf, 0); + + ret_val = xmlBufEnd((const xmlBufPtr)buf); + desret_xmlChar_ptr(ret_val); + call_tests++; + des_const_xmlBufPtr(n_buf, (const xmlBufPtr)buf, 0); + xmlResetLastError(); + if (mem_base != xmlMemBlocks()) { + printf("Leak of %d blocks found in xmlBufEnd", + xmlMemBlocks() - mem_base); + test_ret++; + printf(" %d", n_buf); + printf("\n"); + } + } + function_tests++; + + return(test_ret); +} + + +#define gen_nb_xmlBufPtr 1 +static xmlBufPtr gen_xmlBufPtr(int no ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) { + return(NULL); +} +static void des_xmlBufPtr(int no ATTRIBUTE_UNUSED, xmlBufPtr val ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) { +} + +static int +test_xmlBufGetNodeContent(void) { + int test_ret = 0; + + int mem_base; + int ret_val; + xmlBufPtr buf; /* a buffer xmlBufPtr */ + int n_buf; + xmlNodePtr cur; /* the node being read */ + int n_cur; + + for (n_buf = 0;n_buf < gen_nb_xmlBufPtr;n_buf++) { + for (n_cur = 0;n_cur < gen_nb_xmlNodePtr;n_cur++) { + mem_base = xmlMemBlocks(); + buf = gen_xmlBufPtr(n_buf, 0); + cur = gen_xmlNodePtr(n_cur, 1); + + ret_val = xmlBufGetNodeContent(buf, cur); + desret_int(ret_val); + call_tests++; + des_xmlBufPtr(n_buf, buf, 0); + des_xmlNodePtr(n_cur, cur, 1); + xmlResetLastError(); + if (mem_base != xmlMemBlocks()) { + printf("Leak of %d blocks found in xmlBufGetNodeContent", + xmlMemBlocks() - mem_base); + test_ret++; + printf(" %d", n_buf); + printf(" %d", n_cur); + printf("\n"); + } + } + } + function_tests++; + + return(test_ret); +} + + +static int +test_xmlBufNodeDump(void) { + int test_ret = 0; + + + /* missing type support */ + return(test_ret); +} + + +static int +test_xmlBufShrink(void) { + int test_ret = 0; + + + /* missing type support */ + return(test_ret); +} + + +static int +test_xmlBufUse(void) { + int test_ret = 0; + + + /* missing type support */ + return(test_ret); +} + + static int test_xmlBufferAdd(void) { int test_ret = 0; @@ -24015,13 +24180,19 @@ static int test_tree(void) { int test_ret = 0; - if (quiet == 0) printf("Testing tree : 139 of 158 functions ...\n"); + if (quiet == 0) printf("Testing tree : 142 of 164 functions ...\n"); test_ret += test_xmlAddChild(); test_ret += test_xmlAddChildList(); test_ret += test_xmlAddNextSibling(); test_ret += test_xmlAddPrevSibling(); test_ret += test_xmlAddSibling(); test_ret += test_xmlAttrSerializeTxtContent(); + test_ret += test_xmlBufContent(); + test_ret += test_xmlBufEnd(); + test_ret += test_xmlBufGetNodeContent(); + test_ret += test_xmlBufNodeDump(); + test_ret += test_xmlBufShrink(); + test_ret += test_xmlBufUse(); test_ret += test_xmlBufferAdd(); test_ret += test_xmlBufferAddHead(); test_ret += test_xmlBufferCCat(); @@ -28404,6 +28575,50 @@ test_xmlOutputBufferFlush(void) { } +static int +test_xmlOutputBufferGetContent(void) { + int test_ret = 0; + +#if defined(LIBXML_OUTPUT_ENABLED) + int mem_base; + const xmlChar * ret_val; + xmlOutputBufferPtr out; /* an xmlOutputBufferPtr */ + int n_out; + + for (n_out = 0;n_out < gen_nb_xmlOutputBufferPtr;n_out++) { + mem_base = xmlMemBlocks(); + out = gen_xmlOutputBufferPtr(n_out, 0); + + ret_val = xmlOutputBufferGetContent(out); + desret_const_xmlChar_ptr(ret_val); + call_tests++; + des_xmlOutputBufferPtr(n_out, out, 0); + xmlResetLastError(); + if (mem_base != xmlMemBlocks()) { + printf("Leak of %d blocks found in xmlOutputBufferGetContent", + xmlMemBlocks() - mem_base); + test_ret++; + printf(" %d", n_out); + printf("\n"); + } + } + function_tests++; +#endif + + return(test_ret); +} + + +static int +test_xmlOutputBufferGetSize(void) { + int test_ret = 0; + + + /* missing type support */ + return(test_ret); +} + + static int test_xmlOutputBufferWrite(void) { int test_ret = 0; @@ -28948,7 +29163,7 @@ static int test_xmlIO(void) { int test_ret = 0; - if (quiet == 0) printf("Testing xmlIO : 39 of 48 functions ...\n"); + if (quiet == 0) printf("Testing xmlIO : 40 of 50 functions ...\n"); test_ret += test_xmlAllocOutputBuffer(); test_ret += test_xmlAllocParserInputBuffer(); test_ret += test_xmlCheckFilename(); @@ -28974,6 +29189,8 @@ test_xmlIO(void) { test_ret += test_xmlOutputBufferCreateFile(); test_ret += test_xmlOutputBufferCreateFilename(); test_ret += test_xmlOutputBufferFlush(); + test_ret += test_xmlOutputBufferGetContent(); + test_ret += test_xmlOutputBufferGetSize(); test_ret += test_xmlOutputBufferWrite(); test_ret += test_xmlOutputBufferWriteEscape(); test_ret += test_xmlOutputBufferWriteString(); @@ -34603,6 +34820,55 @@ test_xmlSchemaValidateOneElement(void) { } +static int +test_xmlSchemaValidateSetFilename(void) { + int test_ret = 0; + +#if defined(LIBXML_SCHEMAS_ENABLED) + int mem_base; + xmlSchemaValidCtxtPtr vctxt; /* the schema validation context */ + int n_vctxt; + const char * filename; /* the file name */ + int n_filename; + + for (n_vctxt = 0;n_vctxt < gen_nb_xmlSchemaValidCtxtPtr;n_vctxt++) { + for (n_filename = 0;n_filename < gen_nb_filepath;n_filename++) { + mem_base = xmlMemBlocks(); + vctxt = gen_xmlSchemaValidCtxtPtr(n_vctxt, 0); + filename = gen_filepath(n_filename, 1); + + xmlSchemaValidateSetFilename(vctxt, filename); + call_tests++; + des_xmlSchemaValidCtxtPtr(n_vctxt, vctxt, 0); + des_filepath(n_filename, filename, 1); + xmlResetLastError(); + if (mem_base != xmlMemBlocks()) { + printf("Leak of %d blocks found in xmlSchemaValidateSetFilename", + xmlMemBlocks() - mem_base); + test_ret++; + printf(" %d", n_vctxt); + printf(" %d", n_filename); + printf("\n"); + } + } + } + function_tests++; +#endif + + return(test_ret); +} + + +static int +test_xmlSchemaValidateSetLocator(void) { + int test_ret = 0; + + + /* missing type support */ + return(test_ret); +} + + static int test_xmlSchemaValidateStream(void) { int test_ret = 0; @@ -34668,7 +34934,7 @@ static int test_xmlschemas(void) { int test_ret = 0; - if (quiet == 0) printf("Testing xmlschemas : 15 of 25 functions ...\n"); + if (quiet == 0) printf("Testing xmlschemas : 16 of 27 functions ...\n"); test_ret += test_xmlSchemaDump(); test_ret += test_xmlSchemaGetParserErrors(); test_ret += test_xmlSchemaGetValidErrors(); @@ -34690,6 +34956,8 @@ test_xmlschemas(void) { test_ret += test_xmlSchemaValidateDoc(); test_ret += test_xmlSchemaValidateFile(); test_ret += test_xmlSchemaValidateOneElement(); + test_ret += test_xmlSchemaValidateSetFilename(); + test_ret += test_xmlSchemaValidateSetLocator(); test_ret += test_xmlSchemaValidateStream(); if (test_ret != 0) @@ -43570,6 +43838,47 @@ test_xmlTextWriterSetIndentString(void) { } +static int +test_xmlTextWriterSetQuoteChar(void) { + int test_ret = 0; + +#if defined(LIBXML_WRITER_ENABLED) + int mem_base; + int ret_val; + xmlTextWriterPtr writer; /* the xmlTextWriterPtr */ + int n_writer; + xmlChar quotechar; /* the quote character */ + int n_quotechar; + + for (n_writer = 0;n_writer < gen_nb_xmlTextWriterPtr;n_writer++) { + for (n_quotechar = 0;n_quotechar < gen_nb_xmlChar;n_quotechar++) { + mem_base = xmlMemBlocks(); + writer = gen_xmlTextWriterPtr(n_writer, 0); + quotechar = gen_xmlChar(n_quotechar, 1); + + ret_val = xmlTextWriterSetQuoteChar(writer, quotechar); + desret_int(ret_val); + call_tests++; + des_xmlTextWriterPtr(n_writer, writer, 0); + des_xmlChar(n_quotechar, quotechar, 1); + xmlResetLastError(); + if (mem_base != xmlMemBlocks()) { + printf("Leak of %d blocks found in xmlTextWriterSetQuoteChar", + xmlMemBlocks() - mem_base); + test_ret++; + printf(" %d", n_writer); + printf(" %d", n_quotechar); + printf("\n"); + } + } + } + function_tests++; +#endif + + return(test_ret); +} + + static int test_xmlTextWriterStartAttribute(void) { int test_ret = 0; @@ -45432,7 +45741,7 @@ static int test_xmlwriter(void) { int test_ret = 0; - if (quiet == 0) printf("Testing xmlwriter : 51 of 79 functions ...\n"); + if (quiet == 0) printf("Testing xmlwriter : 52 of 80 functions ...\n"); test_ret += test_xmlNewTextWriter(); test_ret += test_xmlNewTextWriterFilename(); test_ret += test_xmlNewTextWriterMemory(); @@ -45452,6 +45761,7 @@ test_xmlwriter(void) { test_ret += test_xmlTextWriterFullEndElement(); test_ret += test_xmlTextWriterSetIndent(); test_ret += test_xmlTextWriterSetIndentString(); + test_ret += test_xmlTextWriterSetQuoteChar(); test_ret += test_xmlTextWriterStartAttribute(); test_ret += test_xmlTextWriterStartAttributeNS(); test_ret += test_xmlTextWriterStartCDATA(); @@ -48815,6 +49125,7 @@ test_xmlXPathNodeSetAdd(void) { #if defined(LIBXML_XPATH_ENABLED) int mem_base; + int ret_val; xmlNodeSetPtr cur; /* the initial node set */ int n_cur; xmlNodePtr val; /* a new xmlNodePtr */ @@ -48826,7 +49137,8 @@ test_xmlXPathNodeSetAdd(void) { cur = gen_xmlNodeSetPtr(n_cur, 0); val = gen_xmlNodePtr(n_val, 1); - xmlXPathNodeSetAdd(cur, val); + ret_val = xmlXPathNodeSetAdd(cur, val); + desret_int(ret_val); call_tests++; des_xmlNodeSetPtr(n_cur, cur, 0); des_xmlNodePtr(n_val, val, 1); @@ -48854,6 +49166,7 @@ test_xmlXPathNodeSetAddNs(void) { #if defined(LIBXML_XPATH_ENABLED) int mem_base; + int ret_val; xmlNodeSetPtr cur; /* the initial node set */ int n_cur; xmlNodePtr node; /* the hosting node */ @@ -48869,7 +49182,8 @@ test_xmlXPathNodeSetAddNs(void) { node = gen_xmlNodePtr(n_node, 1); ns = gen_xmlNsPtr(n_ns, 2); - xmlXPathNodeSetAddNs(cur, node, ns); + ret_val = xmlXPathNodeSetAddNs(cur, node, ns); + desret_int(ret_val); call_tests++; des_xmlNodeSetPtr(n_cur, cur, 0); des_xmlNodePtr(n_node, node, 1); @@ -48900,6 +49214,7 @@ test_xmlXPathNodeSetAddUnique(void) { #if defined(LIBXML_XPATH_ENABLED) int mem_base; + int ret_val; xmlNodeSetPtr cur; /* the initial node set */ int n_cur; xmlNodePtr val; /* a new xmlNodePtr */ @@ -48911,7 +49226,8 @@ test_xmlXPathNodeSetAddUnique(void) { cur = gen_xmlNodeSetPtr(n_cur, 0); val = gen_xmlNodePtr(n_val, 1); - xmlXPathNodeSetAddUnique(cur, val); + ret_val = xmlXPathNodeSetAddUnique(cur, val); + desret_int(ret_val); call_tests++; des_xmlNodeSetPtr(n_cur, cur, 0); des_xmlNodePtr(n_val, val, 1); diff --git a/testchar.c b/testchar.c index 3bfd9c0..0d08792 100644 --- a/testchar.c +++ b/testchar.c @@ -10,6 +10,8 @@ #include #include +#include "buf.h" + int lastError; static void errorHandler(void *unused, xmlErrorPtr err) { @@ -121,7 +123,7 @@ static void testDocumentRangeByte2(xmlParserCtxtPtr ctxt, char *document, * We should see no error in remaning cases */ else if ((lastError != 0) || (res == NULL)) { - fprintf(stderr, + fprintf(stderr, "Failed to parse document for Bytes 0x%02X 0x%02X\n", i, j); } if (res != NULL) @@ -409,7 +411,7 @@ static void testCharRangeByte3(xmlParserCtxtPtr ctxt, char *data) { * We should see no error in remaining cases */ else if ((lastError != 0) || (len != 3)) { - fprintf(stderr, + fprintf(stderr, "Failed to parse char for Bytes 0x%02X 0x%02X 0x%02X\n", i, j, K); } @@ -418,7 +420,7 @@ static void testCharRangeByte3(xmlParserCtxtPtr ctxt, char *data) { * Finally check the value is right */ else if (c != value) { - fprintf(stderr, + fprintf(stderr, "Failed to parse char for Bytes 0x%02X 0x%02X 0x%02X: expect %d got %d\n", i, j, data[2], value, c); } @@ -489,7 +491,7 @@ static void testCharRangeByte4(xmlParserCtxtPtr ctxt, char *data) { * There are values in that range that are not allowed in XML-1.0 */ else if (((value > 0xD7FF) && (value <0xE000)) || - ((value > 0xFFFD) && (value <0x10000)) || + ((value > 0xFFFD) && (value <0x10000)) || (value > 0x10FFFF)) { if (lastError != XML_ERR_INVALID_CHAR) fprintf(stderr, @@ -501,7 +503,7 @@ static void testCharRangeByte4(xmlParserCtxtPtr ctxt, char *data) { * We should see no error in remaining cases */ else if ((lastError != 0) || (len != 4)) { - fprintf(stderr, + fprintf(stderr, "Failed to parse char for Bytes 0x%02X 0x%02X 0x%02X\n", i, j, K); } @@ -510,7 +512,7 @@ static void testCharRangeByte4(xmlParserCtxtPtr ctxt, char *data) { * Finally check the value is right */ else if (c != value) { - fprintf(stderr, + fprintf(stderr, "Failed to parse char for Bytes 0x%02X 0x%02X 0x%02X: expect %d got %d\n", i, j, data[2], value, c); } @@ -558,9 +560,9 @@ static void testCharRanges(void) { } input->filename = NULL; input->buf = buf; - input->base = input->buf->buffer->content; - input->cur = input->buf->buffer->content; - input->end = &input->buf->buffer->content[4]; + input->cur = + input->base = xmlBufContent(input->buf->buffer); + input->end = input->base + 4; inputPush(ctxt, input); printf("testing char range: 1"); diff --git a/testlimits.c b/testlimits.c new file mode 100644 index 0000000..7ee6fb9 --- /dev/null +++ b/testlimits.c @@ -0,0 +1,1634 @@ +/* + * testlimits.c: C program to run libxml2 regression tests checking various + * limits in document size. Will consume a lot of RAM and CPU cycles + * + * To compile on Unixes: + * cc -o testlimits `xml2-config --cflags` testlimits.c `xml2-config --libs` -lpthread + * + * See Copyright for the status of this software. + * + * daniel@veillard.com + */ + +#ifdef HAVE_CONFIG_H +#include "libxml.h" +#else +#include +#endif + +#if !defined(_WIN32) || defined(__CYGWIN__) +#include +#endif +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#ifdef LIBXML_READER_ENABLED +#include +#endif + +static int verbose = 0; +static int tests_quiet = 0; + +/************************************************************************ + * * + * time handling * + * * + ************************************************************************/ + +/* maximum time for one parsing before declaring a timeout */ +#define MAX_TIME 2 /* seconds */ + +static clock_t t0; +int timeout = 0; + +static void reset_timout(void) { + timeout = 0; + t0 = clock(); +} + +static int check_time(void) { + clock_t tnow = clock(); + if (((tnow - t0) / CLOCKS_PER_SEC) > MAX_TIME) { + timeout = 1; + return(0); + } + return(1); +} + +/************************************************************************ + * * + * Huge document generator * + * * + ************************************************************************/ + +#include + +/* + * Huge documents are built using fixed start and end chunks + * and filling between the two an unconventional amount of char data + */ +typedef struct hugeTest hugeTest; +typedef hugeTest *hugeTestPtr; +struct hugeTest { + const char *description; + const char *name; + const char *start; + const char *end; +}; + +static struct hugeTest hugeTests[] = { + { "Huge text node", "huge:textNode", "", "" }, + { "Huge attribute node", "huge:attrNode", "" }, + { "Huge comment node", "huge:commentNode", "" }, + { "Huge PI node", "huge:piNode", "" }, +}; + +static const char *current; +static int rlen; +static unsigned int currentTest = 0; +static int instate = 0; + +/** + * hugeMatch: + * @URI: an URI to test + * + * Check for an huge: query + * + * Returns 1 if yes and 0 if another Input module should be used + */ +static int +hugeMatch(const char * URI) { + if ((URI != NULL) && (!strncmp(URI, "huge:", 5))) + return(1); + return(0); +} + +/** + * hugeOpen: + * @URI: an URI to test + * + * Return a pointer to the huge: query handler, in this example simply + * the current pointer... + * + * Returns an Input context or NULL in case or error + */ +static void * +hugeOpen(const char * URI) { + if ((URI == NULL) || (strncmp(URI, "huge:", 5))) + return(NULL); + + for (currentTest = 0;currentTest < sizeof(hugeTests)/sizeof(hugeTests[0]); + currentTest++) + if (!strcmp(hugeTests[currentTest].name, URI)) + goto found; + + return(NULL); + +found: + rlen = strlen(hugeTests[currentTest].start); + current = hugeTests[currentTest].start; + instate = 0; + return((void *) current); +} + +/** + * hugeClose: + * @context: the read context + * + * Close the huge: query handler + * + * Returns 0 or -1 in case of error + */ +static int +hugeClose(void * context) { + if (context == NULL) return(-1); + fprintf(stderr, "\n"); + return(0); +} + +#define CHUNK 4096 + +char filling[CHUNK + 1]; + +static void fillFilling(void) { + int i; + + for (i = 0;i < CHUNK;i++) { + filling[i] = 'a'; + } + filling[CHUNK] = 0; +} + +size_t maxlen = 64 * 1024 * 1024; +size_t curlen = 0; +size_t dotlen; + +/** + * hugeRead: + * @context: the read context + * @buffer: where to store data + * @len: number of bytes to read + * + * Implement an huge: query read. + * + * Returns the number of bytes read or -1 in case of error + */ +static int +hugeRead(void *context, char *buffer, int len) +{ + if ((context == NULL) || (buffer == NULL) || (len < 0)) + return (-1); + + if (instate == 0) { + if (len >= rlen) { + len = rlen; + rlen = 0; + memcpy(buffer, current, len); + instate = 1; + curlen = 0; + dotlen = maxlen / 10; + } else { + memcpy(buffer, current, len); + rlen -= len; + current += len; + } + } else if (instate == 2) { + if (len >= rlen) { + len = rlen; + rlen = 0; + memcpy(buffer, current, len); + instate = 3; + curlen = 0; + } else { + memcpy(buffer, current, len); + rlen -= len; + current += len; + } + } else if (instate == 1) { + if (len > CHUNK) len = CHUNK; + memcpy(buffer, &filling[0], len); + curlen += len; + if (curlen >= maxlen) { + rlen = strlen(hugeTests[currentTest].end); + current = hugeTests[currentTest].end; + instate = 2; + } else { + if (curlen > dotlen) { + fprintf(stderr, "."); + dotlen += maxlen / 10; + } + } + } else + len = 0; + return (len); +} + +/************************************************************************ + * * + * Crazy document generator * + * * + ************************************************************************/ + +unsigned int crazy_indx = 0; + +const char *crazy = "\ +\ +\ +\ +\ +\ +\ +]>\ +\ +\ +\ +\ +\ +foo\ +\ +\ +\ +"; + +/** + * crazyMatch: + * @URI: an URI to test + * + * Check for a crazy: query + * + * Returns 1 if yes and 0 if another Input module should be used + */ +static int +crazyMatch(const char * URI) { + if ((URI != NULL) && (!strncmp(URI, "crazy:", 6))) + return(1); + return(0); +} + +/** + * crazyOpen: + * @URI: an URI to test + * + * Return a pointer to the crazy: query handler, in this example simply + * the current pointer... + * + * Returns an Input context or NULL in case or error + */ +static void * +crazyOpen(const char * URI) { + if ((URI == NULL) || (strncmp(URI, "crazy:", 6))) + return(NULL); + + if (crazy_indx > strlen(crazy)) + return(NULL); + reset_timout(); + rlen = crazy_indx; + current = &crazy[0]; + instate = 0; + return((void *) current); +} + +/** + * crazyClose: + * @context: the read context + * + * Close the crazy: query handler + * + * Returns 0 or -1 in case of error + */ +static int +crazyClose(void * context) { + if (context == NULL) return(-1); + return(0); +} + + +/** + * crazyRead: + * @context: the read context + * @buffer: where to store data + * @len: number of bytes to read + * + * Implement an crazy: query read. + * + * Returns the number of bytes read or -1 in case of error + */ +static int +crazyRead(void *context, char *buffer, int len) +{ + if ((context == NULL) || (buffer == NULL) || (len < 0)) + return (-1); + + if ((check_time() <= 0) && (instate == 1)) { + fprintf(stderr, "\ntimeout in crazy(%d)\n", crazy_indx); + rlen = strlen(crazy) - crazy_indx; + current = &crazy[crazy_indx]; + instate = 2; + } + if (instate == 0) { + if (len >= rlen) { + len = rlen; + rlen = 0; + memcpy(buffer, current, len); + instate = 1; + curlen = 0; + } else { + memcpy(buffer, current, len); + rlen -= len; + current += len; + } + } else if (instate == 2) { + if (len >= rlen) { + len = rlen; + rlen = 0; + memcpy(buffer, current, len); + instate = 3; + curlen = 0; + } else { + memcpy(buffer, current, len); + rlen -= len; + current += len; + } + } else if (instate == 1) { + if (len > CHUNK) len = CHUNK; + memcpy(buffer, &filling[0], len); + curlen += len; + if (curlen >= maxlen) { + rlen = strlen(crazy) - crazy_indx; + current = &crazy[crazy_indx]; + instate = 2; + } + } else + len = 0; + return (len); +} +/************************************************************************ + * * + * Libxml2 specific routines * + * * + ************************************************************************/ + +static int nb_tests = 0; +static int nb_errors = 0; +static int nb_leaks = 0; +static int extraMemoryFromResolver = 0; + +/* + * We need to trap calls to the resolver to not account memory for the catalog + * which is shared to the current running test. We also don't want to have + * network downloads modifying tests. + */ +static xmlParserInputPtr +testExternalEntityLoader(const char *URL, const char *ID, + xmlParserCtxtPtr ctxt) { + xmlParserInputPtr ret; + int memused = xmlMemUsed(); + + ret = xmlNoNetExternalEntityLoader(URL, ID, ctxt); + extraMemoryFromResolver += xmlMemUsed() - memused; + + return(ret); +} + +/* + * Trapping the error messages at the generic level to grab the equivalent of + * stderr messages on CLI tools. + */ +static char testErrors[32769]; +static int testErrorsSize = 0; + +static void XMLCDECL +channel(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...) { + va_list args; + int res; + + if (testErrorsSize >= 32768) + return; + va_start(args, msg); + res = vsnprintf(&testErrors[testErrorsSize], + 32768 - testErrorsSize, + msg, args); + va_end(args); + if (testErrorsSize + res >= 32768) { + /* buffer is full */ + testErrorsSize = 32768; + testErrors[testErrorsSize] = 0; + } else { + testErrorsSize += res; + } + testErrors[testErrorsSize] = 0; +} + +/** + * xmlParserPrintFileContext: + * @input: an xmlParserInputPtr input + * + * Displays current context within the input content for error tracking + */ + +static void +xmlParserPrintFileContextInternal(xmlParserInputPtr input , + xmlGenericErrorFunc chanl, void *data ) { + const xmlChar *cur, *base; + unsigned int n, col; /* GCC warns if signed, because compared with sizeof() */ + xmlChar content[81]; /* space for 80 chars + line terminator */ + xmlChar *ctnt; + + if (input == NULL) return; + cur = input->cur; + base = input->base; + /* skip backwards over any end-of-lines */ + while ((cur > base) && ((*(cur) == '\n') || (*(cur) == '\r'))) { + cur--; + } + n = 0; + /* search backwards for beginning-of-line (to max buff size) */ + while ((n++ < (sizeof(content)-1)) && (cur > base) && + (*(cur) != '\n') && (*(cur) != '\r')) + cur--; + if ((*(cur) == '\n') || (*(cur) == '\r')) cur++; + /* calculate the error position in terms of the current position */ + col = input->cur - cur; + /* search forward for end-of-line (to max buff size) */ + n = 0; + ctnt = content; + /* copy selected text to our buffer */ + while ((*cur != 0) && (*(cur) != '\n') && + (*(cur) != '\r') && (n < sizeof(content)-1)) { + *ctnt++ = *cur++; + n++; + } + *ctnt = 0; + /* print out the selected text */ + chanl(data ,"%s\n", content); + /* create blank line with problem pointer */ + n = 0; + ctnt = content; + /* (leave buffer space for pointer + line terminator) */ + while ((nfile; + line = err->line; + code = err->code; + domain = err->domain; + level = err->level; + node = err->node; + if ((domain == XML_FROM_PARSER) || (domain == XML_FROM_HTML) || + (domain == XML_FROM_DTD) || (domain == XML_FROM_NAMESPACE) || + (domain == XML_FROM_IO) || (domain == XML_FROM_VALID)) { + ctxt = err->ctxt; + } + str = err->message; + + if (code == XML_ERR_OK) + return; + + if ((node != NULL) && (node->type == XML_ELEMENT_NODE)) + name = node->name; + + /* + * Maintain the compatibility with the legacy error handling + */ + if (ctxt != NULL) { + input = ctxt->input; + if ((input != NULL) && (input->filename == NULL) && + (ctxt->inputNr > 1)) { + cur = input; + input = ctxt->inputTab[ctxt->inputNr - 2]; + } + if (input != NULL) { + if (input->filename) + channel(data, "%s:%d: ", input->filename, input->line); + else if ((line != 0) && (domain == XML_FROM_PARSER)) + channel(data, "Entity: line %d: ", input->line); + } + } else { + if (file != NULL) + channel(data, "%s:%d: ", file, line); + else if ((line != 0) && (domain == XML_FROM_PARSER)) + channel(data, "Entity: line %d: ", line); + } + if (name != NULL) { + channel(data, "element %s: ", name); + } + if (code == XML_ERR_OK) + return; + switch (domain) { + case XML_FROM_PARSER: + channel(data, "parser "); + break; + case XML_FROM_NAMESPACE: + channel(data, "namespace "); + break; + case XML_FROM_DTD: + case XML_FROM_VALID: + channel(data, "validity "); + break; + case XML_FROM_HTML: + channel(data, "HTML parser "); + break; + case XML_FROM_MEMORY: + channel(data, "memory "); + break; + case XML_FROM_OUTPUT: + channel(data, "output "); + break; + case XML_FROM_IO: + channel(data, "I/O "); + break; + case XML_FROM_XINCLUDE: + channel(data, "XInclude "); + break; + case XML_FROM_XPATH: + channel(data, "XPath "); + break; + case XML_FROM_XPOINTER: + channel(data, "parser "); + break; + case XML_FROM_REGEXP: + channel(data, "regexp "); + break; + case XML_FROM_MODULE: + channel(data, "module "); + break; + case XML_FROM_SCHEMASV: + channel(data, "Schemas validity "); + break; + case XML_FROM_SCHEMASP: + channel(data, "Schemas parser "); + break; + case XML_FROM_RELAXNGP: + channel(data, "Relax-NG parser "); + break; + case XML_FROM_RELAXNGV: + channel(data, "Relax-NG validity "); + break; + case XML_FROM_CATALOG: + channel(data, "Catalog "); + break; + case XML_FROM_C14N: + channel(data, "C14N "); + break; + case XML_FROM_XSLT: + channel(data, "XSLT "); + break; + default: + break; + } + if (code == XML_ERR_OK) + return; + switch (level) { + case XML_ERR_NONE: + channel(data, ": "); + break; + case XML_ERR_WARNING: + channel(data, "warning : "); + break; + case XML_ERR_ERROR: + channel(data, "error : "); + break; + case XML_ERR_FATAL: + channel(data, "error : "); + break; + } + if (code == XML_ERR_OK) + return; + if (str != NULL) { + int len; + len = xmlStrlen((const xmlChar *)str); + if ((len > 0) && (str[len - 1] != '\n')) + channel(data, "%s\n", str); + else + channel(data, "%s", str); + } else { + channel(data, "%s\n", "out of memory error"); + } + if (code == XML_ERR_OK) + return; + + if (ctxt != NULL) { + xmlParserPrintFileContextInternal(input, channel, data); + if (cur != NULL) { + if (cur->filename) + channel(data, "%s:%d: \n", cur->filename, cur->line); + else if ((line != 0) && (domain == XML_FROM_PARSER)) + channel(data, "Entity: line %d: \n", cur->line); + xmlParserPrintFileContextInternal(cur, channel, data); + } + } + if ((domain == XML_FROM_XPATH) && (err->str1 != NULL) && + (err->int1 < 100) && + (err->int1 < xmlStrlen((const xmlChar *)err->str1))) { + xmlChar buf[150]; + int i; + + channel(data, "%s\n", err->str1); + for (i=0;i < err->int1;i++) + buf[i] = ' '; + buf[i++] = '^'; + buf[i] = 0; + channel(data, "%s\n", buf); + } +} + +static void +initializeLibxml2(void) { + xmlGetWarningsDefaultValue = 0; + xmlPedanticParserDefault(0); + + xmlMemSetup(xmlMemFree, xmlMemMalloc, xmlMemRealloc, xmlMemoryStrdup); + xmlInitParser(); + xmlSetExternalEntityLoader(testExternalEntityLoader); + xmlSetStructuredErrorFunc(NULL, testStructuredErrorHandler); + /* + * register the new I/O handlers + */ + if (xmlRegisterInputCallbacks(hugeMatch, hugeOpen, + hugeRead, hugeClose) < 0) { + fprintf(stderr, "failed to register Huge handlers\n"); + exit(1); + } + if (xmlRegisterInputCallbacks(crazyMatch, crazyOpen, + crazyRead, crazyClose) < 0) { + fprintf(stderr, "failed to register Crazy handlers\n"); + exit(1); + } +} + +/************************************************************************ + * * + * SAX empty callbacks * + * * + ************************************************************************/ + +unsigned long callbacks = 0; + +/** + * isStandaloneCallback: + * @ctxt: An XML parser context + * + * Is this document tagged standalone ? + * + * Returns 1 if true + */ +static int +isStandaloneCallback(void *ctx ATTRIBUTE_UNUSED) +{ + callbacks++; + return (0); +} + +/** + * hasInternalSubsetCallback: + * @ctxt: An XML parser context + * + * Does this document has an internal subset + * + * Returns 1 if true + */ +static int +hasInternalSubsetCallback(void *ctx ATTRIBUTE_UNUSED) +{ + callbacks++; + return (0); +} + +/** + * hasExternalSubsetCallback: + * @ctxt: An XML parser context + * + * Does this document has an external subset + * + * Returns 1 if true + */ +static int +hasExternalSubsetCallback(void *ctx ATTRIBUTE_UNUSED) +{ + callbacks++; + return (0); +} + +/** + * internalSubsetCallback: + * @ctxt: An XML parser context + * + * Does this document has an internal subset + */ +static void +internalSubsetCallback(void *ctx ATTRIBUTE_UNUSED, + const xmlChar * name ATTRIBUTE_UNUSED, + const xmlChar * ExternalID ATTRIBUTE_UNUSED, + const xmlChar * SystemID ATTRIBUTE_UNUSED) +{ + callbacks++; + return; +} + +/** + * externalSubsetCallback: + * @ctxt: An XML parser context + * + * Does this document has an external subset + */ +static void +externalSubsetCallback(void *ctx ATTRIBUTE_UNUSED, + const xmlChar * name ATTRIBUTE_UNUSED, + const xmlChar * ExternalID ATTRIBUTE_UNUSED, + const xmlChar * SystemID ATTRIBUTE_UNUSED) +{ + callbacks++; + return; +} + +/** + * resolveEntityCallback: + * @ctxt: An XML parser context + * @publicId: The public ID of the entity + * @systemId: The system ID of the entity + * + * Special entity resolver, better left to the parser, it has + * more context than the application layer. + * The default behaviour is to NOT resolve the entities, in that case + * the ENTITY_REF nodes are built in the structure (and the parameter + * values). + * + * Returns the xmlParserInputPtr if inlined or NULL for DOM behaviour. + */ +static xmlParserInputPtr +resolveEntityCallback(void *ctx ATTRIBUTE_UNUSED, + const xmlChar * publicId ATTRIBUTE_UNUSED, + const xmlChar * systemId ATTRIBUTE_UNUSED) +{ + callbacks++; + return (NULL); +} + +/** + * getEntityCallback: + * @ctxt: An XML parser context + * @name: The entity name + * + * Get an entity by name + * + * Returns the xmlParserInputPtr if inlined or NULL for DOM behaviour. + */ +static xmlEntityPtr +getEntityCallback(void *ctx ATTRIBUTE_UNUSED, + const xmlChar * name ATTRIBUTE_UNUSED) +{ + callbacks++; + return (NULL); +} + +/** + * getParameterEntityCallback: + * @ctxt: An XML parser context + * @name: The entity name + * + * Get a parameter entity by name + * + * Returns the xmlParserInputPtr + */ +static xmlEntityPtr +getParameterEntityCallback(void *ctx ATTRIBUTE_UNUSED, + const xmlChar * name ATTRIBUTE_UNUSED) +{ + callbacks++; + return (NULL); +} + + +/** + * entityDeclCallback: + * @ctxt: An XML parser context + * @name: the entity name + * @type: the entity type + * @publicId: The public ID of the entity + * @systemId: The system ID of the entity + * @content: the entity value (without processing). + * + * An entity definition has been parsed + */ +static void +entityDeclCallback(void *ctx ATTRIBUTE_UNUSED, + const xmlChar * name ATTRIBUTE_UNUSED, + int type ATTRIBUTE_UNUSED, + const xmlChar * publicId ATTRIBUTE_UNUSED, + const xmlChar * systemId ATTRIBUTE_UNUSED, + xmlChar * content ATTRIBUTE_UNUSED) +{ + callbacks++; + return; +} + +/** + * attributeDeclCallback: + * @ctxt: An XML parser context + * @name: the attribute name + * @type: the attribute type + * + * An attribute definition has been parsed + */ +static void +attributeDeclCallback(void *ctx ATTRIBUTE_UNUSED, + const xmlChar * elem ATTRIBUTE_UNUSED, + const xmlChar * name ATTRIBUTE_UNUSED, + int type ATTRIBUTE_UNUSED, int def ATTRIBUTE_UNUSED, + const xmlChar * defaultValue ATTRIBUTE_UNUSED, + xmlEnumerationPtr tree ATTRIBUTE_UNUSED) +{ + callbacks++; + return; +} + +/** + * elementDeclCallback: + * @ctxt: An XML parser context + * @name: the element name + * @type: the element type + * @content: the element value (without processing). + * + * An element definition has been parsed + */ +static void +elementDeclCallback(void *ctx ATTRIBUTE_UNUSED, + const xmlChar * name ATTRIBUTE_UNUSED, + int type ATTRIBUTE_UNUSED, + xmlElementContentPtr content ATTRIBUTE_UNUSED) +{ + callbacks++; + return; +} + +/** + * notationDeclCallback: + * @ctxt: An XML parser context + * @name: The name of the notation + * @publicId: The public ID of the entity + * @systemId: The system ID of the entity + * + * What to do when a notation declaration has been parsed. + */ +static void +notationDeclCallback(void *ctx ATTRIBUTE_UNUSED, + const xmlChar * name ATTRIBUTE_UNUSED, + const xmlChar * publicId ATTRIBUTE_UNUSED, + const xmlChar * systemId ATTRIBUTE_UNUSED) +{ + callbacks++; + return; +} + +/** + * unparsedEntityDeclCallback: + * @ctxt: An XML parser context + * @name: The name of the entity + * @publicId: The public ID of the entity + * @systemId: The system ID of the entity + * @notationName: the name of the notation + * + * What to do when an unparsed entity declaration is parsed + */ +static void +unparsedEntityDeclCallback(void *ctx ATTRIBUTE_UNUSED, + const xmlChar * name ATTRIBUTE_UNUSED, + const xmlChar * publicId ATTRIBUTE_UNUSED, + const xmlChar * systemId ATTRIBUTE_UNUSED, + const xmlChar * notationName ATTRIBUTE_UNUSED) +{ + callbacks++; + return; +} + +/** + * setDocumentLocatorCallback: + * @ctxt: An XML parser context + * @loc: A SAX Locator + * + * Receive the document locator at startup, actually xmlDefaultSAXLocator + * Everything is available on the context, so this is useless in our case. + */ +static void +setDocumentLocatorCallback(void *ctx ATTRIBUTE_UNUSED, + xmlSAXLocatorPtr loc ATTRIBUTE_UNUSED) +{ + callbacks++; + return; +} + +/** + * startDocumentCallback: + * @ctxt: An XML parser context + * + * called when the document start being processed. + */ +static void +startDocumentCallback(void *ctx ATTRIBUTE_UNUSED) +{ + callbacks++; + return; +} + +/** + * endDocumentCallback: + * @ctxt: An XML parser context + * + * called when the document end has been detected. + */ +static void +endDocumentCallback(void *ctx ATTRIBUTE_UNUSED) +{ + callbacks++; + return; +} + +#if 0 +/** + * startElementCallback: + * @ctxt: An XML parser context + * @name: The element name + * + * called when an opening tag has been processed. + */ +static void +startElementCallback(void *ctx ATTRIBUTE_UNUSED, + const xmlChar * name ATTRIBUTE_UNUSED, + const xmlChar ** atts ATTRIBUTE_UNUSED) +{ + callbacks++; + return; +} + +/** + * endElementCallback: + * @ctxt: An XML parser context + * @name: The element name + * + * called when the end of an element has been detected. + */ +static void +endElementCallback(void *ctx ATTRIBUTE_UNUSED, + const xmlChar * name ATTRIBUTE_UNUSED) +{ + callbacks++; + return; +} +#endif + +/** + * charactersCallback: + * @ctxt: An XML parser context + * @ch: a xmlChar string + * @len: the number of xmlChar + * + * receiving some chars from the parser. + * Question: how much at a time ??? + */ +static void +charactersCallback(void *ctx ATTRIBUTE_UNUSED, + const xmlChar * ch ATTRIBUTE_UNUSED, + int len ATTRIBUTE_UNUSED) +{ + callbacks++; + return; +} + +/** + * referenceCallback: + * @ctxt: An XML parser context + * @name: The entity name + * + * called when an entity reference is detected. + */ +static void +referenceCallback(void *ctx ATTRIBUTE_UNUSED, + const xmlChar * name ATTRIBUTE_UNUSED) +{ + callbacks++; + return; +} + +/** + * ignorableWhitespaceCallback: + * @ctxt: An XML parser context + * @ch: a xmlChar string + * @start: the first char in the string + * @len: the number of xmlChar + * + * receiving some ignorable whitespaces from the parser. + * Question: how much at a time ??? + */ +static void +ignorableWhitespaceCallback(void *ctx ATTRIBUTE_UNUSED, + const xmlChar * ch ATTRIBUTE_UNUSED, + int len ATTRIBUTE_UNUSED) +{ + callbacks++; + return; +} + +/** + * processingInstructionCallback: + * @ctxt: An XML parser context + * @target: the target name + * @data: the PI data's + * @len: the number of xmlChar + * + * A processing instruction has been parsed. + */ +static void +processingInstructionCallback(void *ctx ATTRIBUTE_UNUSED, + const xmlChar * target ATTRIBUTE_UNUSED, + const xmlChar * data ATTRIBUTE_UNUSED) +{ + callbacks++; + return; +} + +/** + * cdataBlockCallback: + * @ctx: the user data (XML parser context) + * @value: The pcdata content + * @len: the block length + * + * called when a pcdata block has been parsed + */ +static void +cdataBlockCallback(void *ctx ATTRIBUTE_UNUSED, + const xmlChar * value ATTRIBUTE_UNUSED, + int len ATTRIBUTE_UNUSED) +{ + callbacks++; + return; +} + +/** + * commentCallback: + * @ctxt: An XML parser context + * @value: the comment content + * + * A comment has been parsed. + */ +static void +commentCallback(void *ctx ATTRIBUTE_UNUSED, + const xmlChar * value ATTRIBUTE_UNUSED) +{ + callbacks++; + return; +} + +/** + * warningCallback: + * @ctxt: An XML parser context + * @msg: the message to display/transmit + * @...: extra parameters for the message display + * + * Display and format a warning messages, gives file, line, position and + * extra parameters. + */ +static void XMLCDECL +warningCallback(void *ctx ATTRIBUTE_UNUSED, + const char *msg ATTRIBUTE_UNUSED, ...) +{ + callbacks++; + return; +} + +/** + * errorCallback: + * @ctxt: An XML parser context + * @msg: the message to display/transmit + * @...: extra parameters for the message display + * + * Display and format a error messages, gives file, line, position and + * extra parameters. + */ +static void XMLCDECL +errorCallback(void *ctx ATTRIBUTE_UNUSED, const char *msg ATTRIBUTE_UNUSED, + ...) +{ + callbacks++; + return; +} + +/** + * fatalErrorCallback: + * @ctxt: An XML parser context + * @msg: the message to display/transmit + * @...: extra parameters for the message display + * + * Display and format a fatalError messages, gives file, line, position and + * extra parameters. + */ +static void XMLCDECL +fatalErrorCallback(void *ctx ATTRIBUTE_UNUSED, + const char *msg ATTRIBUTE_UNUSED, ...) +{ + return; +} + + +/* + * SAX2 specific callbacks + */ + +/** + * startElementNsCallback: + * @ctxt: An XML parser context + * @name: The element name + * + * called when an opening tag has been processed. + */ +static void +startElementNsCallback(void *ctx ATTRIBUTE_UNUSED, + const xmlChar * localname ATTRIBUTE_UNUSED, + const xmlChar * prefix ATTRIBUTE_UNUSED, + const xmlChar * URI ATTRIBUTE_UNUSED, + int nb_namespaces ATTRIBUTE_UNUSED, + const xmlChar ** namespaces ATTRIBUTE_UNUSED, + int nb_attributes ATTRIBUTE_UNUSED, + int nb_defaulted ATTRIBUTE_UNUSED, + const xmlChar ** attributes ATTRIBUTE_UNUSED) +{ + callbacks++; + return; +} + +/** + * endElementCallback: + * @ctxt: An XML parser context + * @name: The element name + * + * called when the end of an element has been detected. + */ +static void +endElementNsCallback(void *ctx ATTRIBUTE_UNUSED, + const xmlChar * localname ATTRIBUTE_UNUSED, + const xmlChar * prefix ATTRIBUTE_UNUSED, + const xmlChar * URI ATTRIBUTE_UNUSED) +{ + callbacks++; + return; +} + +static xmlSAXHandler callbackSAX2HandlerStruct = { + internalSubsetCallback, + isStandaloneCallback, + hasInternalSubsetCallback, + hasExternalSubsetCallback, + resolveEntityCallback, + getEntityCallback, + entityDeclCallback, + notationDeclCallback, + attributeDeclCallback, + elementDeclCallback, + unparsedEntityDeclCallback, + setDocumentLocatorCallback, + startDocumentCallback, + endDocumentCallback, + NULL, + NULL, + referenceCallback, + charactersCallback, + ignorableWhitespaceCallback, + processingInstructionCallback, + commentCallback, + warningCallback, + errorCallback, + fatalErrorCallback, + getParameterEntityCallback, + cdataBlockCallback, + externalSubsetCallback, + XML_SAX2_MAGIC, + NULL, + startElementNsCallback, + endElementNsCallback, + NULL +}; + +static xmlSAXHandlerPtr callbackSAX2Handler = &callbackSAX2HandlerStruct; + +/************************************************************************ + * * + * The tests front-ends * + * * + ************************************************************************/ + +/** + * readerTest: + * @filename: the file to parse + * @max_size: size of the limit to test + * @options: parsing options + * @fail: should a failure be reported + * + * Parse a memory generated file using SAX + * + * Returns 0 in case of success, an error code otherwise + */ +static int +saxTest(const char *filename, size_t limit, int options, int fail) { + int res = 0; + xmlParserCtxtPtr ctxt; + xmlDocPtr doc; + xmlSAXHandlerPtr old_sax; + + nb_tests++; + + maxlen = limit; + ctxt = xmlNewParserCtxt(); + if (ctxt == NULL) { + fprintf(stderr, "Failed to create parser context\n"); + return(1); + } + old_sax = ctxt->sax; + ctxt->sax = callbackSAX2Handler; + ctxt->userData = NULL; + doc = xmlCtxtReadFile(ctxt, filename, NULL, options); + + if (doc != NULL) { + fprintf(stderr, "SAX parsing generated a document !\n"); + xmlFreeDoc(doc); + res = 0; + } else if (ctxt->wellFormed == 0) { + if (fail) + res = 0; + else { + fprintf(stderr, "Failed to parse '%s' %lu\n", filename, limit); + res = 1; + } + } else { + if (fail) { + fprintf(stderr, "Failed to get failure for '%s' %lu\n", + filename, limit); + res = 1; + } else + res = 0; + } + ctxt->sax = old_sax; + xmlFreeParserCtxt(ctxt); + + return(res); +} +#ifdef LIBXML_READER_ENABLED +/** + * readerTest: + * @filename: the file to parse + * @max_size: size of the limit to test + * @options: parsing options + * @fail: should a failure be reported + * + * Parse a memory generated file using the xmlReader + * + * Returns 0 in case of success, an error code otherwise + */ +static int +readerTest(const char *filename, size_t limit, int options, int fail) { + xmlTextReaderPtr reader; + int res = 0; + int ret; + + nb_tests++; + + maxlen = limit; + reader = xmlReaderForFile(filename , NULL, options); + if (reader == NULL) { + fprintf(stderr, "Failed to open '%s' test\n", filename); + return(1); + } + ret = xmlTextReaderRead(reader); + while (ret == 1) { + ret = xmlTextReaderRead(reader); + } + if (ret != 0) { + if (fail) + res = 0; + else { + if (strncmp(filename, "crazy:", 6) == 0) + fprintf(stderr, "Failed to parse '%s' %u\n", + filename, crazy_indx); + else + fprintf(stderr, "Failed to parse '%s' %lu\n", + filename, limit); + res = 1; + } + } else { + if (fail) { + if (strncmp(filename, "crazy:", 6) == 0) + fprintf(stderr, "Failed to get failure for '%s' %u\n", + filename, crazy_indx); + else + fprintf(stderr, "Failed to get failure for '%s' %lu\n", + filename, limit); + res = 1; + } else + res = 0; + } + if (timeout) + res = 1; + xmlFreeTextReader(reader); + + return(res); +} +#endif + +/************************************************************************ + * * + * Tests descriptions * + * * + ************************************************************************/ + +typedef int (*functest) (const char *filename, size_t limit, int options, + int fail); + +typedef struct limitDesc limitDesc; +typedef limitDesc *limitDescPtr; +struct limitDesc { + const char *name; /* the huge generator name */ + size_t limit; /* the limit to test */ + int options; /* extra parser options */ + int fail; /* whether the test should fail */ +}; + +static limitDesc limitDescriptions[] = { + /* max lenght of a text node in content */ + {"huge:textNode", XML_MAX_TEXT_LENGTH - CHUNK, 0, 0}, + {"huge:textNode", XML_MAX_TEXT_LENGTH + CHUNK, 0, 1}, + {"huge:textNode", XML_MAX_TEXT_LENGTH + CHUNK, XML_PARSE_HUGE, 0}, + /* max lenght of a text node in content */ + {"huge:attrNode", XML_MAX_TEXT_LENGTH - CHUNK, 0, 0}, + {"huge:attrNode", XML_MAX_TEXT_LENGTH + CHUNK, 0, 1}, + {"huge:attrNode", XML_MAX_TEXT_LENGTH + CHUNK, XML_PARSE_HUGE, 0}, + /* max lenght of a comment node */ + {"huge:commentNode", XML_MAX_TEXT_LENGTH - CHUNK, 0, 0}, + {"huge:commentNode", XML_MAX_TEXT_LENGTH + CHUNK, 0, 1}, + {"huge:commentNode", XML_MAX_TEXT_LENGTH + CHUNK, XML_PARSE_HUGE, 0}, + /* max lenght of a PI node */ + {"huge:piNode", XML_MAX_TEXT_LENGTH - CHUNK, 0, 0}, + {"huge:piNode", XML_MAX_TEXT_LENGTH + CHUNK, 0, 1}, + {"huge:piNode", XML_MAX_TEXT_LENGTH + CHUNK, XML_PARSE_HUGE, 0}, +}; + +typedef struct testDesc testDesc; +typedef testDesc *testDescPtr; +struct testDesc { + const char *desc; /* descripton of the test */ + functest func; /* function implementing the test */ +}; + +static +testDesc testDescriptions[] = { + { "Parsing of huge files with the sax parser", saxTest}, +/* { "Parsing of huge files with the tree parser", treeTest}, */ +#ifdef LIBXML_READER_ENABLED + { "Parsing of huge files with the reader", readerTest}, +#endif + {NULL, NULL} +}; + +typedef struct testException testException; +typedef testException *testExceptionPtr; +struct testException { + unsigned int test; /* the parser test number */ + unsigned int limit; /* the limit test number */ + int fail; /* new fail value or -1*/ + size_t size; /* new limit value or 0 */ +}; + +static +testException testExceptions[] = { + /* the SAX parser doesn't hit a limit of XML_MAX_TEXT_LENGTH text nodes */ + { 0, 1, 0, 0}, +}; + +static int +launchTests(testDescPtr tst, unsigned int test) { + int res = 0, err = 0; + unsigned int i, j; + size_t limit; + int fail; + + if (tst == NULL) return(-1); + + for (i = 0;i < sizeof(limitDescriptions)/sizeof(limitDescriptions[0]);i++) { + limit = limitDescriptions[i].limit; + fail = limitDescriptions[i].fail; + /* + * Handle exceptions if any + */ + for (j = 0;j < sizeof(testExceptions)/sizeof(testExceptions[0]);j++) { + if ((testExceptions[j].test == test) && + (testExceptions[j].limit == i)) { + if (testExceptions[j].fail != -1) + fail = testExceptions[j].fail; + if (testExceptions[j].size != 0) + limit = testExceptions[j].size; + break; + } + } + res = tst->func(limitDescriptions[i].name, limit, + limitDescriptions[i].options, fail); + if (res != 0) { + nb_errors++; + err++; + } + } + return(err); +} + + +static int +runtest(unsigned int i) { + int ret = 0, res; + int old_errors, old_tests, old_leaks; + + old_errors = nb_errors; + old_tests = nb_tests; + old_leaks = nb_leaks; + if ((tests_quiet == 0) && (testDescriptions[i].desc != NULL)) + printf("## %s\n", testDescriptions[i].desc); + res = launchTests(&testDescriptions[i], i); + if (res != 0) + ret++; + if (verbose) { + if ((nb_errors == old_errors) && (nb_leaks == old_leaks)) + printf("Ran %d tests, no errors\n", nb_tests - old_tests); + else + printf("Ran %d tests, %d errors, %d leaks\n", + nb_tests - old_tests, + nb_errors - old_errors, + nb_leaks - old_leaks); + } + return(ret); +} + +static int +launchCrazySAX(unsigned int test, int fail) { + int res = 0, err = 0; + + crazy_indx = test; + + res = saxTest("crazy::test", XML_MAX_LOOKUP_LIMIT - CHUNK, 0, fail); + if (res != 0) { + nb_errors++; + err++; + } + if (tests_quiet == 0) + fprintf(stderr, "%c", crazy[test]); + + return(err); +} + +static int +launchCrazy(unsigned int test, int fail) { + int res = 0, err = 0; + + crazy_indx = test; + + res = readerTest("crazy::test", XML_MAX_LOOKUP_LIMIT - CHUNK, 0, fail); + if (res != 0) { + nb_errors++; + err++; + } + if (tests_quiet == 0) + fprintf(stderr, "%c", crazy[test]); + + return(err); +} + +static int get_crazy_fail(int test) { + /* + * adding 1000000 of character 'a' leads to parser failure mostly + * everywhere except in those special spots. Need to be updated + * each time crazy is updated + */ + int fail = 1; + if ((test == 44) || /* PI in Misc */ + ((test >= 50) && (test <= 55)) || /* Comment in Misc */ + (test == 79) || /* PI in DTD */ + ((test >= 85) && (test <= 90)) || /* Comment in DTD */ + (test == 154) || /* PI in Misc */ + ((test >= 160) && (test <= 165)) || /* Comment in Misc */ + ((test >= 178) && (test <= 181)) || /* attribute value */ + (test == 183) || /* Text */ + (test == 189) || /* PI in Content */ + (test == 191) || /* Text */ + ((test >= 195) && (test <= 200)) || /* Comment in Content */ + ((test >= 203) && (test <= 206)) || /* Text */ + (test == 215) || (test == 216) || /* in CDATA */ + (test == 219) || /* Text */ + (test == 231) || /* PI in Misc */ + ((test >= 237) && (test <= 242))) /* Comment in Misc */ + fail = 0; + return(fail); +} + +static int +runcrazy(void) { + int ret = 0, res = 0; + int old_errors, old_tests, old_leaks; + unsigned int i; + + old_errors = nb_errors; + old_tests = nb_tests; + old_leaks = nb_leaks; + if (tests_quiet == 0) { + printf("## Crazy tests on reader\n"); + } + for (i = 0;i < strlen(crazy);i++) { + res += launchCrazy(i, get_crazy_fail(i)); + if (res != 0) + ret++; + } + if (tests_quiet == 0) { + printf("\n## Crazy tests on SAX\n"); + } + for (i = 0;i < strlen(crazy);i++) { + res += launchCrazySAX(i, get_crazy_fail(i)); + if (res != 0) + ret++; + } + if (tests_quiet == 0) + fprintf(stderr, "\n"); + if (verbose) { + if ((nb_errors == old_errors) && (nb_leaks == old_leaks)) + printf("Ran %d tests, no errors\n", nb_tests - old_tests); + else + printf("Ran %d tests, %d errors, %d leaks\n", + nb_tests - old_tests, + nb_errors - old_errors, + nb_leaks - old_leaks); + } + return(ret); +} + + +int +main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) { + int i, a, ret = 0; + int subset = 0; + + fillFilling(); + initializeLibxml2(); + + for (a = 1; a < argc;a++) { + if (!strcmp(argv[a], "-v")) + verbose = 1; + else if (!strcmp(argv[a], "-quiet")) + tests_quiet = 1; + else if (!strcmp(argv[a], "-crazy")) + subset = 1; + } + if (subset == 0) { + for (i = 0; testDescriptions[i].func != NULL; i++) { + ret += runtest(i); + } + } + ret += runcrazy(); + if ((nb_errors == 0) && (nb_leaks == 0)) { + ret = 0; + printf("Total %d tests, no errors\n", + nb_tests); + } else { + ret = 1; + printf("Total %d tests, %d errors, %d leaks\n", + nb_tests, nb_errors, nb_leaks); + } + xmlCleanupParser(); + xmlMemoryDump(); + + return(ret); +} diff --git a/testrecurse.c b/testrecurse.c index bdc7c30..e5d5d1b 100644 --- a/testrecurse.c +++ b/testrecurse.c @@ -10,11 +10,8 @@ * daniel@veillard.com */ -#ifdef HAVE_CONFIG_H #include "libxml.h" -#else #include -#endif #if !defined(_WIN32) || defined(__CYGWIN__) #include @@ -149,10 +146,6 @@ static void globfree(glob_t *pglob) { } } -#if !defined(__MINGW32__) -#define vsnprintf _vsnprintf -#define snprintf _snprintf -#endif #else #include #endif @@ -687,12 +680,10 @@ recursiveDetectTest(const char *filename, xmlDocPtr doc; xmlParserCtxtPtr ctxt; int res = 0; - int mem; nb_tests++; ctxt = xmlNewParserCtxt(); - mem = xmlMemUsed(); /* * base of the test, parse with the old API */ @@ -728,12 +719,10 @@ notRecursiveDetectTest(const char *filename, xmlDocPtr doc; xmlParserCtxtPtr ctxt; int res = 0; - int mem; nb_tests++; ctxt = xmlNewParserCtxt(); - mem = xmlMemUsed(); /* * base of the test, parse with the old API */ diff --git a/threads.c b/threads.c index 1eeac0e..f206149 100644 --- a/threads.c +++ b/threads.c @@ -439,7 +439,7 @@ __xmlGlobalInitMutexLock(void) /* Make sure the global init lock is initialized and then lock it. */ #ifdef HAVE_PTHREAD_H /* The mutex is statically initialized, so we just lock it. */ - if (pthread_mutex_lock) + if (pthread_mutex_lock != NULL) pthread_mutex_lock(&global_init_lock); #elif defined HAVE_WIN32_THREADS LPCRITICAL_SECTION cs; @@ -509,7 +509,7 @@ void __xmlGlobalInitMutexUnlock(void) { #ifdef HAVE_PTHREAD_H - if (pthread_mutex_unlock) + if (pthread_mutex_unlock != NULL) pthread_mutex_unlock(&global_init_lock); #elif defined HAVE_WIN32_THREADS if (global_init_lock != NULL) { @@ -915,6 +915,7 @@ xmlCleanupThreads(void) #ifdef HAVE_PTHREAD_H if ((libxml_is_threaded) && (pthread_key_delete != NULL)) pthread_key_delete(globalkey); + once_control = PTHREAD_ONCE_INIT; #elif defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL)) if (globalkey != TLS_OUT_OF_INDEXES) { xmlGlobalStateCleanupHelperParams *p; diff --git a/timsort.h b/timsort.h new file mode 100644 index 0000000..95f412b --- /dev/null +++ b/timsort.h @@ -0,0 +1,506 @@ +/* + * taken from https://github.com/swenson/sort + * Kept as is for the moment to be able to apply upstream patches for that + * code, currently used only to speed up XPath node sorting, see xpath.c + */ + +/* + * All code in this header, unless otherwise specified, is hereby licensed under the MIT Public License: + +Copyright (c) 2010 Christopher Swenson + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#include +#include +#include +#ifdef HAVE_STDINT_H +#include +#else +#ifdef HAVE_INTTYPES_H +#include +#elif defined(WIN32) +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +#endif +#endif + +#ifndef MAX +#define MAX(x,y) (((x) > (y) ? (x) : (y))) +#endif +#ifndef MIN +#define MIN(x,y) (((x) < (y) ? (x) : (y))) +#endif + +int compute_minrun(uint64_t); + +#ifndef CLZ +#ifdef __GNUC__ +#define CLZ __builtin_clzll +#else + +int clzll(uint64_t); + +/* adapted from Hacker's Delight */ +int clzll(uint64_t x) /* {{{ */ +{ + int n; + + if (x == 0) return(64); + n = 0; + if (x <= 0x00000000FFFFFFFFL) {n = n + 32; x = x << 32;} + if (x <= 0x0000FFFFFFFFFFFFL) {n = n + 16; x = x << 16;} + if (x <= 0x00FFFFFFFFFFFFFFL) {n = n + 8; x = x << 8;} + if (x <= 0x0FFFFFFFFFFFFFFFL) {n = n + 4; x = x << 4;} + if (x <= 0x3FFFFFFFFFFFFFFFL) {n = n + 2; x = x << 2;} + if (x <= 0x7FFFFFFFFFFFFFFFL) {n = n + 1;} + return n; +} +/* }}} */ + +#define CLZ clzll +#endif +#endif + +int compute_minrun(const uint64_t size) /* {{{ */ +{ + const int top_bit = 64 - CLZ(size); + const int shift = MAX(top_bit, 6) - 6; + const int minrun = size >> shift; + const uint64_t mask = (1ULL << shift) - 1; + if (mask & size) return minrun + 1; + return minrun; +} +/* }}} */ + +#ifndef SORT_NAME +#error "Must declare SORT_NAME" +#endif + +#ifndef SORT_TYPE +#error "Must declare SORT_TYPE" +#endif + +#ifndef SORT_CMP +#define SORT_CMP(x, y) ((x) < (y) ? -1 : ((x) == (y) ? 0 : 1)) +#endif + + +#define SORT_SWAP(x,y) {SORT_TYPE __SORT_SWAP_t = (x); (x) = (y); (y) = __SORT_SWAP_t;} + +#define SORT_CONCAT(x, y) x ## _ ## y +#define SORT_MAKE_STR1(x, y) SORT_CONCAT(x,y) +#define SORT_MAKE_STR(x) SORT_MAKE_STR1(SORT_NAME,x) + +#define BINARY_INSERTION_FIND SORT_MAKE_STR(binary_insertion_find) +#define BINARY_INSERTION_SORT_START SORT_MAKE_STR(binary_insertion_sort_start) +#define BINARY_INSERTION_SORT SORT_MAKE_STR(binary_insertion_sort) +#define REVERSE_ELEMENTS SORT_MAKE_STR(reverse_elements) +#define COUNT_RUN SORT_MAKE_STR(count_run) +#define CHECK_INVARIANT SORT_MAKE_STR(check_invariant) +#define TIM_SORT SORT_MAKE_STR(tim_sort) +#define TIM_SORT_RESIZE SORT_MAKE_STR(tim_sort_resize) +#define TIM_SORT_MERGE SORT_MAKE_STR(tim_sort_merge) +#define TIM_SORT_COLLAPSE SORT_MAKE_STR(tim_sort_collapse) + +#define TIM_SORT_RUN_T SORT_MAKE_STR(tim_sort_run_t) +#define TEMP_STORAGE_T SORT_MAKE_STR(temp_storage_t) + +typedef struct { + int64_t start; + int64_t length; +} TIM_SORT_RUN_T; + +void BINARY_INSERTION_SORT(SORT_TYPE *dst, const size_t size); +void TIM_SORT(SORT_TYPE *dst, const size_t size); + +/* Function used to do a binary search for binary insertion sort */ +static int64_t BINARY_INSERTION_FIND(SORT_TYPE *dst, const SORT_TYPE x, const size_t size) +{ + int64_t l, c, r; + SORT_TYPE lx; + SORT_TYPE cx; + l = 0; + r = size - 1; + c = r >> 1; + lx = dst[l]; + + /* check for beginning conditions */ + if (SORT_CMP(x, lx) < 0) + return 0; + else if (SORT_CMP(x, lx) == 0) + { + int64_t i = 1; + while (SORT_CMP(x, dst[i]) == 0) i++; + return i; + } + + cx = dst[c]; + while (1) + { + const int val = SORT_CMP(x, cx); + if (val < 0) + { + if (c - l <= 1) return c; + r = c; + } + else if (val > 0) + { + if (r - c <= 1) return c + 1; + l = c; + lx = cx; + } + else + { + do + { + cx = dst[++c]; + } while (SORT_CMP(x, cx) == 0); + return c; + } + c = l + ((r - l) >> 1); + cx = dst[c]; + } +} + +/* Binary insertion sort, but knowing that the first "start" entries are sorted. Used in timsort. */ +static void BINARY_INSERTION_SORT_START(SORT_TYPE *dst, const size_t start, const size_t size) +{ + int64_t i; + for (i = start; i < (int64_t) size; i++) + { + int64_t j; + SORT_TYPE x; + int64_t location; + /* If this entry is already correct, just move along */ + if (SORT_CMP(dst[i - 1], dst[i]) <= 0) continue; + + /* Else we need to find the right place, shift everything over, and squeeze in */ + x = dst[i]; + location = BINARY_INSERTION_FIND(dst, x, i); + for (j = i - 1; j >= location; j--) + { + dst[j + 1] = dst[j]; + } + dst[location] = x; + } +} + +/* Binary insertion sort */ +void BINARY_INSERTION_SORT(SORT_TYPE *dst, const size_t size) +{ + BINARY_INSERTION_SORT_START(dst, 1, size); +} + +/* timsort implementation, based on timsort.txt */ + +static void REVERSE_ELEMENTS(SORT_TYPE *dst, int64_t start, int64_t end) +{ + while (1) + { + if (start >= end) return; + SORT_SWAP(dst[start], dst[end]); + start++; + end--; + } +} + +static int64_t COUNT_RUN(SORT_TYPE *dst, const int64_t start, const size_t size) +{ + int64_t curr; + if (size - start == 1) return 1; + if (start >= (int64_t) size - 2) + { + if (SORT_CMP(dst[size - 2], dst[size - 1]) > 0) + SORT_SWAP(dst[size - 2], dst[size - 1]); + return 2; + } + + curr = start + 2; + + if (SORT_CMP(dst[start], dst[start + 1]) <= 0) + { + /* increasing run */ + while (1) + { + if (curr == (int64_t) size - 1) break; + if (SORT_CMP(dst[curr - 1], dst[curr]) > 0) break; + curr++; + } + return curr - start; + } + else + { + /* decreasing run */ + while (1) + { + if (curr == (int64_t) size - 1) break; + if (SORT_CMP(dst[curr - 1], dst[curr]) <= 0) break; + curr++; + } + /* reverse in-place */ + REVERSE_ELEMENTS(dst, start, curr - 1); + return curr - start; + } +} + +#define PUSH_NEXT() do {\ +len = COUNT_RUN(dst, curr, size);\ +run = minrun;\ +if (run < minrun) run = minrun;\ +if (run > (int64_t) size - curr) run = size - curr;\ +if (run > len)\ +{\ + BINARY_INSERTION_SORT_START(&dst[curr], len, run);\ + len = run;\ +}\ +{\ +run_stack[stack_curr].start = curr;\ +run_stack[stack_curr].length = len;\ +stack_curr++;\ +}\ +curr += len;\ +if (curr == (int64_t) size)\ +{\ + /* finish up */ \ + while (stack_curr > 1) \ + { \ + TIM_SORT_MERGE(dst, run_stack, stack_curr, store); \ + run_stack[stack_curr - 2].length += run_stack[stack_curr - 1].length; \ + stack_curr--; \ + } \ + if (store->storage != NULL)\ + {\ + free(store->storage);\ + store->storage = NULL;\ + }\ + return;\ +}\ +}\ +while (0) + +static int CHECK_INVARIANT(TIM_SORT_RUN_T *stack, const int stack_curr) +{ + int64_t A, B, C; + if (stack_curr < 2) return 1; + if (stack_curr == 2) + { + const int64_t A1 = stack[stack_curr - 2].length; + const int64_t B1 = stack[stack_curr - 1].length; + if (A1 <= B1) return 0; + return 1; + } + A = stack[stack_curr - 3].length; + B = stack[stack_curr - 2].length; + C = stack[stack_curr - 1].length; + if ((A <= B + C) || (B <= C)) return 0; + return 1; +} + +typedef struct { + size_t alloc; + SORT_TYPE *storage; +} TEMP_STORAGE_T; + + +static void TIM_SORT_RESIZE(TEMP_STORAGE_T *store, const size_t new_size) +{ + if (store->alloc < new_size) + { + SORT_TYPE *tempstore = (SORT_TYPE *)realloc(store->storage, new_size * sizeof(SORT_TYPE)); + if (tempstore == NULL) + { + fprintf(stderr, "Error allocating temporary storage for tim sort: need %lu bytes", sizeof(SORT_TYPE) * new_size); + exit(1); + } + store->storage = tempstore; + store->alloc = new_size; + } +} + +static void TIM_SORT_MERGE(SORT_TYPE *dst, const TIM_SORT_RUN_T *stack, const int stack_curr, TEMP_STORAGE_T *store) +{ + const int64_t A = stack[stack_curr - 2].length; + const int64_t B = stack[stack_curr - 1].length; + const int64_t curr = stack[stack_curr - 2].start; + SORT_TYPE *storage; + int64_t i, j, k; + + TIM_SORT_RESIZE(store, MIN(A, B)); + storage = store->storage; + + /* left merge */ + if (A < B) + { + memcpy(storage, &dst[curr], A * sizeof(SORT_TYPE)); + i = 0; + j = curr + A; + + for (k = curr; k < curr + A + B; k++) + { + if ((i < A) && (j < curr + A + B)) + { + if (SORT_CMP(storage[i], dst[j]) <= 0) + dst[k] = storage[i++]; + else + dst[k] = dst[j++]; + } + else if (i < A) + { + dst[k] = storage[i++]; + } + else + dst[k] = dst[j++]; + } + } + /* right merge */ + else + { + memcpy(storage, &dst[curr + A], B * sizeof(SORT_TYPE)); + i = B - 1; + j = curr + A - 1; + + for (k = curr + A + B - 1; k >= curr; k--) + { + if ((i >= 0) && (j >= curr)) + { + if (SORT_CMP(dst[j], storage[i]) > 0) + dst[k] = dst[j--]; + else + dst[k] = storage[i--]; + } + else if (i >= 0) + dst[k] = storage[i--]; + else + dst[k] = dst[j--]; + } + } +} + +static int TIM_SORT_COLLAPSE(SORT_TYPE *dst, TIM_SORT_RUN_T *stack, int stack_curr, TEMP_STORAGE_T *store, const size_t size) +{ + while (1) + { + int64_t A, B, C; + /* if the stack only has one thing on it, we are done with the collapse */ + if (stack_curr <= 1) break; + /* if this is the last merge, just do it */ + if ((stack_curr == 2) && + (stack[0].length + stack[1].length == (int64_t) size)) + { + TIM_SORT_MERGE(dst, stack, stack_curr, store); + stack[0].length += stack[1].length; + stack_curr--; + break; + } + /* check if the invariant is off for a stack of 2 elements */ + else if ((stack_curr == 2) && (stack[0].length <= stack[1].length)) + { + TIM_SORT_MERGE(dst, stack, stack_curr, store); + stack[0].length += stack[1].length; + stack_curr--; + break; + } + else if (stack_curr == 2) + break; + + A = stack[stack_curr - 3].length; + B = stack[stack_curr - 2].length; + C = stack[stack_curr - 1].length; + + /* check first invariant */ + if (A <= B + C) + { + if (A < C) + { + TIM_SORT_MERGE(dst, stack, stack_curr - 1, store); + stack[stack_curr - 3].length += stack[stack_curr - 2].length; + stack[stack_curr - 2] = stack[stack_curr - 1]; + stack_curr--; + } + else + { + TIM_SORT_MERGE(dst, stack, stack_curr, store); + stack[stack_curr - 2].length += stack[stack_curr - 1].length; + stack_curr--; + } + } + /* check second invariant */ + else if (B <= C) + { + TIM_SORT_MERGE(dst, stack, stack_curr, store); + stack[stack_curr - 2].length += stack[stack_curr - 1].length; + stack_curr--; + } + else + break; + } + return stack_curr; +} + +void TIM_SORT(SORT_TYPE *dst, const size_t size) +{ + int minrun; + TEMP_STORAGE_T _store, *store; + TIM_SORT_RUN_T run_stack[128]; + int stack_curr = 0; + int64_t len, run; + int64_t curr = 0; + + if (size < 64) + { + BINARY_INSERTION_SORT(dst, size); + return; + } + + /* compute the minimum run length */ + minrun = compute_minrun(size); + + /* temporary storage for merges */ + store = &_store; + store->alloc = 0; + store->storage = NULL; + + PUSH_NEXT(); + PUSH_NEXT(); + PUSH_NEXT(); + + while (1) + { + if (!CHECK_INVARIANT(run_stack, stack_curr)) + { + stack_curr = TIM_SORT_COLLAPSE(dst, run_stack, stack_curr, store, size); + continue; + } + PUSH_NEXT(); + } +} + +#undef SORT_CONCAT +#undef SORT_MAKE_STR1 +#undef SORT_MAKE_STR +#undef SORT_NAME +#undef SORT_TYPE +#undef SORT_CMP +#undef TEMP_STORAGE_T +#undef TIM_SORT_RUN_T +#undef PUSH_NEXT +#undef SORT_SWAP +#undef SORT_CONCAT +#undef SORT_MAKE_STR1 +#undef SORT_MAKE_STR +#undef BINARY_INSERTION_FIND +#undef BINARY_INSERTION_SORT_START +#undef BINARY_INSERTION_SORT +#undef REVERSE_ELEMENTS +#undef COUNT_RUN +#undef TIM_SORT +#undef TIM_SORT_RESIZE +#undef TIM_SORT_COLLAPSE +#undef TIM_SORT_RUN_T +#undef TEMP_STORAGE_T diff --git a/tree.c b/tree.c index 8baae3d..145a689 100644 --- a/tree.c +++ b/tree.c @@ -41,6 +41,9 @@ #include #endif +#include "buf.h" +#include "save.h" + int __xmlRegisterCallbacks = 0; /************************************************************************ @@ -1265,13 +1268,13 @@ xmlStringLenGetNodeList(xmlDocPtr doc, const xmlChar *value, int len) { const xmlChar *cur = value, *end = cur + len; const xmlChar *q; xmlEntityPtr ent; - xmlBufferPtr buffer; + xmlBufPtr buf; if (value == NULL) return(NULL); - buffer = xmlBufferCreateSize(0); - if (buffer == NULL) return(NULL); - xmlBufferSetAllocationScheme(buffer, XML_BUFFER_ALLOC_HYBRID); + buf = xmlBufCreateSize(0); + if (buf == NULL) return(NULL); + xmlBufSetAllocationScheme(buf, XML_BUFFER_ALLOC_HYBRID); q = cur; while ((cur < end) && (*cur != 0)) { @@ -1283,7 +1286,7 @@ xmlStringLenGetNodeList(xmlDocPtr doc, const xmlChar *value, int len) { * Save the current text. */ if (cur != q) { - if (xmlBufferAdd(buffer, q, cur - q)) + if (xmlBufAdd(buf, q, cur - q)) goto out; } q = cur; @@ -1360,20 +1363,20 @@ xmlStringLenGetNodeList(xmlDocPtr doc, const xmlChar *value, int len) { if ((ent != NULL) && (ent->etype == XML_INTERNAL_PREDEFINED_ENTITY)) { - if (xmlBufferCat(buffer, ent->content)) + if (xmlBufCat(buf, ent->content)) goto out; } else { /* * Flush buffer so far */ - if (buffer->use) { + if (!xmlBufIsEmpty(buf)) { node = xmlNewDocText(doc, NULL); if (node == NULL) { if (val != NULL) xmlFree(val); goto out; } - node->content = xmlBufferDetach(buffer); + node->content = xmlBufDetach(buf); if (last == NULL) { last = ret = node; @@ -1415,13 +1418,13 @@ xmlStringLenGetNodeList(xmlDocPtr doc, const xmlChar *value, int len) { q = cur; } if (charval != 0) { - xmlChar buf[10]; + xmlChar buffer[10]; int l; - l = xmlCopyCharMultiByte(buf, charval); - buf[l] = 0; + l = xmlCopyCharMultiByte(buffer, charval); + buffer[l] = 0; - if (xmlBufferCat(buffer, buf)) + if (xmlBufCat(buf, buffer)) goto out; charval = 0; } @@ -1433,14 +1436,14 @@ xmlStringLenGetNodeList(xmlDocPtr doc, const xmlChar *value, int len) { /* * Handle the last piece of text. */ - if (xmlBufferAdd(buffer, q, cur - q)) + if (xmlBufAdd(buf, q, cur - q)) goto out; } - if (buffer->use) { + if (!xmlBufIsEmpty(buf)) { node = xmlNewDocText(doc, NULL); if (node == NULL) goto out; - node->content = xmlBufferDetach(buffer); + node->content = xmlBufDetach(buf); if (last == NULL) { last = ret = node; @@ -1452,7 +1455,7 @@ xmlStringLenGetNodeList(xmlDocPtr doc, const xmlChar *value, int len) { } out: - xmlBufferFree(buffer); + xmlBufFree(buf); return(ret); } @@ -1473,13 +1476,13 @@ xmlStringGetNodeList(xmlDocPtr doc, const xmlChar *value) { const xmlChar *cur = value; const xmlChar *q; xmlEntityPtr ent; - xmlBufferPtr buffer; + xmlBufPtr buf; if (value == NULL) return(NULL); - buffer = xmlBufferCreateSize(0); - if (buffer == NULL) return(NULL); - xmlBufferSetAllocationScheme(buffer, XML_BUFFER_ALLOC_HYBRID); + buf = xmlBufCreateSize(0); + if (buf == NULL) return(NULL); + xmlBufSetAllocationScheme(buf, XML_BUFFER_ALLOC_HYBRID); q = cur; while (*cur != 0) { @@ -1491,7 +1494,7 @@ xmlStringGetNodeList(xmlDocPtr doc, const xmlChar *value) { * Save the current text. */ if (cur != q) { - if (xmlBufferAdd(buffer, q, cur - q)) + if (xmlBufAdd(buf, q, cur - q)) goto out; } q = cur; @@ -1556,16 +1559,16 @@ xmlStringGetNodeList(xmlDocPtr doc, const xmlChar *value) { if ((ent != NULL) && (ent->etype == XML_INTERNAL_PREDEFINED_ENTITY)) { - if (xmlBufferCat(buffer, ent->content)) + if (xmlBufCat(buf, ent->content)) goto out; } else { /* * Flush buffer so far */ - if (buffer->use) { + if (!xmlBufIsEmpty(buf)) { node = xmlNewDocText(doc, NULL); - node->content = xmlBufferDetach(buffer); + node->content = xmlBufDetach(buf); if (last == NULL) { last = ret = node; @@ -1606,13 +1609,13 @@ xmlStringGetNodeList(xmlDocPtr doc, const xmlChar *value) { q = cur; } if (charval != 0) { - xmlChar buf[10]; + xmlChar buffer[10]; int len; - len = xmlCopyCharMultiByte(buf, charval); - buf[len] = 0; + len = xmlCopyCharMultiByte(buffer, charval); + buffer[len] = 0; - if (xmlBufferCat(buffer, buf)) + if (xmlBufCat(buf, buffer)) goto out; charval = 0; } @@ -1623,12 +1626,12 @@ xmlStringGetNodeList(xmlDocPtr doc, const xmlChar *value) { /* * Handle the last piece of text. */ - xmlBufferAdd(buffer, q, cur - q); + xmlBufAdd(buf, q, cur - q); } - if (buffer->use) { + if (!xmlBufIsEmpty(buf)) { node = xmlNewDocText(doc, NULL); - node->content = xmlBufferDetach(buffer); + node->content = xmlBufDetach(buf); if (last == NULL) { last = ret = node; @@ -1638,7 +1641,7 @@ xmlStringGetNodeList(xmlDocPtr doc, const xmlChar *value) { } out: - xmlBufferFree(buffer); + xmlBufFree(buf); return(ret); } @@ -1659,9 +1662,14 @@ xmlNodeListGetString(xmlDocPtr doc, xmlNodePtr list, int inLine) xmlNodePtr node = list; xmlChar *ret = NULL; xmlEntityPtr ent; + int attr; if (list == NULL) return (NULL); + if ((list->parent != NULL) && (list->parent->type == XML_ATTRIBUTE_NODE)) + attr = 1; + else + attr = 0; while (node != NULL) { if ((node->type == XML_TEXT_NODE) || @@ -1671,7 +1679,10 @@ xmlNodeListGetString(xmlDocPtr doc, xmlNodePtr list, int inLine) } else { xmlChar *buffer; - buffer = xmlEncodeEntitiesReentrant(doc, node->content); + if (attr) + buffer = xmlEncodeAttributeEntities(doc, node->content); + else + buffer = xmlEncodeEntitiesReentrant(doc, node->content); if (buffer != NULL) { ret = xmlStrcat(ret, buffer); xmlFree(buffer); @@ -2777,7 +2788,7 @@ void xmlSetTreeDoc(xmlNodePtr tree, xmlDocPtr doc) { xmlAttrPtr prop; - if (tree == NULL) + if ((tree == NULL) || (tree->type == XML_NAMESPACE_DECL)) return; if (tree->doc != doc) { if(tree->type == XML_ELEMENT_NODE) { @@ -2805,7 +2816,7 @@ void xmlSetListDoc(xmlNodePtr list, xmlDocPtr doc) { xmlNodePtr cur; - if (list == NULL) + if ((list == NULL) || (list->type == XML_NAMESPACE_DECL)) return; cur = list; while (cur != NULL) { @@ -2912,7 +2923,9 @@ static xmlNodePtr xmlAddPropSibling(xmlNodePtr prev, xmlNodePtr cur, xmlNodePtr prop) { xmlAttrPtr attr; - if (cur->type != XML_ATTRIBUTE_NODE) + if ((cur == NULL) || (cur->type != XML_ATTRIBUTE_NODE) || + (prop == NULL) || (prop->type != XML_ATTRIBUTE_NODE) || + ((prev != NULL) && (prev->type != XML_ATTRIBUTE_NODE))) return(NULL); /* check if an attribute with the same name exists */ @@ -2960,14 +2973,14 @@ xmlAddPropSibling(xmlNodePtr prev, xmlNodePtr cur, xmlNodePtr prop) { */ xmlNodePtr xmlAddNextSibling(xmlNodePtr cur, xmlNodePtr elem) { - if (cur == NULL) { + if ((cur == NULL) || (cur->type == XML_NAMESPACE_DECL)) { #ifdef DEBUG_TREE xmlGenericError(xmlGenericErrorContext, "xmlAddNextSibling : cur == NULL\n"); #endif return(NULL); } - if (elem == NULL) { + if ((elem == NULL) || (elem->type == XML_NAMESPACE_DECL)) { #ifdef DEBUG_TREE xmlGenericError(xmlGenericErrorContext, "xmlAddNextSibling : elem == NULL\n"); @@ -3038,14 +3051,14 @@ xmlAddNextSibling(xmlNodePtr cur, xmlNodePtr elem) { */ xmlNodePtr xmlAddPrevSibling(xmlNodePtr cur, xmlNodePtr elem) { - if (cur == NULL) { + if ((cur == NULL) || (cur->type == XML_NAMESPACE_DECL)) { #ifdef DEBUG_TREE xmlGenericError(xmlGenericErrorContext, "xmlAddPrevSibling : cur == NULL\n"); #endif return(NULL); } - if (elem == NULL) { + if ((elem == NULL) || (elem->type == XML_NAMESPACE_DECL)) { #ifdef DEBUG_TREE xmlGenericError(xmlGenericErrorContext, "xmlAddPrevSibling : elem == NULL\n"); @@ -3116,7 +3129,7 @@ xmlNodePtr xmlAddSibling(xmlNodePtr cur, xmlNodePtr elem) { xmlNodePtr parent; - if (cur == NULL) { + if ((cur == NULL) || (cur->type == XML_NAMESPACE_DECL)) { #ifdef DEBUG_TREE xmlGenericError(xmlGenericErrorContext, "xmlAddSibling : cur == NULL\n"); @@ -3124,7 +3137,7 @@ xmlAddSibling(xmlNodePtr cur, xmlNodePtr elem) { return(NULL); } - if (elem == NULL) { + if ((elem == NULL) || (elem->type == XML_NAMESPACE_DECL)) { #ifdef DEBUG_TREE xmlGenericError(xmlGenericErrorContext, "xmlAddSibling : elem == NULL\n"); @@ -3192,7 +3205,7 @@ xmlNodePtr xmlAddChildList(xmlNodePtr parent, xmlNodePtr cur) { xmlNodePtr prev; - if (parent == NULL) { + if ((parent == NULL) || (parent->type == XML_NAMESPACE_DECL)) { #ifdef DEBUG_TREE xmlGenericError(xmlGenericErrorContext, "xmlAddChildList : parent == NULL\n"); @@ -3200,7 +3213,7 @@ xmlAddChildList(xmlNodePtr parent, xmlNodePtr cur) { return(NULL); } - if (cur == NULL) { + if ((cur == NULL) || (cur->type == XML_NAMESPACE_DECL)) { #ifdef DEBUG_TREE xmlGenericError(xmlGenericErrorContext, "xmlAddChildList : child == NULL\n"); @@ -3278,7 +3291,7 @@ xmlNodePtr xmlAddChild(xmlNodePtr parent, xmlNodePtr cur) { xmlNodePtr prev; - if (parent == NULL) { + if ((parent == NULL) || (parent->type == XML_NAMESPACE_DECL)) { #ifdef DEBUG_TREE xmlGenericError(xmlGenericErrorContext, "xmlAddChild : parent == NULL\n"); @@ -3286,7 +3299,7 @@ xmlAddChild(xmlNodePtr parent, xmlNodePtr cur) { return(NULL); } - if (cur == NULL) { + if ((cur == NULL) || (cur->type == XML_NAMESPACE_DECL)) { #ifdef DEBUG_TREE xmlGenericError(xmlGenericErrorContext, "xmlAddChild : child == NULL\n"); @@ -3400,7 +3413,7 @@ xmlAddChild(xmlNodePtr parent, xmlNodePtr cur) { */ xmlNodePtr xmlGetLastChild(xmlNodePtr parent) { - if (parent == NULL) { + if ((parent == NULL) || (parent->type == XML_NAMESPACE_DECL)) { #ifdef DEBUG_TREE xmlGenericError(xmlGenericErrorContext, "xmlGetLastChild : parent == NULL\n"); @@ -3752,6 +3765,8 @@ xmlFreeNode(xmlNodePtr cur) { * Unlink a node from it's current context, the node is not freed * If one need to free the node, use xmlFreeNode() routine after the * unlink to discard it. + * Note that namespace nodes can't be unlinked as they do not have + * pointer to their parent. */ void xmlUnlinkNode(xmlNodePtr cur) { @@ -3762,6 +3777,8 @@ xmlUnlinkNode(xmlNodePtr cur) { #endif return; } + if (cur->type == XML_NAMESPACE_DECL) + return; if (cur->type == XML_DTD_NODE) { xmlDocPtr doc; doc = cur->doc; @@ -3830,14 +3847,15 @@ xmlUnlinkNode(xmlNodePtr cur) { xmlNodePtr xmlReplaceNode(xmlNodePtr old, xmlNodePtr cur) { if (old == cur) return(NULL); - if ((old == NULL) || (old->parent == NULL)) { + if ((old == NULL) || (old->type == XML_NAMESPACE_DECL) || + (old->parent == NULL)) { #ifdef DEBUG_TREE xmlGenericError(xmlGenericErrorContext, "xmlReplaceNode : old == NULL or without parent\n"); #endif return(NULL); } - if (cur == NULL) { + if ((cur == NULL) || (cur->type == XML_NAMESPACE_DECL)) { xmlUnlinkNode(old); return(old); } @@ -3951,6 +3969,8 @@ xmlCopyPropInternal(xmlDocPtr doc, xmlNodePtr target, xmlAttrPtr cur) { xmlAttrPtr ret; if (cur == NULL) return(NULL); + if ((target != NULL) && (target->type != XML_ELEMENT_NODE)) + return(NULL); if (target != NULL) ret = xmlNewDocProp(target->doc, cur->name, NULL); else if (doc != NULL) @@ -4070,6 +4090,8 @@ xmlCopyPropList(xmlNodePtr target, xmlAttrPtr cur) { xmlAttrPtr ret = NULL; xmlAttrPtr p = NULL,q; + if ((target != NULL) && (target->type != XML_ELEMENT_NODE)) + return(NULL); while (cur != NULL) { q = xmlCopyProp(target, cur); if (q == NULL) @@ -4515,39 +4537,71 @@ xmlCopyDoc(xmlDocPtr doc, int recursive) { ************************************************************************/ /** - * xmlGetLineNo: + * xmlGetLineNoInternal: * @node: valid node + * @depth: used to limit any risk of recursion * - * Get line number of @node. This requires activation of this option - * before invoking the parser by calling xmlLineNumbersDefault(1) + * Get line number of @node. + * Try to override the limitation of lines being store in 16 bits ints * * Returns the line number if successful, -1 otherwise */ -long -xmlGetLineNo(xmlNodePtr node) +static long +xmlGetLineNoInternal(xmlNodePtr node, int depth) { long result = -1; + if (depth >= 5) + return(-1); + if (!node) return result; if ((node->type == XML_ELEMENT_NODE) || (node->type == XML_TEXT_NODE) || (node->type == XML_COMMENT_NODE) || - (node->type == XML_PI_NODE)) - result = (long) node->line; - else if ((node->prev != NULL) && + (node->type == XML_PI_NODE)) { + if (node->line == 65535) { + if ((node->type == XML_TEXT_NODE) && (node->psvi != NULL)) + result = (long) node->psvi; + else if ((node->type == XML_ELEMENT_NODE) && + (node->children != NULL)) + result = xmlGetLineNoInternal(node->children, depth + 1); + else if (node->next != NULL) + result = xmlGetLineNoInternal(node->next, depth + 1); + else if (node->prev != NULL) + result = xmlGetLineNoInternal(node->prev, depth + 1); + } + if ((result == -1) || (result == 65535)) + result = (long) node->line; + } else if ((node->prev != NULL) && ((node->prev->type == XML_ELEMENT_NODE) || (node->prev->type == XML_TEXT_NODE) || (node->prev->type == XML_COMMENT_NODE) || (node->prev->type == XML_PI_NODE))) - result = xmlGetLineNo(node->prev); + result = xmlGetLineNoInternal(node->prev, depth + 1); else if ((node->parent != NULL) && (node->parent->type == XML_ELEMENT_NODE)) - result = xmlGetLineNo(node->parent); + result = xmlGetLineNoInternal(node->parent, depth + 1); return result; } +/** + * xmlGetLineNo: + * @node: valid node + * + * Get line number of @node. + * Try to override the limitation of lines being store in 16 bits ints + * if XML_PARSE_BIG_LINES parser option was used + * + * Returns the line number if successful, -1 otherwise + */ +long +xmlGetLineNo(xmlNodePtr node) +{ + return(xmlGetLineNoInternal(node, 0)); +} + #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) /** * xmlGetNodePath: @@ -4570,7 +4624,7 @@ xmlGetNodePath(xmlNodePtr node) char nametemp[100]; int occur = 0, generic; - if (node == NULL) + if ((node == NULL) || (node->type == XML_NAMESPACE_DECL)) return (NULL); buf_len = 500; @@ -4835,7 +4889,7 @@ xmlDocSetRootElement(xmlDocPtr doc, xmlNodePtr root) { xmlNodePtr old = NULL; if (doc == NULL) return(NULL); - if (root == NULL) + if ((root == NULL) || (root->type == XML_NAMESPACE_DECL)) return(NULL); xmlUnlinkNode(root); xmlSetTreeDoc(root, doc); @@ -4922,6 +4976,8 @@ xmlChar * xmlNodeGetLang(xmlNodePtr cur) { xmlChar *lang; + if ((cur == NULL) || (cur->type == XML_NAMESPACE_DECL)) + return(NULL); while (cur != NULL) { lang = xmlGetNsProp(cur, BAD_CAST "lang", XML_XML_NAMESPACE); if (lang != NULL) @@ -5001,6 +5057,8 @@ int xmlNodeGetSpacePreserve(xmlNodePtr cur) { xmlChar *space; + if ((cur == NULL) || (cur->type != XML_ELEMENT_NODE)) + return(-1); while (cur != NULL) { space = xmlGetNsProp(cur, BAD_CAST "space", XML_XML_NAMESPACE); if (space != NULL) { @@ -5167,6 +5225,8 @@ xmlNodeGetBase(xmlDocPtr doc, xmlNodePtr cur) { if ((cur == NULL) && (doc == NULL)) return(NULL); + if ((cur != NULL) && (cur->type == XML_NAMESPACE_DECL)) + return(NULL); if (doc == NULL) doc = cur->doc; if ((doc != NULL) && (doc->type == XML_HTML_DOCUMENT_NODE)) { cur = doc->children; @@ -5246,11 +5306,39 @@ xmlNodeGetBase(xmlDocPtr doc, xmlNodePtr cur) { int xmlNodeBufGetContent(xmlBufferPtr buffer, xmlNodePtr cur) { + xmlBufPtr buf; + int ret; + if ((cur == NULL) || (buffer == NULL)) return(-1); + buf = xmlBufFromBuffer(buffer); + ret = xmlBufGetNodeContent(buf, cur); + buffer = xmlBufBackToBuffer(buf); + if ((ret < 0) || (buffer == NULL)) + return(-1); + return(0); +} + +/** + * xmlBufGetNodeContent: + * @buf: a buffer xmlBufPtr + * @cur: the node being read + * + * Read the value of a node @cur, this can be either the text carried + * directly by this node if it's a TEXT node or the aggregate string + * of the values carried by this node child's (TEXT and ENTITY_REF). + * Entity references are substituted. + * Fills up the buffer @buffer with this value + * + * Returns 0 in case of success and -1 in case of error. + */ +int +xmlBufGetNodeContent(xmlBufPtr buf, xmlNodePtr cur) +{ + if ((cur == NULL) || (buf == NULL)) return(-1); switch (cur->type) { case XML_CDATA_SECTION_NODE: case XML_TEXT_NODE: - xmlBufferCat(buffer, cur->content); + xmlBufCat(buf, cur->content); break; case XML_DOCUMENT_FRAG_NODE: case XML_ELEMENT_NODE:{ @@ -5261,10 +5349,10 @@ xmlNodeBufGetContent(xmlBufferPtr buffer, xmlNodePtr cur) case XML_CDATA_SECTION_NODE: case XML_TEXT_NODE: if (tmp->content != NULL) - xmlBufferCat(buffer, tmp->content); + xmlBufCat(buf, tmp->content); break; case XML_ENTITY_REF_NODE: - xmlNodeBufGetContent(buffer, tmp); + xmlBufGetNodeContent(buf, tmp); break; default: break; @@ -5308,16 +5396,16 @@ xmlNodeBufGetContent(xmlBufferPtr buffer, xmlNodePtr cur) while (tmp != NULL) { if (tmp->type == XML_TEXT_NODE) - xmlBufferCat(buffer, tmp->content); + xmlBufCat(buf, tmp->content); else - xmlNodeBufGetContent(buffer, tmp); + xmlBufGetNodeContent(buf, tmp); tmp = tmp->next; } break; } case XML_COMMENT_NODE: case XML_PI_NODE: - xmlBufferCat(buffer, cur->content); + xmlBufCat(buf, cur->content); break; case XML_ENTITY_REF_NODE:{ xmlEntityPtr ent; @@ -5335,7 +5423,7 @@ xmlNodeBufGetContent(xmlBufferPtr buffer, xmlNodePtr cur) * xmlNodeGetContent() which handles all possible node types */ tmp = ent->children; while (tmp) { - xmlNodeBufGetContent(buffer, tmp); + xmlBufGetNodeContent(buf, tmp); tmp = tmp->next; } break; @@ -5357,13 +5445,13 @@ xmlNodeBufGetContent(xmlBufferPtr buffer, xmlNodePtr cur) if ((cur->type == XML_ELEMENT_NODE) || (cur->type == XML_TEXT_NODE) || (cur->type == XML_CDATA_SECTION_NODE)) { - xmlNodeBufGetContent(buffer, cur); + xmlBufGetNodeContent(buf, cur); } cur = cur->next; } break; case XML_NAMESPACE_DECL: - xmlBufferCat(buffer, ((xmlNsPtr) cur)->href); + xmlBufCat(buf, ((xmlNsPtr) cur)->href); break; case XML_ELEMENT_DECL: case XML_ATTRIBUTE_DECL: @@ -5372,6 +5460,7 @@ xmlNodeBufGetContent(xmlBufferPtr buffer, xmlNodePtr cur) } return(0); } + /** * xmlNodeGetContent: * @cur: the node being read @@ -5391,16 +5480,15 @@ xmlNodeGetContent(xmlNodePtr cur) switch (cur->type) { case XML_DOCUMENT_FRAG_NODE: case XML_ELEMENT_NODE:{ - xmlBufferPtr buffer; + xmlBufPtr buf; xmlChar *ret; - buffer = xmlBufferCreateSize(64); - if (buffer == NULL) + buf = xmlBufCreateSize(64); + if (buf == NULL) return (NULL); - xmlNodeBufGetContent(buffer, cur); - ret = buffer->content; - buffer->content = NULL; - xmlBufferFree(buffer); + xmlBufGetNodeContent(buf, cur); + ret = xmlBufDetach(buf); + xmlBufFree(buf); return (ret); } case XML_ATTRIBUTE_NODE: @@ -5412,7 +5500,7 @@ xmlNodeGetContent(xmlNodePtr cur) return (NULL); case XML_ENTITY_REF_NODE:{ xmlEntityPtr ent; - xmlBufferPtr buffer; + xmlBufPtr buf; xmlChar *ret; /* lookup entity declaration */ @@ -5420,15 +5508,14 @@ xmlNodeGetContent(xmlNodePtr cur) if (ent == NULL) return (NULL); - buffer = xmlBufferCreate(); - if (buffer == NULL) + buf = xmlBufCreate(); + if (buf == NULL) return (NULL); - xmlNodeBufGetContent(buffer, cur); + xmlBufGetNodeContent(buf, cur); - ret = buffer->content; - buffer->content = NULL; - xmlBufferFree(buffer); + ret = xmlBufDetach(buf); + xmlBufFree(buf); return (ret); } case XML_ENTITY_NODE: @@ -5443,18 +5530,17 @@ xmlNodeGetContent(xmlNodePtr cur) case XML_DOCB_DOCUMENT_NODE: #endif case XML_HTML_DOCUMENT_NODE: { - xmlBufferPtr buffer; + xmlBufPtr buf; xmlChar *ret; - buffer = xmlBufferCreate(); - if (buffer == NULL) + buf = xmlBufCreate(); + if (buf == NULL) return (NULL); - xmlNodeBufGetContent(buffer, (xmlNodePtr) cur); + xmlBufGetNodeContent(buf, (xmlNodePtr) cur); - ret = buffer->content; - buffer->content = NULL; - xmlBufferFree(buffer); + ret = xmlBufDetach(buf); + xmlBufFree(buf); return (ret); } case XML_NAMESPACE_DECL: { @@ -5775,6 +5861,9 @@ xmlGetNsList(xmlDocPtr doc ATTRIBUTE_UNUSED, xmlNodePtr node) int maxns = 10; int i; + if ((node == NULL) || (node->type == XML_NAMESPACE_DECL)) + return(NULL); + while (node != NULL) { if (node->type == XML_ELEMENT_NODE) { cur = node->nsDef; @@ -5873,7 +5962,7 @@ xmlSearchNs(xmlDocPtr doc, xmlNodePtr node, const xmlChar *nameSpace) { xmlNsPtr cur; xmlNodePtr orig = node; - if (node == NULL) return(NULL); + if ((node == NULL) || (node->type == XML_NAMESPACE_DECL)) return(NULL); if ((nameSpace != NULL) && (xmlStrEqual(nameSpace, (const xmlChar *)"xml"))) { if ((doc == NULL) && (node->type == XML_ELEMENT_NODE)) { @@ -6003,7 +6092,7 @@ xmlSearchNsByHref(xmlDocPtr doc, xmlNodePtr node, const xmlChar * href) xmlNodePtr orig = node; int is_attr; - if ((node == NULL) || (href == NULL)) + if ((node == NULL) || (node->type == XML_NAMESPACE_DECL) || (href == NULL)) return (NULL); if (xmlStrEqual(href, XML_XML_NAMESPACE)) { /* @@ -6094,7 +6183,7 @@ xmlNewReconciliedNs(xmlDocPtr doc, xmlNodePtr tree, xmlNsPtr ns) { xmlChar prefix[50]; int counter = 1; - if (tree == NULL) { + if ((tree == NULL) || (tree->type != XML_ELEMENT_NODE)) { #ifdef DEBUG_TREE xmlGenericError(xmlGenericErrorContext, "xmlNewReconciliedNs : tree == NULL\n"); @@ -7951,6 +8040,8 @@ xmlDOMWrapNSNormGatherInScopeNs(xmlNsMapPtr *map, if ((map == NULL) || (*map != NULL)) return (-1); + if ((node == NULL) || (node->type == XML_NAMESPACE_DECL)) + return (-1); /* * Get in-scope ns-decls of @parent. */ @@ -8218,6 +8309,8 @@ xmlSearchNsByNamespaceStrict(xmlDocPtr doc, xmlNodePtr node, if ((doc == NULL) || (nsName == NULL) || (retNs == NULL)) return (-1); + if ((node == NULL) || (node->type == XML_NAMESPACE_DECL)) + return(-1); *retNs = NULL; if (xmlStrEqual(nsName, XML_XML_NAMESPACE)) { @@ -8316,8 +8409,8 @@ xmlSearchNsByPrefixStrict(xmlDocPtr doc, xmlNodePtr node, xmlNodePtr cur; xmlNsPtr ns; - if ((doc == NULL) || (node == NULL)) - return (-1); + if ((doc == NULL) || (node == NULL) || (node->type == XML_NAMESPACE_DECL)) + return(-1); if (retNs) *retNs = NULL; @@ -8385,6 +8478,9 @@ xmlDOMWrapNSNormDeclareNsForced(xmlDocPtr doc, char buf[50]; const xmlChar *pref; int counter = 0; + + if ((doc == NULL) || (elem == NULL) || (elem->type != XML_ELEMENT_NODE)) + return(NULL); /* * Create a ns-decl on @anchor. */ @@ -8901,6 +8997,9 @@ xmlDOMWrapAdoptBranch(xmlDOMWrapCtxtPtr ctxt, parnsdone = 0; cur = node; + if ((cur != NULL) && (cur->type == XML_NAMESPACE_DECL)) + goto internal_error; + while (cur != NULL) { /* * Paranoid source-doc sanity check. @@ -9280,6 +9379,9 @@ xmlDOMWrapCloneNode(xmlDOMWrapCtxtPtr ctxt, *resNode = NULL; cur = node; + if ((cur != NULL) && (cur->type == XML_NAMESPACE_DECL)) + return(-1); + while (cur != NULL) { if (cur->doc != sourceDoc) { /* @@ -9797,6 +9899,8 @@ xmlDOMWrapAdoptAttr(xmlDOMWrapCtxtPtr ctxt, if (attr->children == NULL) return (0); cur = attr->children; + if ((cur != NULL) && (cur->type == XML_NAMESPACE_DECL)) + goto internal_error; while (cur != NULL) { cur->doc = destDoc; switch (cur->type) { @@ -9881,7 +9985,8 @@ xmlDOMWrapAdoptNode(xmlDOMWrapCtxtPtr ctxt, xmlNodePtr destParent, int options) { - if ((node == NULL) || (destDoc == NULL) || + if ((node == NULL) || (node->type == XML_NAMESPACE_DECL) || + (destDoc == NULL) || ((destParent != NULL) && (destParent->doc != destDoc))) return(-1); /* diff --git a/trio.c b/trio.c index b116ccc..d885db9 100644 --- a/trio.c +++ b/trio.c @@ -307,6 +307,10 @@ typedef trio_longlong_t trio_int64_t; #define NAN_LOWER "nan" #define NAN_UPPER "NAN" +#if !defined(HAVE_ISASCII) && !defined(isascii) +# define isascii(x) ((unsigned int)(x) < 128) +#endif + /* Various constants */ enum { TYPE_PRINT = 1, @@ -376,7 +380,7 @@ enum { /* Maximal string lengths for user-defined specifiers */ MAX_USER_NAME = 64, MAX_USER_DATA = 256, - + /* Maximal length of locale separator strings */ MAX_LOCALE_SEPARATOR_LENGTH = MB_LEN_MAX, /* Maximal number of integers in grouping */ @@ -1020,23 +1024,23 @@ TRIO_ARGS2((name, prev), trio_userdef_t **prev) { trio_userdef_t *def; - + if (internalEnterCriticalRegion) (void)internalEnterCriticalRegion(NULL); - + for (def = internalUserDef; def; def = def->next) { /* Case-sensitive string comparison */ if (trio_equal_case(def->name, name)) break; - + if (prev) *prev = def; } - + if (internalLeaveCriticalRegion) (void)internalLeaveCriticalRegion(NULL); - + return def; } #endif @@ -1200,7 +1204,7 @@ TRIO_ARGS5((type, format, parameters, arglist, argarray), /* One and only one of arglist and argarray must be used */ assert((arglist != NULL) ^ (argarray != NULL)); - + /* * The 'parameters' array is not initialized, but we need to * know which entries we have used. @@ -1213,7 +1217,7 @@ TRIO_ARGS5((type, format, parameters, arglist, argarray), #if defined(TRIO_COMPILER_SUPPORTS_MULTIBYTE) (void)mblen(NULL, 0); #endif - + while (format[index]) { #if defined(TRIO_COMPILER_SUPPORTS_MULTIBYTE) @@ -1291,7 +1295,7 @@ TRIO_ARGS5((type, format, parameters, arglist, argarray), /* Skip if no precision */ if (QUALIFIER_DOT == format[index]) break; - + /* After the first dot we have the precision */ flags |= FLAGS_PRECISION; if ((QUALIFIER_STAR == format[index]) @@ -1336,7 +1340,7 @@ TRIO_ARGS5((type, format, parameters, arglist, argarray), else if (dots == 1) /* Base */ { dots++; - + /* After the second dot we have the base */ flags |= FLAGS_BASE; if ((QUALIFIER_STAR == format[index]) @@ -1535,7 +1539,7 @@ TRIO_ARGS5((type, format, parameters, arglist, argarray), } else return TRIO_ERROR_RETURN(TRIO_EINVAL, index); - + flags |= FLAGS_FIXED_SIZE; break; #endif @@ -1563,7 +1567,7 @@ TRIO_ARGS5((type, format, parameters, arglist, argarray), gotSticky = TRUE; break; #endif - + #if defined(QUALIFIER_VARSIZE) case QUALIFIER_VARSIZE: flags |= FLAGS_VARSIZE_PARAMETER; @@ -1628,9 +1632,9 @@ TRIO_ARGS5((type, format, parameters, arglist, argarray), indices[varsize] = pos; varsize = pos++; } - + indices[currentParam] = pos; - + switch (format[index++]) { #if defined(SPECIFIER_CHAR_UPPER) @@ -1689,11 +1693,11 @@ TRIO_ARGS5((type, format, parameters, arglist, argarray), } } break; - + case SPECIFIER_INTEGER: parameters[pos].type = FORMAT_INT; break; - + case SPECIFIER_UNSIGNED: flags |= FLAGS_UNSIGNED; parameters[pos].type = FORMAT_INT; @@ -1793,11 +1797,11 @@ TRIO_ARGS5((type, format, parameters, arglist, argarray), { unsigned int max; int without_namespace = TRUE; - + parameters[pos].type = FORMAT_USER_DEFINED; parameters[pos].user_name[0] = NIL; tmpformat = (char *)&format[index]; - + while ((ch = format[index])) { index++; @@ -1845,7 +1849,7 @@ TRIO_ARGS5((type, format, parameters, arglist, argarray), } break; #endif /* defined(SPECIFIER_USER_DEFINED_BEGIN) */ - + default: /* Bail out completely to make the error more obvious */ return TRIO_ERROR_RETURN(TRIO_EINVAL, index); @@ -1853,7 +1857,7 @@ TRIO_ARGS5((type, format, parameters, arglist, argarray), /* Count the number of times this entry has been used */ usedEntries[currentParam] += 1; - + /* Find last sticky parameters */ if (gotSticky && !(flags & FLAGS_STICKY)) { @@ -1876,7 +1880,7 @@ TRIO_ARGS5((type, format, parameters, arglist, argarray), } } } - + parameters[pos].indexAfterSpecifier = index; parameters[pos].flags = flags; parameters[pos].width = width; @@ -1884,12 +1888,12 @@ TRIO_ARGS5((type, format, parameters, arglist, argarray), parameters[pos].base = (base == NO_BASE) ? BASE_DECIMAL : base; parameters[pos].varsize = varsize; pos++; - + if (! positional) parameterPosition++; - + } /* if identifier */ - + } /* while format characters left */ for (num = 0; num <= maxParam; num++) @@ -1901,7 +1905,7 @@ TRIO_ARGS5((type, format, parameters, arglist, argarray), else /* double references detected */ return TRIO_ERROR_RETURN(TRIO_EDBLREF, num); } - + i = indices[num]; /* @@ -1969,7 +1973,7 @@ TRIO_ARGS5((type, format, parameters, arglist, argarray), if (TYPE_SCAN == type) { if (argarray == NULL) - parameters[i].data.pointer = + parameters[i].data.pointer = (trio_pointer_t)va_arg(*arglist, trio_pointer_t); else { @@ -2009,7 +2013,7 @@ TRIO_ARGS5((type, format, parameters, arglist, argarray), varsize = parameters[i].varsize; } parameters[i].flags &= ~FLAGS_ALL_VARSIZES; - + if (varsize <= (int)sizeof(int)) ; else if (varsize <= (int)sizeof(long)) @@ -2213,7 +2217,7 @@ TRIO_ARGS6((self, number, flags, width, precision, base), number &= (unsigned long)-1; else number &= (unsigned int)-1; - + /* Build number */ pointer = bufferend = &buffer[sizeof(buffer) - 1]; *pointer-- = NIL; @@ -2260,7 +2264,7 @@ TRIO_ARGS6((self, number, flags, width, precision, base), count = (! ((flags & FLAGS_LEFTADJUST) || (precision == NO_PRECISION))) ? precision : 0; - + /* Adjust width further */ if (isNegative || (flags & FLAGS_SHOWSIGN) || (flags & FLAGS_SPACE)) width--; @@ -2495,7 +2499,7 @@ TRIO_ARGS4((self, wch, flags, width), if (width == NO_WIDTH) width = sizeof(buffer); - + size = wctomb(buffer, wch); if ((size <= 0) || (size > width) || (buffer[0] == NIL)) return 0; @@ -2537,13 +2541,13 @@ TRIO_ARGS5((self, wstring, flags, width, precision), #if defined(TRIO_COMPILER_SUPPORTS_MULTIBYTE) (void)mblen(NULL, 0); #endif - + if (wstring == NULL) { TrioWriteString(self, NULL, flags, width, precision); return; } - + if (NO_PRECISION == precision) { length = INT_MAX; @@ -2638,7 +2642,7 @@ TRIO_ARGS6((self, number, flags, width, precision, base), BOOLEAN_T keepTrailingZeroes; BOOLEAN_T keepDecimalPoint; trio_long_double_t epsilon; - + assert(VALID(self)); assert(VALID(self->OutStream)); assert(((base >= MIN_BASE) && (base <= MAX_BASE)) || (base == NO_BASE)); @@ -2653,7 +2657,7 @@ TRIO_ARGS6((self, number, flags, width, precision, base), : NAN_LOWER, flags, width, precision); return; - + case TRIO_FP_INFINITE: if (isNegative) { @@ -2680,7 +2684,7 @@ TRIO_ARGS6((self, number, flags, width, precision, base), /* Finitude */ break; } - + /* Normal numbers */ if (flags & FLAGS_LONGDOUBLE) { @@ -2728,13 +2732,13 @@ TRIO_ARGS6((self, number, flags, width, precision, base), precision = FLT_DIG; } } - + if (isNegative) number = -number; if (isHex) flags |= FLAGS_FLOAT_E; - + if (flags & FLAGS_FLOAT_G) { if (precision == 0) @@ -2787,7 +2791,7 @@ TRIO_ARGS6((self, number, flags, width, precision, base), integerNumber = floorl(number); fractionNumber = number - integerNumber; - + /* * Truncated number. * @@ -2802,7 +2806,7 @@ TRIO_ARGS6((self, number, flags, width, precision, base), : zeroes + precision; dblFractionBase = TrioPower(base, fractionDigits); - + workNumber = number + 0.5 / dblFractionBase; if (floorl(number) != floorl(workNumber)) { @@ -2855,7 +2859,7 @@ TRIO_ARGS6((self, number, flags, width, precision, base), integerThreshold = INT_MAX; fractionThreshold = INT_MAX; } - + /* * Calculate expected width. * sign + integer part + thousands separators + decimal point @@ -2891,7 +2895,7 @@ TRIO_ARGS6((self, number, flags, width, precision, base), ((requireTwoDigitExponent ? sizeof("E+0") : sizeof("E+")) - 1); if (isHex) expectedWidth += sizeof("0X") - 1; - + /* Output prefixing */ if (flags & FLAGS_NILPADDING) { @@ -2937,7 +2941,7 @@ TRIO_ARGS6((self, number, flags, width, precision, base), self->OutStream(self, (flags & FLAGS_UPPER) ? 'X' : 'x'); } } - + /* Output the integer part and thousand separators */ dblIntegerBase = 1.0 / TrioPower(base, integerDigits - 1); for (i = 0; i < integerDigits; i++) @@ -2953,7 +2957,7 @@ TRIO_ARGS6((self, number, flags, width, precision, base), self->OutStream(self, digits[(int)fmodl(workNumber, dblBase)]); } dblIntegerBase *= dblBase; - + if (((flags & (FLAGS_FLOAT_E | FLAGS_QUOTE)) == FLAGS_QUOTE) && TrioFollowedBySeparator(integerDigits - i)) { @@ -2965,7 +2969,7 @@ TRIO_ARGS6((self, number, flags, width, precision, base), } } } - + /* Insert decimal point and build the fraction part */ trailingZeroes = 0; @@ -3014,7 +3018,7 @@ TRIO_ARGS6((self, number, flags, width, precision, base), } } } - + if (keepTrailingZeroes) { while (trailingZeroes > 0) @@ -3023,7 +3027,7 @@ TRIO_ARGS6((self, number, flags, width, precision, base), trailingZeroes--; } } - + /* Output exponent */ if (exponentDigits > 0) { @@ -3080,13 +3084,13 @@ TRIO_ARGS3((data, format, parameters), int precision; int base; int index; - + index = 0; i = 0; #if defined(TRIO_COMPILER_SUPPORTS_MULTIBYTE) (void)mblen(NULL, 0); #endif - + while (format[index]) { #if defined(TRIO_COMPILER_SUPPORTS_MULTIBYTE) @@ -3120,7 +3124,7 @@ TRIO_ARGS3((data, format, parameters), /* Skip the parameter entries */ while (parameters[i].type == FORMAT_PARAMETER) i++; - + flags = parameters[i].flags; /* Find width */ @@ -3140,7 +3144,7 @@ TRIO_ARGS3((data, format, parameters), width = -width; } } - + /* Find precision */ if (flags & FLAGS_PRECISION) { @@ -3171,7 +3175,7 @@ TRIO_ARGS3((data, format, parameters), /* Get base from parameter list */ base = (int)parameters[base].data.number.as_signed; } - + switch (parameters[i].type) { case FORMAT_CHAR: @@ -3251,7 +3255,7 @@ TRIO_ARGS3((data, format, parameters), case FORMAT_POINTER: { trio_reference_t reference; - + reference.data = data; reference.parameter = ¶meters[i]; trio_print_pointer(&reference, parameters[i].data.pointer); @@ -3354,7 +3358,7 @@ TRIO_ARGS3((data, format, parameters), } break; #endif /* defined(FORMAT_USER_DEFINED) */ - + default: break; } /* switch parameter type */ @@ -3564,7 +3568,7 @@ TRIO_ARGS2((self, output), assert(VALID(self)); assert(VALID(self->location)); - + buffer = (char **)self->location; if (self->processed < self->max) @@ -3632,7 +3636,7 @@ TRIO_VARGS2((format, va_alist), va_list args; assert(VALID(format)); - + TRIO_VA_START(args, format); status = TrioFormat(stdout, 0, TrioOutStreamFile, format, &args, NULL); TRIO_VA_END(args); @@ -3699,7 +3703,7 @@ TRIO_VARGS3((file, format, va_alist), assert(VALID(file)); assert(VALID(format)); - + TRIO_VA_START(args, format); status = TrioFormat(file, 0, TrioOutStreamFile, format, &args, NULL); TRIO_VA_END(args); @@ -3723,7 +3727,7 @@ TRIO_ARGS3((file, format, args), { assert(VALID(file)); assert(VALID(format)); - + return TrioFormat(file, 0, TrioOutStreamFile, format, &args, NULL); } @@ -3744,7 +3748,7 @@ TRIO_ARGS3((file, format, args), { assert(VALID(file)); assert(VALID(format)); - + return TrioFormat(file, 0, TrioOutStreamFile, format, NULL, args); } @@ -3771,7 +3775,7 @@ TRIO_VARGS3((fd, format, va_alist), va_list args; assert(VALID(format)); - + TRIO_VA_START(args, format); status = TrioFormat(&fd, 0, TrioOutStreamFileDescriptor, format, &args, NULL); TRIO_VA_END(args); @@ -3794,7 +3798,7 @@ TRIO_ARGS3((fd, format, args), va_list args) { assert(VALID(format)); - + return TrioFormat(&fd, 0, TrioOutStreamFileDescriptor, format, &args, NULL); } @@ -3814,7 +3818,7 @@ TRIO_ARGS3((fd, format, args), trio_pointer_t *args) { assert(VALID(format)); - + return TrioFormat(&fd, 0, TrioOutStreamFileDescriptor, format, NULL, args); } @@ -3904,7 +3908,7 @@ TRIO_VARGS3((buffer, format, va_alist), assert(VALID(buffer)); assert(VALID(format)); - + TRIO_VA_START(args, format); status = TrioFormat(&buffer, 0, TrioOutStreamString, format, &args, NULL); *buffer = NIL; /* Terminate with NIL character */ @@ -4098,7 +4102,7 @@ TRIO_ARGS4((buffer, max, format, args), { int status; size_t buf_len; - + assert(VALID(buffer)); assert(VALID(format)); @@ -4126,7 +4130,7 @@ TRIO_VARGS2((format, va_alist), char *result = NULL; assert(VALID(format)); - + info = trio_xstring_duplicate(""); if (info) { @@ -4151,9 +4155,9 @@ TRIO_ARGS2((format, args), { trio_string_t *info; char *result = NULL; - + assert(VALID(format)); - + info = trio_xstring_duplicate(""); if (info) { @@ -4180,7 +4184,7 @@ TRIO_VARGS3((result, format, va_alist), assert(VALID(format)); *result = NULL; - + info = trio_xstring_duplicate(""); if (info == NULL) { @@ -4211,11 +4215,11 @@ TRIO_ARGS3((result, format, args), { int status; trio_string_t *info; - + assert(VALID(format)); *result = NULL; - + info = trio_xstring_duplicate(""); if (info == NULL) { @@ -4264,7 +4268,7 @@ TRIO_ARGS3((result, format, args), @param name @return Handle. */ -TRIO_PUBLIC trio_pointer_t +TRIO_PUBLIC trio_pointer_t trio_register TRIO_ARGS2((callback, name), trio_callback_t callback, @@ -4291,23 +4295,23 @@ TRIO_ARGS2((callback, name), } return NULL; } - + /* Bail out if namespace is too long */ if (trio_length(name) >= MAX_USER_NAME) return NULL; - + /* Bail out if namespace already is registered */ def = TrioFindNamespace(name, &prev); if (def) return NULL; } - + def = (trio_userdef_t *)TRIO_MALLOC(sizeof(trio_userdef_t)); if (def) { if (internalEnterCriticalRegion) (void)internalEnterCriticalRegion(NULL); - + if (name) { /* Link into internal list */ @@ -4352,12 +4356,12 @@ TRIO_ARGS1((handle), { if (internalEnterCriticalRegion) (void)internalEnterCriticalRegion(NULL); - + if (prev == NULL) internalUserDef = NULL; else prev->next = def->next; - + if (internalLeaveCriticalRegion) (void)internalLeaveCriticalRegion(NULL); } @@ -4377,14 +4381,14 @@ TRIO_ARGS1((ref), #if defined(FORMAT_USER_DEFINED) assert(((trio_reference_t *)ref)->parameter->type == FORMAT_USER_DEFINED); #endif - + return (((trio_reference_t *)ref)->parameter->user_data); } /************************************************************************* * trio_get_argument [public] */ -trio_pointer_t +trio_pointer_t trio_get_argument TRIO_ARGS1((ref), trio_pointer_t ref) @@ -4392,7 +4396,7 @@ TRIO_ARGS1((ref), #if defined(FORMAT_USER_DEFINED) assert(((trio_reference_t *)ref)->parameter->type == FORMAT_USER_DEFINED); #endif - + return ((trio_reference_t *)ref)->parameter->data.pointer; } @@ -4924,7 +4928,7 @@ TRIO_VARGS3((ref, format, va_alist), va_list arglist; assert(VALID(format)); - + TRIO_VA_START(arglist, format); status = TrioFormatRef((trio_reference_t *)ref, format, &arglist, NULL); TRIO_VA_END(arglist); @@ -4942,7 +4946,7 @@ TRIO_ARGS3((ref, format, arglist), va_list arglist) { assert(VALID(format)); - + return TrioFormatRef((trio_reference_t *)ref, format, &arglist, NULL); } @@ -4957,7 +4961,7 @@ TRIO_ARGS3((ref, format, argarray), trio_pointer_t *argarray) { assert(VALID(format)); - + return TrioFormatRef((trio_reference_t *)ref, format, NULL, argarray); } @@ -5206,7 +5210,7 @@ TRIO_ARGS4((format, indexPointer, flagsPointer, characterclass), switch (ch) { case QUALIFIER_MINUS: /* Scanlist ranges */ - + /* * Both C99 and UNIX98 describes ranges as implementation- * defined. @@ -5233,17 +5237,17 @@ TRIO_ARGS4((format, indexPointer, flagsPointer, characterclass), return TRIO_ERROR_RETURN(TRIO_EINVAL, index); if (range_begin > range_end) return TRIO_ERROR_RETURN(TRIO_ERANGE, index); - + for (i = (int)range_begin; i <= (int)range_end; i++) characterclass[i]++; - + ch = range_end; break; - + #if TRIO_EXTENSION case SPECIFIER_GROUP: - + switch (format[index + 1]) { case QUALIFIER_DOT: /* Collating symbol */ @@ -5262,15 +5266,15 @@ TRIO_ARGS4((format, indexPointer, flagsPointer, characterclass), } if (format[++i] != SPECIFIER_UNGROUP) return -1; - + index = i; break; - + case QUALIFIER_EQUAL: /* Equivalence class expressions */ { unsigned int j; unsigned int k; - + if (internalCollationUnconverted) { /* Lazy evaluation of collation array */ @@ -5294,13 +5298,13 @@ TRIO_ARGS4((format, indexPointer, flagsPointer, characterclass), } if (format[++i] != SPECIFIER_UNGROUP) return -1; - + index = i; } break; - + case QUALIFIER_COLON: /* Character class expressions */ - + if (trio_equal_max(CLASS_ALNUM, sizeof(CLASS_ALNUM) - 1, &format[index])) { @@ -5400,9 +5404,9 @@ TRIO_ARGS4((format, indexPointer, flagsPointer, characterclass), break; } break; - + #endif /* TRIO_EXTENSION */ - + default: characterclass[(int)ch]++; break; @@ -5448,9 +5452,9 @@ TRIO_ARGS5((self, target, flags, width, base), } internalDigitsUnconverted = FALSE; } - + TrioSkipWhitespaces(self); - + if (!(flags & FLAGS_UNSIGNED)) { /* Leading sign */ @@ -5464,9 +5468,9 @@ TRIO_ARGS5((self, target, flags, width, base), isNegative = TRUE; } } - + count = self->processed; - + if (flags & FLAGS_ALTERNATIVE) { switch (base) @@ -5527,7 +5531,7 @@ TRIO_ARGS5((self, target, flags, width, base), } else break; - + number *= base; number += digit; gotNumber = TRUE; /* we need at least one digit */ @@ -5538,7 +5542,7 @@ TRIO_ARGS5((self, target, flags, width, base), /* Was anything read at all? */ if (!gotNumber) return FALSE; - + if (target) *target = (isNegative) ? -((trio_intmax_t)number) : number; return TRUE; @@ -5558,7 +5562,7 @@ TRIO_ARGS4((self, target, flags, width), int i; char ch; trio_uintmax_t number; - + assert(VALID(self)); assert(VALID(self->InStream)); @@ -5603,7 +5607,7 @@ TRIO_ARGS4((self, target, flags, width), break; } } - + if (target) target[i] = ch; } @@ -5622,12 +5626,12 @@ TRIO_ARGS4((self, target, flags, width), int width) { int i; - + assert(VALID(self)); assert(VALID(self->InStream)); TrioSkipWhitespaces(self); - + /* * Continue until end of string is reached, a whitespace is encountered, * or width is exceeded @@ -5663,7 +5667,7 @@ TRIO_ARGS4((self, target, flags, width), int amount = 0; trio_wchar_t wch; char buffer[MB_LEN_MAX + 1]; - + assert(VALID(self)); assert(VALID(self->InStream)); @@ -5720,7 +5724,7 @@ TRIO_ARGS4((self, target, flags, width), { int i; int size; - + assert(VALID(self)); assert(VALID(self->InStream)); @@ -5729,7 +5733,7 @@ TRIO_ARGS4((self, target, flags, width), #if defined(TRIO_COMPILER_SUPPORTS_MULTIBYTE) (void)mblen(NULL, 0); #endif - + /* * Continue until end of string is reached, a whitespace is encountered, * or width is exceeded @@ -5767,7 +5771,7 @@ TRIO_ARGS5((self, target, characterclass, flags, width), { int ch; int i; - + assert(VALID(self)); assert(VALID(self->InStream)); @@ -5782,7 +5786,7 @@ TRIO_ARGS5((self, target, characterclass, flags, width), target[i] = (char)ch; self->InStream(self, &ch); } - + if (target) target[i] = NIL; return TRUE; @@ -5811,12 +5815,12 @@ TRIO_ARGS4((self, target, flags, width), BOOLEAN_T isHex = FALSE; doubleString[0] = 0; - + if ((width == NO_WIDTH) || (width > (int)sizeof(doubleString) - 1)) width = sizeof(doubleString) - 1; - + TrioSkipWhitespaces(self); - + /* * Read entire double number from stream. trio_to_double requires * a string as input, but InStream can be anything, so we have to @@ -5902,11 +5906,11 @@ TRIO_ARGS4((self, target, flags, width), self->InStream(self, &ch); } break; - + default: break; } - + while ((ch != EOF) && (index - start < width)) { /* Integer part */ @@ -5966,7 +5970,7 @@ TRIO_ARGS4((self, target, flags, width), return FALSE; doubleString[index] = 0; - + if (flags & FLAGS_LONGDOUBLE) { *((trio_long_double_t *)target) = trio_to_long_double(doubleString, NULL); @@ -5992,7 +5996,7 @@ TRIO_ARGS3((self, target, flags), char buffer[sizeof(internalNullString)]; flags |= (FLAGS_UNSIGNED | FLAGS_ALTERNATIVE | FLAGS_NILPADDING); - + if (TrioReadNumber(self, &number, flags, @@ -6013,7 +6017,7 @@ TRIO_ARGS3((self, target, flags), : buffer, 0, sizeof(internalNullString) - 1)) - { + { if (trio_equal_case(buffer, internalNullString)) { if (target) @@ -6077,12 +6081,12 @@ TRIO_ARGS3((data, format, parameters), } } #endif /* TRIO_COMPILER_SUPPORTS_MULTIBYTE */ - + if ((EOF == ch) && (parameters[i].type != FORMAT_COUNT)) { return (assignment > 0) ? assignment : EOF; } - + if (CHAR_IDENTIFIER == format[index]) { if (CHAR_IDENTIFIER == format[index + 1]) @@ -6101,7 +6105,7 @@ TRIO_ARGS3((data, format, parameters), /* Skip the parameter entries */ while (parameters[i].type == FORMAT_PARAMETER) i++; - + flags = parameters[i].flags; /* Find width */ width = parameters[i].width; @@ -6117,7 +6121,7 @@ TRIO_ARGS3((data, format, parameters), /* Get base from parameter list */ base = (int)parameters[base].data.number.as_signed; } - + switch (parameters[i].type) { case FORMAT_INT: @@ -6165,7 +6169,7 @@ TRIO_ARGS3((data, format, parameters), } } break; /* FORMAT_INT */ - + case FORMAT_STRING: #if TRIO_WIDECHAR if (flags & FLAGS_WIDECHAR) @@ -6229,7 +6233,7 @@ TRIO_ARGS3((data, format, parameters), } /* Skip over group specifier */ index++; - + memset(characterclass, 0, sizeof(characterclass)); rc = TrioGetCharacterClass(format, &index, @@ -6291,7 +6295,7 @@ TRIO_ARGS3((data, format, parameters), } } break; /* FORMAT_COUNT */ - + case FORMAT_CHAR: #if TRIO_WIDECHAR if (flags & FLAGS_WIDECHAR) @@ -6353,7 +6357,7 @@ TRIO_ARGS3((data, format, parameters), } else return assignment; - + index++; } } @@ -6392,7 +6396,7 @@ TRIO_ARGS6((source, sourceSize, InStream, format, arglist, argarray), TrioSetLocale(); } #endif - + status = TrioParse(TYPE_SCAN, format, parameters, arglist, argarray); if (status < 0) return status; @@ -6431,7 +6435,7 @@ TRIO_ARGS2((self, intPointer), self->processed++; self->committed++; } - + if (VALID(intPointer)) { *intPointer = self->current; @@ -6468,7 +6472,7 @@ TRIO_ARGS2((self, intPointer), self->committed++; self->processed++; } - + if (VALID(intPointer)) { *intPointer = self->current; @@ -6485,7 +6489,7 @@ TRIO_ARGS2((self, intPointer), int *intPointer) { trio_custom_t *data; - + assert(VALID(self)); assert(VALID(self->location)); @@ -6494,7 +6498,7 @@ TRIO_ARGS2((self, intPointer), self->current = (data->stream.in == NULL) ? NIL : (data->stream.in)(data->closure); - + if (self->current == NIL) { self->current = EOF; @@ -6504,7 +6508,7 @@ TRIO_ARGS2((self, intPointer), self->processed++; self->committed++; } - + if (VALID(intPointer)) { *intPointer = self->current; @@ -6537,7 +6541,7 @@ TRIO_ARGS2((self, intPointer), self->processed++; self->committed++; } - + if (VALID(intPointer)) { *intPointer = self->current; @@ -6578,7 +6582,7 @@ TRIO_VARGS2((format, va_alist), va_list args; assert(VALID(format)); - + TRIO_VA_START(args, format); status = TrioScan((trio_pointer_t)stdin, 0, TrioInStreamFile, @@ -6594,7 +6598,7 @@ TRIO_ARGS2((format, args), va_list args) { assert(VALID(format)); - + return TrioScan((trio_pointer_t)stdin, 0, TrioInStreamFile, format, &args, NULL); @@ -6607,7 +6611,7 @@ TRIO_ARGS2((format, args), trio_pointer_t *args) { assert(VALID(format)); - + return TrioScan((trio_pointer_t)stdin, 0, TrioInStreamFile, format, NULL, args); @@ -6628,7 +6632,7 @@ TRIO_VARGS3((file, format, va_alist), assert(VALID(file)); assert(VALID(format)); - + TRIO_VA_START(args, format); status = TrioScan((trio_pointer_t)file, 0, TrioInStreamFile, @@ -6646,7 +6650,7 @@ TRIO_ARGS3((file, format, args), { assert(VALID(file)); assert(VALID(format)); - + return TrioScan((trio_pointer_t)file, 0, TrioInStreamFile, format, &args, NULL); @@ -6661,7 +6665,7 @@ TRIO_ARGS3((file, format, args), { assert(VALID(file)); assert(VALID(format)); - + return TrioScan((trio_pointer_t)file, 0, TrioInStreamFile, format, NULL, args); @@ -6681,7 +6685,7 @@ TRIO_VARGS3((fd, format, va_alist), va_list args; assert(VALID(format)); - + TRIO_VA_START(args, format); status = TrioScan((trio_pointer_t)&fd, 0, TrioInStreamFileDescriptor, @@ -6698,7 +6702,7 @@ TRIO_ARGS3((fd, format, args), va_list args) { assert(VALID(format)); - + return TrioScan((trio_pointer_t)&fd, 0, TrioInStreamFileDescriptor, format, &args, NULL); @@ -6712,7 +6716,7 @@ TRIO_ARGS3((fd, format, args), trio_pointer_t *args) { assert(VALID(format)); - + return TrioScan((trio_pointer_t)&fd, 0, TrioInStreamFileDescriptor, format, NULL, args); @@ -6735,7 +6739,7 @@ TRIO_VARGS4((stream, closure, format, va_alist), assert(VALID(stream)); assert(VALID(format)); - + TRIO_VA_START(args, format); data.stream.in = stream; data.closure = closure; @@ -6753,7 +6757,7 @@ TRIO_ARGS4((stream, closure, format, args), va_list args) { trio_custom_t data; - + assert(VALID(stream)); assert(VALID(format)); @@ -6771,7 +6775,7 @@ TRIO_ARGS4((stream, closure, format, args), trio_pointer_t *args) { trio_custom_t data; - + assert(VALID(stream)); assert(VALID(format)); @@ -6795,7 +6799,7 @@ TRIO_VARGS3((buffer, format, va_alist), assert(VALID(buffer)); assert(VALID(format)); - + TRIO_VA_START(args, format); status = TrioScan((trio_pointer_t)&buffer, 0, TrioInStreamString, @@ -6813,7 +6817,7 @@ TRIO_ARGS3((buffer, format, args), { assert(VALID(buffer)); assert(VALID(format)); - + return TrioScan((trio_pointer_t)&buffer, 0, TrioInStreamString, format, &args, NULL); @@ -6828,7 +6832,7 @@ TRIO_ARGS3((buffer, format, args), { assert(VALID(buffer)); assert(VALID(format)); - + return TrioScan((trio_pointer_t)&buffer, 0, TrioInStreamString, format, NULL, args); diff --git a/trio.h b/trio.h index eab1b6d..108a709 100644 --- a/trio.h +++ b/trio.h @@ -28,7 +28,7 @@ * Use autoconf defines if present. Packages using trio must define * HAVE_CONFIG_H as a compiler option themselves. */ -#if defined(HAVE_CONFIG_H) +#if defined(TRIO_HAVE_CONFIG_H) # include "config.h" #endif diff --git a/trionan.c b/trionan.c index 95baae1..6fbabb5 100644 --- a/trionan.c +++ b/trionan.c @@ -261,7 +261,7 @@ trio_pinf(TRIO_NOARGS) static double result = 0.0; if (result == 0.0) { - + #if defined(INFINITY) && defined(__STDC_IEC_559__) result = (double)INFINITY; @@ -283,7 +283,7 @@ trio_pinf(TRIO_NOARGS) /* Force overflow */ result += HUGE_VAL; } - + # if defined(TRIO_PLATFORM_UNIX) signal(SIGFPE, signal_handler); # endif @@ -326,13 +326,13 @@ trio_nan(TRIO_NOARGS) static double result = 0.0; if (result == 0.0) { - + #if defined(TRIO_COMPILER_SUPPORTS_C99) result = nan(""); #elif defined(NAN) && defined(__STDC_IEC_559__) result = (double)NAN; - + #elif defined(USE_IEEE_754) result = trio_make_double(ieee_754_qnan_array); @@ -349,13 +349,13 @@ trio_nan(TRIO_NOARGS) # if defined(TRIO_PLATFORM_UNIX) void (*signal_handler)(int) = signal(SIGFPE, SIG_IGN); # endif - + result = trio_pinf() / trio_pinf(); - + # if defined(TRIO_PLATFORM_UNIX) signal(SIGFPE, signal_handler); # endif - + #endif } return result; @@ -381,7 +381,7 @@ TRIO_ARGS1((number), * the conservative approach and only use it for UNIX95. */ return isnan(number); - + #elif defined(TRIO_COMPILER_MSVC) || defined(TRIO_COMPILER_BCB) /* * Microsoft Visual C++ and Borland C++ Builder have an _isnan() @@ -398,20 +398,20 @@ TRIO_ARGS1((number), int is_special_quantity; is_special_quantity = trio_is_special_quantity(number, &has_mantissa); - + return (is_special_quantity && has_mantissa); - + #else /* * Fallback solution */ int status; double integral, fraction; - + # if defined(TRIO_PLATFORM_UNIX) void (*signal_handler)(int) = signal(SIGFPE, SIG_IGN); # endif - + status = (/* * NaN is the only number which does not compare to itself */ @@ -422,13 +422,13 @@ TRIO_ARGS1((number), ((number != 0.0) && (fraction = modf(number, &integral), integral == fraction))); - + # if defined(TRIO_PLATFORM_UNIX) signal(SIGFPE, signal_handler); # endif - + return status; - + #endif } @@ -459,7 +459,7 @@ TRIO_ARGS1((number), return isinf(number) ? ((number > 0.0) ? 1 : -1) : 0; - + #elif defined(TRIO_COMPILER_MSVC) || defined(TRIO_COMPILER_BCB) /* * Microsoft Visual C++ and Borland C++ Builder have an _fpclass() @@ -478,7 +478,7 @@ TRIO_ARGS1((number), int is_special_quantity; is_special_quantity = trio_is_special_quantity(number, &has_mantissa); - + return (is_special_quantity && !has_mantissa) ? ((number < 0.0) ? -1 : 1) : 0; @@ -488,23 +488,23 @@ TRIO_ARGS1((number), * Fallback solution. */ int status; - + # if defined(TRIO_PLATFORM_UNIX) void (*signal_handler)(int) = signal(SIGFPE, SIG_IGN); # endif - + double infinity = trio_pinf(); - + status = ((number == infinity) ? 1 : ((number == -infinity) ? -1 : 0)); - + # if defined(TRIO_PLATFORM_UNIX) signal(SIGFPE, signal_handler); # endif - + return status; - + #endif } @@ -526,7 +526,7 @@ TRIO_ARGS1((number), * C99 defines isfinite() as a macro. */ return isfinite(number); - + #elif defined(TRIO_COMPILER_MSVC) || defined(TRIO_COMPILER_BCB) /* * Microsoft Visual C++ and Borland C++ Builder use _finite(). @@ -547,7 +547,7 @@ TRIO_ARGS1((number), * Fallback solution. */ return ((trio_isinf(number) == 0) && (trio_isnan(number) == 0)); - + #endif } @@ -596,7 +596,7 @@ TRIO_ARGS2((number, is_negative), # define TRIO_NEGATIVE_ZERO FP_NEG_ZERO # define TRIO_POSITIVE_NORMAL FP_POS_NORM # define TRIO_NEGATIVE_NORMAL FP_NEG_NORM - + # elif defined(TRIO_COMPILER_MSVC) || defined(TRIO_COMPILER_BCB) /* * Microsoft Visual C++ and Borland C++ Builder have an _fpclass() @@ -613,7 +613,7 @@ TRIO_ARGS2((number, is_negative), # define TRIO_NEGATIVE_ZERO _FPCLASS_NZ # define TRIO_POSITIVE_NORMAL _FPCLASS_PN # define TRIO_NEGATIVE_NORMAL _FPCLASS_NN - + # elif defined(FP_PLUS_NORM) /* * HP-UX 9.x and 10.x have an fpclassify() function, that is different @@ -678,13 +678,13 @@ TRIO_ARGS2((number, is_negative), *is_negative = (number < 0.0); return TRIO_FP_NORMAL; } - + # else /* * Fallback solution. */ int rc; - + if (number == 0.0) { /* * In IEEE 754 the sign of zero is ignored in comparisons, so we @@ -716,7 +716,7 @@ TRIO_ARGS2((number, is_negative), } *is_negative = (number < 0.0); return TRIO_FP_NORMAL; - + # endif #endif } @@ -734,7 +734,7 @@ TRIO_ARGS1((number), double number) { int is_negative; - + (void)trio_fpclassify_and_signbit(number, &is_negative); return is_negative; } @@ -753,7 +753,7 @@ TRIO_ARGS1((number), double number) { int dummy; - + return trio_fpclassify_and_signbit(number, &dummy); } @@ -828,7 +828,7 @@ int main(TRIO_NOARGS) print_class("NNorm", -1.0); print_class("PSub", 1.01e-307 - 1.00e-307); print_class("NSub", 1.00e-307 - 1.01e-307); - + printf("NaN : %4g 0x%02x%02x%02x%02x%02x%02x%02x%02x (%2d, %2d)\n", my_nan, ((unsigned char *)&my_nan)[0], @@ -862,11 +862,11 @@ int main(TRIO_NOARGS) ((unsigned char *)&my_ninf)[6], ((unsigned char *)&my_ninf)[7], trio_isnan(my_ninf), trio_isinf(my_ninf)); - + # if defined(TRIO_PLATFORM_UNIX) signal_handler = signal(SIGFPE, SIG_IGN); # endif - + my_pinf = DBL_MAX + DBL_MAX; my_ninf = -my_pinf; my_nan = my_pinf / my_pinf; @@ -874,7 +874,7 @@ int main(TRIO_NOARGS) # if defined(TRIO_PLATFORM_UNIX) signal(SIGFPE, signal_handler); # endif - + printf("NaN : %4g 0x%02x%02x%02x%02x%02x%02x%02x%02x (%2d, %2d)\n", my_nan, ((unsigned char *)&my_nan)[0], @@ -908,7 +908,7 @@ int main(TRIO_NOARGS) ((unsigned char *)&my_ninf)[6], ((unsigned char *)&my_ninf)[7], trio_isnan(my_ninf), trio_isinf(my_ninf)); - + return 0; } #endif diff --git a/trionan.h b/trionan.h index c5de32b..be6e718 100644 --- a/trionan.h +++ b/trionan.h @@ -46,7 +46,7 @@ TRIO_PUBLIC double trio_pinf TRIO_PROTO((void)); * Return negative infinity. */ TRIO_PUBLIC double trio_ninf TRIO_PROTO((void)); - + /* * Return negative zero. */ diff --git a/triostr.c b/triostr.c index 30d13ac..e507645 100644 --- a/triostr.c +++ b/triostr.c @@ -165,11 +165,11 @@ TRIO_ARGS1((string), #if !defined(TRIO_MINIMAL) /** Append @p source at the end of @p target. - + @param target Target string. @param source Source string. @return Boolean value indicating success or failure. - + @pre @p target must point to a memory chunk with sufficient room to contain the @p target string and @p source string. @pre No boundary checking is performed, so insufficient memory will @@ -184,7 +184,7 @@ TRIO_ARGS2((target, source), { assert(target); assert(source); - + return (strcat(target, source) != NULL); } #endif /* !defined(TRIO_MINIMAL) */ @@ -192,12 +192,12 @@ TRIO_ARGS2((target, source), #if !defined(TRIO_MINIMAL) /** Append at most @p max characters from @p source to @p target. - + @param target Target string. @param max Maximum number of characters to append. @param source Source string. @return Boolean value indicating success or failure. - + @pre @p target must point to a memory chuck with sufficient room to contain the @p target string and the @p source string (at most @p max characters). @@ -213,12 +213,12 @@ TRIO_ARGS3((target, max, source), TRIO_CONST char *source) { size_t length; - + assert(target); assert(source); length = trio_length(target); - + if (max > length) { strncat(target, source, max - length - 1); @@ -244,7 +244,7 @@ TRIO_ARGS2((string, substring), { assert(string); assert(substring); - + return (0 != strstr(string, substring)); } #endif /* !defined(TRIO_MINIMAL) */ @@ -253,11 +253,11 @@ TRIO_ARGS2((string, substring), #if !defined(TRIO_MINIMAL) /** Copy @p source to @p target. - + @param target Target string. @param source Source string. @return Boolean value indicating success or failure. - + @pre @p target must point to a memory chunk with sufficient room to contain the @p source string. @pre No boundary checking is performed, so insufficient memory will @@ -272,7 +272,7 @@ TRIO_ARGS2((target, source), { assert(target); assert(source); - + (void)strcpy(target, source); return TRUE; } @@ -281,12 +281,12 @@ TRIO_ARGS2((target, source), /** Copy at most @p max characters from @p source to @p target. - + @param target Target string. @param max Maximum number of characters to append. @param source Source string. @return Boolean value indicating success or failure. - + @pre @p target must point to a memory chunk with sufficient room to contain the @p source string (at most @p max characters). @pre No boundary checking is performed, so insufficient memory will @@ -336,10 +336,10 @@ TRIO_ARGS2((source, size), /** Duplicate @p source. - + @param source Source string. @return A copy of the @p source string. - + @post @p target will be zero terminated. */ TRIO_STRING_PUBLIC char * @@ -354,11 +354,11 @@ TRIO_ARGS1((source), #if !defined(TRIO_MINIMAL) /** Duplicate at most @p max characters of @p source. - + @param source Source string. @param max Maximum number of characters to duplicate. @return A copy of the @p source string. - + @post @p target will be zero terminated. */ TRIO_STRING_PUBLIC char * @@ -383,11 +383,11 @@ trio_duplicate_max TRIO_ARGS2((source, max), /** Compare if two strings are equal. - + @param first First string. @param second Second string. @return Boolean indicating whether the two strings are equal or not. - + Case-insensitive comparison. */ TRIO_STRING_PUBLIC int @@ -422,11 +422,11 @@ TRIO_ARGS2((first, second), /** Compare if two strings are equal. - + @param first First string. @param second Second string. @return Boolean indicating whether the two strings are equal or not. - + Case-sensitive comparison. */ TRIO_STRING_PUBLIC int @@ -449,12 +449,12 @@ TRIO_ARGS2((first, second), #if !defined(TRIO_MINIMAL) /** Compare if two strings up until the first @p max characters are equal. - + @param first First string. @param max Maximum number of characters to compare. @param second Second string. @return Boolean indicating whether the two strings are equal or not. - + Case-sensitive comparison. */ TRIO_STRING_PUBLIC int @@ -478,7 +478,7 @@ TRIO_ARGS3((first, max, second), /** Compare if two strings are equal. - + @param first First string. @param second Second string. @return Boolean indicating whether the two strings are equal or not. @@ -504,12 +504,12 @@ TRIO_ARGS2((first, second), /** Compare if two strings up until the first @p max characters are equal. - + @param first First string. @param max Maximum number of characters to compare. @param second Second string. @return Boolean indicating whether the two strings are equal or not. - + Case-insensitive comparison. */ TRIO_STRING_PUBLIC int @@ -558,7 +558,7 @@ TRIO_ARGS1((error_number), int error_number) { #if defined(USE_STRERROR) - + return strerror(error_number); #elif defined(USE_SYS_ERRLIST) @@ -569,11 +569,11 @@ TRIO_ARGS1((error_number), return ((error_number < 0) || (error_number >= sys_nerr)) ? "unknown" : sys_errlist[error_number]; - + #else - + return "unknown"; - + #endif } @@ -603,7 +603,7 @@ TRIO_ARGS4((target, max, format, datetime), assert(format); assert(datetime); assert(max > 0); - + return strftime(target, max, format, datetime); } #endif /* !defined(TRIO_MINIMAL) */ @@ -630,7 +630,7 @@ TRIO_ARGS2((string, type), char ch; assert(string); - + switch (type) { case TRIO_HASH_PLAIN: @@ -719,7 +719,7 @@ TRIO_ARGS1((target), @return Boolean value indicating success or failure. Case-insensitive comparison. - + The following wildcards can be used @li @c * Match any number of characters. @li @c ? Match a single character. @@ -732,7 +732,7 @@ TRIO_ARGS2((string, pattern), { assert(string); assert(pattern); - + for (; ('*' != *pattern); ++pattern, ++string) { if (NIL == *string) @@ -757,7 +757,7 @@ TRIO_ARGS2((string, pattern), } } while (*string++); - + return FALSE; } #endif /* !defined(TRIO_MINIMAL) */ @@ -772,7 +772,7 @@ TRIO_ARGS2((string, pattern), @return Boolean value indicating success or failure. Case-sensitive comparison. - + The following wildcards can be used @li @c * Match any number of characters. @li @c ? Match a single character. @@ -785,7 +785,7 @@ TRIO_ARGS2((string, pattern), { assert(string); assert(pattern); - + for (; ('*' != *pattern); ++pattern, ++string) { if (NIL == *string) @@ -810,7 +810,7 @@ TRIO_ARGS2((string, pattern), } } while (*string++); - + return FALSE; } #endif /* !defined(TRIO_MINIMAL) */ @@ -837,7 +837,7 @@ TRIO_ARGS3((target, source, Function), assert(target); assert(source); assert(Function); - + while (*source != NIL) { *target++ = Function(*source++); @@ -894,7 +894,7 @@ TRIO_ARGS3((string, max, substring), assert(string); assert(substring); - + size = trio_length(substring); if (size <= max) { @@ -929,7 +929,7 @@ TRIO_ARGS2((string, delimiters), TRIO_CONST char *delimiters) { assert(delimiters); - + return strtok(string, delimiters); } #endif /* !defined(TRIO_MINIMAL) */ @@ -1064,7 +1064,7 @@ TRIO_ARGS2((source, endp), } } } - + value = integer + fraction; if (exponent != 0) { @@ -1146,7 +1146,7 @@ TRIO_ARGS3((string, endp, base), { assert(string); assert((base >= 2) && (base <= 36)); - + return strtol(string, endp, base); } @@ -1164,16 +1164,16 @@ TRIO_ARGS1((source), int source) { #if defined(USE_TOLOWER) - + return tolower(source); - + #else /* Does not handle locales or non-contiguous alphabetic characters */ return ((source >= (int)'A') && (source <= (int)'Z')) ? source - 'A' + 'a' : source; - + #endif } #endif /* !defined(TRIO_MINIMAL) */ @@ -1195,7 +1195,7 @@ TRIO_ARGS3((string, endp, base), { assert(string); assert((base >= 2) && (base <= 36)); - + return strtoul(string, endp, base); } #endif /* !defined(TRIO_MINIMAL) */ @@ -1213,16 +1213,16 @@ TRIO_ARGS1((source), int source) { #if defined(USE_TOUPPER) - + return toupper(source); - + #else /* Does not handle locales or non-contiguous alphabetic characters */ return ((source >= (int)'a') && (source <= (int)'z')) ? source - 'a' + 'A' : source; - + #endif } @@ -1266,7 +1266,7 @@ TRIO_STRING_PRIVATE trio_string_t * TrioStringAlloc(TRIO_NOARGS) { trio_string_t *self; - + self = (trio_string_t *)TRIO_MALLOC(sizeof(trio_string_t)); if (self) { @@ -1297,7 +1297,7 @@ TRIO_ARGS2((self, delta), new_size = (delta == 0) ? ( (self->allocated == 0) ? 1 : self->allocated * 2 ) : self->allocated + delta; - + new_content = (char *)TRIO_REALLOC(self->content, new_size); if (new_content) { @@ -1334,7 +1334,7 @@ TRIO_ARGS2((self, length), #if !defined(TRIO_MINIMAL) /** Create a new dynamic string. - + @param initial_size Initial size of the buffer. @return Newly allocated dynamic string, or NULL if memory allocation failed. */ @@ -1367,7 +1367,7 @@ TRIO_ARGS1((initial_size), /** Deallocate the dynamic string and its contents. - + @param self Dynamic string */ TRIO_STRING_PUBLIC void @@ -1376,7 +1376,7 @@ TRIO_ARGS1((self), trio_string_t *self) { assert(self); - + if (self) { trio_destroy(self->content); @@ -1388,11 +1388,11 @@ TRIO_ARGS1((self), #if !defined(TRIO_MINIMAL) /** Get a pointer to the content. - + @param self Dynamic string. @param offset Offset into content. @return Pointer to the content. - + @p Offset can be zero, positive, or negative. If @p offset is zero, then the start of the content will be returned. If @p offset is positive, then a pointer to @p offset number of characters from the beginning of the @@ -1407,7 +1407,7 @@ TRIO_ARGS2((self, offset), int offset) { char *result = NULL; - + assert(self); if (self->content != NULL) @@ -1440,10 +1440,10 @@ TRIO_ARGS2((self, offset), /** Extract the content. - + @param self Dynamic String @return Content of dynamic string. - + The content is removed from the dynamic string. This enables destruction of the dynamic string without deallocation of the content. */ @@ -1453,7 +1453,7 @@ TRIO_ARGS1((self), trio_string_t *self) { char *result; - + assert(self); result = self->content; @@ -1467,13 +1467,13 @@ TRIO_ARGS1((self), #if !defined(TRIO_MINIMAL) /** Set the content of the dynamic string. - + @param self Dynamic String @param buffer The new content. - + Sets the content of the dynamic string to a copy @p buffer. An existing content will be deallocated first, if necessary. - + @remark This function will make a copy of @p buffer. You are responsible for deallocating @p buffer yourself. @@ -1521,7 +1521,7 @@ TRIO_ARGS1((self), #if !defined(TRIO_MINIMAL) /** Append the second string to the first. - + @param self Dynamic string to be modified. @param other Dynamic string to copy from. @return Boolean value indicating success or failure. @@ -1533,7 +1533,7 @@ TRIO_ARGS2((self, other), trio_string_t *other) { size_t length; - + assert(self); assert(other); @@ -1543,7 +1543,7 @@ TRIO_ARGS2((self, other), trio_copy(&self->content[self->length], other->content); self->length = length; return TRUE; - + error: return FALSE; } @@ -1561,7 +1561,7 @@ TRIO_ARGS2((self, other), TRIO_CONST char *other) { size_t length; - + assert(self); assert(other); @@ -1571,7 +1571,7 @@ TRIO_ARGS2((self, other), trio_copy(&self->content[self->length], other); self->length = length; return TRUE; - + error: return FALSE; } @@ -1597,7 +1597,7 @@ TRIO_ARGS2((self, character), self->content[self->length] = character; self->length++; return TRUE; - + error: return FALSE; } @@ -1606,7 +1606,7 @@ TRIO_ARGS2((self, character), #if !defined(TRIO_MINIMAL) /** Search for the first occurrence of second parameter in the first. - + @param self Dynamic string to be modified. @param other Dynamic string to copy from. @return Boolean value indicating success or failure. @@ -1691,7 +1691,7 @@ TRIO_ARGS1((other), trio_string_t *other) { trio_string_t *self; - + assert(other); self = TrioStringAlloc(); @@ -1722,7 +1722,7 @@ TRIO_ARGS1((other), TRIO_CONST char *other) { trio_string_t *self; - + assert(other); self = TrioStringAlloc(); diff --git a/uri.c b/uri.c index 7e2f525..4ab0ce2 100644 --- a/uri.c +++ b/uri.c @@ -1,12 +1,10 @@ /** - * uri.c: set of generic URI related routines + * uri.c: set of generic URI related routines * * Reference: RFCs 3986, 2732 and 2373 * * See Copyright for the status of this software. * - * TODO: that module behaves really badly on OOM situation - * * daniel@veillard.com */ @@ -20,6 +18,37 @@ #include #include +/** + * MAX_URI_LENGTH: + * + * The definition of the URI regexp in the above RFC has no size limit + * In practice they are usually relativey short except for the + * data URI scheme as defined in RFC 2397. Even for data URI the usual + * maximum size before hitting random practical limits is around 64 KB + * and 4KB is usually a maximum admitted limit for proper operations. + * The value below is more a security limit than anything else and + * really should never be hit by 'normal' operations + * Set to 1 MByte in 2012, this is only enforced on output + */ +#define MAX_URI_LENGTH 1024 * 1024 + +static void +xmlURIErrMemory(const char *extra) +{ + if (extra) + __xmlRaiseError(NULL, NULL, NULL, + NULL, NULL, XML_FROM_URI, + XML_ERR_NO_MEMORY, XML_ERR_FATAL, NULL, 0, + extra, NULL, NULL, 0, 0, + "Memory allocation failed : %s\n", extra); + else + __xmlRaiseError(NULL, NULL, NULL, + NULL, NULL, XML_FROM_URI, + XML_ERR_NO_MEMORY, XML_ERR_FATAL, NULL, 0, + NULL, NULL, NULL, 0, 0, + "Memory allocation failed\n"); +} + static void xmlCleanURI(xmlURIPtr uri); /* @@ -982,14 +1011,38 @@ xmlCreateURI(void) { ret = (xmlURIPtr) xmlMalloc(sizeof(xmlURI)); if (ret == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlCreateURI: out of memory\n"); + xmlURIErrMemory("creating URI structure\n"); return(NULL); } memset(ret, 0, sizeof(xmlURI)); return(ret); } +/** + * xmlSaveUriRealloc: + * + * Function to handle properly a reallocation when saving an URI + * Also imposes some limit on the length of an URI string output + */ +static xmlChar * +xmlSaveUriRealloc(xmlChar *ret, int *max) { + xmlChar *temp; + int tmp; + + if (*max > MAX_URI_LENGTH) { + xmlURIErrMemory("reaching arbitrary MAX_URI_LENGTH limit\n"); + return(NULL); + } + tmp = *max * 2; + temp = (xmlChar *) xmlRealloc(ret, (tmp + 1)); + if (temp == NULL) { + xmlURIErrMemory("saving URI\n"); + return(NULL); + } + *max = tmp; + return(temp); +} + /** * xmlSaveUri: * @uri: pointer to an xmlURI @@ -1012,8 +1065,7 @@ xmlSaveUri(xmlURIPtr uri) { max = 80; ret = (xmlChar *) xmlMallocAtomic((max + 1) * sizeof(xmlChar)); if (ret == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlSaveUri: out of memory\n"); + xmlURIErrMemory("saving URI\n"); return(NULL); } len = 0; @@ -1022,28 +1074,16 @@ xmlSaveUri(xmlURIPtr uri) { p = uri->scheme; while (*p != 0) { if (len >= max) { - max *= 2; - temp = (xmlChar *) xmlRealloc(ret, (max + 1) * sizeof(xmlChar)); - if (temp == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlSaveUri: out of memory\n"); - xmlFree(ret); - return(NULL); - } + temp = xmlSaveUriRealloc(ret, &max); + if (temp == NULL) goto mem_error; ret = temp; } ret[len++] = *p++; } if (len >= max) { - max *= 2; - temp = (xmlChar *) xmlRealloc(ret, (max + 1) * sizeof(xmlChar)); - if (temp == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlSaveUri: out of memory\n"); - xmlFree(ret); - return(NULL); - } - ret = temp; + temp = xmlSaveUriRealloc(ret, &max); + if (temp == NULL) goto mem_error; + ret = temp; } ret[len++] = ':'; } @@ -1051,15 +1091,9 @@ xmlSaveUri(xmlURIPtr uri) { p = uri->opaque; while (*p != 0) { if (len + 3 >= max) { - max *= 2; - temp = (xmlChar *) xmlRealloc(ret, (max + 1) * sizeof(xmlChar)); - if (temp == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlSaveUri: out of memory\n"); - xmlFree(ret); - return(NULL); - } - ret = temp; + temp = xmlSaveUriRealloc(ret, &max); + if (temp == NULL) goto mem_error; + ret = temp; } if (IS_RESERVED(*(p)) || IS_UNRESERVED(*(p))) ret[len++] = *p++; @@ -1074,15 +1108,9 @@ xmlSaveUri(xmlURIPtr uri) { } else { if (uri->server != NULL) { if (len + 3 >= max) { - max *= 2; - temp = (xmlChar *) xmlRealloc(ret, (max + 1) * sizeof(xmlChar)); - if (temp == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlSaveUri: out of memory\n"); - xmlFree(ret); - return(NULL); - } - ret = temp; + temp = xmlSaveUriRealloc(ret, &max); + if (temp == NULL) goto mem_error; + ret = temp; } ret[len++] = '/'; ret[len++] = '/'; @@ -1090,16 +1118,9 @@ xmlSaveUri(xmlURIPtr uri) { p = uri->user; while (*p != 0) { if (len + 3 >= max) { - max *= 2; - temp = (xmlChar *) xmlRealloc(ret, - (max + 1) * sizeof(xmlChar)); - if (temp == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlSaveUri: out of memory\n"); - xmlFree(ret); - return(NULL); - } - ret = temp; + temp = xmlSaveUriRealloc(ret, &max); + if (temp == NULL) goto mem_error; + ret = temp; } if ((IS_UNRESERVED(*(p))) || ((*(p) == ';')) || ((*(p) == ':')) || @@ -1116,78 +1137,43 @@ xmlSaveUri(xmlURIPtr uri) { } } if (len + 3 >= max) { - max *= 2; - temp = (xmlChar *) xmlRealloc(ret, - (max + 1) * sizeof(xmlChar)); - if (temp == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlSaveUri: out of memory\n"); - xmlFree(ret); - return(NULL); - } - ret = temp; + temp = xmlSaveUriRealloc(ret, &max); + if (temp == NULL) goto mem_error; + ret = temp; } ret[len++] = '@'; } p = uri->server; while (*p != 0) { if (len >= max) { - max *= 2; - temp = (xmlChar *) xmlRealloc(ret, - (max + 1) * sizeof(xmlChar)); - if (temp == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlSaveUri: out of memory\n"); - xmlFree(ret); - return(NULL); - } - ret = temp; + temp = xmlSaveUriRealloc(ret, &max); + if (temp == NULL) goto mem_error; + ret = temp; } ret[len++] = *p++; } if (uri->port > 0) { if (len + 10 >= max) { - max *= 2; - temp = (xmlChar *) xmlRealloc(ret, - (max + 1) * sizeof(xmlChar)); - if (temp == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlSaveUri: out of memory\n"); - xmlFree(ret); - return(NULL); - } - ret = temp; + temp = xmlSaveUriRealloc(ret, &max); + if (temp == NULL) goto mem_error; + ret = temp; } len += snprintf((char *) &ret[len], max - len, ":%d", uri->port); } } else if (uri->authority != NULL) { if (len + 3 >= max) { - max *= 2; - temp = (xmlChar *) xmlRealloc(ret, - (max + 1) * sizeof(xmlChar)); - if (temp == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlSaveUri: out of memory\n"); - xmlFree(ret); - return(NULL); - } - ret = temp; + temp = xmlSaveUriRealloc(ret, &max); + if (temp == NULL) goto mem_error; + ret = temp; } ret[len++] = '/'; ret[len++] = '/'; p = uri->authority; while (*p != 0) { if (len + 3 >= max) { - max *= 2; - temp = (xmlChar *) xmlRealloc(ret, - (max + 1) * sizeof(xmlChar)); - if (temp == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlSaveUri: out of memory\n"); - xmlFree(ret); - return(NULL); - } - ret = temp; + temp = xmlSaveUriRealloc(ret, &max); + if (temp == NULL) goto mem_error; + ret = temp; } if ((IS_UNRESERVED(*(p))) || ((*(p) == '$')) || ((*(p) == ',')) || ((*(p) == ';')) || @@ -1204,16 +1190,9 @@ xmlSaveUri(xmlURIPtr uri) { } } else if (uri->scheme != NULL) { if (len + 3 >= max) { - max *= 2; - temp = (xmlChar *) xmlRealloc(ret, - (max + 1) * sizeof(xmlChar)); - if (temp == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlSaveUri: out of memory\n"); - xmlFree(ret); - return(NULL); - } - ret = temp; + temp = xmlSaveUriRealloc(ret, &max); + if (temp == NULL) goto mem_error; + ret = temp; } ret[len++] = '/'; ret[len++] = '/'; @@ -1231,14 +1210,9 @@ xmlSaveUri(xmlURIPtr uri) { (p[2] == ':') && (xmlStrEqual(BAD_CAST uri->scheme, BAD_CAST "file"))) { if (len + 3 >= max) { - max *= 2; - ret = (xmlChar *) xmlRealloc(ret, - (max + 1) * sizeof(xmlChar)); - if (ret == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlSaveUri: out of memory\n"); - return(NULL); - } + temp = xmlSaveUriRealloc(ret, &max); + if (temp == NULL) goto mem_error; + ret = temp; } ret[len++] = *p++; ret[len++] = *p++; @@ -1246,16 +1220,9 @@ xmlSaveUri(xmlURIPtr uri) { } while (*p != 0) { if (len + 3 >= max) { - max *= 2; - temp = (xmlChar *) xmlRealloc(ret, - (max + 1) * sizeof(xmlChar)); - if (temp == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlSaveUri: out of memory\n"); - xmlFree(ret); - return(NULL); - } - ret = temp; + temp = xmlSaveUriRealloc(ret, &max); + if (temp == NULL) goto mem_error; + ret = temp; } if ((IS_UNRESERVED(*(p))) || ((*(p) == '/')) || ((*(p) == ';')) || ((*(p) == '@')) || ((*(p) == '&')) || @@ -1273,63 +1240,35 @@ xmlSaveUri(xmlURIPtr uri) { } if (uri->query_raw != NULL) { if (len + 1 >= max) { - max *= 2; - temp = (xmlChar *) xmlRealloc(ret, - (max + 1) * sizeof(xmlChar)); - if (temp == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlSaveUri: out of memory\n"); - xmlFree(ret); - return(NULL); - } - ret = temp; + temp = xmlSaveUriRealloc(ret, &max); + if (temp == NULL) goto mem_error; + ret = temp; } ret[len++] = '?'; p = uri->query_raw; while (*p != 0) { if (len + 1 >= max) { - max *= 2; - temp = (xmlChar *) xmlRealloc(ret, - (max + 1) * sizeof(xmlChar)); - if (temp == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlSaveUri: out of memory\n"); - xmlFree(ret); - return(NULL); - } - ret = temp; + temp = xmlSaveUriRealloc(ret, &max); + if (temp == NULL) goto mem_error; + ret = temp; } ret[len++] = *p++; } } else if (uri->query != NULL) { if (len + 3 >= max) { - max *= 2; - temp = (xmlChar *) xmlRealloc(ret, - (max + 1) * sizeof(xmlChar)); - if (temp == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlSaveUri: out of memory\n"); - xmlFree(ret); - return(NULL); - } - ret = temp; + temp = xmlSaveUriRealloc(ret, &max); + if (temp == NULL) goto mem_error; + ret = temp; } ret[len++] = '?'; p = uri->query; while (*p != 0) { if (len + 3 >= max) { - max *= 2; - temp = (xmlChar *) xmlRealloc(ret, - (max + 1) * sizeof(xmlChar)); - if (temp == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlSaveUri: out of memory\n"); - xmlFree(ret); - return(NULL); - } - ret = temp; + temp = xmlSaveUriRealloc(ret, &max); + if (temp == NULL) goto mem_error; + ret = temp; } - if ((IS_UNRESERVED(*(p))) || (IS_RESERVED(*(p)))) + if ((IS_UNRESERVED(*(p))) || (IS_RESERVED(*(p)))) ret[len++] = *p++; else { int val = *(unsigned char *)p++; @@ -1343,33 +1282,19 @@ xmlSaveUri(xmlURIPtr uri) { } if (uri->fragment != NULL) { if (len + 3 >= max) { - max *= 2; - temp = (xmlChar *) xmlRealloc(ret, - (max + 1) * sizeof(xmlChar)); - if (temp == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlSaveUri: out of memory\n"); - xmlFree(ret); - return(NULL); - } - ret = temp; + temp = xmlSaveUriRealloc(ret, &max); + if (temp == NULL) goto mem_error; + ret = temp; } ret[len++] = '#'; p = uri->fragment; while (*p != 0) { if (len + 3 >= max) { - max *= 2; - temp = (xmlChar *) xmlRealloc(ret, - (max + 1) * sizeof(xmlChar)); - if (temp == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlSaveUri: out of memory\n"); - xmlFree(ret); - return(NULL); - } - ret = temp; + temp = xmlSaveUriRealloc(ret, &max); + if (temp == NULL) goto mem_error; + ret = temp; } - if ((IS_UNRESERVED(*(p))) || (IS_RESERVED(*(p)))) + if ((IS_UNRESERVED(*(p))) || (IS_RESERVED(*(p)))) ret[len++] = *p++; else { int val = *(unsigned char *)p++; @@ -1381,18 +1306,16 @@ xmlSaveUri(xmlURIPtr uri) { } } if (len >= max) { - max *= 2; - temp = (xmlChar *) xmlRealloc(ret, (max + 1) * sizeof(xmlChar)); - if (temp == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlSaveUri: out of memory\n"); - xmlFree(ret); - return(NULL); - } - ret = temp; + temp = xmlSaveUriRealloc(ret, &max); + if (temp == NULL) goto mem_error; + ret = temp; } ret[len] = 0; return(ret); + +mem_error: + xmlFree(ret); + return(NULL); } /** @@ -1695,8 +1618,7 @@ xmlURIUnescapeString(const char *str, int len, char *target) { if (target == NULL) { ret = (char *) xmlMallocAtomic(len + 1); if (ret == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlURIUnescapeString: out of memory\n"); + xmlURIErrMemory("unescaping URI value\n"); return(NULL); } } else @@ -1706,14 +1628,14 @@ xmlURIUnescapeString(const char *str, int len, char *target) { while(len > 0) { if ((len > 2) && (*in == '%') && (is_hex(in[1])) && (is_hex(in[2]))) { in++; - if ((*in >= '0') && (*in <= '9')) + if ((*in >= '0') && (*in <= '9')) *out = (*in - '0'); else if ((*in >= 'a') && (*in <= 'f')) *out = (*in - 'a') + 10; else if ((*in >= 'A') && (*in <= 'F')) *out = (*in - 'A') + 10; in++; - if ((*in >= '0') && (*in <= '9')) + if ((*in >= '0') && (*in <= '9')) *out = *out * 16 + (*in - '0'); else if ((*in >= 'a') && (*in <= 'f')) *out = *out * 16 + (*in - 'a') + 10; @@ -1746,8 +1668,7 @@ xmlURIEscapeStr(const xmlChar *str, const xmlChar *list) { xmlChar *ret, ch; xmlChar *temp; const xmlChar *in; - - unsigned int len, out; + int len, out; if (str == NULL) return(NULL); @@ -1759,19 +1680,16 @@ xmlURIEscapeStr(const xmlChar *str, const xmlChar *list) { len += 20; ret = (xmlChar *) xmlMallocAtomic(len); if (ret == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlURIEscapeStr: out of memory\n"); + xmlURIErrMemory("escaping URI value\n"); return(NULL); } in = (const xmlChar *) str; out = 0; while(*in != 0) { if (len - out <= 3) { - len += 20; - temp = (xmlChar *) xmlRealloc(ret, len); + temp = xmlSaveUriRealloc(ret, &len); if (temp == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlURIEscapeStr: out of memory\n"); + xmlURIErrMemory("escaping URI value\n"); xmlFree(ret); return(NULL); } @@ -1826,10 +1744,9 @@ xmlURIEscape(const xmlChar * str) int ret2; #define NULLCHK(p) if(!p) { \ - xmlGenericError(xmlGenericErrorContext, \ - "xmlURIEscape: out of memory\n"); \ - xmlFreeURI(uri); \ - return NULL; } \ + xmlURIErrMemory("escaping URI value\n"); \ + xmlFreeURI(uri); \ + return NULL; } \ if (str == NULL) return (NULL); @@ -1872,7 +1789,7 @@ xmlURIEscape(const xmlChar * str) if (uri->user) { segment = xmlURIEscapeStr(BAD_CAST uri->user, BAD_CAST ";:&=+$,"); NULLCHK(segment) - ret = xmlStrcat(ret,BAD_CAST "//"); + ret = xmlStrcat(ret,BAD_CAST "//"); ret = xmlStrcat(ret, segment); ret = xmlStrcat(ret, BAD_CAST "@"); xmlFree(segment); @@ -1950,7 +1867,7 @@ xmlURIEscape(const xmlChar * str) * * Computes he final URI of the reference done by checking that * the given URI is valid, and building the final URI using the - * base URI. This is processed according to section 5.2 of the + * base URI. This is processed according to section 5.2 of the * RFC 2396 * * 5.2. Resolving Relative References to Absolute Form @@ -1974,7 +1891,7 @@ xmlBuildURI(const xmlChar *URI, const xmlChar *base) { * as a reference to "." rather than as a synonym for the current * URI. Should we do that here? */ - if (URI == NULL) + if (URI == NULL) ret = -1; else { if (*URI) { @@ -2045,7 +1962,7 @@ xmlBuildURI(const xmlChar *URI, const xmlChar *base) { res->server = xmlMemStrdup(bas->server); if (bas->user != NULL) res->user = xmlMemStrdup(bas->user); - res->port = bas->port; + res->port = bas->port; } if (bas->path != NULL) res->path = xmlMemStrdup(bas->path); @@ -2074,7 +1991,7 @@ xmlBuildURI(const xmlChar *URI, const xmlChar *base) { } if (bas->scheme != NULL) res->scheme = xmlMemStrdup(bas->scheme); - + if (ref->query_raw != NULL) res->query_raw = xmlMemStrdup(ref->query_raw); else if (ref->query != NULL) @@ -2096,7 +2013,7 @@ xmlBuildURI(const xmlChar *URI, const xmlChar *base) { res->server = xmlMemStrdup(ref->server); if (ref->user != NULL) res->user = xmlMemStrdup(ref->user); - res->port = ref->port; + res->port = ref->port; } if (ref->path != NULL) res->path = xmlMemStrdup(ref->path); @@ -2108,7 +2025,7 @@ xmlBuildURI(const xmlChar *URI, const xmlChar *base) { res->server = xmlMemStrdup(bas->server); if (bas->user != NULL) res->user = xmlMemStrdup(bas->user); - res->port = bas->port; + res->port = bas->port; } /* @@ -2136,8 +2053,7 @@ xmlBuildURI(const xmlChar *URI, const xmlChar *base) { len += strlen(bas->path); res->path = (char *) xmlMallocAtomic(len); if (res->path == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlBuildURI: out of memory\n"); + xmlURIErrMemory("resolving URI against base\n"); goto done; } res->path[0] = 0; @@ -2383,7 +2299,7 @@ xmlBuildRelativeURI (const xmlChar * URI, const xmlChar * base) } len = xmlStrlen (uptr) + 1; } - + if (nbslash == 0) { if (uptr != NULL) /* exception characters from xmlSaveUri */ @@ -2398,8 +2314,7 @@ xmlBuildRelativeURI (const xmlChar * URI, const xmlChar * base) */ val = (xmlChar *) xmlMalloc (len + 3 * nbslash); if (val == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlBuildRelativeURI: out of memory\n"); + xmlURIErrMemory("building relative URI\n"); goto done; } vptr = val; @@ -2451,14 +2366,14 @@ done: * xmlCanonicPath: * @path: the resource locator in a filesystem notation * - * Constructs a canonic path from the specified path. + * Constructs a canonic path from the specified path. * - * Returns a new canonic path, or a duplicate of the path parameter if the + * Returns a new canonic path, or a duplicate of the path parameter if the * construction fails. The caller is responsible for freeing the memory occupied - * by the returned string. If there is insufficient memory available, or the + * by the returned string. If there is insufficient memory available, or the * argument is NULL, the function returns NULL. */ -#define IS_WINDOWS_PATH(p) \ +#define IS_WINDOWS_PATH(p) \ ((p != NULL) && \ (((p[0] >= 'a') && (p[0] <= 'z')) || \ ((p[0] >= 'A') && (p[0] <= 'Z'))) && \ @@ -2470,7 +2385,7 @@ xmlCanonicPath(const xmlChar *path) * For Windows implementations, additional work needs to be done to * replace backslashes in pathnames with "forward slashes" */ -#if defined(_WIN32) && !defined(__CYGWIN__) +#if defined(_WIN32) && !defined(__CYGWIN__) int len = 0; int i = 0; xmlChar *p = NULL; @@ -2482,7 +2397,20 @@ xmlCanonicPath(const xmlChar *path) if (path == NULL) return(NULL); - /* sanitize filename starting with // so it can be used as URI */ +#if defined(_WIN32) + /* + * We must not change the backslashes to slashes if the the path + * starts with \\?\ + * Those paths can be up to 32k characters long. + * Was added specifically for OpenOffice, those paths can't be converted + * to URIs anyway. + */ + if ((path[0] == '\\') && (path[1] == '\\') && (path[2] == '?') && + (path[3] == '\\') ) + return xmlStrdup((const xmlChar *) path); +#endif + + /* sanitize filename starting with // so it can be used as URI */ if ((path[0] == '/') && (path[1] == '/') && (path[2] != '/')) path++; @@ -2529,7 +2457,7 @@ xmlCanonicPath(const xmlChar *path) path_processing: /* For Windows implementations, replace backslashes with 'forward slashes' */ -#if defined(_WIN32) && !defined(__CYGWIN__) +#if defined(_WIN32) && !defined(__CYGWIN__) /* * Create a URI structure */ @@ -2586,7 +2514,7 @@ path_processing: * * Constructs an URI expressing the existing path * - * Returns a new URI, or a duplicate of the path parameter if the + * Returns a new URI, or a duplicate of the path parameter if the * construction fails. The caller is responsible for freeing the memory * occupied by the returned string. If there is insufficient memory available, * or the argument is NULL, the function returns NULL. @@ -2609,7 +2537,7 @@ xmlPathToURI(const xmlChar *path) if (cal == NULL) return(NULL); #if defined(_WIN32) && !defined(__CYGWIN__) - /* xmlCanonicPath can return an URI on Windows (is that the intended behaviour?) + /* xmlCanonicPath can return an URI on Windows (is that the intended behaviour?) If 'cal' is a valid URI allready then we are done here, as continuing would make it invalid. */ if ((uri = xmlParseURI((const char *) cal)) != NULL) { diff --git a/valid.c b/valid.c index 5de491d..10bc4f4 100644 --- a/valid.c +++ b/valid.c @@ -31,7 +31,7 @@ static xmlElementPtr xmlGetDtdElementDesc2(xmlDtdPtr dtd, const xmlChar *name, /* #define DEBUG_VALID_ALGO */ /* #define DEBUG_REGEXP_ALGO */ -#define TODO \ +#define TODO \ xmlGenericError(xmlGenericErrorContext, \ "Unimplemented block at %s:%d\n", \ __FILE__, __LINE__); @@ -301,7 +301,7 @@ vstateVPush(xmlValidCtxtPtr ctxt, xmlElementPtr elemDecl, xmlNodePtr node) { if (elemDecl->contModel == NULL) xmlValidBuildContentModel(ctxt, elemDecl); if (elemDecl->contModel != NULL) { - ctxt->vstateTab[ctxt->vstateNr].exec = + ctxt->vstateTab[ctxt->vstateNr].exec = xmlRegNewExecCtxt(elemDecl->contModel, NULL, NULL); } else { ctxt->vstateTab[ctxt->vstateNr].exec = NULL; @@ -623,7 +623,7 @@ xmlValidStateDebug(xmlValidCtxtPtr ctxt) { #define DEBUG_VALID_STATE(n,c) xmlValidStateDebug(ctxt); #define DEBUG_VALID_MSG(m) \ xmlGenericError(xmlGenericErrorContext, "%s\n", m); - + #else #define DEBUG_VALID_STATE(n,c) #define DEBUG_VALID_MSG(m) @@ -676,7 +676,7 @@ xmlValidBuildAContentModel(xmlElementContentPtr content, xmlAutomataStatePtr oldstate = ctxt->state; xmlChar fn[50]; xmlChar *fullname; - + fullname = xmlBuildQName(content->name, content->prefix, fn, 50); if (fullname == NULL) { xmlVErrMemory(ctxt, "Building content model"); @@ -701,9 +701,9 @@ xmlValidBuildAContentModel(xmlElementContentPtr content, break; case XML_ELEMENT_CONTENT_MULT: ctxt->state = xmlAutomataNewEpsilon(ctxt->am, - ctxt->state, NULL); + ctxt->state, NULL); xmlAutomataNewTransition(ctxt->am, - ctxt->state, ctxt->state, fullname, NULL); + ctxt->state, ctxt->state, fullname, NULL); break; } if ((fullname != fn) && (fullname != content->name)) @@ -752,7 +752,7 @@ xmlValidBuildAContentModel(xmlElementContentPtr content, xmlElementContentOccur ocur; ocur = content->ocur; - if ((ocur == XML_ELEMENT_CONTENT_PLUS) || + if ((ocur == XML_ELEMENT_CONTENT_PLUS) || (ocur == XML_ELEMENT_CONTENT_MULT)) { ctxt->state = xmlAutomataNewEpsilon(ctxt->am, ctxt->state, NULL); @@ -944,7 +944,7 @@ xmlNewDocElementContent(xmlDocPtr doc, const xmlChar *name, } break; default: - xmlErrValid(NULL, XML_ERR_INTERNAL_ERROR, + xmlErrValid(NULL, XML_ERR_INTERNAL_ERROR, "Internal: ELEMENT content corrupted invalid type\n", NULL); return(NULL); @@ -1001,7 +1001,7 @@ xmlNewElementContent(const xmlChar *name, xmlElementContentType type) { * @cur: An element content pointer. * * Build a copy of an element content description. - * + * * Returns the new xmlElementContentPtr or NULL in case of error. */ xmlElementContentPtr @@ -1028,7 +1028,7 @@ xmlCopyDocElementContent(xmlDocPtr doc, xmlElementContentPtr cur) { else ret->name = xmlStrdup(cur->name); } - + if (cur->prefix != NULL) { if (dict) ret->prefix = xmlDictLookup(dict, cur->prefix, -1); @@ -1058,7 +1058,7 @@ xmlCopyDocElementContent(xmlDocPtr doc, xmlElementContentPtr cur) { else tmp->name = xmlStrdup(cur->name); } - + if (cur->prefix != NULL) { if (dict) tmp->prefix = xmlDictLookup(dict, cur->prefix, -1); @@ -1082,7 +1082,7 @@ xmlCopyDocElementContent(xmlDocPtr doc, xmlElementContentPtr cur) { * * Build a copy of an element content description. * Deprecated, use xmlCopyDocElementContent instead - * + * * Returns the new xmlElementContentPtr or NULL in case of error. */ xmlElementContentPtr @@ -1114,7 +1114,7 @@ xmlFreeDocElementContent(xmlDocPtr doc, xmlElementContentPtr cur) { case XML_ELEMENT_CONTENT_OR: break; default: - xmlErrValid(NULL, XML_ERR_INTERNAL_ERROR, + xmlErrValid(NULL, XML_ERR_INTERNAL_ERROR, "Internal: ELEMENT content corrupted invalid type\n", NULL); return; @@ -1200,7 +1200,7 @@ xmlDumpElementContent(xmlBufferPtr buf, xmlElementContentPtr content, int glob) xmlDumpElementContent(buf, content->c2, 0); break; default: - xmlErrValid(NULL, XML_ERR_INTERNAL_ERROR, + xmlErrValid(NULL, XML_ERR_INTERNAL_ERROR, "Internal: ELEMENT content corrupted invalid type\n", NULL); } @@ -1397,7 +1397,7 @@ xmlAddElementDecl(xmlValidCtxtPtr ctxt, switch (type) { case XML_ELEMENT_TYPE_EMPTY: if (content != NULL) { - xmlErrValid(ctxt, XML_ERR_INTERNAL_ERROR, + xmlErrValid(ctxt, XML_ERR_INTERNAL_ERROR, "xmlAddElementDecl: content != NULL for EMPTY\n", NULL); return(NULL); @@ -1405,7 +1405,7 @@ xmlAddElementDecl(xmlValidCtxtPtr ctxt, break; case XML_ELEMENT_TYPE_ANY: if (content != NULL) { - xmlErrValid(ctxt, XML_ERR_INTERNAL_ERROR, + xmlErrValid(ctxt, XML_ERR_INTERNAL_ERROR, "xmlAddElementDecl: content != NULL for ANY\n", NULL); return(NULL); @@ -1413,7 +1413,7 @@ xmlAddElementDecl(xmlValidCtxtPtr ctxt, break; case XML_ELEMENT_TYPE_MIXED: if (content == NULL) { - xmlErrValid(ctxt, XML_ERR_INTERNAL_ERROR, + xmlErrValid(ctxt, XML_ERR_INTERNAL_ERROR, "xmlAddElementDecl: content == NULL for MIXED\n", NULL); return(NULL); @@ -1421,14 +1421,14 @@ xmlAddElementDecl(xmlValidCtxtPtr ctxt, break; case XML_ELEMENT_TYPE_ELEMENT: if (content == NULL) { - xmlErrValid(ctxt, XML_ERR_INTERNAL_ERROR, + xmlErrValid(ctxt, XML_ERR_INTERNAL_ERROR, "xmlAddElementDecl: content == NULL for ELEMENT\n", NULL); return(NULL); } break; default: - xmlErrValid(ctxt, XML_ERR_INTERNAL_ERROR, + xmlErrValid(ctxt, XML_ERR_INTERNAL_ERROR, "Internal: ELEMENT decl corrupted invalid type\n", NULL); return(NULL); @@ -1608,7 +1608,7 @@ xmlFreeElementTable(xmlElementTablePtr table) { * @elem: An element * * Build a copy of an element. - * + * * Returns the new xmlElementPtr or NULL in case of error. */ static xmlElementPtr @@ -1642,7 +1642,7 @@ xmlCopyElement(xmlElementPtr elem) { * @table: An element table * * Build a copy of an element table. - * + * * Returns the new xmlElementTablePtr or NULL in case of error. */ xmlElementTablePtr @@ -1707,7 +1707,7 @@ xmlDumpElementDecl(xmlBufferPtr buf, xmlElementPtr elem) { xmlBufferWriteChar(buf, ">\n"); break; default: - xmlErrValid(NULL, XML_ERR_INTERNAL_ERROR, + xmlErrValid(NULL, XML_ERR_INTERNAL_ERROR, "Internal: ELEMENT struct corrupted invalid type\n", NULL); } @@ -1818,7 +1818,7 @@ static void xmlDumpEnumeration(xmlBufferPtr buf, xmlEnumerationPtr cur) { if ((buf == NULL) || (cur == NULL)) return; - + xmlBufferWriteCHAR(buf, cur->name); if (cur->next == NULL) xmlBufferWriteChar(buf, ")"); @@ -1973,13 +1973,13 @@ xmlAddAttributeDecl(xmlValidCtxtPtr ctxt, case XML_ATTRIBUTE_NOTATION: break; default: - xmlErrValid(ctxt, XML_ERR_INTERNAL_ERROR, + xmlErrValid(ctxt, XML_ERR_INTERNAL_ERROR, "Internal: ATTRIBUTE struct corrupted invalid type\n", NULL); xmlFreeEnumeration(tree); return(NULL); } - if ((defaultValue != NULL) && + if ((defaultValue != NULL) && (!xmlValidateAttributeValueInternal(dtd->doc, type, defaultValue))) { xmlErrValidNode(ctxt, (xmlNodePtr) dtd, XML_DTD_ATTRIBUTE_DEFAULT, "Attribute %s of %s: invalid default value\n", @@ -2153,7 +2153,7 @@ xmlFreeAttributeTable(xmlAttributeTablePtr table) { * @attr: An attribute * * Build a copy of an attribute. - * + * * Returns the new xmlAttributePtr or NULL in case of error. */ static xmlAttributePtr @@ -2186,7 +2186,7 @@ xmlCopyAttribute(xmlAttributePtr attr) { * @table: An attribute table * * Build a copy of an attribute table. - * + * * Returns the new xmlAttributeTablePtr or NULL in case of error. */ xmlAttributeTablePtr @@ -2251,7 +2251,7 @@ xmlDumpAttributeDecl(xmlBufferPtr buf, xmlAttributePtr attr) { xmlDumpEnumeration(buf, attr->tree); break; default: - xmlErrValid(NULL, XML_ERR_INTERNAL_ERROR, + xmlErrValid(NULL, XML_ERR_INTERNAL_ERROR, "Internal: ATTRIBUTE struct corrupted invalid type\n", NULL); } @@ -2268,7 +2268,7 @@ xmlDumpAttributeDecl(xmlBufferPtr buf, xmlAttributePtr attr) { xmlBufferWriteChar(buf, " #FIXED"); break; default: - xmlErrValid(NULL, XML_ERR_INTERNAL_ERROR, + xmlErrValid(NULL, XML_ERR_INTERNAL_ERROR, "Internal: ATTRIBUTE struct corrupted invalid def\n", NULL); } @@ -2398,7 +2398,7 @@ xmlAddNotationDecl(xmlValidCtxtPtr ctxt, xmlDtdPtr dtd, */ if (xmlHashAddEntry(table, name, ret)) { #ifdef LIBXML_VALID_ENABLED - xmlErrValid(NULL, XML_DTD_NOTATION_REDEFINED, + xmlErrValid(NULL, XML_DTD_NOTATION_REDEFINED, "xmlAddNotationDecl: %s already defined\n", (const char *) name); #endif /* LIBXML_VALID_ENABLED */ @@ -2425,7 +2425,7 @@ xmlFreeNotationTable(xmlNotationTablePtr table) { * @nota: A notation * * Build a copy of a notation. - * + * * Returns the new xmlNotationPtr or NULL in case of error. */ static xmlNotationPtr @@ -2457,7 +2457,7 @@ xmlCopyNotation(xmlNotationPtr nota) { * @table: A notation table * * Build a copy of a notation table. - * + * * Returns the new xmlNotationTablePtr or NULL in case of error. */ xmlNotationTablePtr @@ -2535,7 +2535,7 @@ xmlDumpNotationTable(xmlBufferPtr buf, xmlNotationTablePtr table) { * current scope */ #define DICT_FREE(str) \ - if ((str) && ((!dict) || \ + if ((str) && ((!dict) || \ (xmlDictOwns(dict, (const xmlChar *)(str)) == 0))) \ xmlFree((char *)(str)); @@ -2573,7 +2573,7 @@ xmlFreeID(xmlIDPtr id) { * * Returns NULL if not, otherwise the new xmlIDPtr */ -xmlIDPtr +xmlIDPtr xmlAddID(xmlValidCtxtPtr ctxt, xmlDocPtr doc, const xmlChar *value, xmlAttrPtr attr) { xmlIDPtr ret; @@ -2687,7 +2687,7 @@ xmlIsID(xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr) { ((xmlStrEqual(BAD_CAST "name", attr->name)) && ((elem == NULL) || (xmlStrEqual(elem->name, BAD_CAST "a"))))) return(1); - return(0); + return(0); } else if (elem == NULL) { return(0); } else { @@ -2741,7 +2741,7 @@ xmlRemoveID(xmlDocPtr doc, xmlAttrPtr attr) { if (doc == NULL) return(-1); if (attr == NULL) return(-1); table = (xmlIDTablePtr) doc->ids; - if (table == NULL) + if (table == NULL) return(-1); if (attr == NULL) @@ -2769,7 +2769,7 @@ xmlRemoveID(xmlDocPtr doc, xmlAttrPtr attr) { * * Returns NULL if not found, otherwise the xmlAttrPtr defining the ID */ -xmlAttrPtr +xmlAttrPtr xmlGetID(xmlDocPtr doc, const xmlChar *ID) { xmlIDTablePtr table; xmlIDPtr id; @@ -2783,7 +2783,7 @@ xmlGetID(xmlDocPtr doc, const xmlChar *ID) { } table = (xmlIDTablePtr) doc->ids; - if (table == NULL) + if (table == NULL) return(NULL); id = xmlHashLookup(table, ID); @@ -2804,7 +2804,7 @@ xmlGetID(xmlDocPtr doc, const xmlChar *ID) { * Refs * * * ************************************************************************/ -typedef struct xmlRemoveMemo_t +typedef struct xmlRemoveMemo_t { xmlListPtr l; xmlAttrPtr ap; @@ -2812,7 +2812,7 @@ typedef struct xmlRemoveMemo_t typedef xmlRemoveMemo *xmlRemoveMemoPtr; -typedef struct xmlValidateMemo_t +typedef struct xmlValidateMemo_t { xmlValidCtxtPtr ctxt; const xmlChar *name; @@ -2895,7 +2895,7 @@ xmlDummyCompare(const void *data0 ATTRIBUTE_UNUSED, * * Returns NULL if not, otherwise the new xmlRefPtr */ -xmlRefPtr +xmlRefPtr xmlAddRef(xmlValidCtxtPtr ctxt, xmlDocPtr doc, const xmlChar *value, xmlAttrPtr attr) { xmlRefPtr ret; @@ -3023,7 +3023,7 @@ xmlIsRef(xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr) { return(0); } else if (doc->type == XML_HTML_DOCUMENT_NODE) { /* TODO @@@ */ - return(0); + return(0); } else { xmlAttributePtr attrDecl; @@ -3060,7 +3060,7 @@ xmlRemoveRef(xmlDocPtr doc, xmlAttrPtr attr) { if (doc == NULL) return(-1); if (attr == NULL) return(-1); table = (xmlRefTablePtr) doc->refs; - if (table == NULL) + if (table == NULL) return(-1); if (attr == NULL) @@ -3086,7 +3086,7 @@ xmlRemoveRef(xmlDocPtr doc, xmlAttrPtr attr) { */ target.l = ref_list; target.ap = attr; - + /* Remove the supplied attr from our list */ xmlListWalk(ref_list, xmlWalkRemoveRef, &target); @@ -3103,11 +3103,11 @@ xmlRemoveRef(xmlDocPtr doc, xmlAttrPtr attr) { * @doc: pointer to the document * @ID: the ID value * - * Find the set of references for the supplied ID. + * Find the set of references for the supplied ID. * * Returns NULL if not found, otherwise node set for the ID. */ -xmlListPtr +xmlListPtr xmlGetRefs(xmlDocPtr doc, const xmlChar *ID) { xmlRefTablePtr table; @@ -3120,7 +3120,7 @@ xmlGetRefs(xmlDocPtr doc, const xmlChar *ID) { } table = (xmlRefTablePtr) doc->refs; - if (table == NULL) + if (table == NULL) return(NULL); return (xmlHashLookup(table, ID)); @@ -3185,7 +3185,7 @@ xmlGetDtdElementDesc2(xmlDtdPtr dtd, const xmlChar *name, int create) { if (dtd->doc != NULL) dict = dtd->doc->dict; - if (!create) + if (!create) return(NULL); /* * Create the Element table if needed. @@ -3798,7 +3798,7 @@ xmlValidateAttributeValueInternal(xmlDocPtr doc, xmlAttributeType type, * * [ VC: Name Token ] * Values of type NMTOKEN must match the Nmtoken production; values - * of type NMTOKENS must match Nmtokens. + * of type NMTOKENS must match Nmtokens. * * returns 1 if valid or 0 otherwise */ @@ -3857,7 +3857,7 @@ xmlValidateAttributeValue2(xmlValidCtxtPtr ctxt, xmlDocPtr doc, if ((ent == NULL) && (doc->standalone == 1)) { doc->standalone = 0; ent = xmlGetDocEntity(doc, value); - } + } if (ent == NULL) { xmlErrValidNode(ctxt, (xmlNodePtr) doc, XML_DTD_UNKNOWN_ENTITY, @@ -3968,7 +3968,7 @@ xmlValidCtxtNormalizeAttributeValue(xmlValidCtxtPtr ctxt, xmlDocPtr doc, if ((elem->ns != NULL) && (elem->ns->prefix != NULL)) { xmlChar fn[50]; xmlChar *fullname; - + fullname = xmlBuildQName(elem->name, elem->ns->prefix, fn, 50); if (fullname == NULL) return(NULL); @@ -4167,7 +4167,7 @@ xmlValidateAttributeDecl(xmlValidCtxtPtr ctxt, xmlDocPtr doc, } } if (nbId > 1) { - + xmlErrValidNodeNr(ctxt, (xmlNodePtr) attr, XML_DTD_ID_SUBSET, "Element %s has %d ID attribute defined in the internal subset : %s\n", attr->elem, nbId, attr->name); @@ -4230,7 +4230,7 @@ xmlValidateElementDecl(xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlElementPtr tst; CHECK_DTD; - + if (elem == NULL) return(1); #if 0 @@ -4347,7 +4347,7 @@ xmlValidateElementDecl(xmlValidCtxtPtr ctxt, xmlDocPtr doc, int xmlValidateOneAttribute(xmlValidCtxtPtr ctxt, xmlDocPtr doc, - xmlNodePtr elem, xmlAttrPtr attr, const xmlChar *value) + xmlNodePtr elem, xmlAttrPtr attr, const xmlChar *value) { xmlAttributePtr attrDecl = NULL; int val; @@ -4360,7 +4360,7 @@ xmlValidateOneAttribute(xmlValidCtxtPtr ctxt, xmlDocPtr doc, if ((elem->ns != NULL) && (elem->ns->prefix != NULL)) { xmlChar fn[50]; xmlChar *fullname; - + fullname = xmlBuildQName(elem->name, elem->ns->prefix, fn, 50); if (fullname == NULL) return(0); @@ -4444,7 +4444,7 @@ xmlValidateOneAttribute(xmlValidCtxtPtr ctxt, xmlDocPtr doc, nota = xmlGetDtdNotationDesc(doc->intSubset, value); if (nota == NULL) nota = xmlGetDtdNotationDesc(doc->extSubset, value); - + if (nota == NULL) { xmlErrValidNode(ctxt, elem, XML_DTD_UNKNOWN_NOTATION, "Value \"%s\" for attribute %s of %s is not a declared Notation\n", @@ -4537,7 +4537,7 @@ xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, const xmlChar *value) { if (prefix != NULL) { xmlChar fn[50]; xmlChar *fullname; - + fullname = xmlBuildQName(elem->name, prefix, fn, 50); if (fullname == NULL) { xmlVErrMemory(ctxt, "Validating namespace"); @@ -4641,7 +4641,7 @@ xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, const xmlChar *value) { nota = xmlGetDtdNotationDesc(doc->intSubset, value); if (nota == NULL) nota = xmlGetDtdNotationDesc(doc->extSubset, value); - + if (nota == NULL) { if (ns->prefix != NULL) { xmlErrValidNode(ctxt, elem, XML_DTD_UNKNOWN_NOTATION, @@ -4777,7 +4777,7 @@ xmlValidateElementType(xmlValidCtxtPtr ctxt) { NODE = xmlValidateSkipIgnorable(NODE); if ((NODE == NULL) && (CONT == NULL)) return(1); - if ((NODE == NULL) && + if ((NODE == NULL) && ((CONT->ocur == XML_ELEMENT_CONTENT_MULT) || (CONT->ocur == XML_ELEMENT_CONTENT_OPT))) { return(1); @@ -5236,7 +5236,7 @@ xmlValidateElementContent(xmlValidCtxtPtr ctxt, xmlNodePtr child, xmlElementContentPtr cont; const xmlChar *name; - if (elemDecl == NULL) + if ((elemDecl == NULL) || (parent == NULL)) return(-1); cont = elemDecl->content; name = elemDecl->name; @@ -5286,7 +5286,7 @@ xmlValidateElementContent(xmlValidCtxtPtr ctxt, xmlNodePtr child, if ((cur->ns != NULL) && (cur->ns->prefix != NULL)) { xmlChar fn[50]; xmlChar *fullname; - + fullname = xmlBuildQName(cur->name, cur->ns->prefix, fn, 50); if (fullname == NULL) { @@ -5400,7 +5400,7 @@ fail: last = tmp; } if (cur->type == XML_CDATA_SECTION_NODE) { - /* + /* * E59 spaces in CDATA does not match the * nonterminal S */ @@ -5517,7 +5517,8 @@ xmlValidateOneCdataElement(xmlValidCtxtPtr ctxt, xmlDocPtr doc, int ret = 1; xmlNodePtr cur, child; - if ((ctxt == NULL) || (doc == NULL) || (elem == NULL)) + if ((ctxt == NULL) || (doc == NULL) || (elem == NULL) || + (elem->type != XML_ELEMENT_NODE)) return(0); child = elem->children; @@ -5598,7 +5599,7 @@ xmlValidateCheckMixed(xmlValidCtxtPtr ctxt, } else if ((cont->type != XML_ELEMENT_CONTENT_OR) || (cont->c1 == NULL) || (cont->c1->type != XML_ELEMENT_CONTENT_PCDATA)){ - xmlErrValid(NULL, XML_DTD_MIXED_CORRUPT, + xmlErrValid(NULL, XML_DTD_MIXED_CORRUPT, "Internal: MIXED struct corrupted\n", NULL); break; @@ -5622,7 +5623,7 @@ xmlValidateCheckMixed(xmlValidCtxtPtr ctxt, } else if ((cont->type != XML_ELEMENT_CONTENT_OR) || (cont->c1 == NULL) || (cont->c1->type != XML_ELEMENT_CONTENT_PCDATA)){ - xmlErrValid(ctxt, XML_DTD_MIXED_CORRUPT, + xmlErrValid(ctxt, XML_DTD_MIXED_CORRUPT, "Internal: MIXED struct corrupted\n", NULL); break; @@ -5651,7 +5652,7 @@ xmlValidGetElemDecl(xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlElementPtr elemDecl = NULL; const xmlChar *prefix = NULL; - if ((ctxt == NULL) || (doc == NULL) || + if ((ctxt == NULL) || (doc == NULL) || (elem == NULL) || (elem->name == NULL)) return(NULL); if (extsubset != NULL) @@ -6017,7 +6018,7 @@ xmlValidateOneElement(xmlValidCtxtPtr ctxt, xmlDocPtr doc, return(0); /* - * If vstateNr is not zero that means continuous validation is + * If vstateNr is not zero that means continuous validation is * activated, do not try to check the content model at that level. */ if (ctxt->vstateNr == 0) { @@ -6060,7 +6061,7 @@ xmlValidateOneElement(xmlValidCtxtPtr ctxt, xmlDocPtr doc, if ((child->ns != NULL) && (child->ns->prefix != NULL)) { xmlChar fn[50]; xmlChar *fullname; - + fullname = xmlBuildQName(child->name, child->ns->prefix, fn, 50); if (fullname == NULL) @@ -6078,7 +6079,7 @@ xmlValidateOneElement(xmlValidCtxtPtr ctxt, xmlDocPtr doc, } else if ((cont->type != XML_ELEMENT_CONTENT_OR) || (cont->c1 == NULL) || (cont->c1->type != XML_ELEMENT_CONTENT_PCDATA)){ - xmlErrValid(NULL, XML_DTD_MIXED_CORRUPT, + xmlErrValid(NULL, XML_DTD_MIXED_CORRUPT, "Internal: MIXED struct corrupted\n", NULL); break; @@ -6101,7 +6102,7 @@ xmlValidateOneElement(xmlValidCtxtPtr ctxt, xmlDocPtr doc, } else if ((cont->type != XML_ELEMENT_CONTENT_OR) || (cont->c1 == NULL) || (cont->c1->type != XML_ELEMENT_CONTENT_PCDATA)) { - xmlErrValid(ctxt, XML_DTD_MIXED_CORRUPT, + xmlErrValid(ctxt, XML_DTD_MIXED_CORRUPT, "Internal: MIXED struct corrupted\n", NULL); break; @@ -6181,7 +6182,7 @@ child_ok: } } else { xmlAttrPtr attrib; - + attrib = elem->properties; while (attrib != NULL) { if (xmlStrEqual(attrib->name, attr->name)) { @@ -6196,18 +6197,18 @@ child_ok: * allow to define the URI instead of the prefix :-( */ if (nameSpace == NULL) { - if (qualified < 0) + if (qualified < 0) qualified = 0; } else if (!xmlStrEqual(nameSpace->prefix, attr->prefix)) { - if (qualified < 1) + if (qualified < 1) qualified = 1; } else goto found; } else { /* * We should allow applications to define namespaces - * for their application even if the DTD doesn't + * for their application even if the DTD doesn't * carry one, otherwise, basically we would always * break. */ @@ -6280,7 +6281,7 @@ child_ok: } } } -found: +found: attr = attr->nexth; } return(ret); @@ -6327,7 +6328,7 @@ xmlValidateRoot(xmlValidCtxtPtr ctxt, xmlDocPtr doc) { if ((root->ns != NULL) && (root->ns->prefix != NULL)) { xmlChar fn[50]; xmlChar *fullname; - + fullname = xmlBuildQName(root->name, root->ns->prefix, fn, 50); if (fullname == NULL) { xmlVErrMemory(ctxt, NULL); @@ -6338,7 +6339,7 @@ xmlValidateRoot(xmlValidCtxtPtr ctxt, xmlDocPtr doc) { xmlFree(fullname); if (ret == 1) goto name_ok; - } + } if ((xmlStrEqual(doc->intSubset->name, BAD_CAST "HTML")) && (xmlStrEqual(root->name, BAD_CAST "html"))) goto name_ok; @@ -6359,7 +6360,7 @@ name_ok: * @doc: a document instance * @elem: an element instance * - * Try to validate the subtree under an element + * Try to validate the subtree under an element * * returns 1 if valid or 0 otherwise */ @@ -6379,7 +6380,8 @@ xmlValidateElement(xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr elem) { * they don't really mean anything validation wise. */ if ((elem->type == XML_XINCLUDE_START) || - (elem->type == XML_XINCLUDE_END)) + (elem->type == XML_XINCLUDE_END) || + (elem->type == XML_NAMESPACE_DECL)) return(1); CHECK_DTD; @@ -6538,7 +6540,7 @@ xmlValidateCheckRefCallback(xmlListPtr ref_list, xmlValidCtxtPtr ctxt, memo.name = name; xmlListWalk(ref_list, xmlWalkValidateList, &memo); - + } /** @@ -6550,7 +6552,7 @@ xmlValidateCheckRefCallback(xmlListPtr ref_list, xmlValidCtxtPtr ctxt, * incremental validation steps have been completed * * basically it does the following checks described by the XML Rec - * + * * Check all the IDREF/IDREFS attributes definition for validity * * returns 1 if valid or 0 otherwise @@ -6564,7 +6566,7 @@ xmlValidateDocumentFinal(xmlValidCtxtPtr ctxt, xmlDocPtr doc) { if (ctxt == NULL) return(0); if (doc == NULL) { - xmlErrValid(ctxt, XML_DTD_NO_DOC, + xmlErrValid(ctxt, XML_DTD_NO_DOC, "xmlValidateDocumentFinal: doc == NULL\n", NULL); return(0); } @@ -6682,7 +6684,7 @@ xmlValidateAttributeCallback(xmlAttributePtr cur, xmlValidCtxtPtr ctxt, case XML_ATTRIBUTE_ENTITIES: case XML_ATTRIBUTE_NOTATION: if (cur->defaultValue != NULL) { - + ret = xmlValidateAttributeValue2(ctxt, ctxt->doc, cur->name, cur->atype, cur->defaultValue); if ((ret == 0) && (ctxt->valid == 1)) @@ -6739,9 +6741,9 @@ xmlValidateAttributeCallback(xmlAttributePtr cur, xmlValidCtxtPtr ctxt, * subsets have been parsed * * basically it does the following checks described by the XML Rec - * - check that ENTITY and ENTITIES type attributes default or + * - check that ENTITY and ENTITIES type attributes default or * possible values matches one of the defined entities. - * - check that NOTATION type attributes default or + * - check that NOTATION type attributes default or * possible values matches one of the defined notations. * * returns 1 if valid or 0 if invalid and -1 if not well-formed @@ -6812,7 +6814,7 @@ xmlValidateDocument(xmlValidCtxtPtr ctxt, xmlDocPtr doc) { xmlChar *sysID; if (doc->intSubset->SystemID != NULL) { sysID = xmlBuildURI(doc->intSubset->SystemID, - doc->URL); + doc->URL); if (sysID == NULL) { xmlErrValid(ctxt, XML_DTD_LOAD_ERROR, "Could not build URI for external subset \"%s\"\n", @@ -6885,17 +6887,17 @@ xmlValidGetPotentialChildren(xmlElementContent *ctree, if (*len >= max) return(*len); switch (ctree->type) { - case XML_ELEMENT_CONTENT_PCDATA: + case XML_ELEMENT_CONTENT_PCDATA: for (i = 0; i < *len;i++) if (xmlStrEqual(BAD_CAST "#PCDATA", names[i])) return(*len); names[(*len)++] = BAD_CAST "#PCDATA"; break; - case XML_ELEMENT_CONTENT_ELEMENT: + case XML_ELEMENT_CONTENT_ELEMENT: for (i = 0; i < *len;i++) if (xmlStrEqual(ctree->name, names[i])) return(*len); names[(*len)++] = ctree->name; break; - case XML_ELEMENT_CONTENT_SEQ: + case XML_ELEMENT_CONTENT_SEQ: xmlValidGetPotentialChildren(ctree->c1, names, len, max); xmlValidGetPotentialChildren(ctree->c2, names, len, max); break; @@ -6904,7 +6906,7 @@ xmlValidGetPotentialChildren(xmlElementContent *ctree, xmlValidGetPotentialChildren(ctree->c2, names, len, max); break; } - + return(*len); } @@ -6949,16 +6951,16 @@ xmlValidGetValidElements(xmlNode *prev, xmlNode *next, const xmlChar **names, const xmlChar *elements[256]; int nb_elements = 0, i; const xmlChar *name; - + xmlNode *ref_node; xmlNode *parent; xmlNode *test_node; - + xmlNode *prev_next; xmlNode *next_prev; xmlNode *parent_childs; xmlNode *parent_last; - + xmlElement *element_desc; if (prev == NULL && next == NULL) @@ -6983,7 +6985,7 @@ xmlValidGetValidElements(xmlNode *prev, xmlNode *next, const xmlChar **names, element_desc = xmlGetDtdElementDesc(parent->doc->extSubset, parent->name); if (element_desc == NULL) return(-1); - + /* * Do a backup of the current tree structure */ @@ -6994,16 +6996,16 @@ xmlValidGetValidElements(xmlNode *prev, xmlNode *next, const xmlChar **names, /* * Creates a dummy node and insert it into the tree - */ + */ test_node = xmlNewDocNode (ref_node->doc, NULL, BAD_CAST "", NULL); test_node->parent = parent; test_node->prev = prev; test_node->next = next; name = test_node->name; - + if (prev) prev->next = test_node; else parent->children = test_node; - + if (next) next->prev = test_node; else parent->last = test_node; @@ -7013,7 +7015,7 @@ xmlValidGetValidElements(xmlNode *prev, xmlNode *next, const xmlChar **names, */ nb_elements = xmlValidGetPotentialChildren(element_desc->content, elements, &nb_elements, 256); - + for (i = 0;i < nb_elements;i++) { test_node->name = elements[i]; if (xmlValidateOneElement(&vctxt, parent->doc, parent)) { diff --git a/win32/.cvsignore b/win32/.cvsignore deleted file mode 100644 index 1f8e034..0000000 --- a/win32/.cvsignore +++ /dev/null @@ -1,7 +0,0 @@ -Makefile -config.* -depends.* -int.* -bin.* -*.win32 -*.win32.zip diff --git a/win32/Makefile.bcb b/win32/Makefile.bcb index d612e2d..7129c61 100644 --- a/win32/Makefile.bcb +++ b/win32/Makefile.bcb @@ -68,6 +68,9 @@ CFLAGS = $(CFLAGS) -DHAVE_PTHREAD_H !if "$(WITH_ZLIB)" == "1" CFLAGS = $(CFLAGS) -DHAVE_ZLIB_H !endif +!if "$(WITH_LZMA)" == "1" +CFLAGS = $(CFLAGS) -DHAVE_LZMA_H +!endif # The linker and its options. LD = ilink32.exe @@ -92,6 +95,9 @@ LIBS = $(LIBS) iconvomf.lib !if "$(WITH_ZLIB)" == "1" LIBS = $(LIBS) zlibomf.lib !endif +!if "$(WITH_LZMA)" == "1" +LIBS = $(LIBS) liblzma.lib +!endif !if "$(WITH_THREADS)" == "posix" LIBS = $(LIBS) pthreadVC.lib !endif @@ -113,7 +119,8 @@ LDFLAGS = $(LDFLAGS) !endif # Libxml object files. -XML_OBJS = $(XML_INTDIR)\c14n.obj\ +XML_OBJS = $(XML_INTDIR)\buf.obj\ + $(XML_INTDIR)\c14n.obj\ $(XML_INTDIR)\catalog.obj\ $(XML_INTDIR)\chvalid.obj\ $(XML_INTDIR)\debugXML.obj\ @@ -158,7 +165,8 @@ XML_OBJS = $(XML_INTDIR)\c14n.obj\ $(XML_INTDIR)\xmlstring.obj # Static libxml object files. -XML_OBJS_A = $(XML_INTDIR_A)\c14n.obj\ +XML_OBJS_A = $(XML_INTDIR_A)\buf.obj\ + $(XML_INTDIR_A)\c14n.obj\ $(XML_INTDIR_A)\catalog.obj\ $(XML_INTDIR_A)\chvalid.obj\ $(XML_INTDIR_A)\debugXML.obj\ @@ -219,7 +227,8 @@ UTILS = $(BINDIR)\xmllint.exe\ $(BINDIR)\testXPath.exe\ $(BINDIR)\runtest.exe\ $(BINDIR)\runsuite.exe\ - $(BINDIR)\testapi.exe + $(BINDIR)\testapi.exe\ + $(BINDIR)\testlimits.exe !if "$(WITH_THREADS)" == "yes" || "$(WITH_THREADS)" == "ctls" || "$(WITH_THREADS)" == "native" @@ -250,10 +259,11 @@ distclean : clean rebuild : clean all install-libs : all - if not exist "$(INCPREFIX)\libxml" mkdir "$(INCPREFIX)\libxml" + if not exist "$(INCPREFIX)\libxml2" mkdir "$(INCPREFIX)\libxml2" + if not exist "$(INCPREFIX)\libxml2\libxml" mkdir "$(INCPREFIX)\libxml2\libxml" if not exist "$(BINPREFIX)" mkdir "$(BINPREFIX)" if not exist "$(LIBPREFIX)" mkdir "$(LIBPREFIX)" - copy $(XML_SRCDIR)\include\libxml\*.h "$(INCPREFIX)\libxml" + copy $(XML_SRCDIR)\include\libxml\*.h "$(INCPREFIX)\libxml2\libxml" copy $(BINDIR)\$(XML_SO) "$(SOPREFIX)" copy $(BINDIR)\$(XML_A) "$(LIBPREFIX)" copy $(BINDIR)\$(XML_IMP) "$(LIBPREFIX)" diff --git a/win32/Makefile.mingw b/win32/Makefile.mingw index 0f8198b..1889376 100644 --- a/win32/Makefile.mingw +++ b/win32/Makefile.mingw @@ -60,6 +60,9 @@ endif ifeq ($(WITH_ZLIB),1) CFLAGS += -DHAVE_ZLIB_H endif +ifeq ($(WITH_LZMA),1) +CFLAGS += -DHAVE_LZMA_H +endif # The linker and its options. LD = gcc.exe @@ -83,6 +86,9 @@ ifeq ($(WITH_ZLIB),1) # LIBS += -lzdll LIBS += -lz endif +ifeq ($(WITH_LZMA),1) +LIBS += -llzma +endif ifeq ($(WITH_THREADS),posix) LIBS += -lpthreadGC endif @@ -107,7 +113,8 @@ endif # Libxml object files. -XML_OBJS = $(XML_INTDIR)/c14n.o\ +XML_OBJS = $(XML_INTDIR)/buf.o\ + $(XML_INTDIR)/c14n.o\ $(XML_INTDIR)/catalog.o\ $(XML_INTDIR)/chvalid.o\ $(XML_INTDIR)/debugXML.o\ @@ -154,7 +161,8 @@ XML_OBJS = $(XML_INTDIR)/c14n.o\ XML_SRCS = $(subst .o,.c,$(subst $(XML_INTDIR)/,$(XML_SRCDIR)/,$(XML_OBJS))) # Static libxml object files. -XML_OBJS_A = $(XML_INTDIR_A)/c14n.o\ +XML_OBJS_A = $(XML_INTDIR_A)/buf.o\ + $(XML_INTDIR_A)/c14n.o\ $(XML_INTDIR_A)/catalog.o\ $(XML_INTDIR_A)/chvalid.o\ $(XML_INTDIR_A)/debugXML.o\ @@ -217,7 +225,8 @@ UTILS = $(BINDIR)/xmllint.exe\ $(BINDIR)/testXPath.exe\ $(BINDIR)/runtest.exe\ $(BINDIR)/runsuite.exe\ - $(BINDIR)/testapi.exe + $(BINDIR)/testapi.exe\ + $(BINDIR)/testlimits.exe ifeq ($(WITH_THREADS),yes) UTILS += $(BINDIR)/testThreadsWin32.exe @@ -254,10 +263,11 @@ distclean : clean rebuild : clean all install-libs : all - cmd.exe /C "if not exist $(INCPREFIX)\libxml mkdir $(INCPREFIX)\libxml" + cmd.exe /C "if not exist $(INCPREFIX)\libxml2 mkdir $(INCPREFIX)\libxml2" + cmd.exe /C "if not exist $(INCPREFIX)\libxml2\libxml mkdir $(INCPREFIX)\libxml2\libxml" cmd.exe /C "if not exist $(BINPREFIX) mkdir $(BINPREFIX)" cmd.exe /C "if not exist $(LIBPREFIX) mkdir $(LIBPREFIX)" - cmd.exe /C "copy $(XML_SRCDIR)\include\libxml\*.h $(INCPREFIX)\libxml" + cmd.exe /C "copy $(XML_SRCDIR)\include\libxml\*.h $(INCPREFIX)\libxml2\libxml" cmd.exe /C "copy $(BINDIR)\$(XML_SO) $(SOPREFIX)" cmd.exe /C "copy $(BINDIR)\$(XML_A) $(LIBPREFIX)" cmd.exe /C "copy $(BINDIR)\$(XML_IMP) $(LIBPREFIX)" diff --git a/win32/Makefile.msvc b/win32/Makefile.msvc index cc93372..d917541 100644 --- a/win32/Makefile.msvc +++ b/win32/Makefile.msvc @@ -108,7 +108,8 @@ LDFLAGS = $(LDFLAGS) !endif # Libxml object files. -XML_OBJS = $(XML_INTDIR)\c14n.obj\ +XML_OBJS = $(XML_INTDIR)\buf.obj\ + $(XML_INTDIR)\c14n.obj\ $(XML_INTDIR)\catalog.obj\ $(XML_INTDIR)\chvalid.obj\ $(XML_INTDIR)\debugXML.obj\ @@ -153,7 +154,8 @@ XML_OBJS = $(XML_INTDIR)\c14n.obj\ $(XML_INTDIR)\xmlstring.obj # Static libxml object files. -XML_OBJS_A = $(XML_INTDIR_A)\c14n.obj\ +XML_OBJS_A = $(XML_INTDIR_A)\buf.obj\ + $(XML_INTDIR_A)\c14n.obj\ $(XML_INTDIR_A)\catalog.obj\ $(XML_INTDIR_A)\chvalid.obj\ $(XML_INTDIR_A)\debugXML.obj\ @@ -198,7 +200,8 @@ XML_OBJS_A = $(XML_INTDIR_A)\c14n.obj\ $(XML_INTDIR_A)\xmlstring.obj # Static libxml object files. -XML_OBJS_A_DLL = $(XML_INTDIR_A_DLL)\c14n.obj\ +XML_OBJS_A_DLL = $(XML_INTDIR_A_DLL)\buf.obj\ + $(XML_INTDIR_A_DLL)\c14n.obj\ $(XML_INTDIR_A_DLL)\catalog.obj\ $(XML_INTDIR_A_DLL)\chvalid.obj\ $(XML_INTDIR_A_DLL)\debugXML.obj\ @@ -259,7 +262,8 @@ UTILS = $(BINDIR)\xmllint.exe\ $(BINDIR)\testXPath.exe\ $(BINDIR)\runtest.exe\ $(BINDIR)\runsuite.exe\ - $(BINDIR)\testapi.exe + $(BINDIR)\testapi.exe\ + $(BINDIR)\testlimits.exe !if "$(WITH_THREADS)" == "yes" || "$(WITH_THREADS)" == "ctls" || "$(WITH_THREADS)" == "native" UTILS = $(UTILS) $(BINDIR)\testThreadsWin32.exe @@ -299,11 +303,12 @@ distclean : clean rebuild : clean all install-libs : all - if not exist $(INCPREFIX)\libxml mkdir $(INCPREFIX)\libxml + if not exist $(INCPREFIX)\libxml2 mkdir $(INCPREFIX)\libxml2 + if not exist $(INCPREFIX)\libxml2\libxml mkdir $(INCPREFIX)\libxml2\libxml if not exist $(BINPREFIX) mkdir $(BINPREFIX) if not exist $(LIBPREFIX) mkdir $(LIBPREFIX) if not exist $(SOPREFIX) mkdir $(SOPREFIX) - copy $(XML_SRCDIR)\include\libxml\*.h $(INCPREFIX)\libxml + copy $(XML_SRCDIR)\include\libxml\*.h $(INCPREFIX)\libxml2\libxml copy $(BINDIR)\$(XML_SO) $(SOPREFIX) copy $(BINDIR)\$(XML_A) $(LIBPREFIX) copy $(BINDIR)\$(XML_A_DLL) $(LIBPREFIX) diff --git a/win32/VC10/libxml2.vcxproj b/win32/VC10/libxml2.vcxproj index 0d5a1bc..0588fa6 100644 --- a/win32/VC10/libxml2.vcxproj +++ b/win32/VC10/libxml2.vcxproj @@ -69,6 +69,7 @@ + diff --git a/win32/VC10/runsuite.vcxproj b/win32/VC10/runsuite.vcxproj index b4ccc37..83cc991 100644 --- a/win32/VC10/runsuite.vcxproj +++ b/win32/VC10/runsuite.vcxproj @@ -46,7 +46,7 @@ Disabled $(ProjectDir);$(ProjectDir)..\..\include;$(ProjectDir)..\..\..\libiconv-1.14.vc10\include;%(AdditionalIncludeDirectories) 4996 - HAVE_CONFIG_H;_UNICODE;UNICODE;%(PreprocessorDefinitions) + _UNICODE;UNICODE;%(PreprocessorDefinitions) /MP %(AdditionalOptions) false diff --git a/win32/libxml2.def.src b/win32/libxml2.def.src index ce3f24a..4b85fc1 100644 --- a/win32/libxml2.def.src +++ b/win32/libxml2.def.src @@ -553,6 +553,11 @@ xmlAutomataSetFinalState #ifdef LIBXML_DEBUG_ENABLED xmlBoolToText #endif +xmlBufContent +xmlBufEnd +xmlBufGetNodeContent +xmlBufNodeDump +xmlBufUse xmlBufferAdd xmlBufferAddHead xmlBufferCCat @@ -561,6 +566,7 @@ xmlBufferContent xmlBufferCreate xmlBufferCreateSize xmlBufferCreateStatic +xmlBufferDetach xmlBufferDump xmlBufferEmpty xmlBufferFree @@ -765,10 +771,12 @@ xmlDictCreate xmlDictCreateSub xmlDictExists xmlDictFree +xmlDictGetUsage xmlDictLookup xmlDictOwns xmlDictQLookup xmlDictReference +xmlDictSetLimit xmlDictSize xmlDllMain xmlDocCopyNode @@ -992,6 +1000,7 @@ xmlInitThreads #ifdef LIBXML_CATALOG_ENABLED xmlInitializeCatalog #endif +xmlInitializeDict xmlInitializeGlobalState xmlInitializePredefinedEntities xmlIsBaseChar @@ -1292,6 +1301,8 @@ xmlOutputBufferCreateFilename xmlOutputBufferCreateFilenameDefault xmlOutputBufferCreateIO xmlOutputBufferFlush +xmlOutputBufferGetContent +xmlOutputBufferGetSize xmlOutputBufferWrite xmlOutputBufferWriteEscape xmlOutputBufferWriteString @@ -1590,22 +1601,12 @@ xmlSAXParseMemoryWithData xmlSAXUserParseFile xmlSAXUserParseMemory xmlSAXVersion -xmlSaveClose -xmlSaveDoc xmlSaveFile xmlSaveFileEnc xmlSaveFileTo -xmlSaveFlush xmlSaveFormatFile xmlSaveFormatFileEnc xmlSaveFormatFileTo -xmlSaveSetAttrEscape -xmlSaveSetEscape -xmlSaveToBuffer -xmlSaveToFd -xmlSaveToFilename -xmlSaveToIO -xmlSaveTree xmlSaveUri xmlScanName #ifdef LIBXML_SCHEMAS_ENABLED @@ -1960,6 +1961,7 @@ xmlTextReaderRelaxNGSetSchema #ifdef LIBXML_SCHEMAS_ENABLED xmlTextReaderRelaxNGValidate #endif +xmlTextReaderRelaxNGValidateCtxt xmlTextReaderSchemaValidate xmlTextReaderSchemaValidateCtxt xmlTextReaderSetErrorHandler diff --git a/win32/wince/wincecompat.c b/win32/wince/wincecompat.c index 1d8df87..bd49c57 100644 --- a/win32/wince/wincecompat.c +++ b/win32/wince/wincecompat.c @@ -34,11 +34,10 @@ int open(const char *filename,int oflag, ...) char mode[3]; /* mode[0] ="w/r/a" mode[1]="+" */ mode[2]=0; if ( oflag==(O_WRONLY|O_CREAT) ) - mode[0]="w"; + mode[0]='w'; else if (oflag==O_RDONLY) - mode[0]="r"; - return fopen(filename, mode); - + mode[0]='r'; + return (int) fopen(filename, mode); } int close(int handle) diff --git a/xinclude.c b/xinclude.c index d01f978..ace005b 100644 --- a/xinclude.c +++ b/xinclude.c @@ -26,6 +26,7 @@ #ifdef LIBXML_XINCLUDE_ENABLED #include +#include "buf.h" #define XINCLUDE_MAX_DEPTH 40 @@ -92,7 +93,7 @@ xmlXIncludeDoProcess(xmlXIncludeCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr tree); /************************************************************************ * * - * XInclude error handler * + * XInclude error handler * * * ************************************************************************/ @@ -412,7 +413,7 @@ xmlXIncludeFreeContext(xmlXIncludeCtxtPtr ctxt) { * xmlXIncludeParseFile: * @ctxt: the XInclude context * @URL: the URL or file path - * + * * parse a document for XInclude */ static xmlDocPtr @@ -433,7 +434,7 @@ xmlXIncludeParseFile(xmlXIncludeCtxtPtr ctxt, const char *URL) { * pass in the application data to the parser context. */ pctxt->_private = ctxt->_private; - + /* * try to ensure that new documents included are actually * built with the same dictionary as the including document. @@ -446,7 +447,7 @@ xmlXIncludeParseFile(xmlXIncludeCtxtPtr ctxt, const char *URL) { } xmlCtxtUseOptions(pctxt, ctxt->parseFlags | XML_PARSE_DTDLOAD); - + inputStream = xmlLoadExternalEntity(URL, NULL, pctxt); if (inputStream == NULL) { xmlFreeParserCtxt(pctxt); @@ -472,7 +473,7 @@ xmlXIncludeParseFile(xmlXIncludeCtxtPtr ctxt, const char *URL) { pctxt->myDoc = NULL; } xmlFreeParserCtxt(pctxt); - + return(ret); } @@ -480,7 +481,7 @@ xmlXIncludeParseFile(xmlXIncludeCtxtPtr ctxt, const char *URL) { * xmlXIncludeAddNode: * @ctxt: the XInclude context * @cur: the new node - * + * * Add a new node to process to an XInclude context */ static int @@ -511,7 +512,7 @@ xmlXIncludeAddNode(xmlXIncludeCtxtPtr ctxt, xmlNodePtr cur) { href = xmlXIncludeGetProp(ctxt, cur, XINCLUDE_HREF); if (href == NULL) { href = xmlStrdup(BAD_CAST ""); /* @@@@ href is now optional */ - if (href == NULL) + if (href == NULL) return(-1); } if ((href[0] == '#') || (href[0] == 0)) @@ -655,7 +656,7 @@ xmlXIncludeAddNode(xmlXIncludeCtxtPtr ctxt, xmlNodePtr cur) { * @ctxt: the XInclude context * @doc: the new document * @url: the associated URL - * + * * The XInclude recursive nature is handled at this point. */ static void @@ -684,7 +685,7 @@ xmlXIncludeRecurseDoc(xmlXIncludeCtxtPtr ctxt, xmlDocPtr doc, /* * Copy the private user data */ - newctxt->_private = ctxt->_private; + newctxt->_private = ctxt->_private; /* * Copy the existing document set */ @@ -749,7 +750,7 @@ xmlXIncludeRecurseDoc(xmlXIncludeCtxtPtr ctxt, xmlDocPtr doc, * @ctxt: the XInclude context * @txt: the new text node * @url: the associated URL - * + * * Add a new txtument to the list */ static void @@ -808,7 +809,7 @@ xmlXIncludeCopyNodeList(xmlXIncludeCtxtPtr ctxt, xmlDocPtr target, * @target: the document target * @source: the document source * @elem: the element - * + * * Make a copy of the node while preserving the XInclude semantic * of the Infoset copy */ @@ -835,7 +836,7 @@ xmlXIncludeCopyNode(xmlXIncludeCtxtPtr ctxt, xmlDocPtr target, * @target: the document target * @source: the document source * @elem: the element list - * + * * Make a copy of the node list while preserving the XInclude semantic * of the Infoset copy */ @@ -874,11 +875,11 @@ xmlXIncludeCopyNodeList(xmlXIncludeCtxtPtr ctxt, xmlDocPtr target, static xmlNodePtr xmlXIncludeGetNthChild(xmlNodePtr cur, int no) { int i; - if (cur == NULL) - return(cur); + if ((cur == NULL) || (cur->type == XML_NAMESPACE_DECL)) + return(NULL); cur = cur->children; for (i = 0;i <= no;cur = cur->next) { - if (cur == NULL) + if (cur == NULL) return(cur); if ((cur->type == XML_ELEMENT_NODE) || (cur->type == XML_DOCUMENT_NODE) || @@ -922,11 +923,13 @@ xmlXIncludeCopyRange(xmlXIncludeCtxtPtr ctxt, xmlDocPtr target, return(NULL); start = (xmlNodePtr) range->user; - if (start == NULL) + if ((start == NULL) || (start->type == XML_NAMESPACE_DECL)) return(NULL); end = range->user2; if (end == NULL) return(xmlDocCopyNode(start, target, 1)); + if (end->type == XML_NAMESPACE_DECL) + return(NULL); cur = start; index1 = range->index; @@ -985,7 +988,7 @@ xmlXIncludeCopyRange(xmlXIncludeCtxtPtr ctxt, xmlDocPtr target, /* prune and return full set */ if (level == lastLevel) xmlAddNextSibling(last, tmp); - else + else xmlAddChild(last, tmp); return(list); } else { /* ending node not a text node */ @@ -1289,7 +1292,7 @@ xmlXIncludeMergeEntity(xmlEntityPtr ent, xmlXIncludeMergeDataPtr data, if (prev != NULL) { if (ent->etype != prev->etype) goto error; - + if ((ent->SystemID != NULL) && (prev->SystemID != NULL)) { if (!xmlStrEqual(ent->SystemID, prev->SystemID)) goto error; @@ -1389,7 +1392,7 @@ xmlXIncludeMergeEntities(xmlXIncludeCtxtPtr ctxt, xmlDocPtr doc, * @ctxt: the XInclude context * @url: the associated URL * @nr: the xinclude node number - * + * * Load the document, and store the result in the XInclude context * * Returns 0 in case of success, -1 in case of failure @@ -1413,7 +1416,7 @@ xmlXIncludeLoadDoc(xmlXIncludeCtxtPtr ctxt, const xmlChar *url, int nr) { */ uri = xmlParseURI((const char *)url); if (uri == NULL) { - xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, + xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, XML_XINCLUDE_HREF_URI, "invalid value URI %s\n", url); return(-1); @@ -1431,7 +1434,7 @@ xmlXIncludeLoadDoc(xmlXIncludeCtxtPtr ctxt, const xmlChar *url, int nr) { xmlFreeURI(uri); if (URL == NULL) { if (ctxt->incTab != NULL) - xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, + xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, XML_XINCLUDE_HREF_URI, "invalid value URI %s\n", url); else @@ -1550,7 +1553,7 @@ loaded: ctxt->incTab[nr]->inc = xmlXIncludeCopyNodeList(ctxt, ctxt->doc, doc, doc->children); } - } + } #ifdef LIBXML_XPTR_ENABLED else { /* @@ -1568,7 +1571,7 @@ loaded: xptrctxt = xmlXPtrNewContext(doc, NULL, NULL); } if (xptrctxt == NULL) { - xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, + xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, XML_XINCLUDE_XPTR_FAILED, "could not create XPointer context\n", NULL); xmlFree(URL); @@ -1594,7 +1597,7 @@ loaded: case XPATH_POINT: case XPATH_USERS: case XPATH_XSLT_TREE: - xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, + xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, XML_XINCLUDE_XPTR_RESULT, "XPointer is not a range: #%s\n", fragment); @@ -1636,14 +1639,14 @@ loaded: continue; case XML_ATTRIBUTE_NODE: - xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, + xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, XML_XINCLUDE_XPTR_RESULT, "XPointer selects an attribute: #%s\n", fragment); set->nodeTab[i] = NULL; continue; case XML_NAMESPACE_DECL: - xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, + xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, XML_XINCLUDE_XPTR_RESULT, "XPointer selects a namespace: #%s\n", fragment); @@ -1658,7 +1661,7 @@ loaded: case XML_ENTITY_DECL: case XML_XINCLUDE_START: case XML_XINCLUDE_END: - xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, + xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, XML_XINCLUDE_XPTR_RESULT, "XPointer selects unexpected nodes: #%s\n", fragment); @@ -1704,7 +1707,7 @@ loaded: */ curBase = xmlBuildRelativeURI(URL, ctxt->base); if (curBase == NULL) { /* Error return */ - xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, + xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, XML_XINCLUDE_HREF_URI, "trying to build relative URI from %s\n", URL); } else { @@ -1745,7 +1748,7 @@ loaded: xmlChar *relBase; relBase = xmlBuildURI(xmlBase, base); if (relBase == NULL) { /* error */ - xmlXIncludeErr(ctxt, + xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, XML_XINCLUDE_HREF_URI, "trying to rebuild base from %s\n", @@ -1782,7 +1785,7 @@ loaded: * @ctxt: the XInclude context * @url: the associated URL * @nr: the xinclude node number - * + * * Load the content, and store the result in the XInclude context * * Returns 0 in case of success, -1 in case of failure @@ -1798,6 +1801,7 @@ xmlXIncludeLoadTxt(xmlXIncludeCtxtPtr ctxt, const xmlChar *url, int nr) { xmlCharEncoding enc = (xmlCharEncoding) 0; xmlParserCtxtPtr pctxt; xmlParserInputPtr inputStream; + int xinclude_multibyte_fallback_used = 0; /* * Check the URL and remove any fragment identifier @@ -1828,7 +1832,7 @@ xmlXIncludeLoadTxt(xmlXIncludeCtxtPtr ctxt, const xmlChar *url, int nr) { * directly through ctxt->doc. */ if (URL[0] == 0) { - xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, + xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, XML_XINCLUDE_TEXT_DOCUMENT, "text serialization of document not available\n", NULL); xmlFree(URL); @@ -1894,30 +1898,39 @@ xmlXIncludeLoadTxt(xmlXIncludeCtxtPtr ctxt, const xmlChar *url, int nr) { /* * Scan all chars from the resource and add the to the node */ +xinclude_multibyte_fallback: while (xmlParserInputBufferRead(buf, 128) > 0) { int len; const xmlChar *content; - content = xmlBufferContent(buf->buffer); - len = xmlBufferLength(buf->buffer); + content = xmlBufContent(buf->buffer); + len = xmlBufLength(buf->buffer); for (i = 0;i < len;) { int cur; int l; cur = xmlStringCurrentChar(NULL, &content[i], &l); if (!IS_CHAR(cur)) { - xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, - XML_XINCLUDE_INVALID_CHAR, - "%s contains invalid char\n", URL); - xmlFreeParserInputBuffer(buf); - xmlFree(URL); - return(-1); + /* Handle splitted multibyte char at buffer boundary */ + if (((len - i) < 4) && (!xinclude_multibyte_fallback_used)) { + xinclude_multibyte_fallback_used = 1; + xmlBufShrink(buf->buffer, i); + goto xinclude_multibyte_fallback; + } else { + xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, + XML_XINCLUDE_INVALID_CHAR, + "%s contains invalid char\n", URL); + xmlFreeParserInputBuffer(buf); + xmlFree(URL); + return(-1); + } } else { + xinclude_multibyte_fallback_used = 0; xmlNodeAddContentLen(node, &content[i], l); } i += l; } - xmlBufferShrink(buf->buffer, len); + xmlBufShrink(buf->buffer, len); } xmlFreeParserCtxt(pctxt); xmlXIncludeAddTxt(ctxt, node, URL); @@ -1937,7 +1950,7 @@ loaded: * @ctxt: the XInclude context * @fallback: the fallback node * @nr: the xinclude node number - * + * * Load the content of the fallback node, and store the result * in the XInclude context * @@ -1947,8 +1960,9 @@ static int xmlXIncludeLoadFallback(xmlXIncludeCtxtPtr ctxt, xmlNodePtr fallback, int nr) { xmlXIncludeCtxtPtr newctxt; int ret = 0; - - if ((fallback == NULL) || (ctxt == NULL)) + + if ((fallback == NULL) || (fallback->type == XML_NAMESPACE_DECL) || + (ctxt == NULL)) return(-1); if (fallback->children != NULL) { /* @@ -2033,7 +2047,7 @@ xmlXIncludeLoadNode(xmlXIncludeCtxtPtr ctxt, int nr) { href = xmlXIncludeGetProp(ctxt, cur, XINCLUDE_HREF); if (href == NULL) { href = xmlStrdup(BAD_CAST ""); /* @@@@ href is now optional */ - if (href == NULL) + if (href == NULL) return(-1); } parse = xmlXIncludeGetProp(ctxt, cur, XINCLUDE_PARSE); @@ -2078,7 +2092,7 @@ xmlXIncludeLoadNode(xmlXIncludeCtxtPtr ctxt, int nr) { xmlFree(eschref); } if (URI == NULL) { - xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, + xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, XML_XINCLUDE_HREF_URI, "failed build URL\n", NULL); if (parse != NULL) xmlFree(parse); @@ -2111,7 +2125,7 @@ xmlXIncludeLoadNode(xmlXIncludeCtxtPtr ctxt, int nr) { * Restore the original base before checking for fallback */ ctxt->base = oldBase; - + if (ret < 0) { xmlNodePtr children; @@ -2129,14 +2143,14 @@ xmlXIncludeLoadNode(xmlXIncludeCtxtPtr ctxt, int nr) { ((xmlStrEqual(children->ns->href, XINCLUDE_NS)) || (xmlStrEqual(children->ns->href, XINCLUDE_OLD_NS)))) { ret = xmlXIncludeLoadFallback(ctxt, children, nr); - if (ret == 0) + if (ret == 0) break; } children = children->next; } } if (ret < 0) { - xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, + xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, XML_XINCLUDE_NO_FALLBACK, "could not load %s, and no fallback was found\n", URI); @@ -2174,7 +2188,7 @@ xmlXIncludeIncludeNode(xmlXIncludeCtxtPtr ctxt, int nr) { if ((nr < 0) || (nr >= ctxt->incNr)) return(-1); cur = ctxt->incTab[nr]->ref; - if (cur == NULL) + if ((cur == NULL) || (cur->type == XML_NAMESPACE_DECL)) return(-1); /* @@ -2205,7 +2219,7 @@ xmlXIncludeIncludeNode(xmlXIncludeCtxtPtr ctxt, int nr) { tmp = tmp->next; } if (nb_elem > 1) { - xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, + xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref, XML_XINCLUDE_MULTIPLE_ROOT, "XInclude error: would result in multiple root nodes\n", NULL); @@ -2252,7 +2266,7 @@ xmlXIncludeIncludeNode(xmlXIncludeCtxtPtr ctxt, int nr) { } } - + return(0); } @@ -2349,7 +2363,7 @@ xmlXIncludeDoProcess(xmlXIncludeCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr tree) { int ret = 0; int i, start; - if ((doc == NULL) || (tree == NULL)) + if ((doc == NULL) || (tree == NULL) || (tree->type == XML_NAMESPACE_DECL)) return(-1); if (ctxt == NULL) return(-1); @@ -2463,7 +2477,8 @@ xmlXIncludeProcessTreeFlagsData(xmlNodePtr tree, int flags, void *data) { xmlXIncludeCtxtPtr ctxt; int ret = 0; - if ((tree == NULL) || (tree->doc == NULL)) + if ((tree == NULL) || (tree->type == XML_NAMESPACE_DECL) || + (tree->doc == NULL)) return(-1); ctxt = xmlXIncludeNewContext(tree->doc); @@ -2548,7 +2563,8 @@ xmlXIncludeProcessTreeFlags(xmlNodePtr tree, int flags) { xmlXIncludeCtxtPtr ctxt; int ret = 0; - if ((tree == NULL) || (tree->doc == NULL)) + if ((tree == NULL) || (tree->type == XML_NAMESPACE_DECL) || + (tree->doc == NULL)) return(-1); ctxt = xmlXIncludeNewContext(tree->doc); if (ctxt == NULL) @@ -2592,7 +2608,8 @@ int xmlXIncludeProcessNode(xmlXIncludeCtxtPtr ctxt, xmlNodePtr node) { int ret = 0; - if ((node == NULL) || (node->doc == NULL) || (ctxt == NULL)) + if ((node == NULL) || (node->type == XML_NAMESPACE_DECL) || + (node->doc == NULL) || (ctxt == NULL)) return(-1); ret = xmlXIncludeDoProcess(ctxt, node->doc, node); if ((ret >= 0) && (ctxt->nbErrors > 0)) diff --git a/xlink.c b/xlink.c index 0d9be73..3566e06 100644 --- a/xlink.c +++ b/xlink.c @@ -47,7 +47,7 @@ * Default setting and related functions * * * ****************************************************************/ - + static xlinkHandlerPtr xlinkDefaultHandler = NULL; static xlinkNodeDetectFunc xlinkDefaultDetect = NULL; @@ -93,7 +93,7 @@ xlinkGetDefaultDetect (void) { * * Set the default xlink detection routine */ -void +void xlinkSetDefaultDetect (xlinkNodeDetectFunc func) { xlinkDefaultDetect = func; } @@ -104,7 +104,7 @@ xlinkSetDefaultDetect (xlinkNodeDetectFunc func) { * * ****************************************************************/ - + /** * xlinkIsLink: * @doc: the document containing the node @@ -119,7 +119,7 @@ xlinkSetDefaultDetect (xlinkNodeDetectFunc func) { * Returns the xlinkType of the node (XLINK_TYPE_NONE if there is no * link detected. */ -xlinkType +xlinkType xlinkIsLink (xmlDocPtr doc, xmlNodePtr node) { xmlChar *type = NULL, *role = NULL; xlinkType ret = XLINK_TYPE_NONE; @@ -157,7 +157,7 @@ xlinkIsLink (xmlDocPtr doc, xmlNodePtr node) { xlink = xmlSearchNs(doc, node, XLINK_NAMESPACE); if (xlink == NULL) { /* Humm, fallback method */ - if (xmlStrEqual(role, BAD_CAST"xlink:external-linkset")) + if (xmlStrEqual(role, BAD_CAST"xlink:external-linkset")) ret = XLINK_TYPE_EXTENDED_SET; } else { xmlChar buf[200]; diff --git a/xml2-config.1 b/xml2-config.1 index 8a25962..8cf9858 100644 --- a/xml2-config.1 +++ b/xml2-config.1 @@ -9,7 +9,6 @@ xml-config - script to get information about the installed version of GNOME-XML linker flags that should be used to compile and link programs that use \fIGNOME-XML\fP. .SH OPTIONS -.l \fIxml-config\fP accepts the following options: .TP 8 .B \-\-version diff --git a/xml2-config.in b/xml2-config.in index 2989325..1957486 100644 --- a/xml2-config.in +++ b/xml2-config.in @@ -86,12 +86,12 @@ while test $# -gt 0; do then if [ "@XML_LIBDIR@" = "-L/usr/lib" -o "@XML_LIBDIR@" = "-L/usr/lib64" ] then - echo @XML_LIBS@ + echo @XML_LIBS@ @MODULE_PLATFORM_LIBS@ else - echo @XML_LIBDIR@ @XML_LIBS@ + echo @XML_LIBDIR@ @XML_LIBS@ @MODULE_PLATFORM_LIBS@ fi else - echo @XML_LIBDIR@ @XML_LIBS@ @WIN32_EXTRA_LIBADD@ + echo @XML_LIBDIR@ @XML_LIBS@ @MODULE_PLATFORM_LIBS@ @WIN32_EXTRA_LIBADD@ fi ;; diff --git a/xmlIO.c b/xmlIO.c index 73a995d..f8f438b 100644 --- a/xmlIO.c +++ b/xmlIO.c @@ -96,6 +96,9 @@ #endif #include +#include "buf.h" +#include "enc.h" + /* #define VERBOSE_FAILURE */ /* #define DEBUG_EXTERNAL_ENTITIES */ /* #define DEBUG_INPUT */ @@ -768,13 +771,21 @@ int xmlCheckFilename (const char *path) { #ifdef HAVE_STAT - struct stat stat_buffer; + struct stat stat_buffer; #endif - if (path == NULL) - return(0); + if (path == NULL) + return(0); #ifdef HAVE_STAT #if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__) + /* + * On Windows stat and wstat do not work with long pathname, + * which start with '\\?\' + */ + if ((path[0] == '\\') && (path[1] == '\\') && (path[2] == '?') && + (path[3] == '\\') ) + return 1; + if (xmlWrapStat(path, &stat_buffer) == -1) return 0; #else @@ -990,7 +1001,7 @@ xmlFileOpenW (const char *filename) { #if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__) fd = xmlWrapOpen(path, 1); #else - fd = fopen(path, "wb"); + fd = fopen(path, "wb"); #endif /* WIN32 */ if (fd == NULL) xmlIOErr(0, path); @@ -2036,8 +2047,8 @@ xmlIOHTTPCloseWrite( void * context, const char * http_mthd ) { /* Pull the data out of the memory output buffer */ xmlOutputBufferPtr dctxt = ctxt->doc_buff; - http_content = (char *)dctxt->buffer->content; - content_lgth = dctxt->buffer->use; + http_content = (char *) xmlBufContent(dctxt->buffer); + content_lgth = xmlBufUse(dctxt->buffer); } if ( http_content == NULL ) { @@ -2404,15 +2415,15 @@ xmlAllocParserInputBuffer(xmlCharEncoding enc) { return(NULL); } memset(ret, 0, (size_t) sizeof(xmlParserInputBuffer)); - ret->buffer = xmlBufferCreateSize(2 * xmlDefaultBufferSize); + ret->buffer = xmlBufCreateSize(2 * xmlDefaultBufferSize); if (ret->buffer == NULL) { xmlFree(ret); return(NULL); } - ret->buffer->alloc = XML_BUFFER_ALLOC_DOUBLEIT; + xmlBufSetAllocationScheme(ret->buffer, XML_BUFFER_ALLOC_DOUBLEIT); ret->encoder = xmlGetCharEncodingHandler(enc); if (ret->encoder != NULL) - ret->raw = xmlBufferCreateSize(2 * xmlDefaultBufferSize); + ret->raw = xmlBufCreateSize(2 * xmlDefaultBufferSize); else ret->raw = NULL; ret->readcallback = NULL; @@ -2443,19 +2454,19 @@ xmlAllocOutputBuffer(xmlCharEncodingHandlerPtr encoder) { return(NULL); } memset(ret, 0, (size_t) sizeof(xmlOutputBuffer)); - ret->buffer = xmlBufferCreate(); + ret->buffer = xmlBufCreate(); if (ret->buffer == NULL) { xmlFree(ret); return(NULL); } /* try to avoid a performance problem with Windows realloc() */ - if (ret->buffer->alloc == XML_BUFFER_ALLOC_EXACT) - ret->buffer->alloc = XML_BUFFER_ALLOC_DOUBLEIT; + if (xmlBufGetAllocationScheme(ret->buffer) == XML_BUFFER_ALLOC_EXACT) + xmlBufSetAllocationScheme(ret->buffer, XML_BUFFER_ALLOC_DOUBLEIT); ret->encoder = encoder; if (encoder != NULL) { - ret->conv = xmlBufferCreateSize(4000); + ret->conv = xmlBufCreateSize(4000); if (ret->conv == NULL) { xmlFree(ret); return(NULL); @@ -2464,7 +2475,7 @@ xmlAllocOutputBuffer(xmlCharEncodingHandlerPtr encoder) { /* * This call is designed to initiate the encoder state */ - xmlCharEncOutFunc(encoder, ret->conv, NULL); + xmlCharEncOutput(ret, 1); } else ret->conv = NULL; ret->writecallback = NULL; @@ -2493,7 +2504,7 @@ xmlAllocOutputBufferInternal(xmlCharEncodingHandlerPtr encoder) { return(NULL); } memset(ret, 0, (size_t) sizeof(xmlOutputBuffer)); - ret->buffer = xmlBufferCreate(); + ret->buffer = xmlBufCreate(); if (ret->buffer == NULL) { xmlFree(ret); return(NULL); @@ -2502,15 +2513,12 @@ xmlAllocOutputBufferInternal(xmlCharEncodingHandlerPtr encoder) { /* * For conversion buffers we use the special IO handling - * We don't do that from the exported API to avoid confusing - * user's code. */ - ret->buffer->alloc = XML_BUFFER_ALLOC_IO; - ret->buffer->contentIO = ret->buffer->content; + xmlBufSetAllocationScheme(ret->buffer, XML_BUFFER_ALLOC_IO); ret->encoder = encoder; if (encoder != NULL) { - ret->conv = xmlBufferCreateSize(4000); + ret->conv = xmlBufCreateSize(4000); if (ret->conv == NULL) { xmlFree(ret); return(NULL); @@ -2519,7 +2527,7 @@ xmlAllocOutputBufferInternal(xmlCharEncodingHandlerPtr encoder) { /* * This call is designed to initiate the encoder state */ - xmlCharEncOutFunc(encoder, ret->conv, NULL); + xmlCharEncOutput(ret, 1); } else ret->conv = NULL; ret->writecallback = NULL; @@ -2543,7 +2551,7 @@ xmlFreeParserInputBuffer(xmlParserInputBufferPtr in) { if (in == NULL) return; if (in->raw) { - xmlBufferFree(in->raw); + xmlBufFree(in->raw); in->raw = NULL; } if (in->encoder != NULL) { @@ -2553,7 +2561,7 @@ xmlFreeParserInputBuffer(xmlParserInputBufferPtr in) { in->closecallback(in->context); } if (in->buffer != NULL) { - xmlBufferFree(in->buffer); + xmlBufFree(in->buffer); in->buffer = NULL; } @@ -2585,14 +2593,14 @@ xmlOutputBufferClose(xmlOutputBufferPtr out) } written = out->written; if (out->conv) { - xmlBufferFree(out->conv); + xmlBufFree(out->conv); out->conv = NULL; } if (out->encoder != NULL) { xmlCharEncCloseFunc(out->encoder); } if (out->buffer != NULL) { - xmlBufferFree(out->buffer); + xmlBufFree(out->buffer); out->buffer = NULL; } @@ -2922,6 +2930,39 @@ xmlOutputBufferCreateBuffer(xmlBufferPtr buffer, return(ret); } +/** + * xmlOutputBufferGetContent: + * @out: an xmlOutputBufferPtr + * + * Gives a pointer to the data currently held in the output buffer + * + * Returns a pointer to the data or NULL in case of error + */ +const xmlChar * +xmlOutputBufferGetContent(xmlOutputBufferPtr out) { + if ((out == NULL) || (out->buffer == NULL)) + return(NULL); + + return(xmlBufContent(out->buffer)); +} + +/** + * xmlOutputBufferGetSize: + * @out: an xmlOutputBufferPtr + * + * Gives the length of the data currently held in the output buffer + * + * Returns 0 in case or error or no data is held, the size otherwise + */ +size_t +xmlOutputBufferGetSize(xmlOutputBufferPtr out) { + if ((out == NULL) || (out->buffer == NULL)) + return(0); + + return(xmlBufUse(out->buffer)); +} + + #endif /* LIBXML_OUTPUT_ENABLED */ /** @@ -2974,7 +3015,7 @@ xmlParserInputBufferCreateMem(const char *mem, int size, xmlCharEncoding enc) { ret->context = (void *) mem; ret->readcallback = (xmlInputReadCallback) xmlNop; ret->closecallback = NULL; - errcode = xmlBufferAdd(ret->buffer, (const xmlChar *) mem, size); + errcode = xmlBufAdd(ret->buffer, (const xmlChar *) mem, size); if (errcode != 0) { xmlFree(ret); return(NULL); @@ -3011,14 +3052,14 @@ xmlParserInputBufferCreateStatic(const char *mem, int size, return(NULL); } memset(ret, 0, (size_t) sizeof(xmlParserInputBuffer)); - ret->buffer = xmlBufferCreateStatic((void *)mem, (size_t) size); + ret->buffer = xmlBufCreateStatic((void *)mem, (size_t) size); if (ret->buffer == NULL) { xmlFree(ret); return(NULL); } ret->encoder = xmlGetCharEncodingHandler(enc); if (ret->encoder != NULL) - ret->raw = xmlBufferCreateSize(2 * xmlDefaultBufferSize); + ret->raw = xmlBufCreateSize(2 * xmlDefaultBufferSize); else ret->raw = NULL; ret->compressed = -1; @@ -3187,33 +3228,33 @@ xmlParserInputBufferPush(xmlParserInputBufferPtr in, * Store the data in the incoming raw buffer */ if (in->raw == NULL) { - in->raw = xmlBufferCreate(); + in->raw = xmlBufCreate(); } - ret = xmlBufferAdd(in->raw, (const xmlChar *) buf, len); + ret = xmlBufAdd(in->raw, (const xmlChar *) buf, len); if (ret != 0) return(-1); /* * convert as much as possible to the parser reading buffer. */ - use = in->raw->use; - nbchars = xmlCharEncInFunc(in->encoder, in->buffer, in->raw); + use = xmlBufUse(in->raw); + nbchars = xmlCharEncInput(in); if (nbchars < 0) { xmlIOErr(XML_IO_ENCODER, NULL); in->error = XML_IO_ENCODER; return(-1); } - in->rawconsumed += (use - in->raw->use); + in->rawconsumed += (use - xmlBufUse(in->raw)); } else { nbchars = len; - ret = xmlBufferAdd(in->buffer, (xmlChar *) buf, nbchars); + ret = xmlBufAdd(in->buffer, (xmlChar *) buf, nbchars); if (ret != 0) return(-1); } #ifdef DEBUG_INPUT xmlGenericError(xmlGenericErrorContext, "I/O: pushed %d chars, buffer %d/%d\n", - nbchars, in->buffer->use, in->buffer->size); + nbchars, xmlBufUse(in->buffer), xmlBufLength(in->buffer)); #endif return(nbchars); } @@ -3251,29 +3292,23 @@ xmlParserInputBufferGrow(xmlParserInputBufferPtr in, int len) { char *buffer = NULL; int res = 0; int nbchars = 0; - int buffree; - unsigned int needSize; if ((in == NULL) || (in->error)) return(-1); if ((len <= MINLEN) && (len != 4)) len = MINLEN; - buffree = in->buffer->size - in->buffer->use; - if (buffree <= 0) { + if (xmlBufAvail(in->buffer) <= 0) { xmlIOErr(XML_IO_BUFFER_FULL, NULL); in->error = XML_IO_BUFFER_FULL; return(-1); } - needSize = in->buffer->use + len + 1; - if (needSize > in->buffer->size){ - if (!xmlBufferResize(in->buffer, needSize)){ - xmlIOErrMemory("growing input buffer"); - in->error = XML_ERR_NO_MEMORY; - return(-1); - } + if (xmlBufGrow(in->buffer, len + 1) < 0) { + xmlIOErrMemory("growing input buffer"); + in->error = XML_ERR_NO_MEMORY; + return(-1); } - buffer = (char *)&in->buffer->content[in->buffer->use]; + buffer = (char *)xmlBufEnd(in->buffer); /* * Call the read method for this I/O type. @@ -3298,32 +3333,31 @@ xmlParserInputBufferGrow(xmlParserInputBufferPtr in, int len) { * Store the data in the incoming raw buffer */ if (in->raw == NULL) { - in->raw = xmlBufferCreate(); + in->raw = xmlBufCreate(); } - res = xmlBufferAdd(in->raw, (const xmlChar *) buffer, len); + res = xmlBufAdd(in->raw, (const xmlChar *) buffer, len); if (res != 0) return(-1); /* * convert as much as possible to the parser reading buffer. */ - use = in->raw->use; - nbchars = xmlCharEncInFunc(in->encoder, in->buffer, in->raw); + use = xmlBufUse(in->raw); + nbchars = xmlCharEncInput(in); if (nbchars < 0) { xmlIOErr(XML_IO_ENCODER, NULL); in->error = XML_IO_ENCODER; return(-1); } - in->rawconsumed += (use - in->raw->use); + in->rawconsumed += (use - xmlBufUse(in->raw)); } else { nbchars = len; - in->buffer->use += nbchars; - buffer[nbchars] = 0; + xmlBufAddLen(in->buffer, nbchars); } #ifdef DEBUG_INPUT xmlGenericError(xmlGenericErrorContext, - "I/O: read %d chars, buffer %d/%d\n", - nbchars, in->buffer->use, in->buffer->size); + "I/O: read %d chars, buffer %d\n", + nbchars, xmlBufUse(in->buffer)); #endif return(nbchars); } @@ -3345,8 +3379,7 @@ xmlParserInputBufferRead(xmlParserInputBufferPtr in, int len) { if ((in == NULL) || (in->error)) return(-1); if (in->readcallback != NULL) return(xmlParserInputBufferGrow(in, len)); - else if ((in->buffer != NULL) && - (in->buffer->alloc == XML_BUFFER_ALLOC_IMMUTABLE)) + else if (xmlBufGetAllocationScheme(in->buffer) == XML_BUFFER_ALLOC_IMMUTABLE) return(0); else return(-1); @@ -3391,30 +3424,30 @@ xmlOutputBufferWrite(xmlOutputBufferPtr out, int len, const char *buf) { * Store the data in the incoming raw buffer */ if (out->conv == NULL) { - out->conv = xmlBufferCreate(); + out->conv = xmlBufCreate(); } - ret = xmlBufferAdd(out->buffer, (const xmlChar *) buf, chunk); + ret = xmlBufAdd(out->buffer, (const xmlChar *) buf, chunk); if (ret != 0) return(-1); - if ((out->buffer->use < MINLEN) && (chunk == len)) + if ((xmlBufUse(out->buffer) < MINLEN) && (chunk == len)) goto done; /* * convert as much as possible to the parser reading buffer. */ - ret = xmlCharEncOutFunc(out->encoder, out->conv, out->buffer); + ret = xmlCharEncOutput(out, 0); if ((ret < 0) && (ret != -3)) { xmlIOErr(XML_IO_ENCODER, NULL); out->error = XML_IO_ENCODER; return(-1); } - nbchars = out->conv->use; + nbchars = xmlBufUse(out->conv); } else { - ret = xmlBufferAdd(out->buffer, (const xmlChar *) buf, chunk); + ret = xmlBufAdd(out->buffer, (const xmlChar *) buf, chunk); if (ret != 0) return(-1); - nbchars = out->buffer->use; + nbchars = xmlBufUse(out->buffer); } buf += chunk; len -= chunk; @@ -3428,14 +3461,14 @@ xmlOutputBufferWrite(xmlOutputBufferPtr out, int len, const char *buf) { */ if (out->encoder != NULL) { ret = out->writecallback(out->context, - (const char *)out->conv->content, nbchars); + (const char *)xmlBufContent(out->conv), nbchars); if (ret >= 0) - xmlBufferShrink(out->conv, ret); + xmlBufShrink(out->conv, ret); } else { ret = out->writecallback(out->context, - (const char *)out->buffer->content, nbchars); + (const char *)xmlBufContent(out->buffer), nbchars); if (ret >= 0) - xmlBufferShrink(out->buffer, ret); + xmlBufShrink(out->buffer, ret); } if (ret < 0) { xmlIOErr(XML_IO_WRITE, NULL); @@ -3479,7 +3512,7 @@ xmlEscapeContent(unsigned char* out, int *outlen, inend = in + (*inlen); while ((in < inend) && (out < outend)) { - if (*in == '<') { + if (*in == '<') { if (outend - out < 4) break; *out++ = '&'; *out++ = 'l'; @@ -3543,7 +3576,8 @@ xmlOutputBufferWriteEscape(xmlOutputBufferPtr out, const xmlChar *str, if ((out == NULL) || (out->error) || (str == NULL) || (out->buffer == NULL) || - (out->buffer->alloc == XML_BUFFER_ALLOC_IMMUTABLE)) return(-1); + (xmlBufGetAllocationScheme(out->buffer) == XML_BUFFER_ALLOC_IMMUTABLE)) + return(-1); len = strlen((const char *)str); if (len < 0) return(0); if (out->error) return(-1); @@ -3556,14 +3590,14 @@ xmlOutputBufferWriteEscape(xmlOutputBufferPtr out, const xmlChar *str, * how many bytes to consume and how many bytes to store. */ cons = len; - chunk = (out->buffer->size - out->buffer->use) - 1; + chunk = xmlBufAvail(out->buffer) - 1; /* * make sure we have enough room to save first, if this is * not the case force a flush, but make sure we stay in the loop */ if (chunk < 40) { - if (xmlBufferGrow(out->buffer, out->buffer->size + 100) < 0) + if (xmlBufGrow(out->buffer, 100) < 0) return(-1); oldwritten = -1; continue; @@ -3577,36 +3611,33 @@ xmlOutputBufferWriteEscape(xmlOutputBufferPtr out, const xmlChar *str, * Store the data in the incoming raw buffer */ if (out->conv == NULL) { - out->conv = xmlBufferCreate(); + out->conv = xmlBufCreate(); } - ret = escaping(out->buffer->content + out->buffer->use , + ret = escaping(xmlBufEnd(out->buffer) , &chunk, str, &cons); if ((ret < 0) || (chunk == 0)) /* chunk==0 => nothing done */ return(-1); - out->buffer->use += chunk; - out->buffer->content[out->buffer->use] = 0; + xmlBufAddLen(out->buffer, chunk); - if ((out->buffer->use < MINLEN) && (cons == len)) + if ((xmlBufUse(out->buffer) < MINLEN) && (cons == len)) goto done; /* * convert as much as possible to the output buffer. */ - ret = xmlCharEncOutFunc(out->encoder, out->conv, out->buffer); + ret = xmlCharEncOutput(out, 0); if ((ret < 0) && (ret != -3)) { xmlIOErr(XML_IO_ENCODER, NULL); out->error = XML_IO_ENCODER; return(-1); } - nbchars = out->conv->use; + nbchars = xmlBufUse(out->conv); } else { - ret = escaping(out->buffer->content + out->buffer->use , - &chunk, str, &cons); + ret = escaping(xmlBufEnd(out->buffer), &chunk, str, &cons); if ((ret < 0) || (chunk == 0)) /* chunk==0 => nothing done */ return(-1); - out->buffer->use += chunk; - out->buffer->content[out->buffer->use] = 0; - nbchars = out->buffer->use; + xmlBufAddLen(out->buffer, chunk); + nbchars = xmlBufUse(out->buffer); } str += cons; len -= cons; @@ -3620,14 +3651,14 @@ xmlOutputBufferWriteEscape(xmlOutputBufferPtr out, const xmlChar *str, */ if (out->encoder != NULL) { ret = out->writecallback(out->context, - (const char *)out->conv->content, nbchars); + (const char *)xmlBufContent(out->conv), nbchars); if (ret >= 0) - xmlBufferShrink(out->conv, ret); + xmlBufShrink(out->conv, ret); } else { ret = out->writecallback(out->context, - (const char *)out->buffer->content, nbchars); + (const char *)xmlBufContent(out->buffer), nbchars); if (ret >= 0) - xmlBufferShrink(out->buffer, ret); + xmlBufShrink(out->buffer, ret); } if (ret < 0) { xmlIOErr(XML_IO_WRITE, NULL); @@ -3635,8 +3666,8 @@ xmlOutputBufferWriteEscape(xmlOutputBufferPtr out, const xmlChar *str, return(ret); } out->written += ret; - } else if (out->buffer->size - out->buffer->use < MINLEN) { - xmlBufferResize(out->buffer, out->buffer->size + MINLEN); + } else if (xmlBufAvail(out->buffer) < MINLEN) { + xmlBufGrow(out->buffer, MINLEN); } written += nbchars; } while ((len > 0) && (oldwritten != written)); @@ -3696,7 +3727,7 @@ xmlOutputBufferFlush(xmlOutputBufferPtr out) { /* * convert as much as possible to the parser reading buffer. */ - nbchars = xmlCharEncOutFunc(out->encoder, out->conv, out->buffer); + nbchars = xmlCharEncOutput(out, 0); if (nbchars < 0) { xmlIOErr(XML_IO_ENCODER, NULL); out->error = XML_IO_ENCODER; @@ -3710,14 +3741,16 @@ xmlOutputBufferFlush(xmlOutputBufferPtr out) { if ((out->conv != NULL) && (out->encoder != NULL) && (out->writecallback != NULL)) { ret = out->writecallback(out->context, - (const char *)out->conv->content, out->conv->use); + (const char *)xmlBufContent(out->conv), + xmlBufUse(out->conv)); if (ret >= 0) - xmlBufferShrink(out->conv, ret); + xmlBufShrink(out->conv, ret); } else if (out->writecallback != NULL) { ret = out->writecallback(out->context, - (const char *)out->buffer->content, out->buffer->use); + (const char *)xmlBufContent(out->buffer), + xmlBufUse(out->buffer)); if (ret >= 0) - xmlBufferShrink(out->buffer, ret); + xmlBufShrink(out->buffer, ret); } if (ret < 0) { xmlIOErr(XML_IO_FLUSH, NULL); diff --git a/xmlcatalog.c b/xmlcatalog.c index 489509f..43f455a 100644 --- a/xmlcatalog.c +++ b/xmlcatalog.c @@ -47,16 +47,16 @@ static char *filename = NULL; #endif /************************************************************************ - * * - * Shell Interface * - * * + * * + * Shell Interface * + * * ************************************************************************/ /** * xmlShellReadline: * @prompt: the prompt value * * Read a string - * + * * Returns a pointer to it or NULL on EOF the caller is expected to * free the returned string. */ @@ -157,7 +157,7 @@ static void usershell(void) { i++; cur++; } - } else if (*cur == '"') { + } else if (*cur == '"') { cur++; argv[i] = cur; while ((*cur != 0) && (*cur != '"')) cur++; @@ -296,15 +296,15 @@ static void usershell(void) { printf("\tdebug: increase the verbosity level\n"); printf("\tquiet: decrease the verbosity level\n"); printf("\texit: quit the shell\n"); - } + } free(cmdline); /* not xmlFree here ! */ } } /************************************************************************ - * * - * Main * - * * + * * + * Main * + * * ************************************************************************/ static void usage(const char *name) { /* split into 2 printf's to avoid overly long string (gcc warning) */ @@ -507,7 +507,7 @@ int main(int argc, char **argv) { exit_value = 2; noout = 0; } else { - + xmlACatalogDump(super, out); fclose(out); } @@ -544,14 +544,14 @@ int main(int argc, char **argv) { } } } - + } else if (shell) { usershell(); } else { for (i++; i < argc; i++) { xmlURIPtr uri; xmlChar *ans; - + uri = xmlParseURI(argv[i]); if (uri == NULL) { ans = xmlCatalogResolvePublic((const xmlChar *) argv[i]); diff --git a/xmllint.c b/xmllint.c index 40a2194..9415d9a 100644 --- a/xmllint.c +++ b/xmllint.c @@ -169,7 +169,7 @@ static int nodefdtd = 0; #ifdef LIBXML_PUSH_ENABLED static int push = 0; #endif /* LIBXML_PUSH_ENABLED */ -#ifdef HAVE_SYS_MMAN_H +#ifdef HAVE_MMAP static int memory = 0; #endif static int testIO = 0; @@ -209,7 +209,7 @@ static xmlStreamCtxtPtr patstream = NULL; #ifdef LIBXML_XPATH_ENABLED static const char *xpathquery = NULL; #endif -static int options = XML_PARSE_COMPACT; +static int options = XML_PARSE_COMPACT | XML_PARSE_BIG_LINES; static int sax = 0; static int oldxml10 = 0; @@ -1669,6 +1669,7 @@ testSAX(const char *filename) { (xmlSchemaValidityErrorFunc) fprintf, (xmlSchemaValidityWarningFunc) fprintf, stderr); + xmlSchemaValidateSetFilename(vctxt, filename); ret = xmlSchemaValidateStream(vctxt, buf, 0, handler, (void *)user_data); @@ -1823,7 +1824,7 @@ static void processNode(xmlTextReaderPtr reader) { static void streamFile(char *filename) { xmlTextReaderPtr reader; int ret; -#ifdef HAVE_SYS_MMAN_H +#ifdef HAVE_MMAP int fd = -1; struct stat info; const char *base = NULL; @@ -1974,7 +1975,7 @@ static void streamFile(char *filename) { patstream = NULL; } #endif -#ifdef HAVE_SYS_MMAN_H +#ifdef HAVE_MMAP if (memory) { xmlFreeParserInputBuffer(input); munmap((char *) base, info.st_size); @@ -2139,7 +2140,7 @@ static void doXPathQuery(xmlDocPtr doc, const char *query) { progresult = XMLLINT_ERR_MEM; return; } - ctxt->node = xmlDocGetRootElement(doc); + ctxt->node = (xmlNodePtr) doc; res = xmlXPathEval(BAD_CAST query, ctxt); xmlXPathFreeContext(ctxt); @@ -2212,7 +2213,7 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) { } } #endif /* LIBXML_PUSH_ENABLED */ -#ifdef HAVE_SYS_MMAN_H +#ifdef HAVE_MMAP else if ((html) && (memory)) { int fd; struct stat info; @@ -2327,7 +2328,7 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) { if (rectxt == NULL) xmlFreeParserCtxt(ctxt); } -#ifdef HAVE_SYS_MMAN_H +#ifdef HAVE_MMAP } else if (memory) { int fd; struct stat info; @@ -2591,7 +2592,7 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) { } } else #endif -#ifdef HAVE_SYS_MMAN_H +#ifdef HAVE_MMAP if (memory) { xmlChar *result; int len; @@ -2619,7 +2620,7 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) { } } else -#endif /* HAVE_SYS_MMAN_H */ +#endif /* HAVE_MMAP */ if (compress) { xmlSaveFile(output ? output : "-", doc); } else if (oldout) { @@ -3017,7 +3018,7 @@ static void usage(const char *name) { #ifdef LIBXML_PUSH_ENABLED printf("\t--push : use the push mode of the parser\n"); #endif /* LIBXML_PUSH_ENABLED */ -#ifdef HAVE_SYS_MMAN_H +#ifdef HAVE_MMAP printf("\t--memory : parse from memory\n"); #endif printf("\t--maxmem nbbytes : limits memory allocation to nbbytes bytes\n"); @@ -3247,7 +3248,7 @@ main(int argc, char **argv) { (!strcmp(argv[i], "--push"))) push++; #endif /* LIBXML_PUSH_ENABLED */ -#ifdef HAVE_SYS_MMAN_H +#ifdef HAVE_MMAP else if ((!strcmp(argv[i], "-memory")) || (!strcmp(argv[i], "--memory"))) memory++; @@ -3339,8 +3340,9 @@ main(int argc, char **argv) { } else if ((!strcmp(argv[i], "-noblanks")) || (!strcmp(argv[i], "--noblanks"))) { - noblanks++; - xmlKeepBlanksDefault(0); + noblanks++; + xmlKeepBlanksDefault(0); + options |= XML_PARSE_NOBLANKS; } else if ((!strcmp(argv[i], "-maxmem")) || (!strcmp(argv[i], "--maxmem"))) { diff --git a/xmlmemory.c b/xmlmemory.c index a0ab953..25d9318 100644 --- a/xmlmemory.c +++ b/xmlmemory.c @@ -58,7 +58,7 @@ void xmlMallocBreakpoint(void); /************************************************************************ * * - * Macros, variables and associated types * + * Macros, variables and associated types * * * ************************************************************************/ diff --git a/xmlmodule.c b/xmlmodule.c index 9ffd610..7fe5bc2 100644 --- a/xmlmodule.c +++ b/xmlmodule.c @@ -30,7 +30,7 @@ static int xmlModulePlatformSymbol(void *handle, const char *name, void **result /************************************************************************ * * - * module memory error handler * + * module memory error handler * * * ************************************************************************/ @@ -61,6 +61,10 @@ xmlModuleErrMemory(xmlModulePtr module, const char *extra) * @options: a set of xmlModuleOption * * Opens a module/shared library given its name or path + * NOTE: that due to portability issues, behaviour can only be + * guaranteed with @name using ASCII. We canot guarantee that + * an UTF-8 string would work, which is why name is a const char * + * and not a const xmlChar * . * TODO: options are not yet implemented. * * Returns a handle for the module or NULL in case of error @@ -99,6 +103,10 @@ xmlModuleOpen(const char *name, int options ATTRIBUTE_UNUSED) * @symbol: the resulting symbol address * * Lookup for a symbol address in the given module + * NOTE: that due to portability issues, behaviour can only be + * guaranteed with @name using ASCII. We canot guarantee that + * an UTF-8 string would work, which is why name is a const char * + * and not a const xmlChar * . * * Returns 0 if the symbol was found, or -1 in case of error */ @@ -106,7 +114,7 @@ int xmlModuleSymbol(xmlModulePtr module, const char *name, void **symbol) { int rc = -1; - + if ((NULL == module) || (symbol == NULL)) { __xmlRaiseError(NULL, NULL, NULL, NULL, NULL, XML_FROM_MODULE, XML_MODULE_OPEN, XML_ERR_FATAL, NULL, 0, 0, @@ -300,7 +308,7 @@ xmlModulePlatformSymbol(void *handle, const char *name, void **symbol) static void * xmlModulePlatformOpen(const char *name) { - return LoadLibrary(name); + return LoadLibraryA(name); } /* @@ -326,7 +334,14 @@ xmlModulePlatformClose(void *handle) static int xmlModulePlatformSymbol(void *handle, const char *name, void **symbol) { +#ifdef _WIN32_WCE + /* + * GetProcAddressA seems only available on WinCE + */ + *symbol = GetProcAddressA(handle, name); +#else *symbol = GetProcAddress(handle, name); +#endif return (NULL == *symbol) ? -1 : 0; } diff --git a/xmlreader.c b/xmlreader.c index 77ac71b..579e943 100644 --- a/xmlreader.c +++ b/xmlreader.c @@ -44,6 +44,8 @@ #include #endif +#include "buf.h" + #define MAX_ERR_MSG_SIZE 64000 /* @@ -135,7 +137,7 @@ struct _xmlTextReader { int depth; /* depth of the current node */ xmlNodePtr faketext;/* fake xmlNs chld */ int preserve;/* preserve the resulting document */ - xmlBufferPtr buffer; /* used to return const xmlChar * */ + xmlBufPtr buffer; /* used to return const xmlChar * */ xmlDictPtr dict; /* the context dictionnary */ /* entity stack when traversing entities content */ @@ -807,9 +809,10 @@ xmlTextReaderCDataBlock(void *ctx, const xmlChar *ch, int len) */ static int xmlTextReaderPushData(xmlTextReaderPtr reader) { - xmlBufferPtr inbuf; + xmlBufPtr inbuf; int val, s; xmlTextReaderState oldstate; + int alloc; if ((reader->input == NULL) || (reader->input->buffer == NULL)) return(-1); @@ -817,17 +820,18 @@ xmlTextReaderPushData(xmlTextReaderPtr reader) { oldstate = reader->state; reader->state = XML_TEXTREADER_NONE; inbuf = reader->input->buffer; + alloc = xmlBufGetAllocationScheme(inbuf); while (reader->state == XML_TEXTREADER_NONE) { - if (inbuf->use < reader->cur + CHUNK_SIZE) { + if (xmlBufUse(inbuf) < reader->cur + CHUNK_SIZE) { /* * Refill the buffer unless we are at the end of the stream */ if (reader->mode != XML_TEXTREADER_MODE_EOF) { val = xmlParserInputBufferRead(reader->input, 4096); if ((val == 0) && - (inbuf->alloc == XML_BUFFER_ALLOC_IMMUTABLE)) { - if (inbuf->use == reader->cur) { + (alloc == XML_BUFFER_ALLOC_IMMUTABLE)) { + if (xmlBufUse(inbuf) == reader->cur) { reader->mode = XML_TEXTREADER_MODE_EOF; reader->state = oldstate; } @@ -850,20 +854,20 @@ xmlTextReaderPushData(xmlTextReaderPtr reader) { * parse by block of CHUNK_SIZE bytes, various tests show that * it's the best tradeoff at least on a 1.2GH Duron */ - if (inbuf->use >= reader->cur + CHUNK_SIZE) { + if (xmlBufUse(inbuf) >= reader->cur + CHUNK_SIZE) { val = xmlParseChunk(reader->ctxt, - (const char *) &inbuf->content[reader->cur], - CHUNK_SIZE, 0); + (const char *) xmlBufContent(inbuf) + reader->cur, + CHUNK_SIZE, 0); reader->cur += CHUNK_SIZE; if (val != 0) reader->ctxt->wellFormed = 0; if (reader->ctxt->wellFormed == 0) break; } else { - s = inbuf->use - reader->cur; + s = xmlBufUse(inbuf) - reader->cur; val = xmlParseChunk(reader->ctxt, - (const char *) &inbuf->content[reader->cur], - s, 0); + (const char *) xmlBufContent(inbuf) + reader->cur, + s, 0); reader->cur += s; if (val != 0) reader->ctxt->wellFormed = 0; @@ -875,10 +879,10 @@ xmlTextReaderPushData(xmlTextReaderPtr reader) { * Discard the consumed input when needed and possible */ if (reader->mode == XML_TEXTREADER_MODE_INTERACTIVE) { - if (inbuf->alloc != XML_BUFFER_ALLOC_IMMUTABLE) { + if (alloc != XML_BUFFER_ALLOC_IMMUTABLE) { if ((reader->cur >= 4096) && - (inbuf->use - reader->cur <= CHUNK_SIZE)) { - val = xmlBufferShrink(inbuf, reader->cur); + (xmlBufUse(inbuf) - reader->cur <= CHUNK_SIZE)) { + val = xmlBufShrink(inbuf, reader->cur); if (val >= 0) { reader->cur -= val; } @@ -892,11 +896,11 @@ xmlTextReaderPushData(xmlTextReaderPtr reader) { */ else if (reader->mode == XML_TEXTREADER_MODE_EOF) { if (reader->state != XML_TEXTREADER_DONE) { - s = inbuf->use - reader->cur; + s = xmlBufUse(inbuf) - reader->cur; val = xmlParseChunk(reader->ctxt, - (const char *) &inbuf->content[reader->cur], - s, 1); - reader->cur = inbuf->use; + (const char *) xmlBufContent(inbuf) + reader->cur, + s, 1); + reader->cur = xmlBufUse(inbuf); reader->state = XML_TEXTREADER_DONE; if (val != 0) { if (reader->ctxt->wellFormed) @@ -907,8 +911,11 @@ xmlTextReaderPushData(xmlTextReaderPtr reader) { } } reader->state = oldstate; - if (reader->ctxt->wellFormed == 0) + if (reader->ctxt->wellFormed == 0) { reader->mode = XML_TEXTREADER_MODE_EOF; + return(-1); + } + return(0); } @@ -1221,6 +1228,9 @@ xmlTextReaderCollectSiblings(xmlNodePtr node) xmlBufferPtr buffer; xmlChar *ret; + if ((node == NULL) || (node->type == XML_NAMESPACE_DECL)) + return(NULL); + buffer = xmlBufferCreate(); if (buffer == NULL) return NULL; @@ -1716,8 +1726,8 @@ xmlTextReaderReadInnerXml(xmlTextReaderPtr reader ATTRIBUTE_UNUSED) * * Reads the contents of the current node, including child nodes and markup. * - * Returns a string containing the node and any XML content, or NULL if the - * current node cannot be serialized. The string must be deallocated + * Returns a string containing the node and any XML content, or NULL if the + * current node cannot be serialized. The string must be deallocated * by the caller. */ xmlChar * @@ -2062,7 +2072,7 @@ xmlNewTextReader(xmlParserInputBufferPtr input, const char *URI) { ret->entMax = 0; ret->entNr = 0; ret->input = input; - ret->buffer = xmlBufferCreateSize(100); + ret->buffer = xmlBufCreateSize(100); if (ret->buffer == NULL) { xmlFree(ret); xmlGenericError(xmlGenericErrorContext, @@ -2071,7 +2081,7 @@ xmlNewTextReader(xmlParserInputBufferPtr input, const char *URI) { } ret->sax = (xmlSAXHandler *) xmlMalloc(sizeof(xmlSAXHandler)); if (ret->sax == NULL) { - xmlBufferFree(ret->buffer); + xmlBufFree(ret->buffer); xmlFree(ret); xmlGenericError(xmlGenericErrorContext, "xmlNewTextReader : malloc failed\n"); @@ -2104,12 +2114,13 @@ xmlNewTextReader(xmlParserInputBufferPtr input, const char *URI) { ret->mode = XML_TEXTREADER_MODE_INITIAL; ret->node = NULL; ret->curnode = NULL; - if (ret->input->buffer->use < 4) { + if (xmlBufUse(ret->input->buffer) < 4) { xmlParserInputBufferRead(input, 4); } - if (ret->input->buffer->use >= 4) { + if (xmlBufUse(ret->input->buffer) >= 4) { ret->ctxt = xmlCreatePushParserCtxt(ret->sax, NULL, - (const char *) ret->input->buffer->content, 4, URI); + (const char *) xmlBufContent(ret->input->buffer), + 4, URI); ret->base = 0; ret->cur = 4; } else { @@ -2121,7 +2132,7 @@ xmlNewTextReader(xmlParserInputBufferPtr input, const char *URI) { if (ret->ctxt == NULL) { xmlGenericError(xmlGenericErrorContext, "xmlNewTextReader : malloc failed\n"); - xmlBufferFree(ret->buffer); + xmlBufFree(ret->buffer); xmlFree(ret->sax); xmlFree(ret); return(NULL); @@ -2251,7 +2262,7 @@ xmlFreeTextReader(xmlTextReaderPtr reader) { if ((reader->input != NULL) && (reader->allocs & XML_TEXTREADER_INPUT)) xmlFreeParserInputBuffer(reader->input); if (reader->buffer != NULL) - xmlBufferFree(reader->buffer); + xmlBufFree(reader->buffer); if (reader->entTab != NULL) xmlFree(reader->entTab); if (reader->dict != NULL) @@ -3599,16 +3610,17 @@ xmlTextReaderConstValue(xmlTextReaderPtr reader) { (attr->children->next == NULL)) return(attr->children->content); else { - if (reader->buffer == NULL) - reader->buffer = xmlBufferCreateSize(100); if (reader->buffer == NULL) { - xmlGenericError(xmlGenericErrorContext, - "xmlTextReaderSetup : malloc failed\n"); - return (NULL); - } - reader->buffer->use = 0; - xmlNodeBufGetContent(reader->buffer, node); - return(reader->buffer->content); + reader->buffer = xmlBufCreateSize(100); + if (reader->buffer == NULL) { + xmlGenericError(xmlGenericErrorContext, + "xmlTextReaderSetup : malloc failed\n"); + return (NULL); + } + } else + xmlBufEmpty(reader->buffer); + xmlBufGetNodeContent(reader->buffer, node); + return(xmlBufContent(reader->buffer)); } break; } @@ -4142,6 +4154,60 @@ xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader, xmlRelaxNGPtr schema) { return(0); } +/** + * xmlTextReaderLocator: + * @ctx: the xmlTextReaderPtr used + * @file: returned file information + * @line: returned line information + * + * Internal locator function for the readers + * + * Returns 0 in case the Schema validation could be (des)activated and + * -1 in case of error. + */ +static int +xmlTextReaderLocator(void *ctx, const char **file, unsigned long *line) { + xmlTextReaderPtr reader; + + if ((ctx == NULL) || ((file == NULL) && (line == NULL))) + return(-1); + + if (file != NULL) + *file = NULL; + if (line != NULL) + *line = 0; + + reader = (xmlTextReaderPtr) ctx; + if ((reader->ctxt != NULL) && (reader->ctxt->input != NULL)) { + if (file != NULL) + *file = reader->ctxt->input->filename; + if (line != NULL) + *line = reader->ctxt->input->line; + return(0); + } + if (reader->node != NULL) { + long res; + int ret = 0; + + if (line != NULL) { + res = xmlGetLineNo(reader->node); + if (res > 0) + *line = (unsigned long) res; + else + ret = -1; + } + if (file != NULL) { + xmlDocPtr doc = reader->node->doc; + if ((doc != NULL) && (doc->URL != NULL)) + *file = (const char *) doc->URL; + else + ret = -1; + } + return(ret); + } + return(-1); +} + /** * xmlTextReaderSetSchema: * @reader: the xmlTextReaderPtr used @@ -4209,6 +4275,10 @@ xmlTextReaderSetSchema(xmlTextReaderPtr reader, xmlSchemaPtr schema) { reader->xsdValidCtxt = NULL; return(-1); } + xmlSchemaValidateSetLocator(reader->xsdValidCtxt, + xmlTextReaderLocator, + (void *) reader); + if (reader->errorFunc != NULL) { xmlSchemaSetValidErrors(reader->xsdValidCtxt, xmlTextReaderValidityErrorRelay, @@ -4423,6 +4493,9 @@ xmlTextReaderSchemaValidateInternal(xmlTextReaderPtr reader, return(-1); } } + xmlSchemaValidateSetLocator(reader->xsdValidCtxt, + xmlTextReaderLocator, + (void *) reader); /* * Redirect the validation context's error channels to use * the reader channels. @@ -5040,7 +5113,7 @@ xmlTextReaderSetup(xmlTextReaderPtr reader, reader->allocs |= XML_TEXTREADER_INPUT; } if (reader->buffer == NULL) - reader->buffer = xmlBufferCreateSize(100); + reader->buffer = xmlBufCreateSize(100); if (reader->buffer == NULL) { xmlGenericError(xmlGenericErrorContext, "xmlTextReaderSetup : malloc failed\n"); @@ -5081,13 +5154,14 @@ xmlTextReaderSetup(xmlTextReaderPtr reader, reader->node = NULL; reader->curnode = NULL; if (input != NULL) { - if (reader->input->buffer->use < 4) { + if (xmlBufUse(reader->input->buffer) < 4) { xmlParserInputBufferRead(input, 4); } if (reader->ctxt == NULL) { - if (reader->input->buffer->use >= 4) { + if (xmlBufUse(reader->input->buffer) >= 4) { reader->ctxt = xmlCreatePushParserCtxt(reader->sax, NULL, - (const char *) reader->input->buffer->content, 4, URL); + (const char *) xmlBufContent(reader->input->buffer), + 4, URL); reader->base = 0; reader->cur = 4; } else { @@ -5116,10 +5190,7 @@ xmlTextReaderSetup(xmlTextReaderPtr reader, inputStream->filename = (char *) xmlCanonicPath((const xmlChar *) URL); inputStream->buf = buf; - inputStream->base = inputStream->buf->buffer->content; - inputStream->cur = inputStream->buf->buffer->content; - inputStream->end = - &inputStream->buf->buffer->content[inputStream->buf->buffer->use]; + xmlBufResetInput(buf->buffer, inputStream); inputPush(reader->ctxt, inputStream); reader->cur = 0; diff --git a/xmlregexp.c b/xmlregexp.c index 8a8be98..68e7bed 100644 --- a/xmlregexp.c +++ b/xmlregexp.c @@ -1,7 +1,7 @@ /* * regexp.c: generic and extensible Regular Expression engine * - * Basically designed with the purpose of compiling regexps for + * Basically designed with the purpose of compiling regexps for * the variety of validation/shemas mechanisms now available in * XML related specifications these include: * - XML-1.0 DTD validation @@ -68,15 +68,15 @@ * * macro to flag unimplemented blocks */ -#define TODO \ +#define TODO \ xmlGenericError(xmlGenericErrorContext, \ "Unimplemented block at %s:%d\n", \ __FILE__, __LINE__); /************************************************************************ - * * - * Datatypes and structures * - * * + * * + * Datatypes and structures * + * * ************************************************************************/ /* @@ -222,6 +222,7 @@ struct _xmlRegTrans { struct _xmlAutomataState { xmlRegStateType type; xmlRegMarkedType mark; + xmlRegMarkedType markd; xmlRegMarkedType reached; int no; int maxTrans; @@ -364,7 +365,7 @@ void xmlAutomataSetFlags(xmlAutomataPtr am, int flags); /************************************************************************ * * - * Regexp memory error handler * + * Regexp memory error handler * * * ************************************************************************/ /** @@ -411,9 +412,9 @@ xmlRegexpErrCompile(xmlRegParserCtxtPtr ctxt, const char *extra) } /************************************************************************ - * * - * Allocation/Deallocation * - * * + * * + * Allocation/Deallocation * + * * ************************************************************************/ static int xmlFAComputesDeterminism(xmlRegParserCtxtPtr ctxt); @@ -934,9 +935,9 @@ xmlRegFreeParserCtxt(xmlRegParserCtxtPtr ctxt) { } /************************************************************************ - * * - * Display of Data structures * - * * + * * + * Display of Data structures * + * * ************************************************************************/ static void @@ -1143,7 +1144,7 @@ xmlRegPrintTrans(FILE *output, xmlRegTransPtr trans) { fprintf(output, "char %c ", trans->atom->codepoint); fprintf(output, "atom %d, to %d\n", trans->atom->no, trans->to); } - + static void xmlRegPrintState(FILE *output, xmlRegStatePtr state) { int i; @@ -1157,7 +1158,7 @@ xmlRegPrintState(FILE *output, xmlRegStatePtr state) { fprintf(output, "START "); if (state->type == XML_REGEXP_FINAL_STATE) fprintf(output, "FINAL "); - + fprintf(output, "%d, %d transitions:\n", state->no, state->nbTrans); for (i = 0;i < state->nbTrans; i++) { xmlRegPrintTrans(output, &(state->trans[i])); @@ -1207,12 +1208,12 @@ xmlRegPrintCtxt(FILE *output, xmlRegParserCtxtPtr ctxt) { #endif /************************************************************************ - * * + * * * Finite Automata structures manipulations * - * * + * * ************************************************************************/ -static void +static void xmlRegAtomAddRange(xmlRegParserCtxtPtr ctxt, xmlRegAtomPtr atom, int neg, xmlRegAtomType type, int start, int end, xmlChar *blockName) { @@ -1252,7 +1253,7 @@ xmlRegAtomAddRange(xmlRegParserCtxtPtr ctxt, xmlRegAtomPtr atom, return; range->blockName = blockName; atom->ranges[atom->nbRanges++] = range; - + } static int @@ -1283,7 +1284,7 @@ xmlRegGetCounter(xmlRegParserCtxtPtr ctxt) { return(ctxt->nbCounters++); } -static int +static int xmlRegAtomPush(xmlRegParserCtxtPtr ctxt, xmlRegAtomPtr atom) { if (atom == NULL) { ERROR("atom push: atom is NULL"); @@ -1315,7 +1316,7 @@ xmlRegAtomPush(xmlRegParserCtxtPtr ctxt, xmlRegAtomPtr atom) { return(0); } -static void +static void xmlRegStateAddTransTo(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr target, int from) { if (target->maxTransTo == 0) { @@ -1343,7 +1344,7 @@ xmlRegStateAddTransTo(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr target, target->nbTransTo++; } -static void +static void xmlRegStateAddTrans(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr state, xmlRegAtomPtr atom, xmlRegStatePtr target, int counter, int count) { @@ -1409,7 +1410,7 @@ xmlRegStateAddTrans(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr state, printf("counted %d\n", counter); else if (atom == NULL) printf("epsilon transition\n"); - else if (atom != NULL) + else if (atom != NULL) xmlRegPrintAtom(stdout, atom); #endif @@ -1563,7 +1564,7 @@ xmlFAGenerateTransitions(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr from, */ xmlFAGenerateEpsilonTransition(ctxt, atom->stop, to); #ifdef DV - } else if ((to == NULL) && (atom->quant != XML_REGEXP_QUANT_RANGE) && + } else if ((to == NULL) && (atom->quant != XML_REGEXP_QUANT_RANGE) && (atom->quant != XML_REGEXP_QUANT_ONCE)) { to = xmlRegNewState(ctxt); xmlRegStatePush(ctxt, to); @@ -1577,7 +1578,7 @@ xmlFAGenerateTransitions(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr from, /* * transition done to the state after end of atom. * 1. set transition from atom start to new state - * 2. set transition from atom end to this state. + * 2. set transition from atom end to this state. */ if (to == NULL) { xmlFAGenerateEpsilonTransition(ctxt, atom->start, 0); @@ -1621,7 +1622,7 @@ xmlFAGenerateTransitions(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr from, /* * duplicate a transition based on atom to count next * occurences after 1. We cannot loop to atom->start - * directly because we need an epsilon transition to + * directly because we need an epsilon transition to * newstate. */ /* ???? For some reason it seems we never reach that @@ -1680,7 +1681,7 @@ xmlFAGenerateTransitions(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr from, break; } return(0); - } + } if ((atom->min == 0) && (atom->max == 0) && (atom->quant == XML_REGEXP_QUANT_RANGE)) { /* @@ -1706,9 +1707,9 @@ xmlFAGenerateTransitions(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr from, else { return(-1); } - } + } end = to; - if ((atom->quant == XML_REGEXP_QUANT_MULT) || + if ((atom->quant == XML_REGEXP_QUANT_MULT) || (atom->quant == XML_REGEXP_QUANT_PLUS)) { /* * Do not pollute the target state by adding transitions from @@ -1716,7 +1717,7 @@ xmlFAGenerateTransitions(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr from, * So isolate with an epsilon transition. */ xmlRegStatePtr tmp; - + tmp = xmlRegNewState(ctxt); if (tmp != NULL) xmlRegStatePush(ctxt, tmp); @@ -1745,7 +1746,7 @@ xmlFAGenerateTransitions(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr from, atom->quant = XML_REGEXP_QUANT_ONCE; xmlRegStateAddTrans(ctxt, to, atom, to, -1, -1); break; - case XML_REGEXP_QUANT_RANGE: + case XML_REGEXP_QUANT_RANGE: #if DV_test if (atom->min == 0) { xmlFAGenerateEpsilonTransition(ctxt, from, to); @@ -1762,7 +1763,7 @@ xmlFAGenerateTransitions(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr from, * xmlFAReduceEpsilonTransitions: * @ctxt: a regexp parser context * @fromnr: the from state - * @tonr: the to state + * @tonr: the to state * @counter: should that transition be associated to a counted * */ @@ -1806,7 +1807,7 @@ xmlFAReduceEpsilonTransitions(xmlRegParserCtxtPtr ctxt, int fromnr, int newto = to->trans[transnr].to; xmlRegStateAddTrans(ctxt, from, NULL, - ctxt->states[newto], + ctxt->states[newto], -1, to->trans[transnr].count); } else { #ifdef DEBUG_REGEXP_GRAPH @@ -1828,11 +1829,11 @@ xmlFAReduceEpsilonTransitions(xmlRegParserCtxtPtr ctxt, int fromnr, int newto = to->trans[transnr].to; if (to->trans[transnr].counter >= 0) { - xmlRegStateAddTrans(ctxt, from, to->trans[transnr].atom, - ctxt->states[newto], + xmlRegStateAddTrans(ctxt, from, to->trans[transnr].atom, + ctxt->states[newto], to->trans[transnr].counter, -1); } else { - xmlRegStateAddTrans(ctxt, from, to->trans[transnr].atom, + xmlRegStateAddTrans(ctxt, from, to->trans[transnr].atom, ctxt->states[newto], counter, -1); } } @@ -1844,7 +1845,7 @@ xmlFAReduceEpsilonTransitions(xmlRegParserCtxtPtr ctxt, int fromnr, * xmlFAEliminateSimpleEpsilonTransitions: * @ctxt: a regexp parser context * - * Eliminating general epsilon transitions can get costly in the general + * Eliminating general epsilon transitions can get costly in the general * algorithm due to the large amount of generated new transitions and * associated comparisons. However for simple epsilon transition used just * to separate building blocks when generating the automata this can be @@ -1880,12 +1881,12 @@ xmlFAEliminateSimpleEpsilonTransitions(xmlRegParserCtxtPtr ctxt) { #ifdef DEBUG_REGEXP_GRAPH printf("Found simple epsilon trans from start %d to %d\n", statenr, newto); -#endif +#endif } else { #ifdef DEBUG_REGEXP_GRAPH printf("Found simple epsilon trans from %d to %d\n", statenr, newto); -#endif +#endif for (i = 0;i < state->nbTransTo;i++) { tmp = ctxt->states[state->transTo[i]]; for (j = 0;j < tmp->nbTrans;j++) { @@ -1893,10 +1894,10 @@ xmlFAEliminateSimpleEpsilonTransitions(xmlRegParserCtxtPtr ctxt) { #ifdef DEBUG_REGEXP_GRAPH printf("Changed transition %d on %d to go to %d\n", j, tmp->no, newto); -#endif +#endif tmp->trans[j].to = -1; xmlRegStateAddTrans(ctxt, tmp, tmp->trans[j].atom, - ctxt->states[newto], + ctxt->states[newto], tmp->trans[j].counter, tmp->trans[j].count); } @@ -1910,7 +1911,7 @@ xmlFAEliminateSimpleEpsilonTransitions(xmlRegParserCtxtPtr ctxt) { state->type = XML_REGEXP_UNREACH_STATE; } - + } } } @@ -2112,7 +2113,7 @@ xmlFACompareRanges(xmlRegRangePtr range1, xmlRegRangePtr range2) { /* * just check all codepoints in the range for acceptance, * this is usually way cheaper since done only once at - * compilation than testing over and over at runtime or + * compilation than testing over and over at runtime or * pushing too many states when evaluating. */ if (((range1->neg == 0) && (range2->neg != 0)) || @@ -2589,6 +2590,8 @@ xmlFARecurseDeterminism(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr state, if (state == NULL) return(ret); + if (state->markd == XML_REGEXP_MARK_VISITED) + return(ret); if (ctxt->flags & AM_AUTOMATA_RNG) deep = 0; @@ -2606,8 +2609,10 @@ xmlFARecurseDeterminism(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr state, if (t1->atom == NULL) { if (t1->to < 0) continue; + state->markd = XML_REGEXP_MARK_VISITED; res = xmlFARecurseDeterminism(ctxt, ctxt->states[t1->to], to, atom); + state->markd = 0; if (res == 0) { ret = 0; /* t1->nd = 1; */ @@ -2776,9 +2781,9 @@ xmlFAComputesDeterminism(xmlRegParserCtxtPtr ctxt) { } /************************************************************************ - * * + * * * Routines to check input against transition atoms * - * * + * * ************************************************************************/ static int @@ -2807,7 +2812,7 @@ xmlRegCheckCharacterRange(xmlRegAtomType type, int codepoint, int neg, case XML_REGEXP_NOTINITNAME: neg = !neg; case XML_REGEXP_INITNAME: - ret = (IS_LETTER(codepoint) || + ret = (IS_LETTER(codepoint) || (codepoint == '_') || (codepoint == ':')); break; case XML_REGEXP_NOTNAMECHAR: @@ -3055,9 +3060,9 @@ xmlRegCheckCharacter(xmlRegAtomPtr atom, int codepoint) { } /************************************************************************ - * * + * * * Saving and restoring state of an execution context * - * * + * * ************************************************************************/ #ifdef DEBUG_REGEXP_EXEC @@ -3168,9 +3173,9 @@ xmlFARegExecRollBack(xmlRegExecCtxtPtr exec) { } /************************************************************************ - * * + * * * Verifier, running an input against a compiled regexp * - * * + * * ************************************************************************/ static int @@ -3202,7 +3207,7 @@ xmlFARegExec(xmlRegexpPtr comp, const xmlChar *content) { memset(exec->counts, 0, comp->nbCounters * sizeof(int)); } else exec->counts = NULL; - while ((exec->status == 0) && + while ((exec->status == 0) && (exec->state != NULL) && ((exec->inputString[exec->index] != 0) || ((exec->state != NULL) && (exec->state->type != XML_REGEXP_FINAL_STATE)))) { @@ -3456,6 +3461,8 @@ error: } xmlFree(exec->rollbacks); } + if (exec->state == NULL) + return(-1); if (exec->counts != NULL) xmlFree(exec->counts); if (exec->status == 0) @@ -3469,9 +3476,9 @@ error: } /************************************************************************ - * * + * * * Progressive interface to the verifier one atom at a time * - * * + * * ************************************************************************/ #ifdef DEBUG_ERR static void testerr(xmlRegExecCtxtPtr exec); @@ -3588,7 +3595,7 @@ xmlFARegExecSaveInputString(xmlRegExecCtxtPtr exec, const xmlChar *value, #endif if (exec->inputStackMax == 0) { exec->inputStackMax = 4; - exec->inputStack = (xmlRegInputTokenPtr) + exec->inputStack = (xmlRegInputTokenPtr) xmlMalloc(exec->inputStackMax * sizeof(xmlRegInputToken)); if (exec->inputStack == NULL) { xmlRegexpErrMemory(NULL, "pushing input string"); @@ -3617,11 +3624,11 @@ xmlFARegExecSaveInputString(xmlRegExecCtxtPtr exec, const xmlChar *value, /** * xmlRegStrEqualWildcard: - * @expStr: the string to be evaluated + * @expStr: the string to be evaluated * @valStr: the validation string * * Checks if both strings are equal or have the same content. "*" - * can be used as a wildcard in @valStr; "|" is used as a seperator of + * can be used as a wildcard in @valStr; "|" is used as a seperator of * substrings in both @expStr and @valStr. * * Returns 1 if the comparison is satisfied and the number of substrings @@ -3687,7 +3694,7 @@ xmlRegCompactPushString(xmlRegExecCtxtPtr exec, if ((comp == NULL) || (comp->compact == NULL) || (comp->stringMap == NULL)) return(-1); - + if (value == NULL) { /* * are we at a final state ? @@ -3708,9 +3715,9 @@ xmlRegCompactPushString(xmlRegExecCtxtPtr exec, for (i = 0;i < comp->nbstrings;i++) { target = comp->compact[state * (comp->nbstrings + 1) + i + 1]; if ((target > 0) && (target <= comp->nbstates)) { - target--; /* to avoid 0 */ + target--; /* to avoid 0 */ if (xmlRegStrEqualWildcard(comp->stringMap[i], value)) { - exec->index = target; + exec->index = target; if ((exec->callback != NULL) && (comp->transdata != NULL)) { exec->callback(exec->data, value, comp->transdata[state * comp->nbstrings + i], data); @@ -3844,7 +3851,7 @@ xmlRegExecPushStringInternal(xmlRegExecCtxtPtr exec, const xmlChar *value, continue; counter = &exec->comp->counters[t->counter]; count = exec->counts[t->counter]; - if ((count < counter->max) && + if ((count < counter->max) && (t->atom != NULL) && (xmlStrEqual(value, t->atom->valuep))) { ret = 0; @@ -4202,7 +4209,7 @@ xmlRegExecGetValues(xmlRegExecCtxtPtr exec, int err, int maxval; int nb = 0; - if ((exec == NULL) || (nbval == NULL) || (nbneg == NULL) || + if ((exec == NULL) || (nbval == NULL) || (nbneg == NULL) || (values == NULL) || (*nbval <= 0)) return(-1); @@ -4308,7 +4315,7 @@ xmlRegExecGetValues(xmlRegExecCtxtPtr exec, int err, values[nb++] = (xmlChar *) atom->valuep; (*nbval)++; } - } + } } for (transno = 0; (transno < state->nbTrans) && (nb < maxval); @@ -4335,7 +4342,7 @@ xmlRegExecGetValues(xmlRegExecCtxtPtr exec, int err, values[nb++] = (xmlChar *) atom->valuep; (*nbneg)++; } - } + } } } return(0); @@ -4566,10 +4573,10 @@ progress: } #endif /************************************************************************ - * * + * * * Parser for the Schemas Datatype Regular Expressions * * http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/#regexs * - * * + * * ************************************************************************/ /** @@ -4598,7 +4605,7 @@ xmlFAIsChar(xmlRegParserCtxtPtr ctxt) { * * [27] charProp ::= IsCategory | IsBlock * [28] IsCategory ::= Letters | Marks | Numbers | Punctuation | - * Separators | Symbols | Others + * Separators | Symbols | Others * [29] Letters ::= 'L' [ultmo]? * [30] Marks ::= 'M' [nce]? * [31] Numbers ::= 'N' [dlo]? @@ -4613,7 +4620,7 @@ xmlFAParseCharProp(xmlRegParserCtxtPtr ctxt) { int cur; xmlRegAtomType type = (xmlRegAtomType) 0; xmlChar *blockName = NULL; - + cur = CUR; if (cur == 'L') { NEXT; @@ -4785,15 +4792,15 @@ xmlFAParseCharProp(xmlRegParserCtxtPtr ctxt) { NEXT; start = ctxt->cur; cur = CUR; - if (((cur >= 'a') && (cur <= 'z')) || - ((cur >= 'A') && (cur <= 'Z')) || - ((cur >= '0') && (cur <= '9')) || + if (((cur >= 'a') && (cur <= 'z')) || + ((cur >= 'A') && (cur <= 'Z')) || + ((cur >= '0') && (cur <= '9')) || (cur == 0x2D)) { NEXT; cur = CUR; - while (((cur >= 'a') && (cur <= 'z')) || - ((cur >= 'A') && (cur <= 'Z')) || - ((cur >= '0') && (cur <= '9')) || + while (((cur >= 'a') && (cur <= 'z')) || + ((cur >= 'A') && (cur <= 'Z')) || + ((cur >= '0') && (cur <= '9')) || (cur == 0x2D)) { NEXT; cur = CUR; @@ -4819,7 +4826,7 @@ xmlFAParseCharProp(xmlRegParserCtxtPtr ctxt) { * xmlFAParseCharClassEsc: * @ctxt: a regexp parser context * - * [23] charClassEsc ::= ( SingleCharEsc | MultiCharEsc | catEsc | complEsc ) + * [23] charClassEsc ::= ( SingleCharEsc | MultiCharEsc | catEsc | complEsc ) * [24] SingleCharEsc ::= '\' [nrt\|.?*+(){}#x2D#x5B#x5D#x5E] * [25] catEsc ::= '\p{' charProp '}' * [26] complEsc ::= '\P{' charProp '}' @@ -4916,34 +4923,34 @@ xmlFAParseCharClassEsc(xmlRegParserCtxtPtr ctxt) { xmlRegAtomType type = XML_REGEXP_ANYSPACE; switch (cur) { - case 's': + case 's': type = XML_REGEXP_ANYSPACE; break; - case 'S': + case 'S': type = XML_REGEXP_NOTSPACE; break; - case 'i': + case 'i': type = XML_REGEXP_INITNAME; break; - case 'I': + case 'I': type = XML_REGEXP_NOTINITNAME; break; - case 'c': + case 'c': type = XML_REGEXP_NAMECHAR; break; - case 'C': + case 'C': type = XML_REGEXP_NOTNAMECHAR; break; - case 'd': + case 'd': type = XML_REGEXP_DECIMAL; break; - case 'D': + case 'D': type = XML_REGEXP_NOTDECIMAL; break; - case 'w': + case 'w': type = XML_REGEXP_REALCHAR; break; - case 'W': + case 'W': type = XML_REGEXP_NOTREALCHAR; break; } @@ -4963,7 +4970,7 @@ xmlFAParseCharClassEsc(xmlRegParserCtxtPtr ctxt) { * xmlFAParseCharRange: * @ctxt: a regexp parser context * - * [17] charRange ::= seRange | XmlCharRef | XmlCharIncDash + * [17] charRange ::= seRange | XmlCharRef | XmlCharIncDash * [18] seRange ::= charOrEsc '-' charOrEsc * [20] charOrEsc ::= XmlChar | SingleCharEsc * [21] XmlChar ::= [^\#x2D#x5B#x5D] @@ -5078,7 +5085,7 @@ xmlFAParsePosCharGroup(xmlRegParserCtxtPtr ctxt) { * * [13] charGroup ::= posCharGroup | negCharGroup | charClassSub * [15] negCharGroup ::= '^' posCharGroup - * [16] charClassSub ::= ( posCharGroup | negCharGroup ) '-' charClassExpr + * [16] charClassSub ::= ( posCharGroup | negCharGroup ) '-' charClassExpr * [12] charClassExpr ::= '[' charGroup ']' */ static void @@ -5326,7 +5333,7 @@ xmlFAParseBranch(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr to) { previous = ctxt->state; ret = xmlFAParsePiece(ctxt); if (ret != 0) { - if (xmlFAGenerateTransitions(ctxt, previous, + if (xmlFAGenerateTransitions(ctxt, previous, (CUR=='|' || CUR==')') ? to : NULL, ctxt->atom) < 0) return(-1); previous = ctxt->state; @@ -5335,7 +5342,7 @@ xmlFAParseBranch(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr to) { while ((ret != 0) && (ctxt->error == 0)) { ret = xmlFAParsePiece(ctxt); if (ret != 0) { - if (xmlFAGenerateTransitions(ctxt, previous, + if (xmlFAGenerateTransitions(ctxt, previous, (CUR=='|' || CUR==')') ? to : NULL, ctxt->atom) < 0) return(-1); previous = ctxt->state; @@ -5373,6 +5380,10 @@ xmlFAParseRegExp(xmlRegParserCtxtPtr ctxt, int top) { end = ctxt->state; while ((CUR == '|') && (ctxt->error == 0)) { NEXT; + if (CUR == 0) { + ERROR("expecting a branch after |") + return; + } ctxt->state = start; ctxt->end = NULL; xmlFAParseBranch(ctxt, end); @@ -5384,9 +5395,9 @@ xmlFAParseRegExp(xmlRegParserCtxtPtr ctxt, int top) { } /************************************************************************ - * * - * The basic API * - * * + * * + * The basic API * + * * ************************************************************************/ /** @@ -5573,9 +5584,9 @@ xmlRegFreeRegexp(xmlRegexpPtr regexp) { #ifdef LIBXML_AUTOMATA_ENABLED /************************************************************************ - * * - * The Automata interface * - * * + * * + * The Automata interface * + * * ************************************************************************/ /** @@ -5846,7 +5857,7 @@ xmlAutomataNewNegTrans(xmlAutomataPtr am, xmlAutomataStatePtr from, * * If @to is NULL, this creates first a new target state in the automata * and then adds a transition from the @from state to the target state - * activated by a succession of input of value @token and @token2 and + * activated by a succession of input of value @token and @token2 and * whose number is between @min and @max * * Returns the target state or NULL in case of error @@ -6000,8 +6011,8 @@ xmlAutomataNewCountTrans(xmlAutomataPtr am, xmlAutomataStatePtr from, * * If @to is NULL, this creates first a new target state in the automata * and then adds a transition from the @from state to the target state - * activated by a succession of input of value @token and @token2 and whose - * number is between @min and @max, moreover that transition can only be + * activated by a succession of input of value @token and @token2 and whose + * number is between @min and @max, moreover that transition can only be * crossed once. * * Returns the target state or NULL in case of error @@ -6043,7 +6054,7 @@ xmlAutomataNewOnceTrans2(xmlAutomataPtr am, xmlAutomataStatePtr from, str[lenn + lenp + 1] = 0; atom->valuep = str; - } + } atom->data = data; atom->quant = XML_REGEXP_QUANT_ONCEONLY; atom->min = min; @@ -6066,7 +6077,7 @@ xmlAutomataNewOnceTrans2(xmlAutomataPtr am, xmlAutomataStatePtr from, return(to); } - + /** * xmlAutomataNewOnceTrans: @@ -6135,7 +6146,7 @@ xmlAutomataNewOnceTrans(xmlAutomataPtr am, xmlAutomataStatePtr from, */ xmlAutomataStatePtr xmlAutomataNewState(xmlAutomataPtr am) { - xmlAutomataStatePtr to; + xmlAutomataStatePtr to; if (am == NULL) return(NULL); @@ -6202,7 +6213,7 @@ xmlAutomataNewAllTrans(xmlAutomataPtr am, xmlAutomataStatePtr from, * * Returns the counter number or -1 in case of error */ -int +int xmlAutomataNewCounter(xmlAutomataPtr am, int min, int max) { int ret; @@ -6274,7 +6285,7 @@ xmlAutomataNewCounterTrans(xmlAutomataPtr am, xmlAutomataStatePtr from, * * Returns the compiled regexp or NULL in case of error */ -xmlRegexpPtr +xmlRegexpPtr xmlAutomataCompile(xmlAutomataPtr am) { xmlRegexpPtr ret; @@ -6294,7 +6305,7 @@ xmlAutomataCompile(xmlAutomataPtr am) { * * Returns 1 if true, 0 if not, and -1 in case of error */ -int +int xmlAutomataIsDeterminist(xmlAutomataPtr am) { int ret; @@ -6347,7 +6358,7 @@ xmlExpNewCtxt(int maxNodes, xmlDictPtr dict) { if (maxNodes <= 4096) maxNodes = 4096; - + ret = (xmlExpCtxtPtr) xmlMalloc(sizeof(xmlExpCtxt)); if (ret == NULL) return(NULL); @@ -6401,7 +6412,7 @@ xmlExpFreeCtxt(xmlExpCtxtPtr ctxt) { /* #define DEBUG_DERIV */ /* - * TODO: + * TODO: * - Wildcards * - public API for creation * @@ -6469,7 +6480,7 @@ static unsigned short xmlExpHashNameComputeKey(const xmlChar *name) { unsigned short value = 0L; char ch; - + if (name != NULL) { value += 30 * (*name); while ((ch = *name++) != 0) { @@ -6488,7 +6499,7 @@ xmlExpHashComputeKey(xmlExpNodeType type, xmlExpNodePtr left, xmlExpNodePtr right) { unsigned long value; unsigned short ret; - + switch (type) { case XML_EXP_SEQ: value = left->key; @@ -6629,7 +6640,7 @@ xmlExpHashGetEntry(xmlExpCtxtPtr ctxt, xmlExpNodeType type, left->exp_left->ref++; tmp = xmlExpHashGetEntry(ctxt, XML_EXP_OR, left->exp_left, tmp, NULL, 0, 0); - + xmlExpFree(ctxt, left); return(tmp); } @@ -6686,7 +6697,7 @@ xmlExpHashGetEntry(xmlExpCtxtPtr ctxt, xmlExpNodeType type, return(right); } kbase = xmlExpHashComputeKey(type, left, right); - } else + } else return(NULL); key = kbase % ctxt->size; @@ -6927,7 +6938,7 @@ xmlExpNewRange(xmlExpCtxtPtr ctxt, xmlExpNodePtr subset, int min, int max) { ************************************************************************/ static int -xmlExpGetLanguageInt(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, +xmlExpGetLanguageInt(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, const xmlChar**list, int len, int nb) { int tmp, tmp2; tail: @@ -6972,7 +6983,7 @@ tail: * -2 if there is more than @len strings */ int -xmlExpGetLanguage(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, +xmlExpGetLanguage(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, const xmlChar**langList, int len) { if ((ctxt == NULL) || (exp == NULL) || (langList == NULL) || (len <= 0)) return(-1); @@ -6980,7 +6991,7 @@ xmlExpGetLanguage(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, } static int -xmlExpGetStartInt(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, +xmlExpGetStartInt(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, const xmlChar**list, int len, int nb) { int tmp, tmp2; tail: @@ -7040,7 +7051,7 @@ tail: * -2 if there is more than @len strings */ int -xmlExpGetStart(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, +xmlExpGetStart(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, const xmlChar**tokList, int len) { if ((ctxt == NULL) || (exp == NULL) || (tokList == NULL) || (len <= 0)) return(-1); @@ -7737,7 +7748,7 @@ xmlExpExpDeriveInt(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, xmlExpNodePtr sub) { xmlFree((xmlChar **) tab); return(ret); } - + /** * xmlExpExpDerive: * @ctxt: the expressions context @@ -7789,7 +7800,7 @@ xmlExpExpDerive(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, xmlExpNodePtr sub) { int xmlExpSubsume(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, xmlExpNodePtr sub) { xmlExpNodePtr tmp; - + if ((exp == NULL) || (ctxt == NULL) || (sub == NULL)) return(-1); @@ -7833,7 +7844,7 @@ xmlExpSubsume(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, xmlExpNodePtr sub) { /************************************************************************ * * - * Parsing expression * + * Parsing expression * * * ************************************************************************/ @@ -7937,7 +7948,7 @@ parse_quantifier: ret = xmlExpHashGetEntry(ctxt, XML_EXP_COUNT, ret, NULL, NULL, 0, -1); SKIP_BLANKS - } + } return(ret); } @@ -8059,7 +8070,7 @@ xmlExpDumpInt(xmlBufferPtr buf, xmlExpNodePtr expr, int glob) { break; case XML_EXP_COUNT: { char rep[40]; - + c = expr->exp_left; if ((c->type == XML_EXP_SEQ) || (c->type == XML_EXP_OR)) xmlExpDumpInt(buf, c, 1); diff --git a/xmlsave.c b/xmlsave.c index 23c3bcc..829abb3 100644 --- a/xmlsave.c +++ b/xmlsave.c @@ -19,6 +19,10 @@ #include +#include "buf.h" +#include "enc.h" +#include "save.h" + /************************************************************************ * * * XHTML detection * @@ -66,7 +70,7 @@ xmlIsXHTML(const xmlChar *systemID, const xmlChar *publicID) { #ifdef LIBXML_OUTPUT_ENABLED -#define TODO \ +#define TODO \ xmlGenericError(xmlGenericErrorContext, \ "Unimplemented block at %s:%d\n", \ __FILE__, __LINE__); @@ -92,7 +96,7 @@ struct _xmlSaveCtxt { /************************************************************************ * * - * Output error handlers * + * Output error handlers * * * ************************************************************************/ /** @@ -210,9 +214,9 @@ xmlEscapeEntities(unsigned char* out, int *outlen, int val; inend = in + (*inlen); - + while ((in < inend) && (out < outend)) { - if (*in == '<') { + if (*in == '<') { if (outend - out < 4) break; *out++ = '&'; *out++ = 'l'; @@ -416,7 +420,7 @@ xmlNewSaveCtxt(const char *encoding, int options) /************************************************************************ * * - * Dumping XML tree content to a simple buffer * + * Dumping XML tree content to a simple buffer * * * ************************************************************************/ /** @@ -436,14 +440,14 @@ xmlAttrSerializeContent(xmlOutputBufferPtr buf, xmlAttrPtr attr) while (children != NULL) { switch (children->type) { case XML_TEXT_NODE: - xmlAttrSerializeTxtContent(buf->buffer, attr->doc, - attr, children->content); + xmlBufAttrSerializeTxtContent(buf->buffer, attr->doc, + attr, children->content); break; case XML_ENTITY_REF_NODE: - xmlBufferAdd(buf->buffer, BAD_CAST "&", 1); - xmlBufferAdd(buf->buffer, children->name, + xmlBufAdd(buf->buffer, BAD_CAST "&", 1); + xmlBufAdd(buf->buffer, children->name, xmlStrlen(children->name)); - xmlBufferAdd(buf->buffer, BAD_CAST ";", 1); + xmlBufAdd(buf->buffer, BAD_CAST ";", 1); break; default: /* should not happen unless we have a badly built tree */ @@ -453,9 +457,99 @@ xmlAttrSerializeContent(xmlOutputBufferPtr buf, xmlAttrPtr attr) } } +/** + * xmlBufDumpNotationTable: + * @buf: an xmlBufPtr output + * @table: A notation table + * + * This will dump the content of the notation table as an XML DTD definition + */ +void +xmlBufDumpNotationTable(xmlBufPtr buf, xmlNotationTablePtr table) { + xmlBufferPtr buffer; + + buffer = xmlBufferCreate(); + if (buffer == NULL) { + /* + * TODO set the error in buf + */ + return; + } + xmlDumpNotationTable(buffer, table); + xmlBufMergeBuffer(buf, buffer); +} + +/** + * xmlBufDumpElementDecl: + * @buf: an xmlBufPtr output + * @elem: An element table + * + * This will dump the content of the element declaration as an XML + * DTD definition + */ +void +xmlBufDumpElementDecl(xmlBufPtr buf, xmlElementPtr elem) { + xmlBufferPtr buffer; + + buffer = xmlBufferCreate(); + if (buffer == NULL) { + /* + * TODO set the error in buf + */ + return; + } + xmlDumpElementDecl(buffer, elem); + xmlBufMergeBuffer(buf, buffer); +} + +/** + * xmlBufDumpAttributeDecl: + * @buf: an xmlBufPtr output + * @attr: An attribute declaration + * + * This will dump the content of the attribute declaration as an XML + * DTD definition + */ +void +xmlBufDumpAttributeDecl(xmlBufPtr buf, xmlAttributePtr attr) { + xmlBufferPtr buffer; + + buffer = xmlBufferCreate(); + if (buffer == NULL) { + /* + * TODO set the error in buf + */ + return; + } + xmlDumpAttributeDecl(buffer, attr); + xmlBufMergeBuffer(buf, buffer); +} + +/** + * xmlBufDumpEntityDecl: + * @buf: an xmlBufPtr output + * @ent: An entity table + * + * This will dump the content of the entity table as an XML DTD definition + */ +void +xmlBufDumpEntityDecl(xmlBufPtr buf, xmlEntityPtr ent) { + xmlBufferPtr buffer; + + buffer = xmlBufferCreate(); + if (buffer == NULL) { + /* + * TODO set the error in buf + */ + return; + } + xmlDumpEntityDecl(buffer, ent); + xmlBufMergeBuffer(buf, buffer); +} + /************************************************************************ * * - * Dumping XML tree content to an I/O output buffer * + * Dumping XML tree content to an I/O output buffer * * * ************************************************************************/ @@ -469,7 +563,7 @@ static int xmlSaveSwitchEncoding(xmlSaveCtxtPtr ctxt, const char *encoding) { (const char *)encoding); return(-1); } - buf->conv = xmlBufferCreate(); + buf->conv = xmlBufCreate(); if (buf->conv == NULL) { xmlCharEncCloseFunc(buf->encoder); xmlSaveErrMemory("creating encoding buffer"); @@ -478,7 +572,7 @@ static int xmlSaveSwitchEncoding(xmlSaveCtxtPtr ctxt, const char *encoding) { /* * initialize the state, e.g. if outputting a BOM */ - xmlCharEncOutFunc(buf->encoder, buf->conv, NULL); + xmlCharEncOutput(buf, 1); } return(0); } @@ -487,7 +581,7 @@ static int xmlSaveClearEncoding(xmlSaveCtxtPtr ctxt) { xmlOutputBufferPtr buf = ctxt->buf; xmlOutputBufferFlush(buf); xmlCharEncCloseFunc(buf->encoder); - xmlBufferFree(buf->conv); + xmlBufFree(buf->conv); buf->encoder = NULL; buf->conv = NULL; return(0); @@ -553,7 +647,7 @@ xmlNsDumpOutput(xmlOutputBufferPtr buf, xmlNsPtr cur, xmlSaveCtxtPtr ctxt) { } else xmlOutputBufferWrite(buf, 5, "xmlns"); xmlOutputBufferWrite(buf, 1, "="); - xmlBufferWriteQuotedString(buf->buffer, cur->href); + xmlBufWriteQuotedString(buf->buffer, cur->href); } } @@ -606,7 +700,7 @@ xmlNsListDumpOutput(xmlOutputBufferPtr buf, xmlNsPtr cur) { * xmlDtdDumpOutput: * @buf: the XML buffer output * @dtd: the pointer to the DTD - * + * * Dump the XML document DTD, if any. */ static void @@ -623,12 +717,12 @@ xmlDtdDumpOutput(xmlSaveCtxtPtr ctxt, xmlDtdPtr dtd) { xmlOutputBufferWriteString(buf, (const char *)dtd->name); if (dtd->ExternalID != NULL) { xmlOutputBufferWrite(buf, 8, " PUBLIC "); - xmlBufferWriteQuotedString(buf->buffer, dtd->ExternalID); + xmlBufWriteQuotedString(buf->buffer, dtd->ExternalID); xmlOutputBufferWrite(buf, 1, " "); - xmlBufferWriteQuotedString(buf->buffer, dtd->SystemID); + xmlBufWriteQuotedString(buf->buffer, dtd->SystemID); } else if (dtd->SystemID != NULL) { xmlOutputBufferWrite(buf, 8, " SYSTEM "); - xmlBufferWriteQuotedString(buf->buffer, dtd->SystemID); + xmlBufWriteQuotedString(buf->buffer, dtd->SystemID); } if ((dtd->entities == NULL) && (dtd->elements == NULL) && (dtd->attributes == NULL) && (dtd->notations == NULL) && @@ -643,7 +737,8 @@ xmlDtdDumpOutput(xmlSaveCtxtPtr ctxt, xmlDtdPtr dtd) { */ if ((dtd->notations != NULL) && ((dtd->doc == NULL) || (dtd->doc->intSubset == dtd))) { - xmlDumpNotationTable(buf->buffer, (xmlNotationTablePtr) dtd->notations); + xmlBufDumpNotationTable(buf->buffer, + (xmlNotationTablePtr) dtd->notations); } format = ctxt->format; level = ctxt->level; @@ -724,7 +819,7 @@ xmlNodeListDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) { (cur->type == XML_COMMENT_NODE) || (cur->type == XML_PI_NODE))) xmlOutputBufferWrite(buf, ctxt->indent_size * - (ctxt->level > ctxt->indent_nr ? + (ctxt->level > ctxt->indent_nr ? ctxt->indent_nr : ctxt->level), ctxt->indent); xmlNodeDumpOutputInternal(ctxt, cur); @@ -841,15 +936,15 @@ xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) { return; } if (cur->type == XML_ELEMENT_DECL) { - xmlDumpElementDecl(buf->buffer, (xmlElementPtr) cur); + xmlBufDumpElementDecl(buf->buffer, (xmlElementPtr) cur); return; } if (cur->type == XML_ATTRIBUTE_DECL) { - xmlDumpAttributeDecl(buf->buffer, (xmlAttributePtr) cur); + xmlBufDumpAttributeDecl(buf->buffer, (xmlAttributePtr) cur); return; } if (cur->type == XML_ENTITY_DECL) { - xmlDumpEntityDecl(buf->buffer, (xmlEntityPtr) cur); + xmlBufDumpEntityDecl(buf->buffer, (xmlEntityPtr) cur); return; } if (cur->type == XML_TEXT_NODE) { @@ -980,7 +1075,7 @@ xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) { if (ctxt->level > 0) ctxt->level--; if ((xmlIndentTreeOutput) && (ctxt->format == 1)) xmlOutputBufferWrite(buf, ctxt->indent_size * - (ctxt->level > ctxt->indent_nr ? + (ctxt->level > ctxt->indent_nr ? ctxt->indent_nr : ctxt->level), ctxt->indent); } @@ -1096,13 +1191,13 @@ xmlDocContentDumpOutput(xmlSaveCtxtPtr ctxt, xmlDocPtr cur) { */ if ((ctxt->options & XML_SAVE_NO_DECL) == 0) { xmlOutputBufferWrite(buf, 14, "version != NULL) - xmlBufferWriteQuotedString(buf->buffer, cur->version); + if (cur->version != NULL) + xmlBufWriteQuotedString(buf->buffer, cur->version); else xmlOutputBufferWrite(buf, 5, "\"1.0\""); if (encoding != NULL) { xmlOutputBufferWrite(buf, 10, " encoding="); - xmlBufferWriteQuotedString(buf->buffer, (xmlChar *) encoding); + xmlBufWriteQuotedString(buf->buffer, (xmlChar *) encoding); } switch (cur->standalone) { case 0: @@ -1260,7 +1355,7 @@ xhtmlAttrListDumpOutput(xmlSaveCtxtPtr ctxt, xmlAttrPtr cur) { if ((cur->ns != NULL) && (xmlStrEqual(cur->name, BAD_CAST "lang")) && (xmlStrEqual(cur->ns->prefix, BAD_CAST "xml"))) xml_lang = cur; - else if ((cur->ns == NULL) && + else if ((cur->ns == NULL) && ((cur->children == NULL) || (cur->children->content == NULL) || (cur->children->content[0] == 0)) && @@ -1300,7 +1395,7 @@ xhtmlAttrListDumpOutput(xmlSaveCtxtPtr ctxt, xmlAttrPtr cur) { xmlOutputBufferWrite(buf, 11, " xml:lang=\""); xmlAttrSerializeContent(buf, lang); xmlOutputBufferWrite(buf, 1, "\""); - } else + } else if ((xml_lang != NULL) && (lang == NULL)) { xmlOutputBufferWrite(buf, 7, " lang=\""); xmlAttrSerializeContent(buf, xml_lang); @@ -1331,7 +1426,7 @@ xhtmlNodeListDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) { if ((ctxt->format == 1) && (xmlIndentTreeOutput) && (cur->type == XML_ELEMENT_NODE)) xmlOutputBufferWrite(buf, ctxt->indent_size * - (ctxt->level > ctxt->indent_nr ? + (ctxt->level > ctxt->indent_nr ? ctxt->indent_nr : ctxt->level), ctxt->indent); xhtmlNodeDumpOutput(ctxt, cur); @@ -1370,6 +1465,10 @@ xhtmlNodeDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) { return; if (cur->type == XML_XINCLUDE_END) return; + if (cur->type == XML_NAMESPACE_DECL) { + xmlNsDumpOutputCtxt(ctxt, (xmlNsPtr) cur); + return; + } if (cur->type == XML_DTD_NODE) { xmlDtdDumpOutput(ctxt, (xmlDtdPtr) cur); return; @@ -1380,15 +1479,15 @@ xhtmlNodeDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) { } buf = ctxt->buf; if (cur->type == XML_ELEMENT_DECL) { - xmlDumpElementDecl(buf->buffer, (xmlElementPtr) cur); + xmlBufDumpElementDecl(buf->buffer, (xmlElementPtr) cur); return; } if (cur->type == XML_ATTRIBUTE_DECL) { - xmlDumpAttributeDecl(buf->buffer, (xmlAttributePtr) cur); + xmlBufDumpAttributeDecl(buf->buffer, (xmlAttributePtr) cur); return; } if (cur->type == XML_ENTITY_DECL) { - xmlDumpEntityDecl(buf->buffer, (xmlEntityPtr) cur); + xmlBufDumpEntityDecl(buf->buffer, (xmlEntityPtr) cur); return; } if (cur->type == XML_TEXT_NODE) { @@ -1468,7 +1567,7 @@ xhtmlNodeDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) { if (format == 1) { tmp = cur->children; while (tmp != NULL) { - if ((tmp->type == XML_TEXT_NODE) || + if ((tmp->type == XML_TEXT_NODE) || (tmp->type == XML_ENTITY_REF_NODE)) { format = 0; break; @@ -1496,10 +1595,10 @@ xhtmlNodeDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) { if (cur->properties != NULL) xhtmlAttrListDumpOutput(ctxt, cur->properties); - if ((cur->type == XML_ELEMENT_NODE) && - (cur->parent != NULL) && - (cur->parent->parent == (xmlNodePtr) cur->doc) && - xmlStrEqual(cur->name, BAD_CAST"head") && + if ((cur->type == XML_ELEMENT_NODE) && + (cur->parent != NULL) && + (cur->parent->parent == (xmlNodePtr) cur->doc) && + xmlStrEqual(cur->name, BAD_CAST"head") && xmlStrEqual(cur->parent->name, BAD_CAST"html")) { tmp = cur->children; @@ -1536,7 +1635,7 @@ xhtmlNodeDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) { xmlOutputBufferWrite(buf, 1, "\n"); if (xmlIndentTreeOutput) xmlOutputBufferWrite(buf, ctxt->indent_size * - (ctxt->level + 1 > ctxt->indent_nr ? + (ctxt->level + 1 > ctxt->indent_nr ? ctxt->indent_nr : ctxt->level + 1), ctxt->indent); } xmlOutputBufferWriteString(buf, @@ -1571,7 +1670,7 @@ xhtmlNodeDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) { xmlOutputBufferWrite(buf, 1, "\n"); if (xmlIndentTreeOutput) xmlOutputBufferWrite(buf, ctxt->indent_size * - (ctxt->level + 1 > ctxt->indent_nr ? + (ctxt->level + 1 > ctxt->indent_nr ? ctxt->indent_nr : ctxt->level + 1), ctxt->indent); } xmlOutputBufferWriteString(buf, @@ -1661,7 +1760,7 @@ xhtmlNodeDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) { if (cur->children != NULL) { int indent = ctxt->format; - + if (format == 1) xmlOutputBufferWrite(buf, 1, "\n"); if (ctxt->level >= 0) ctxt->level++; ctxt->format = format; @@ -1670,7 +1769,7 @@ xhtmlNodeDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) { ctxt->format = indent; if ((xmlIndentTreeOutput) && (format == 1)) xmlOutputBufferWrite(buf, ctxt->indent_size * - (ctxt->level > ctxt->indent_nr ? + (ctxt->level > ctxt->indent_nr ? ctxt->indent_nr : ctxt->level), ctxt->indent); } @@ -1936,18 +2035,19 @@ xmlSaveSetAttrEscape(xmlSaveCtxtPtr ctxt, xmlCharEncodingOutputFunc escape) * Public entry points based on buffers * * * ************************************************************************/ + /** - * xmlAttrSerializeTxtContent: - * @buf: the XML buffer output + * xmlBufAttrSerializeTxtContent: + * @buf: and xmlBufPtr output * @doc: the document * @attr: the attribute node * @string: the text content * - * Serialize text attribute values to an xml simple buffer + * Serialize text attribute values to an xmlBufPtr */ void -xmlAttrSerializeTxtContent(xmlBufferPtr buf, xmlDocPtr doc, - xmlAttrPtr attr, const xmlChar * string) +xmlBufAttrSerializeTxtContent(xmlBufPtr buf, xmlDocPtr doc, + xmlAttrPtr attr, const xmlChar * string) { xmlChar *base, *cur; @@ -1957,44 +2057,44 @@ xmlAttrSerializeTxtContent(xmlBufferPtr buf, xmlDocPtr doc, while (*cur != 0) { if (*cur == '\n') { if (base != cur) - xmlBufferAdd(buf, base, cur - base); - xmlBufferAdd(buf, BAD_CAST " ", 5); + xmlBufAdd(buf, base, cur - base); + xmlBufAdd(buf, BAD_CAST " ", 5); cur++; base = cur; } else if (*cur == '\r') { if (base != cur) - xmlBufferAdd(buf, base, cur - base); - xmlBufferAdd(buf, BAD_CAST " ", 5); + xmlBufAdd(buf, base, cur - base); + xmlBufAdd(buf, BAD_CAST " ", 5); cur++; base = cur; } else if (*cur == '\t') { if (base != cur) - xmlBufferAdd(buf, base, cur - base); - xmlBufferAdd(buf, BAD_CAST " ", 4); + xmlBufAdd(buf, base, cur - base); + xmlBufAdd(buf, BAD_CAST " ", 4); cur++; base = cur; } else if (*cur == '"') { if (base != cur) - xmlBufferAdd(buf, base, cur - base); - xmlBufferAdd(buf, BAD_CAST """, 6); + xmlBufAdd(buf, base, cur - base); + xmlBufAdd(buf, BAD_CAST """, 6); cur++; base = cur; } else if (*cur == '<') { if (base != cur) - xmlBufferAdd(buf, base, cur - base); - xmlBufferAdd(buf, BAD_CAST "<", 4); + xmlBufAdd(buf, base, cur - base); + xmlBufAdd(buf, BAD_CAST "<", 4); cur++; base = cur; } else if (*cur == '>') { if (base != cur) - xmlBufferAdd(buf, base, cur - base); - xmlBufferAdd(buf, BAD_CAST ">", 4); + xmlBufAdd(buf, base, cur - base); + xmlBufAdd(buf, BAD_CAST ">", 4); cur++; base = cur; } else if (*cur == '&') { if (base != cur) - xmlBufferAdd(buf, base, cur - base); - xmlBufferAdd(buf, BAD_CAST "&", 5); + xmlBufAdd(buf, base, cur - base); + xmlBufAdd(buf, BAD_CAST "&", 5); cur++; base = cur; } else if ((*cur >= 0x80) && ((doc == NULL) || @@ -2006,13 +2106,13 @@ xmlAttrSerializeTxtContent(xmlBufferPtr buf, xmlDocPtr doc, int val = 0, l = 1; if (base != cur) - xmlBufferAdd(buf, base, cur - base); + xmlBufAdd(buf, base, cur - base); if (*cur < 0xC0) { xmlSaveErr(XML_SAVE_NOT_UTF8, (xmlNodePtr) attr, NULL); if (doc != NULL) doc->encoding = xmlStrdup(BAD_CAST "ISO-8859-1"); xmlSerializeHexCharRef(tmp, *cur); - xmlBufferAdd(buf, (xmlChar *) tmp, -1); + xmlBufAdd(buf, (xmlChar *) tmp, -1); cur++; base = cur; continue; @@ -2042,9 +2142,9 @@ xmlAttrSerializeTxtContent(xmlBufferPtr buf, xmlDocPtr doc, xmlSaveErr(XML_SAVE_CHAR_INVALID, (xmlNodePtr) attr, NULL); if (doc != NULL) doc->encoding = xmlStrdup(BAD_CAST "ISO-8859-1"); - + xmlSerializeHexCharRef(tmp, *cur); - xmlBufferAdd(buf, (xmlChar *) tmp, -1); + xmlBufAdd(buf, (xmlChar *) tmp, -1); cur++; base = cur; continue; @@ -2054,7 +2154,7 @@ xmlAttrSerializeTxtContent(xmlBufferPtr buf, xmlDocPtr doc, * as a char ref */ xmlSerializeHexCharRef(tmp, val); - xmlBufferAdd(buf, (xmlChar *) tmp, -1); + xmlBufAdd(buf, (xmlChar *) tmp, -1); cur += l; base = cur; } else { @@ -2062,7 +2162,31 @@ xmlAttrSerializeTxtContent(xmlBufferPtr buf, xmlDocPtr doc, } } if (base != cur) - xmlBufferAdd(buf, base, cur - base); + xmlBufAdd(buf, base, cur - base); +} + +/** + * xmlAttrSerializeTxtContent: + * @buf: the XML buffer output + * @doc: the document + * @attr: the attribute node + * @string: the text content + * + * Serialize text attribute values to an xml simple buffer + */ +void +xmlAttrSerializeTxtContent(xmlBufferPtr buf, xmlDocPtr doc, + xmlAttrPtr attr, const xmlChar * string) +{ + xmlBufPtr buffer; + + if ((buf == NULL) || (string == NULL)) + return; + buffer = xmlBufFromBuffer(buf); + if (buffer == NULL) + return; + xmlBufAttrSerializeTxtContent(buffer, doc, attr, string); + xmlBufBackToBuffer(buffer); } /** @@ -2076,6 +2200,8 @@ xmlAttrSerializeTxtContent(xmlBufferPtr buf, xmlDocPtr doc, * Dump an XML node, recursive behaviour,children are printed too. * Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 * or xmlKeepBlanksDefault(0) was called + * Since this is using xmlBuffer structures it is limited to 2GB and somehow + * deprecated, use xmlBufNodeDump() instead. * * Returns the number of bytes written to the buffer or -1 in case of error */ @@ -2083,7 +2209,42 @@ int xmlNodeDump(xmlBufferPtr buf, xmlDocPtr doc, xmlNodePtr cur, int level, int format) { - unsigned int use; + xmlBufPtr buffer; + int ret; + + if ((buf == NULL) || (cur == NULL)) + return(-1); + buffer = xmlBufFromBuffer(buf); + if (buffer == NULL) + return(-1); + ret = xmlBufNodeDump(buffer, doc, cur, level, format); + xmlBufBackToBuffer(buffer); + if (ret > INT_MAX) + return(-1); + return((int) ret); +} + +/** + * xmlBufNodeDump: + * @buf: the XML buffer output + * @doc: the document + * @cur: the current node + * @level: the imbrication level for indenting + * @format: is formatting allowed + * + * Dump an XML node, recursive behaviour,children are printed too. + * Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 + * or xmlKeepBlanksDefault(0) was called + * + * Returns the number of bytes written to the buffer, in case of error 0 + * is returned or @buf stores the error + */ + +size_t +xmlBufNodeDump(xmlBufPtr buf, xmlDocPtr doc, xmlNodePtr cur, int level, + int format) +{ + size_t use; int ret; xmlOutputBufferPtr outbuf; @@ -2116,10 +2277,10 @@ xmlNodeDump(xmlBufferPtr buf, xmlDocPtr doc, xmlNodePtr cur, int level, outbuf->context = NULL; outbuf->written = 0; - use = buf->use; + use = xmlBufUse(buf); xmlNodeDumpOutput(outbuf, doc, cur, level, format, NULL); xmlFree(outbuf); - ret = buf->use - use; + ret = xmlBufUse(buf) - use; return (ret); } @@ -2299,11 +2460,11 @@ xmlDocDumpFormatMemoryEnc(xmlDocPtr out_doc, xmlChar **doc_txt_ptr, xmlDocContentDumpOutput(&ctxt, out_doc); xmlOutputBufferFlush(out_buff); if (out_buff->conv != NULL) { - *doc_txt_len = out_buff->conv->use; - *doc_txt_ptr = xmlStrndup(out_buff->conv->content, *doc_txt_len); + *doc_txt_len = xmlBufUse(out_buff->conv); + *doc_txt_ptr = xmlStrndup(xmlBufContent(out_buff->conv), *doc_txt_len); } else { - *doc_txt_len = out_buff->buffer->use; - *doc_txt_ptr = xmlStrndup(out_buff->buffer->content, *doc_txt_len); + *doc_txt_len = xmlBufUse(out_buff->buffer); + *doc_txt_ptr = xmlStrndup(xmlBufContent(out_buff->buffer),*doc_txt_len); } (void)xmlOutputBufferClose(out_buff); @@ -2547,7 +2708,7 @@ xmlSaveFormatFileEnc( const char * filename, xmlDocPtr cur, #ifdef HAVE_ZLIB_H if (cur->compression < 0) cur->compression = xmlGetCompressMode(); #endif - /* + /* * save the content to a temp buffer. */ buf = xmlOutputBufferCreateFilename(filename, handler, cur->compression); diff --git a/xmlschemas.c b/xmlschemas.c index 2fb2151..d6a47e4 100644 --- a/xmlschemas.c +++ b/xmlschemas.c @@ -107,7 +107,7 @@ #endif #define UNBOUNDED (1 << 30) -#define TODO \ +#define TODO \ xmlGenericError(xmlGenericErrorContext, \ "Unimplemented block at %s:%d\n", \ __FILE__, __LINE__); @@ -975,6 +975,7 @@ struct _xmlSchemaValidCtxt { xmlSAXHandlerPtr sax; xmlParserCtxtPtr parserCtxt; void *user_data; /* TODO: What is this for? */ + char *filename; int err; int nberrors; @@ -1028,6 +1029,10 @@ struct _xmlSchemaValidCtxt { int hasKeyrefs; int createIDCNodeTables; int psviExposeIDCNodeTables; + + /* Locator for error reporting in streaming mode */ + xmlSchemaValidityLocatorFunc locFunc; + void *locCtxt; }; /** @@ -1043,9 +1048,9 @@ struct _xmlSchemaSubstGroup { }; /************************************************************************ - * * - * Some predeclarations * - * * + * * + * Some predeclarations * + * * ************************************************************************/ static int xmlSchemaParseInclude(xmlSchemaParserCtxtPtr ctxt, @@ -1098,7 +1103,7 @@ xmlSchemaParseAttributeGroupRef(xmlSchemaParserCtxtPtr pctxt, /************************************************************************ * * - * Helper functions * + * Helper functions * * * ************************************************************************/ @@ -1836,7 +1841,7 @@ xmlSchemaFormatFacetEnumSet(xmlSchemaAbstractCtxtPtr actxt, /************************************************************************ * * - * Error functions * + * Error functions * * * ************************************************************************/ @@ -1974,7 +1979,7 @@ xmlSchemaPErrExt(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr node, int error, /************************************************************************ * * - * Allround error functions * + * Allround error functions * * * ************************************************************************/ @@ -2078,6 +2083,20 @@ xmlSchemaErr4Line(xmlSchemaAbstractCtxtPtr ctxt, (vctxt->parserCtxt->input != NULL)) file = vctxt->parserCtxt->input->filename; } + if (vctxt->locFunc != NULL) { + if ((file == NULL) || (line == 0)) { + unsigned long l; + const char *f; + vctxt->locFunc(vctxt->locCtxt, &f, &l); + if (file == NULL) + file = f; + if (line == 0) + line = (int) l; + } + } + if ((file == NULL) && (vctxt->filename != NULL)) + file = vctxt->filename; + __xmlRaiseError(schannel, channel, data, ctxt, node, XML_FROM_SCHEMASV, error, errorLevel, file, line, @@ -3199,25 +3218,25 @@ xmlSchemaPContentErr(xmlSchemaParserCtxtPtr ctxt, } /************************************************************************ - * * - * Streamable error functions * - * * + * * + * Streamable error functions * + * * ************************************************************************/ /************************************************************************ - * * - * Validation helper functions * - * * + * * + * Validation helper functions * + * * ************************************************************************/ /************************************************************************ - * * - * Allocation functions * - * * + * * + * Allocation functions * + * * ************************************************************************/ /** @@ -4135,9 +4154,9 @@ xmlSchemaFree(xmlSchemaPtr schema) } /************************************************************************ - * * - * Debug functions * - * * + * * + * Debug functions * + * * ************************************************************************/ #ifdef LIBXML_OUTPUT_ENABLED @@ -4587,7 +4606,7 @@ xmlSchemaDebugDumpIDCTable(FILE * output, /************************************************************************ * * - * Utilities * + * Utilities * * * ************************************************************************/ @@ -4692,9 +4711,9 @@ xmlSchemaGetProp(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr node, } /************************************************************************ - * * - * Parsing functions * - * * + * * + * Parsing functions * + * * ************************************************************************/ #define WXS_FIND_GLOBAL_ITEM(slot) \ @@ -4966,9 +4985,9 @@ xmlSchemaGetNamedComponent(xmlSchemaPtr schema, } /************************************************************************ - * * - * Parsing functions * - * * + * * + * Parsing functions * + * * ************************************************************************/ #define IS_BLANK_NODE(n) \ @@ -5743,9 +5762,9 @@ xmlSchemaAddElementSubstitutionMember(xmlSchemaParserCtxtPtr pctxt, } /************************************************************************ - * * + * * * Utilities for parsing * - * * + * * ************************************************************************/ /** @@ -5939,7 +5958,7 @@ xmlSchemaPValAttrNodeID(xmlSchemaParserCtxtPtr ctxt, xmlAttrPtr attr) xmlFree((xmlChar *) value); value = strip; } - res = xmlAddID(NULL, attr->doc, value, attr); + res = xmlAddID(NULL, attr->doc, value, attr); if (res == NULL) { ret = XML_SCHEMAP_S4S_ATTR_INVALID_VALUE; xmlSchemaPSimpleTypeErr(ctxt, @@ -6191,9 +6210,9 @@ xmlGetBooleanProp(xmlSchemaParserCtxtPtr ctxt, } /************************************************************************ - * * + * * * Shema extraction from an Infoset * - * * + * * ************************************************************************/ static xmlSchemaTypePtr xmlSchemaParseSimpleType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema, @@ -8227,7 +8246,7 @@ xmlSchemaParseIDCSelectorAndField(xmlSchemaParserCtxtPtr ctxt, */ attr = xmlSchemaGetPropNode(node, "xpath"); if (attr == NULL) { - xmlSchemaPMissingAttrErr(ctxt, + xmlSchemaPMissingAttrErr(ctxt, XML_SCHEMAP_S4S_ATTR_MISSING, NULL, node, "name", NULL); @@ -12353,15 +12372,15 @@ xmlSchemaParseComplexType(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr schema, } /************************************************************************ - * * - * Validating using Schemas * - * * + * * + * Validating using Schemas * + * * ************************************************************************/ /************************************************************************ - * * - * Reading/Writing Schemas * - * * + * * + * Reading/Writing Schemas * + * * ************************************************************************/ #if 0 /* Will be enabled if it is clear what options are needed. */ @@ -12938,6 +12957,15 @@ xmlSchemaBuildAContentModel(xmlSchemaParserCtxtPtr pctxt, if (tmp2 != 1) ret = 0; sub = sub->next; } + + /* + * epsilon needed to block previous trans from + * being allowed to enter back from another + * construct + */ + pctxt->state = xmlAutomataNewEpsilon(pctxt->am, + pctxt->state, NULL); + if (particle->minOccurs == 0) { xmlAutomataNewEpsilon(pctxt->am, oldstate, pctxt->state); @@ -20153,7 +20181,7 @@ xmlSchemaResolveAttrUseReferences(xmlSchemaAttributeUsePtr ause, ref->name, ref->targetNamespace); if (ause->attrDecl == NULL) { xmlSchemaPResCompAttrErr(ctxt, - XML_SCHEMAP_SRC_RESOLVE, + XML_SCHEMAP_SRC_RESOLVE, WXS_BASIC_CAST ause, ause->node, "ref", ref->name, ref->targetNamespace, XML_SCHEMA_TYPE_ATTRIBUTE, NULL); @@ -21533,16 +21561,16 @@ xmlSchemaGetWhiteSpaceFacetValue(xmlSchemaTypePtr type) } /************************************************************************ - * * - * Simple type validation * - * * + * * + * Simple type validation * + * * ************************************************************************/ /************************************************************************ - * * - * DOM Validation code * - * * + * * + * DOM Validation code * + * * ************************************************************************/ /** @@ -21936,9 +21964,9 @@ xmlSchemaVAddNodeQName(xmlSchemaValidCtxtPtr vctxt, } /************************************************************************ - * * + * * * Validation of identity-constraints (IDC) * - * * + * * ************************************************************************/ /** @@ -23866,9 +23894,9 @@ xmlSchemaCheckCVCIDCKeyRef(xmlSchemaValidCtxtPtr vctxt) } /************************************************************************ - * * - * XML Reader validation code * - * * + * * + * XML Reader validation code * + * * ************************************************************************/ static xmlSchemaAttrInfoPtr @@ -24988,9 +25016,9 @@ xmlSchemaValidateElemDecl(xmlSchemaValidCtxtPtr vctxt) return (vctxt->err); } if (actualType == NULL) { - VERROR(XML_SCHEMAV_CVC_TYPE_1, NULL, - "The type definition is absent"); - return (XML_SCHEMAV_CVC_TYPE_1); + VERROR(XML_SCHEMAV_CVC_TYPE_1, NULL, + "The type definition is absent"); + return (XML_SCHEMAV_CVC_TYPE_1); } if (vctxt->nbAttrInfos != 0) { int ret; @@ -25080,9 +25108,9 @@ xmlSchemaValidateElemDecl(xmlSchemaValidCtxtPtr vctxt) * No actual type definition. */ if (actualType == NULL) { - VERROR(XML_SCHEMAV_CVC_TYPE_1, NULL, - "The type definition is absent"); - return (XML_SCHEMAV_CVC_TYPE_1); + VERROR(XML_SCHEMAV_CVC_TYPE_1, NULL, + "The type definition is absent"); + return (XML_SCHEMAV_CVC_TYPE_1); } /* * Remember the actual type definition. @@ -26910,15 +26938,15 @@ type_validation: if (vctxt->inode->typeDef == NULL) { vctxt->inode->flags |= XML_SCHEMA_NODE_INFO_ERR_BAD_TYPE; ret = XML_SCHEMAV_CVC_TYPE_1; - VERROR(ret, NULL, - "The type definition is absent"); + VERROR(ret, NULL, + "The type definition is absent"); goto exit; } if (vctxt->inode->typeDef->flags & XML_SCHEMAS_TYPE_ABSTRACT) { vctxt->inode->flags |= XML_SCHEMA_NODE_INFO_ERR_BAD_TYPE; ret = XML_SCHEMAV_CVC_TYPE_2; - VERROR(ret, NULL, - "The type definition is abstract"); + VERROR(ret, NULL, + "The type definition is abstract"); goto exit; } /* @@ -27165,9 +27193,9 @@ internal_error: #endif /************************************************************************ - * * - * SAX validation handlers * - * * + * * + * SAX validation handlers * + * * ************************************************************************/ /* @@ -27418,9 +27446,9 @@ internal_error: } /************************************************************************ - * * - * Validation interfaces * - * * + * * + * Validation interfaces * + * * ************************************************************************/ /** @@ -27449,9 +27477,29 @@ xmlSchemaNewValidCtxt(xmlSchemaPtr schema) return (ret); } +/** + * xmlSchemaValidateSetFilename: + * @vctxt: the schema validation context + * @filename: the file name + * + * Workaround to provide file error reporting information when this is + * not provided by current APIs + */ +void +xmlSchemaValidateSetFilename(xmlSchemaValidCtxtPtr vctxt, const char *filename) { + if (vctxt == NULL) + return; + if (vctxt->filename != NULL) + xmlFree(vctxt->filename); + if (filename != NULL) + vctxt->filename = (char *) xmlStrdup((const xmlChar *) filename); + else + vctxt->filename = NULL; +} + /** * xmlSchemaClearValidCtxt: - * @ctxt: the schema validation context + * @vctxt: the schema validation context * * Free the resources associated to the schema validation context; * leaves some fields alive intended for reuse of the context. @@ -27552,6 +27600,11 @@ xmlSchemaClearValidCtxt(xmlSchemaValidCtxtPtr vctxt) * where the user provides the dict? */ vctxt->dict = xmlDictCreate(); + + if (vctxt->filename != NULL) { + xmlFree(vctxt->filename); + vctxt->filename = NULL; + } } /** @@ -27637,6 +27690,8 @@ xmlSchemaFreeValidCtxt(xmlSchemaValidCtxtPtr ctxt) xmlSchemaItemListFree(ctxt->nodeQNames); if (ctxt->dict != NULL) xmlDictFree(ctxt->dict); + if (ctxt->filename != NULL) + xmlFree(ctxt->filename); xmlFree(ctxt); } @@ -28112,9 +28167,9 @@ xmlSchemaValidateDoc(xmlSchemaValidCtxtPtr ctxt, xmlDocPtr doc) /************************************************************************ - * * - * Function and data for SAX streaming API * - * * + * * + * Function and data for SAX streaming API * + * * ************************************************************************/ typedef struct _xmlSchemaSplitSAXData xmlSchemaSplitSAXData; typedef xmlSchemaSplitSAXData *xmlSchemaSplitSAXDataPtr; @@ -28630,6 +28685,63 @@ xmlSchemaSAXUnplug(xmlSchemaSAXPlugPtr plug) return(0); } +/** + * xmlSchemaValidateSetLocator: + * @vctxt: a schema validation context + * @f: the locator function pointer + * @ctxt: the locator context + * + * Allows to set a locator function to the validation context, + * which will be used to provide file and line information since + * those are not provided as part of the SAX validation flow + * Setting @f to NULL disable the locator. + */ + +void +xmlSchemaValidateSetLocator(xmlSchemaValidCtxtPtr vctxt, + xmlSchemaValidityLocatorFunc f, + void *ctxt) +{ + if (vctxt == NULL) return; + vctxt->locFunc = f; + vctxt->locCtxt = ctxt; +} + +/** + * xmlSchemaValidateStreamLocator: + * @ctx: the xmlTextReaderPtr used + * @file: returned file information + * @line: returned line information + * + * Internal locator function for the readers + * + * Returns 0 in case the Schema validation could be (des)activated and + * -1 in case of error. + */ +static int +xmlSchemaValidateStreamLocator(void *ctx, const char **file, + unsigned long *line) { + xmlParserCtxtPtr ctxt; + + if ((ctx == NULL) || ((file == NULL) && (line == NULL))) + return(-1); + + if (file != NULL) + *file = NULL; + if (line != NULL) + *line = 0; + + ctxt = (xmlParserCtxtPtr) ctx; + if (ctxt->input != NULL) { + if (file != NULL) + *file = ctxt->input->filename; + if (line != NULL) + *line = ctxt->input->line; + return(0); + } + return(-1); +} + /** * xmlSchemaValidateStream: * @ctxt: a schema validation context @@ -28673,6 +28785,7 @@ xmlSchemaValidateStream(xmlSchemaValidCtxtPtr ctxt, xmlCtxtUseOptions(pctxt, options); #endif pctxt->linenumbers = 1; + xmlSchemaValidateSetLocator(ctxt, xmlSchemaValidateStreamLocator, pctxt); inputStream = xmlNewIOInputStream(pctxt, input, enc);; if (inputStream == NULL) { diff --git a/xmlschemastypes.c b/xmlschemastypes.c index 4518499..a9edc03 100644 --- a/xmlschemastypes.c +++ b/xmlschemastypes.c @@ -40,7 +40,7 @@ extern double xmlXPathPINF; extern double xmlXPathNINF; #endif -#define TODO \ +#define TODO \ xmlGenericError(xmlGenericErrorContext, \ "Unimplemented block at %s:%d\n", \ __FILE__, __LINE__); @@ -75,7 +75,7 @@ typedef struct _xmlSchemaValDuration xmlSchemaValDuration; typedef xmlSchemaValDuration *xmlSchemaValDurationPtr; struct _xmlSchemaValDuration { long mon; /* mon stores years also */ - long day; + long day; double sec; /* sec stores min and hour also */ }; @@ -189,7 +189,7 @@ static xmlSchemaTypePtr xmlSchemaTypeNmtokensDef = NULL; /************************************************************************ * * - * Datatype error handlers * + * Datatype error handlers * * * ************************************************************************/ /** @@ -206,7 +206,7 @@ xmlSchemaTypeErrMemory(xmlNodePtr node, const char *extra) /************************************************************************ * * - * Base types support * + * Base types support * * * ************************************************************************/ @@ -254,7 +254,7 @@ xmlSchemaNewMinLengthFacet(int value) * Initialize one primitive built-in type */ static xmlSchemaTypePtr -xmlSchemaInitBasicType(const char *name, xmlSchemaValType type, +xmlSchemaInitBasicType(const char *name, xmlSchemaValType type, xmlSchemaTypePtr baseType) { xmlSchemaTypePtr ret; @@ -267,31 +267,31 @@ xmlSchemaInitBasicType(const char *name, xmlSchemaValType type, ret->name = (const xmlChar *)name; ret->targetNamespace = XML_SCHEMAS_NAMESPACE_NAME; ret->type = XML_SCHEMA_TYPE_BASIC; - ret->baseType = baseType; + ret->baseType = baseType; ret->contentType = XML_SCHEMA_CONTENT_BASIC; /* * Primitive types. */ - switch (type) { - case XML_SCHEMAS_STRING: - case XML_SCHEMAS_DECIMAL: - case XML_SCHEMAS_DATE: - case XML_SCHEMAS_DATETIME: - case XML_SCHEMAS_TIME: - case XML_SCHEMAS_GYEAR: - case XML_SCHEMAS_GYEARMONTH: - case XML_SCHEMAS_GMONTH: - case XML_SCHEMAS_GMONTHDAY: - case XML_SCHEMAS_GDAY: - case XML_SCHEMAS_DURATION: - case XML_SCHEMAS_FLOAT: - case XML_SCHEMAS_DOUBLE: - case XML_SCHEMAS_BOOLEAN: - case XML_SCHEMAS_ANYURI: - case XML_SCHEMAS_HEXBINARY: - case XML_SCHEMAS_BASE64BINARY: - case XML_SCHEMAS_QNAME: - case XML_SCHEMAS_NOTATION: + switch (type) { + case XML_SCHEMAS_STRING: + case XML_SCHEMAS_DECIMAL: + case XML_SCHEMAS_DATE: + case XML_SCHEMAS_DATETIME: + case XML_SCHEMAS_TIME: + case XML_SCHEMAS_GYEAR: + case XML_SCHEMAS_GYEARMONTH: + case XML_SCHEMAS_GMONTH: + case XML_SCHEMAS_GMONTHDAY: + case XML_SCHEMAS_GDAY: + case XML_SCHEMAS_DURATION: + case XML_SCHEMAS_FLOAT: + case XML_SCHEMAS_DOUBLE: + case XML_SCHEMAS_BOOLEAN: + case XML_SCHEMAS_ANYURI: + case XML_SCHEMAS_HEXBINARY: + case XML_SCHEMAS_BASE64BINARY: + case XML_SCHEMAS_QNAME: + case XML_SCHEMAS_NOTATION: ret->flags |= XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE; break; default: @@ -309,7 +309,7 @@ xmlSchemaInitBasicType(const char *name, xmlSchemaValType type, case XML_SCHEMAS_ENTITIES: ret->flags |= XML_SCHEMAS_TYPE_VARIETY_LIST; ret->facets = xmlSchemaNewMinLengthFacet(1); - ret->flags |= XML_SCHEMAS_TYPE_HAS_FACETS; + ret->flags |= XML_SCHEMAS_TYPE_HAS_FACETS; break; default: ret->flags |= XML_SCHEMAS_TYPE_VARIETY_ATOMIC; @@ -390,19 +390,19 @@ xmlSchemaInitTypes(void) return; xmlSchemaTypesBank = xmlHashCreate(40); - + /* * 3.4.7 Built-in Complex Type Definition */ xmlSchemaTypeAnyTypeDef = xmlSchemaInitBasicType("anyType", - XML_SCHEMAS_ANYTYPE, + XML_SCHEMAS_ANYTYPE, NULL); xmlSchemaTypeAnyTypeDef->baseType = xmlSchemaTypeAnyTypeDef; xmlSchemaTypeAnyTypeDef->contentType = XML_SCHEMA_CONTENT_MIXED; /* * Init the content type. */ - xmlSchemaTypeAnyTypeDef->contentType = XML_SCHEMA_CONTENT_MIXED; + xmlSchemaTypeAnyTypeDef->contentType = XML_SCHEMA_CONTENT_MIXED; { xmlSchemaParticlePtr particle; xmlSchemaModelGroupPtr sequence; @@ -420,7 +420,7 @@ xmlSchemaInitTypes(void) return; } memset(sequence, 0, sizeof(xmlSchemaModelGroup)); - sequence->type = XML_SCHEMA_TYPE_SEQUENCE; + sequence->type = XML_SCHEMA_TYPE_SEQUENCE; particle->children = (xmlSchemaTreeItemPtr) sequence; /* Second particle. */ particle = xmlSchemaAddParticle(); @@ -437,9 +437,9 @@ xmlSchemaInitTypes(void) } memset(wild, 0, sizeof(xmlSchemaWildcard)); wild->type = XML_SCHEMA_TYPE_ANY; - wild->any = 1; - wild->processContents = XML_SCHEMAS_ANY_LAX; - particle->children = (xmlSchemaTreeItemPtr) wild; + wild->any = 1; + wild->processContents = XML_SCHEMAS_ANY_LAX; + particle->children = (xmlSchemaTreeItemPtr) wild; /* * Create the attribute wildcard. */ @@ -451,10 +451,10 @@ xmlSchemaInitTypes(void) } memset(wild, 0, sizeof(xmlSchemaWildcard)); wild->any = 1; - wild->processContents = XML_SCHEMAS_ANY_LAX; + wild->processContents = XML_SCHEMAS_ANY_LAX; xmlSchemaTypeAnyTypeDef->attributeWildcard = wild; } - xmlSchemaTypeAnySimpleTypeDef = xmlSchemaInitBasicType("anySimpleType", + xmlSchemaTypeAnySimpleTypeDef = xmlSchemaInitBasicType("anySimpleType", XML_SCHEMAS_ANYSIMPLETYPE, xmlSchemaTypeAnyTypeDef); /* @@ -513,7 +513,7 @@ xmlSchemaInitTypes(void) xmlSchemaTypeAnySimpleTypeDef); xmlSchemaTypeNotationDef = xmlSchemaInitBasicType("NOTATION", XML_SCHEMAS_NOTATION, - xmlSchemaTypeAnySimpleTypeDef); + xmlSchemaTypeAnySimpleTypeDef); xmlSchemaTypeQNameDef = xmlSchemaInitBasicType("QName", XML_SCHEMAS_QNAME, xmlSchemaTypeAnySimpleTypeDef); @@ -583,7 +583,7 @@ xmlSchemaInitTypes(void) xmlSchemaTypeNCNameDef); xmlSchemaTypeIdrefDef = xmlSchemaInitBasicType("IDREF", XML_SCHEMAS_IDREF, - xmlSchemaTypeNCNameDef); + xmlSchemaTypeNCNameDef); xmlSchemaTypeEntityDef = xmlSchemaInitBasicType("ENTITY", XML_SCHEMAS_ENTITY, xmlSchemaTypeNCNameDef); @@ -615,7 +615,7 @@ xmlSchemaInitTypes(void) * * Cleanup the default XML Schemas type library */ -void +void xmlSchemaCleanupTypes(void) { if (xmlSchemaTypesInitialized == 0) return; @@ -629,13 +629,13 @@ xmlSchemaCleanupTypes(void) { /* Content type. */ particle = (xmlSchemaParticlePtr) xmlSchemaTypeAnyTypeDef->subtypes; /* Wildcard. */ - xmlSchemaFreeWildcard((xmlSchemaWildcardPtr) + xmlSchemaFreeWildcard((xmlSchemaWildcardPtr) particle->children->children->children); xmlFree((xmlSchemaParticlePtr) particle->children->children); /* Sequence model group. */ xmlFree((xmlSchemaModelGroupPtr) particle->children); xmlFree((xmlSchemaParticlePtr) particle); - xmlSchemaTypeAnyTypeDef->subtypes = NULL; + xmlSchemaTypeAnyTypeDef->subtypes = NULL; } xmlHashFree(xmlSchemaTypesBank, (xmlHashDeallocator) xmlSchemaFreeType); xmlSchemaTypesInitialized = 0; @@ -665,12 +665,12 @@ xmlSchemaIsBuiltInTypeFacet(xmlSchemaTypePtr type, int facetType) (facetType == XML_SCHEMA_FACET_WHITESPACE)) return (1); else - return (0); + return (0); case XML_SCHEMAS_STRING: case XML_SCHEMAS_NOTATION: case XML_SCHEMAS_QNAME: - case XML_SCHEMAS_ANYURI: - case XML_SCHEMAS_BASE64BINARY: + case XML_SCHEMAS_ANYURI: + case XML_SCHEMAS_BASE64BINARY: case XML_SCHEMAS_HEXBINARY: if ((facetType == XML_SCHEMA_FACET_LENGTH) || (facetType == XML_SCHEMA_FACET_MINLENGTH) || @@ -693,12 +693,12 @@ xmlSchemaIsBuiltInTypeFacet(xmlSchemaTypePtr type, int facetType) (facetType == XML_SCHEMA_FACET_MINEXCLUSIVE)) return (1); else - return (0); + return (0); case XML_SCHEMAS_TIME: - case XML_SCHEMAS_GDAY: + case XML_SCHEMAS_GDAY: case XML_SCHEMAS_GMONTH: - case XML_SCHEMAS_GMONTHDAY: - case XML_SCHEMAS_GYEAR: + case XML_SCHEMAS_GMONTHDAY: + case XML_SCHEMAS_GYEAR: case XML_SCHEMAS_GYEARMONTH: case XML_SCHEMAS_DATE: case XML_SCHEMAS_DATETIME: @@ -714,7 +714,7 @@ xmlSchemaIsBuiltInTypeFacet(xmlSchemaTypePtr type, int facetType) (facetType == XML_SCHEMA_FACET_MINEXCLUSIVE)) return (1); else - return (0); + return (0); default: break; } @@ -736,7 +736,7 @@ xmlSchemaGetBuiltInType(xmlSchemaValType type) if (xmlSchemaTypesInitialized == 0) xmlSchemaInitTypes(); switch (type) { - + case XML_SCHEMAS_ANYSIMPLETYPE: return (xmlSchemaTypeAnySimpleTypeDef); case XML_SCHEMAS_STRING: @@ -752,7 +752,7 @@ xmlSchemaGetBuiltInType(xmlSchemaValType type) case XML_SCHEMAS_GMONTH: return (xmlSchemaTypeGMonthDef); case XML_SCHEMAS_GMONTHDAY: - return (xmlSchemaTypeGMonthDayDef); + return (xmlSchemaTypeGMonthDayDef); case XML_SCHEMAS_GYEAR: return (xmlSchemaTypeGYearDef); case XML_SCHEMAS_GYEARMONTH: @@ -828,7 +828,7 @@ xmlSchemaGetBuiltInType(xmlSchemaValType type) case XML_SCHEMAS_BASE64BINARY: return (xmlSchemaTypeBase64BinaryDef); case XML_SCHEMAS_ANYTYPE: - return (xmlSchemaTypeAnyTypeDef); + return (xmlSchemaTypeAnyTypeDef); default: return (NULL); } @@ -880,7 +880,7 @@ xmlSchemaValueGetNext(xmlSchemaValPtr cur) { */ const xmlChar * xmlSchemaValueGetAsString(xmlSchemaValPtr val) -{ +{ if (val == NULL) return (NULL); switch (val->type) { @@ -913,7 +913,7 @@ xmlSchemaValueGetAsString(xmlSchemaValPtr val) */ int xmlSchemaValueGetAsBoolean(xmlSchemaValPtr val) -{ +{ if ((val == NULL) || (val->type != XML_SCHEMAS_BOOLEAN)) return (0); return (val->value.b); @@ -924,8 +924,8 @@ xmlSchemaValueGetAsBoolean(xmlSchemaValPtr val) * @type: the value type * @value: the value * - * Allocate a new simple type value. The type can be - * of XML_SCHEMAS_STRING. + * Allocate a new simple type value. The type can be + * of XML_SCHEMAS_STRING. * WARNING: This one is intended to be expanded for other * string based types. We need this for anySimpleType as well. * The given value is consumed and freed with the struct. @@ -1007,11 +1007,11 @@ xmlSchemaNewQNameValue(const xmlChar *namespaceName, * * Cleanup the default XML Schemas type library */ -void +void xmlSchemaFreeValue(xmlSchemaValPtr value) { xmlSchemaValPtr prev; - while (value != NULL) { + while (value != NULL) { switch (value->type) { case XML_SCHEMAS_STRING: case XML_SCHEMAS_NORMSTRING: @@ -1025,7 +1025,7 @@ xmlSchemaFreeValue(xmlSchemaValPtr value) { case XML_SCHEMAS_IDREF: case XML_SCHEMAS_IDREFS: case XML_SCHEMAS_ENTITY: - case XML_SCHEMAS_ENTITIES: + case XML_SCHEMAS_ENTITIES: case XML_SCHEMAS_ANYURI: case XML_SCHEMAS_ANYSIMPLETYPE: if (value->value.str != NULL) @@ -1052,7 +1052,7 @@ xmlSchemaFreeValue(xmlSchemaValPtr value) { prev = value; value = value->next; xmlFree(prev); - } + } } /** @@ -1088,9 +1088,9 @@ xmlSchemaGetBuiltInListSimpleTypeItemType(xmlSchemaTypePtr type) if ((type == NULL) || (type->type != XML_SCHEMA_TYPE_BASIC)) return (NULL); switch (type->builtInType) { - case XML_SCHEMAS_NMTOKENS: + case XML_SCHEMAS_NMTOKENS: return (xmlSchemaTypeNmtokenDef ); - case XML_SCHEMAS_IDREFS: + case XML_SCHEMAS_IDREFS: return (xmlSchemaTypeIdrefDef); case XML_SCHEMAS_ENTITIES: return (xmlSchemaTypeEntityDef); @@ -1342,13 +1342,13 @@ _xmlSchemaParseGDay (xmlSchemaValDatePtr dt, const xmlChar **str) { */ static int _xmlSchemaParseTime (xmlSchemaValDatePtr dt, const xmlChar **str) { - const xmlChar *cur = *str; + const xmlChar *cur = *str; int ret = 0; int value = 0; PARSE_2_DIGITS(value, cur, ret); if (ret != 0) - return ret; + return ret; if (*cur != ':') return 1; if (!VALID_HOUR(value)) @@ -1614,7 +1614,7 @@ xmlSchemaValidateDates (xmlSchemaValType type, const xmlChar *rewnd = cur; cur++; - ret = _xmlSchemaParseGDay(&(dt->value.date), &cur); + ret = _xmlSchemaParseGDay(&(dt->value.date), &cur); if ((ret == 0) && ((*cur == 0) || (*cur != ':'))) { /* @@ -1852,7 +1852,7 @@ xmlSchemaValidateDuration (xmlSchemaTypePtr type ATTRIBUTE_UNUSED, } cur++; if (collapse) - while IS_WSP_BLANK_CH(*cur) cur++; + while IS_WSP_BLANK_CH(*cur) cur++; } if (isneg) { @@ -1908,13 +1908,13 @@ xmlSchemaStrip(const xmlChar *value) { */ xmlChar * xmlSchemaWhiteSpaceReplace(const xmlChar *value) { - const xmlChar *cur = value; - xmlChar *ret = NULL, *mcur; + const xmlChar *cur = value; + xmlChar *ret = NULL, *mcur; - if (value == NULL) + if (value == NULL) return(NULL); - - while ((*cur != 0) && + + while ((*cur != 0) && (((*cur) != 0xd) && ((*cur) != 0x9) && ((*cur) != 0xa))) { cur++; } @@ -1927,7 +1927,7 @@ xmlSchemaWhiteSpaceReplace(const xmlChar *value) { if ( ((*mcur) == 0xd) || ((*mcur) == 0x9) || ((*mcur) == 0xa) ) *mcur = ' '; mcur++; - } while (*mcur != 0); + } while (*mcur != 0); return(ret); } @@ -2072,7 +2072,7 @@ xmlSchemaParseUInt(const xmlChar **str, unsigned long *llo, const xmlChar *tmp, *cur = *str; int ret = 0, i = 0; - if (!((*cur >= '0') && (*cur <= '9'))) + if (!((*cur >= '0') && (*cur <= '9'))) return(-2); while (*cur == '0') { /* ignore leading zeroes */ @@ -2148,7 +2148,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value, if ((flags == 0) && (value != NULL)) { if ((type->builtInType != XML_SCHEMAS_STRING) && - (type->builtInType != XML_SCHEMAS_ANYTYPE) && + (type->builtInType != XML_SCHEMAS_ANYTYPE) && (type->builtInType != XML_SCHEMAS_ANYSIMPLETYPE)) { if (type->builtInType == XML_SCHEMAS_NORMSTRING) norm = xmlSchemaWhiteSpaceReplace(value); @@ -2160,7 +2160,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value, } switch (type->builtInType) { - case XML_SCHEMAS_UNKNOWN: + case XML_SCHEMAS_UNKNOWN: goto error; case XML_SCHEMAS_ANYTYPE: case XML_SCHEMAS_ANYSIMPLETYPE: @@ -2171,10 +2171,10 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value, *val = v; } else { goto error; - } + } } goto return0; - case XML_SCHEMAS_STRING: + case XML_SCHEMAS_STRING: if (! normOnTheFly) { const xmlChar *cur = value; @@ -2253,7 +2253,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value, const xmlChar *cur = value; unsigned int len, neg, integ, hasLeadingZeroes; xmlChar cval[25]; - xmlChar *cptr = cval; + xmlChar *cptr = cval; if ((cur == NULL) || (*cur == 0)) goto return1; @@ -2327,10 +2327,10 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value, v = xmlSchemaNewValue(XML_SCHEMAS_DECIMAL); if (v != NULL) { /* - * Now evaluate the significant digits of the number - */ + * Now evaluate the significant digits of the number + */ if (len != 0) { - + if (integ != ~0u) { /* * Get rid of trailing zeroes in the @@ -2604,8 +2604,8 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value, } else { cur++; } - } - } + } + } if (val != NULL) { v = xmlSchemaNewValue(XML_SCHEMAS_TOKEN); if (v != NULL) { @@ -2618,7 +2618,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value, goto return0; } case XML_SCHEMAS_LANGUAGE: - if (normOnTheFly) { + if (normOnTheFly) { norm = xmlSchemaCollapseString(value); if (norm != NULL) value = norm; @@ -2903,11 +2903,11 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value, } goto done; } - case XML_SCHEMAS_ANYURI:{ + case XML_SCHEMAS_ANYURI:{ if (*value != 0) { xmlURIPtr uri; xmlChar *tmpval, *cur; - if (normOnTheFly) { + if (normOnTheFly) { norm = xmlSchemaCollapseString(value); if (norm != NULL) value = norm; @@ -2996,12 +2996,12 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value, } case XML_SCHEMAS_BASE64BINARY:{ /* ISSUE: - * + * * Ignore all stray characters? (yes, currently) * Worry about long lines? (no, currently) - * + * * rfc2045.txt: - * + * * "The encoded output stream must be represented in lines of * no more than 76 characters each. All line breaks or other * characters not found in Table 1 must be ignored by decoding @@ -3412,7 +3412,7 @@ xmlSchemaCompareDecimals(xmlSchemaValPtr x, xmlSchemaValPtr y) /* * First test: If x is -ve and not zero */ - if ((x->value.decimal.sign) && + if ((x->value.decimal.sign) && ((x->value.decimal.lo != 0) || (x->value.decimal.mi != 0) || (x->value.decimal.hi != 0))) { @@ -3653,7 +3653,7 @@ xmlSchemaDupVal (xmlSchemaValPtr v) xmlSchemaValPtr ret = xmlSchemaNewValue(v->type); if (ret == NULL) return NULL; - + memcpy(ret, v, sizeof(xmlSchemaVal)); ret->next = NULL; return ret; @@ -3699,7 +3699,7 @@ xmlSchemaCopyValue(xmlSchemaValPtr val) if (val->value.str != NULL) cur->value.str = xmlStrdup(BAD_CAST val->value.str); break; - case XML_SCHEMAS_QNAME: + case XML_SCHEMAS_QNAME: case XML_SCHEMAS_NOTATION: cur = xmlSchemaDupVal(val); if (val->value.qname.name != NULL) @@ -3841,7 +3841,7 @@ _xmlSchemaDateAdd (xmlSchemaValPtr dt, xmlSchemaValPtr dur) if (tyr == 0) tyr--; /* - * Coverity detected an overrun in daysInMonth + * Coverity detected an overrun in daysInMonth * of size 12 at position 12 with index variable "((r)->mon - 1)" */ if (tmon < 0) @@ -3866,7 +3866,7 @@ _xmlSchemaDateAdd (xmlSchemaValPtr dt, xmlSchemaValPtr dur) r->year++; } } - + r->day = tempdays; /* @@ -3931,7 +3931,7 @@ xmlSchemaDateNormalize (xmlSchemaValPtr dt, double offset) * _xmlSchemaDateCastYMToDays: * @dt: an #xmlSchemaValPtr * - * Convert mon and year of @dt to total number of days. Take the + * Convert mon and year of @dt to total number of days. Take the * number of years since (or before) 1 AD and add the number of leap * years. This is a function because negative * years must be handled a little differently and there is no zero year. @@ -4111,7 +4111,7 @@ xmlSchemaCompareDates (xmlSchemaValPtr x, xmlSchemaValPtr y) ret = -1; else if (sec > 0.0) ret = 1; - + } xmlSchemaFreeValue(p1); xmlSchemaFreeValue(q1); @@ -4252,7 +4252,7 @@ xmlSchemaComparePreserveReplaceStrings(const xmlChar *x, int invert) { int tmp; - + while ((*x != 0) && (*y != 0)) { if (IS_WSP_REPLACE_CH(*y)) { if (! IS_WSP_SPACE_CH(*x)) { @@ -4267,7 +4267,7 @@ xmlSchemaComparePreserveReplaceStrings(const xmlChar *x, else return(1); } - } + } } else { tmp = *x - *y; if (tmp < 0) { @@ -4321,7 +4321,7 @@ xmlSchemaComparePreserveCollapseStrings(const xmlChar *x, { int tmp; - /* + /* * Skip leading blank chars of the collapsed string. */ while IS_WSP_BLANK_CH(*y) @@ -4410,12 +4410,12 @@ xmlSchemaCompareReplaceCollapseStrings(const xmlChar *x, { int tmp; - /* + /* * Skip leading blank chars of the collapsed string. */ while IS_WSP_BLANK_CH(*y) y++; - + while ((*x != 0) && (*y != 0)) { if IS_WSP_BLANK_CH(*y) { if (! IS_WSP_BLANK_CH(*x)) { @@ -4435,8 +4435,8 @@ xmlSchemaCompareReplaceCollapseStrings(const xmlChar *x, } } x++; - y++; - /* + y++; + /* * Skip contiguous blank chars of the collapsed string. */ while IS_WSP_BLANK_CH(*y) @@ -4470,7 +4470,7 @@ xmlSchemaCompareReplaceCollapseStrings(const xmlChar *x, return(-1); else return(1); - } + } if (*y != 0) { /* * Skip trailing blank chars of the collapsed string. @@ -4503,27 +4503,27 @@ xmlSchemaCompareReplacedStrings(const xmlChar *x, const xmlChar *y) { int tmp; - + while ((*x != 0) && (*y != 0)) { if IS_WSP_BLANK_CH(*y) { if (! IS_WSP_BLANK_CH(*x)) { if ((*x - 0x20) < 0) - return(-1); + return(-1); else return(1); - } + } } else { if IS_WSP_BLANK_CH(*x) { if ((0x20 - *y) < 0) - return(-1); + return(-1); else return(1); } tmp = *x - *y; if (tmp < 0) - return(-1); + return(-1); if (tmp > 0) - return(1); + return(1); } x++; y++; @@ -4549,7 +4549,7 @@ static int xmlSchemaCompareNormStrings(const xmlChar *x, const xmlChar *y) { int tmp; - + while (IS_BLANK_CH(*x)) x++; while (IS_BLANK_CH(*y)) y++; while ((*x != 0) && (*y != 0)) { @@ -4742,13 +4742,13 @@ xmlSchemaCompareValuesInternal(xmlSchemaValType xtype, (ytype == XML_SCHEMAS_GYEARMONTH)) return (xmlSchemaCompareDates(x, y)); return (-2); - /* + /* * Note that we will support comparison of string types against * anySimpleType as well. */ case XML_SCHEMAS_ANYSIMPLETYPE: case XML_SCHEMAS_STRING: - case XML_SCHEMAS_NORMSTRING: + case XML_SCHEMAS_NORMSTRING: case XML_SCHEMAS_TOKEN: case XML_SCHEMAS_LANGUAGE: case XML_SCHEMAS_NMTOKEN: @@ -4772,10 +4772,10 @@ xmlSchemaCompareValuesInternal(xmlSchemaValType xtype, /* * TODO: Compare those against QName. */ - if (ytype == XML_SCHEMAS_QNAME) { + if (ytype == XML_SCHEMAS_QNAME) { TODO if (y == NULL) - return(-2); + return(-2); return (-2); } if ((ytype == XML_SCHEMAS_ANYSIMPLETYPE) || @@ -4797,7 +4797,7 @@ xmlSchemaCompareValuesInternal(xmlSchemaValType xtype, /* TODO: What about x < y or x > y. */ if (xmlStrEqual(xv, yv)) return (0); - else + else return (2); } else if (yws == XML_SCHEMA_WHITESPACE_REPLACE) return (xmlSchemaComparePreserveReplaceStrings(xv, yv, 0)); @@ -4823,7 +4823,7 @@ xmlSchemaCompareValuesInternal(xmlSchemaValType xtype, return (xmlSchemaCompareNormStrings(xv, yv)); } else return (-2); - + } return (-2); } @@ -4894,7 +4894,7 @@ xmlSchemaCompareValuesInternal(xmlSchemaValType xtype, else return(-1); } - return (-2); + return (-2); case XML_SCHEMAS_IDREFS: case XML_SCHEMAS_ENTITIES: case XML_SCHEMAS_NMTOKENS: @@ -5082,7 +5082,7 @@ xmlSchemaValidateListSimpleTypeFacet(xmlSchemaFacetPtr facet, if (expectedLen != NULL) *expectedLen = facet->val->value.decimal.lo; return (XML_SCHEMAV_CVC_LENGTH_VALID); - } + } } else if (facet->type == XML_SCHEMA_FACET_MINLENGTH) { if (actualLen < facet->val->value.decimal.lo) { if (expectedLen != NULL) @@ -5096,12 +5096,12 @@ xmlSchemaValidateListSimpleTypeFacet(xmlSchemaFacetPtr facet, return (XML_SCHEMAV_CVC_MAXLENGTH_VALID); } } else - /* - * NOTE: That we can pass NULL as xmlSchemaValPtr to + /* + * NOTE: That we can pass NULL as xmlSchemaValPtr to * xmlSchemaValidateFacet, since the remaining facet types - * are: XML_SCHEMA_FACET_PATTERN, XML_SCHEMA_FACET_ENUMERATION. + * are: XML_SCHEMA_FACET_PATTERN, XML_SCHEMA_FACET_ENUMERATION. */ - return(xmlSchemaValidateFacet(NULL, facet, value, NULL)); + return(xmlSchemaValidateFacet(NULL, facet, value, NULL)); return (0); } @@ -5114,7 +5114,7 @@ xmlSchemaValidateListSimpleTypeFacet(xmlSchemaFacetPtr facet, * @ws: the whitespace type of the value * @length: the actual length of the value * - * Checka a value against a "length", "minLength" and "maxLength" + * Checka a value against a "length", "minLength" and "maxLength" * facet; sets @length to the computed length of @value. * * Returns 0 if the value is valid, a positive error code @@ -5126,7 +5126,7 @@ xmlSchemaValidateLengthFacetInternal(xmlSchemaFacetPtr facet, const xmlChar *value, xmlSchemaValPtr val, unsigned long *length, - xmlSchemaWhitespaceValueType ws) + xmlSchemaWhitespaceValueType ws) { unsigned int len = 0; @@ -5137,7 +5137,7 @@ xmlSchemaValidateLengthFacetInternal(xmlSchemaFacetPtr facet, (facet->type != XML_SCHEMA_FACET_MAXLENGTH) && (facet->type != XML_SCHEMA_FACET_MINLENGTH)) return (-1); - + /* * TODO: length, maxLength and minLength must be of type * nonNegativeInteger only. Check if decimal is used somehow. @@ -5171,7 +5171,7 @@ xmlSchemaValidateLengthFacetInternal(xmlSchemaFacetPtr facet, if (ws == XML_SCHEMA_WHITESPACE_COLLAPSE) len = xmlSchemaNormLen(value); else - /* + /* * Should be OK for "preserve" as well. */ len = xmlUTF8Strlen(value); @@ -5183,7 +5183,7 @@ xmlSchemaValidateLengthFacetInternal(xmlSchemaFacetPtr facet, case XML_SCHEMAS_NMTOKEN: case XML_SCHEMAS_NAME: case XML_SCHEMAS_NCNAME: - case XML_SCHEMAS_ID: + case XML_SCHEMAS_ID: /* * FIXME: What exactly to do with anyURI? */ @@ -5192,11 +5192,11 @@ xmlSchemaValidateLengthFacetInternal(xmlSchemaFacetPtr facet, len = xmlSchemaNormLen(value); break; case XML_SCHEMAS_QNAME: - case XML_SCHEMAS_NOTATION: - /* + case XML_SCHEMAS_NOTATION: + /* * For QName and NOTATION, those facets are * deprecated and should be ignored. - */ + */ return (0); default: TODO @@ -5216,7 +5216,7 @@ xmlSchemaValidateLengthFacetInternal(xmlSchemaFacetPtr facet, if (len > facet->val->value.decimal.lo) return(XML_SCHEMAV_CVC_MAXLENGTH_VALID); } - + return (0); } @@ -5228,18 +5228,18 @@ xmlSchemaValidateLengthFacetInternal(xmlSchemaFacetPtr facet, * @val: the precomputed value * @length: the actual length of the value * - * Checka a value against a "length", "minLength" and "maxLength" + * Checka a value against a "length", "minLength" and "maxLength" * facet; sets @length to the computed length of @value. * * Returns 0 if the value is valid, a positive error code * otherwise and -1 in case of an internal or API error. */ int -xmlSchemaValidateLengthFacet(xmlSchemaTypePtr type, +xmlSchemaValidateLengthFacet(xmlSchemaTypePtr type, xmlSchemaFacetPtr facet, const xmlChar *value, xmlSchemaValPtr val, - unsigned long *length) + unsigned long *length) { if (type == NULL) return(-1); @@ -5249,7 +5249,7 @@ xmlSchemaValidateLengthFacet(xmlSchemaTypePtr type, } /** - * xmlSchemaValidateLengthFacetWhtsp: + * xmlSchemaValidateLengthFacetWhtsp: * @facet: the facet to check * @valType: the built-in type * @value: the lexical repr. of the value to be validated @@ -5257,7 +5257,7 @@ xmlSchemaValidateLengthFacet(xmlSchemaTypePtr type, * @ws: the whitespace type of the value * @length: the actual length of the value * - * Checka a value against a "length", "minLength" and "maxLength" + * Checka a value against a "length", "minLength" and "maxLength" * facet; sets @length to the computed length of @value. * * Returns 0 if the value is valid, a positive error code @@ -5292,7 +5292,7 @@ xmlSchemaValidateLengthFacetWhtsp(xmlSchemaFacetPtr facet, static int xmlSchemaValidateFacetInternal(xmlSchemaFacetPtr facet, xmlSchemaWhitespaceValueType fws, - xmlSchemaValType valType, + xmlSchemaValType valType, const xmlChar *value, xmlSchemaValPtr val, xmlSchemaWhitespaceValueType ws) @@ -5304,7 +5304,7 @@ xmlSchemaValidateFacetInternal(xmlSchemaFacetPtr facet, switch (facet->type) { case XML_SCHEMA_FACET_PATTERN: - /* + /* * NOTE that for patterns, the @value needs to be the normalized * value, *not* the lexical initial value or the canonical value. */ @@ -5405,7 +5405,7 @@ xmlSchemaValidateFacetInternal(xmlSchemaFacetPtr facet, else { switch (valType) { case XML_SCHEMAS_STRING: - case XML_SCHEMAS_NORMSTRING: + case XML_SCHEMAS_NORMSTRING: if (ws == XML_SCHEMA_WHITESPACE_UNKNOWN) { /* * This is to ensure API compatibility with the old @@ -5421,13 +5421,13 @@ xmlSchemaValidateFacetInternal(xmlSchemaFacetPtr facet, if (ws == XML_SCHEMA_WHITESPACE_COLLAPSE) len = xmlSchemaNormLen(value); else - /* + /* * Should be OK for "preserve" as well. */ len = xmlUTF8Strlen(value); } break; - case XML_SCHEMAS_IDREF: + case XML_SCHEMAS_IDREF: case XML_SCHEMAS_TOKEN: case XML_SCHEMAS_LANGUAGE: case XML_SCHEMAS_NMTOKEN: @@ -5436,11 +5436,11 @@ xmlSchemaValidateFacetInternal(xmlSchemaFacetPtr facet, case XML_SCHEMAS_ID: case XML_SCHEMAS_ANYURI: if (value != NULL) - len = xmlSchemaNormLen(value); - break; + len = xmlSchemaNormLen(value); + break; default: TODO - } + } } if (facet->type == XML_SCHEMA_FACET_LENGTH) { if (len != facet->val->value.decimal.lo) @@ -5550,7 +5550,7 @@ xmlSchemaValidateFacet(xmlSchemaTypePtr base, int xmlSchemaValidateFacetWhtsp(xmlSchemaFacetPtr facet, xmlSchemaWhitespaceValueType fws, - xmlSchemaValType valType, + xmlSchemaValType valType, const xmlChar *value, xmlSchemaValPtr val, xmlSchemaWhitespaceValueType ws) @@ -5611,13 +5611,13 @@ xmlSchemaFormatFloat(double number, char buffer[], int buffersize) /* * Result is in work, and after_fraction points * just past the fractional part. - * Use scientific notation + * Use scientific notation */ integer_place = DBL_DIG + EXPONENT_DIGITS + 1; fraction_place = DBL_DIG - 1; snprintf(work, sizeof(work),"%*.*e", integer_place, fraction_place, number); - after_fraction = strchr(work + DBL_DIG, 'e'); + after_fraction = strchr(work + DBL_DIG, 'e'); /* Remove fractional trailing zeroes */ ptr = after_fraction; while (*(--ptr) == '0') @@ -5649,7 +5649,7 @@ xmlSchemaFormatFloat(double number, char buffer[], int buffersize) * * WARNING: Some value types are not supported yet, resulting * in a @retValue of "???". - * + * * TODO: XML Schema 1.0 does not define canonical representations * for: duration, gYearMonth, gYear, gMonthDay, gMonth, gDay, * anyURI, QName, NOTATION. This will be fixed in XML Schema 1.1. @@ -5669,7 +5669,7 @@ xmlSchemaGetCanonValue(xmlSchemaValPtr val, const xmlChar **retValue) if (val->value.str == NULL) *retValue = BAD_CAST xmlStrdup(BAD_CAST ""); else - *retValue = + *retValue = BAD_CAST xmlStrdup((const xmlChar *) val->value.str); break; case XML_SCHEMAS_NORMSTRING: @@ -5686,7 +5686,7 @@ xmlSchemaGetCanonValue(xmlSchemaValPtr val, const xmlChar **retValue) case XML_SCHEMAS_TOKEN: case XML_SCHEMAS_LANGUAGE: case XML_SCHEMAS_NMTOKEN: - case XML_SCHEMAS_NAME: + case XML_SCHEMAS_NAME: case XML_SCHEMAS_NCNAME: case XML_SCHEMAS_ID: case XML_SCHEMAS_IDREF: @@ -5695,10 +5695,10 @@ xmlSchemaGetCanonValue(xmlSchemaValPtr val, const xmlChar **retValue) case XML_SCHEMAS_ANYURI: /* Unclear */ if (val->value.str == NULL) return (-1); - *retValue = + *retValue = BAD_CAST xmlSchemaCollapseString(BAD_CAST val->value.str); if (*retValue == NULL) - *retValue = + *retValue = BAD_CAST xmlStrdup((const xmlChar *) val->value.str); break; case XML_SCHEMAS_QNAME: @@ -5720,7 +5720,7 @@ xmlSchemaGetCanonValue(xmlSchemaValPtr val, const xmlChar **retValue) /* * TODO: Lookout for a more simple implementation. */ - if ((val->value.decimal.total == 1) && + if ((val->value.decimal.total == 1) && (val->value.decimal.lo == 0)) { *retValue = xmlStrdup(BAD_CAST "0.0"); } else { @@ -5754,7 +5754,7 @@ xmlSchemaGetCanonValue(xmlSchemaValPtr val, const xmlChar **retValue) else snprintf(offs, bufsize - (offs - buf), "%lu", dec.lo); - + if (dec.frac != 0) { if (dec.frac != dec.total) { int diff = dec.total - dec.frac; @@ -5767,7 +5767,7 @@ xmlSchemaGetCanonValue(xmlSchemaValPtr val, const xmlChar **retValue) unsigned int i = 0; /* * Insert missing zeroes behind the decimal point. - */ + */ while (*(offs + i) != 0) i++; if (i < dec.total) { @@ -5904,7 +5904,7 @@ xmlSchemaGetCanonValue(xmlSchemaValPtr val, const xmlChar **retValue) snprintf((char *) *retValue, 6, "---%02u", val->value.date.day); } - break; + break; case XML_SCHEMAS_GMONTHDAY: { /* TODO: Unclear in XML Schema 1.0 */ /* TODO: What to do with the timezone? */ @@ -5921,14 +5921,14 @@ xmlSchemaGetCanonValue(xmlSchemaValPtr val, const xmlChar **retValue) /* TODO: What to do with the timezone? */ if (val->value.date.year < 0) snprintf(buf, 35, "-%04ld-%02u", - labs(val->value.date.year), + labs(val->value.date.year), val->value.date.mon); else snprintf(buf, 35, "%04ld-%02u", val->value.date.year, val->value.date.mon); *retValue = BAD_CAST xmlStrdup(BAD_CAST buf); } - break; + break; case XML_SCHEMAS_TIME: { char buf[30]; @@ -5939,8 +5939,8 @@ xmlSchemaGetCanonValue(xmlSchemaValPtr val, const xmlChar **retValue) norm = xmlSchemaDateNormalize(val, 0); if (norm == NULL) return (-1); - /* - * TODO: Check if "%.14g" is portable. + /* + * TODO: Check if "%.14g" is portable. */ snprintf(buf, 30, "%02u:%02u:%02.14gZ", @@ -5956,7 +5956,7 @@ xmlSchemaGetCanonValue(xmlSchemaValPtr val, const xmlChar **retValue) val->value.date.sec); } *retValue = BAD_CAST xmlStrdup(BAD_CAST buf); - } + } break; case XML_SCHEMAS_DATE: { @@ -5984,7 +5984,7 @@ xmlSchemaGetCanonValue(xmlSchemaValPtr val, const xmlChar **retValue) val->value.date.day); } *retValue = BAD_CAST xmlStrdup(BAD_CAST buf); - } + } break; case XML_SCHEMAS_DATETIME: { @@ -6028,8 +6028,8 @@ xmlSchemaGetCanonValue(xmlSchemaValPtr val, const xmlChar **retValue) *retValue = BAD_CAST xmlStrdup(BAD_CAST val->value.base64.str); break; case XML_SCHEMAS_FLOAT: { - char buf[30]; - /* + char buf[30]; + /* * |m| < 16777216, -149 <= e <= 104. * TODO: Handle, NaN, INF, -INF. The format is not * yet conformant. The c type float does not cover @@ -6050,7 +6050,7 @@ xmlSchemaGetCanonValue(xmlSchemaValPtr val, const xmlChar **retValue) snprintf(buf, 40, "%01.14e", val->value.d); *retValue = BAD_CAST xmlStrdup(BAD_CAST buf); } - break; + break; default: *retValue = BAD_CAST xmlStrdup(BAD_CAST "???"); return (1); @@ -6109,7 +6109,7 @@ xmlSchemaGetCanonValueWhtsp(xmlSchemaValPtr val, break; default: return (xmlSchemaGetCanonValue(val, retValue)); - } + } return (0); } diff --git a/xmlstring.c b/xmlstring.c index 910f244..a37220d 100644 --- a/xmlstring.c +++ b/xmlstring.c @@ -3,7 +3,7 @@ * * This module provides various utility functions for manipulating * the xmlChar* type. All functions named xmlStr* have been moved here - * from the parser.c file (their original home). + * from the parser.c file (their original home). * * See Copyright for the status of this software. * @@ -40,7 +40,7 @@ xmlChar * xmlStrndup(const xmlChar *cur, int len) { xmlChar *ret; - + if ((cur == NULL) || (len < 0)) return(NULL); ret = (xmlChar *) xmlMallocAtomic((len + 1) * sizeof(xmlChar)); if (ret == NULL) { @@ -85,7 +85,7 @@ xmlChar * xmlCharStrndup(const char *cur, int len) { int i; xmlChar *ret; - + if ((cur == NULL) || (len < 0)) return(NULL); ret = (xmlChar *) xmlMallocAtomic((len + 1) * sizeof(xmlChar)); if (ret == NULL) { @@ -170,7 +170,7 @@ xmlStrEqual(const xmlChar *str1, const xmlChar *str2) { * @name: the localname of the QName * @str: the second xmlChar * * - * Check if a QName is Equal to a given string + * Check if a QName is Equal to a given string * * Returns 1 if they are equal, 0 if they are different */ @@ -340,7 +340,7 @@ xmlStrchr(const xmlChar *str, xmlChar val) { const xmlChar * xmlStrstr(const xmlChar *str, const xmlChar *val) { int n; - + if (str == NULL) return(NULL); if (val == NULL) return(NULL); n = xmlStrlen(val); @@ -368,7 +368,7 @@ xmlStrstr(const xmlChar *str, const xmlChar *val) { const xmlChar * xmlStrcasestr(const xmlChar *str, const xmlChar *val) { int n; - + if (str == NULL) return(NULL); if (val == NULL) return(NULL); n = xmlStrlen(val); @@ -396,7 +396,7 @@ xmlStrcasestr(const xmlChar *str, const xmlChar *val) { xmlChar * xmlStrsub(const xmlChar *str, int start, int len) { int i; - + if (str == NULL) return(NULL); if (start < 0) return(NULL); if (len < 0) return(NULL); @@ -519,7 +519,7 @@ xmlStrcat(xmlChar *cur, const xmlChar *add) { const xmlChar *p = add; if (add == NULL) return(cur); - if (cur == NULL) + if (cur == NULL) return(xmlStrdup(add)); while (*p != 0) p++; /* non input consuming */ @@ -537,20 +537,20 @@ xmlStrcat(xmlChar *cur, const xmlChar *add) { * * Returns the number of characters written to @buf or -1 if an error occurs. */ -int XMLCDECL +int XMLCDECL xmlStrPrintf(xmlChar *buf, int len, const xmlChar *msg, ...) { va_list args; int ret; - + if((buf == NULL) || (msg == NULL)) { return(-1); } - + va_start(args, msg); ret = vsnprintf((char *) buf, len, (const char *) msg, args); va_end(args); buf[len - 1] = 0; /* be safe ! */ - + return(ret); } @@ -565,17 +565,17 @@ xmlStrPrintf(xmlChar *buf, int len, const xmlChar *msg, ...) { * * Returns the number of characters written to @buf or -1 if an error occurs. */ -int +int xmlStrVPrintf(xmlChar *buf, int len, const xmlChar *msg, va_list ap) { int ret; - + if((buf == NULL) || (msg == NULL)) { return(-1); } - + ret = vsnprintf((char *) buf, len, (const char *) msg, ap); buf[len - 1] = 0; /* be safe ! */ - + return(ret); } @@ -858,7 +858,7 @@ xmlChar * xmlUTF8Strndup(const xmlChar *utf, int len) { xmlChar *ret; int i; - + if ((utf == NULL) || (len < 0)) return(NULL); i = xmlUTF8Strsize(utf, len); ret = (xmlChar *) xmlMallocAtomic((i + 1) * sizeof(xmlChar)); diff --git a/xmlunicode.c b/xmlunicode.c index 450d0f0..ce6e9a4 100644 --- a/xmlunicode.c +++ b/xmlunicode.c @@ -204,729 +204,729 @@ static xmlUnicodeRange xmlUnicodeCats[] = { {"Zp", xmlUCSIsCatZp}, {"Zs", xmlUCSIsCatZs}}; -static const xmlChSRange xmlCS[] = {{0x0, 0x1f}, {0x7f, 0x9f}, - {0xad, 0xad}, {0x600, 0x603}, {0x6dd, 0x6dd}, {0x70f, 0x70f}, - {0x17b4, 0x17b5}, {0x200b, 0x200f}, {0x202a, 0x202e}, {0x2060, 0x2063}, - {0x206a, 0x206f}, {0xd800, 0xd800}, {0xdb7f, 0xdb80}, {0xdbff, 0xdc00}, +static const xmlChSRange xmlCS[] = {{0x0, 0x1f}, {0x7f, 0x9f}, + {0xad, 0xad}, {0x600, 0x603}, {0x6dd, 0x6dd}, {0x70f, 0x70f}, + {0x17b4, 0x17b5}, {0x200b, 0x200f}, {0x202a, 0x202e}, {0x2060, 0x2063}, + {0x206a, 0x206f}, {0xd800, 0xd800}, {0xdb7f, 0xdb80}, {0xdbff, 0xdc00}, {0xdfff, 0xe000}, {0xf8ff, 0xf8ff}, {0xfeff, 0xfeff}, {0xfff9, 0xfffb} }; -static const xmlChLRange xmlCL[] = {{0x1d173, 0x1d17a}, {0xe0001, 0xe0001}, - {0xe0020, 0xe007f}, {0xf0000, 0xf0000}, {0xffffd, 0xffffd}, +static const xmlChLRange xmlCL[] = {{0x1d173, 0x1d17a}, {0xe0001, 0xe0001}, + {0xe0020, 0xe007f}, {0xf0000, 0xf0000}, {0xffffd, 0xffffd}, {0x100000, 0x100000}, {0x10fffd, 0x10fffd} }; static xmlChRangeGroup xmlCG = {18,7,xmlCS,xmlCL}; -static const xmlChSRange xmlCfS[] = {{0xad, 0xad}, {0x600, 0x603}, - {0x6dd, 0x6dd}, {0x70f, 0x70f}, {0x17b4, 0x17b5}, {0x200b, 0x200f}, - {0x202a, 0x202e}, {0x2060, 0x2063}, {0x206a, 0x206f}, {0xfeff, 0xfeff}, +static const xmlChSRange xmlCfS[] = {{0xad, 0xad}, {0x600, 0x603}, + {0x6dd, 0x6dd}, {0x70f, 0x70f}, {0x17b4, 0x17b5}, {0x200b, 0x200f}, + {0x202a, 0x202e}, {0x2060, 0x2063}, {0x206a, 0x206f}, {0xfeff, 0xfeff}, {0xfff9, 0xfffb} }; -static const xmlChLRange xmlCfL[] = {{0x1d173, 0x1d17a}, {0xe0001, 0xe0001}, +static const xmlChLRange xmlCfL[] = {{0x1d173, 0x1d17a}, {0xe0001, 0xe0001}, {0xe0020, 0xe007f} }; static xmlChRangeGroup xmlCfG = {11,3,xmlCfS,xmlCfL}; -static const xmlChSRange xmlLS[] = {{0x41, 0x5a}, {0x61, 0x7a}, - {0xaa, 0xaa}, {0xb5, 0xb5}, {0xba, 0xba}, {0xc0, 0xd6}, {0xd8, 0xf6}, - {0xf8, 0x236}, {0x250, 0x2c1}, {0x2c6, 0x2d1}, {0x2e0, 0x2e4}, - {0x2ee, 0x2ee}, {0x37a, 0x37a}, {0x386, 0x386}, {0x388, 0x38a}, - {0x38c, 0x38c}, {0x38e, 0x3a1}, {0x3a3, 0x3ce}, {0x3d0, 0x3f5}, - {0x3f7, 0x3fb}, {0x400, 0x481}, {0x48a, 0x4ce}, {0x4d0, 0x4f5}, - {0x4f8, 0x4f9}, {0x500, 0x50f}, {0x531, 0x556}, {0x559, 0x559}, - {0x561, 0x587}, {0x5d0, 0x5ea}, {0x5f0, 0x5f2}, {0x621, 0x63a}, - {0x640, 0x64a}, {0x66e, 0x66f}, {0x671, 0x6d3}, {0x6d5, 0x6d5}, - {0x6e5, 0x6e6}, {0x6ee, 0x6ef}, {0x6fa, 0x6fc}, {0x6ff, 0x6ff}, - {0x710, 0x710}, {0x712, 0x72f}, {0x74d, 0x74f}, {0x780, 0x7a5}, - {0x7b1, 0x7b1}, {0x904, 0x939}, {0x93d, 0x93d}, {0x950, 0x950}, - {0x958, 0x961}, {0x985, 0x98c}, {0x98f, 0x990}, {0x993, 0x9a8}, - {0x9aa, 0x9b0}, {0x9b2, 0x9b2}, {0x9b6, 0x9b9}, {0x9bd, 0x9bd}, - {0x9dc, 0x9dd}, {0x9df, 0x9e1}, {0x9f0, 0x9f1}, {0xa05, 0xa0a}, - {0xa0f, 0xa10}, {0xa13, 0xa28}, {0xa2a, 0xa30}, {0xa32, 0xa33}, - {0xa35, 0xa36}, {0xa38, 0xa39}, {0xa59, 0xa5c}, {0xa5e, 0xa5e}, - {0xa72, 0xa74}, {0xa85, 0xa8d}, {0xa8f, 0xa91}, {0xa93, 0xaa8}, - {0xaaa, 0xab0}, {0xab2, 0xab3}, {0xab5, 0xab9}, {0xabd, 0xabd}, - {0xad0, 0xad0}, {0xae0, 0xae1}, {0xb05, 0xb0c}, {0xb0f, 0xb10}, - {0xb13, 0xb28}, {0xb2a, 0xb30}, {0xb32, 0xb33}, {0xb35, 0xb39}, - {0xb3d, 0xb3d}, {0xb5c, 0xb5d}, {0xb5f, 0xb61}, {0xb71, 0xb71}, - {0xb83, 0xb83}, {0xb85, 0xb8a}, {0xb8e, 0xb90}, {0xb92, 0xb95}, - {0xb99, 0xb9a}, {0xb9c, 0xb9c}, {0xb9e, 0xb9f}, {0xba3, 0xba4}, - {0xba8, 0xbaa}, {0xbae, 0xbb5}, {0xbb7, 0xbb9}, {0xc05, 0xc0c}, - {0xc0e, 0xc10}, {0xc12, 0xc28}, {0xc2a, 0xc33}, {0xc35, 0xc39}, - {0xc60, 0xc61}, {0xc85, 0xc8c}, {0xc8e, 0xc90}, {0xc92, 0xca8}, - {0xcaa, 0xcb3}, {0xcb5, 0xcb9}, {0xcbd, 0xcbd}, {0xcde, 0xcde}, - {0xce0, 0xce1}, {0xd05, 0xd0c}, {0xd0e, 0xd10}, {0xd12, 0xd28}, - {0xd2a, 0xd39}, {0xd60, 0xd61}, {0xd85, 0xd96}, {0xd9a, 0xdb1}, - {0xdb3, 0xdbb}, {0xdbd, 0xdbd}, {0xdc0, 0xdc6}, {0xe01, 0xe30}, - {0xe32, 0xe33}, {0xe40, 0xe46}, {0xe81, 0xe82}, {0xe84, 0xe84}, - {0xe87, 0xe88}, {0xe8a, 0xe8a}, {0xe8d, 0xe8d}, {0xe94, 0xe97}, - {0xe99, 0xe9f}, {0xea1, 0xea3}, {0xea5, 0xea5}, {0xea7, 0xea7}, - {0xeaa, 0xeab}, {0xead, 0xeb0}, {0xeb2, 0xeb3}, {0xebd, 0xebd}, - {0xec0, 0xec4}, {0xec6, 0xec6}, {0xedc, 0xedd}, {0xf00, 0xf00}, - {0xf40, 0xf47}, {0xf49, 0xf6a}, {0xf88, 0xf8b}, {0x1000, 0x1021}, - {0x1023, 0x1027}, {0x1029, 0x102a}, {0x1050, 0x1055}, {0x10a0, 0x10c5}, - {0x10d0, 0x10f8}, {0x1100, 0x1159}, {0x115f, 0x11a2}, {0x11a8, 0x11f9}, - {0x1200, 0x1206}, {0x1208, 0x1246}, {0x1248, 0x1248}, {0x124a, 0x124d}, - {0x1250, 0x1256}, {0x1258, 0x1258}, {0x125a, 0x125d}, {0x1260, 0x1286}, - {0x1288, 0x1288}, {0x128a, 0x128d}, {0x1290, 0x12ae}, {0x12b0, 0x12b0}, - {0x12b2, 0x12b5}, {0x12b8, 0x12be}, {0x12c0, 0x12c0}, {0x12c2, 0x12c5}, - {0x12c8, 0x12ce}, {0x12d0, 0x12d6}, {0x12d8, 0x12ee}, {0x12f0, 0x130e}, - {0x1310, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x131e}, {0x1320, 0x1346}, - {0x1348, 0x135a}, {0x13a0, 0x13f4}, {0x1401, 0x166c}, {0x166f, 0x1676}, - {0x1681, 0x169a}, {0x16a0, 0x16ea}, {0x1700, 0x170c}, {0x170e, 0x1711}, - {0x1720, 0x1731}, {0x1740, 0x1751}, {0x1760, 0x176c}, {0x176e, 0x1770}, - {0x1780, 0x17b3}, {0x17d7, 0x17d7}, {0x17dc, 0x17dc}, {0x1820, 0x1877}, - {0x1880, 0x18a8}, {0x1900, 0x191c}, {0x1950, 0x196d}, {0x1970, 0x1974}, - {0x1d00, 0x1d6b}, {0x1e00, 0x1e9b}, {0x1ea0, 0x1ef9}, {0x1f00, 0x1f15}, - {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57}, - {0x1f59, 0x1f59}, {0x1f5b, 0x1f5b}, {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f7d}, - {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc}, {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4}, - {0x1fc6, 0x1fcc}, {0x1fd0, 0x1fd3}, {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec}, - {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc}, {0x2071, 0x2071}, {0x207f, 0x207f}, - {0x2102, 0x2102}, {0x2107, 0x2107}, {0x210a, 0x2113}, {0x2115, 0x2115}, - {0x2119, 0x211d}, {0x2124, 0x2124}, {0x2126, 0x2126}, {0x2128, 0x2128}, - {0x212a, 0x212d}, {0x212f, 0x2131}, {0x2133, 0x2139}, {0x213d, 0x213f}, - {0x2145, 0x2149}, {0x3005, 0x3006}, {0x3031, 0x3035}, {0x303b, 0x303c}, - {0x3041, 0x3096}, {0x309d, 0x309f}, {0x30a1, 0x30fa}, {0x30fc, 0x30ff}, - {0x3105, 0x312c}, {0x3131, 0x318e}, {0x31a0, 0x31b7}, {0x31f0, 0x31ff}, - {0x3400, 0x3400}, {0x4db5, 0x4db5}, {0x4e00, 0x4e00}, {0x9fa5, 0x9fa5}, - {0xa000, 0xa48c}, {0xac00, 0xac00}, {0xd7a3, 0xd7a3}, {0xf900, 0xfa2d}, - {0xfa30, 0xfa6a}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, {0xfb1d, 0xfb1d}, - {0xfb1f, 0xfb28}, {0xfb2a, 0xfb36}, {0xfb38, 0xfb3c}, {0xfb3e, 0xfb3e}, - {0xfb40, 0xfb41}, {0xfb43, 0xfb44}, {0xfb46, 0xfbb1}, {0xfbd3, 0xfd3d}, - {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7}, {0xfdf0, 0xfdfb}, {0xfe70, 0xfe74}, - {0xfe76, 0xfefc}, {0xff21, 0xff3a}, {0xff41, 0xff5a}, {0xff66, 0xffbe}, +static const xmlChSRange xmlLS[] = {{0x41, 0x5a}, {0x61, 0x7a}, + {0xaa, 0xaa}, {0xb5, 0xb5}, {0xba, 0xba}, {0xc0, 0xd6}, {0xd8, 0xf6}, + {0xf8, 0x236}, {0x250, 0x2c1}, {0x2c6, 0x2d1}, {0x2e0, 0x2e4}, + {0x2ee, 0x2ee}, {0x37a, 0x37a}, {0x386, 0x386}, {0x388, 0x38a}, + {0x38c, 0x38c}, {0x38e, 0x3a1}, {0x3a3, 0x3ce}, {0x3d0, 0x3f5}, + {0x3f7, 0x3fb}, {0x400, 0x481}, {0x48a, 0x4ce}, {0x4d0, 0x4f5}, + {0x4f8, 0x4f9}, {0x500, 0x50f}, {0x531, 0x556}, {0x559, 0x559}, + {0x561, 0x587}, {0x5d0, 0x5ea}, {0x5f0, 0x5f2}, {0x621, 0x63a}, + {0x640, 0x64a}, {0x66e, 0x66f}, {0x671, 0x6d3}, {0x6d5, 0x6d5}, + {0x6e5, 0x6e6}, {0x6ee, 0x6ef}, {0x6fa, 0x6fc}, {0x6ff, 0x6ff}, + {0x710, 0x710}, {0x712, 0x72f}, {0x74d, 0x74f}, {0x780, 0x7a5}, + {0x7b1, 0x7b1}, {0x904, 0x939}, {0x93d, 0x93d}, {0x950, 0x950}, + {0x958, 0x961}, {0x985, 0x98c}, {0x98f, 0x990}, {0x993, 0x9a8}, + {0x9aa, 0x9b0}, {0x9b2, 0x9b2}, {0x9b6, 0x9b9}, {0x9bd, 0x9bd}, + {0x9dc, 0x9dd}, {0x9df, 0x9e1}, {0x9f0, 0x9f1}, {0xa05, 0xa0a}, + {0xa0f, 0xa10}, {0xa13, 0xa28}, {0xa2a, 0xa30}, {0xa32, 0xa33}, + {0xa35, 0xa36}, {0xa38, 0xa39}, {0xa59, 0xa5c}, {0xa5e, 0xa5e}, + {0xa72, 0xa74}, {0xa85, 0xa8d}, {0xa8f, 0xa91}, {0xa93, 0xaa8}, + {0xaaa, 0xab0}, {0xab2, 0xab3}, {0xab5, 0xab9}, {0xabd, 0xabd}, + {0xad0, 0xad0}, {0xae0, 0xae1}, {0xb05, 0xb0c}, {0xb0f, 0xb10}, + {0xb13, 0xb28}, {0xb2a, 0xb30}, {0xb32, 0xb33}, {0xb35, 0xb39}, + {0xb3d, 0xb3d}, {0xb5c, 0xb5d}, {0xb5f, 0xb61}, {0xb71, 0xb71}, + {0xb83, 0xb83}, {0xb85, 0xb8a}, {0xb8e, 0xb90}, {0xb92, 0xb95}, + {0xb99, 0xb9a}, {0xb9c, 0xb9c}, {0xb9e, 0xb9f}, {0xba3, 0xba4}, + {0xba8, 0xbaa}, {0xbae, 0xbb5}, {0xbb7, 0xbb9}, {0xc05, 0xc0c}, + {0xc0e, 0xc10}, {0xc12, 0xc28}, {0xc2a, 0xc33}, {0xc35, 0xc39}, + {0xc60, 0xc61}, {0xc85, 0xc8c}, {0xc8e, 0xc90}, {0xc92, 0xca8}, + {0xcaa, 0xcb3}, {0xcb5, 0xcb9}, {0xcbd, 0xcbd}, {0xcde, 0xcde}, + {0xce0, 0xce1}, {0xd05, 0xd0c}, {0xd0e, 0xd10}, {0xd12, 0xd28}, + {0xd2a, 0xd39}, {0xd60, 0xd61}, {0xd85, 0xd96}, {0xd9a, 0xdb1}, + {0xdb3, 0xdbb}, {0xdbd, 0xdbd}, {0xdc0, 0xdc6}, {0xe01, 0xe30}, + {0xe32, 0xe33}, {0xe40, 0xe46}, {0xe81, 0xe82}, {0xe84, 0xe84}, + {0xe87, 0xe88}, {0xe8a, 0xe8a}, {0xe8d, 0xe8d}, {0xe94, 0xe97}, + {0xe99, 0xe9f}, {0xea1, 0xea3}, {0xea5, 0xea5}, {0xea7, 0xea7}, + {0xeaa, 0xeab}, {0xead, 0xeb0}, {0xeb2, 0xeb3}, {0xebd, 0xebd}, + {0xec0, 0xec4}, {0xec6, 0xec6}, {0xedc, 0xedd}, {0xf00, 0xf00}, + {0xf40, 0xf47}, {0xf49, 0xf6a}, {0xf88, 0xf8b}, {0x1000, 0x1021}, + {0x1023, 0x1027}, {0x1029, 0x102a}, {0x1050, 0x1055}, {0x10a0, 0x10c5}, + {0x10d0, 0x10f8}, {0x1100, 0x1159}, {0x115f, 0x11a2}, {0x11a8, 0x11f9}, + {0x1200, 0x1206}, {0x1208, 0x1246}, {0x1248, 0x1248}, {0x124a, 0x124d}, + {0x1250, 0x1256}, {0x1258, 0x1258}, {0x125a, 0x125d}, {0x1260, 0x1286}, + {0x1288, 0x1288}, {0x128a, 0x128d}, {0x1290, 0x12ae}, {0x12b0, 0x12b0}, + {0x12b2, 0x12b5}, {0x12b8, 0x12be}, {0x12c0, 0x12c0}, {0x12c2, 0x12c5}, + {0x12c8, 0x12ce}, {0x12d0, 0x12d6}, {0x12d8, 0x12ee}, {0x12f0, 0x130e}, + {0x1310, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x131e}, {0x1320, 0x1346}, + {0x1348, 0x135a}, {0x13a0, 0x13f4}, {0x1401, 0x166c}, {0x166f, 0x1676}, + {0x1681, 0x169a}, {0x16a0, 0x16ea}, {0x1700, 0x170c}, {0x170e, 0x1711}, + {0x1720, 0x1731}, {0x1740, 0x1751}, {0x1760, 0x176c}, {0x176e, 0x1770}, + {0x1780, 0x17b3}, {0x17d7, 0x17d7}, {0x17dc, 0x17dc}, {0x1820, 0x1877}, + {0x1880, 0x18a8}, {0x1900, 0x191c}, {0x1950, 0x196d}, {0x1970, 0x1974}, + {0x1d00, 0x1d6b}, {0x1e00, 0x1e9b}, {0x1ea0, 0x1ef9}, {0x1f00, 0x1f15}, + {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57}, + {0x1f59, 0x1f59}, {0x1f5b, 0x1f5b}, {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f7d}, + {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc}, {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4}, + {0x1fc6, 0x1fcc}, {0x1fd0, 0x1fd3}, {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec}, + {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc}, {0x2071, 0x2071}, {0x207f, 0x207f}, + {0x2102, 0x2102}, {0x2107, 0x2107}, {0x210a, 0x2113}, {0x2115, 0x2115}, + {0x2119, 0x211d}, {0x2124, 0x2124}, {0x2126, 0x2126}, {0x2128, 0x2128}, + {0x212a, 0x212d}, {0x212f, 0x2131}, {0x2133, 0x2139}, {0x213d, 0x213f}, + {0x2145, 0x2149}, {0x3005, 0x3006}, {0x3031, 0x3035}, {0x303b, 0x303c}, + {0x3041, 0x3096}, {0x309d, 0x309f}, {0x30a1, 0x30fa}, {0x30fc, 0x30ff}, + {0x3105, 0x312c}, {0x3131, 0x318e}, {0x31a0, 0x31b7}, {0x31f0, 0x31ff}, + {0x3400, 0x3400}, {0x4db5, 0x4db5}, {0x4e00, 0x4e00}, {0x9fa5, 0x9fa5}, + {0xa000, 0xa48c}, {0xac00, 0xac00}, {0xd7a3, 0xd7a3}, {0xf900, 0xfa2d}, + {0xfa30, 0xfa6a}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, {0xfb1d, 0xfb1d}, + {0xfb1f, 0xfb28}, {0xfb2a, 0xfb36}, {0xfb38, 0xfb3c}, {0xfb3e, 0xfb3e}, + {0xfb40, 0xfb41}, {0xfb43, 0xfb44}, {0xfb46, 0xfbb1}, {0xfbd3, 0xfd3d}, + {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7}, {0xfdf0, 0xfdfb}, {0xfe70, 0xfe74}, + {0xfe76, 0xfefc}, {0xff21, 0xff3a}, {0xff41, 0xff5a}, {0xff66, 0xffbe}, {0xffc2, 0xffc7}, {0xffca, 0xffcf}, {0xffd2, 0xffd7}, {0xffda, 0xffdc} }; -static const xmlChLRange xmlLL[] = {{0x10000, 0x1000b}, {0x1000d, 0x10026}, - {0x10028, 0x1003a}, {0x1003c, 0x1003d}, {0x1003f, 0x1004d}, - {0x10050, 0x1005d}, {0x10080, 0x100fa}, {0x10300, 0x1031e}, - {0x10330, 0x10349}, {0x10380, 0x1039d}, {0x10400, 0x1049d}, - {0x10800, 0x10805}, {0x10808, 0x10808}, {0x1080a, 0x10835}, - {0x10837, 0x10838}, {0x1083c, 0x1083c}, {0x1083f, 0x1083f}, - {0x1d400, 0x1d454}, {0x1d456, 0x1d49c}, {0x1d49e, 0x1d49f}, - {0x1d4a2, 0x1d4a2}, {0x1d4a5, 0x1d4a6}, {0x1d4a9, 0x1d4ac}, - {0x1d4ae, 0x1d4b9}, {0x1d4bb, 0x1d4bb}, {0x1d4bd, 0x1d4c3}, - {0x1d4c5, 0x1d505}, {0x1d507, 0x1d50a}, {0x1d50d, 0x1d514}, - {0x1d516, 0x1d51c}, {0x1d51e, 0x1d539}, {0x1d53b, 0x1d53e}, - {0x1d540, 0x1d544}, {0x1d546, 0x1d546}, {0x1d54a, 0x1d550}, - {0x1d552, 0x1d6a3}, {0x1d6a8, 0x1d6c0}, {0x1d6c2, 0x1d6da}, - {0x1d6dc, 0x1d6fa}, {0x1d6fc, 0x1d714}, {0x1d716, 0x1d734}, - {0x1d736, 0x1d74e}, {0x1d750, 0x1d76e}, {0x1d770, 0x1d788}, - {0x1d78a, 0x1d7a8}, {0x1d7aa, 0x1d7c2}, {0x1d7c4, 0x1d7c9}, +static const xmlChLRange xmlLL[] = {{0x10000, 0x1000b}, {0x1000d, 0x10026}, + {0x10028, 0x1003a}, {0x1003c, 0x1003d}, {0x1003f, 0x1004d}, + {0x10050, 0x1005d}, {0x10080, 0x100fa}, {0x10300, 0x1031e}, + {0x10330, 0x10349}, {0x10380, 0x1039d}, {0x10400, 0x1049d}, + {0x10800, 0x10805}, {0x10808, 0x10808}, {0x1080a, 0x10835}, + {0x10837, 0x10838}, {0x1083c, 0x1083c}, {0x1083f, 0x1083f}, + {0x1d400, 0x1d454}, {0x1d456, 0x1d49c}, {0x1d49e, 0x1d49f}, + {0x1d4a2, 0x1d4a2}, {0x1d4a5, 0x1d4a6}, {0x1d4a9, 0x1d4ac}, + {0x1d4ae, 0x1d4b9}, {0x1d4bb, 0x1d4bb}, {0x1d4bd, 0x1d4c3}, + {0x1d4c5, 0x1d505}, {0x1d507, 0x1d50a}, {0x1d50d, 0x1d514}, + {0x1d516, 0x1d51c}, {0x1d51e, 0x1d539}, {0x1d53b, 0x1d53e}, + {0x1d540, 0x1d544}, {0x1d546, 0x1d546}, {0x1d54a, 0x1d550}, + {0x1d552, 0x1d6a3}, {0x1d6a8, 0x1d6c0}, {0x1d6c2, 0x1d6da}, + {0x1d6dc, 0x1d6fa}, {0x1d6fc, 0x1d714}, {0x1d716, 0x1d734}, + {0x1d736, 0x1d74e}, {0x1d750, 0x1d76e}, {0x1d770, 0x1d788}, + {0x1d78a, 0x1d7a8}, {0x1d7aa, 0x1d7c2}, {0x1d7c4, 0x1d7c9}, {0x20000, 0x20000}, {0x2a6d6, 0x2a6d6}, {0x2f800, 0x2fa1d} }; static xmlChRangeGroup xmlLG = {279,50,xmlLS,xmlLL}; -static const xmlChSRange xmlLlS[] = {{0x61, 0x7a}, {0xaa, 0xaa}, - {0xb5, 0xb5}, {0xba, 0xba}, {0xdf, 0xf6}, {0xf8, 0xff}, {0x101, 0x101}, - {0x103, 0x103}, {0x105, 0x105}, {0x107, 0x107}, {0x109, 0x109}, - {0x10b, 0x10b}, {0x10d, 0x10d}, {0x10f, 0x10f}, {0x111, 0x111}, - {0x113, 0x113}, {0x115, 0x115}, {0x117, 0x117}, {0x119, 0x119}, - {0x11b, 0x11b}, {0x11d, 0x11d}, {0x11f, 0x11f}, {0x121, 0x121}, - {0x123, 0x123}, {0x125, 0x125}, {0x127, 0x127}, {0x129, 0x129}, - {0x12b, 0x12b}, {0x12d, 0x12d}, {0x12f, 0x12f}, {0x131, 0x131}, - {0x133, 0x133}, {0x135, 0x135}, {0x137, 0x138}, {0x13a, 0x13a}, - {0x13c, 0x13c}, {0x13e, 0x13e}, {0x140, 0x140}, {0x142, 0x142}, - {0x144, 0x144}, {0x146, 0x146}, {0x148, 0x149}, {0x14b, 0x14b}, - {0x14d, 0x14d}, {0x14f, 0x14f}, {0x151, 0x151}, {0x153, 0x153}, - {0x155, 0x155}, {0x157, 0x157}, {0x159, 0x159}, {0x15b, 0x15b}, - {0x15d, 0x15d}, {0x15f, 0x15f}, {0x161, 0x161}, {0x163, 0x163}, - {0x165, 0x165}, {0x167, 0x167}, {0x169, 0x169}, {0x16b, 0x16b}, - {0x16d, 0x16d}, {0x16f, 0x16f}, {0x171, 0x171}, {0x173, 0x173}, - {0x175, 0x175}, {0x177, 0x177}, {0x17a, 0x17a}, {0x17c, 0x17c}, - {0x17e, 0x180}, {0x183, 0x183}, {0x185, 0x185}, {0x188, 0x188}, - {0x18c, 0x18d}, {0x192, 0x192}, {0x195, 0x195}, {0x199, 0x19b}, - {0x19e, 0x19e}, {0x1a1, 0x1a1}, {0x1a3, 0x1a3}, {0x1a5, 0x1a5}, - {0x1a8, 0x1a8}, {0x1aa, 0x1ab}, {0x1ad, 0x1ad}, {0x1b0, 0x1b0}, - {0x1b4, 0x1b4}, {0x1b6, 0x1b6}, {0x1b9, 0x1ba}, {0x1bd, 0x1bf}, - {0x1c6, 0x1c6}, {0x1c9, 0x1c9}, {0x1cc, 0x1cc}, {0x1ce, 0x1ce}, - {0x1d0, 0x1d0}, {0x1d2, 0x1d2}, {0x1d4, 0x1d4}, {0x1d6, 0x1d6}, - {0x1d8, 0x1d8}, {0x1da, 0x1da}, {0x1dc, 0x1dd}, {0x1df, 0x1df}, - {0x1e1, 0x1e1}, {0x1e3, 0x1e3}, {0x1e5, 0x1e5}, {0x1e7, 0x1e7}, - {0x1e9, 0x1e9}, {0x1eb, 0x1eb}, {0x1ed, 0x1ed}, {0x1ef, 0x1f0}, - {0x1f3, 0x1f3}, {0x1f5, 0x1f5}, {0x1f9, 0x1f9}, {0x1fb, 0x1fb}, - {0x1fd, 0x1fd}, {0x1ff, 0x1ff}, {0x201, 0x201}, {0x203, 0x203}, - {0x205, 0x205}, {0x207, 0x207}, {0x209, 0x209}, {0x20b, 0x20b}, - {0x20d, 0x20d}, {0x20f, 0x20f}, {0x211, 0x211}, {0x213, 0x213}, - {0x215, 0x215}, {0x217, 0x217}, {0x219, 0x219}, {0x21b, 0x21b}, - {0x21d, 0x21d}, {0x21f, 0x21f}, {0x221, 0x221}, {0x223, 0x223}, - {0x225, 0x225}, {0x227, 0x227}, {0x229, 0x229}, {0x22b, 0x22b}, - {0x22d, 0x22d}, {0x22f, 0x22f}, {0x231, 0x231}, {0x233, 0x236}, - {0x250, 0x2af}, {0x390, 0x390}, {0x3ac, 0x3ce}, {0x3d0, 0x3d1}, - {0x3d5, 0x3d7}, {0x3d9, 0x3d9}, {0x3db, 0x3db}, {0x3dd, 0x3dd}, - {0x3df, 0x3df}, {0x3e1, 0x3e1}, {0x3e3, 0x3e3}, {0x3e5, 0x3e5}, - {0x3e7, 0x3e7}, {0x3e9, 0x3e9}, {0x3eb, 0x3eb}, {0x3ed, 0x3ed}, - {0x3ef, 0x3f3}, {0x3f5, 0x3f5}, {0x3f8, 0x3f8}, {0x3fb, 0x3fb}, - {0x430, 0x45f}, {0x461, 0x461}, {0x463, 0x463}, {0x465, 0x465}, - {0x467, 0x467}, {0x469, 0x469}, {0x46b, 0x46b}, {0x46d, 0x46d}, - {0x46f, 0x46f}, {0x471, 0x471}, {0x473, 0x473}, {0x475, 0x475}, - {0x477, 0x477}, {0x479, 0x479}, {0x47b, 0x47b}, {0x47d, 0x47d}, - {0x47f, 0x47f}, {0x481, 0x481}, {0x48b, 0x48b}, {0x48d, 0x48d}, - {0x48f, 0x48f}, {0x491, 0x491}, {0x493, 0x493}, {0x495, 0x495}, - {0x497, 0x497}, {0x499, 0x499}, {0x49b, 0x49b}, {0x49d, 0x49d}, - {0x49f, 0x49f}, {0x4a1, 0x4a1}, {0x4a3, 0x4a3}, {0x4a5, 0x4a5}, - {0x4a7, 0x4a7}, {0x4a9, 0x4a9}, {0x4ab, 0x4ab}, {0x4ad, 0x4ad}, - {0x4af, 0x4af}, {0x4b1, 0x4b1}, {0x4b3, 0x4b3}, {0x4b5, 0x4b5}, - {0x4b7, 0x4b7}, {0x4b9, 0x4b9}, {0x4bb, 0x4bb}, {0x4bd, 0x4bd}, - {0x4bf, 0x4bf}, {0x4c2, 0x4c2}, {0x4c4, 0x4c4}, {0x4c6, 0x4c6}, - {0x4c8, 0x4c8}, {0x4ca, 0x4ca}, {0x4cc, 0x4cc}, {0x4ce, 0x4ce}, - {0x4d1, 0x4d1}, {0x4d3, 0x4d3}, {0x4d5, 0x4d5}, {0x4d7, 0x4d7}, - {0x4d9, 0x4d9}, {0x4db, 0x4db}, {0x4dd, 0x4dd}, {0x4df, 0x4df}, - {0x4e1, 0x4e1}, {0x4e3, 0x4e3}, {0x4e5, 0x4e5}, {0x4e7, 0x4e7}, - {0x4e9, 0x4e9}, {0x4eb, 0x4eb}, {0x4ed, 0x4ed}, {0x4ef, 0x4ef}, - {0x4f1, 0x4f1}, {0x4f3, 0x4f3}, {0x4f5, 0x4f5}, {0x4f9, 0x4f9}, - {0x501, 0x501}, {0x503, 0x503}, {0x505, 0x505}, {0x507, 0x507}, - {0x509, 0x509}, {0x50b, 0x50b}, {0x50d, 0x50d}, {0x50f, 0x50f}, - {0x561, 0x587}, {0x1d00, 0x1d2b}, {0x1d62, 0x1d6b}, {0x1e01, 0x1e01}, - {0x1e03, 0x1e03}, {0x1e05, 0x1e05}, {0x1e07, 0x1e07}, {0x1e09, 0x1e09}, - {0x1e0b, 0x1e0b}, {0x1e0d, 0x1e0d}, {0x1e0f, 0x1e0f}, {0x1e11, 0x1e11}, - {0x1e13, 0x1e13}, {0x1e15, 0x1e15}, {0x1e17, 0x1e17}, {0x1e19, 0x1e19}, - {0x1e1b, 0x1e1b}, {0x1e1d, 0x1e1d}, {0x1e1f, 0x1e1f}, {0x1e21, 0x1e21}, - {0x1e23, 0x1e23}, {0x1e25, 0x1e25}, {0x1e27, 0x1e27}, {0x1e29, 0x1e29}, - {0x1e2b, 0x1e2b}, {0x1e2d, 0x1e2d}, {0x1e2f, 0x1e2f}, {0x1e31, 0x1e31}, - {0x1e33, 0x1e33}, {0x1e35, 0x1e35}, {0x1e37, 0x1e37}, {0x1e39, 0x1e39}, - {0x1e3b, 0x1e3b}, {0x1e3d, 0x1e3d}, {0x1e3f, 0x1e3f}, {0x1e41, 0x1e41}, - {0x1e43, 0x1e43}, {0x1e45, 0x1e45}, {0x1e47, 0x1e47}, {0x1e49, 0x1e49}, - {0x1e4b, 0x1e4b}, {0x1e4d, 0x1e4d}, {0x1e4f, 0x1e4f}, {0x1e51, 0x1e51}, - {0x1e53, 0x1e53}, {0x1e55, 0x1e55}, {0x1e57, 0x1e57}, {0x1e59, 0x1e59}, - {0x1e5b, 0x1e5b}, {0x1e5d, 0x1e5d}, {0x1e5f, 0x1e5f}, {0x1e61, 0x1e61}, - {0x1e63, 0x1e63}, {0x1e65, 0x1e65}, {0x1e67, 0x1e67}, {0x1e69, 0x1e69}, - {0x1e6b, 0x1e6b}, {0x1e6d, 0x1e6d}, {0x1e6f, 0x1e6f}, {0x1e71, 0x1e71}, - {0x1e73, 0x1e73}, {0x1e75, 0x1e75}, {0x1e77, 0x1e77}, {0x1e79, 0x1e79}, - {0x1e7b, 0x1e7b}, {0x1e7d, 0x1e7d}, {0x1e7f, 0x1e7f}, {0x1e81, 0x1e81}, - {0x1e83, 0x1e83}, {0x1e85, 0x1e85}, {0x1e87, 0x1e87}, {0x1e89, 0x1e89}, - {0x1e8b, 0x1e8b}, {0x1e8d, 0x1e8d}, {0x1e8f, 0x1e8f}, {0x1e91, 0x1e91}, - {0x1e93, 0x1e93}, {0x1e95, 0x1e9b}, {0x1ea1, 0x1ea1}, {0x1ea3, 0x1ea3}, - {0x1ea5, 0x1ea5}, {0x1ea7, 0x1ea7}, {0x1ea9, 0x1ea9}, {0x1eab, 0x1eab}, - {0x1ead, 0x1ead}, {0x1eaf, 0x1eaf}, {0x1eb1, 0x1eb1}, {0x1eb3, 0x1eb3}, - {0x1eb5, 0x1eb5}, {0x1eb7, 0x1eb7}, {0x1eb9, 0x1eb9}, {0x1ebb, 0x1ebb}, - {0x1ebd, 0x1ebd}, {0x1ebf, 0x1ebf}, {0x1ec1, 0x1ec1}, {0x1ec3, 0x1ec3}, - {0x1ec5, 0x1ec5}, {0x1ec7, 0x1ec7}, {0x1ec9, 0x1ec9}, {0x1ecb, 0x1ecb}, - {0x1ecd, 0x1ecd}, {0x1ecf, 0x1ecf}, {0x1ed1, 0x1ed1}, {0x1ed3, 0x1ed3}, - {0x1ed5, 0x1ed5}, {0x1ed7, 0x1ed7}, {0x1ed9, 0x1ed9}, {0x1edb, 0x1edb}, - {0x1edd, 0x1edd}, {0x1edf, 0x1edf}, {0x1ee1, 0x1ee1}, {0x1ee3, 0x1ee3}, - {0x1ee5, 0x1ee5}, {0x1ee7, 0x1ee7}, {0x1ee9, 0x1ee9}, {0x1eeb, 0x1eeb}, - {0x1eed, 0x1eed}, {0x1eef, 0x1eef}, {0x1ef1, 0x1ef1}, {0x1ef3, 0x1ef3}, - {0x1ef5, 0x1ef5}, {0x1ef7, 0x1ef7}, {0x1ef9, 0x1ef9}, {0x1f00, 0x1f07}, - {0x1f10, 0x1f15}, {0x1f20, 0x1f27}, {0x1f30, 0x1f37}, {0x1f40, 0x1f45}, - {0x1f50, 0x1f57}, {0x1f60, 0x1f67}, {0x1f70, 0x1f7d}, {0x1f80, 0x1f87}, - {0x1f90, 0x1f97}, {0x1fa0, 0x1fa7}, {0x1fb0, 0x1fb4}, {0x1fb6, 0x1fb7}, - {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4}, {0x1fc6, 0x1fc7}, {0x1fd0, 0x1fd3}, - {0x1fd6, 0x1fd7}, {0x1fe0, 0x1fe7}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ff7}, - {0x2071, 0x2071}, {0x207f, 0x207f}, {0x210a, 0x210a}, {0x210e, 0x210f}, - {0x2113, 0x2113}, {0x212f, 0x212f}, {0x2134, 0x2134}, {0x2139, 0x2139}, - {0x213d, 0x213d}, {0x2146, 0x2149}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, +static const xmlChSRange xmlLlS[] = {{0x61, 0x7a}, {0xaa, 0xaa}, + {0xb5, 0xb5}, {0xba, 0xba}, {0xdf, 0xf6}, {0xf8, 0xff}, {0x101, 0x101}, + {0x103, 0x103}, {0x105, 0x105}, {0x107, 0x107}, {0x109, 0x109}, + {0x10b, 0x10b}, {0x10d, 0x10d}, {0x10f, 0x10f}, {0x111, 0x111}, + {0x113, 0x113}, {0x115, 0x115}, {0x117, 0x117}, {0x119, 0x119}, + {0x11b, 0x11b}, {0x11d, 0x11d}, {0x11f, 0x11f}, {0x121, 0x121}, + {0x123, 0x123}, {0x125, 0x125}, {0x127, 0x127}, {0x129, 0x129}, + {0x12b, 0x12b}, {0x12d, 0x12d}, {0x12f, 0x12f}, {0x131, 0x131}, + {0x133, 0x133}, {0x135, 0x135}, {0x137, 0x138}, {0x13a, 0x13a}, + {0x13c, 0x13c}, {0x13e, 0x13e}, {0x140, 0x140}, {0x142, 0x142}, + {0x144, 0x144}, {0x146, 0x146}, {0x148, 0x149}, {0x14b, 0x14b}, + {0x14d, 0x14d}, {0x14f, 0x14f}, {0x151, 0x151}, {0x153, 0x153}, + {0x155, 0x155}, {0x157, 0x157}, {0x159, 0x159}, {0x15b, 0x15b}, + {0x15d, 0x15d}, {0x15f, 0x15f}, {0x161, 0x161}, {0x163, 0x163}, + {0x165, 0x165}, {0x167, 0x167}, {0x169, 0x169}, {0x16b, 0x16b}, + {0x16d, 0x16d}, {0x16f, 0x16f}, {0x171, 0x171}, {0x173, 0x173}, + {0x175, 0x175}, {0x177, 0x177}, {0x17a, 0x17a}, {0x17c, 0x17c}, + {0x17e, 0x180}, {0x183, 0x183}, {0x185, 0x185}, {0x188, 0x188}, + {0x18c, 0x18d}, {0x192, 0x192}, {0x195, 0x195}, {0x199, 0x19b}, + {0x19e, 0x19e}, {0x1a1, 0x1a1}, {0x1a3, 0x1a3}, {0x1a5, 0x1a5}, + {0x1a8, 0x1a8}, {0x1aa, 0x1ab}, {0x1ad, 0x1ad}, {0x1b0, 0x1b0}, + {0x1b4, 0x1b4}, {0x1b6, 0x1b6}, {0x1b9, 0x1ba}, {0x1bd, 0x1bf}, + {0x1c6, 0x1c6}, {0x1c9, 0x1c9}, {0x1cc, 0x1cc}, {0x1ce, 0x1ce}, + {0x1d0, 0x1d0}, {0x1d2, 0x1d2}, {0x1d4, 0x1d4}, {0x1d6, 0x1d6}, + {0x1d8, 0x1d8}, {0x1da, 0x1da}, {0x1dc, 0x1dd}, {0x1df, 0x1df}, + {0x1e1, 0x1e1}, {0x1e3, 0x1e3}, {0x1e5, 0x1e5}, {0x1e7, 0x1e7}, + {0x1e9, 0x1e9}, {0x1eb, 0x1eb}, {0x1ed, 0x1ed}, {0x1ef, 0x1f0}, + {0x1f3, 0x1f3}, {0x1f5, 0x1f5}, {0x1f9, 0x1f9}, {0x1fb, 0x1fb}, + {0x1fd, 0x1fd}, {0x1ff, 0x1ff}, {0x201, 0x201}, {0x203, 0x203}, + {0x205, 0x205}, {0x207, 0x207}, {0x209, 0x209}, {0x20b, 0x20b}, + {0x20d, 0x20d}, {0x20f, 0x20f}, {0x211, 0x211}, {0x213, 0x213}, + {0x215, 0x215}, {0x217, 0x217}, {0x219, 0x219}, {0x21b, 0x21b}, + {0x21d, 0x21d}, {0x21f, 0x21f}, {0x221, 0x221}, {0x223, 0x223}, + {0x225, 0x225}, {0x227, 0x227}, {0x229, 0x229}, {0x22b, 0x22b}, + {0x22d, 0x22d}, {0x22f, 0x22f}, {0x231, 0x231}, {0x233, 0x236}, + {0x250, 0x2af}, {0x390, 0x390}, {0x3ac, 0x3ce}, {0x3d0, 0x3d1}, + {0x3d5, 0x3d7}, {0x3d9, 0x3d9}, {0x3db, 0x3db}, {0x3dd, 0x3dd}, + {0x3df, 0x3df}, {0x3e1, 0x3e1}, {0x3e3, 0x3e3}, {0x3e5, 0x3e5}, + {0x3e7, 0x3e7}, {0x3e9, 0x3e9}, {0x3eb, 0x3eb}, {0x3ed, 0x3ed}, + {0x3ef, 0x3f3}, {0x3f5, 0x3f5}, {0x3f8, 0x3f8}, {0x3fb, 0x3fb}, + {0x430, 0x45f}, {0x461, 0x461}, {0x463, 0x463}, {0x465, 0x465}, + {0x467, 0x467}, {0x469, 0x469}, {0x46b, 0x46b}, {0x46d, 0x46d}, + {0x46f, 0x46f}, {0x471, 0x471}, {0x473, 0x473}, {0x475, 0x475}, + {0x477, 0x477}, {0x479, 0x479}, {0x47b, 0x47b}, {0x47d, 0x47d}, + {0x47f, 0x47f}, {0x481, 0x481}, {0x48b, 0x48b}, {0x48d, 0x48d}, + {0x48f, 0x48f}, {0x491, 0x491}, {0x493, 0x493}, {0x495, 0x495}, + {0x497, 0x497}, {0x499, 0x499}, {0x49b, 0x49b}, {0x49d, 0x49d}, + {0x49f, 0x49f}, {0x4a1, 0x4a1}, {0x4a3, 0x4a3}, {0x4a5, 0x4a5}, + {0x4a7, 0x4a7}, {0x4a9, 0x4a9}, {0x4ab, 0x4ab}, {0x4ad, 0x4ad}, + {0x4af, 0x4af}, {0x4b1, 0x4b1}, {0x4b3, 0x4b3}, {0x4b5, 0x4b5}, + {0x4b7, 0x4b7}, {0x4b9, 0x4b9}, {0x4bb, 0x4bb}, {0x4bd, 0x4bd}, + {0x4bf, 0x4bf}, {0x4c2, 0x4c2}, {0x4c4, 0x4c4}, {0x4c6, 0x4c6}, + {0x4c8, 0x4c8}, {0x4ca, 0x4ca}, {0x4cc, 0x4cc}, {0x4ce, 0x4ce}, + {0x4d1, 0x4d1}, {0x4d3, 0x4d3}, {0x4d5, 0x4d5}, {0x4d7, 0x4d7}, + {0x4d9, 0x4d9}, {0x4db, 0x4db}, {0x4dd, 0x4dd}, {0x4df, 0x4df}, + {0x4e1, 0x4e1}, {0x4e3, 0x4e3}, {0x4e5, 0x4e5}, {0x4e7, 0x4e7}, + {0x4e9, 0x4e9}, {0x4eb, 0x4eb}, {0x4ed, 0x4ed}, {0x4ef, 0x4ef}, + {0x4f1, 0x4f1}, {0x4f3, 0x4f3}, {0x4f5, 0x4f5}, {0x4f9, 0x4f9}, + {0x501, 0x501}, {0x503, 0x503}, {0x505, 0x505}, {0x507, 0x507}, + {0x509, 0x509}, {0x50b, 0x50b}, {0x50d, 0x50d}, {0x50f, 0x50f}, + {0x561, 0x587}, {0x1d00, 0x1d2b}, {0x1d62, 0x1d6b}, {0x1e01, 0x1e01}, + {0x1e03, 0x1e03}, {0x1e05, 0x1e05}, {0x1e07, 0x1e07}, {0x1e09, 0x1e09}, + {0x1e0b, 0x1e0b}, {0x1e0d, 0x1e0d}, {0x1e0f, 0x1e0f}, {0x1e11, 0x1e11}, + {0x1e13, 0x1e13}, {0x1e15, 0x1e15}, {0x1e17, 0x1e17}, {0x1e19, 0x1e19}, + {0x1e1b, 0x1e1b}, {0x1e1d, 0x1e1d}, {0x1e1f, 0x1e1f}, {0x1e21, 0x1e21}, + {0x1e23, 0x1e23}, {0x1e25, 0x1e25}, {0x1e27, 0x1e27}, {0x1e29, 0x1e29}, + {0x1e2b, 0x1e2b}, {0x1e2d, 0x1e2d}, {0x1e2f, 0x1e2f}, {0x1e31, 0x1e31}, + {0x1e33, 0x1e33}, {0x1e35, 0x1e35}, {0x1e37, 0x1e37}, {0x1e39, 0x1e39}, + {0x1e3b, 0x1e3b}, {0x1e3d, 0x1e3d}, {0x1e3f, 0x1e3f}, {0x1e41, 0x1e41}, + {0x1e43, 0x1e43}, {0x1e45, 0x1e45}, {0x1e47, 0x1e47}, {0x1e49, 0x1e49}, + {0x1e4b, 0x1e4b}, {0x1e4d, 0x1e4d}, {0x1e4f, 0x1e4f}, {0x1e51, 0x1e51}, + {0x1e53, 0x1e53}, {0x1e55, 0x1e55}, {0x1e57, 0x1e57}, {0x1e59, 0x1e59}, + {0x1e5b, 0x1e5b}, {0x1e5d, 0x1e5d}, {0x1e5f, 0x1e5f}, {0x1e61, 0x1e61}, + {0x1e63, 0x1e63}, {0x1e65, 0x1e65}, {0x1e67, 0x1e67}, {0x1e69, 0x1e69}, + {0x1e6b, 0x1e6b}, {0x1e6d, 0x1e6d}, {0x1e6f, 0x1e6f}, {0x1e71, 0x1e71}, + {0x1e73, 0x1e73}, {0x1e75, 0x1e75}, {0x1e77, 0x1e77}, {0x1e79, 0x1e79}, + {0x1e7b, 0x1e7b}, {0x1e7d, 0x1e7d}, {0x1e7f, 0x1e7f}, {0x1e81, 0x1e81}, + {0x1e83, 0x1e83}, {0x1e85, 0x1e85}, {0x1e87, 0x1e87}, {0x1e89, 0x1e89}, + {0x1e8b, 0x1e8b}, {0x1e8d, 0x1e8d}, {0x1e8f, 0x1e8f}, {0x1e91, 0x1e91}, + {0x1e93, 0x1e93}, {0x1e95, 0x1e9b}, {0x1ea1, 0x1ea1}, {0x1ea3, 0x1ea3}, + {0x1ea5, 0x1ea5}, {0x1ea7, 0x1ea7}, {0x1ea9, 0x1ea9}, {0x1eab, 0x1eab}, + {0x1ead, 0x1ead}, {0x1eaf, 0x1eaf}, {0x1eb1, 0x1eb1}, {0x1eb3, 0x1eb3}, + {0x1eb5, 0x1eb5}, {0x1eb7, 0x1eb7}, {0x1eb9, 0x1eb9}, {0x1ebb, 0x1ebb}, + {0x1ebd, 0x1ebd}, {0x1ebf, 0x1ebf}, {0x1ec1, 0x1ec1}, {0x1ec3, 0x1ec3}, + {0x1ec5, 0x1ec5}, {0x1ec7, 0x1ec7}, {0x1ec9, 0x1ec9}, {0x1ecb, 0x1ecb}, + {0x1ecd, 0x1ecd}, {0x1ecf, 0x1ecf}, {0x1ed1, 0x1ed1}, {0x1ed3, 0x1ed3}, + {0x1ed5, 0x1ed5}, {0x1ed7, 0x1ed7}, {0x1ed9, 0x1ed9}, {0x1edb, 0x1edb}, + {0x1edd, 0x1edd}, {0x1edf, 0x1edf}, {0x1ee1, 0x1ee1}, {0x1ee3, 0x1ee3}, + {0x1ee5, 0x1ee5}, {0x1ee7, 0x1ee7}, {0x1ee9, 0x1ee9}, {0x1eeb, 0x1eeb}, + {0x1eed, 0x1eed}, {0x1eef, 0x1eef}, {0x1ef1, 0x1ef1}, {0x1ef3, 0x1ef3}, + {0x1ef5, 0x1ef5}, {0x1ef7, 0x1ef7}, {0x1ef9, 0x1ef9}, {0x1f00, 0x1f07}, + {0x1f10, 0x1f15}, {0x1f20, 0x1f27}, {0x1f30, 0x1f37}, {0x1f40, 0x1f45}, + {0x1f50, 0x1f57}, {0x1f60, 0x1f67}, {0x1f70, 0x1f7d}, {0x1f80, 0x1f87}, + {0x1f90, 0x1f97}, {0x1fa0, 0x1fa7}, {0x1fb0, 0x1fb4}, {0x1fb6, 0x1fb7}, + {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4}, {0x1fc6, 0x1fc7}, {0x1fd0, 0x1fd3}, + {0x1fd6, 0x1fd7}, {0x1fe0, 0x1fe7}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ff7}, + {0x2071, 0x2071}, {0x207f, 0x207f}, {0x210a, 0x210a}, {0x210e, 0x210f}, + {0x2113, 0x2113}, {0x212f, 0x212f}, {0x2134, 0x2134}, {0x2139, 0x2139}, + {0x213d, 0x213d}, {0x2146, 0x2149}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, {0xff41, 0xff5a} }; -static const xmlChLRange xmlLlL[] = {{0x10428, 0x1044f}, {0x1d41a, 0x1d433}, - {0x1d44e, 0x1d454}, {0x1d456, 0x1d467}, {0x1d482, 0x1d49b}, - {0x1d4b6, 0x1d4b9}, {0x1d4bb, 0x1d4bb}, {0x1d4bd, 0x1d4c3}, - {0x1d4c5, 0x1d4cf}, {0x1d4ea, 0x1d503}, {0x1d51e, 0x1d537}, - {0x1d552, 0x1d56b}, {0x1d586, 0x1d59f}, {0x1d5ba, 0x1d5d3}, - {0x1d5ee, 0x1d607}, {0x1d622, 0x1d63b}, {0x1d656, 0x1d66f}, - {0x1d68a, 0x1d6a3}, {0x1d6c2, 0x1d6da}, {0x1d6dc, 0x1d6e1}, - {0x1d6fc, 0x1d714}, {0x1d716, 0x1d71b}, {0x1d736, 0x1d74e}, - {0x1d750, 0x1d755}, {0x1d770, 0x1d788}, {0x1d78a, 0x1d78f}, +static const xmlChLRange xmlLlL[] = {{0x10428, 0x1044f}, {0x1d41a, 0x1d433}, + {0x1d44e, 0x1d454}, {0x1d456, 0x1d467}, {0x1d482, 0x1d49b}, + {0x1d4b6, 0x1d4b9}, {0x1d4bb, 0x1d4bb}, {0x1d4bd, 0x1d4c3}, + {0x1d4c5, 0x1d4cf}, {0x1d4ea, 0x1d503}, {0x1d51e, 0x1d537}, + {0x1d552, 0x1d56b}, {0x1d586, 0x1d59f}, {0x1d5ba, 0x1d5d3}, + {0x1d5ee, 0x1d607}, {0x1d622, 0x1d63b}, {0x1d656, 0x1d66f}, + {0x1d68a, 0x1d6a3}, {0x1d6c2, 0x1d6da}, {0x1d6dc, 0x1d6e1}, + {0x1d6fc, 0x1d714}, {0x1d716, 0x1d71b}, {0x1d736, 0x1d74e}, + {0x1d750, 0x1d755}, {0x1d770, 0x1d788}, {0x1d78a, 0x1d78f}, {0x1d7aa, 0x1d7c2}, {0x1d7c4, 0x1d7c9} }; static xmlChRangeGroup xmlLlG = {396,28,xmlLlS,xmlLlL}; -static const xmlChSRange xmlLmS[] = {{0x2b0, 0x2c1}, {0x2c6, 0x2d1}, - {0x2e0, 0x2e4}, {0x2ee, 0x2ee}, {0x37a, 0x37a}, {0x559, 0x559}, - {0x640, 0x640}, {0x6e5, 0x6e6}, {0xe46, 0xe46}, {0xec6, 0xec6}, - {0x17d7, 0x17d7}, {0x1843, 0x1843}, {0x1d2c, 0x1d61}, {0x3005, 0x3005}, - {0x3031, 0x3035}, {0x303b, 0x303b}, {0x309d, 0x309e}, {0x30fc, 0x30fe}, +static const xmlChSRange xmlLmS[] = {{0x2b0, 0x2c1}, {0x2c6, 0x2d1}, + {0x2e0, 0x2e4}, {0x2ee, 0x2ee}, {0x37a, 0x37a}, {0x559, 0x559}, + {0x640, 0x640}, {0x6e5, 0x6e6}, {0xe46, 0xe46}, {0xec6, 0xec6}, + {0x17d7, 0x17d7}, {0x1843, 0x1843}, {0x1d2c, 0x1d61}, {0x3005, 0x3005}, + {0x3031, 0x3035}, {0x303b, 0x303b}, {0x309d, 0x309e}, {0x30fc, 0x30fe}, {0xff70, 0xff70}, {0xff9e, 0xff9f} }; static xmlChRangeGroup xmlLmG = {20,0,xmlLmS,NULL}; -static const xmlChSRange xmlLoS[] = {{0x1bb, 0x1bb}, {0x1c0, 0x1c3}, - {0x5d0, 0x5ea}, {0x5f0, 0x5f2}, {0x621, 0x63a}, {0x641, 0x64a}, - {0x66e, 0x66f}, {0x671, 0x6d3}, {0x6d5, 0x6d5}, {0x6ee, 0x6ef}, - {0x6fa, 0x6fc}, {0x6ff, 0x6ff}, {0x710, 0x710}, {0x712, 0x72f}, - {0x74d, 0x74f}, {0x780, 0x7a5}, {0x7b1, 0x7b1}, {0x904, 0x939}, - {0x93d, 0x93d}, {0x950, 0x950}, {0x958, 0x961}, {0x985, 0x98c}, - {0x98f, 0x990}, {0x993, 0x9a8}, {0x9aa, 0x9b0}, {0x9b2, 0x9b2}, - {0x9b6, 0x9b9}, {0x9bd, 0x9bd}, {0x9dc, 0x9dd}, {0x9df, 0x9e1}, - {0x9f0, 0x9f1}, {0xa05, 0xa0a}, {0xa0f, 0xa10}, {0xa13, 0xa28}, - {0xa2a, 0xa30}, {0xa32, 0xa33}, {0xa35, 0xa36}, {0xa38, 0xa39}, - {0xa59, 0xa5c}, {0xa5e, 0xa5e}, {0xa72, 0xa74}, {0xa85, 0xa8d}, - {0xa8f, 0xa91}, {0xa93, 0xaa8}, {0xaaa, 0xab0}, {0xab2, 0xab3}, - {0xab5, 0xab9}, {0xabd, 0xabd}, {0xad0, 0xad0}, {0xae0, 0xae1}, - {0xb05, 0xb0c}, {0xb0f, 0xb10}, {0xb13, 0xb28}, {0xb2a, 0xb30}, - {0xb32, 0xb33}, {0xb35, 0xb39}, {0xb3d, 0xb3d}, {0xb5c, 0xb5d}, - {0xb5f, 0xb61}, {0xb71, 0xb71}, {0xb83, 0xb83}, {0xb85, 0xb8a}, - {0xb8e, 0xb90}, {0xb92, 0xb95}, {0xb99, 0xb9a}, {0xb9c, 0xb9c}, - {0xb9e, 0xb9f}, {0xba3, 0xba4}, {0xba8, 0xbaa}, {0xbae, 0xbb5}, - {0xbb7, 0xbb9}, {0xc05, 0xc0c}, {0xc0e, 0xc10}, {0xc12, 0xc28}, - {0xc2a, 0xc33}, {0xc35, 0xc39}, {0xc60, 0xc61}, {0xc85, 0xc8c}, - {0xc8e, 0xc90}, {0xc92, 0xca8}, {0xcaa, 0xcb3}, {0xcb5, 0xcb9}, - {0xcbd, 0xcbd}, {0xcde, 0xcde}, {0xce0, 0xce1}, {0xd05, 0xd0c}, - {0xd0e, 0xd10}, {0xd12, 0xd28}, {0xd2a, 0xd39}, {0xd60, 0xd61}, - {0xd85, 0xd96}, {0xd9a, 0xdb1}, {0xdb3, 0xdbb}, {0xdbd, 0xdbd}, - {0xdc0, 0xdc6}, {0xe01, 0xe30}, {0xe32, 0xe33}, {0xe40, 0xe45}, - {0xe81, 0xe82}, {0xe84, 0xe84}, {0xe87, 0xe88}, {0xe8a, 0xe8a}, - {0xe8d, 0xe8d}, {0xe94, 0xe97}, {0xe99, 0xe9f}, {0xea1, 0xea3}, - {0xea5, 0xea5}, {0xea7, 0xea7}, {0xeaa, 0xeab}, {0xead, 0xeb0}, - {0xeb2, 0xeb3}, {0xebd, 0xebd}, {0xec0, 0xec4}, {0xedc, 0xedd}, - {0xf00, 0xf00}, {0xf40, 0xf47}, {0xf49, 0xf6a}, {0xf88, 0xf8b}, - {0x1000, 0x1021}, {0x1023, 0x1027}, {0x1029, 0x102a}, {0x1050, 0x1055}, - {0x10d0, 0x10f8}, {0x1100, 0x1159}, {0x115f, 0x11a2}, {0x11a8, 0x11f9}, - {0x1200, 0x1206}, {0x1208, 0x1246}, {0x1248, 0x1248}, {0x124a, 0x124d}, - {0x1250, 0x1256}, {0x1258, 0x1258}, {0x125a, 0x125d}, {0x1260, 0x1286}, - {0x1288, 0x1288}, {0x128a, 0x128d}, {0x1290, 0x12ae}, {0x12b0, 0x12b0}, - {0x12b2, 0x12b5}, {0x12b8, 0x12be}, {0x12c0, 0x12c0}, {0x12c2, 0x12c5}, - {0x12c8, 0x12ce}, {0x12d0, 0x12d6}, {0x12d8, 0x12ee}, {0x12f0, 0x130e}, - {0x1310, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x131e}, {0x1320, 0x1346}, - {0x1348, 0x135a}, {0x13a0, 0x13f4}, {0x1401, 0x166c}, {0x166f, 0x1676}, - {0x1681, 0x169a}, {0x16a0, 0x16ea}, {0x1700, 0x170c}, {0x170e, 0x1711}, - {0x1720, 0x1731}, {0x1740, 0x1751}, {0x1760, 0x176c}, {0x176e, 0x1770}, - {0x1780, 0x17b3}, {0x17dc, 0x17dc}, {0x1820, 0x1842}, {0x1844, 0x1877}, - {0x1880, 0x18a8}, {0x1900, 0x191c}, {0x1950, 0x196d}, {0x1970, 0x1974}, - {0x2135, 0x2138}, {0x3006, 0x3006}, {0x303c, 0x303c}, {0x3041, 0x3096}, - {0x309f, 0x309f}, {0x30a1, 0x30fa}, {0x30ff, 0x30ff}, {0x3105, 0x312c}, - {0x3131, 0x318e}, {0x31a0, 0x31b7}, {0x31f0, 0x31ff}, {0x3400, 0x3400}, - {0x4db5, 0x4db5}, {0x4e00, 0x4e00}, {0x9fa5, 0x9fa5}, {0xa000, 0xa48c}, - {0xac00, 0xac00}, {0xd7a3, 0xd7a3}, {0xf900, 0xfa2d}, {0xfa30, 0xfa6a}, - {0xfb1d, 0xfb1d}, {0xfb1f, 0xfb28}, {0xfb2a, 0xfb36}, {0xfb38, 0xfb3c}, - {0xfb3e, 0xfb3e}, {0xfb40, 0xfb41}, {0xfb43, 0xfb44}, {0xfb46, 0xfbb1}, - {0xfbd3, 0xfd3d}, {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7}, {0xfdf0, 0xfdfb}, - {0xfe70, 0xfe74}, {0xfe76, 0xfefc}, {0xff66, 0xff6f}, {0xff71, 0xff9d}, - {0xffa0, 0xffbe}, {0xffc2, 0xffc7}, {0xffca, 0xffcf}, {0xffd2, 0xffd7}, +static const xmlChSRange xmlLoS[] = {{0x1bb, 0x1bb}, {0x1c0, 0x1c3}, + {0x5d0, 0x5ea}, {0x5f0, 0x5f2}, {0x621, 0x63a}, {0x641, 0x64a}, + {0x66e, 0x66f}, {0x671, 0x6d3}, {0x6d5, 0x6d5}, {0x6ee, 0x6ef}, + {0x6fa, 0x6fc}, {0x6ff, 0x6ff}, {0x710, 0x710}, {0x712, 0x72f}, + {0x74d, 0x74f}, {0x780, 0x7a5}, {0x7b1, 0x7b1}, {0x904, 0x939}, + {0x93d, 0x93d}, {0x950, 0x950}, {0x958, 0x961}, {0x985, 0x98c}, + {0x98f, 0x990}, {0x993, 0x9a8}, {0x9aa, 0x9b0}, {0x9b2, 0x9b2}, + {0x9b6, 0x9b9}, {0x9bd, 0x9bd}, {0x9dc, 0x9dd}, {0x9df, 0x9e1}, + {0x9f0, 0x9f1}, {0xa05, 0xa0a}, {0xa0f, 0xa10}, {0xa13, 0xa28}, + {0xa2a, 0xa30}, {0xa32, 0xa33}, {0xa35, 0xa36}, {0xa38, 0xa39}, + {0xa59, 0xa5c}, {0xa5e, 0xa5e}, {0xa72, 0xa74}, {0xa85, 0xa8d}, + {0xa8f, 0xa91}, {0xa93, 0xaa8}, {0xaaa, 0xab0}, {0xab2, 0xab3}, + {0xab5, 0xab9}, {0xabd, 0xabd}, {0xad0, 0xad0}, {0xae0, 0xae1}, + {0xb05, 0xb0c}, {0xb0f, 0xb10}, {0xb13, 0xb28}, {0xb2a, 0xb30}, + {0xb32, 0xb33}, {0xb35, 0xb39}, {0xb3d, 0xb3d}, {0xb5c, 0xb5d}, + {0xb5f, 0xb61}, {0xb71, 0xb71}, {0xb83, 0xb83}, {0xb85, 0xb8a}, + {0xb8e, 0xb90}, {0xb92, 0xb95}, {0xb99, 0xb9a}, {0xb9c, 0xb9c}, + {0xb9e, 0xb9f}, {0xba3, 0xba4}, {0xba8, 0xbaa}, {0xbae, 0xbb5}, + {0xbb7, 0xbb9}, {0xc05, 0xc0c}, {0xc0e, 0xc10}, {0xc12, 0xc28}, + {0xc2a, 0xc33}, {0xc35, 0xc39}, {0xc60, 0xc61}, {0xc85, 0xc8c}, + {0xc8e, 0xc90}, {0xc92, 0xca8}, {0xcaa, 0xcb3}, {0xcb5, 0xcb9}, + {0xcbd, 0xcbd}, {0xcde, 0xcde}, {0xce0, 0xce1}, {0xd05, 0xd0c}, + {0xd0e, 0xd10}, {0xd12, 0xd28}, {0xd2a, 0xd39}, {0xd60, 0xd61}, + {0xd85, 0xd96}, {0xd9a, 0xdb1}, {0xdb3, 0xdbb}, {0xdbd, 0xdbd}, + {0xdc0, 0xdc6}, {0xe01, 0xe30}, {0xe32, 0xe33}, {0xe40, 0xe45}, + {0xe81, 0xe82}, {0xe84, 0xe84}, {0xe87, 0xe88}, {0xe8a, 0xe8a}, + {0xe8d, 0xe8d}, {0xe94, 0xe97}, {0xe99, 0xe9f}, {0xea1, 0xea3}, + {0xea5, 0xea5}, {0xea7, 0xea7}, {0xeaa, 0xeab}, {0xead, 0xeb0}, + {0xeb2, 0xeb3}, {0xebd, 0xebd}, {0xec0, 0xec4}, {0xedc, 0xedd}, + {0xf00, 0xf00}, {0xf40, 0xf47}, {0xf49, 0xf6a}, {0xf88, 0xf8b}, + {0x1000, 0x1021}, {0x1023, 0x1027}, {0x1029, 0x102a}, {0x1050, 0x1055}, + {0x10d0, 0x10f8}, {0x1100, 0x1159}, {0x115f, 0x11a2}, {0x11a8, 0x11f9}, + {0x1200, 0x1206}, {0x1208, 0x1246}, {0x1248, 0x1248}, {0x124a, 0x124d}, + {0x1250, 0x1256}, {0x1258, 0x1258}, {0x125a, 0x125d}, {0x1260, 0x1286}, + {0x1288, 0x1288}, {0x128a, 0x128d}, {0x1290, 0x12ae}, {0x12b0, 0x12b0}, + {0x12b2, 0x12b5}, {0x12b8, 0x12be}, {0x12c0, 0x12c0}, {0x12c2, 0x12c5}, + {0x12c8, 0x12ce}, {0x12d0, 0x12d6}, {0x12d8, 0x12ee}, {0x12f0, 0x130e}, + {0x1310, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x131e}, {0x1320, 0x1346}, + {0x1348, 0x135a}, {0x13a0, 0x13f4}, {0x1401, 0x166c}, {0x166f, 0x1676}, + {0x1681, 0x169a}, {0x16a0, 0x16ea}, {0x1700, 0x170c}, {0x170e, 0x1711}, + {0x1720, 0x1731}, {0x1740, 0x1751}, {0x1760, 0x176c}, {0x176e, 0x1770}, + {0x1780, 0x17b3}, {0x17dc, 0x17dc}, {0x1820, 0x1842}, {0x1844, 0x1877}, + {0x1880, 0x18a8}, {0x1900, 0x191c}, {0x1950, 0x196d}, {0x1970, 0x1974}, + {0x2135, 0x2138}, {0x3006, 0x3006}, {0x303c, 0x303c}, {0x3041, 0x3096}, + {0x309f, 0x309f}, {0x30a1, 0x30fa}, {0x30ff, 0x30ff}, {0x3105, 0x312c}, + {0x3131, 0x318e}, {0x31a0, 0x31b7}, {0x31f0, 0x31ff}, {0x3400, 0x3400}, + {0x4db5, 0x4db5}, {0x4e00, 0x4e00}, {0x9fa5, 0x9fa5}, {0xa000, 0xa48c}, + {0xac00, 0xac00}, {0xd7a3, 0xd7a3}, {0xf900, 0xfa2d}, {0xfa30, 0xfa6a}, + {0xfb1d, 0xfb1d}, {0xfb1f, 0xfb28}, {0xfb2a, 0xfb36}, {0xfb38, 0xfb3c}, + {0xfb3e, 0xfb3e}, {0xfb40, 0xfb41}, {0xfb43, 0xfb44}, {0xfb46, 0xfbb1}, + {0xfbd3, 0xfd3d}, {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7}, {0xfdf0, 0xfdfb}, + {0xfe70, 0xfe74}, {0xfe76, 0xfefc}, {0xff66, 0xff6f}, {0xff71, 0xff9d}, + {0xffa0, 0xffbe}, {0xffc2, 0xffc7}, {0xffca, 0xffcf}, {0xffd2, 0xffd7}, {0xffda, 0xffdc} }; -static const xmlChLRange xmlLoL[] = {{0x10000, 0x1000b}, {0x1000d, 0x10026}, - {0x10028, 0x1003a}, {0x1003c, 0x1003d}, {0x1003f, 0x1004d}, - {0x10050, 0x1005d}, {0x10080, 0x100fa}, {0x10300, 0x1031e}, - {0x10330, 0x10349}, {0x10380, 0x1039d}, {0x10450, 0x1049d}, - {0x10800, 0x10805}, {0x10808, 0x10808}, {0x1080a, 0x10835}, - {0x10837, 0x10838}, {0x1083c, 0x1083c}, {0x1083f, 0x1083f}, +static const xmlChLRange xmlLoL[] = {{0x10000, 0x1000b}, {0x1000d, 0x10026}, + {0x10028, 0x1003a}, {0x1003c, 0x1003d}, {0x1003f, 0x1004d}, + {0x10050, 0x1005d}, {0x10080, 0x100fa}, {0x10300, 0x1031e}, + {0x10330, 0x10349}, {0x10380, 0x1039d}, {0x10450, 0x1049d}, + {0x10800, 0x10805}, {0x10808, 0x10808}, {0x1080a, 0x10835}, + {0x10837, 0x10838}, {0x1083c, 0x1083c}, {0x1083f, 0x1083f}, {0x20000, 0x20000}, {0x2a6d6, 0x2a6d6}, {0x2f800, 0x2fa1d} }; static xmlChRangeGroup xmlLoG = {211,20,xmlLoS,xmlLoL}; -static const xmlChSRange xmlLtS[] = {{0x1c5, 0x1c5}, {0x1c8, 0x1c8}, - {0x1cb, 0x1cb}, {0x1f2, 0x1f2}, {0x1f88, 0x1f8f}, {0x1f98, 0x1f9f}, +static const xmlChSRange xmlLtS[] = {{0x1c5, 0x1c5}, {0x1c8, 0x1c8}, + {0x1cb, 0x1cb}, {0x1f2, 0x1f2}, {0x1f88, 0x1f8f}, {0x1f98, 0x1f9f}, {0x1fa8, 0x1faf}, {0x1fbc, 0x1fbc}, {0x1fcc, 0x1fcc}, {0x1ffc, 0x1ffc} }; static xmlChRangeGroup xmlLtG = {10,0,xmlLtS,NULL}; -static const xmlChSRange xmlLuS[] = {{0x41, 0x5a}, {0xc0, 0xd6}, - {0xd8, 0xde}, {0x100, 0x100}, {0x102, 0x102}, {0x104, 0x104}, - {0x106, 0x106}, {0x108, 0x108}, {0x10a, 0x10a}, {0x10c, 0x10c}, - {0x10e, 0x10e}, {0x110, 0x110}, {0x112, 0x112}, {0x114, 0x114}, - {0x116, 0x116}, {0x118, 0x118}, {0x11a, 0x11a}, {0x11c, 0x11c}, - {0x11e, 0x11e}, {0x120, 0x120}, {0x122, 0x122}, {0x124, 0x124}, - {0x126, 0x126}, {0x128, 0x128}, {0x12a, 0x12a}, {0x12c, 0x12c}, - {0x12e, 0x12e}, {0x130, 0x130}, {0x132, 0x132}, {0x134, 0x134}, - {0x136, 0x136}, {0x139, 0x139}, {0x13b, 0x13b}, {0x13d, 0x13d}, - {0x13f, 0x13f}, {0x141, 0x141}, {0x143, 0x143}, {0x145, 0x145}, - {0x147, 0x147}, {0x14a, 0x14a}, {0x14c, 0x14c}, {0x14e, 0x14e}, - {0x150, 0x150}, {0x152, 0x152}, {0x154, 0x154}, {0x156, 0x156}, - {0x158, 0x158}, {0x15a, 0x15a}, {0x15c, 0x15c}, {0x15e, 0x15e}, - {0x160, 0x160}, {0x162, 0x162}, {0x164, 0x164}, {0x166, 0x166}, - {0x168, 0x168}, {0x16a, 0x16a}, {0x16c, 0x16c}, {0x16e, 0x16e}, - {0x170, 0x170}, {0x172, 0x172}, {0x174, 0x174}, {0x176, 0x176}, - {0x178, 0x179}, {0x17b, 0x17b}, {0x17d, 0x17d}, {0x181, 0x182}, - {0x184, 0x184}, {0x186, 0x187}, {0x189, 0x18b}, {0x18e, 0x191}, - {0x193, 0x194}, {0x196, 0x198}, {0x19c, 0x19d}, {0x19f, 0x1a0}, - {0x1a2, 0x1a2}, {0x1a4, 0x1a4}, {0x1a6, 0x1a7}, {0x1a9, 0x1a9}, - {0x1ac, 0x1ac}, {0x1ae, 0x1af}, {0x1b1, 0x1b3}, {0x1b5, 0x1b5}, - {0x1b7, 0x1b8}, {0x1bc, 0x1bc}, {0x1c4, 0x1c4}, {0x1c7, 0x1c7}, - {0x1ca, 0x1ca}, {0x1cd, 0x1cd}, {0x1cf, 0x1cf}, {0x1d1, 0x1d1}, - {0x1d3, 0x1d3}, {0x1d5, 0x1d5}, {0x1d7, 0x1d7}, {0x1d9, 0x1d9}, - {0x1db, 0x1db}, {0x1de, 0x1de}, {0x1e0, 0x1e0}, {0x1e2, 0x1e2}, - {0x1e4, 0x1e4}, {0x1e6, 0x1e6}, {0x1e8, 0x1e8}, {0x1ea, 0x1ea}, - {0x1ec, 0x1ec}, {0x1ee, 0x1ee}, {0x1f1, 0x1f1}, {0x1f4, 0x1f4}, - {0x1f6, 0x1f8}, {0x1fa, 0x1fa}, {0x1fc, 0x1fc}, {0x1fe, 0x1fe}, - {0x200, 0x200}, {0x202, 0x202}, {0x204, 0x204}, {0x206, 0x206}, - {0x208, 0x208}, {0x20a, 0x20a}, {0x20c, 0x20c}, {0x20e, 0x20e}, - {0x210, 0x210}, {0x212, 0x212}, {0x214, 0x214}, {0x216, 0x216}, - {0x218, 0x218}, {0x21a, 0x21a}, {0x21c, 0x21c}, {0x21e, 0x21e}, - {0x220, 0x220}, {0x222, 0x222}, {0x224, 0x224}, {0x226, 0x226}, - {0x228, 0x228}, {0x22a, 0x22a}, {0x22c, 0x22c}, {0x22e, 0x22e}, - {0x230, 0x230}, {0x232, 0x232}, {0x386, 0x386}, {0x388, 0x38a}, - {0x38c, 0x38c}, {0x38e, 0x38f}, {0x391, 0x3a1}, {0x3a3, 0x3ab}, - {0x3d2, 0x3d4}, {0x3d8, 0x3d8}, {0x3da, 0x3da}, {0x3dc, 0x3dc}, - {0x3de, 0x3de}, {0x3e0, 0x3e0}, {0x3e2, 0x3e2}, {0x3e4, 0x3e4}, - {0x3e6, 0x3e6}, {0x3e8, 0x3e8}, {0x3ea, 0x3ea}, {0x3ec, 0x3ec}, - {0x3ee, 0x3ee}, {0x3f4, 0x3f4}, {0x3f7, 0x3f7}, {0x3f9, 0x3fa}, - {0x400, 0x42f}, {0x460, 0x460}, {0x462, 0x462}, {0x464, 0x464}, - {0x466, 0x466}, {0x468, 0x468}, {0x46a, 0x46a}, {0x46c, 0x46c}, - {0x46e, 0x46e}, {0x470, 0x470}, {0x472, 0x472}, {0x474, 0x474}, - {0x476, 0x476}, {0x478, 0x478}, {0x47a, 0x47a}, {0x47c, 0x47c}, - {0x47e, 0x47e}, {0x480, 0x480}, {0x48a, 0x48a}, {0x48c, 0x48c}, - {0x48e, 0x48e}, {0x490, 0x490}, {0x492, 0x492}, {0x494, 0x494}, - {0x496, 0x496}, {0x498, 0x498}, {0x49a, 0x49a}, {0x49c, 0x49c}, - {0x49e, 0x49e}, {0x4a0, 0x4a0}, {0x4a2, 0x4a2}, {0x4a4, 0x4a4}, - {0x4a6, 0x4a6}, {0x4a8, 0x4a8}, {0x4aa, 0x4aa}, {0x4ac, 0x4ac}, - {0x4ae, 0x4ae}, {0x4b0, 0x4b0}, {0x4b2, 0x4b2}, {0x4b4, 0x4b4}, - {0x4b6, 0x4b6}, {0x4b8, 0x4b8}, {0x4ba, 0x4ba}, {0x4bc, 0x4bc}, - {0x4be, 0x4be}, {0x4c0, 0x4c1}, {0x4c3, 0x4c3}, {0x4c5, 0x4c5}, - {0x4c7, 0x4c7}, {0x4c9, 0x4c9}, {0x4cb, 0x4cb}, {0x4cd, 0x4cd}, - {0x4d0, 0x4d0}, {0x4d2, 0x4d2}, {0x4d4, 0x4d4}, {0x4d6, 0x4d6}, - {0x4d8, 0x4d8}, {0x4da, 0x4da}, {0x4dc, 0x4dc}, {0x4de, 0x4de}, - {0x4e0, 0x4e0}, {0x4e2, 0x4e2}, {0x4e4, 0x4e4}, {0x4e6, 0x4e6}, - {0x4e8, 0x4e8}, {0x4ea, 0x4ea}, {0x4ec, 0x4ec}, {0x4ee, 0x4ee}, - {0x4f0, 0x4f0}, {0x4f2, 0x4f2}, {0x4f4, 0x4f4}, {0x4f8, 0x4f8}, - {0x500, 0x500}, {0x502, 0x502}, {0x504, 0x504}, {0x506, 0x506}, - {0x508, 0x508}, {0x50a, 0x50a}, {0x50c, 0x50c}, {0x50e, 0x50e}, - {0x531, 0x556}, {0x10a0, 0x10c5}, {0x1e00, 0x1e00}, {0x1e02, 0x1e02}, - {0x1e04, 0x1e04}, {0x1e06, 0x1e06}, {0x1e08, 0x1e08}, {0x1e0a, 0x1e0a}, - {0x1e0c, 0x1e0c}, {0x1e0e, 0x1e0e}, {0x1e10, 0x1e10}, {0x1e12, 0x1e12}, - {0x1e14, 0x1e14}, {0x1e16, 0x1e16}, {0x1e18, 0x1e18}, {0x1e1a, 0x1e1a}, - {0x1e1c, 0x1e1c}, {0x1e1e, 0x1e1e}, {0x1e20, 0x1e20}, {0x1e22, 0x1e22}, - {0x1e24, 0x1e24}, {0x1e26, 0x1e26}, {0x1e28, 0x1e28}, {0x1e2a, 0x1e2a}, - {0x1e2c, 0x1e2c}, {0x1e2e, 0x1e2e}, {0x1e30, 0x1e30}, {0x1e32, 0x1e32}, - {0x1e34, 0x1e34}, {0x1e36, 0x1e36}, {0x1e38, 0x1e38}, {0x1e3a, 0x1e3a}, - {0x1e3c, 0x1e3c}, {0x1e3e, 0x1e3e}, {0x1e40, 0x1e40}, {0x1e42, 0x1e42}, - {0x1e44, 0x1e44}, {0x1e46, 0x1e46}, {0x1e48, 0x1e48}, {0x1e4a, 0x1e4a}, - {0x1e4c, 0x1e4c}, {0x1e4e, 0x1e4e}, {0x1e50, 0x1e50}, {0x1e52, 0x1e52}, - {0x1e54, 0x1e54}, {0x1e56, 0x1e56}, {0x1e58, 0x1e58}, {0x1e5a, 0x1e5a}, - {0x1e5c, 0x1e5c}, {0x1e5e, 0x1e5e}, {0x1e60, 0x1e60}, {0x1e62, 0x1e62}, - {0x1e64, 0x1e64}, {0x1e66, 0x1e66}, {0x1e68, 0x1e68}, {0x1e6a, 0x1e6a}, - {0x1e6c, 0x1e6c}, {0x1e6e, 0x1e6e}, {0x1e70, 0x1e70}, {0x1e72, 0x1e72}, - {0x1e74, 0x1e74}, {0x1e76, 0x1e76}, {0x1e78, 0x1e78}, {0x1e7a, 0x1e7a}, - {0x1e7c, 0x1e7c}, {0x1e7e, 0x1e7e}, {0x1e80, 0x1e80}, {0x1e82, 0x1e82}, - {0x1e84, 0x1e84}, {0x1e86, 0x1e86}, {0x1e88, 0x1e88}, {0x1e8a, 0x1e8a}, - {0x1e8c, 0x1e8c}, {0x1e8e, 0x1e8e}, {0x1e90, 0x1e90}, {0x1e92, 0x1e92}, - {0x1e94, 0x1e94}, {0x1ea0, 0x1ea0}, {0x1ea2, 0x1ea2}, {0x1ea4, 0x1ea4}, - {0x1ea6, 0x1ea6}, {0x1ea8, 0x1ea8}, {0x1eaa, 0x1eaa}, {0x1eac, 0x1eac}, - {0x1eae, 0x1eae}, {0x1eb0, 0x1eb0}, {0x1eb2, 0x1eb2}, {0x1eb4, 0x1eb4}, - {0x1eb6, 0x1eb6}, {0x1eb8, 0x1eb8}, {0x1eba, 0x1eba}, {0x1ebc, 0x1ebc}, - {0x1ebe, 0x1ebe}, {0x1ec0, 0x1ec0}, {0x1ec2, 0x1ec2}, {0x1ec4, 0x1ec4}, - {0x1ec6, 0x1ec6}, {0x1ec8, 0x1ec8}, {0x1eca, 0x1eca}, {0x1ecc, 0x1ecc}, - {0x1ece, 0x1ece}, {0x1ed0, 0x1ed0}, {0x1ed2, 0x1ed2}, {0x1ed4, 0x1ed4}, - {0x1ed6, 0x1ed6}, {0x1ed8, 0x1ed8}, {0x1eda, 0x1eda}, {0x1edc, 0x1edc}, - {0x1ede, 0x1ede}, {0x1ee0, 0x1ee0}, {0x1ee2, 0x1ee2}, {0x1ee4, 0x1ee4}, - {0x1ee6, 0x1ee6}, {0x1ee8, 0x1ee8}, {0x1eea, 0x1eea}, {0x1eec, 0x1eec}, - {0x1eee, 0x1eee}, {0x1ef0, 0x1ef0}, {0x1ef2, 0x1ef2}, {0x1ef4, 0x1ef4}, - {0x1ef6, 0x1ef6}, {0x1ef8, 0x1ef8}, {0x1f08, 0x1f0f}, {0x1f18, 0x1f1d}, - {0x1f28, 0x1f2f}, {0x1f38, 0x1f3f}, {0x1f48, 0x1f4d}, {0x1f59, 0x1f59}, - {0x1f5b, 0x1f5b}, {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f5f}, {0x1f68, 0x1f6f}, - {0x1fb8, 0x1fbb}, {0x1fc8, 0x1fcb}, {0x1fd8, 0x1fdb}, {0x1fe8, 0x1fec}, - {0x1ff8, 0x1ffb}, {0x2102, 0x2102}, {0x2107, 0x2107}, {0x210b, 0x210d}, - {0x2110, 0x2112}, {0x2115, 0x2115}, {0x2119, 0x211d}, {0x2124, 0x2124}, - {0x2126, 0x2126}, {0x2128, 0x2128}, {0x212a, 0x212d}, {0x2130, 0x2131}, +static const xmlChSRange xmlLuS[] = {{0x41, 0x5a}, {0xc0, 0xd6}, + {0xd8, 0xde}, {0x100, 0x100}, {0x102, 0x102}, {0x104, 0x104}, + {0x106, 0x106}, {0x108, 0x108}, {0x10a, 0x10a}, {0x10c, 0x10c}, + {0x10e, 0x10e}, {0x110, 0x110}, {0x112, 0x112}, {0x114, 0x114}, + {0x116, 0x116}, {0x118, 0x118}, {0x11a, 0x11a}, {0x11c, 0x11c}, + {0x11e, 0x11e}, {0x120, 0x120}, {0x122, 0x122}, {0x124, 0x124}, + {0x126, 0x126}, {0x128, 0x128}, {0x12a, 0x12a}, {0x12c, 0x12c}, + {0x12e, 0x12e}, {0x130, 0x130}, {0x132, 0x132}, {0x134, 0x134}, + {0x136, 0x136}, {0x139, 0x139}, {0x13b, 0x13b}, {0x13d, 0x13d}, + {0x13f, 0x13f}, {0x141, 0x141}, {0x143, 0x143}, {0x145, 0x145}, + {0x147, 0x147}, {0x14a, 0x14a}, {0x14c, 0x14c}, {0x14e, 0x14e}, + {0x150, 0x150}, {0x152, 0x152}, {0x154, 0x154}, {0x156, 0x156}, + {0x158, 0x158}, {0x15a, 0x15a}, {0x15c, 0x15c}, {0x15e, 0x15e}, + {0x160, 0x160}, {0x162, 0x162}, {0x164, 0x164}, {0x166, 0x166}, + {0x168, 0x168}, {0x16a, 0x16a}, {0x16c, 0x16c}, {0x16e, 0x16e}, + {0x170, 0x170}, {0x172, 0x172}, {0x174, 0x174}, {0x176, 0x176}, + {0x178, 0x179}, {0x17b, 0x17b}, {0x17d, 0x17d}, {0x181, 0x182}, + {0x184, 0x184}, {0x186, 0x187}, {0x189, 0x18b}, {0x18e, 0x191}, + {0x193, 0x194}, {0x196, 0x198}, {0x19c, 0x19d}, {0x19f, 0x1a0}, + {0x1a2, 0x1a2}, {0x1a4, 0x1a4}, {0x1a6, 0x1a7}, {0x1a9, 0x1a9}, + {0x1ac, 0x1ac}, {0x1ae, 0x1af}, {0x1b1, 0x1b3}, {0x1b5, 0x1b5}, + {0x1b7, 0x1b8}, {0x1bc, 0x1bc}, {0x1c4, 0x1c4}, {0x1c7, 0x1c7}, + {0x1ca, 0x1ca}, {0x1cd, 0x1cd}, {0x1cf, 0x1cf}, {0x1d1, 0x1d1}, + {0x1d3, 0x1d3}, {0x1d5, 0x1d5}, {0x1d7, 0x1d7}, {0x1d9, 0x1d9}, + {0x1db, 0x1db}, {0x1de, 0x1de}, {0x1e0, 0x1e0}, {0x1e2, 0x1e2}, + {0x1e4, 0x1e4}, {0x1e6, 0x1e6}, {0x1e8, 0x1e8}, {0x1ea, 0x1ea}, + {0x1ec, 0x1ec}, {0x1ee, 0x1ee}, {0x1f1, 0x1f1}, {0x1f4, 0x1f4}, + {0x1f6, 0x1f8}, {0x1fa, 0x1fa}, {0x1fc, 0x1fc}, {0x1fe, 0x1fe}, + {0x200, 0x200}, {0x202, 0x202}, {0x204, 0x204}, {0x206, 0x206}, + {0x208, 0x208}, {0x20a, 0x20a}, {0x20c, 0x20c}, {0x20e, 0x20e}, + {0x210, 0x210}, {0x212, 0x212}, {0x214, 0x214}, {0x216, 0x216}, + {0x218, 0x218}, {0x21a, 0x21a}, {0x21c, 0x21c}, {0x21e, 0x21e}, + {0x220, 0x220}, {0x222, 0x222}, {0x224, 0x224}, {0x226, 0x226}, + {0x228, 0x228}, {0x22a, 0x22a}, {0x22c, 0x22c}, {0x22e, 0x22e}, + {0x230, 0x230}, {0x232, 0x232}, {0x386, 0x386}, {0x388, 0x38a}, + {0x38c, 0x38c}, {0x38e, 0x38f}, {0x391, 0x3a1}, {0x3a3, 0x3ab}, + {0x3d2, 0x3d4}, {0x3d8, 0x3d8}, {0x3da, 0x3da}, {0x3dc, 0x3dc}, + {0x3de, 0x3de}, {0x3e0, 0x3e0}, {0x3e2, 0x3e2}, {0x3e4, 0x3e4}, + {0x3e6, 0x3e6}, {0x3e8, 0x3e8}, {0x3ea, 0x3ea}, {0x3ec, 0x3ec}, + {0x3ee, 0x3ee}, {0x3f4, 0x3f4}, {0x3f7, 0x3f7}, {0x3f9, 0x3fa}, + {0x400, 0x42f}, {0x460, 0x460}, {0x462, 0x462}, {0x464, 0x464}, + {0x466, 0x466}, {0x468, 0x468}, {0x46a, 0x46a}, {0x46c, 0x46c}, + {0x46e, 0x46e}, {0x470, 0x470}, {0x472, 0x472}, {0x474, 0x474}, + {0x476, 0x476}, {0x478, 0x478}, {0x47a, 0x47a}, {0x47c, 0x47c}, + {0x47e, 0x47e}, {0x480, 0x480}, {0x48a, 0x48a}, {0x48c, 0x48c}, + {0x48e, 0x48e}, {0x490, 0x490}, {0x492, 0x492}, {0x494, 0x494}, + {0x496, 0x496}, {0x498, 0x498}, {0x49a, 0x49a}, {0x49c, 0x49c}, + {0x49e, 0x49e}, {0x4a0, 0x4a0}, {0x4a2, 0x4a2}, {0x4a4, 0x4a4}, + {0x4a6, 0x4a6}, {0x4a8, 0x4a8}, {0x4aa, 0x4aa}, {0x4ac, 0x4ac}, + {0x4ae, 0x4ae}, {0x4b0, 0x4b0}, {0x4b2, 0x4b2}, {0x4b4, 0x4b4}, + {0x4b6, 0x4b6}, {0x4b8, 0x4b8}, {0x4ba, 0x4ba}, {0x4bc, 0x4bc}, + {0x4be, 0x4be}, {0x4c0, 0x4c1}, {0x4c3, 0x4c3}, {0x4c5, 0x4c5}, + {0x4c7, 0x4c7}, {0x4c9, 0x4c9}, {0x4cb, 0x4cb}, {0x4cd, 0x4cd}, + {0x4d0, 0x4d0}, {0x4d2, 0x4d2}, {0x4d4, 0x4d4}, {0x4d6, 0x4d6}, + {0x4d8, 0x4d8}, {0x4da, 0x4da}, {0x4dc, 0x4dc}, {0x4de, 0x4de}, + {0x4e0, 0x4e0}, {0x4e2, 0x4e2}, {0x4e4, 0x4e4}, {0x4e6, 0x4e6}, + {0x4e8, 0x4e8}, {0x4ea, 0x4ea}, {0x4ec, 0x4ec}, {0x4ee, 0x4ee}, + {0x4f0, 0x4f0}, {0x4f2, 0x4f2}, {0x4f4, 0x4f4}, {0x4f8, 0x4f8}, + {0x500, 0x500}, {0x502, 0x502}, {0x504, 0x504}, {0x506, 0x506}, + {0x508, 0x508}, {0x50a, 0x50a}, {0x50c, 0x50c}, {0x50e, 0x50e}, + {0x531, 0x556}, {0x10a0, 0x10c5}, {0x1e00, 0x1e00}, {0x1e02, 0x1e02}, + {0x1e04, 0x1e04}, {0x1e06, 0x1e06}, {0x1e08, 0x1e08}, {0x1e0a, 0x1e0a}, + {0x1e0c, 0x1e0c}, {0x1e0e, 0x1e0e}, {0x1e10, 0x1e10}, {0x1e12, 0x1e12}, + {0x1e14, 0x1e14}, {0x1e16, 0x1e16}, {0x1e18, 0x1e18}, {0x1e1a, 0x1e1a}, + {0x1e1c, 0x1e1c}, {0x1e1e, 0x1e1e}, {0x1e20, 0x1e20}, {0x1e22, 0x1e22}, + {0x1e24, 0x1e24}, {0x1e26, 0x1e26}, {0x1e28, 0x1e28}, {0x1e2a, 0x1e2a}, + {0x1e2c, 0x1e2c}, {0x1e2e, 0x1e2e}, {0x1e30, 0x1e30}, {0x1e32, 0x1e32}, + {0x1e34, 0x1e34}, {0x1e36, 0x1e36}, {0x1e38, 0x1e38}, {0x1e3a, 0x1e3a}, + {0x1e3c, 0x1e3c}, {0x1e3e, 0x1e3e}, {0x1e40, 0x1e40}, {0x1e42, 0x1e42}, + {0x1e44, 0x1e44}, {0x1e46, 0x1e46}, {0x1e48, 0x1e48}, {0x1e4a, 0x1e4a}, + {0x1e4c, 0x1e4c}, {0x1e4e, 0x1e4e}, {0x1e50, 0x1e50}, {0x1e52, 0x1e52}, + {0x1e54, 0x1e54}, {0x1e56, 0x1e56}, {0x1e58, 0x1e58}, {0x1e5a, 0x1e5a}, + {0x1e5c, 0x1e5c}, {0x1e5e, 0x1e5e}, {0x1e60, 0x1e60}, {0x1e62, 0x1e62}, + {0x1e64, 0x1e64}, {0x1e66, 0x1e66}, {0x1e68, 0x1e68}, {0x1e6a, 0x1e6a}, + {0x1e6c, 0x1e6c}, {0x1e6e, 0x1e6e}, {0x1e70, 0x1e70}, {0x1e72, 0x1e72}, + {0x1e74, 0x1e74}, {0x1e76, 0x1e76}, {0x1e78, 0x1e78}, {0x1e7a, 0x1e7a}, + {0x1e7c, 0x1e7c}, {0x1e7e, 0x1e7e}, {0x1e80, 0x1e80}, {0x1e82, 0x1e82}, + {0x1e84, 0x1e84}, {0x1e86, 0x1e86}, {0x1e88, 0x1e88}, {0x1e8a, 0x1e8a}, + {0x1e8c, 0x1e8c}, {0x1e8e, 0x1e8e}, {0x1e90, 0x1e90}, {0x1e92, 0x1e92}, + {0x1e94, 0x1e94}, {0x1ea0, 0x1ea0}, {0x1ea2, 0x1ea2}, {0x1ea4, 0x1ea4}, + {0x1ea6, 0x1ea6}, {0x1ea8, 0x1ea8}, {0x1eaa, 0x1eaa}, {0x1eac, 0x1eac}, + {0x1eae, 0x1eae}, {0x1eb0, 0x1eb0}, {0x1eb2, 0x1eb2}, {0x1eb4, 0x1eb4}, + {0x1eb6, 0x1eb6}, {0x1eb8, 0x1eb8}, {0x1eba, 0x1eba}, {0x1ebc, 0x1ebc}, + {0x1ebe, 0x1ebe}, {0x1ec0, 0x1ec0}, {0x1ec2, 0x1ec2}, {0x1ec4, 0x1ec4}, + {0x1ec6, 0x1ec6}, {0x1ec8, 0x1ec8}, {0x1eca, 0x1eca}, {0x1ecc, 0x1ecc}, + {0x1ece, 0x1ece}, {0x1ed0, 0x1ed0}, {0x1ed2, 0x1ed2}, {0x1ed4, 0x1ed4}, + {0x1ed6, 0x1ed6}, {0x1ed8, 0x1ed8}, {0x1eda, 0x1eda}, {0x1edc, 0x1edc}, + {0x1ede, 0x1ede}, {0x1ee0, 0x1ee0}, {0x1ee2, 0x1ee2}, {0x1ee4, 0x1ee4}, + {0x1ee6, 0x1ee6}, {0x1ee8, 0x1ee8}, {0x1eea, 0x1eea}, {0x1eec, 0x1eec}, + {0x1eee, 0x1eee}, {0x1ef0, 0x1ef0}, {0x1ef2, 0x1ef2}, {0x1ef4, 0x1ef4}, + {0x1ef6, 0x1ef6}, {0x1ef8, 0x1ef8}, {0x1f08, 0x1f0f}, {0x1f18, 0x1f1d}, + {0x1f28, 0x1f2f}, {0x1f38, 0x1f3f}, {0x1f48, 0x1f4d}, {0x1f59, 0x1f59}, + {0x1f5b, 0x1f5b}, {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f5f}, {0x1f68, 0x1f6f}, + {0x1fb8, 0x1fbb}, {0x1fc8, 0x1fcb}, {0x1fd8, 0x1fdb}, {0x1fe8, 0x1fec}, + {0x1ff8, 0x1ffb}, {0x2102, 0x2102}, {0x2107, 0x2107}, {0x210b, 0x210d}, + {0x2110, 0x2112}, {0x2115, 0x2115}, {0x2119, 0x211d}, {0x2124, 0x2124}, + {0x2126, 0x2126}, {0x2128, 0x2128}, {0x212a, 0x212d}, {0x2130, 0x2131}, {0x2133, 0x2133}, {0x213e, 0x213f}, {0x2145, 0x2145}, {0xff21, 0xff3a} }; -static const xmlChLRange xmlLuL[] = {{0x10400, 0x10427}, {0x1d400, 0x1d419}, - {0x1d434, 0x1d44d}, {0x1d468, 0x1d481}, {0x1d49c, 0x1d49c}, - {0x1d49e, 0x1d49f}, {0x1d4a2, 0x1d4a2}, {0x1d4a5, 0x1d4a6}, - {0x1d4a9, 0x1d4ac}, {0x1d4ae, 0x1d4b5}, {0x1d4d0, 0x1d4e9}, - {0x1d504, 0x1d505}, {0x1d507, 0x1d50a}, {0x1d50d, 0x1d514}, - {0x1d516, 0x1d51c}, {0x1d538, 0x1d539}, {0x1d53b, 0x1d53e}, - {0x1d540, 0x1d544}, {0x1d546, 0x1d546}, {0x1d54a, 0x1d550}, - {0x1d56c, 0x1d585}, {0x1d5a0, 0x1d5b9}, {0x1d5d4, 0x1d5ed}, - {0x1d608, 0x1d621}, {0x1d63c, 0x1d655}, {0x1d670, 0x1d689}, - {0x1d6a8, 0x1d6c0}, {0x1d6e2, 0x1d6fa}, {0x1d71c, 0x1d734}, +static const xmlChLRange xmlLuL[] = {{0x10400, 0x10427}, {0x1d400, 0x1d419}, + {0x1d434, 0x1d44d}, {0x1d468, 0x1d481}, {0x1d49c, 0x1d49c}, + {0x1d49e, 0x1d49f}, {0x1d4a2, 0x1d4a2}, {0x1d4a5, 0x1d4a6}, + {0x1d4a9, 0x1d4ac}, {0x1d4ae, 0x1d4b5}, {0x1d4d0, 0x1d4e9}, + {0x1d504, 0x1d505}, {0x1d507, 0x1d50a}, {0x1d50d, 0x1d514}, + {0x1d516, 0x1d51c}, {0x1d538, 0x1d539}, {0x1d53b, 0x1d53e}, + {0x1d540, 0x1d544}, {0x1d546, 0x1d546}, {0x1d54a, 0x1d550}, + {0x1d56c, 0x1d585}, {0x1d5a0, 0x1d5b9}, {0x1d5d4, 0x1d5ed}, + {0x1d608, 0x1d621}, {0x1d63c, 0x1d655}, {0x1d670, 0x1d689}, + {0x1d6a8, 0x1d6c0}, {0x1d6e2, 0x1d6fa}, {0x1d71c, 0x1d734}, {0x1d756, 0x1d76e}, {0x1d790, 0x1d7a8} }; static xmlChRangeGroup xmlLuG = {390,31,xmlLuS,xmlLuL}; -static const xmlChSRange xmlMS[] = {{0x300, 0x357}, {0x35d, 0x36f}, - {0x483, 0x486}, {0x488, 0x489}, {0x591, 0x5a1}, {0x5a3, 0x5b9}, - {0x5bb, 0x5bd}, {0x5bf, 0x5bf}, {0x5c1, 0x5c2}, {0x5c4, 0x5c4}, - {0x610, 0x615}, {0x64b, 0x658}, {0x670, 0x670}, {0x6d6, 0x6dc}, - {0x6de, 0x6e4}, {0x6e7, 0x6e8}, {0x6ea, 0x6ed}, {0x711, 0x711}, - {0x730, 0x74a}, {0x7a6, 0x7b0}, {0x901, 0x903}, {0x93c, 0x93c}, - {0x93e, 0x94d}, {0x951, 0x954}, {0x962, 0x963}, {0x981, 0x983}, - {0x9bc, 0x9bc}, {0x9be, 0x9c4}, {0x9c7, 0x9c8}, {0x9cb, 0x9cd}, - {0x9d7, 0x9d7}, {0x9e2, 0x9e3}, {0xa01, 0xa03}, {0xa3c, 0xa3c}, - {0xa3e, 0xa42}, {0xa47, 0xa48}, {0xa4b, 0xa4d}, {0xa70, 0xa71}, - {0xa81, 0xa83}, {0xabc, 0xabc}, {0xabe, 0xac5}, {0xac7, 0xac9}, - {0xacb, 0xacd}, {0xae2, 0xae3}, {0xb01, 0xb03}, {0xb3c, 0xb3c}, - {0xb3e, 0xb43}, {0xb47, 0xb48}, {0xb4b, 0xb4d}, {0xb56, 0xb57}, - {0xb82, 0xb82}, {0xbbe, 0xbc2}, {0xbc6, 0xbc8}, {0xbca, 0xbcd}, - {0xbd7, 0xbd7}, {0xc01, 0xc03}, {0xc3e, 0xc44}, {0xc46, 0xc48}, - {0xc4a, 0xc4d}, {0xc55, 0xc56}, {0xc82, 0xc83}, {0xcbc, 0xcbc}, - {0xcbe, 0xcc4}, {0xcc6, 0xcc8}, {0xcca, 0xccd}, {0xcd5, 0xcd6}, - {0xd02, 0xd03}, {0xd3e, 0xd43}, {0xd46, 0xd48}, {0xd4a, 0xd4d}, - {0xd57, 0xd57}, {0xd82, 0xd83}, {0xdca, 0xdca}, {0xdcf, 0xdd4}, - {0xdd6, 0xdd6}, {0xdd8, 0xddf}, {0xdf2, 0xdf3}, {0xe31, 0xe31}, - {0xe34, 0xe3a}, {0xe47, 0xe4e}, {0xeb1, 0xeb1}, {0xeb4, 0xeb9}, - {0xebb, 0xebc}, {0xec8, 0xecd}, {0xf18, 0xf19}, {0xf35, 0xf35}, - {0xf37, 0xf37}, {0xf39, 0xf39}, {0xf3e, 0xf3f}, {0xf71, 0xf84}, - {0xf86, 0xf87}, {0xf90, 0xf97}, {0xf99, 0xfbc}, {0xfc6, 0xfc6}, - {0x102c, 0x1032}, {0x1036, 0x1039}, {0x1056, 0x1059}, {0x1712, 0x1714}, - {0x1732, 0x1734}, {0x1752, 0x1753}, {0x1772, 0x1773}, {0x17b6, 0x17d3}, - {0x17dd, 0x17dd}, {0x180b, 0x180d}, {0x18a9, 0x18a9}, {0x1920, 0x192b}, - {0x1930, 0x193b}, {0x20d0, 0x20ea}, {0x302a, 0x302f}, {0x3099, 0x309a}, +static const xmlChSRange xmlMS[] = {{0x300, 0x357}, {0x35d, 0x36f}, + {0x483, 0x486}, {0x488, 0x489}, {0x591, 0x5a1}, {0x5a3, 0x5b9}, + {0x5bb, 0x5bd}, {0x5bf, 0x5bf}, {0x5c1, 0x5c2}, {0x5c4, 0x5c4}, + {0x610, 0x615}, {0x64b, 0x658}, {0x670, 0x670}, {0x6d6, 0x6dc}, + {0x6de, 0x6e4}, {0x6e7, 0x6e8}, {0x6ea, 0x6ed}, {0x711, 0x711}, + {0x730, 0x74a}, {0x7a6, 0x7b0}, {0x901, 0x903}, {0x93c, 0x93c}, + {0x93e, 0x94d}, {0x951, 0x954}, {0x962, 0x963}, {0x981, 0x983}, + {0x9bc, 0x9bc}, {0x9be, 0x9c4}, {0x9c7, 0x9c8}, {0x9cb, 0x9cd}, + {0x9d7, 0x9d7}, {0x9e2, 0x9e3}, {0xa01, 0xa03}, {0xa3c, 0xa3c}, + {0xa3e, 0xa42}, {0xa47, 0xa48}, {0xa4b, 0xa4d}, {0xa70, 0xa71}, + {0xa81, 0xa83}, {0xabc, 0xabc}, {0xabe, 0xac5}, {0xac7, 0xac9}, + {0xacb, 0xacd}, {0xae2, 0xae3}, {0xb01, 0xb03}, {0xb3c, 0xb3c}, + {0xb3e, 0xb43}, {0xb47, 0xb48}, {0xb4b, 0xb4d}, {0xb56, 0xb57}, + {0xb82, 0xb82}, {0xbbe, 0xbc2}, {0xbc6, 0xbc8}, {0xbca, 0xbcd}, + {0xbd7, 0xbd7}, {0xc01, 0xc03}, {0xc3e, 0xc44}, {0xc46, 0xc48}, + {0xc4a, 0xc4d}, {0xc55, 0xc56}, {0xc82, 0xc83}, {0xcbc, 0xcbc}, + {0xcbe, 0xcc4}, {0xcc6, 0xcc8}, {0xcca, 0xccd}, {0xcd5, 0xcd6}, + {0xd02, 0xd03}, {0xd3e, 0xd43}, {0xd46, 0xd48}, {0xd4a, 0xd4d}, + {0xd57, 0xd57}, {0xd82, 0xd83}, {0xdca, 0xdca}, {0xdcf, 0xdd4}, + {0xdd6, 0xdd6}, {0xdd8, 0xddf}, {0xdf2, 0xdf3}, {0xe31, 0xe31}, + {0xe34, 0xe3a}, {0xe47, 0xe4e}, {0xeb1, 0xeb1}, {0xeb4, 0xeb9}, + {0xebb, 0xebc}, {0xec8, 0xecd}, {0xf18, 0xf19}, {0xf35, 0xf35}, + {0xf37, 0xf37}, {0xf39, 0xf39}, {0xf3e, 0xf3f}, {0xf71, 0xf84}, + {0xf86, 0xf87}, {0xf90, 0xf97}, {0xf99, 0xfbc}, {0xfc6, 0xfc6}, + {0x102c, 0x1032}, {0x1036, 0x1039}, {0x1056, 0x1059}, {0x1712, 0x1714}, + {0x1732, 0x1734}, {0x1752, 0x1753}, {0x1772, 0x1773}, {0x17b6, 0x17d3}, + {0x17dd, 0x17dd}, {0x180b, 0x180d}, {0x18a9, 0x18a9}, {0x1920, 0x192b}, + {0x1930, 0x193b}, {0x20d0, 0x20ea}, {0x302a, 0x302f}, {0x3099, 0x309a}, {0xfb1e, 0xfb1e}, {0xfe00, 0xfe0f}, {0xfe20, 0xfe23} }; -static const xmlChLRange xmlML[] = {{0x1d165, 0x1d169}, {0x1d16d, 0x1d172}, - {0x1d17b, 0x1d182}, {0x1d185, 0x1d18b}, {0x1d1aa, 0x1d1ad}, +static const xmlChLRange xmlML[] = {{0x1d165, 0x1d169}, {0x1d16d, 0x1d172}, + {0x1d17b, 0x1d182}, {0x1d185, 0x1d18b}, {0x1d1aa, 0x1d1ad}, {0xe0100, 0xe01ef} }; static xmlChRangeGroup xmlMG = {113,6,xmlMS,xmlML}; -static const xmlChSRange xmlMcS[] = {{0x903, 0x903}, {0x93e, 0x940}, - {0x949, 0x94c}, {0x982, 0x983}, {0x9be, 0x9c0}, {0x9c7, 0x9c8}, - {0x9cb, 0x9cc}, {0x9d7, 0x9d7}, {0xa03, 0xa03}, {0xa3e, 0xa40}, - {0xa83, 0xa83}, {0xabe, 0xac0}, {0xac9, 0xac9}, {0xacb, 0xacc}, - {0xb02, 0xb03}, {0xb3e, 0xb3e}, {0xb40, 0xb40}, {0xb47, 0xb48}, - {0xb4b, 0xb4c}, {0xb57, 0xb57}, {0xbbe, 0xbbf}, {0xbc1, 0xbc2}, - {0xbc6, 0xbc8}, {0xbca, 0xbcc}, {0xbd7, 0xbd7}, {0xc01, 0xc03}, - {0xc41, 0xc44}, {0xc82, 0xc83}, {0xcbe, 0xcbe}, {0xcc0, 0xcc4}, - {0xcc7, 0xcc8}, {0xcca, 0xccb}, {0xcd5, 0xcd6}, {0xd02, 0xd03}, - {0xd3e, 0xd40}, {0xd46, 0xd48}, {0xd4a, 0xd4c}, {0xd57, 0xd57}, - {0xd82, 0xd83}, {0xdcf, 0xdd1}, {0xdd8, 0xddf}, {0xdf2, 0xdf3}, - {0xf3e, 0xf3f}, {0xf7f, 0xf7f}, {0x102c, 0x102c}, {0x1031, 0x1031}, - {0x1038, 0x1038}, {0x1056, 0x1057}, {0x17b6, 0x17b6}, {0x17be, 0x17c5}, - {0x17c7, 0x17c8}, {0x1923, 0x1926}, {0x1929, 0x192b}, {0x1930, 0x1931}, +static const xmlChSRange xmlMcS[] = {{0x903, 0x903}, {0x93e, 0x940}, + {0x949, 0x94c}, {0x982, 0x983}, {0x9be, 0x9c0}, {0x9c7, 0x9c8}, + {0x9cb, 0x9cc}, {0x9d7, 0x9d7}, {0xa03, 0xa03}, {0xa3e, 0xa40}, + {0xa83, 0xa83}, {0xabe, 0xac0}, {0xac9, 0xac9}, {0xacb, 0xacc}, + {0xb02, 0xb03}, {0xb3e, 0xb3e}, {0xb40, 0xb40}, {0xb47, 0xb48}, + {0xb4b, 0xb4c}, {0xb57, 0xb57}, {0xbbe, 0xbbf}, {0xbc1, 0xbc2}, + {0xbc6, 0xbc8}, {0xbca, 0xbcc}, {0xbd7, 0xbd7}, {0xc01, 0xc03}, + {0xc41, 0xc44}, {0xc82, 0xc83}, {0xcbe, 0xcbe}, {0xcc0, 0xcc4}, + {0xcc7, 0xcc8}, {0xcca, 0xccb}, {0xcd5, 0xcd6}, {0xd02, 0xd03}, + {0xd3e, 0xd40}, {0xd46, 0xd48}, {0xd4a, 0xd4c}, {0xd57, 0xd57}, + {0xd82, 0xd83}, {0xdcf, 0xdd1}, {0xdd8, 0xddf}, {0xdf2, 0xdf3}, + {0xf3e, 0xf3f}, {0xf7f, 0xf7f}, {0x102c, 0x102c}, {0x1031, 0x1031}, + {0x1038, 0x1038}, {0x1056, 0x1057}, {0x17b6, 0x17b6}, {0x17be, 0x17c5}, + {0x17c7, 0x17c8}, {0x1923, 0x1926}, {0x1929, 0x192b}, {0x1930, 0x1931}, {0x1933, 0x1938} }; static const xmlChLRange xmlMcL[] = {{0x1d165, 0x1d166}, {0x1d16d, 0x1d172} }; static xmlChRangeGroup xmlMcG = {55,2,xmlMcS,xmlMcL}; -static const xmlChSRange xmlMnS[] = {{0x300, 0x357}, {0x35d, 0x36f}, - {0x483, 0x486}, {0x591, 0x5a1}, {0x5a3, 0x5b9}, {0x5bb, 0x5bd}, - {0x5bf, 0x5bf}, {0x5c1, 0x5c2}, {0x5c4, 0x5c4}, {0x610, 0x615}, - {0x64b, 0x658}, {0x670, 0x670}, {0x6d6, 0x6dc}, {0x6df, 0x6e4}, - {0x6e7, 0x6e8}, {0x6ea, 0x6ed}, {0x711, 0x711}, {0x730, 0x74a}, - {0x7a6, 0x7b0}, {0x901, 0x902}, {0x93c, 0x93c}, {0x941, 0x948}, - {0x94d, 0x94d}, {0x951, 0x954}, {0x962, 0x963}, {0x981, 0x981}, - {0x9bc, 0x9bc}, {0x9c1, 0x9c4}, {0x9cd, 0x9cd}, {0x9e2, 0x9e3}, - {0xa01, 0xa02}, {0xa3c, 0xa3c}, {0xa41, 0xa42}, {0xa47, 0xa48}, - {0xa4b, 0xa4d}, {0xa70, 0xa71}, {0xa81, 0xa82}, {0xabc, 0xabc}, - {0xac1, 0xac5}, {0xac7, 0xac8}, {0xacd, 0xacd}, {0xae2, 0xae3}, - {0xb01, 0xb01}, {0xb3c, 0xb3c}, {0xb3f, 0xb3f}, {0xb41, 0xb43}, - {0xb4d, 0xb4d}, {0xb56, 0xb56}, {0xb82, 0xb82}, {0xbc0, 0xbc0}, - {0xbcd, 0xbcd}, {0xc3e, 0xc40}, {0xc46, 0xc48}, {0xc4a, 0xc4d}, - {0xc55, 0xc56}, {0xcbc, 0xcbc}, {0xcbf, 0xcbf}, {0xcc6, 0xcc6}, - {0xccc, 0xccd}, {0xd41, 0xd43}, {0xd4d, 0xd4d}, {0xdca, 0xdca}, - {0xdd2, 0xdd4}, {0xdd6, 0xdd6}, {0xe31, 0xe31}, {0xe34, 0xe3a}, - {0xe47, 0xe4e}, {0xeb1, 0xeb1}, {0xeb4, 0xeb9}, {0xebb, 0xebc}, - {0xec8, 0xecd}, {0xf18, 0xf19}, {0xf35, 0xf35}, {0xf37, 0xf37}, - {0xf39, 0xf39}, {0xf71, 0xf7e}, {0xf80, 0xf84}, {0xf86, 0xf87}, - {0xf90, 0xf97}, {0xf99, 0xfbc}, {0xfc6, 0xfc6}, {0x102d, 0x1030}, - {0x1032, 0x1032}, {0x1036, 0x1037}, {0x1039, 0x1039}, {0x1058, 0x1059}, - {0x1712, 0x1714}, {0x1732, 0x1734}, {0x1752, 0x1753}, {0x1772, 0x1773}, - {0x17b7, 0x17bd}, {0x17c6, 0x17c6}, {0x17c9, 0x17d3}, {0x17dd, 0x17dd}, - {0x180b, 0x180d}, {0x18a9, 0x18a9}, {0x1920, 0x1922}, {0x1927, 0x1928}, - {0x1932, 0x1932}, {0x1939, 0x193b}, {0x20d0, 0x20dc}, {0x20e1, 0x20e1}, - {0x20e5, 0x20ea}, {0x302a, 0x302f}, {0x3099, 0x309a}, {0xfb1e, 0xfb1e}, +static const xmlChSRange xmlMnS[] = {{0x300, 0x357}, {0x35d, 0x36f}, + {0x483, 0x486}, {0x591, 0x5a1}, {0x5a3, 0x5b9}, {0x5bb, 0x5bd}, + {0x5bf, 0x5bf}, {0x5c1, 0x5c2}, {0x5c4, 0x5c4}, {0x610, 0x615}, + {0x64b, 0x658}, {0x670, 0x670}, {0x6d6, 0x6dc}, {0x6df, 0x6e4}, + {0x6e7, 0x6e8}, {0x6ea, 0x6ed}, {0x711, 0x711}, {0x730, 0x74a}, + {0x7a6, 0x7b0}, {0x901, 0x902}, {0x93c, 0x93c}, {0x941, 0x948}, + {0x94d, 0x94d}, {0x951, 0x954}, {0x962, 0x963}, {0x981, 0x981}, + {0x9bc, 0x9bc}, {0x9c1, 0x9c4}, {0x9cd, 0x9cd}, {0x9e2, 0x9e3}, + {0xa01, 0xa02}, {0xa3c, 0xa3c}, {0xa41, 0xa42}, {0xa47, 0xa48}, + {0xa4b, 0xa4d}, {0xa70, 0xa71}, {0xa81, 0xa82}, {0xabc, 0xabc}, + {0xac1, 0xac5}, {0xac7, 0xac8}, {0xacd, 0xacd}, {0xae2, 0xae3}, + {0xb01, 0xb01}, {0xb3c, 0xb3c}, {0xb3f, 0xb3f}, {0xb41, 0xb43}, + {0xb4d, 0xb4d}, {0xb56, 0xb56}, {0xb82, 0xb82}, {0xbc0, 0xbc0}, + {0xbcd, 0xbcd}, {0xc3e, 0xc40}, {0xc46, 0xc48}, {0xc4a, 0xc4d}, + {0xc55, 0xc56}, {0xcbc, 0xcbc}, {0xcbf, 0xcbf}, {0xcc6, 0xcc6}, + {0xccc, 0xccd}, {0xd41, 0xd43}, {0xd4d, 0xd4d}, {0xdca, 0xdca}, + {0xdd2, 0xdd4}, {0xdd6, 0xdd6}, {0xe31, 0xe31}, {0xe34, 0xe3a}, + {0xe47, 0xe4e}, {0xeb1, 0xeb1}, {0xeb4, 0xeb9}, {0xebb, 0xebc}, + {0xec8, 0xecd}, {0xf18, 0xf19}, {0xf35, 0xf35}, {0xf37, 0xf37}, + {0xf39, 0xf39}, {0xf71, 0xf7e}, {0xf80, 0xf84}, {0xf86, 0xf87}, + {0xf90, 0xf97}, {0xf99, 0xfbc}, {0xfc6, 0xfc6}, {0x102d, 0x1030}, + {0x1032, 0x1032}, {0x1036, 0x1037}, {0x1039, 0x1039}, {0x1058, 0x1059}, + {0x1712, 0x1714}, {0x1732, 0x1734}, {0x1752, 0x1753}, {0x1772, 0x1773}, + {0x17b7, 0x17bd}, {0x17c6, 0x17c6}, {0x17c9, 0x17d3}, {0x17dd, 0x17dd}, + {0x180b, 0x180d}, {0x18a9, 0x18a9}, {0x1920, 0x1922}, {0x1927, 0x1928}, + {0x1932, 0x1932}, {0x1939, 0x193b}, {0x20d0, 0x20dc}, {0x20e1, 0x20e1}, + {0x20e5, 0x20ea}, {0x302a, 0x302f}, {0x3099, 0x309a}, {0xfb1e, 0xfb1e}, {0xfe00, 0xfe0f}, {0xfe20, 0xfe23} }; -static const xmlChLRange xmlMnL[] = {{0x1d167, 0x1d169}, {0x1d17b, 0x1d182}, +static const xmlChLRange xmlMnL[] = {{0x1d167, 0x1d169}, {0x1d17b, 0x1d182}, {0x1d185, 0x1d18b}, {0x1d1aa, 0x1d1ad}, {0xe0100, 0xe01ef} }; static xmlChRangeGroup xmlMnG = {108,5,xmlMnS,xmlMnL}; -static const xmlChSRange xmlNS[] = {{0x30, 0x39}, {0xb2, 0xb3}, - {0xb9, 0xb9}, {0xbc, 0xbe}, {0x660, 0x669}, {0x6f0, 0x6f9}, - {0x966, 0x96f}, {0x9e6, 0x9ef}, {0x9f4, 0x9f9}, {0xa66, 0xa6f}, - {0xae6, 0xaef}, {0xb66, 0xb6f}, {0xbe7, 0xbf2}, {0xc66, 0xc6f}, - {0xce6, 0xcef}, {0xd66, 0xd6f}, {0xe50, 0xe59}, {0xed0, 0xed9}, - {0xf20, 0xf33}, {0x1040, 0x1049}, {0x1369, 0x137c}, {0x16ee, 0x16f0}, - {0x17e0, 0x17e9}, {0x17f0, 0x17f9}, {0x1810, 0x1819}, {0x1946, 0x194f}, - {0x2070, 0x2070}, {0x2074, 0x2079}, {0x2080, 0x2089}, {0x2153, 0x2183}, - {0x2460, 0x249b}, {0x24ea, 0x24ff}, {0x2776, 0x2793}, {0x3007, 0x3007}, - {0x3021, 0x3029}, {0x3038, 0x303a}, {0x3192, 0x3195}, {0x3220, 0x3229}, +static const xmlChSRange xmlNS[] = {{0x30, 0x39}, {0xb2, 0xb3}, + {0xb9, 0xb9}, {0xbc, 0xbe}, {0x660, 0x669}, {0x6f0, 0x6f9}, + {0x966, 0x96f}, {0x9e6, 0x9ef}, {0x9f4, 0x9f9}, {0xa66, 0xa6f}, + {0xae6, 0xaef}, {0xb66, 0xb6f}, {0xbe7, 0xbf2}, {0xc66, 0xc6f}, + {0xce6, 0xcef}, {0xd66, 0xd6f}, {0xe50, 0xe59}, {0xed0, 0xed9}, + {0xf20, 0xf33}, {0x1040, 0x1049}, {0x1369, 0x137c}, {0x16ee, 0x16f0}, + {0x17e0, 0x17e9}, {0x17f0, 0x17f9}, {0x1810, 0x1819}, {0x1946, 0x194f}, + {0x2070, 0x2070}, {0x2074, 0x2079}, {0x2080, 0x2089}, {0x2153, 0x2183}, + {0x2460, 0x249b}, {0x24ea, 0x24ff}, {0x2776, 0x2793}, {0x3007, 0x3007}, + {0x3021, 0x3029}, {0x3038, 0x303a}, {0x3192, 0x3195}, {0x3220, 0x3229}, {0x3251, 0x325f}, {0x3280, 0x3289}, {0x32b1, 0x32bf}, {0xff10, 0xff19} }; -static const xmlChLRange xmlNL[] = {{0x10107, 0x10133}, {0x10320, 0x10323}, +static const xmlChLRange xmlNL[] = {{0x10107, 0x10133}, {0x10320, 0x10323}, {0x1034a, 0x1034a}, {0x104a0, 0x104a9}, {0x1d7ce, 0x1d7ff} }; static xmlChRangeGroup xmlNG = {42,5,xmlNS,xmlNL}; -static const xmlChSRange xmlNdS[] = {{0x30, 0x39}, {0x660, 0x669}, - {0x6f0, 0x6f9}, {0x966, 0x96f}, {0x9e6, 0x9ef}, {0xa66, 0xa6f}, - {0xae6, 0xaef}, {0xb66, 0xb6f}, {0xbe7, 0xbef}, {0xc66, 0xc6f}, - {0xce6, 0xcef}, {0xd66, 0xd6f}, {0xe50, 0xe59}, {0xed0, 0xed9}, - {0xf20, 0xf29}, {0x1040, 0x1049}, {0x1369, 0x1371}, {0x17e0, 0x17e9}, +static const xmlChSRange xmlNdS[] = {{0x30, 0x39}, {0x660, 0x669}, + {0x6f0, 0x6f9}, {0x966, 0x96f}, {0x9e6, 0x9ef}, {0xa66, 0xa6f}, + {0xae6, 0xaef}, {0xb66, 0xb6f}, {0xbe7, 0xbef}, {0xc66, 0xc6f}, + {0xce6, 0xcef}, {0xd66, 0xd6f}, {0xe50, 0xe59}, {0xed0, 0xed9}, + {0xf20, 0xf29}, {0x1040, 0x1049}, {0x1369, 0x1371}, {0x17e0, 0x17e9}, {0x1810, 0x1819}, {0x1946, 0x194f}, {0xff10, 0xff19} }; static const xmlChLRange xmlNdL[] = {{0x104a0, 0x104a9}, {0x1d7ce, 0x1d7ff} }; static xmlChRangeGroup xmlNdG = {21,2,xmlNdS,xmlNdL}; -static const xmlChSRange xmlNoS[] = {{0xb2, 0xb3}, {0xb9, 0xb9}, - {0xbc, 0xbe}, {0x9f4, 0x9f9}, {0xbf0, 0xbf2}, {0xf2a, 0xf33}, - {0x1372, 0x137c}, {0x17f0, 0x17f9}, {0x2070, 0x2070}, {0x2074, 0x2079}, - {0x2080, 0x2089}, {0x2153, 0x215f}, {0x2460, 0x249b}, {0x24ea, 0x24ff}, - {0x2776, 0x2793}, {0x3192, 0x3195}, {0x3220, 0x3229}, {0x3251, 0x325f}, +static const xmlChSRange xmlNoS[] = {{0xb2, 0xb3}, {0xb9, 0xb9}, + {0xbc, 0xbe}, {0x9f4, 0x9f9}, {0xbf0, 0xbf2}, {0xf2a, 0xf33}, + {0x1372, 0x137c}, {0x17f0, 0x17f9}, {0x2070, 0x2070}, {0x2074, 0x2079}, + {0x2080, 0x2089}, {0x2153, 0x215f}, {0x2460, 0x249b}, {0x24ea, 0x24ff}, + {0x2776, 0x2793}, {0x3192, 0x3195}, {0x3220, 0x3229}, {0x3251, 0x325f}, {0x3280, 0x3289}, {0x32b1, 0x32bf} }; static const xmlChLRange xmlNoL[] = {{0x10107, 0x10133}, {0x10320, 0x10323} }; static xmlChRangeGroup xmlNoG = {20,2,xmlNoS,xmlNoL}; -static const xmlChSRange xmlPS[] = {{0x21, 0x23}, {0x25, 0x2a}, - {0x2c, 0x2f}, {0x3a, 0x3b}, {0x3f, 0x40}, {0x5b, 0x5d}, {0x5f, 0x5f}, - {0x7b, 0x7b}, {0x7d, 0x7d}, {0xa1, 0xa1}, {0xab, 0xab}, {0xb7, 0xb7}, - {0xbb, 0xbb}, {0xbf, 0xbf}, {0x37e, 0x37e}, {0x387, 0x387}, - {0x55a, 0x55f}, {0x589, 0x58a}, {0x5be, 0x5be}, {0x5c0, 0x5c0}, - {0x5c3, 0x5c3}, {0x5f3, 0x5f4}, {0x60c, 0x60d}, {0x61b, 0x61b}, - {0x61f, 0x61f}, {0x66a, 0x66d}, {0x6d4, 0x6d4}, {0x700, 0x70d}, - {0x964, 0x965}, {0x970, 0x970}, {0xdf4, 0xdf4}, {0xe4f, 0xe4f}, - {0xe5a, 0xe5b}, {0xf04, 0xf12}, {0xf3a, 0xf3d}, {0xf85, 0xf85}, - {0x104a, 0x104f}, {0x10fb, 0x10fb}, {0x1361, 0x1368}, {0x166d, 0x166e}, - {0x169b, 0x169c}, {0x16eb, 0x16ed}, {0x1735, 0x1736}, {0x17d4, 0x17d6}, - {0x17d8, 0x17da}, {0x1800, 0x180a}, {0x1944, 0x1945}, {0x2010, 0x2027}, - {0x2030, 0x2043}, {0x2045, 0x2051}, {0x2053, 0x2054}, {0x2057, 0x2057}, - {0x207d, 0x207e}, {0x208d, 0x208e}, {0x2329, 0x232a}, {0x23b4, 0x23b6}, - {0x2768, 0x2775}, {0x27e6, 0x27eb}, {0x2983, 0x2998}, {0x29d8, 0x29db}, - {0x29fc, 0x29fd}, {0x3001, 0x3003}, {0x3008, 0x3011}, {0x3014, 0x301f}, - {0x3030, 0x3030}, {0x303d, 0x303d}, {0x30a0, 0x30a0}, {0x30fb, 0x30fb}, - {0xfd3e, 0xfd3f}, {0xfe30, 0xfe52}, {0xfe54, 0xfe61}, {0xfe63, 0xfe63}, - {0xfe68, 0xfe68}, {0xfe6a, 0xfe6b}, {0xff01, 0xff03}, {0xff05, 0xff0a}, - {0xff0c, 0xff0f}, {0xff1a, 0xff1b}, {0xff1f, 0xff20}, {0xff3b, 0xff3d}, +static const xmlChSRange xmlPS[] = {{0x21, 0x23}, {0x25, 0x2a}, + {0x2c, 0x2f}, {0x3a, 0x3b}, {0x3f, 0x40}, {0x5b, 0x5d}, {0x5f, 0x5f}, + {0x7b, 0x7b}, {0x7d, 0x7d}, {0xa1, 0xa1}, {0xab, 0xab}, {0xb7, 0xb7}, + {0xbb, 0xbb}, {0xbf, 0xbf}, {0x37e, 0x37e}, {0x387, 0x387}, + {0x55a, 0x55f}, {0x589, 0x58a}, {0x5be, 0x5be}, {0x5c0, 0x5c0}, + {0x5c3, 0x5c3}, {0x5f3, 0x5f4}, {0x60c, 0x60d}, {0x61b, 0x61b}, + {0x61f, 0x61f}, {0x66a, 0x66d}, {0x6d4, 0x6d4}, {0x700, 0x70d}, + {0x964, 0x965}, {0x970, 0x970}, {0xdf4, 0xdf4}, {0xe4f, 0xe4f}, + {0xe5a, 0xe5b}, {0xf04, 0xf12}, {0xf3a, 0xf3d}, {0xf85, 0xf85}, + {0x104a, 0x104f}, {0x10fb, 0x10fb}, {0x1361, 0x1368}, {0x166d, 0x166e}, + {0x169b, 0x169c}, {0x16eb, 0x16ed}, {0x1735, 0x1736}, {0x17d4, 0x17d6}, + {0x17d8, 0x17da}, {0x1800, 0x180a}, {0x1944, 0x1945}, {0x2010, 0x2027}, + {0x2030, 0x2043}, {0x2045, 0x2051}, {0x2053, 0x2054}, {0x2057, 0x2057}, + {0x207d, 0x207e}, {0x208d, 0x208e}, {0x2329, 0x232a}, {0x23b4, 0x23b6}, + {0x2768, 0x2775}, {0x27e6, 0x27eb}, {0x2983, 0x2998}, {0x29d8, 0x29db}, + {0x29fc, 0x29fd}, {0x3001, 0x3003}, {0x3008, 0x3011}, {0x3014, 0x301f}, + {0x3030, 0x3030}, {0x303d, 0x303d}, {0x30a0, 0x30a0}, {0x30fb, 0x30fb}, + {0xfd3e, 0xfd3f}, {0xfe30, 0xfe52}, {0xfe54, 0xfe61}, {0xfe63, 0xfe63}, + {0xfe68, 0xfe68}, {0xfe6a, 0xfe6b}, {0xff01, 0xff03}, {0xff05, 0xff0a}, + {0xff0c, 0xff0f}, {0xff1a, 0xff1b}, {0xff1f, 0xff20}, {0xff3b, 0xff3d}, {0xff3f, 0xff3f}, {0xff5b, 0xff5b}, {0xff5d, 0xff5d}, {0xff5f, 0xff65} }; static const xmlChLRange xmlPL[] = {{0x10100, 0x10101}, {0x1039f, 0x1039f} }; static xmlChRangeGroup xmlPG = {84,2,xmlPS,xmlPL}; -static const xmlChSRange xmlPdS[] = {{0x2d, 0x2d}, {0x58a, 0x58a}, - {0x1806, 0x1806}, {0x2010, 0x2015}, {0x301c, 0x301c}, {0x3030, 0x3030}, - {0x30a0, 0x30a0}, {0xfe31, 0xfe32}, {0xfe58, 0xfe58}, {0xfe63, 0xfe63}, +static const xmlChSRange xmlPdS[] = {{0x2d, 0x2d}, {0x58a, 0x58a}, + {0x1806, 0x1806}, {0x2010, 0x2015}, {0x301c, 0x301c}, {0x3030, 0x3030}, + {0x30a0, 0x30a0}, {0xfe31, 0xfe32}, {0xfe58, 0xfe58}, {0xfe63, 0xfe63}, {0xff0d, 0xff0d} }; static xmlChRangeGroup xmlPdG = {11,0,xmlPdS,NULL}; -static const xmlChSRange xmlPeS[] = {{0x29, 0x29}, {0x5d, 0x5d}, - {0x7d, 0x7d}, {0xf3b, 0xf3b}, {0xf3d, 0xf3d}, {0x169c, 0x169c}, - {0x2046, 0x2046}, {0x207e, 0x207e}, {0x208e, 0x208e}, {0x232a, 0x232a}, - {0x23b5, 0x23b5}, {0x2769, 0x2769}, {0x276b, 0x276b}, {0x276d, 0x276d}, - {0x276f, 0x276f}, {0x2771, 0x2771}, {0x2773, 0x2773}, {0x2775, 0x2775}, - {0x27e7, 0x27e7}, {0x27e9, 0x27e9}, {0x27eb, 0x27eb}, {0x2984, 0x2984}, - {0x2986, 0x2986}, {0x2988, 0x2988}, {0x298a, 0x298a}, {0x298c, 0x298c}, - {0x298e, 0x298e}, {0x2990, 0x2990}, {0x2992, 0x2992}, {0x2994, 0x2994}, - {0x2996, 0x2996}, {0x2998, 0x2998}, {0x29d9, 0x29d9}, {0x29db, 0x29db}, - {0x29fd, 0x29fd}, {0x3009, 0x3009}, {0x300b, 0x300b}, {0x300d, 0x300d}, - {0x300f, 0x300f}, {0x3011, 0x3011}, {0x3015, 0x3015}, {0x3017, 0x3017}, - {0x3019, 0x3019}, {0x301b, 0x301b}, {0x301e, 0x301f}, {0xfd3f, 0xfd3f}, - {0xfe36, 0xfe36}, {0xfe38, 0xfe38}, {0xfe3a, 0xfe3a}, {0xfe3c, 0xfe3c}, - {0xfe3e, 0xfe3e}, {0xfe40, 0xfe40}, {0xfe42, 0xfe42}, {0xfe44, 0xfe44}, - {0xfe48, 0xfe48}, {0xfe5a, 0xfe5a}, {0xfe5c, 0xfe5c}, {0xfe5e, 0xfe5e}, - {0xff09, 0xff09}, {0xff3d, 0xff3d}, {0xff5d, 0xff5d}, {0xff60, 0xff60}, +static const xmlChSRange xmlPeS[] = {{0x29, 0x29}, {0x5d, 0x5d}, + {0x7d, 0x7d}, {0xf3b, 0xf3b}, {0xf3d, 0xf3d}, {0x169c, 0x169c}, + {0x2046, 0x2046}, {0x207e, 0x207e}, {0x208e, 0x208e}, {0x232a, 0x232a}, + {0x23b5, 0x23b5}, {0x2769, 0x2769}, {0x276b, 0x276b}, {0x276d, 0x276d}, + {0x276f, 0x276f}, {0x2771, 0x2771}, {0x2773, 0x2773}, {0x2775, 0x2775}, + {0x27e7, 0x27e7}, {0x27e9, 0x27e9}, {0x27eb, 0x27eb}, {0x2984, 0x2984}, + {0x2986, 0x2986}, {0x2988, 0x2988}, {0x298a, 0x298a}, {0x298c, 0x298c}, + {0x298e, 0x298e}, {0x2990, 0x2990}, {0x2992, 0x2992}, {0x2994, 0x2994}, + {0x2996, 0x2996}, {0x2998, 0x2998}, {0x29d9, 0x29d9}, {0x29db, 0x29db}, + {0x29fd, 0x29fd}, {0x3009, 0x3009}, {0x300b, 0x300b}, {0x300d, 0x300d}, + {0x300f, 0x300f}, {0x3011, 0x3011}, {0x3015, 0x3015}, {0x3017, 0x3017}, + {0x3019, 0x3019}, {0x301b, 0x301b}, {0x301e, 0x301f}, {0xfd3f, 0xfd3f}, + {0xfe36, 0xfe36}, {0xfe38, 0xfe38}, {0xfe3a, 0xfe3a}, {0xfe3c, 0xfe3c}, + {0xfe3e, 0xfe3e}, {0xfe40, 0xfe40}, {0xfe42, 0xfe42}, {0xfe44, 0xfe44}, + {0xfe48, 0xfe48}, {0xfe5a, 0xfe5a}, {0xfe5c, 0xfe5c}, {0xfe5e, 0xfe5e}, + {0xff09, 0xff09}, {0xff3d, 0xff3d}, {0xff5d, 0xff5d}, {0xff60, 0xff60}, {0xff63, 0xff63} }; static xmlChRangeGroup xmlPeG = {63,0,xmlPeS,NULL}; -static const xmlChSRange xmlPoS[] = {{0x21, 0x23}, {0x25, 0x27}, - {0x2a, 0x2a}, {0x2c, 0x2c}, {0x2e, 0x2f}, {0x3a, 0x3b}, {0x3f, 0x40}, - {0x5c, 0x5c}, {0xa1, 0xa1}, {0xb7, 0xb7}, {0xbf, 0xbf}, {0x37e, 0x37e}, - {0x387, 0x387}, {0x55a, 0x55f}, {0x589, 0x589}, {0x5be, 0x5be}, - {0x5c0, 0x5c0}, {0x5c3, 0x5c3}, {0x5f3, 0x5f4}, {0x60c, 0x60d}, - {0x61b, 0x61b}, {0x61f, 0x61f}, {0x66a, 0x66d}, {0x6d4, 0x6d4}, - {0x700, 0x70d}, {0x964, 0x965}, {0x970, 0x970}, {0xdf4, 0xdf4}, - {0xe4f, 0xe4f}, {0xe5a, 0xe5b}, {0xf04, 0xf12}, {0xf85, 0xf85}, - {0x104a, 0x104f}, {0x10fb, 0x10fb}, {0x1361, 0x1368}, {0x166d, 0x166e}, - {0x16eb, 0x16ed}, {0x1735, 0x1736}, {0x17d4, 0x17d6}, {0x17d8, 0x17da}, - {0x1800, 0x1805}, {0x1807, 0x180a}, {0x1944, 0x1945}, {0x2016, 0x2017}, - {0x2020, 0x2027}, {0x2030, 0x2038}, {0x203b, 0x203e}, {0x2041, 0x2043}, - {0x2047, 0x2051}, {0x2053, 0x2053}, {0x2057, 0x2057}, {0x23b6, 0x23b6}, - {0x3001, 0x3003}, {0x303d, 0x303d}, {0xfe30, 0xfe30}, {0xfe45, 0xfe46}, - {0xfe49, 0xfe4c}, {0xfe50, 0xfe52}, {0xfe54, 0xfe57}, {0xfe5f, 0xfe61}, - {0xfe68, 0xfe68}, {0xfe6a, 0xfe6b}, {0xff01, 0xff03}, {0xff05, 0xff07}, - {0xff0a, 0xff0a}, {0xff0c, 0xff0c}, {0xff0e, 0xff0f}, {0xff1a, 0xff1b}, +static const xmlChSRange xmlPoS[] = {{0x21, 0x23}, {0x25, 0x27}, + {0x2a, 0x2a}, {0x2c, 0x2c}, {0x2e, 0x2f}, {0x3a, 0x3b}, {0x3f, 0x40}, + {0x5c, 0x5c}, {0xa1, 0xa1}, {0xb7, 0xb7}, {0xbf, 0xbf}, {0x37e, 0x37e}, + {0x387, 0x387}, {0x55a, 0x55f}, {0x589, 0x589}, {0x5be, 0x5be}, + {0x5c0, 0x5c0}, {0x5c3, 0x5c3}, {0x5f3, 0x5f4}, {0x60c, 0x60d}, + {0x61b, 0x61b}, {0x61f, 0x61f}, {0x66a, 0x66d}, {0x6d4, 0x6d4}, + {0x700, 0x70d}, {0x964, 0x965}, {0x970, 0x970}, {0xdf4, 0xdf4}, + {0xe4f, 0xe4f}, {0xe5a, 0xe5b}, {0xf04, 0xf12}, {0xf85, 0xf85}, + {0x104a, 0x104f}, {0x10fb, 0x10fb}, {0x1361, 0x1368}, {0x166d, 0x166e}, + {0x16eb, 0x16ed}, {0x1735, 0x1736}, {0x17d4, 0x17d6}, {0x17d8, 0x17da}, + {0x1800, 0x1805}, {0x1807, 0x180a}, {0x1944, 0x1945}, {0x2016, 0x2017}, + {0x2020, 0x2027}, {0x2030, 0x2038}, {0x203b, 0x203e}, {0x2041, 0x2043}, + {0x2047, 0x2051}, {0x2053, 0x2053}, {0x2057, 0x2057}, {0x23b6, 0x23b6}, + {0x3001, 0x3003}, {0x303d, 0x303d}, {0xfe30, 0xfe30}, {0xfe45, 0xfe46}, + {0xfe49, 0xfe4c}, {0xfe50, 0xfe52}, {0xfe54, 0xfe57}, {0xfe5f, 0xfe61}, + {0xfe68, 0xfe68}, {0xfe6a, 0xfe6b}, {0xff01, 0xff03}, {0xff05, 0xff07}, + {0xff0a, 0xff0a}, {0xff0c, 0xff0c}, {0xff0e, 0xff0f}, {0xff1a, 0xff1b}, {0xff1f, 0xff20}, {0xff3c, 0xff3c}, {0xff61, 0xff61}, {0xff64, 0xff64} }; static const xmlChLRange xmlPoL[] = {{0x10100, 0x10101}, {0x1039f, 0x1039f} }; static xmlChRangeGroup xmlPoG = {72,2,xmlPoS,xmlPoL}; -static const xmlChSRange xmlPsS[] = {{0x28, 0x28}, {0x5b, 0x5b}, - {0x7b, 0x7b}, {0xf3a, 0xf3a}, {0xf3c, 0xf3c}, {0x169b, 0x169b}, - {0x201a, 0x201a}, {0x201e, 0x201e}, {0x2045, 0x2045}, {0x207d, 0x207d}, - {0x208d, 0x208d}, {0x2329, 0x2329}, {0x23b4, 0x23b4}, {0x2768, 0x2768}, - {0x276a, 0x276a}, {0x276c, 0x276c}, {0x276e, 0x276e}, {0x2770, 0x2770}, - {0x2772, 0x2772}, {0x2774, 0x2774}, {0x27e6, 0x27e6}, {0x27e8, 0x27e8}, - {0x27ea, 0x27ea}, {0x2983, 0x2983}, {0x2985, 0x2985}, {0x2987, 0x2987}, - {0x2989, 0x2989}, {0x298b, 0x298b}, {0x298d, 0x298d}, {0x298f, 0x298f}, - {0x2991, 0x2991}, {0x2993, 0x2993}, {0x2995, 0x2995}, {0x2997, 0x2997}, - {0x29d8, 0x29d8}, {0x29da, 0x29da}, {0x29fc, 0x29fc}, {0x3008, 0x3008}, - {0x300a, 0x300a}, {0x300c, 0x300c}, {0x300e, 0x300e}, {0x3010, 0x3010}, - {0x3014, 0x3014}, {0x3016, 0x3016}, {0x3018, 0x3018}, {0x301a, 0x301a}, - {0x301d, 0x301d}, {0xfd3e, 0xfd3e}, {0xfe35, 0xfe35}, {0xfe37, 0xfe37}, - {0xfe39, 0xfe39}, {0xfe3b, 0xfe3b}, {0xfe3d, 0xfe3d}, {0xfe3f, 0xfe3f}, - {0xfe41, 0xfe41}, {0xfe43, 0xfe43}, {0xfe47, 0xfe47}, {0xfe59, 0xfe59}, - {0xfe5b, 0xfe5b}, {0xfe5d, 0xfe5d}, {0xff08, 0xff08}, {0xff3b, 0xff3b}, +static const xmlChSRange xmlPsS[] = {{0x28, 0x28}, {0x5b, 0x5b}, + {0x7b, 0x7b}, {0xf3a, 0xf3a}, {0xf3c, 0xf3c}, {0x169b, 0x169b}, + {0x201a, 0x201a}, {0x201e, 0x201e}, {0x2045, 0x2045}, {0x207d, 0x207d}, + {0x208d, 0x208d}, {0x2329, 0x2329}, {0x23b4, 0x23b4}, {0x2768, 0x2768}, + {0x276a, 0x276a}, {0x276c, 0x276c}, {0x276e, 0x276e}, {0x2770, 0x2770}, + {0x2772, 0x2772}, {0x2774, 0x2774}, {0x27e6, 0x27e6}, {0x27e8, 0x27e8}, + {0x27ea, 0x27ea}, {0x2983, 0x2983}, {0x2985, 0x2985}, {0x2987, 0x2987}, + {0x2989, 0x2989}, {0x298b, 0x298b}, {0x298d, 0x298d}, {0x298f, 0x298f}, + {0x2991, 0x2991}, {0x2993, 0x2993}, {0x2995, 0x2995}, {0x2997, 0x2997}, + {0x29d8, 0x29d8}, {0x29da, 0x29da}, {0x29fc, 0x29fc}, {0x3008, 0x3008}, + {0x300a, 0x300a}, {0x300c, 0x300c}, {0x300e, 0x300e}, {0x3010, 0x3010}, + {0x3014, 0x3014}, {0x3016, 0x3016}, {0x3018, 0x3018}, {0x301a, 0x301a}, + {0x301d, 0x301d}, {0xfd3e, 0xfd3e}, {0xfe35, 0xfe35}, {0xfe37, 0xfe37}, + {0xfe39, 0xfe39}, {0xfe3b, 0xfe3b}, {0xfe3d, 0xfe3d}, {0xfe3f, 0xfe3f}, + {0xfe41, 0xfe41}, {0xfe43, 0xfe43}, {0xfe47, 0xfe47}, {0xfe59, 0xfe59}, + {0xfe5b, 0xfe5b}, {0xfe5d, 0xfe5d}, {0xff08, 0xff08}, {0xff3b, 0xff3b}, {0xff5b, 0xff5b}, {0xff5f, 0xff5f}, {0xff62, 0xff62} }; static xmlChRangeGroup xmlPsG = {65,0,xmlPsS,NULL}; -static const xmlChSRange xmlSS[] = {{0x24, 0x24}, {0x2b, 0x2b}, - {0x3c, 0x3e}, {0x5e, 0x5e}, {0x60, 0x60}, {0x7c, 0x7c}, {0x7e, 0x7e}, - {0xa2, 0xa9}, {0xac, 0xac}, {0xae, 0xb1}, {0xb4, 0xb4}, {0xb6, 0xb6}, - {0xb8, 0xb8}, {0xd7, 0xd7}, {0xf7, 0xf7}, {0x2c2, 0x2c5}, - {0x2d2, 0x2df}, {0x2e5, 0x2ed}, {0x2ef, 0x2ff}, {0x374, 0x375}, - {0x384, 0x385}, {0x3f6, 0x3f6}, {0x482, 0x482}, {0x60e, 0x60f}, - {0x6e9, 0x6e9}, {0x6fd, 0x6fe}, {0x9f2, 0x9f3}, {0x9fa, 0x9fa}, - {0xaf1, 0xaf1}, {0xb70, 0xb70}, {0xbf3, 0xbfa}, {0xe3f, 0xe3f}, - {0xf01, 0xf03}, {0xf13, 0xf17}, {0xf1a, 0xf1f}, {0xf34, 0xf34}, - {0xf36, 0xf36}, {0xf38, 0xf38}, {0xfbe, 0xfc5}, {0xfc7, 0xfcc}, - {0xfcf, 0xfcf}, {0x17db, 0x17db}, {0x1940, 0x1940}, {0x19e0, 0x19ff}, - {0x1fbd, 0x1fbd}, {0x1fbf, 0x1fc1}, {0x1fcd, 0x1fcf}, {0x1fdd, 0x1fdf}, - {0x1fed, 0x1fef}, {0x1ffd, 0x1ffe}, {0x2044, 0x2044}, {0x2052, 0x2052}, - {0x207a, 0x207c}, {0x208a, 0x208c}, {0x20a0, 0x20b1}, {0x2100, 0x2101}, - {0x2103, 0x2106}, {0x2108, 0x2109}, {0x2114, 0x2114}, {0x2116, 0x2118}, - {0x211e, 0x2123}, {0x2125, 0x2125}, {0x2127, 0x2127}, {0x2129, 0x2129}, - {0x212e, 0x212e}, {0x2132, 0x2132}, {0x213a, 0x213b}, {0x2140, 0x2144}, - {0x214a, 0x214b}, {0x2190, 0x2328}, {0x232b, 0x23b3}, {0x23b7, 0x23d0}, - {0x2400, 0x2426}, {0x2440, 0x244a}, {0x249c, 0x24e9}, {0x2500, 0x2617}, - {0x2619, 0x267d}, {0x2680, 0x2691}, {0x26a0, 0x26a1}, {0x2701, 0x2704}, - {0x2706, 0x2709}, {0x270c, 0x2727}, {0x2729, 0x274b}, {0x274d, 0x274d}, - {0x274f, 0x2752}, {0x2756, 0x2756}, {0x2758, 0x275e}, {0x2761, 0x2767}, - {0x2794, 0x2794}, {0x2798, 0x27af}, {0x27b1, 0x27be}, {0x27d0, 0x27e5}, - {0x27f0, 0x2982}, {0x2999, 0x29d7}, {0x29dc, 0x29fb}, {0x29fe, 0x2b0d}, - {0x2e80, 0x2e99}, {0x2e9b, 0x2ef3}, {0x2f00, 0x2fd5}, {0x2ff0, 0x2ffb}, - {0x3004, 0x3004}, {0x3012, 0x3013}, {0x3020, 0x3020}, {0x3036, 0x3037}, - {0x303e, 0x303f}, {0x309b, 0x309c}, {0x3190, 0x3191}, {0x3196, 0x319f}, - {0x3200, 0x321e}, {0x322a, 0x3243}, {0x3250, 0x3250}, {0x3260, 0x327d}, - {0x327f, 0x327f}, {0x328a, 0x32b0}, {0x32c0, 0x32fe}, {0x3300, 0x33ff}, - {0x4dc0, 0x4dff}, {0xa490, 0xa4c6}, {0xfb29, 0xfb29}, {0xfdfc, 0xfdfd}, - {0xfe62, 0xfe62}, {0xfe64, 0xfe66}, {0xfe69, 0xfe69}, {0xff04, 0xff04}, - {0xff0b, 0xff0b}, {0xff1c, 0xff1e}, {0xff3e, 0xff3e}, {0xff40, 0xff40}, - {0xff5c, 0xff5c}, {0xff5e, 0xff5e}, {0xffe0, 0xffe6}, {0xffe8, 0xffee}, +static const xmlChSRange xmlSS[] = {{0x24, 0x24}, {0x2b, 0x2b}, + {0x3c, 0x3e}, {0x5e, 0x5e}, {0x60, 0x60}, {0x7c, 0x7c}, {0x7e, 0x7e}, + {0xa2, 0xa9}, {0xac, 0xac}, {0xae, 0xb1}, {0xb4, 0xb4}, {0xb6, 0xb6}, + {0xb8, 0xb8}, {0xd7, 0xd7}, {0xf7, 0xf7}, {0x2c2, 0x2c5}, + {0x2d2, 0x2df}, {0x2e5, 0x2ed}, {0x2ef, 0x2ff}, {0x374, 0x375}, + {0x384, 0x385}, {0x3f6, 0x3f6}, {0x482, 0x482}, {0x60e, 0x60f}, + {0x6e9, 0x6e9}, {0x6fd, 0x6fe}, {0x9f2, 0x9f3}, {0x9fa, 0x9fa}, + {0xaf1, 0xaf1}, {0xb70, 0xb70}, {0xbf3, 0xbfa}, {0xe3f, 0xe3f}, + {0xf01, 0xf03}, {0xf13, 0xf17}, {0xf1a, 0xf1f}, {0xf34, 0xf34}, + {0xf36, 0xf36}, {0xf38, 0xf38}, {0xfbe, 0xfc5}, {0xfc7, 0xfcc}, + {0xfcf, 0xfcf}, {0x17db, 0x17db}, {0x1940, 0x1940}, {0x19e0, 0x19ff}, + {0x1fbd, 0x1fbd}, {0x1fbf, 0x1fc1}, {0x1fcd, 0x1fcf}, {0x1fdd, 0x1fdf}, + {0x1fed, 0x1fef}, {0x1ffd, 0x1ffe}, {0x2044, 0x2044}, {0x2052, 0x2052}, + {0x207a, 0x207c}, {0x208a, 0x208c}, {0x20a0, 0x20b1}, {0x2100, 0x2101}, + {0x2103, 0x2106}, {0x2108, 0x2109}, {0x2114, 0x2114}, {0x2116, 0x2118}, + {0x211e, 0x2123}, {0x2125, 0x2125}, {0x2127, 0x2127}, {0x2129, 0x2129}, + {0x212e, 0x212e}, {0x2132, 0x2132}, {0x213a, 0x213b}, {0x2140, 0x2144}, + {0x214a, 0x214b}, {0x2190, 0x2328}, {0x232b, 0x23b3}, {0x23b7, 0x23d0}, + {0x2400, 0x2426}, {0x2440, 0x244a}, {0x249c, 0x24e9}, {0x2500, 0x2617}, + {0x2619, 0x267d}, {0x2680, 0x2691}, {0x26a0, 0x26a1}, {0x2701, 0x2704}, + {0x2706, 0x2709}, {0x270c, 0x2727}, {0x2729, 0x274b}, {0x274d, 0x274d}, + {0x274f, 0x2752}, {0x2756, 0x2756}, {0x2758, 0x275e}, {0x2761, 0x2767}, + {0x2794, 0x2794}, {0x2798, 0x27af}, {0x27b1, 0x27be}, {0x27d0, 0x27e5}, + {0x27f0, 0x2982}, {0x2999, 0x29d7}, {0x29dc, 0x29fb}, {0x29fe, 0x2b0d}, + {0x2e80, 0x2e99}, {0x2e9b, 0x2ef3}, {0x2f00, 0x2fd5}, {0x2ff0, 0x2ffb}, + {0x3004, 0x3004}, {0x3012, 0x3013}, {0x3020, 0x3020}, {0x3036, 0x3037}, + {0x303e, 0x303f}, {0x309b, 0x309c}, {0x3190, 0x3191}, {0x3196, 0x319f}, + {0x3200, 0x321e}, {0x322a, 0x3243}, {0x3250, 0x3250}, {0x3260, 0x327d}, + {0x327f, 0x327f}, {0x328a, 0x32b0}, {0x32c0, 0x32fe}, {0x3300, 0x33ff}, + {0x4dc0, 0x4dff}, {0xa490, 0xa4c6}, {0xfb29, 0xfb29}, {0xfdfc, 0xfdfd}, + {0xfe62, 0xfe62}, {0xfe64, 0xfe66}, {0xfe69, 0xfe69}, {0xff04, 0xff04}, + {0xff0b, 0xff0b}, {0xff1c, 0xff1e}, {0xff3e, 0xff3e}, {0xff40, 0xff40}, + {0xff5c, 0xff5c}, {0xff5e, 0xff5e}, {0xffe0, 0xffe6}, {0xffe8, 0xffee}, {0xfffc, 0xfffd} }; -static const xmlChLRange xmlSL[] = {{0x10102, 0x10102}, {0x10137, 0x1013f}, - {0x1d000, 0x1d0f5}, {0x1d100, 0x1d126}, {0x1d12a, 0x1d164}, - {0x1d16a, 0x1d16c}, {0x1d183, 0x1d184}, {0x1d18c, 0x1d1a9}, - {0x1d1ae, 0x1d1dd}, {0x1d300, 0x1d356}, {0x1d6c1, 0x1d6c1}, - {0x1d6db, 0x1d6db}, {0x1d6fb, 0x1d6fb}, {0x1d715, 0x1d715}, - {0x1d735, 0x1d735}, {0x1d74f, 0x1d74f}, {0x1d76f, 0x1d76f}, +static const xmlChLRange xmlSL[] = {{0x10102, 0x10102}, {0x10137, 0x1013f}, + {0x1d000, 0x1d0f5}, {0x1d100, 0x1d126}, {0x1d12a, 0x1d164}, + {0x1d16a, 0x1d16c}, {0x1d183, 0x1d184}, {0x1d18c, 0x1d1a9}, + {0x1d1ae, 0x1d1dd}, {0x1d300, 0x1d356}, {0x1d6c1, 0x1d6c1}, + {0x1d6db, 0x1d6db}, {0x1d6fb, 0x1d6fb}, {0x1d715, 0x1d715}, + {0x1d735, 0x1d735}, {0x1d74f, 0x1d74f}, {0x1d76f, 0x1d76f}, {0x1d789, 0x1d789}, {0x1d7a9, 0x1d7a9}, {0x1d7c3, 0x1d7c3} }; static xmlChRangeGroup xmlSG = {133,20,xmlSS,xmlSL}; -static const xmlChSRange xmlScS[] = {{0x24, 0x24}, {0xa2, 0xa5}, - {0x9f2, 0x9f3}, {0xaf1, 0xaf1}, {0xbf9, 0xbf9}, {0xe3f, 0xe3f}, - {0x17db, 0x17db}, {0x20a0, 0x20b1}, {0xfdfc, 0xfdfc}, {0xfe69, 0xfe69}, +static const xmlChSRange xmlScS[] = {{0x24, 0x24}, {0xa2, 0xa5}, + {0x9f2, 0x9f3}, {0xaf1, 0xaf1}, {0xbf9, 0xbf9}, {0xe3f, 0xe3f}, + {0x17db, 0x17db}, {0x20a0, 0x20b1}, {0xfdfc, 0xfdfc}, {0xfe69, 0xfe69}, {0xff04, 0xff04}, {0xffe0, 0xffe1}, {0xffe5, 0xffe6} }; static xmlChRangeGroup xmlScG = {13,0,xmlScS,NULL}; -static const xmlChSRange xmlSkS[] = {{0x5e, 0x5e}, {0x60, 0x60}, - {0xa8, 0xa8}, {0xaf, 0xaf}, {0xb4, 0xb4}, {0xb8, 0xb8}, {0x2c2, 0x2c5}, - {0x2d2, 0x2df}, {0x2e5, 0x2ed}, {0x2ef, 0x2ff}, {0x374, 0x375}, - {0x384, 0x385}, {0x1fbd, 0x1fbd}, {0x1fbf, 0x1fc1}, {0x1fcd, 0x1fcf}, - {0x1fdd, 0x1fdf}, {0x1fed, 0x1fef}, {0x1ffd, 0x1ffe}, {0x309b, 0x309c}, +static const xmlChSRange xmlSkS[] = {{0x5e, 0x5e}, {0x60, 0x60}, + {0xa8, 0xa8}, {0xaf, 0xaf}, {0xb4, 0xb4}, {0xb8, 0xb8}, {0x2c2, 0x2c5}, + {0x2d2, 0x2df}, {0x2e5, 0x2ed}, {0x2ef, 0x2ff}, {0x374, 0x375}, + {0x384, 0x385}, {0x1fbd, 0x1fbd}, {0x1fbf, 0x1fc1}, {0x1fcd, 0x1fcf}, + {0x1fdd, 0x1fdf}, {0x1fed, 0x1fef}, {0x1ffd, 0x1ffe}, {0x309b, 0x309c}, {0xff3e, 0xff3e}, {0xff40, 0xff40}, {0xffe3, 0xffe3} }; static xmlChRangeGroup xmlSkG = {22,0,xmlSkS,NULL}; -static const xmlChSRange xmlSmS[] = {{0x2b, 0x2b}, {0x3c, 0x3e}, - {0x7c, 0x7c}, {0x7e, 0x7e}, {0xac, 0xac}, {0xb1, 0xb1}, {0xd7, 0xd7}, - {0xf7, 0xf7}, {0x3f6, 0x3f6}, {0x2044, 0x2044}, {0x2052, 0x2052}, - {0x207a, 0x207c}, {0x208a, 0x208c}, {0x2140, 0x2144}, {0x214b, 0x214b}, - {0x2190, 0x2194}, {0x219a, 0x219b}, {0x21a0, 0x21a0}, {0x21a3, 0x21a3}, - {0x21a6, 0x21a6}, {0x21ae, 0x21ae}, {0x21ce, 0x21cf}, {0x21d2, 0x21d2}, - {0x21d4, 0x21d4}, {0x21f4, 0x22ff}, {0x2308, 0x230b}, {0x2320, 0x2321}, - {0x237c, 0x237c}, {0x239b, 0x23b3}, {0x25b7, 0x25b7}, {0x25c1, 0x25c1}, - {0x25f8, 0x25ff}, {0x266f, 0x266f}, {0x27d0, 0x27e5}, {0x27f0, 0x27ff}, - {0x2900, 0x2982}, {0x2999, 0x29d7}, {0x29dc, 0x29fb}, {0x29fe, 0x2aff}, - {0xfb29, 0xfb29}, {0xfe62, 0xfe62}, {0xfe64, 0xfe66}, {0xff0b, 0xff0b}, - {0xff1c, 0xff1e}, {0xff5c, 0xff5c}, {0xff5e, 0xff5e}, {0xffe2, 0xffe2}, +static const xmlChSRange xmlSmS[] = {{0x2b, 0x2b}, {0x3c, 0x3e}, + {0x7c, 0x7c}, {0x7e, 0x7e}, {0xac, 0xac}, {0xb1, 0xb1}, {0xd7, 0xd7}, + {0xf7, 0xf7}, {0x3f6, 0x3f6}, {0x2044, 0x2044}, {0x2052, 0x2052}, + {0x207a, 0x207c}, {0x208a, 0x208c}, {0x2140, 0x2144}, {0x214b, 0x214b}, + {0x2190, 0x2194}, {0x219a, 0x219b}, {0x21a0, 0x21a0}, {0x21a3, 0x21a3}, + {0x21a6, 0x21a6}, {0x21ae, 0x21ae}, {0x21ce, 0x21cf}, {0x21d2, 0x21d2}, + {0x21d4, 0x21d4}, {0x21f4, 0x22ff}, {0x2308, 0x230b}, {0x2320, 0x2321}, + {0x237c, 0x237c}, {0x239b, 0x23b3}, {0x25b7, 0x25b7}, {0x25c1, 0x25c1}, + {0x25f8, 0x25ff}, {0x266f, 0x266f}, {0x27d0, 0x27e5}, {0x27f0, 0x27ff}, + {0x2900, 0x2982}, {0x2999, 0x29d7}, {0x29dc, 0x29fb}, {0x29fe, 0x2aff}, + {0xfb29, 0xfb29}, {0xfe62, 0xfe62}, {0xfe64, 0xfe66}, {0xff0b, 0xff0b}, + {0xff1c, 0xff1e}, {0xff5c, 0xff5c}, {0xff5e, 0xff5e}, {0xffe2, 0xffe2}, {0xffe9, 0xffec} }; -static const xmlChLRange xmlSmL[] = {{0x1d6c1, 0x1d6c1}, {0x1d6db, 0x1d6db}, - {0x1d6fb, 0x1d6fb}, {0x1d715, 0x1d715}, {0x1d735, 0x1d735}, - {0x1d74f, 0x1d74f}, {0x1d76f, 0x1d76f}, {0x1d789, 0x1d789}, +static const xmlChLRange xmlSmL[] = {{0x1d6c1, 0x1d6c1}, {0x1d6db, 0x1d6db}, + {0x1d6fb, 0x1d6fb}, {0x1d715, 0x1d715}, {0x1d735, 0x1d735}, + {0x1d74f, 0x1d74f}, {0x1d76f, 0x1d76f}, {0x1d789, 0x1d789}, {0x1d7a9, 0x1d7a9}, {0x1d7c3, 0x1d7c3} }; static xmlChRangeGroup xmlSmG = {48,10,xmlSmS,xmlSmL}; -static const xmlChSRange xmlSoS[] = {{0xa6, 0xa7}, {0xa9, 0xa9}, - {0xae, 0xae}, {0xb0, 0xb0}, {0xb6, 0xb6}, {0x482, 0x482}, - {0x60e, 0x60f}, {0x6e9, 0x6e9}, {0x6fd, 0x6fe}, {0x9fa, 0x9fa}, - {0xb70, 0xb70}, {0xbf3, 0xbf8}, {0xbfa, 0xbfa}, {0xf01, 0xf03}, - {0xf13, 0xf17}, {0xf1a, 0xf1f}, {0xf34, 0xf34}, {0xf36, 0xf36}, - {0xf38, 0xf38}, {0xfbe, 0xfc5}, {0xfc7, 0xfcc}, {0xfcf, 0xfcf}, - {0x1940, 0x1940}, {0x19e0, 0x19ff}, {0x2100, 0x2101}, {0x2103, 0x2106}, - {0x2108, 0x2109}, {0x2114, 0x2114}, {0x2116, 0x2118}, {0x211e, 0x2123}, - {0x2125, 0x2125}, {0x2127, 0x2127}, {0x2129, 0x2129}, {0x212e, 0x212e}, - {0x2132, 0x2132}, {0x213a, 0x213b}, {0x214a, 0x214a}, {0x2195, 0x2199}, - {0x219c, 0x219f}, {0x21a1, 0x21a2}, {0x21a4, 0x21a5}, {0x21a7, 0x21ad}, - {0x21af, 0x21cd}, {0x21d0, 0x21d1}, {0x21d3, 0x21d3}, {0x21d5, 0x21f3}, - {0x2300, 0x2307}, {0x230c, 0x231f}, {0x2322, 0x2328}, {0x232b, 0x237b}, - {0x237d, 0x239a}, {0x23b7, 0x23d0}, {0x2400, 0x2426}, {0x2440, 0x244a}, - {0x249c, 0x24e9}, {0x2500, 0x25b6}, {0x25b8, 0x25c0}, {0x25c2, 0x25f7}, - {0x2600, 0x2617}, {0x2619, 0x266e}, {0x2670, 0x267d}, {0x2680, 0x2691}, - {0x26a0, 0x26a1}, {0x2701, 0x2704}, {0x2706, 0x2709}, {0x270c, 0x2727}, - {0x2729, 0x274b}, {0x274d, 0x274d}, {0x274f, 0x2752}, {0x2756, 0x2756}, - {0x2758, 0x275e}, {0x2761, 0x2767}, {0x2794, 0x2794}, {0x2798, 0x27af}, - {0x27b1, 0x27be}, {0x2800, 0x28ff}, {0x2b00, 0x2b0d}, {0x2e80, 0x2e99}, - {0x2e9b, 0x2ef3}, {0x2f00, 0x2fd5}, {0x2ff0, 0x2ffb}, {0x3004, 0x3004}, - {0x3012, 0x3013}, {0x3020, 0x3020}, {0x3036, 0x3037}, {0x303e, 0x303f}, - {0x3190, 0x3191}, {0x3196, 0x319f}, {0x3200, 0x321e}, {0x322a, 0x3243}, - {0x3250, 0x3250}, {0x3260, 0x327d}, {0x327f, 0x327f}, {0x328a, 0x32b0}, - {0x32c0, 0x32fe}, {0x3300, 0x33ff}, {0x4dc0, 0x4dff}, {0xa490, 0xa4c6}, - {0xfdfd, 0xfdfd}, {0xffe4, 0xffe4}, {0xffe8, 0xffe8}, {0xffed, 0xffee}, +static const xmlChSRange xmlSoS[] = {{0xa6, 0xa7}, {0xa9, 0xa9}, + {0xae, 0xae}, {0xb0, 0xb0}, {0xb6, 0xb6}, {0x482, 0x482}, + {0x60e, 0x60f}, {0x6e9, 0x6e9}, {0x6fd, 0x6fe}, {0x9fa, 0x9fa}, + {0xb70, 0xb70}, {0xbf3, 0xbf8}, {0xbfa, 0xbfa}, {0xf01, 0xf03}, + {0xf13, 0xf17}, {0xf1a, 0xf1f}, {0xf34, 0xf34}, {0xf36, 0xf36}, + {0xf38, 0xf38}, {0xfbe, 0xfc5}, {0xfc7, 0xfcc}, {0xfcf, 0xfcf}, + {0x1940, 0x1940}, {0x19e0, 0x19ff}, {0x2100, 0x2101}, {0x2103, 0x2106}, + {0x2108, 0x2109}, {0x2114, 0x2114}, {0x2116, 0x2118}, {0x211e, 0x2123}, + {0x2125, 0x2125}, {0x2127, 0x2127}, {0x2129, 0x2129}, {0x212e, 0x212e}, + {0x2132, 0x2132}, {0x213a, 0x213b}, {0x214a, 0x214a}, {0x2195, 0x2199}, + {0x219c, 0x219f}, {0x21a1, 0x21a2}, {0x21a4, 0x21a5}, {0x21a7, 0x21ad}, + {0x21af, 0x21cd}, {0x21d0, 0x21d1}, {0x21d3, 0x21d3}, {0x21d5, 0x21f3}, + {0x2300, 0x2307}, {0x230c, 0x231f}, {0x2322, 0x2328}, {0x232b, 0x237b}, + {0x237d, 0x239a}, {0x23b7, 0x23d0}, {0x2400, 0x2426}, {0x2440, 0x244a}, + {0x249c, 0x24e9}, {0x2500, 0x25b6}, {0x25b8, 0x25c0}, {0x25c2, 0x25f7}, + {0x2600, 0x2617}, {0x2619, 0x266e}, {0x2670, 0x267d}, {0x2680, 0x2691}, + {0x26a0, 0x26a1}, {0x2701, 0x2704}, {0x2706, 0x2709}, {0x270c, 0x2727}, + {0x2729, 0x274b}, {0x274d, 0x274d}, {0x274f, 0x2752}, {0x2756, 0x2756}, + {0x2758, 0x275e}, {0x2761, 0x2767}, {0x2794, 0x2794}, {0x2798, 0x27af}, + {0x27b1, 0x27be}, {0x2800, 0x28ff}, {0x2b00, 0x2b0d}, {0x2e80, 0x2e99}, + {0x2e9b, 0x2ef3}, {0x2f00, 0x2fd5}, {0x2ff0, 0x2ffb}, {0x3004, 0x3004}, + {0x3012, 0x3013}, {0x3020, 0x3020}, {0x3036, 0x3037}, {0x303e, 0x303f}, + {0x3190, 0x3191}, {0x3196, 0x319f}, {0x3200, 0x321e}, {0x322a, 0x3243}, + {0x3250, 0x3250}, {0x3260, 0x327d}, {0x327f, 0x327f}, {0x328a, 0x32b0}, + {0x32c0, 0x32fe}, {0x3300, 0x33ff}, {0x4dc0, 0x4dff}, {0xa490, 0xa4c6}, + {0xfdfd, 0xfdfd}, {0xffe4, 0xffe4}, {0xffe8, 0xffe8}, {0xffed, 0xffee}, {0xfffc, 0xfffd} }; -static const xmlChLRange xmlSoL[] = {{0x10102, 0x10102}, {0x10137, 0x1013f}, - {0x1d000, 0x1d0f5}, {0x1d100, 0x1d126}, {0x1d12a, 0x1d164}, - {0x1d16a, 0x1d16c}, {0x1d183, 0x1d184}, {0x1d18c, 0x1d1a9}, +static const xmlChLRange xmlSoL[] = {{0x10102, 0x10102}, {0x10137, 0x1013f}, + {0x1d000, 0x1d0f5}, {0x1d100, 0x1d126}, {0x1d12a, 0x1d164}, + {0x1d16a, 0x1d16c}, {0x1d183, 0x1d184}, {0x1d18c, 0x1d1a9}, {0x1d1ae, 0x1d1dd}, {0x1d300, 0x1d356} }; static xmlChRangeGroup xmlSoG = {103,10,xmlSoS,xmlSoL}; -static const xmlChSRange xmlZS[] = {{0x20, 0x20}, {0xa0, 0xa0}, - {0x1680, 0x1680}, {0x180e, 0x180e}, {0x2000, 0x200a}, {0x2028, 0x2029}, +static const xmlChSRange xmlZS[] = {{0x20, 0x20}, {0xa0, 0xa0}, + {0x1680, 0x1680}, {0x180e, 0x180e}, {0x2000, 0x200a}, {0x2028, 0x2029}, {0x202f, 0x202f}, {0x205f, 0x205f}, {0x3000, 0x3000} }; static xmlChRangeGroup xmlZG = {9,0,xmlZS,NULL}; @@ -961,7 +961,7 @@ static xmlIntFunc else low = mid + 1; } - return (NULL); + return (NULL); } /** diff --git a/xmlwriter.c b/xmlwriter.c index 11b15e0..d3f29f8 100644 --- a/xmlwriter.c +++ b/xmlwriter.c @@ -21,6 +21,10 @@ #include +#include "buf.h" +#include "enc.h" +#include "save.h" + #define B64LINELEN 72 #define B64CRLF "\r\n" @@ -548,9 +552,9 @@ xmlTextWriterStartDocument(xmlTextWriterPtr writer, const char *version, writer->out->encoder = encoder; if (encoder != NULL) { if (writer->out->conv == NULL) { - writer->out->conv = xmlBufferCreateSize(4000); + writer->out->conv = xmlBufCreateSize(4000); } - xmlCharEncOutFunc(encoder, writer->out->conv, NULL); + xmlCharEncOutput(writer->out, 1); if ((writer->doc != NULL) && (writer->doc->encoding == NULL)) writer->doc->encoding = xmlStrdup((xmlChar *)writer->out->encoder->name); } else @@ -1074,10 +1078,10 @@ xmlTextWriterStartElementNS(xmlTextWriterPtr writer, sum += count; if (namespaceURI != 0) { - xmlTextWriterNsStackEntry *p = (xmlTextWriterNsStackEntry *) + xmlTextWriterNsStackEntry *p = (xmlTextWriterNsStackEntry *) xmlMalloc(sizeof(xmlTextWriterNsStackEntry)); if (p == 0) { - xmlWriterErrMsg(writer, XML_ERR_NO_MEMORY, + xmlWriterErrMsg(writer, XML_ERR_NO_MEMORY, "xmlTextWriterStartElementNS : out of memory!\n"); return -1; } @@ -1501,8 +1505,8 @@ xmlTextWriterWriteString(xmlTextWriterPtr writer, const xmlChar * content) break; case XML_TEXTWRITER_ATTRIBUTE: buf = NULL; - xmlAttrSerializeTxtContent(writer->out->buffer, writer->doc, - NULL, content); + xmlBufAttrSerializeTxtContent(writer->out->buffer, + writer->doc, NULL, content); break; default: break; @@ -1663,7 +1667,7 @@ xmlTextWriterWriteBase64(xmlTextWriterPtr writer, const char *data, * Write hqx encoded data to an xmlOutputBuffer. * ::todo * - * Returns the bytes written (may be 0 because of buffering) + * Returns the bytes written (may be 0 because of buffering) * or -1 in case of error */ static int @@ -1672,8 +1676,8 @@ xmlOutputBufferWriteBinHex(xmlOutputBufferPtr out, { int count; int sum; - static char hex[16] = - {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; + static char hex[16] = + {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; int i; if ((out == NULL) || (data == NULL) || (len < 0)) { @@ -1849,7 +1853,7 @@ xmlTextWriterStartAttributeNS(xmlTextWriterPtr writer, nsentry.uri = (xmlChar *)namespaceURI; nsentry.elem = xmlListFront(writer->nodes); - curns = (xmlTextWriterNsStackEntry *)xmlListSearch(writer->nsstack, + curns = (xmlTextWriterNsStackEntry *)xmlListSearch(writer->nsstack, (void *)&nsentry); if ((curns != NULL)) { xmlFree(buf); @@ -2496,8 +2500,8 @@ xmlTextWriterEndPI(xmlTextWriterPtr writer) if (writer->indent) { count = xmlOutputBufferWriteString(writer->out, "\n"); - if (count < 0) - return -1; + if (count < 0) + return -1; sum += count; } @@ -4605,6 +4609,26 @@ xmlTextWriterSetIndentString(xmlTextWriterPtr writer, const xmlChar * str) return 0; } +/** + * xmlTextWriterSetQuoteChar: + * @writer: the xmlTextWriterPtr + * @quotechar: the quote character + * + * Set the character used for quoting attributes. + * + * Returns -1 on error or 0 otherwise. + */ +int +xmlTextWriterSetQuoteChar(xmlTextWriterPtr writer, xmlChar quotechar) +{ + if ((writer == NULL) || ((quotechar != '\'') && (quotechar != '"'))) + return -1; + + writer->qchar = quotechar; + + return 0; +} + /** * xmlTextWriterWriteIndent: * @writer: the xmlTextWriterPtr diff --git a/xpath.c b/xpath.c index d9d902c..9a82e90 100644 --- a/xpath.c +++ b/xpath.c @@ -55,6 +55,8 @@ #include #endif +#include "buf.h" + #ifdef LIBXML_PATTERN_ENABLED #define XPATH_STREAMING #endif @@ -64,6 +66,15 @@ "Unimplemented block at %s:%d\n", \ __FILE__, __LINE__); +/** + * WITH_TIM_SORT: + * + * Use the Timsort algorithm provided in timsort.h to sort + * nodeset as this is a great improvement over the old Shell sort + * used in xmlXPathNodeSetSort() + */ +#define WITH_TIM_SORT + /* * XP_OPTIMIZED_NON_ELEM_COMPARISON: * If defined, this will use xmlXPathCmpNodesExt() instead of @@ -89,6 +100,34 @@ */ /* #define XP_DEBUG_OBJ_USAGE */ +/* + * XPATH_MAX_STEPS: + * when compiling an XPath expression we arbitrary limit the maximum + * number of step operation in the compiled expression. 1000000 is + * an insanely large value which should never be reached under normal + * circumstances + */ +#define XPATH_MAX_STEPS 1000000 + +/* + * XPATH_MAX_STACK_DEPTH: + * when evaluating an XPath expression we arbitrary limit the maximum + * number of object allowed to be pushed on the stack. 1000000 is + * an insanely large value which should never be reached under normal + * circumstances + */ +#define XPATH_MAX_STACK_DEPTH 1000000 + +/* + * XPATH_MAX_NODESET_LENGTH: + * when evaluating an XPath expression nodesets are created and we + * arbitrary limit the maximum length of those node set. 10000000 is + * an insanely large value which should never be reached under normal + * circumstances, one would first need to construct an in memory tree + * with more than 10 millions nodes. + */ +#define XPATH_MAX_NODESET_LENGTH 10000000 + /* * TODO: * There are a few spots where some tests are done which depend upon ascii @@ -96,6 +135,42 @@ * any use of the macros IS_ASCII_CHARACTER and IS_ASCII_DIGIT) */ +/* + * Wrapper for the Timsort argorithm from timsort.h + */ +#ifdef WITH_TIM_SORT +#define SORT_NAME libxml_domnode +#define SORT_TYPE xmlNodePtr +/** + * wrap_cmp: + * @x: a node + * @y: another node + * + * Comparison function for the Timsort implementation + * + * Returns -2 in case of error -1 if first point < second point, 0 if + * it's the same node, +1 otherwise + */ +static +int wrap_cmp( xmlNodePtr x, xmlNodePtr y ); +#ifdef XP_OPTIMIZED_NON_ELEM_COMPARISON + static int xmlXPathCmpNodesExt(xmlNodePtr, xmlNodePtr); + static int wrap_cmp( xmlNodePtr x, xmlNodePtr y ) + { + int res = xmlXPathCmpNodesExt(x, y); + return res == -2 ? res : -res; + } +#else + static int wrap_cmp( xmlNodePtr x, xmlNodePtr y ) + { + int res = xmlXPathCmpNodes(x, y); + return res == -2 ? res : -res; + } +#endif +#define SORT_CMP(x, y) (wrap_cmp(x, y)) +#include "timsort.h" +#endif /* WITH_TIM_SORT */ + #if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) /************************************************************************ @@ -253,6 +328,7 @@ static const char *xmlXPathErrorMessages[] = { "Char out of XML range\n", "Invalid or incomplete context\n", "Stack usage errror\n", + "Forbidden variable\n", "?? Unknown error ??\n" /* Must be last in the list! */ }; #define MAXERRNO ((int)(sizeof(xmlXPathErrorMessages) / \ @@ -420,8 +496,7 @@ xmlPointerListAddSize(xmlPointerListPtr list, if (list->items == NULL) { if (initialSize <= 0) initialSize = 1; - list->items = (void **) xmlMalloc( - initialSize * sizeof(void *)); + list->items = (void **) xmlMalloc(initialSize * sizeof(void *)); if (list->items == NULL) { xmlXPathErrMemory(NULL, "xmlPointerListCreate: allocating item\n"); @@ -430,12 +505,17 @@ xmlPointerListAddSize(xmlPointerListPtr list, list->number = 0; list->size = initialSize; } else if (list->size <= list->number) { + if (list->size > 50000000) { + xmlXPathErrMemory(NULL, + "xmlPointerListAddSize: re-allocating item\n"); + return(-1); + } list->size *= 2; list->items = (void **) xmlRealloc(list->items, list->size * sizeof(void *)); if (list->items == NULL) { xmlXPathErrMemory(NULL, - "xmlPointerListCreate: re-allocating item\n"); + "xmlPointerListAddSize: re-allocating item\n"); list->size = 0; return(-1); } @@ -553,8 +633,6 @@ typedef enum { NODE_TYPE_PI = XML_PI_NODE } xmlXPathTypeVal; -#define XP_REWRITE_DOS_CHILD_ELEM 1 - typedef struct _xmlXPathStepOp xmlXPathStepOp; typedef xmlXPathStepOp *xmlXPathStepOpPtr; struct _xmlXPathStepOp { @@ -568,7 +646,6 @@ struct _xmlXPathStepOp { void *value5; void *cache; void *cacheURI; - int rewriteType; }; struct _xmlXPathCompExpr { @@ -723,6 +800,10 @@ xmlXPathCompExprAdd(xmlXPathCompExprPtr comp, int ch1, int ch2, if (comp->nbStep >= comp->maxStep) { xmlXPathStepOp *real; + if (comp->maxStep >= XPATH_MAX_STEPS) { + xmlXPathErrMemory(NULL, "adding step\n"); + return(-1); + } comp->maxStep *= 2; real = (xmlXPathStepOp *) xmlRealloc(comp->steps, comp->maxStep * sizeof(xmlXPathStepOp)); @@ -734,7 +815,6 @@ xmlXPathCompExprAdd(xmlXPathCompExprPtr comp, int ch1, int ch2, comp->steps = real; } comp->last = comp->nbStep; - comp->steps[comp->nbStep].rewriteType = 0; comp->steps[comp->nbStep].ch1 = ch1; comp->steps[comp->nbStep].ch2 = ch2; comp->steps[comp->nbStep].op = op; @@ -2052,6 +2132,11 @@ xmlXPathCacheNewNodeSet(xmlXPathContextPtr ctxt, xmlNodePtr val) ret->type = XPATH_NODESET; ret->boolval = 0; ret->nodesetval = xmlXPathNodeSetCreate(val); + if (ret->nodesetval == NULL) { + ctxt->lastError.domain = XML_FROM_XPATH; + ctxt->lastError.code = XML_ERR_NO_MEMORY; + return(NULL); + } #ifdef XP_DEBUG_OBJ_USAGE xmlXPathDebugObjUsageRequested(ctxt, XPATH_NODESET); #endif @@ -2480,11 +2565,16 @@ valuePush(xmlXPathParserContextPtr ctxt, xmlXPathObjectPtr value) if (ctxt->valueNr >= ctxt->valueMax) { xmlXPathObjectPtr *tmp; + if (ctxt->valueMax >= XPATH_MAX_STACK_DEPTH) { + xmlXPathErrMemory(NULL, "XPath stack depth limit reached\n"); + ctxt->error = XPATH_MEMORY_ERROR; + return (0); + } tmp = (xmlXPathObjectPtr *) xmlRealloc(ctxt->valueTab, 2 * ctxt->valueMax * sizeof(ctxt->valueTab[0])); if (tmp == NULL) { - xmlGenericError(xmlGenericErrorContext, "realloc failed !\n"); + xmlXPathErrMemory(NULL, "pushing value\n"); ctxt->error = XPATH_MEMORY_ERROR; return (0); } @@ -3320,13 +3410,19 @@ turtle_comparison: */ void xmlXPathNodeSetSort(xmlNodeSetPtr set) { +#ifndef WITH_TIM_SORT int i, j, incr, len; xmlNodePtr tmp; +#endif if (set == NULL) return; - /* Use Shell's sort to sort the node-set */ +#ifndef WITH_TIM_SORT + /* + * Use the old Shell's sort implementation to sort the node-set + * Timsort ought to be quite faster + */ len = set->nodeNr; for (incr = len / 2; incr > 0; incr /= 2) { for (i = incr; i < len; i++) { @@ -3349,6 +3445,9 @@ xmlXPathNodeSetSort(xmlNodeSetPtr set) { } } } +#else /* WITH_TIM_SORT */ + libxml_domnode_tim_sort(set->nodeTab, set->nodeNr); +#endif /* WITH_TIM_SORT */ } #define XML_NODESET_DEFAULT 10 @@ -3527,8 +3626,10 @@ xmlXPathNodeSetContains (xmlNodeSetPtr cur, xmlNodePtr val) { * @ns: a the namespace node * * add a new namespace node to an existing NodeSet + * + * Returns 0 in case of success and -1 in case of error */ -void +int xmlXPathNodeSetAddNs(xmlNodeSetPtr cur, xmlNodePtr node, xmlNsPtr ns) { int i; @@ -3536,7 +3637,7 @@ xmlXPathNodeSetAddNs(xmlNodeSetPtr cur, xmlNodePtr node, xmlNsPtr ns) { if ((cur == NULL) || (ns == NULL) || (node == NULL) || (ns->type != XML_NAMESPACE_DECL) || (node->type != XML_ELEMENT_NODE)) - return; + return(-1); /* @@ with_ns to check whether namespace nodes should be looked at @@ */ /* @@ -3547,7 +3648,7 @@ xmlXPathNodeSetAddNs(xmlNodeSetPtr cur, xmlNodePtr node, xmlNsPtr ns) { (cur->nodeTab[i]->type == XML_NAMESPACE_DECL) && (((xmlNsPtr)cur->nodeTab[i])->next == (xmlNsPtr) node) && (xmlStrEqual(ns->prefix, ((xmlNsPtr)cur->nodeTab[i])->prefix))) - return; + return(0); } /* @@ -3558,7 +3659,7 @@ xmlXPathNodeSetAddNs(xmlNodeSetPtr cur, xmlNodePtr node, xmlNsPtr ns) { sizeof(xmlNodePtr)); if (cur->nodeTab == NULL) { xmlXPathErrMemory(NULL, "growing nodeset\n"); - return; + return(-1); } memset(cur->nodeTab, 0 , XML_NODESET_DEFAULT * (size_t) sizeof(xmlNodePtr)); @@ -3566,16 +3667,21 @@ xmlXPathNodeSetAddNs(xmlNodeSetPtr cur, xmlNodePtr node, xmlNsPtr ns) { } else if (cur->nodeNr == cur->nodeMax) { xmlNodePtr *temp; + if (cur->nodeMax >= XPATH_MAX_NODESET_LENGTH) { + xmlXPathErrMemory(NULL, "growing nodeset hit limit\n"); + return(-1); + } temp = (xmlNodePtr *) xmlRealloc(cur->nodeTab, cur->nodeMax * 2 * sizeof(xmlNodePtr)); if (temp == NULL) { xmlXPathErrMemory(NULL, "growing nodeset\n"); - return; + return(-1); } cur->nodeMax *= 2; cur->nodeTab = temp; } cur->nodeTab[cur->nodeNr++] = xmlXPathNodeSetDupNs(node, ns); + return(0); } /** @@ -3584,24 +3690,21 @@ xmlXPathNodeSetAddNs(xmlNodeSetPtr cur, xmlNodePtr node, xmlNsPtr ns) { * @val: a new xmlNodePtr * * add a new xmlNodePtr to an existing NodeSet + * + * Returns 0 in case of success, and -1 in case of error */ -void +int xmlXPathNodeSetAdd(xmlNodeSetPtr cur, xmlNodePtr val) { int i; - if ((cur == NULL) || (val == NULL)) return; - -#if 0 - if ((val->type == XML_ELEMENT_NODE) && (val->name[0] == ' ')) - return; /* an XSLT fake node */ -#endif + if ((cur == NULL) || (val == NULL)) return(-1); /* @@ with_ns to check whether namespace nodes should be looked at @@ */ /* * prevent duplcates */ for (i = 0;i < cur->nodeNr;i++) - if (cur->nodeTab[i] == val) return; + if (cur->nodeTab[i] == val) return(0); /* * grow the nodeTab if needed @@ -3611,7 +3714,7 @@ xmlXPathNodeSetAdd(xmlNodeSetPtr cur, xmlNodePtr val) { sizeof(xmlNodePtr)); if (cur->nodeTab == NULL) { xmlXPathErrMemory(NULL, "growing nodeset\n"); - return; + return(-1); } memset(cur->nodeTab, 0 , XML_NODESET_DEFAULT * (size_t) sizeof(xmlNodePtr)); @@ -3619,11 +3722,15 @@ xmlXPathNodeSetAdd(xmlNodeSetPtr cur, xmlNodePtr val) { } else if (cur->nodeNr == cur->nodeMax) { xmlNodePtr *temp; + if (cur->nodeMax >= XPATH_MAX_NODESET_LENGTH) { + xmlXPathErrMemory(NULL, "growing nodeset hit limit\n"); + return(-1); + } temp = (xmlNodePtr *) xmlRealloc(cur->nodeTab, cur->nodeMax * 2 * sizeof(xmlNodePtr)); if (temp == NULL) { xmlXPathErrMemory(NULL, "growing nodeset\n"); - return; + return(-1); } cur->nodeMax *= 2; cur->nodeTab = temp; @@ -3635,6 +3742,7 @@ xmlXPathNodeSetAdd(xmlNodeSetPtr cur, xmlNodePtr val) { xmlXPathNodeSetDupNs((xmlNodePtr) ns->next, ns); } else cur->nodeTab[cur->nodeNr++] = val; + return(0); } /** @@ -3644,15 +3752,12 @@ xmlXPathNodeSetAdd(xmlNodeSetPtr cur, xmlNodePtr val) { * * add a new xmlNodePtr to an existing NodeSet, optimized version * when we are sure the node is not already in the set. + * + * Returns 0 in case of success and -1 in case of failure */ -void +int xmlXPathNodeSetAddUnique(xmlNodeSetPtr cur, xmlNodePtr val) { - if ((cur == NULL) || (val == NULL)) return; - -#if 0 - if ((val->type == XML_ELEMENT_NODE) && (val->name[0] == ' ')) - return; /* an XSLT fake node */ -#endif + if ((cur == NULL) || (val == NULL)) return(-1); /* @@ with_ns to check whether namespace nodes should be looked at @@ */ /* @@ -3663,7 +3768,7 @@ xmlXPathNodeSetAddUnique(xmlNodeSetPtr cur, xmlNodePtr val) { sizeof(xmlNodePtr)); if (cur->nodeTab == NULL) { xmlXPathErrMemory(NULL, "growing nodeset\n"); - return; + return(-1); } memset(cur->nodeTab, 0 , XML_NODESET_DEFAULT * (size_t) sizeof(xmlNodePtr)); @@ -3671,11 +3776,15 @@ xmlXPathNodeSetAddUnique(xmlNodeSetPtr cur, xmlNodePtr val) { } else if (cur->nodeNr == cur->nodeMax) { xmlNodePtr *temp; + if (cur->nodeMax >= XPATH_MAX_NODESET_LENGTH) { + xmlXPathErrMemory(NULL, "growing nodeset hit limit\n"); + return(-1); + } temp = (xmlNodePtr *) xmlRealloc(cur->nodeTab, cur->nodeMax * 2 * sizeof(xmlNodePtr)); if (temp == NULL) { xmlXPathErrMemory(NULL, "growing nodeset\n"); - return; + return(-1); } cur->nodeTab = temp; cur->nodeMax *= 2; @@ -3687,6 +3796,7 @@ xmlXPathNodeSetAddUnique(xmlNodeSetPtr cur, xmlNodePtr val) { xmlXPathNodeSetDupNs((xmlNodePtr) ns->next, ns); } else cur->nodeTab[cur->nodeNr++] = val; + return(0); } /** @@ -3782,6 +3892,10 @@ xmlXPathNodeSetMerge(xmlNodeSetPtr val1, xmlNodeSetPtr val2) { } else if (val1->nodeNr == val1->nodeMax) { xmlNodePtr *temp; + if (val1->nodeMax >= XPATH_MAX_NODESET_LENGTH) { + xmlXPathErrMemory(NULL, "merging nodeset hit limit\n"); + return(NULL); + } temp = (xmlNodePtr *) xmlRealloc(val1->nodeTab, val1->nodeMax * 2 * sizeof(xmlNodePtr)); if (temp == NULL) { @@ -3803,68 +3917,6 @@ xmlXPathNodeSetMerge(xmlNodeSetPtr val1, xmlNodeSetPtr val2) { return(val1); } -#if 0 /* xmlXPathNodeSetMergeUnique() is currently not used anymore */ -/** - * xmlXPathNodeSetMergeUnique: - * @val1: the first NodeSet or NULL - * @val2: the second NodeSet - * - * Merges two nodesets, all nodes from @val2 are added to @val1 - * if @val1 is NULL, a new set is created and copied from @val2 - * - * Returns @val1 once extended or NULL in case of error. - */ -static xmlNodeSetPtr -xmlXPathNodeSetMergeUnique(xmlNodeSetPtr val1, xmlNodeSetPtr val2) { - int i; - - if (val2 == NULL) return(val1); - if (val1 == NULL) { - val1 = xmlXPathNodeSetCreate(NULL); - } - if (val1 == NULL) - return (NULL); - - /* @@ with_ns to check whether namespace nodes should be looked at @@ */ - - for (i = 0;i < val2->nodeNr;i++) { - /* - * grow the nodeTab if needed - */ - if (val1->nodeMax == 0) { - val1->nodeTab = (xmlNodePtr *) xmlMalloc(XML_NODESET_DEFAULT * - sizeof(xmlNodePtr)); - if (val1->nodeTab == NULL) { - xmlXPathErrMemory(NULL, "merging nodeset\n"); - return(NULL); - } - memset(val1->nodeTab, 0 , - XML_NODESET_DEFAULT * (size_t) sizeof(xmlNodePtr)); - val1->nodeMax = XML_NODESET_DEFAULT; - } else if (val1->nodeNr == val1->nodeMax) { - xmlNodePtr *temp; - - val1->nodeMax *= 2; - temp = (xmlNodePtr *) xmlRealloc(val1->nodeTab, val1->nodeMax * - sizeof(xmlNodePtr)); - if (temp == NULL) { - xmlXPathErrMemory(NULL, "merging nodeset\n"); - return(NULL); - } - val1->nodeTab = temp; - } - if (val2->nodeTab[i]->type == XML_NAMESPACE_DECL) { - xmlNsPtr ns = (xmlNsPtr) val2->nodeTab[i]; - - val1->nodeTab[val1->nodeNr++] = - xmlXPathNodeSetDupNs((xmlNodePtr) ns->next, ns); - } else - val1->nodeTab[val1->nodeNr++] = val2->nodeTab[i]; - } - - return(val1); -} -#endif /* xmlXPathNodeSetMergeUnique() is currently not used anymore */ /** * xmlXPathNodeSetMergeAndClear: @@ -3951,6 +4003,10 @@ xmlXPathNodeSetMergeAndClear(xmlNodeSetPtr set1, xmlNodeSetPtr set2, } else if (set1->nodeNr >= set1->nodeMax) { xmlNodePtr *temp; + if (set1->nodeMax >= XPATH_MAX_NODESET_LENGTH) { + xmlXPathErrMemory(NULL, "merging nodeset hit limit\n"); + return(NULL); + } temp = (xmlNodePtr *) xmlRealloc( set1->nodeTab, set1->nodeMax * 2 * sizeof(xmlNodePtr)); if (temp == NULL) { @@ -4035,6 +4091,10 @@ xmlXPathNodeSetMergeAndClearNoDupls(xmlNodeSetPtr set1, xmlNodeSetPtr set2, } else if (set1->nodeNr >= set1->nodeMax) { xmlNodePtr *temp; + if (set1->nodeMax >= XPATH_MAX_NODESET_LENGTH) { + xmlXPathErrMemory(NULL, "merging nodeset hit limit\n"); + return(NULL); + } temp = (xmlNodePtr *) xmlRealloc( set1->nodeTab, set1->nodeMax * 2 * sizeof(xmlNodePtr)); if (temp == NULL) { @@ -4333,9 +4393,12 @@ xmlXPathNewNodeSetList(xmlNodeSetPtr val) ret = xmlXPathNewNodeSet(NULL); else { ret = xmlXPathNewNodeSet(val->nodeTab[0]); - if (ret) - for (i = 1; i < val->nodeNr; ++i) - xmlXPathNodeSetAddUnique(ret->nodesetval, val->nodeTab[i]); + if (ret) { + for (i = 1; i < val->nodeNr; ++i) { + if (xmlXPathNodeSetAddUnique(ret->nodesetval, val->nodeTab[i]) + < 0) break; + } + } } return (ret); @@ -4411,8 +4474,10 @@ xmlXPathDifference (xmlNodeSetPtr nodes1, xmlNodeSetPtr nodes2) { for (i = 0; i < l1; i++) { cur = xmlXPathNodeSetItem(nodes1, i); - if (!xmlXPathNodeSetContains(nodes2, cur)) - xmlXPathNodeSetAddUnique(ret, cur); + if (!xmlXPathNodeSetContains(nodes2, cur)) { + if (xmlXPathNodeSetAddUnique(ret, cur) < 0) + break; + } } return(ret); } @@ -4445,8 +4510,10 @@ xmlXPathIntersection (xmlNodeSetPtr nodes1, xmlNodeSetPtr nodes2) { for (i = 0; i < l1; i++) { cur = xmlXPathNodeSetItem(nodes1, i); - if (xmlXPathNodeSetContains(nodes2, cur)) - xmlXPathNodeSetAddUnique(ret, cur); + if (xmlXPathNodeSetContains(nodes2, cur)) { + if (xmlXPathNodeSetAddUnique(ret, cur) < 0) + break; + } } return(ret); } @@ -4482,7 +4549,8 @@ xmlXPathDistinctSorted (xmlNodeSetPtr nodes) { strval = xmlXPathCastNodeToString(cur); if (xmlHashLookup(hash, strval) == NULL) { xmlHashAddEntry(hash, strval, strval); - xmlXPathNodeSetAddUnique(ret, cur); + if (xmlXPathNodeSetAddUnique(ret, cur) < 0) + break; } else { xmlFree(strval); } @@ -4574,7 +4642,8 @@ xmlXPathNodeLeadingSorted (xmlNodeSetPtr nodes, xmlNodePtr node) { cur = xmlXPathNodeSetItem(nodes, i); if (cur == node) break; - xmlXPathNodeSetAddUnique(ret, cur); + if (xmlXPathNodeSetAddUnique(ret, cur) < 0) + break; } return(ret); } @@ -4678,7 +4747,8 @@ xmlXPathNodeTrailingSorted (xmlNodeSetPtr nodes, xmlNodePtr node) { cur = xmlXPathNodeSetItem(nodes, i); if (cur == node) break; - xmlXPathNodeSetAddUnique(ret, cur); + if (xmlXPathNodeSetAddUnique(ret, cur) < 0) + break; } xmlXPathNodeSetSort(ret); /* bug 413451 */ return(ret); @@ -7701,6 +7771,7 @@ xmlXPathNextChildElement(xmlXPathParserContextPtr ctxt, xmlNodePtr cur) { return(NULL); } +#if 0 /** * xmlXPathNextDescendantOrSelfElemParent: * @ctxt: the XPath Parser context @@ -7728,7 +7799,7 @@ xmlXPathNextDescendantOrSelfElemParent(xmlNodePtr cur, #ifdef LIBXML_DOCB_ENABLED case XML_DOCB_DOCUMENT_NODE: #endif - case XML_HTML_DOCUMENT_NODE: + case XML_HTML_DOCUMENT_NODE: return(contextNode); default: return(NULL); @@ -7776,6 +7847,7 @@ next_sibling: } return(NULL); } +#endif /** * xmlXPathNextDescendant: @@ -7803,6 +7875,8 @@ xmlXPathNextDescendant(xmlXPathParserContextPtr ctxt, xmlNodePtr cur) { return(ctxt->context->node->children); } + if (cur->type == XML_NAMESPACE_DECL) + return(NULL); if (cur->children != NULL) { /* * Do not descend on entities declarations @@ -8185,6 +8259,10 @@ xmlXPathNextFollowing(xmlXPathParserContextPtr ctxt, xmlNodePtr cur) { static int xmlXPathIsAncestor(xmlNodePtr ancestor, xmlNodePtr node) { if ((ancestor == NULL) || (node == NULL)) return(0); + if (node->type == XML_NAMESPACE_DECL) + return(0); + if (ancestor->type == XML_NAMESPACE_DECL) + return(0); /* nodes need to be in the same document */ if (ancestor->doc != node->doc) return(0); /* avoid searching if ancestor or node is the root node */ @@ -8222,7 +8300,7 @@ xmlXPathNextPreceding(xmlXPathParserContextPtr ctxt, xmlNodePtr cur) if (cur->type == XML_ATTRIBUTE_NODE) return(cur->parent); } - if (cur == NULL) + if ((cur == NULL) || (cur->type == XML_NAMESPACE_DECL)) return (NULL); if ((cur->prev != NULL) && (cur->prev->type == XML_DTD_NODE)) cur = cur->prev; @@ -8269,6 +8347,8 @@ xmlXPathNextPrecedingInternal(xmlXPathParserContextPtr ctxt, return (NULL); ctxt->ancestor = cur->parent; } + if (cur->type == XML_NAMESPACE_DECL) + return(NULL); if ((cur->prev != NULL) && (cur->prev->type == XML_DTD_NODE)) cur = cur->prev; while (cur->prev == NULL) { @@ -8476,7 +8556,7 @@ xmlXPathCountFunction(xmlXPathParserContextPtr ctxt, int nargs) { int i = 0; tmp = cur->nodesetval->nodeTab[0]; - if (tmp != NULL) { + if ((tmp != NULL) && (tmp->type != XML_NAMESPACE_DECL)) { tmp = tmp->children; while (tmp != NULL) { tmp = tmp->next; @@ -9146,7 +9226,7 @@ void xmlXPathSubstringBeforeFunction(xmlXPathParserContextPtr ctxt, int nargs) { xmlXPathObjectPtr str; xmlXPathObjectPtr find; - xmlBufferPtr target; + xmlBufPtr target; const xmlChar *point; int offset; @@ -9156,16 +9236,16 @@ xmlXPathSubstringBeforeFunction(xmlXPathParserContextPtr ctxt, int nargs) { CAST_TO_STRING; str = valuePop(ctxt); - target = xmlBufferCreate(); + target = xmlBufCreate(); if (target) { point = xmlStrstr(str->stringval, find->stringval); if (point) { offset = (int)(point - str->stringval); - xmlBufferAdd(target, str->stringval, offset); + xmlBufAdd(target, str->stringval, offset); } valuePush(ctxt, xmlXPathCacheNewString(ctxt->context, - xmlBufferContent(target))); - xmlBufferFree(target); + xmlBufContent(target))); + xmlBufFree(target); } xmlXPathReleaseObject(ctxt->context, str); xmlXPathReleaseObject(ctxt->context, find); @@ -9189,7 +9269,7 @@ void xmlXPathSubstringAfterFunction(xmlXPathParserContextPtr ctxt, int nargs) { xmlXPathObjectPtr str; xmlXPathObjectPtr find; - xmlBufferPtr target; + xmlBufPtr target; const xmlChar *point; int offset; @@ -9199,17 +9279,17 @@ xmlXPathSubstringAfterFunction(xmlXPathParserContextPtr ctxt, int nargs) { CAST_TO_STRING; str = valuePop(ctxt); - target = xmlBufferCreate(); + target = xmlBufCreate(); if (target) { point = xmlStrstr(str->stringval, find->stringval); if (point) { offset = (int)(point - str->stringval) + xmlStrlen(find->stringval); - xmlBufferAdd(target, &str->stringval[offset], + xmlBufAdd(target, &str->stringval[offset], xmlStrlen(str->stringval) - offset); } valuePush(ctxt, xmlXPathCacheNewString(ctxt->context, - xmlBufferContent(target))); - xmlBufferFree(target); + xmlBufContent(target))); + xmlBufFree(target); } xmlXPathReleaseObject(ctxt->context, str); xmlXPathReleaseObject(ctxt->context, find); @@ -9233,7 +9313,7 @@ void xmlXPathNormalizeFunction(xmlXPathParserContextPtr ctxt, int nargs) { xmlXPathObjectPtr obj = NULL; xmlChar *source = NULL; - xmlBufferPtr target; + xmlBufPtr target; xmlChar blank; if (ctxt == NULL) return; @@ -9251,7 +9331,7 @@ xmlXPathNormalizeFunction(xmlXPathParserContextPtr ctxt, int nargs) { obj = valuePop(ctxt); source = obj->stringval; - target = xmlBufferCreate(); + target = xmlBufCreate(); if (target && source) { /* Skip leading whitespaces */ @@ -9265,16 +9345,16 @@ xmlXPathNormalizeFunction(xmlXPathParserContextPtr ctxt, int nargs) { blank = 0x20; } else { if (blank) { - xmlBufferAdd(target, &blank, 1); + xmlBufAdd(target, &blank, 1); blank = 0; } - xmlBufferAdd(target, source, 1); + xmlBufAdd(target, source, 1); } source++; } valuePush(ctxt, xmlXPathCacheNewString(ctxt->context, - xmlBufferContent(target))); - xmlBufferFree(target); + xmlBufContent(target))); + xmlBufFree(target); } xmlXPathReleaseObject(ctxt->context, obj); } @@ -9305,7 +9385,7 @@ xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt, int nargs) { xmlXPathObjectPtr str; xmlXPathObjectPtr from; xmlXPathObjectPtr to; - xmlBufferPtr target; + xmlBufPtr target; int offset, max; xmlChar ch; const xmlChar *point; @@ -9320,7 +9400,7 @@ xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt, int nargs) { CAST_TO_STRING; str = valuePop(ctxt); - target = xmlBufferCreate(); + target = xmlBufCreate(); if (target) { max = xmlUTF8Strlen(to->stringval); for (cptr = str->stringval; (ch=*cptr); ) { @@ -9329,10 +9409,10 @@ xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt, int nargs) { if (offset < max) { point = xmlUTF8Strpos(to->stringval, offset); if (point) - xmlBufferAdd(target, point, xmlUTF8Strsize(point, 1)); + xmlBufAdd(target, point, xmlUTF8Strsize(point, 1)); } } else - xmlBufferAdd(target, cptr, xmlUTF8Strsize(cptr, 1)); + xmlBufAdd(target, cptr, xmlUTF8Strsize(cptr, 1)); /* Step to next character in input */ cptr++; @@ -9358,8 +9438,8 @@ xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt, int nargs) { } } valuePush(ctxt, xmlXPathCacheNewString(ctxt->context, - xmlBufferContent(target))); - xmlBufferFree(target); + xmlBufContent(target))); + xmlBufFree(target); xmlXPathReleaseObject(ctxt->context, str); xmlXPathReleaseObject(ctxt->context, from); xmlXPathReleaseObject(ctxt->context, to); @@ -9866,7 +9946,7 @@ xmlChar * xmlXPathParseName(xmlXPathParserContextPtr ctxt) { const xmlChar *in; xmlChar *ret; - int count = 0; + size_t count = 0; if ((ctxt == NULL) || (ctxt->cur == NULL)) return(NULL); /* @@ -9885,6 +9965,10 @@ xmlXPathParseName(xmlXPathParserContextPtr ctxt) { in++; if ((*in > 0) && (*in < 0x80)) { count = in - ctxt->cur; + if (count > XML_MAX_NAME_LENGTH) { + ctxt->cur = in; + XP_ERRORNULL(XPATH_EXPR_ERROR); + } ret = xmlStrndup(ctxt->cur, count); ctxt->cur = in; return(ret); @@ -9928,6 +10012,9 @@ xmlXPathParseNameComplex(xmlXPathParserContextPtr ctxt, int qualified) { xmlChar *buffer; int max = len * 2; + if (len > XML_MAX_NAME_LENGTH) { + XP_ERRORNULL(XPATH_EXPR_ERROR); + } buffer = (xmlChar *) xmlMallocAtomic(max * sizeof(xmlChar)); if (buffer == NULL) { XP_ERRORNULL(XPATH_MEMORY_ERROR); @@ -9939,6 +10026,9 @@ xmlXPathParseNameComplex(xmlXPathParserContextPtr ctxt, int qualified) { (IS_COMBINING(c)) || (IS_EXTENDER(c))) { if (len + 10 > max) { + if (max > XML_MAX_NAME_LENGTH) { + XP_ERRORNULL(XPATH_EXPR_ERROR); + } max *= 2; buffer = (xmlChar *) xmlRealloc(buffer, max * sizeof(xmlChar)); @@ -10291,7 +10381,7 @@ xmlXPathCompVariableReference(xmlXPathParserContextPtr ctxt) { name, prefix); SKIP_BLANKS; if ((ctxt->context != NULL) && (ctxt->context->flags & XML_XPATH_NOVAR)) { - XP_ERROR(XPATH_UNDEF_VARIABLE_ERROR); + XP_ERROR(XPATH_FORBID_VARIABLE_ERROR); } } @@ -11655,9 +11745,13 @@ xmlXPathCompOpEvalPredicate(xmlXPathParserContextPtr ctxt, */ if (contextObj == NULL) contextObj = xmlXPathCacheNewNodeSet(xpctxt, contextNode); - else - xmlXPathNodeSetAddUnique(contextObj->nodesetval, - contextNode); + else { + if (xmlXPathNodeSetAddUnique(contextObj->nodesetval, + contextNode) < 0) { + ctxt->error = XPATH_MEMORY_ERROR; + goto evaluation_exit; + } + } valuePush(ctxt, contextObj); @@ -11803,9 +11897,13 @@ xmlXPathCompOpEvalPositionalPredicate(xmlXPathParserContextPtr ctxt, */ if (contextObj == NULL) contextObj = xmlXPathCacheNewNodeSet(xpctxt, contextNode); - else - xmlXPathNodeSetAddUnique(contextObj->nodesetval, - contextNode); + else { + if (xmlXPathNodeSetAddUnique(contextObj->nodesetval, + contextNode) < 0) { + ctxt->error = XPATH_MEMORY_ERROR; + goto evaluation_exit; + } + } frame = xmlXPathSetFrame(ctxt); valuePush(ctxt, contextObj); @@ -11977,22 +12075,25 @@ xmlXPathNodeCollectAndTest(xmlXPathParserContextPtr ctxt, #define XP_TEST_HIT \ if (hasAxisRange != 0) { \ if (++pos == maxPos) { \ - addNode(seq, cur); \ - goto axis_range_end; } \ + if (addNode(seq, cur) < 0) \ + ctxt->error = XPATH_MEMORY_ERROR; \ + goto axis_range_end; } \ } else { \ - addNode(seq, cur); \ + if (addNode(seq, cur) < 0) \ + ctxt->error = XPATH_MEMORY_ERROR; \ if (breakOnFirstHit) goto first_hit; } #define XP_TEST_HIT_NS \ if (hasAxisRange != 0) { \ if (++pos == maxPos) { \ hasNsNodes = 1; \ - xmlXPathNodeSetAddNs(seq, xpctxt->node, (xmlNsPtr) cur); \ + if (xmlXPathNodeSetAddNs(seq, xpctxt->node, (xmlNsPtr) cur) < 0) \ + ctxt->error = XPATH_MEMORY_ERROR; \ goto axis_range_end; } \ } else { \ hasNsNodes = 1; \ - xmlXPathNodeSetAddNs(seq, \ - xpctxt->node, (xmlNsPtr) cur); \ + if (xmlXPathNodeSetAddNs(seq, xpctxt->node, (xmlNsPtr) cur) < 0) \ + ctxt->error = XPATH_MEMORY_ERROR; \ if (breakOnFirstHit) goto first_hit; } xmlXPathAxisVal axis = (xmlXPathAxisVal) op->value; @@ -12012,8 +12113,6 @@ xmlXPathNodeCollectAndTest(xmlXPathParserContextPtr ctxt, xmlNodeSetPtr contextSeq; int contextIdx; xmlNodePtr contextNode; - /* The context node for a compound traversal */ - xmlNodePtr outerContextNode; /* The final resulting node set wrt to all context nodes */ xmlNodeSetPtr outSeq; /* @@ -12029,9 +12128,7 @@ xmlXPathNodeCollectAndTest(xmlXPathParserContextPtr ctxt, int breakOnFirstHit; xmlXPathTraversalFunction next = NULL; - /* compound axis traversal */ - xmlXPathTraversalFunctionExt outerNext = NULL; - void (*addNode) (xmlNodeSetPtr, xmlNodePtr); + int (*addNode) (xmlNodeSetPtr, xmlNodePtr); xmlXPathNodeSetMergeFunction mergeAndClear; xmlNodePtr oldContextNode; xmlXPathContextPtr xpctxt = ctxt->context; @@ -12080,13 +12177,6 @@ xmlXPathNodeCollectAndTest(xmlXPathParserContextPtr ctxt, break; case AXIS_CHILD: last = NULL; - if (op->rewriteType == XP_REWRITE_DOS_CHILD_ELEM) { - /* - * This iterator will give us only nodes which can - * hold element nodes. - */ - outerNext = xmlXPathNextDescendantOrSelfElemParent; - } if (((test == NODE_TEST_NAME) || (test == NODE_TEST_ALL)) && (type == NODE_TYPE_NODE)) { @@ -12216,32 +12306,13 @@ xmlXPathNodeCollectAndTest(xmlXPathParserContextPtr ctxt, addNode = xmlXPathNodeSetAddUnique; outSeq = NULL; seq = NULL; - outerContextNode = NULL; contextNode = NULL; contextIdx = 0; - while ((contextIdx < contextSeq->nodeNr) || (contextNode != NULL)) { - if (outerNext != NULL) { - /* - * This is a compound traversal. - */ - if (contextNode == NULL) { - /* - * Set the context for the outer traversal. - */ - outerContextNode = contextSeq->nodeTab[contextIdx++]; - contextNode = outerNext(NULL, outerContextNode); - } else - contextNode = outerNext(contextNode, outerContextNode); - if (contextNode == NULL) - continue; - /* - * Set the context for the main traversal. - */ - xpctxt->node = contextNode; - } else - xpctxt->node = contextSeq->nodeTab[contextIdx++]; + while (((contextIdx < contextSeq->nodeNr) || (contextNode != NULL)) && + (ctxt->error == XPATH_EXPRESSION_OK)) { + xpctxt->node = contextSeq->nodeTab[contextIdx++]; if (seq == NULL) { seq = xmlXPathNodeSetCreate(NULL); @@ -12439,7 +12510,7 @@ xmlXPathNodeCollectAndTest(xmlXPathParserContextPtr ctxt, } break; } /* switch(test) */ - } while (cur != NULL); + } while ((cur != NULL) && (ctxt->error == XPATH_EXPRESSION_OK)); goto apply_predicates; @@ -12480,13 +12551,16 @@ first_hit: /* ---------------------------------------------------------- */ #endif apply_predicates: /* --------------------------------------------------- */ + if (ctxt->error != XPATH_EXPRESSION_OK) + goto error; + /* * Apply predicates. */ if ((predOp != NULL) && (seq->nodeNr > 0)) { /* * E.g. when we have a "/foo[some expression][n]". - */ + */ /* * QUESTION TODO: The old predicate evaluation took into * account location-sets. @@ -12495,7 +12569,7 @@ apply_predicates: /* --------------------------------------------------- */ * All what I learned now from the evaluation semantics * does not indicate that a location-set will be processed * here, so this looks OK. - */ + */ /* * Iterate over all predicates, starting with the outermost * predicate. @@ -12988,8 +13062,10 @@ xmlXPathCompOpEvalFilterFirst(xmlXPathParserContextPtr ctxt, tmp = xmlXPathCacheNewNodeSet(ctxt->context, ctxt->context->node); } else { - xmlXPathNodeSetAddUnique(tmp->nodesetval, - ctxt->context->node); + if (xmlXPathNodeSetAddUnique(tmp->nodesetval, + ctxt->context->node) < 0) { + ctxt->error = XPATH_MEMORY_ERROR; + } } valuePush(ctxt, tmp); if (op->ch2 != -1) @@ -13102,8 +13178,10 @@ xmlXPathCompOpEvalFilterFirst(xmlXPathParserContextPtr ctxt, tmp = xmlXPathCacheNewNodeSet(ctxt->context, ctxt->context->node); } else { - xmlXPathNodeSetAddUnique(tmp->nodesetval, - ctxt->context->node); + if (xmlXPathNodeSetAddUnique(tmp->nodesetval, + ctxt->context->node) < 0) { + ctxt->error = XPATH_MEMORY_ERROR; + } } valuePush(ctxt, tmp); ctxt->context->contextSize = oldset->nodeNr; @@ -13121,7 +13199,8 @@ xmlXPathCompOpEvalFilterFirst(xmlXPathParserContextPtr ctxt, */ res = valuePop(ctxt); if (xmlXPathEvaluatePredicateResult(ctxt, res)) { - xmlXPathNodeSetAdd(newset, oldset->nodeTab[i]); + if (xmlXPathNodeSetAdd(newset, oldset->nodeTab[i]) < 0) + ctxt->error = XPATH_MEMORY_ERROR; } /* * Cleanup @@ -13800,8 +13879,10 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op) tmp = xmlXPathCacheNewNodeSet(ctxt->context, ctxt->context->node); } else { - xmlXPathNodeSetAddUnique(tmp->nodesetval, - ctxt->context->node); + if (xmlXPathNodeSetAddUnique(tmp->nodesetval, + ctxt->context->node) < 0) { + ctxt->error = XPATH_MEMORY_ERROR; + } } valuePush(ctxt, tmp); ctxt->context->contextSize = oldset->nodeNr; @@ -13831,7 +13912,9 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op) */ res = valuePop(ctxt); if (xmlXPathEvaluatePredicateResult(ctxt, res)) { - xmlXPathNodeSetAdd(newset, oldset->nodeTab[i]); + if (xmlXPathNodeSetAdd(newset, oldset->nodeTab[i]) + < 0) + ctxt->error = XPATH_MEMORY_ERROR; } /* @@ -14194,7 +14277,7 @@ xmlXPathRunStreamEval(xmlXPathContextPtr ctxt, xmlPatternPtr comp, if (toBool) return(1); xmlXPathNodeSetAddUnique((*resultSeq)->nodesetval, - (xmlNodePtr) ctxt->doc); + (xmlNodePtr) ctxt->doc); } else { /* Select "self::node()" */ if (toBool) @@ -14287,7 +14370,11 @@ next_node: } else if (ret == 1) { if (toBool) goto return_1; - xmlXPathNodeSetAddUnique((*resultSeq)->nodesetval, cur); + if (xmlXPathNodeSetAddUnique((*resultSeq)->nodesetval, cur) + < 0) { + ctxt->lastError.domain = XML_FROM_XPATH; + ctxt->lastError.code = XML_ERR_NO_MEMORY; + } } if ((cur->children == NULL) || (depth >= max_depth)) { ret = xmlStreamPop(patstream); @@ -14303,6 +14390,7 @@ next_node: } scan_children: + if (cur->type == XML_NAMESPACE_DECL) break; if ((cur->children != NULL) && (depth < max_depth)) { /* * Do not descend on entities declarations @@ -14623,57 +14711,63 @@ xmlXPathTryStreamCompile(xmlXPathContextPtr ctxt, const xmlChar *str) { } #endif /* XPATH_STREAMING */ -static int -xmlXPathCanRewriteDosExpression(xmlChar *expr) -{ - if (expr == NULL) - return(0); - do { - if ((*expr == '/') && (*(++expr) == '/')) - return(1); - } while (*expr++); - return(0); -} static void -xmlXPathRewriteDOSExpression(xmlXPathCompExprPtr comp, xmlXPathStepOpPtr op) +xmlXPathOptimizeExpression(xmlXPathCompExprPtr comp, xmlXPathStepOpPtr op) { /* * Try to rewrite "descendant-or-self::node()/foo" to an optimized * internal representation. */ - if (op->ch1 != -1) { - if ((op->op == XPATH_OP_COLLECT /* 11 */) && - ((xmlXPathAxisVal) op->value == AXIS_CHILD /* 4 */) && - ((xmlXPathTestVal) op->value2 == NODE_TEST_NAME /* 5 */) && - ((xmlXPathTypeVal) op->value3 == NODE_TYPE_NODE /* 0 */)) - { - /* - * This is a "child::foo" - */ - xmlXPathStepOpPtr prevop = &comp->steps[op->ch1]; - - if ((prevop->op == XPATH_OP_COLLECT /* 11 */) && - (prevop->ch1 != -1) && - ((xmlXPathAxisVal) prevop->value == - AXIS_DESCENDANT_OR_SELF) && - (prevop->ch2 == -1) && - ((xmlXPathTestVal) prevop->value2 == NODE_TEST_TYPE) && - ((xmlXPathTypeVal) prevop->value3 == NODE_TYPE_NODE) && - (comp->steps[prevop->ch1].op == XPATH_OP_ROOT)) - { - /* - * This is a "/descendant-or-self::node()" without predicates. - * Eliminate it. - */ - op->ch1 = prevop->ch1; - op->rewriteType = XP_REWRITE_DOS_CHILD_ELEM; - } + + if ((op->ch1 != -1) && + (op->op == XPATH_OP_COLLECT /* 11 */)) + { + xmlXPathStepOpPtr prevop = &comp->steps[op->ch1]; + + if ((prevop->op == XPATH_OP_COLLECT /* 11 */) && + ((xmlXPathAxisVal) prevop->value == + AXIS_DESCENDANT_OR_SELF) && + (prevop->ch2 == -1) && + ((xmlXPathTestVal) prevop->value2 == NODE_TEST_TYPE) && + ((xmlXPathTypeVal) prevop->value3 == NODE_TYPE_NODE)) + { + /* + * This is a "descendant-or-self::node()" without predicates. + * Try to eliminate it. + */ + + switch ((xmlXPathAxisVal) op->value) { + case AXIS_CHILD: + case AXIS_DESCENDANT: + /* + * Convert "descendant-or-self::node()/child::" or + * "descendant-or-self::node()/descendant::" to + * "descendant::" + */ + op->ch1 = prevop->ch1; + op->value = AXIS_DESCENDANT; + break; + case AXIS_SELF: + case AXIS_DESCENDANT_OR_SELF: + /* + * Convert "descendant-or-self::node()/self::" or + * "descendant-or-self::node()/descendant-or-self::" to + * to "descendant-or-self::" + */ + op->ch1 = prevop->ch1; + op->value = AXIS_DESCENDANT_OR_SELF; + break; + default: + break; + } } - if (op->ch1 != -1) - xmlXPathRewriteDOSExpression(comp, &comp->steps[op->ch1]); } + + /* Recurse */ + if (op->ch1 != -1) + xmlXPathOptimizeExpression(comp, &comp->steps[op->ch1]); if (op->ch2 != -1) - xmlXPathRewriteDOSExpression(comp, &comp->steps[op->ch2]); + xmlXPathOptimizeExpression(comp, &comp->steps[op->ch2]); } /** @@ -14731,12 +14825,8 @@ xmlXPathCtxtCompile(xmlXPathContextPtr ctxt, const xmlChar *str) { comp->string = xmlStrdup(str); comp->nb = 0; #endif - if ((comp->expr != NULL) && - (comp->nbStep > 2) && - (comp->last >= 0) && - (xmlXPathCanRewriteDosExpression(comp->expr) == 1)) - { - xmlXPathRewriteDOSExpression(comp, &comp->steps[comp->last]); + if ((comp->nbStep > 1) && (comp->last >= 0)) { + xmlXPathOptimizeExpression(comp, &comp->steps[comp->last]); } } return(comp); @@ -14913,17 +15003,12 @@ xmlXPathEvalExpr(xmlXPathParserContextPtr ctxt) { #endif { xmlXPathCompileExpr(ctxt, 1); - /* - * In this scenario the expression string will sit in ctxt->base. - */ if ((ctxt->error == XPATH_EXPRESSION_OK) && (ctxt->comp != NULL) && - (ctxt->base != NULL) && - (ctxt->comp->nbStep > 2) && - (ctxt->comp->last >= 0) && - (xmlXPathCanRewriteDosExpression((xmlChar *) ctxt->base) == 1)) + (ctxt->comp->nbStep > 1) && + (ctxt->comp->last >= 0)) { - xmlXPathRewriteDOSExpression(ctxt->comp, + xmlXPathOptimizeExpression(ctxt->comp, &ctxt->comp->steps[ctxt->comp->last]); } } @@ -15097,7 +15182,7 @@ static void xmlXPathEscapeUriFunction(xmlXPathParserContextPtr ctxt, int nargs) { xmlXPathObjectPtr str; int escape_reserved; - xmlBufferPtr target; + xmlBufPtr target; xmlChar *cptr; xmlChar escape[4]; @@ -15108,7 +15193,7 @@ xmlXPathEscapeUriFunction(xmlXPathParserContextPtr ctxt, int nargs) { CAST_TO_STRING; str = valuePop(ctxt); - target = xmlBufferCreate(); + target = xmlBufCreate(); escape[0] = '%'; escape[3] = 0; @@ -15133,7 +15218,7 @@ xmlXPathEscapeUriFunction(xmlXPathParserContextPtr ctxt, int nargs) { *cptr == ':' || *cptr == '@' || *cptr == '&' || *cptr == '=' || *cptr == '+' || *cptr == '$' || *cptr == ','))) { - xmlBufferAdd(target, cptr, 1); + xmlBufAdd(target, cptr, 1); } else { if ((*cptr >> 4) < 10) escape[1] = '0' + (*cptr >> 4); @@ -15144,13 +15229,13 @@ xmlXPathEscapeUriFunction(xmlXPathParserContextPtr ctxt, int nargs) { else escape[2] = 'A' - 10 + (*cptr & 0xF); - xmlBufferAdd(target, &escape[0], 3); + xmlBufAdd(target, &escape[0], 3); } } } valuePush(ctxt, xmlXPathCacheNewString(ctxt->context, - xmlBufferContent(target))); - xmlBufferFree(target); + xmlBufContent(target))); + xmlBufFree(target); xmlXPathReleaseObject(ctxt->context, str); } diff --git a/xpointer.c b/xpointer.c index 0b463dd..46f11e8 100644 --- a/xpointer.c +++ b/xpointer.c @@ -7,7 +7,7 @@ * * Added support for the element() scheme described in: * W3C Proposed Recommendation 13 November 2002 - * http://www.w3.org/TR/2002/PR-xptr-element-20021113/ + * http://www.w3.org/TR/2002/PR-xptr-element-20021113/ * * See Copyright for the status of this software. * @@ -47,19 +47,19 @@ #endif #endif -#define TODO \ +#define TODO \ xmlGenericError(xmlGenericErrorContext, \ "Unimplemented block at %s:%d\n", \ __FILE__, __LINE__); -#define STRANGE \ +#define STRANGE \ xmlGenericError(xmlGenericErrorContext, \ "Internal error at %s:%d\n", \ __FILE__, __LINE__); /************************************************************************ * * - * Some factorized error routines * + * Some factorized error routines * * * ************************************************************************/ @@ -134,7 +134,7 @@ xmlNodePtr xmlXPtrAdvanceNode(xmlNodePtr cur, int *level); static int xmlXPtrGetArity(xmlNodePtr cur) { int i; - if (cur == NULL) + if ((cur == NULL) || (cur->type == XML_NAMESPACE_DECL)) return(-1); cur = cur->children; for (i = 0;cur != NULL;cur = cur->next) { @@ -157,7 +157,7 @@ xmlXPtrGetArity(xmlNodePtr cur) { static int xmlXPtrGetIndex(xmlNodePtr cur) { int i; - if (cur == NULL) + if ((cur == NULL) || (cur->type == XML_NAMESPACE_DECL)) return(-1); for (i = 1;cur != NULL;cur = cur->prev) { if ((cur->type == XML_ELEMENT_NODE) || @@ -179,11 +179,11 @@ xmlXPtrGetIndex(xmlNodePtr cur) { static xmlNodePtr xmlXPtrGetNthChild(xmlNodePtr cur, int no) { int i; - if (cur == NULL) + if ((cur == NULL) || (cur->type == XML_NAMESPACE_DECL)) return(cur); cur = cur->children; for (i = 0;i <= no;cur = cur->next) { - if (cur == NULL) + if (cur == NULL) return(cur); if ((cur->type == XML_ELEMENT_NODE) || (cur->type == XML_DOCUMENT_NODE) || @@ -553,7 +553,7 @@ xmlXPtrNewRangeNodeObject(xmlNodePtr start, xmlXPathObjectPtr end) { break; case XPATH_NODESET: /* - * Empty set ... + * Empty set ... */ if (end->nodesetval->nodeNr <= 0) return(NULL); @@ -731,7 +731,7 @@ xmlXPtrLocationSetDel(xmlLocationSetPtr cur, xmlXPathObjectPtr val) { if (i >= cur->locNr) { #ifdef DEBUG - xmlGenericError(xmlGenericErrorContext, + xmlGenericError(xmlGenericErrorContext, "xmlXPtrLocationSetDel: Range wasn't found in RangeList\n"); #endif return; @@ -903,7 +903,7 @@ static void xmlXPtrEvalChildSeq(xmlXPathParserContextPtr ctxt, xmlChar *name); #define NXT(val) ctxt->cur[(val)] #define CUR_PTR ctxt->cur -#define SKIP_BLANKS \ +#define SKIP_BLANKS \ while (IS_BLANK_CH(*(ctxt->cur))) NEXT #define CURRENT (*ctxt->cur) @@ -945,7 +945,7 @@ xmlXPtrGetChildNo(xmlXPathParserContextPtr ctxt, int indx) { * xmlXPtrEvalXPtrPart: * @ctxt: the XPointer Parser context * @name: the preparsed Scheme for the XPtrPart - * + * * XPtrPart ::= 'xpointer' '(' XPtrExpr ')' * | Scheme '(' SchemeSpecificExpr ')' * @@ -953,7 +953,7 @@ xmlXPtrGetChildNo(xmlXPathParserContextPtr ctxt, int indx) { * * SchemeSpecificExpr ::= StringWithBalancedParens * - * StringWithBalancedParens ::= + * StringWithBalancedParens ::= * [^()]* ('(' StringWithBalancedParens ')' [^()]*)* * [VC: Parenthesis escaping] * @@ -971,7 +971,7 @@ xmlXPtrGetChildNo(xmlXPathParserContextPtr ctxt, int indx) { * * Parse and evaluate an XPtrPart. Basically it generates the unescaped * string and if the scheme is 'xpointer' it will call the XPath interpreter. - * + * * TODO: there is no new scheme registration mechanism */ @@ -1097,7 +1097,7 @@ xmlXPtrEvalXPtrPart(xmlXPathParserContextPtr ctxt, xmlChar *name) { xmlFree(name); XP_ERROR(XPATH_MEMORY_ERROR); } - + xmlXPathRegisterNs(ctxt->context, prefix, URI); CUR_PTR = left; xmlFree(URI); @@ -1229,7 +1229,7 @@ xmlXPtrEvalChildSeq(xmlXPathParserContextPtr ctxt, xmlChar *name) { while (CUR == '/') { int child = 0; NEXT; - + while ((CUR >= '0') && (CUR <= '9')) { child = child * 10 + (CUR - '0'); NEXT; @@ -1253,7 +1253,7 @@ static void xmlXPtrEvalXPointer(xmlXPathParserContextPtr ctxt) { if (ctxt->valueTab == NULL) { /* Allocate the value stack */ - ctxt->valueTab = (xmlXPathObjectPtr *) + ctxt->valueTab = (xmlXPathObjectPtr *) xmlMalloc(10 * sizeof(xmlXPathObjectPtr)); if (ctxt->valueTab == NULL) { xmlXPtrErrMemory("allocating evaluation context"); @@ -1396,13 +1396,13 @@ xmlXPtrEval(const xmlChar *str, xmlXPathContextPtr ctx) { /* * Evaluation may push a root nodeset which is unused */ - xmlNodeSetPtr set; + xmlNodeSetPtr set; set = tmp->nodesetval; if ((set->nodeNr != 1) || (set->nodeTab[0] != (xmlNodePtr) ctx->doc)) stack++; } else - stack++; + stack++; } xmlXPathFreeObject(tmp); } @@ -1416,7 +1416,7 @@ xmlXPtrEval(const xmlChar *str, xmlXPathContextPtr ctx) { xmlXPathFreeObject(res); res = NULL; } - + xmlXPathFreeParserContext(ctxt); return(res); } @@ -1444,11 +1444,13 @@ xmlXPtrBuildRangeNodeList(xmlXPathObjectPtr range) { return(NULL); start = (xmlNodePtr) range->user; - if (start == NULL) + if ((start == NULL) || (start->type == XML_NAMESPACE_DECL)) return(NULL); end = range->user2; if (end == NULL) return(xmlCopyNode(start, 1)); + if (end->type == XML_NAMESPACE_DECL) + return(NULL); cur = start; index1 = range->index; @@ -1478,7 +1480,7 @@ xmlXPtrBuildRangeNodeList(xmlXPathObjectPtr range) { /* prune and return full set */ if (last != NULL) xmlAddNextSibling(last, tmp); - else + else xmlAddChild(parent, tmp); return(list); } else { @@ -1732,7 +1734,7 @@ xmlXPtrNbLocChildren(xmlNodePtr node) { * @ctxt: the XPointer Parser context * @nargs: the number of args * - * Function implementing here() operation + * Function implementing here() operation * as described in 5.4.3 */ static void @@ -1741,7 +1743,7 @@ xmlXPtrHereFunction(xmlXPathParserContextPtr ctxt, int nargs) { if (ctxt->context->here == NULL) XP_ERROR(XPTR_SYNTAX_ERROR); - + valuePush(ctxt, xmlXPtrNewLocationSetNodes(ctxt->context->here, NULL)); } @@ -1750,7 +1752,7 @@ xmlXPtrHereFunction(xmlXPathParserContextPtr ctxt, int nargs) { * @ctxt: the XPointer Parser context * @nargs: the number of args * - * Function implementing origin() operation + * Function implementing origin() operation * as described in 5.4.3 */ static void @@ -1759,7 +1761,7 @@ xmlXPtrOriginFunction(xmlXPathParserContextPtr ctxt, int nargs) { if (ctxt->context->origin == NULL) XP_ERROR(XPTR_SYNTAX_ERROR); - + valuePush(ctxt, xmlXPtrNewLocationSetNodes(ctxt->context->origin, NULL)); } @@ -1768,7 +1770,7 @@ xmlXPtrOriginFunction(xmlXPathParserContextPtr ctxt, int nargs) { * @ctxt: the XPointer Parser context * @nargs: the number of args * - * Function implementing start-point() operation + * Function implementing start-point() operation * as described in 5.4.3 * ---------------- * location-set start-point(location-set) @@ -1860,7 +1862,7 @@ xmlXPtrStartPointFunction(xmlXPathParserContextPtr ctxt, int nargs) { * @ctxt: the XPointer Parser context * @nargs: the number of args * - * Function implementing end-point() operation + * Function implementing end-point() operation * as described in 5.4.3 * ---------------------------- * location-set end-point(location-set) @@ -1996,7 +1998,7 @@ xmlXPtrCoveringRange(xmlXPathParserContextPtr ctxt, xmlXPathObjectPtr loc) { case XML_NOTATION_NODE: case XML_HTML_DOCUMENT_NODE: { int indx = xmlXPtrGetIndex(node); - + node = node->parent; return(xmlXPtrNewRange(node, indx - 1, node, indx + 1)); @@ -2243,7 +2245,7 @@ xmlXPtrRangeToFunction(xmlXPathParserContextPtr ctxt, int nargs) { cur = ctxt->cur; newset = xmlXPtrLocationSetCreate(NULL); - + for (i = 0; i < oldset->nodeNr; i++) { ctxt->cur = cur; @@ -2277,7 +2279,7 @@ xmlXPtrRangeToFunction(xmlXPathParserContextPtr ctxt, int nargs) { res = valuePop(ctxt); xmlXPathFreeObject(res); } - + ctxt->context->node = NULL; } @@ -2297,14 +2299,14 @@ xmlXPtrRangeToFunction(xmlXPathParserContextPtr ctxt, int nargs) { * @level: incremented/decremented to show level in tree * * Advance to the next element or text node in document order - * TODO: add a stack for entering/exiting entities + * TODO: add a stack for entering/exiting entities * * Returns -1 in case of failure, 0 otherwise */ xmlNodePtr xmlXPtrAdvanceNode(xmlNodePtr cur, int *level) { next: - if (cur == NULL) + if ((cur == NULL) || (cur->type == XML_NAMESPACE_DECL)) return(NULL); if (cur->children != NULL) { cur = cur->children ; @@ -2362,7 +2364,7 @@ xmlXPtrAdvanceChar(xmlNodePtr *node, int *indx, int bytes) { if ((node == NULL) || (indx == NULL)) return(-1); cur = *node; - if (cur == NULL) + if ((cur == NULL) || (cur->type == XML_NAMESPACE_DECL)) return(-1); pos = *indx; @@ -2400,7 +2402,7 @@ xmlXPtrAdvanceChar(xmlNodePtr *node, int *indx, int bytes) { return(0); } /* - * We should have a text (or cdata) node ... + * We should have a text (or cdata) node ... */ len = 0; if ((cur->type != XML_ELEMENT_NODE) && @@ -2453,9 +2455,10 @@ xmlXPtrMatchString(const xmlChar *string, xmlNodePtr start, int startindex, if (string == NULL) return(-1); - if (start == NULL) + if ((start == NULL) || (start->type == XML_NAMESPACE_DECL)) return(-1); - if ((end == NULL) || (endindex == NULL)) + if ((end == NULL) || (*end == NULL) || + ((*end)->type == XML_NAMESPACE_DECL) || (endindex == NULL)) return(-1); cur = start; if (cur == NULL) @@ -2538,13 +2541,12 @@ xmlXPtrSearchString(const xmlChar *string, xmlNodePtr *start, int *startindex, if (string == NULL) return(-1); - if ((start == NULL) || (startindex == NULL)) + if ((start == NULL) || (*start == NULL) || + ((*start)->type == XML_NAMESPACE_DECL) || (startindex == NULL)) return(-1); if ((end == NULL) || (endindex == NULL)) return(-1); cur = *start; - if (cur == NULL) - return(-1); pos = *startindex - 1; first = string[0]; @@ -2577,7 +2579,7 @@ xmlXPtrSearchString(const xmlChar *string, xmlNodePtr *start, int *startindex, /* * An empty string is considered to match before each * character of the string-value and after the final - * character. + * character. */ #ifdef DEBUG_RANGES xmlGenericError(xmlGenericErrorContext, @@ -2618,14 +2620,12 @@ xmlXPtrGetLastChar(xmlNodePtr *node, int *indx) { xmlNodePtr cur; int pos, len = 0; - if ((node == NULL) || (indx == NULL)) + if ((node == NULL) || (*node == NULL) || + ((*node)->type == XML_NAMESPACE_DECL) || (indx == NULL)) return(-1); cur = *node; pos = *indx; - if (cur == NULL) - return(-1); - if ((cur->type == XML_ELEMENT_NODE) || (cur->type == XML_DOCUMENT_NODE) || (cur->type == XML_HTML_DOCUMENT_NODE)) { @@ -2729,7 +2729,7 @@ xmlXPtrGetEndPoint(xmlXPathObjectPtr obj, xmlNodePtr *node, int *indx) { * @nargs: the number of args * * Function implementing the string-range() function - * range as described in 5.4.2 + * range as described in 5.4.2 * * ------------------------------ * [Definition: For each location in the location-set argument, @@ -2893,7 +2893,7 @@ error: * @ctxt: the XPointer Parser context * * [8] Predicate ::= '[' PredicateExpr ']' - * [9] PredicateExpr ::= Expr + * [9] PredicateExpr ::= Expr * * Evaluate a predicate as in xmlXPathEvalPredicate() but for * a Location Set instead of a node set @@ -2942,7 +2942,7 @@ xmlXPtrEvalRangePredicate(xmlXPathParserContextPtr ctxt) { */ cur = ctxt->cur; newset = xmlXPtrLocationSetCreate(NULL); - + for (i = 0; i < oldset->locNr; i++) { ctxt->cur = cur; @@ -2978,7 +2978,7 @@ xmlXPtrEvalRangePredicate(xmlXPathParserContextPtr ctxt) { res = valuePop(ctxt); xmlXPathFreeObject(res); } - + ctxt->context->node = NULL; } diff --git a/xstc/Makefile.am b/xstc/Makefile.am index 966a8de..5ef1819 100644 --- a/xstc/Makefile.am +++ b/xstc/Makefile.am @@ -118,7 +118,7 @@ pytests: $(PYSCRIPTS) $(TESTDIRS) tests: -@(if [ -x $(PYTHON) ] ; then \ - $(MAKE) MAKEFLAGS+=--silent pytests ; fi); + $(MAKE) pytests ; fi); # # Heavy, works well only on RHEL3 @@ -126,7 +126,7 @@ tests: valgrind: -@(if [ -x $(PYTHON) ] ; then \ echo '## Running the regression tests under Valgrind' ; \ - $(MAKE) CHECKER='valgrind -q' MAKEFLAGS+=--silent pytests ; fi); + $(MAKE) CHECKER='valgrind -q' pytests ; fi); CLEANFILES=$(PYSCRIPTS) test.log diff --git a/xstc/Makefile.in b/xstc/Makefile.in index 8aee9e7..1df0fad 100644 --- a/xstc/Makefile.in +++ b/xstc/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -46,11 +46,11 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -59,7 +59,6 @@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ -AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -96,6 +95,7 @@ HTML_DIR = @HTML_DIR@ HTML_OBJ = @HTML_OBJ@ HTTP_OBJ = @HTTP_OBJ@ ICONV_LIBS = @ICONV_LIBS@ +ICU_LIBS = @ICU_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -176,7 +176,6 @@ TEST_VTIME = @TEST_VTIME@ TEST_XINCLUDE = @TEST_XINCLUDE@ TEST_XPATH = @TEST_XPATH@ TEST_XPTR = @TEST_XPTR@ -THREADS_W32 = @THREADS_W32@ THREAD_CFLAGS = @THREAD_CFLAGS@ THREAD_LIBS = @THREAD_LIBS@ VERSION = @VERSION@ @@ -395,10 +394,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -589,7 +593,7 @@ pytests: $(PYSCRIPTS) $(TESTDIRS) tests: -@(if [ -x $(PYTHON) ] ; then \ - $(MAKE) MAKEFLAGS+=--silent pytests ; fi); + $(MAKE) pytests ; fi); # # Heavy, works well only on RHEL3 @@ -597,7 +601,7 @@ tests: valgrind: -@(if [ -x $(PYTHON) ] ; then \ echo '## Running the regression tests under Valgrind' ; \ - $(MAKE) CHECKER='valgrind -q' MAKEFLAGS+=--silent pytests ; fi); + $(MAKE) CHECKER='valgrind -q' pytests ; fi); # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. -- cgit v1.2.3
      + + + + + + + + + + + + /usr/bin + + + Directory + + + + + foo.sgml + + + Filename + + + + + command + + + Command or text that would be typed. + + + + + replaceable + + + "Variable" text that can be replaced. + + + + + Program or Doc Code + + Program or document code + + + + + + + + + + + About This Handbook + + This Handbook is a guide for both writing documentation for + GNOME components and applications and for properly binding and + packaging documentation into GNOME applications. + + + This Handbook, like all GNOME documentation, was written in + DocBook(SGML) and is available in several formats including + SGML, HTML, PostScript, and PDF. For the latest version, see + + Getting The GNOME Handbook of Writing Software + Documentation . Alternately, one may + download it anonymously from GNOME CVS under gnome-docu/gdp. + + + + + + + + Getting Started Writing GNOME Documentation + + + + + Selecting A Document + + + Document Something You Know + + The most frequently asked question of new contributors who + join the GDP is "which document should I start + with?". Because most people involved are volunteers, we do + not assign projects and applications to + write documents for. The first step is all yours - you must + decide what about GNOME interests you most and find out if + it has complete documents or not. + + + It is also important to spend some time with GNOME to make + sure you are familiar enough with it to be + authoritative in your writing. The + best way to do this is to just sit down and play with GNOME + as much as possible before starting to write. + + + The easiest way to get started is to improve existing + documentation. If you notice some inaccuracies or omissions + in the documentation, or you think that you can explain the + material more clearly, just send your suggestions to the + author of the original documentation or to the GNOME + documentation project at docs@gnome.org. + + + + + The GNOME Documentation Status Table + + The GDP Documentation Status Table + (DocTable) (http://www.gnome.org/gdp/doctable/) is a + web page which tracks the status of all the various + documentation components of GNOME. These components include + application documentation, internal GNOME component + documentation, user documentation, and developer + documentation. For each documentation item, it tracks the + current status of the documentation, who is working on the + particular document, where the documentation can be found, + and provides a forum for the discussion of each item. + + + You should use the DocTable to help + you select a documentation item which needs work done. Once + you have selected an item to work on, please register + yourself as an author so that other authors do not duplicate + your work and may contact you to help or offer suggestions. + Also be sure to keep the status icons up-to-date so that + the GDP team can easily identify which items need additional + help. The DocTable also allows + people to make announcements and suggestions and to discuss + issues in the comments section. + + + Note + + Note that the information in the + DocTable may not always be up-to-date + or accurate. When you assign yourself to documenting an + application, make sure you find out the latest status of + documentation by contacting the application author. + + + + + + + + + Installing and Using DocBook + + All documentation for the GNOME project is written in SGML + using the DocBook DTD. There are many advantages to using + this for documentation, not least of which is the single + source nature of SGML. To contribute to the GDP you should + learn to use DocBook. + + + NOTE + + To get started writing for the GDP you do not need to rush + out and learn DocBook - if you feel it is too much to handle + for now, you can submit plain ASCII text to the + gnome-doc-list mailing list + and a volunteer will mark it up for you. Seeing your + document marked up will also be a great way for you to start + learning DocBook. + + + + Installing DocBook + + Download and install the following DocBook Tools packages: jade, docbook, + jadetex, sgml-common, and stylesheets. (RPM users should note + that jade is platform dependent (eg. i386), while the other packages + are in the noarch + directory.) You can find more + information on DocBook Tools here. + + + If you are an Emacs user you may + want to grab the psgml package as well. This is a major mode + for editing sgml files in Emacs. + + + + + GDP Stylesheets + + The GDP uses its own DocBook stylesheets. To use the GDP + stylesheets, you should download the file + gdp-both.dsl from the gnome-docu/gdp/dsssl module in + CVS (or from + GDP Custom DSSSL Stylesheet)and copy it + + over the file + /usr/lib/sgml/stylesheets/cygnus-both.dsl. + Alternately, you can download and install the + gnome-doc-tools package which will set + up the stylesheets as well as the DTD discussed below. + + + + + + + GDP DTD (PNG Image Support) + + Due to some license issues involved with the creation of + gifs, the GNOME Documentation Project has decided to use the + PNG image format for all images in GNOME documentation. You + can read more about the issues involved with gifs at http://www.gnu.org/philosophy/gif.html. + + + The current DocBook DTD(3.1) does not include support for + embedding PNG images in your documents. Since the GDP uses + many screenshots in its documentation, we use our own + variation on the DocBook DTD which has PNG image support. + We encourage everybody to use this DTD instead of the + default DocBook DTD since your source document header and + your output document appearance subtly vary between the two + DTD's. To install the GDP custom DTD with PNG image support + by hand: + + + + + Download the + GDP DocBook DTD for PNG support and install it + where you keep your DTD's. (On Red Hat use /usr/lib/sgml/.) Note that + the 3.0 DTD is missing support for the + <legalnotice> tag, so it is + recommended that you use version 3.1 + + + + + Add the new DTD to your SGML CATALOG file. The location + of your SGML CATALOG file may vary depending upon your + distribution. (On Red Hat it is usually in + /usr/lib/sgml/CATALOG.) Add the following line to this + file: + +PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.0//EN" "png-support-3.0.dtd" + + If you are using the 3.1 DTD, use: + +PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN" "png-support-3.1.dtd" + + + + + + Alternately, you can download and install the + gnome-doc-tools package which will set + up the custom stylesheets and DTD for you. + + + To include PNG files in your documents, you will need to + indicate that you are using this special DTD. To do + this, use the following headers: + + + Articles: + +]]> + + + + Books: + +]]> + + + + + + + Editors + + There are many editors on Linux and UNIX systems available + to you. Which editor you use to work on the sgml documents + is completely up to you, as long as the editor is able to + preserve sgml and produce the source in a format that is + readable by everyone. + + + Probably the two most popular editors available are + Emacs and + vi. These and other editors are + used regularly by members of the GDP. Emacs has a major + mode, psgml, for editing sgml files which can save you time + and effort in adding and closing tags. You will find the + psgml package in DocBook Tools, which is the standard set of + tools for the GDP. You may find out more about DocBook Tools + in . + + + + + Creating Something Useful with your Docs + + The tools available in DocBook Tools allow you to convert + your sgml document to many different formats including html + and Postscript. The primary tool used to do the conversion + is an application called Jade. In + most cases you will not have to work directly with + Jade; Instead, you will use the + scripts provided by DocBook Tools. + + + To preview your DocBook document, it is easiest to convert + it to html. If you have installed the + DocBook tools described above, all you have to do is to run + the command $db2html + mydocument.sgml. If there are no sgml syntax + errors, this will create a directory mydocument and place the + resulting html files in it. The title page of the document + will typically be + mydocument/index.html. If you have + screenshots in your document, you will have to copy these + files into the mydocument directory by + hand. You can use any web browser to view your document. + Note that every time you run db2html, it + creates the mydocument directory over, so + you will have to copy the screenshots over each time. + + + You can also convert your document to PostScript by running + the command $db2ps + mydocument.sgml, after which you can print out or + view the resulting .ps file. + + + NOTE + + The html files you get will not look quite the same as the + documentation distributed with GNOME unless you have the + custom stylesheets installed on your machine. DocBook + Tools' default stylesheets will produce a different look + to your docs. You can read more about the GDP stylesheets + in . + + + + + + Images in DocBook Tools + + If your document uses images you will need to take note of a + few things that should take place in order for you to make + use of those images in your output. + + + The DocBook Tools scripts and applications are smart enough + to know that when you are creating html you will be using + PNG files and when you are creating Postscript you will be + using EPS files (you must use EPS with Postscript). + + + Thus, you should never explicitly + include the extension of the image file, since DocBook + Tools will automatically insert it for you. For example: + + + + My Image + + Sample GNOME Display + + + + +]]> + + You will notice in this example that the file + myfile.png was referred to as simply + myfile. Now when you run + db2html to create an html file, it will + automatically look for myfile.png in + the directory. + + + If you want to create PostScript ouput, you will need to create an + EPS version of your image file to be displayed in the + PostScript file. There is a simple script available which + allows you to change a PNG image into an EPS file + easily. You can download this file - img2eps - from http://people.redhat.com/dcm/sgml.html + (look for the img2eps section). Note that this script is + included in the gnome-doc-tools package, so if you are using + this package, you should already have + img2eps on you system. + + + + + Learning DocBook + + There are many resources available to help you learn DocBook. + The following resources on the web are useful for learning + DocBook: + + + + + http://www.docbook.org - Norman + Walsh's DocBook: The Definitive + Guide. Online O'Reilly book on using + DocBook. Contains an excellent element reference. May be + too formal for a beginner. + + + + + A Practical Introduction to DocBook + - The Open Source Writers Group's introduction to using + DocBook. This is an excellent HOW-TO type article on + getting started. + + + + + Getting Going with DocBook: Notes for + Hackers - Mark Galassi's introduction to DocBook + for hackers. This has to be one of the first + introductions to DocBook ever - still as good as it ever + was. + + + + + + FreeBSD Documentation Project Primer for New + Contributors - FreeBSD documentation project + primer. Chapter 4.2 provides a very good introduction to + writing documentation using DocBook. Note that it also + describes some custom extensions of DocBook; + fortunately, they are clearly marked as such. + + + + + Norman Walsh's book is also available in print. + + + The following sections of this document are designed to help + documentation authors write correct and consistent DocBook: + + + + + - Descriptions of + commonly used DocBook tags. + + + + + You may also discuss specific DocBook questions with GDP + members on the #docs IRC channel at irc.gnome.org and on the + gnome-doc-list mailing list. + + + + + + + + + + GDP Document Templates + + Templates for various types of GNOME documents are found in + . They are kept in CVS in + gnome-docu/gdp/templates. The easiest source to get them from + is probably the GDP + Document Templates web page, which is typically kept + completely up-to-date with CVS and has a basic description of + each file from CVS. + + + + + + + Screenshots + + Most GNOME documents will have screenshots of the particular + applet, application, GNOME component, or widget being + discussed. As discussed above in you + will need to install the special GDP DocBook DTD which + supports PNG images, the format used for all images in GNOME + documentation. For the basic DocBook structure used to insert + images in a document, see above. + + + Screenshot Appearance + + For all screenshots of windows that typically have border + decorations (e.g. applications and dialogs, but not applets + in a panel), GDP standards dictate + the appearance of the window. (This is to minimize possible + confusion to the reader, improve the appearance of GNOME + documents, and guarantee the screenshot is readable when + printed.) All screenshots should be taken with the SawFish + (formerly known as Sawmill) window manager using the + MicroGui theme and Helvetica 12pt font. (A different window + manager can be used provided the MicroGui theme is available + for this window manager and the appearance is identical to + that when using the SawFish window manager.) The default + GTK+ theme(gtk) and font (Helvetica 12 pt) should be used + for all screenshots. If you are unable to provide + screenshots in this form, you should create screenshots as + you wish them to appear and send them to the + + gnome-doc-list mailing list + requesting a GDP member reproduce these screenshots in the + correct format and email them to you. + + + + Screenshot Tools + + There are many tools for taking screenshots in + GNOME/Linux. Perhaps the most convenient is the + Screen-Shooter Applet. Just click + on the window icon in the applet and then on the window you + would like to take a screenshot of. (Note that + at the time of this writing, PNG images taken by + screenshooter do not appear properly in + Netscape or the + GNOME Help Browser. You + should save your screenshot as a GIF and + then use convert filename.gif + filename.png.) For applets + in a Panel, + xv can be used to crop the + screenshot to only include the relevant portion of the + Panel. Note that + xv and + gimp can both be used for taking + screenshots, cropping screenshots, and converting image + formats. + + + + Screenshot Files + + Screenshots should be kept in the main documentation + directory with your SGML file for applets, or should be + kept in a directory called "figs" for application and other + documentation. After you use db2html to + convert your SGML file to HTML (see ), you will need to copy your + screenshots (either the individual PNG files for applet + documentation, or the whole "figs" directory for other + documentation) into the newly created HTML directory. Note + that every time you use db2html the HTML + directory is erased and rewritten, so do not store your only + copy of the screenshots in that directory. If you wish to + create PostScript or PDF output, you will need to manually + convert the PNG images to EPS as described in , but will not need to copy these + images from their default location, as they are included + directly into the output(PostScript of PDF) file. + + + + + + + + + Application Bugs + + Documentation authors tend to investigate and test applets and + applications more thoroughly than most + users. Often documentation authors will discover one or + more bugs in the software. These bugs vary from small ones, + such as mis-spelled words or missing + About dialogs in the menu, to large + ones which cause the applet to crash. As all users, you + should be sure to report these bugs so that application + developers know of them and can fix them. The easiest way to + submit a bug report is by using the Bug + Buddy applet which is part of the gnome-applets + package. + + + + + + + + Using CVS + + CVS (Concurrent Versions System) is a tool that allows + multiple developers to concurrently work on a set of + documents, keeping track of the modifications made by each + person. The files are stored on a server and each developer + checks files out, modifies them, and then checks in their + modified version of the files. Many GNOME programs and + documents are stored in CVS. The GNOME CVS server allows + users to anonymously check out CVS files. Most GDP members + will need to use anonymous CVS to download the most up-to-date + version of documentation or programs. Modified documents will + typically be emailed to the the application developer. Core + GDP members may also be granted login CVS privileges so they + may commit modified files directly to CVS. + + + + Anonymous CVS + + To anonymously check out documents from CVS, you must first + log in. From the bash shell, you should set your CVSROOT + shell variable with export + CVSROOT=':pserver:anonymous@anoncvs.gnome.org:/cvs/gnome' + and then login with cvs login(there is no + password, just hit return). As an example, we will use the + "gnome-docu/gdp" module which contains this and several + other documents. To check these documents out for the first + time, type cvs -z3 checkout + gnome-docu/gdp. After you have this document + checked out and you would like to download any updates on + the CVS server, use cvs -z3 update -Pd. + + + + + Login CVS If you have been given a + login for the GNOME CVS server, you may commit your file + modifications to CVS. Be sure to read the following section + on CVS etiquette before making any commits to CVS. To log in + to the CVS server as user + username with a + password, you must first set your CVSROOT shell variable with + export + CVSROOT=':pserver:username@cvs.gnome.org:/cvs/gnome'. + Log in with cvs login and enter your + password. You may check out and update modules as described + above for anonymous CVS access. As a login CVS user, you may + also check modified versions of a file into the CVS server. + To check + filename into + the CVS server, type cvs -z3 commit + filename. You will be + given a vi editor window to type in a brief log entry, + summarizing your changes. The default editor can be changed + using the EDITOR environment variable or + with the option. You + may also check in any modifications to files in the working + directory and subdirectories using cvs -z3 + commit. To + add a new file to the CVS server, use cvs -z3 add + filename, followed by the + commit command. + + + + + CVS Etiquette + + Because files in CVS are typically used and modified by + multiple developers and documentation authors, users should + exercise a few simple practices out of courtesy towards the + other CVS users and the project leader. First, you should + not make CVS commits to a package without first discussing + your plans with the project leader. This way, the project + leader knows who is modifying the files and generally, what + sort of changes/development is being done. Also, whenever a + CVS user commits a file to CVS, they should make an entry in + the CVS log and in the ChangeLog so + that other users know who is making modifications and what + is being modified. When modifying files created by others, + you should follow the indentation scheme used by the initial + author. + + + + + + + + + The GNOME Documentation System + + + + + The GNOME Help Browser + + At the core of the GNOME help system is the GNOME + Help Browser. The Help + Browser provides a unified interface to several + distinct documentation systems on Linux/Unix systems: man + pages, texinfo pages, Linux Documentation Project(LDP) + documents, GNOME application documentation, and other GNOME + documents. + + + The GNOME Help Browser works by + searching standard directories for documents which are to be + presented. Thus, the documentation that appears in the GHB is + specific to each computer and will typically only represent + software that is installed on the computer. + + + + + + + The GNOME Help Browser (GNOME-2.0) In + GNOME 2.0, the GNOME Help Browser + will be replaced by Nautilus. + Nautilus will be the file manager/graphical shell for GNOME 2.0 + and will also implement a more sophisticated help system than + that used by the GNOME Help Browser + used in GNOME 1.0. It will read and display DocBook files + directly, avoiding the need for duplicating documents in both + DocBook and HTML formats. Its display engine for DocBook will + be much faster than running jade to + convert to HTML for rendering. Because it uses the original + DocBook source for documentation, it will be possible to do more + sophisticated searching using the meta information included in + the documents. And since Nautilus is a virtual file system + layer which is Internet-capable, it will be able to find and + display documents which are on the web as well as those on the + local file system. For more information on + Nautilus, visit the #nautilus IRC + channel on irc.gnome.org. + + + + + + Dynamic Document Synthesis(GNOME-2.0) + + GNOME uses the documentation presented by all the various + GNOME components and applications installed on the system to + present a complete and customized documentation environment + describing only components which are currently installed on a + users system. Some of this documentation, such as the manuals + for applets, will be combined in such a way that it appears to + be a single document. + + + By using such a system, you can be sure that any GNOME app you + install that has documentation will show up in the index, + table of contents, any search you do in the help browser. + + + + + + + The GNOME Documentation Components + + + Application Manuals + + Every GNOME application should have an application manual. + An application manual is a document specific to the + particular application which explains the various windows + and features of the application. Application Manuals + typically use screenshots (PNG format) for clarity. Writing + application manuals is discussed in more detail in below. + + + + + Application Help + + Applications should have a Help + button on screens on which users may need help. These + Help buttons should pull up the + default help browser, determined by the + ghelp URL Handler (configured using the + Control Center), typically the + GNOME Help Browser. The help + browser should show either the first page of the application + manual, or else the relevant page thereof. Application help + is described in more detail in below. + + + + + Application Context Sensitive Help (coming in + GNOME-2.0) + + Context sensitive help is a system which will allow the user + to query any part (button, widget, etc.) of an application + window. This is done by either entering a CS Help mode by + clicking on an icon or by right clicking on the application + part and selecting "What's This" or whatever is decided on + at the time. Context sensitive help is described in more + detail in + below. + + + + + The GNOME User Guide + + The GNOME User Guide describes the + GNOME desktop environment and core components of GNOME such + as the panel and + control center. In GNOME 1.x this + was the main and only source of documentation. In GNOME 2.0 + this will become a document for the web and for printing + that is derived from various parts chosen in the system that + are necessary for the new user to understand. + + + + + User Documents + + Aside from the GNOME User Guide, + there are several other documents to help GNOME users learn + GNOME, including the GNOME FAQ, + GNOME Installation and Configuration + Guide, and the GNOME Administrators + Guide. + + + + + Developer Documents + + There are many White Papers, Tutorials, HOWTO's and FAQ's to + make programming GNOME and GNOME applications as easy as + possible. + + + API documentation is also available for the GNOME libraries. This is + detailed documentation of the code that is used to build GNOME + apps. You can keep up with the GNOME API docs on the GNOME API + Reference page. + + + + + Project Documents + + Some GNOME projects have documentation to maintain + consistency in their product and to help new contributors + get up to speed quickly. Among these are the GDP documents, + such as the one you are reading now. + + + + + + + + + + DocBook Basics + + + + Introduction to DocBook + + To understand DocBook, a basic understanding of SGML is + helpful. SGML stands for Standard General Markup Language and + is one of the first markup languages every created. HTML is + actually derived from SGML and XML is a subset of SGML. SGML + uses what is called a Document Type Definition to specify + elements which are contained between + brackets, < and >. Text is marked by both beginning and + ending elements, for example in the DocBook DTD, one denotes a + title with <title>The + Title</title>. + + + The DTD (in the case of the GDP, DocBook) defines rules for how the + elements can be used. For example, if one element can only be used when + embedded within another, this is defined in the DTD. + + + An SGML file is just a plain ASCII file containing the text + with the markup specified above. To convert it to some easily + readable format, you need special tools. The GDP uses DocBook + Tools, a free package of utilities for working with DocBook + which includes Jade, which does the SGML/DSSL + parsing. You can read more about DocBook Tools in . + + + The final appearance of the output (e.g. PostScript or HTML) + is determined by a + stylesheet. Stylesheets are files, + written in a special language (DSSSL — Document Style + Semantics and Specification Language), which specify the + appearance of various DocBook elements, for example, + what fonts to use for titles and various inline elements, page + numbering style, and much more. DocBook tools come with a + collection of stylesheets (Norman Walsh's modular + stylesheets); GNOME Document Project uses some customized + version of this stylesheets — see . + + + The advantage of specifying the structure + of a document with SGML instead of specifying the + appearance of the document with a typical + word processor, or with html, is that the resulting document + can be processed in a variety of ways using the structural + information. Whereas formatting a document for appearance + assumes a medium (typically written text on a standard-sized + piece of paper), SGML can be processed to produce output for a + large variety of media such as text, postscript, HTML, + Braille, audio, and potentially many other formats. + + + Using 'content' as the elements to define the text of a document also + allows for search engines to make use of the actual elements to make a + "smarter search". For example, if you are searching for all documents + written by the author "Susie" your search engine could be made smart + enough to only search <author> elements, making for a faster and more + accurate search. + + + Since the overall appearance of the output is determined not by the DTD + or the SGML document, but rather by a stylesheet, the appearance of a + document can be easily changed just by changing the stylesheet. This + allows everyone in the project to create documents that all look the + same. + + + As stated before, the GDP uses the DocBook DTD. For a list of + introductory and reference resources on DocBook, see . The following sections also provide + convenient instructions on which markup tags to use in various + circumstances. Be sure to read + for GDP documentation-specific guidelines. + + + + + + XML and SGML + + In not so distant future (probably before GNOME 2.0), + DocBook itself and GNOME Documentation project will migrate from + SGML to XML. This transition should be relatively painless: + (almost) all DocBook tags will remain the same. However, XML has + stricter syntax rules than SGML; thus, some constructions which + are valid in SGML will not be valid in XML. Therefore, to be + ready for this transistion, it is strongly + advised that the documentation writers conform to XML + syntax rules. Here are most important differences: + + + + + Minimization + + + + It is possible with some implementations of SGML to use + minimizations to close elements in a document by using + </>, for example: + <title>The + Title</>. This is not + allowed in XML. You can use sgmlnorm command, + included in DocBook Tools package, to expand minimized tags; + if you are using Emacs with psgml + mode, you can also use menu command + + Modify + Normalize + . + + + + + Self-closing tags + + + + Also, in SGML some tags are allowed not to have closing + tags. For example, it is legal for + <xref> not to have a closing tag: + <xref + linkend="someid">. In + XML, it is illegal; instead, you should use + <xref + linkend="someid"/> (note the + slash!). + + + + + + Case sensitive tags + + + In XML, unlike SGML, tags are case-senstive + <title> and + <TITLE> are different tags! + Therefore, please always use lowercase tags (except for + things like DOCTYPE, CDATA and + ENTITY, which are not DocBook tags). + + + + + + + + + + + + + + + Structure Elements + + + Sections and paragraphs + + Top-level element of a book body must be + <chapter>; it may contain one or more + <sect1>, each of them may contain + <sect2> and so on up to + <sect5>. The top-level element of an + article body is always + <sect1>. Regardless of which elements + you use, give each structural element a unique id, so that + you can link to it. For usage example, see the template. + + Please try to avoid using deeply nested sections; for + most situations, <sect1> and + <sect2> should be sufficient. If not, + you probably should split your <sect1> + into several smaller ones. + + Use the tag <para> for + paragraphs, even if there is only one paragraph in a + section—see template for examples. + + + + + Notes, Warnings, And Tips + + For notes, tips, warnings, and important information, which + should be set apart from the main text (usually as a + paragraph with some warning sign on the margin), use tags + <note>, <tip>, + <warning>, + <important> respectively. For example: + + + TIP + + To speed up program compilation, use gcc + compiler with Pentium optimization. + +]]> produces + + + TIP + + To speed up program compilation, use + gcc compiler with Pentium + optimization. + + + Note that this should not be inside a + <para> but between paragraphs. + + + + Screenshots and other figures + + To include screenshots and other figures, use the following + tags: + + + + Screenshot + + Screenshot of a program + + + +]]> + + replacing example_screenshot with the + actual file name (without extension). The result will look like this: + +
      + Screenshot + + Screenshot of a program + + + +
      +
      + + NOTE + + Notice in this example that the screenshot file name does + not include the file type extension — to find out + why, please read . + + +
      + + Program listings and terminal session + To show a file fragment—for example, program + listing—use <programlisting> tag: + + +[Desktop Entry] +Name=Gnumeric spreadsheet +Exec=gnumeric +Icon=gnome-gnumeric.png +Terminal=0 +Type=Application +]]> + + which produces + +[Desktop Entry] +Name=Gnumeric spreadsheet +Exec=gnumeric +Icon=gnome-gnumeric.png +Terminal=0 +Type=Application + + As a matter of fact, all examples in this document were + produced using <programlisting>. + + + To show a record of terminal session—i.e., sequence of + commands entered at the command line—use + <screen> tag: + + +bash$make love +make: *** No rule to make target `love'. Stop. +]]> + + which produces + +bash$make love +make: *** No rule to make target `love'. Stop. + + Note the use of tags <prompt> and + <userinput> for marking system prompt + and commands entered by user. + + NOTE + + Note that both <programlisting> + and <screen> preserve linebreaks, + but interpret SGML tags (unlike LaTeX + verbatim environment). Take a look at + the source of this document to see how you can have SGML + tags literally shown but not interpreted, + + + + + + Lists + + The most common list types in DocBook are + <itemizedlist>, + <orderedlist>, and + <variablelist>. + + + + <itemizedlist> + + This is the simplest unnumbered list, parallel to + <ul> in HTML. Here is an example: + + + + + Show backup files — This will + show any backup file that might be on your system. + + + + + Show hidden files — This will + show all "dot files" or files that begin with a dot. This + files typically include configuration files and directories. + + + + + Mix files and directories — This + option will display files and directories in the order you + sort them instead of + always having directories shown above files. + + + +]]> + + and output: + + + + + Show backup files — + This will show any backup file that might be on + your system. + + + + + + Show hidden files — + This will show all "dot files" or files that + begin with a dot. This files typically include + configuration files and directories. + + + + + + Mix files and directories + — This option will display files and + directories in the order you sort them instead + of always having directories shown above files. + + + + Note the use of &mdash; + for long dash (see ). Also, + please note that the result looks much nicer because the + terms being explained (Show backup + files, etc.) are set in a different font. In + this case, it was achieved by using <guilabel> + tag. In other cases, use appropriate tags such as + <guimenuitem>, + <command>, + or — if none of + this applies — use + <emphasis>. + + + + + <orderedlist> + + This list is completely analogous to + <itemizedlist> and has the same + syntax, but it produces numbered list. By default, + this list uses Arabic numerals for numbering entries; + you can override this using numeration, + for example <orderedlist + numeration="lowerroman">. Possible values of + these attribute are arabic, + upperalpha, + loweralpha, + upperroman, + lowerroman. + + + + + <variablelist> + This list is used when each entry is + rather long, so it should be formatted as a block of text + with some subtitle, like a small subsection. The + <variablelist> is more complicated + than itemizedlists, but for larger blocks of text, or when + you're explaining or defining something, it's best to use + them. Their greatest advantage is that it's easier for a + computer to search. The lines you are reading now were + produced by <variablelist>. The + source looked liked this: + + + + <itemizedlist> + + This is the simplest unnumbered list, parallel to + <ul> in HTML. Here is an example:... + + + + <orderedlist> + + This list is completely analogous to + <itemizedlist> + + + + <variablelist> + + This list is used when each entry is rather long,... + + + +]]> + + + + + + + Lists can be nested; in this case, the stylesheets + are smart enough to change the numeration (for + <orderedlist>) or marks of each entry + (in <itemizedlist>) for sub-lists + + + +
      + + + + + Inline Elements + + + GUI elements + + + + <guibutton> — used for + buttons, including checkbuttons and radio buttons + + + + + + <guimenu>, + <guisubmenu> —used for + top-level menus and submenus + respectively, for example Utilities submenu of the + Main Menu]]> + + + + + + <guimenuitem>—an entry in a + menu + + + + + + <guiicon>—an icon + + + + + + <guilabel>—for items which have + labels, like tabs, or bounding boxes. + + + + + <interface>— for most everything + else... a window, a dialog box, the Panel, etc. + + + + + If you need to refer to a sequence of menu choices, such as + + Main Menu + Utilities GNOME + terminal + + there is a special construction for this, too: + + + Main Menu Utilities + GNOME terminal ]]> + + + + + + Links and references + + To refer to another place in the same document, you can use + tags <xref> and + <link>. The first of them + automatically inserts the full name of the element you refer + to (section, figure, etc.), while the second just creates a + link (in HTML output). Here is an example: + +tip was given in +. ]]> + + which produces: An example of a tip was given in . + + + Here notes and extip + are the id attributes of and of the + example of a tip in it. + + To produce a link to an external source, such as a + Web page or a local file, use <ulink> + tag, for example: + +GNOME Web page ]]> + + which produces: To find more about GNOME, please visit + The GNOME Web + Site You can use any of the standard URL types, such + as http, ftp, file, telnet, mailto (in + most cases, however, use of mailto is + unnecessary—see discussion of + <email> tag). + + + + Filenames, commands, and other + computer-related things + + Here are some tags used to describe operating system-related + things: + + + + <filename> — used + for filenames, + e.g.<filename> + foo.sgml + </filename> + produces: foo.sgml. + + + + <filename + class="directory"> — used for + directories, e.g.<filename + class="directory">/usr/bin + </filename> + produces: /usr/bin. + + + + + <application> — used for + application names, + e.g. <application>Gnumeric + </application> produces: + Gnumeric. + + + + + <envar> — used for + environment variables, e.g. + <envar>PATH</envar>. + + + + + + <command> — used for + commands entered on command line, e.g. + <command>make install + </command> produces: + make install. + + + + + <replaceable> — used for + replaceable text, e.g. + <command>db2html<replaceable> + foo.sgml + </replaceable></command> + produces: db2html + foo.sgml. + + + + + + + Keyboard input + To mark up text input by the user, use + <userinput>. + + To mark keystrokes such as shortcuts and other + commands, use <keycap>. + This is used for marking up what is printed on the top + of the physical key on the keyboard. There are a couple of + other tags for keys, too: <keysym> + and <keycode>. However you are + unlikely to need these for most documentation. For reference, + <keysym> is for the symbolic + name of a key. <keycode> is + for the scan code of a key. These are not + terms commonly required in GNOME documentation, + although <keysym> is useful for marking + up control codes. + + + To mark up a combination of keystrokes, use the + <keycombo> wrapper: + + + Ctrl + Alt + F1 +]]> + + + + Finally, if you want to show a shortcut for some menu + command, here are the appropriate tags (rather long): + + + + Ctrlq + + Quit +]]> + + which produces simply + + Ctrl-q + Quit + + + + + + E-mail addresses To mark up e-mail + address, use <email>: + +me@mydomain.com)]]> + + which produces: The easiest way to get in touch with me is + by e-mail (me@mydomain.com) Note that + <email> automatically produces a link + in html version. + + + + + Special symbols + + DocBook also provides special means for entering + typographic symbols which can not be entered directly + form the keyboard (such as copyright sign). This is done using + entities, which is SGML analogue of + macros, or commands, of LaTeX. They generally have the form + &entityname;. Note that the semicolon + is required. + + + here is partial list of most commonly used enitites: + + + + &amp; — ampersend (&) + + + &lt; — left angle bracket (<) + + + &copy; — copyright sign (©) + + + &mdash; — long dash (—) + + + &hellip; — ellipsis (…) + + + + Note that the actual look of the resulting symbols depends + on the fonts used by your browser; for example, it might + happen that long dash (&mdash;) looks + exactly like the usual dash (-). However, in the PostScript + (and thus, in print) the output will look markedly better if + you use appropriate tags. + + + +
      + + + + + GDP Documentation Conventions + + + + + Conventions for All GDP Documentation + + XML compatibility + + All GNOME documentation should conform to XML syntax + requirements, which are stricter than SGML ones — see + for more informaion. + + + + + Authors' names + + All GNOME documentation should contain the names of both the + application authors and documentation authors, as well as a + link to the application web page (if it exists) and + information for bug submission — see templates for an + example. + + + + + + + + Conventions for Application Documentation + + + Application Version Identification + + Application documentation should identify the version of the + application for which the documentation is written: + + + Introduction + + blah-blah-blah This document describes version 1.0.53 of gfoo. + +]]> + + + + + Copyright information + Application + documentation should contain a copyright notice, stating the + licensing terms. It is suggested that you use the GNU Free + Documentation License. You could also use some other license + allowing free redistribution, such as GPL or Open Content + license. If documentation uses some trademarks (such as UNIX, + Linux, Windows, etc.), proper legal junk should also be + included (see templates). + + + + Software license + + All GNOME applications must contain information about the + license (for software, not for documentation), either in the + "About" box or in the manual. + + + + + Bug reporting + + Application documentation should give an address for + reporting bugs and for submitting comments about the + documentaion (see templates for an example). + + + + + + + + + Writing Application and Applet Manuals + + Every GNOME application or applet should have a manual specific + to that particular application. This manual should be a complete + and authoritative guide. The manual should describe what the + program does and how to use it. Manuals will typically describe + each window or panel presented to the user using screenshots (in + PNG format only) when appropriate. They should also describe + each feature and preference option available. + + + Documentation Availability + + Applications and applets should not rely on documentation + which is only available on the internet. All manuals and + other documentation should be packaged with the application or + applet and be made available to the user through the standard + GNOME help system methods described below. + + + Application manuals should be based on the template in + . Applet manuals should be based on + the templates in for GNOME + versions 1.x and the templates in + for GNOME versions 2.x. + + + Manuals For Large Applications + + Manuals for very large applications, such as GNOME Workshop + components should be a <book> (and thus + use <chapter> for each primary section) + , instead of <article> which most + applications use(with each primary section being a + <sect1>). + + + + Applet Manuals in GNOME 2.0 + + Note that applet manuals in GNOME 2.0 are treated in a special + way. The manuals for all applets are merged into a single + virtual document by Nautilus. For this reason, the header + information for applet manuals is omitted and the first + section of each applet is + <sect1>. Applet manuals will typically + have several sections, each of which is + <sect2>. + + + + Application manuals should be made available by having a + "Manual" entry in the Help pull-down menu + at the top of the + application, as described in . + Applets should make their manuals available by + right-clicking on the applet. + + + + + + + + Listing Documents in the Help Menu + + + Developer Information + + This section is for developers. Documentation authors + generally do not need to know this material. + + + + Typically the application manual and possibly additional help + documents will be made available to the user under the + Help menu at the top right of the + application. To do this, you must first write a + topic.dat file. The format for this file is: + +One line for each 'topic'. + +Two columns, as defined by perl -e 'split(/\s+/,$aline,2)' + +First column is the HTML file (and optional section) for the topic, +relative to the app's help file dir. + +Second column is the user-visible topic name. + + For example, Gnumeric's + topic.dat file is: + +gnumeric.html Gnumeric manual +function-reference.html Gnumeric function reference + + When the application is installed, the + topic.dat file should be placed in the + $prefix/share/gnome/help/appname/C/ directory + where appname is replaced by the + application's name. The application documentation (converted + from SGML into HTML with db2html) should be + placed in this directory too. + + + + If the help files are not present in the correct directory, the + menu items will NOT appear when the program is run. + + + + The topic.dat file is used by the GNOME + menu building code to generate the Help + menu. When you define your menu: + +GnomeUIInfo helpmenu[] = { + {GNOME_APP_UI_ITEM, + N_("About"), N_("Info about this program"), + about_cb, NULL, NULL, + GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_ABOUT, + 0, 0, NULL}, + GNOMEUIINFO_SEPARATOR, + GNOMEUIINFO_HELP("appname"), + GNOMEUIINFO_END + }; + + the line specifying GNOMEUIINFO_HELP causes + GNOME to create a menu entry which is tied to the documentation + in the directory mentioned above. Also, all the topics in the + topic.dat file will get menu entries in the + Help menu. When the user selects any of these + topics from the Help menu, a help browser + will be started with the associated HTML documentation. + + + + + + + + Application Help Buttons + + + Developer Information + + This section is for developers. Documentation authors + generally do not need to know this material. + + + + Most GNOME applications will have Help + buttons. These are most often seen in Preference windows. (All + Preference windows should have Help + buttons.) Most Help buttons will connect + to the application manual, although some may connect to special + documents. Because the Help buttons do + not generally have their own special documentation, the + documentation author(s) do not need to do very much. However, + the application author must be careful to guarantee that the + application correctly opens the help documentation when the + Help buttons are pressed. + + + To make the Help buttons call the correct document in the GNOME Help + Browser the developer should add code based on the following example: + + +gchar *tmp; +tmp = gnome_help_file_find_file ("module", "page.html"); +if (tmp) { + gnome_help_goto(0, tmp); + g_free(tmp); +} + + + NOTE + + The example above is in the C language, please refer to other + documentation or forums for other GNOME language bindings. + + + + + + + + Packaging Applet Documentation + + Applet Documentation Files + + In GNOME 2.0 each applet will have its own documentation + installed separately, and the GNOME 2.0 help + browser (Nautilus) will dynamically + merge the applet documents into a single virtual book + called GNOME Applets. During the + transitionary stage between GNOME 1.0 and GNOME 2.0, each + applet in the gnome-applets package has its own manual(stored + with the applet in CVS), but they are merged together manually + to create the GNOME Applets book before + distribution. Telsa + hobbit@aloss.ukuu.org.uk is the maintainer of + this document. Applet documentation should be sent to Telsa + (or placed in CVS) who will make sure they are correctly + packaged with the applets. The applet author should be + contacted to modify the menu items and help buttons to bind to + the applet documentation if necessary. + + + Images which are part of the applet documentation should be in + PNG format and should reside in the same directory as the SGML + document file in CVS(gnome-applets/APPLETNAME/help/C). + + + Applets which are not part of the gnome-applets package must + package their documentation with the particular applet + package. They should use the same applet template as other + applets. However, the <xref> links to + the introductory chapter of the GNOME + Applets book must be removed (as the 1.x + GNOME Help Browser does not allow + you to create links between separate documents) and replaced + with suitable text. Note that since this document is not part + of the GNOME Applets book, you must + remember to add <legalnotice> and + <copyright> sections. + + + + + Adding Documentation to an Applet Menu + + Developer Information + + This section is for developers. Documentation authors + generally do not need to know this material. + + + + Applets should have About and + Manual menu items, typically as the first + and second top-most items in the menu respectively. This + section describes how the developer creates these menu items + and links them to the documentation. + + + To add an applet's manual to its applet menu, use: + +/* add an item to the applet menu */ +applet_widget_register_callback(APPLET_WIDGET(applet), "manual", +_("Manual"), &open_manual, NULL); + + Here the second argument is an arbitrary name for the + callback, the third argument is the label which will appear + when the user right clicks on the applet, and the fourth + argument is the callback function. + + + You will need to write a simple callback function to open the + help browser to the appropriate document. This is done using + the gnome_help_file_find_file function, + as described in . + + + You will also want to add an About menu + item to the applet's menu. This is a + stock menu item and is done: + +applet_widget_register_stock_callback (APPLET_WIDGET(applet), "about", + GNOME_STOCK_MENU_ABOUT, _("About"), &my_applet_cb_about, + NULL); + + + + More information can be found at Writing + GNOME panel applets using the GTK+/GTK-- widget set. + + + + + + + + + Writing Context Sensitive Help (coming in GNOME-2.0) + + Context sensitive help, also known as "pop-up" help, will allow + a user to obtain help information about specific buttons or + parts of an application. + + + Context sensitive help is still under development and not all + the details are available at this time. However, the basics can + be shown here so that you can understand how the system will + work. + + + The Context Sensitive Help system is designed to allow the + developer to give an id to a particular portion of the User + Interface, for example, a button. Once the interface is complete + a Perl script can then be run against the interface code to + create a "map" file. This map file allows the developer or + writer to associate particular paragraph sections from an XML + document to the interface items. + + + The XML used for the document is a small XML DTD that is being + developed to use the same tags (albeit, much fewer) as DocBook + so that writers do not have to re-learn a new DTD. + + + Once the document is written and map file is complete, when the + user launches context sensitive help on the interface (either by + pressing a button and then clicking on the interface item they + want information on, or by right mouse clicking on the interface + item and selecting a pop-up menu item like "What's This") a + small transient window will appear with brief but detailed + information on the interface item. + + + + + + + Referring to Other GNOME Documentation (coming in + GNOME-2.0) + + In the GNOME 2.0 Help System, you will be able to create links + from one document to another. The exact mechanism for doing + this is in development. + + + + + + + + Basics of Documentation Style + + Most people have never enjoyed reading a software manual, and + they probably never will. Many times, they'll read the + documentation only when they run into problems, and they'll be + frustrated and upset before they even read a word. On the + other hand, some readers will read the manual all the way + through, or at least look at the introduction before they + start. Your document might serve as a reference for an expert + or a guide to a beginner, and it must have enough depth to + satisfy the first without overwhelming the second. Ideally, it + will serve beginners as they become + experts. Remember, your goal is to produce complete, + intuitive and clear documentation. + + + In order to write useful documentation, you'll have to know who + your audience is likely to be. Then, you can look for the + problems they're likely to run into, and solve them. It will + also help if you focus on the tasks users will perform, and + group features accordingly, rather than simply describing + features at random. + + + + + + Planning + + Begin documenting by learning how to use the application and + reading over any existing documentation. Pay attention to + places where your document will differ from the template. It + may help to develop a document skeleton: a valid XML or SGML + document that has little or no content. For very large + applications, you will need to make significant departures + from the templates, since you'll be using the + <book> tag instead of + <chapter> or + <article>. + + + + + + + Achieving a Balanced Style + + + Just as you need to juggle expert and novice readers, + you'll have to juggle a number of other extremes as you write: + + + + Documents should be complete, yet concise. You should + describe every feature, but you'll have decide how much + detail is really necessary. It's not, for example, + necessary to describe every button and form field in a + dialog box, but you should make sure that your readers + know how to bring up the dialog and what it does. If + you spend fewer words on the obvious, you can spend more + time clarifying the ambiguous labels and explaining + items that are more complex. + + + + + Be engaging and friendly, yet professional. Games + documents may be less formal than productivity + application documents (people don't + use games, they + play them), but all of them should + maintain a standard of style which holds the reader's + interest without resorting to jokes and untranslatable + allusions or puns. + + + + + + Examples, tips, notes, and screenshots are useful to + break up long stretches of text, but too many can get in + the way, and make your documents too choppy to read. + It's good to provide a screenshot of any dialog windows + a user might run into, but if a dialog box has several + tabs, it's not usually necessary to have one for each. + + + + + + The GDP strives to have all of its documentation conform + to certain standards of style and content, but every + document (and every writer) is different. You will need + to use your judgement, and write documents to fit with + the rest of the project, without compromising the + individual needs of your subject, or your own + individuality as a writer. + + + + + + + + + + + + Structure + + In general, you won't have to worry too much about structure, + because the templates provide you with an excellent example. + As a general rule, try to follow that structural example. + That means using links, hierarchical nesting, and, if + necessary, a glossary or index. You probably won't need to + use every available structural tag, but take advantage of + what DocBook provides you. + + + As to linking, there's some disagreement about whether to use + <xref> <link> + when you make links within your documents. You'll have to + decide, based on the different ways that they are presented + in output, which is more appropriate given the context. + Regardless of which you use, you should not forget to use + them. Help your readers find information that relevant to + the issue at hand. + + + The table of contents will be generated automatically, but + you will probably have to develop your own index if you wish + to have one. The Nautilus Help Browser will have new, and + currently unknown, indexing capabilities, so index style and + structure are still under discussion. The GNOME User's Guide + will contain a glossary in its next versions; unless you're + writing a<book>, it will probably be best to + contribute to that rather than developing your own. + + + + + + Grammar and Spelling + + Nobody expects you to be perfect; they just expect the + documentation for their software to be error-free. That means + that, in the same way that developers look for bugs and accept + bug reports, writers must check for errors in their documents. + Poor grammar, bad spelling, and gross technical errors in + draft documents are fine. However, if those problems show up + in a "real" release, they can count against the credibility of + GNOME and Linux. They'll also make you look bad. + + + There is no substitute for a human proofreader; use a + spell-check program, then read it over yourself, and then find + someone else to help you. Other GDP members are, of course, + willing and able to help you, but non-writers are often at + least as helpful. + + + Proofreading documents is both a also a good way to + familiarize yourself with documentation, and it certainly + makes you valuable to the GDP. Help other writers proof their + documents, and they will help you with yours. + + + + + + + + Teamwork + + + Working With The GDP Team + + The GDP team is a valuable resource for any documentation + author. GDP members can answer most questions documentation + authors have during the course of their work. It is also + important to make sure you are not duplicating work of other + GDP members by visiting the GDP Documentation + Status Table (http://www.gnome.org/gdp/doctable/) and + assigning a documentation item to yourself. This table also + provides a forum for making suggestions and announcements for + each documentation item. The best way to get in touch with + GDP members is on the #docs IRC channel at irc.gnome.org or + else by emailing the + gnome-doc-list mailing list. + + + After an author has finished a document (or even a draft + version of the document), it is a good idea to ask a member of + the GDP team to read the document, checking it for grammar, + proper DocBook markup, and clarity. One may typically find + another author to do this by either asking on the #docs IRC + channel at irc.gnome.org or by emailing the + gnome-doc-list mailing list. + + + + + + + Working With Developers + + Writing documentation typically involves a certain amount of + interaction with the developers of GNOME or the application + which is being documented. Often a document author will need + to ask the developer technical questions during the course of + writing a document. After the document is finished, it is good + idea to ask the developer to read the document to make sure it + is technically correct. The documentation author should also + make sure that the application author correctly binds and + packages the documentation with the application. + + + + + + + + + + Finishing A Document + + + + + Editing The Document + + When the document is finished, the document should be edited + by another member of the GDP for spelling, clarity, and + DocBook markup. It should also be read by an application + author to make sure the document is technically accurate. + + + + + + + Submitting The Document + + After the document has been edited and checked for technical + accuracy, it is ready to be combined with the application or + documentation package. This is typically done by passing the + document to the application or package developer. In some + cases, the documents can be committed directly into CVS, + however this should only be done after obtaining permission to + make CVS commits from the developer. Note that in many cases, + the application may need to be modified to correctly link to + the documentation. The packaging system (tarballs and binary + packages) may also need to be modified to include the + documentation in the package. Generally, this should be done + by the developers. + + + The final step is to email the GNOME Translation Team at + gnome-i18n@nuclecu.unam.mx to notify them that + there is a new document for them to translate. + + + + + + + + Resources + + + + Resources On The Web The GNOME + Documentation Project Web page lists current GDP + projects and members. + + + The GDP Documentation Status Table tracks the + status of all the various documentation components of GNOME. + + + Norman Walsh's DocBook: The Definitive + Guide in an excellent book on DocBook, + available both online and in print. + + + + + + + Books + + Docbook: The Definitive Guide is available in both printed + form and on the web at: + + Docbook: The Definitive Guide + + + + + + + + Mailing Lists + + The gnome-docs-list mailing list is the + main discussion area for all contributors to the GNOME + Documentation Project. You can find out how to subscribe to + this list on GNOME Mailing Lists. This is a rather + low-volume list, so you will not be flooded with messages. + + + + + + + IRC + + Internet Relay Chat (IRC) is a fast and easy way to get in + touch with other GDP members. There are generally at least a + few members here who can answer questions or discuss + documentation issues. The IRC channel is #docs at + irc.gnome.org. + + + + + + + + + + Document Templates + + + + Template 1: Application Manual + + The following template should be used for all application + manuals. You can always get the latest copy of this + template from GDP + Documentation Templates. + + + + + + +]> + + + + + + +
      + + + MY-GNOME-APP + + 2000 + ME-THE-AUTHOR + + + + + + + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free + Documentation License, Version 1.1 or any later + version published by the Free Software Foundation with no + Invariant Sections, no Front-Cover Texts, and no Back-Cover + Texts. You may obtain a copy of the GNU Free + Documentation License from the Free Software + Foundation by visiting their Web site or by writing + to: Free Software Foundation, Inc., 59 Temple Place - Suite + 330, Boston, MA 02111-1307, USA. + + + Many of the names used by companies to distinguish their + products and services are claimed as trademarks. Where those + names appear in any GNOME documentation, and those trademarks + are made aware to the members of the GNOME Documentation + Project, the names have been printed in caps or initial caps. + + + + + + This is version 1.0 of MY-GNOME-APP manual. + + + + + + + + + Introduction + + + MY-GNOME-APP is an application which + proves mathematical theorems. It has all the basic features + expected from a mathematical theorem prover, as well as a number + of advanced ones, such as proof by confusion. In fact, many of + the proofs produced by MY-GNOME-APP + are so complex that they are capable of proving almost anything + with a virtually null likelihood of being disproven. It also has + the very popular predecessor of proof by confusion, proof by + dialog, first implemented by Plato. + + + It also allows you to save and print theorem proofs and to add + comments to the proofs it produces. + + + + To run MY-GNOME-APP, select + + SUBMENU + MY-GNOME-APP + + from the Main Menu, or type + MYGNOMEAPP on the command line. + + + + MY-GNOME-APP is included in the + GNOME-PACKAGE package, which is part of the + GNOME desktop environment. This document describes version + &version; of MY-GNOME-APP. + + + + + + + + + Using MY-GNOME-APP + + MY-GNOME-APP can be used to produce a + perfect proof of any mathematical theorem + (provided, of course, that this theorem is correct), thus + providing for new users an easy-to-use graphical interface to + modern mathematics. This section describes basic usage of + MY-GNOME-APP. + + + + + Basic usage + + Starting MY-GNOME-APP opens the + Main window, shown in . The window is at first empty. + + +
      + MY-GNOME-APP Main Window + + MY-GNOME-APP Main Window + + + +
      + +
      + + + + + + Proving a Theorem + + To get a proof of a theorem, select + + File + New + , + which will + bring up the New Proof dialog box. + Enter the statement of the theorem in the + Theorem statement field, select your + desired proof type from the drop-down menu, and and press + Prove!. + + + If MY-GNOME-APP cannot prove the + theorem by the method you have chosen, or if you have not + selected a proof type at all, + MY-GNOME-APP will attempt to + choose the one that it thinks is most conclusive. In order, + it will attempt to prove the theorem with the following techniques: + + + + Deduction + + + This is a proof method that is generally accepted + for full credit by Logic professors. + + + + + Induction + + + This logical style will also earn you full credit on + your homework. + + + + + Dialog + + + This logical method is best for Philosophy classes, + and will probably only merit partial credit on Logic + or Mathematics homework. + + + + + Confusion + + + Suitable only for political debates, battles of wits + against the unarmed, and Philosophy classes focusing + on the works of Kant. Use with caution. + + + + + + + + + + Proving Incorrect Theorms + + MY-GNOME-APP cannot prove + incorrect theorems. If the theorem you have entered is not + demonstrably true, you will get a message to that effect + in the main window. To disprove a theorem, ask + MY-GNOME-APP to prove its + logical inverse. + + + + + Editing Proofs + + Once you have proven the theorem, it will be displayed in + the main window. There, you can read + it over, choose text styles for different portions of it, + and make comments on it. This section will guide you through + that process. + + + To alter text styles, first select the statement you wish to + change by clicking on it once. You can select several + statements by Then, choose the style you want to apply from + the Style submenu of the + Edit menu. + MY-GNOME-APP will convert the + text to that style. + + + You can also enter comments on a statement by selecting that + statement, and then beginning to type. Comments will appear + after the statement you have selected. + + + + Altering The Proofs Themselves + + MY-GNOME-APP does not allow you + to alter a proof it has produced itself. You can, save + your proof as a plain text file (using the + Save as... menu), and alter it + that way. Be aware, however, that + MY-GNOME-APP uses its own file + format for saved proofs, and cannot re-open a file unless + it is in the .mga format. + + + + + + + +
      + + + + + + Toolbar + + The toolbar (shown in ) + provides access to several commonly used routines. +
      + MY-GNOME-APP Toolbar + + MY-GNOME-APP Toolbar + + +
      + + + New + + + Brings up the New Theorem + dialog. + + + + + Open + + + Open an exisiting theorem you want to prove, or a + completed proof you wish to print or format. + + + + + Save + + + Save the current theorem permanently in a + file. + + + + +
      +
      + + + + + + + Menus + + The menu bar, located at the top of the Main + Window, contains the following menus: + + + + File + + + This menu contains: + + + + + + F3 + + Open + + — This opens a file which is saved on your computer. + + + + + + + CtrlS + + Save + + — This saves your file. + + + + + + + CtrlW + + Close + + — This closes your file. + + + + + + + CtrlQ + + Exit + + — This quits the application. + + + + + + + + + Edit + + + This menu contains: + + + + + + CtrlX + + Cut + + — This removes any text or data which is selected and + places it in the buffer. + + + + + + + CtrlC + + Copy + + — This copies any text or data which is selected into + the buffer. + + + + + + + CtrlV + + Paste + + — This pastes any text or data which is copied into + the buffer. + + + + + COMMAND1… + — This opens the COMMAND1 + dialog, which is used to .... + + + + + COMMAND2 + — This .... + + + + + + + + + + Settings + + + This menu contains: + + + + Preferences… + — This opens the Preferences + Dialog, which allows you to configure + many settings. + + + + + COMMAND3 — + This command does something. + + + + + + + + + Help + + + This menu contains: + + + + Manual — This + opens the GNOME Help + Browser and displays this manual. + + + + + + About — This + opens the About dialog + which shows basic information about + MY-GNOME-APP, such as + the author's name, the application version number, + and the URL for the application's Web page if one + exists. + + + + + + + + +
      + + + + + + + Customization + + To change the application settings, select + + Settings + Preferences... + . This opens the + Preferences dialog, shown in . + + +
      + Preferences Dialog + + Preferences Dialog + + + +
      + + + The properties in the PREFSTABNAME tab are: + + + + + + Default Text Style + + + Select the default text style for statements in your + proof. You can still change the style for individual + proofs or sections of a proof at a later date. + + + + + (Configuration Item Label) + + + (Description of Configuration) + + + + + (Configuration Item Label) + + + (Description of Configuration) + + + + + + + + The properties in the SECONDTABNAME tab are: + + + (Configuration Item Label) + + + (Description of Configuration) + + + + + (Configuration Item Label) + + + (Description of Configuration) + + + + + + + + After you have made all the changes you want, click on + OK to apply the changes and close the + Properties dialog. To cancel the changes + and return to previous values, click the + Close button. + + +
      + + + + + + + + + + + Known Bugs and Limitations + + This application has no known bugs. + + + + + + + + Authors + + MY-GNOME-APP was written by GNOME-HACKER + (hacker@gnome.org). To find more information about + MY-GNOME-APP, please visit the MY-GNOME-APP Web + page. Please send all comments, suggestions, and bug + reports to the GNOME + bug tracking database. (Instructions for submitting bug + reports can be found + on-line.) You can also use Bug Report + Tool (bug-buddy), available in the + Utilities submenu of Main + Menu, for submitting bug reports. + + + + This manual was written by ME + (MYNAME@MYADDRESS). Please send all comments and + suggestions regarding this manual to the GNOME Documentation + Project by sending an email to + docs@gnome.org. You can also add your comments online + by using the GNOME Documentation Status + Table. + + + + + + + + + + + License + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public + License as published by the Free Software Foundation; + either version 2 of the License, or (at your option) any later + version. + + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + + A copy of the GNU General Public License is + included as an appendix to the GNOME Users + Guide. You may also obtain a copy of the + GNU General Public License from the Free + Software Foundation by visiting their Web site or by writing to +
      + Free Software Foundation, Inc. + 59 Temple Place - Suite 330 + Boston, MA 02111-1307 + USA +
      +
      +
      +
      + + + + + + + + + +]]> + + +
      +
      +
      + + + + + Template 2: Applet Manual For GNOME 1.x + + The following templates should be used for all applet + manuals in GNOME 1.x releases. You can always get the latest + copy of these templates from GDP + Documentation Templates. Note that the template + consists of two files; the first file calls the second as an + entity. You should name the first file + appletname-applet.sgml + and the second file should be named + appletname.sgml, + where + appletname is + the name of the applet. + + + + +]> + + + +
      + + + + APPLETNAME Applet + + 2000 + YOURFULLNAME + + + + + + + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License, Version 1.1 or any later version published + by the Free Software Foundation with no Invariant Sections, no + Front-Cover Texts, and no Back-Cover Texts. You may obtain a copy + of the GNU Free Documentation License from + the Free Software Foundation by visiting their Web site or by writing to: + Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + + + Many of the names used by companies to distinguish their products and + services are claimed as trademarks. Where those names appear in any + GNOME documentation, and those trademarks are made aware to the members + of the GNOME Documentation Project, the names have been printed in caps + or initial caps. + + + + + This is version XXX of the APPLETNAME applet manual. + + + + + + &APPLETNAME.sgml; + +
      + + +]]> + + +
      + + + + + APPLET Applet + + + APPLET applet, shown in , allows you to …. To add this + applet to a Panel, + right-click on the Panel and choose + + Panel + Add to panel + Applet + SECTION + APPLET + . + + +
      + APPLET Applet + + APPLET Applet + + + +
      + + + + Usage + + (Place a short description of how to use the applet here.) + + + + Right-clicking on the applet brings up a menu containing the + following items: + + + + + Properties… — + opens the + Properties dialog. + + + + + + Help — + displays this document. + + + + + + About… — + shows basic information about APPLET + Applet, including the applet's version and the + author's name. + + + + + + + + + + + Customization + + You can customize APPLET + applet by right-clicking on it and choosing + Properties…. This will open the + Properties dialog(shown in ), which allows you to + change various settings. + + +
      + Properties dialog + + Properties dialog + + + +
      + + + The properties are: + + + + + (Configuration Item Label) — If this button is + checked…(description) + + + + + + (Configuration Item Label) — Selecting this + button…(description) + + + + + + (Configuration Item Label) — Enter the name of + …(description) + + + + + + + After you have made all the changes you want, click on + OK to apply the changes and close the + Properties dialog. To cancel the changes + and return to previous values, click the + Close button. + +
      + + + + + + Known Bugs and Limitations + + This applet has no known bugs. + + + + + + + + Authors + + APPLET was written by GNOME-HACKER + (hacker@gnome.org). Please send all comments, + suggestions, and bug + reports to the GNOME + bug tracking database. (Instructions for submitting bug + reports can be found + on-line. You can also use Bug Report + Tool (bug-buddy), available in the + Utilities submenu of Main + Menu, for submitting bug reports. + + + + This manual was written by ME + (MYNAME@MYADDRESS). Please send all comments and + suggestions regarding this manual to the GNOME Documentation + Project by sending an email to + docs@gnome.org. You can also submit comments online + by using the GNOME Documentation + Status Table. + + + + + + + + + + + License + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public + License as published by the Free Software Foundation; + either version 2 of the License, or (at your option) any later + version. + + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + + A copy of the GNU General Public License is + included as an appendix to the GNOME Users + Guide. You may also obtain a copy of the + GNU General Public License from the Free + Software Foundation by visiting their Web site or by writing to +
      + Free Software Foundation, Inc. + 59 Temple Place - Suite 330 + Boston, MA 02111-1307 + USA +
      +
      +
      + +
      + + + + +]]> + + + +
      +
      +
      + + + + + Template 2: Applet Manual For GNOME 2.x + + The following templates should be used for all applet + manuals in GNOME 2.x releases. You can always get the latest + copy of these templates from GDP + Documentation Templates. + + + Note that this template consists of two files. The first file + is an introductory chapter. You should not modify this + chapter. The second file is the actual applet document, which + you should modify to describe the applet you are documenting. + You can name the first file whatever you like, such as + gnome-applets.sgml. Name the second file + according to the applet's name: + appletname-applet.sgml. + Make sure you update the entity + at the top of the shell document to reflect the new name of + the applet document. + + + + + +]> + + + + + GNOME Applets + + TelsaGwynne + JohnFleck + DavidMason + Red Hat, Inc. + + DanMueth + AlexanderKirillov + + GNOME Applets version 0.1 for GNOME 1.1.5 + 2000 + + 2000 + Telsa Gwynne, John Fleck, Red Hat Inc., Dan Mueth, and + Alexander Kirillov + + + + Permission is granted to make and distribute verbatim copies of this + manual provided the copyright notice and this permission notice are + preserved on all copies. + + + Permission is granted to copy and distribute modified versions of + this manual under the conditions for verbatim copying, provided that + the entire resulting derived work is distributed under the terms of a + permission notice identical to this one. + + + Permission is granted to copy and distribute translations of this + manual into another language, under the above conditions for modified + versions, except that this permission notice may be stated in a + translation approved by the Free Software Foundation. + + + Many of the names used by companies to distinguish their products and + services are claimed as trademarks. Where those names appear in any + GNOME documentation, and those trademarks are made aware to the members + of the GNOME Documentation Project, the names have been printed in caps + or initial caps. + + + + + + + Introduction + + + + What Are Applets? + + Applets are one of the most popular and useful objects you can add + to your Panel to customize your desktop. + An applet is a small application which runs inside a small area of + your Panel. Applets have been written for + a wide range of purposes. Some are very powerful interactive + tools, such as the Tasklist Applet + which allows you to easily + control all of your main applications. Others are simple system + monitors, displaying information such as the amount of power left + in the battery on your laptop (see Battery Charge + Monitor) or weather + information(see GNOME Weather). Some + are simply for amusement(see Fish). + + + + Applets are similar to swallowed applications in that both of them + reside within the Panel. However, + swallowed applications are generally applications which were + not designed to run within the Panel. + Typically one will swallow an application which already exists in + the main desktop area, putting it into your + Panel. The application will continue to + run in the Panel until you end the + application or unswallow it, placing it back onto the main part of + your desktop when you need to. + + + +
      + Example Applets + + Example Applets + + + +
      + Several example applets are shown in . From left to right, they are: (1) + Mixer Applet, which allows you to turn + on/off sound and control its volume by clicking on the applet. (2) + Sound Monitor Applet, which displays + the current volume of sound being played and allows you to control + various sound features. (3) GTCD + Applet, a CD player which has all its controls + available in the applet and displays the track and time. (4) + Drive Mount Applet, used to mount and + unmount drives with a single click of the mouse. (5) + Desk Guide which allows you to view + and control multiple virtual screens. (6) + Tasklist Applet which allows you to + control your various windows and applications. +
      + + There are many other applets to choose from. The rest of this + chapter will explain the basic information to get you started + adding, moving, and removing applets from your + Panels and using them. The following + chapters go through each of the standard GNOME applets describing + them in detail. There are also additional applets which can be + downloaded off the Web. See The GNOME + Software Map for lists of additional GNOME applications + and applets. + + + As you read through the the rest of this chapter, you should try + adding and removing applets from your Panel and + experiment with them freely. + +
      + + + + Adding, Moving, and Removing Applets + + + Adding Applets to a Panel + + To add an applet to a Panel, right-click + on the Panel and select + PanelAdd to panel + Applet. This will show you + the menu of all the applets on your system, divided into + categories. Choosing any applet from this menu will add it to the + Panel. + + + + + Moving Applets In or Between Panels + + It is easy to move applets in a Panel or + between two Panels. If you have a + three-button mouse, just move the mouse over the applet, depress + the middle mouse button and drag the applet to its new location, + releasing the middle mouse button when you are finished. Note + that you can drag applets within a Panel + or between two Panels this way. If you + don't have a three-button mouse, just + right-click on the applet and choose + Move. The cursor will turn into a + cross and the applet will move with your mouse until you press + any mouse button to indicate you are finished moving it. + If, in the course of this movement, it hits + other objects, the behavior depends on the global preferences + you have set for your Panels in the + GNOME Control Center: the applet you are + moving can switch places with other objects, "push" all objects + it meets, or "jump" over all other objects without disturbing + them. You can also override the default behavior by holding + Shift button (for "push" mode), + Ctrl (for "switched" mode), or + Alt (for "free" mode, i.e. jumping other other + objects without disturbing them) button while dragging. + + + To change the global Panel preferences, right-click on any applet + or Panel and select + + Panel + Global Preferences... + . + The Default movement mode is set under the + Applets tab. + + + + + Removing Applets from a Panel + + To remove an applet from a Panel, + right-click on the applet and select Remove from + panel.... + + + + + + + + The Right-Click Pop-Up Menu + + Clicking the right mouse button on any applet brings up + a pop-up menu. This + menu always has certain standard menu items in it and + often has additional items which vary depending on the particular + applet. + + + Standard Pop-Up Items + + All applets should have the following items in their right-click + pop-up menu: + + + Remove from panel + + + The Remove from panel menu item + removes the applet from the Panel. + + + + + + Move + + + After selecting Move, your mouse + pointer will change appearance (typically to a cross with + arrows in each direction). As you move your mouse, the applet + will move with it. When you have finished moving the applet, + click any mouse button and the applet will anchor in its + current position. Note that applets can be moved between two + Panels this way. + + + + + + Panel + + + The Panel submenu contains various + items and submenus for adding and removing + Panels and applets and for changing + the configuration. + + + + + + About + + + The About... menu item brings up a + dialogue box containing various information about the applet, + typically including the applet's name, version, author, + copyright, license and desciption. + + + + + + Help + + + The Help menu item brings up the help + manual for the applet. + + + + + + + + + The Applet Properties Dialog + + Many applets have customizable properties. These applets will + have a Properties... menu item in their + right-click pop-up menu which brings up the + Properties dialog where you can alter the + appearance or behaviour of the applet. +
      + An Example Applet Properties Dialog + + An Example Applets Properties Dialog + + + +
      + All Properties dialogs have the following + buttons at the bottom of the dialog: + + + + OK — + Pressing OK will activate any changes + in the properties you have made and close the + Properties dialog. + + + + + Apply — + Pressing Apply at any time will + make your changes active without closing the + Properties dialog. This is helpful if + you would like to test the effects of the changes you have + made but may want to continue changing the properties. + + + + + Close — + Pressing Close will close the + Properties dialog. Only changes in the + configuration which were previously applied with the + Apply button will persist. Other + changes will not be made active. + + + + + Help — + Pressing Help brings up the manual for + the application, opening it to the page describing the + Properties dialog. + + + +
      +
      + + + Other Common Pop-Up Items + + Many applets also have one or more of the following items in their + right-click pop-up menu: + + + Run... + + + The Run... menu item generally + invokes a program which is related to the applet in some way + but which runs in its own window rather than in the + panel. For example: + + + + + The CPU Load applet, which monitors + what programs are running, has a Run + gtop... menu item. Selecting this menu item + starts GTop, which allows you to + view and control programs which are running. + + + + + The CD Player applet has a + Run gtcd... menu item which + starts the GNOME CD Player when + selected, which has more capabilities than the applet. + + + + + + + + +
      + + + Feedback + + Reporting Applet Bugs + + GNOME users are encouraged to report bugs to The GNOME Bug Tracking + System. The easiest way to submit bugs is to use the + Bug Report Tool program by selecting + + Main Menu Utilities + Bug Report Tool + . + Be sure to be complete in describing what you did to cause the + bug to surface and, if possible, describe how the developer can + reproduce the the scenario. + + + + Providing Feedback + + GNOME users are welcome to provide suggestions for how + applications and documentation can be improved. Suggestions for + application changes should be submitted using the + Bug Report Tool discussed above. + Suggestions for documentation changes can be emailed directly to + the documentation author (whose email should be included in the + "Authors" section of the document) or by sending an email to + docs@gnome.org. + + + + Joining GNOME + + GNOME is a community project, created by hundreds of programmers, + documentation writers, icon design artists, web masters, and + other people, most of whom work on a volunteer basis. New GNOME + contributors are always welcome. To join the GNOME team, visit + these web sites: developers — The GNOME Development + Site, documentation writers — The GNOME Documentation + Project, icon design artists — Gnome Icon Web, + general — Helping GNOME, + or just join the gnome-list email list (see GNOME Mailing + Lists) to discuss what you are interested in doing. + + + +
      + + + + Template Applets + + &TEMPLATE-APPLET + + + +
      + + + + + + + +]]> +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GNOMEAPPLET Applet + + + GNOMEAPPLET applet, shown in , does this and that. To learn how to + add this applet to a Panel, see . + + + +
      + GNOMEAPPLET + + GNOMEAPPLET + + + +
      + + + Usage + + This applet does nothing. To use it, just + left-click on it and it will instantly do nothing. + + + + + Right-Click Pop-Up Menu Items + + In addition to the standard menu items (see ), the right-click pop-up menu has + the following items: + + + + Properties... — This menu + item opens the Properties dialog (see + ) which allows you to + customize the appearance and behavior of this applet. + + + + + Run Hello World... — This + menu item starts the program Hello + World, used to say "hello" to the world. + + + + + + + + Properties + + You can configure GNOMEAPPLET applet by + right-clicking on the applet and choosing the + Properties... menu item. This will open the + Properties dialog, shown in . + +
      + Properties Dialog + + Properties Dialog + + + +
      + + + To change the color of the applet, click on the + color button. To change other properties, + click on other buttons. + + + + For more information on the Properties + dialog, including descriptions of the OK, + Apply, Cancel, and + Help buttons, see . + +
      + + + Known Bugs and Limitations + + There are no known bugs in the + GNOMEAPPLET applet. + + + + + Authors + + This applet was writen by HACKER-NAME + HACKER-EMAIL. The documentation for this applet + which you are reading now was written by + YOUR-NAME YOUR-EMAIL. For information on submitting + bug reports and suggestions for improvements, see . + + + +
      + + + + + +]]> + + +
      +
      +
      + + +
      + + diff --git a/test/relaxng/empty0.rng b/test/relaxng/empty0.rng new file mode 100644 index 0000000..dbe4f5e --- /dev/null +++ b/test/relaxng/empty0.rng @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/test/relaxng/empty0_0.xml b/test/relaxng/empty0_0.xml new file mode 100644 index 0000000..32b42bc --- /dev/null +++ b/test/relaxng/empty0_0.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/empty1.rng b/test/relaxng/empty1.rng new file mode 100644 index 0000000..45dceff --- /dev/null +++ b/test/relaxng/empty1.rng @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/empty1_0.xml b/test/relaxng/empty1_0.xml new file mode 100644 index 0000000..32b42bc --- /dev/null +++ b/test/relaxng/empty1_0.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/empty1_1.xml b/test/relaxng/empty1_1.xml new file mode 100644 index 0000000..a5a04a7 --- /dev/null +++ b/test/relaxng/empty1_1.xml @@ -0,0 +1,2 @@ + + diff --git a/test/relaxng/inline.rng b/test/relaxng/inline.rng new file mode 100644 index 0000000..7b40959 --- /dev/null +++ b/test/relaxng/inline.rng @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/inline2.rng b/test/relaxng/inline2.rng new file mode 100644 index 0000000..088dc2b --- /dev/null +++ b/test/relaxng/inline2.rng @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/inline3.rng b/test/relaxng/inline3.rng new file mode 100644 index 0000000..72f9db6 --- /dev/null +++ b/test/relaxng/inline3.rng @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/interleave0_0.rng b/test/relaxng/interleave0_0.rng new file mode 100644 index 0000000..b105549 --- /dev/null +++ b/test/relaxng/interleave0_0.rng @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/interleave1_0.rng b/test/relaxng/interleave1_0.rng new file mode 100644 index 0000000..e8e94d0 --- /dev/null +++ b/test/relaxng/interleave1_0.rng @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/test/relaxng/libvirt.rng b/test/relaxng/libvirt.rng new file mode 100644 index 0000000..c1f586e --- /dev/null +++ b/test/relaxng/libvirt.rng @@ -0,0 +1,1258 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + dynamic + static + + + + + + + + + + + xen + kvm + kqemu + qemu + lxc + openvz + test + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + i686 + x86_64 + ia64 + + + + + + + xenpv + xenner + + + + + xen + linux + + + + + + + + + + + + + + hvm + + + + + + + i686 + x86_64 + + + + + xenfv + pc + isapc + + + + + + + + mips + + + mips + + + + + + + sparc + + + sun4m + + + + + + + ppc + + + + g3beige + mac99 + prep + + + + + + + + exe + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + localtime + utc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + hd + fd + cdrom + network + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + floppy + disk + cdrom + + + + + + + file + + + + + + + + + + + + + + + + block + + + + + + + + + + + + + + + + + + + + + + + + + + ide + fdc + scsi + virtio + xen + usb + uml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + writeback + writethrough + + + + + + + + + file + + + + + + + + + + + + + + block + + + + + + + + + + + + + + mount + + + + + + + + + + + + + + template + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bridge + + + + + + + + + + + + + + + + ethernet + + + + + + + + + + + + + + + + network + + + + + + + + + + + + + + user + + + + + + + + internal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sdl + + + + + + + + + + + + + + + yes + no + + + + + + + vnc + + + + + + + + + + yes + no + + + + + + + + + + + + + + + + + + + + + + rdp + + + + + + + + + + yes + no + + + + + + + yes + no + + + + + + + yes + no + + + + + + + + + + + + desktop + + + + + + + + + + yes + no + + + + + + + + + + + + + + + vga + cirrus + vmvga + xen + vbox + + + + + + + + + + + + + + + + + + yes + no + + + + + + + yes + no + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + destroy + restart + preserve + rename-restart + + + + + + + dev + file + pipe + unix + tcp + udp + null + stdio + vc + pty + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sb16 + es1370 + pcspk + ac97 + + + + + + + + + + + + + + + + + + + tablet + mouse + + + + + + ps2 + usb + xen + + + + + + + + + + + subsystem + capabilities + + + + + usb + pci + + + + + yes + no + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [0-9]+ + + + + + [0-9]+ + 1 + + + + + -1 + + + + + [0-9]+ + 4000 + + + + + [A-Za-z0-9_\.\+\-&:/]+ + + + + + [A-Za-z0-9_\.\+\-]+ + + + + + [a-zA-Z0-9_\+\-]+ + + + + + + [a-fA-F0-9]{32} + + + [a-fA-F0-9]{8}\-([a-fA-F0-9]{4}\-){3}[a-fA-F0-9]{12} + + + + + + [a-zA-Z0-9_\.\+\-&/%]+ + + + + + /[a-zA-Z0-9_\.\+\-&/%]+ + + + + + /[a-zA-Z0-9_\.\+\-&/%]* + + + + + /[a-zA-Z0-9_\+\-/%]+ + + + + + [a-zA-Z0-9_\.\-:/]+ + + + + + ([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2} + + + + + ([0-2]?[0-9]?[0-9]\.){3}[0-2]?[0-9]?[0-9] + + + + + (0x)?[0-9a-fA-F]{1,4} + + + + + (0x)?[0-9a-fA-F]{1,3} + + + + + (0x)?[0-9a-fA-F]{1,4} + + + + + (0x)?[0-9a-fA-F]{1,2} + + + + + (0x)?[0-1]?[0-9a-fA-F] + + + + + (0x)?[0-7] + + + diff --git a/test/relaxng/libvirt_0.xml b/test/relaxng/libvirt_0.xml new file mode 100644 index 0000000..c17d9d5 --- /dev/null +++ b/test/relaxng/libvirt_0.xml @@ -0,0 +1,23 @@ + + pvtest + 596a5d2171f48fb2e068e2386a5c413e + + linux + /var/lib/xen/vmlinuz.2Dn2YT + /var/lib/xen/initrd.img.0u-Vhq + method=http://download.fedora.devel.redhat.com/pub/fedora/linux/core/test/5.91/x86_64/os + + 430080 + 2 + destroy + destroy + destroy + + + + + + + + + diff --git a/test/relaxng/list.rng b/test/relaxng/list.rng new file mode 100644 index 0000000..57de17c --- /dev/null +++ b/test/relaxng/list.rng @@ -0,0 +1,23 @@ + + + + + + -?([0-9]+(\.[0-9]*)?|\.[0-9]+) + + + + + + + + + + + + + + diff --git a/test/relaxng/list_0.xml b/test/relaxng/list_0.xml new file mode 100644 index 0000000..a6b4d60 --- /dev/null +++ b/test/relaxng/list_0.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/list_1.xml b/test/relaxng/list_1.xml new file mode 100644 index 0000000..a8907cc --- /dev/null +++ b/test/relaxng/list_1.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/pattern1.rng b/test/relaxng/pattern1.rng new file mode 100644 index 0000000..a585e85 --- /dev/null +++ b/test/relaxng/pattern1.rng @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/test/relaxng/pattern2.rng b/test/relaxng/pattern2.rng new file mode 100644 index 0000000..66a4a44 --- /dev/null +++ b/test/relaxng/pattern2.rng @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/test/relaxng/proofsystem.rng b/test/relaxng/proofsystem.rng new file mode 100644 index 0000000..7fe6bd3 --- /dev/null +++ b/test/relaxng/proofsystem.rng @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/rngbug-001.ext b/test/relaxng/rngbug-001.ext new file mode 100644 index 0000000..cb1883d --- /dev/null +++ b/test/relaxng/rngbug-001.ext @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/test/relaxng/rngbug-001.rng b/test/relaxng/rngbug-001.rng new file mode 100644 index 0000000..0bb5b0a --- /dev/null +++ b/test/relaxng/rngbug-001.rng @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/test/relaxng/rngbug-001.xml b/test/relaxng/rngbug-001.xml new file mode 100644 index 0000000..83ba73e --- /dev/null +++ b/test/relaxng/rngbug-001.xml @@ -0,0 +1,6 @@ + + x + + y + + diff --git a/test/relaxng/spec.rng b/test/relaxng/spec.rng new file mode 100644 index 0000000..9650f71 --- /dev/null +++ b/test/relaxng/spec.rng @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/spec1.rng b/test/relaxng/spec1.rng new file mode 100644 index 0000000..e8e9ef2 --- /dev/null +++ b/test/relaxng/spec1.rng @@ -0,0 +1,14 @@ + + + A foo element. + + + + + + + diff --git a/test/relaxng/spec1_1.xml b/test/relaxng/spec1_1.xml new file mode 100644 index 0000000..e12b620 --- /dev/null +++ b/test/relaxng/spec1_1.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/spec_0.xml b/test/relaxng/spec_0.xml new file mode 100644 index 0000000..cb8f7be --- /dev/null +++ b/test/relaxng/spec_0.xml @@ -0,0 +1,3589 @@ + + + + + + + + +]> +
      + + +$Id: spec.xml,v 1.159 2001/12/02 12:12:12 jjc Exp $ +RELAX NG Specification + + + JamesClark + +
      jjc@jclark.com
      +
      +
      + + MURATAMakoto + +
      EB2M-MRT@asahi-net.or.jp
      +
      +
      +
      +3 December 2001 + +$Id: spec.xml,v 1.159 2001/12/02 12:12:12 jjc Exp $ + + +2001OASIS + + + +Copyright © The Organization for the Advancement of +Structured Information Standards [OASIS] 2001. All Rights +Reserved. + +This document and translations of it may be copied and furnished +to others, and derivative works that comment on or otherwise explain +it or assist in its implementation may be prepared, copied, published +and distributed, in whole or in part, without restriction of any kind, +provided that the above copyright notice and this paragraph are +included on all such copies and derivative works. However, this +document itself may not be modified in any way, such as by removing +the copyright notice or references to OASIS, except as needed for the +purpose of developing OASIS specifications, in which case the +procedures for copyrights defined in the OASIS Intellectual Property +Rights document must be followed, or as required to translate it into +languages other than English. + +The limited permissions granted above are perpetual and will not +be revoked by OASIS or its successors or assigns. + +This document and the information contained herein is provided +on an AS IS basis and OASIS DISCLAIMS ALL WARRANTIES, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE +USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY +IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. + + + +Status of this Document + +This Committee Specification was approved for publication by the +OASIS RELAX NG technical committee. It is a stable document which +represents the consensus of the committee. Comments on this document +may be sent to relax-ng-comment@lists.oasis-open.org. + +A list of known errors in this document is available at http://www.oasis-open.org/committees/relax-ng/spec-20011203-errata.html. + + + + +This is the definitive specification of RELAX NG, a simple +schema language for XML, based on and . A RELAX NG schema specifies a pattern for the +structure and content of an XML document. A RELAX NG schema is itself +an XML document. + + + + + Committee Specification + 3 December 2001 + + + Committee Specification + 11 August 2001 + + +
      + + +
      +Introduction + +This document specifies + + + +when an XML document is a correct RELAX NG +schema + +when an XML document is valid with respect to a +correct RELAX NG schema + + + +An XML document that is being validated with respect to a RELAX NG +schema is referred to as an instance. + +The structure of this document is as follows. describes the data model, which is the +abstraction of an XML document used throughout the rest of the +document. describes the syntax of a +RELAX NG schema; any correct RELAX NG schema must conform to this +syntax. describes a sequence of +transformations that are applied to simplify a RELAX NG schema; +applying the transformations also involves checking certain +restrictions that must be satisfied by a correct RELAX NG +schema. describes the syntax that +results from applying the transformations; this simple syntax is a +subset of the full syntax. describes the +semantics of a correct RELAX NG schema that uses the simple syntax; +the semantics specify when an element is valid with respect to a RELAX +NG schema. describes restrictions in +terms of the simple syntax; a correct RELAX NG schema must be such +that, after transformation into the simple form, it satisfies these +restrictions. Finally, describes +conformance requirements for RELAX NG validators. + +A tutorial is available separately (see ). + +
      + +
      +Data model + +RELAX NG deals with XML documents representing both schemas and +instances through an abstract data model. XML documents representing +schemas and instances must be well-formed in conformance with and must conform to the constraints of . + +An XML document is represented by an element. An element consists +of + + + +a name + +a context + +a set of attributes + +an ordered sequence of zero or more children; each +child is either an element or a non-empty string; the sequence never contains +two consecutive strings + + + +A name consists of + + +a string representing the namespace URI; the empty +string has special significance, representing the absence of any +namespace + +a string representing the local name; this string matches the NCName +production of + + +A context consists of + + +a base URI +a namespace map; this maps prefixes to namespace URIs, +and also may specify a default namespace URI (as declared +by the xmlns attribute) + + +An attribute consists of + + +a name +a string representing the value + + +A string consists of a sequence of zero or more characters, +where a character is as defined in . + +The element for an XML document is constructed from an instance +of the as follows. We use the notation +[x] to refer to the value of the +x property of an information item. An +element is constructed from a document information item by +constructing an element from the [document element]. An element is +constructed from an element information item by constructing the name +from the [namespace name] and [local name], the context from the [base +URI] and [in-scope namespaces], the attributes from the [attributes], +and the children from the [children]. The attributes of an element +are constructed from the unordered set of attribute information items +by constructing an attribute for each attribute information item. The +children of an element are constructed from the list of child +information items first by removing information items other than +element information items and character information items, and then by +constructing an element for each element information item in the list +and a string for each maximal sequence of character information items. +An attribute is constructed from an attribute information item by +constructing the name from the [namespace name] and [local name], and +the value from the [normalized value]. When constructing the name of +an element or attribute from the [namespace name] and [local name], if +the [namespace name] property is not present, then the name is +constructed from an empty string and the [local name]. A string is +constructed from a sequence of character information items by +constructing a character from the [character code] of each character +information item. + +It is possible for there to be multiple distinct infosets for a +single XML document. This is because XML parsers are not required to +process all DTD declarations or expand all external parsed general +entities. Amongst these multiple infosets, there is exactly one +infoset for which [all declarations processed] is true and which does +not contain any unexpanded entity reference information items. This +is the infoset that is the basis for defining the RELAX NG data +model. + +
      +Example + +Suppose the document +http://www.example.com/doc.xml is as +follows: + + + +]]> + +The element representing this document has + + +a name which has + + +the empty string as the namespace URI, representing +the absence of any namespace + +foo as the local +name + + + + + +a context which has + + +http://www.example.com/doc.xml as the base +URI + +a namespace map which + + + +maps the prefix xml to the +namespace URI +http://www.w3.org/XML/1998/namespace +(the xml prefix is implicitly declared +by every XML document) + +specifies the empty string as the default namespace +URI + + + + + + + + + +an empty set of attributes + +a sequence of children consisting +of an element which has + + +a name which has + + +http://www.example.com/n1 as the +namespace URI + +bar1 as the local +name + + + + + +a context which has + + +http://www.example.com/doc.xml as the base +URI + +a namespace map which + + + +maps the prefix pre1 to the +namespace URI +http://www.example.com/n1 + +maps the prefix xml to the +namespace URI +http://www.w3.org/XML/1998/namespace + +specifies the empty string as the default namespace +URI + + + + + + + + + +an empty set of attributes + +an empty sequence of children + + + +followed by an element which has + + +a name which has + + +http://www.example.com/n2 as the +namespace URI + +bar2 as the local +name + + + + + +a context which has + + +http://www.example.com/doc.xml as the base +URI + +a namespace map which + + + +maps the prefix pre2 to the +namespace URI +http://www.example.com/n2 + +maps the prefix xml to the +namespace URI +http://www.w3.org/XML/1998/namespace + +specifies the empty string as the default namespace +URI + + + + + + + + + +an empty set of attributes + +an empty sequence of children + + + + + + +
      + +
      + +
      +Full syntax + +The following grammar summarizes the syntax of RELAX NG. +Although we use a notation based on the XML representation of an RELAX +NG schema as a sequence of characters, the grammar must be understood +as operating at the data model level. For example, although the +syntax uses ]]>, an instance or +schema can use ]]> instead, +because they both represent the same element at the data model level. +All elements shown in the grammar are qualified with the namespace +URI: + +http://relaxng.org/ns/structure/1.0 + +The symbols QName and NCName are defined in . The anyURI symbol has the same meaning as the +anyURI datatype of : it indicates a +string that, after escaping of disallowed values as described in +Section 5.4 of , is a URI reference as defined +in (as modified by ). The symbol string matches any string. + +In addition to the attributes shown explicitly, any element can +have an ns attribute and any element can have a +datatypeLibrary attribute. The +ns attribute can have any value. The value of the +datatypeLibrary attribute must match the anyURI +symbol as described in the previous paragraph; in addition, it must +not use the relative form of URI reference and must not have a +fragment identifier; as an exception to this, the value may be the +empty string. + +Any element can also have foreign attributes in addition to the +attributes shown in the grammar. A foreign attribute is an attribute +with a name whose namespace URI is neither the empty string nor the +RELAX NG namespace URI. Any element that cannot have string children +(that is, any element other than value, param +and name) may have foreign child elements in addition +to the child elements shown in the grammar. A foreign element is an +element with a name whose namespace URI is not the RELAX NG namespace +URI. There are no constraints on the relative position of foreign +child elements with respect to other child elements. + +Any element can also have as children strings that consist +entirely of whitespace characters, where a whitespace character is one +of #x20, #x9, #xD or #xA. There are no constraints on the relative +position of whitespace string children with respect to child +elements. + +Leading and trailing whitespace is allowed for value of each +name, type and +combine attribute and for the content of each +name element. + + + +
      +Example + +Here is an example of a schema in the full syntax for the +document in . + + + + A foo element. + + + + + + +]]> + +
      + +
      + +
      +Simplification + +The full syntax given in the previous section is transformed +into a simpler syntax by applying the following transformation rules +in order. The effect must be as if each rule was applied to all +elements in the schema before the next rule is applied. A +transformation rule may also specify constraints that must be +satisfied by a correct schema. The transformation rules are applied +at the data model level. Before the transformations are applied, the +schema is parsed into an instance of the data model. + +
      +Annotations + +Foreign attributes and elements are removed. + +It is safe to remove xml:base +attributes at this stage because xml:base +attributes are used in determining the [base URI] of an element +information item, which is in turn used to construct the base URI of +the context of an element. Thus, after a document has been parsed +into an instance of the data model, xml:base +attributes can be discarded. + +
      + +
      +Whitespace + +For each element other than value and +param, each child that is a string containing only +whitespace characters is removed. + +Leading and trailing whitespace characters are removed from the +value of each name, type and +combine attribute and from the content of each +name element. + +
      + +
      +<literal>datatypeLibrary</literal> attribute + +The value of each datatypeLibary attribute is +transformed by escaping disallowed characters as specified in Section +5.4 of . + +For any data or value +element that does not have a datatypeLibrary +attribute, a datatypeLibrary attribute is +added. The value of the added datatypeLibrary +attribute is the value of the datatypeLibrary +attribute of the nearest ancestor element that has a +datatypeLibrary attribute, or the empty string if +there is no such ancestor. Then, any datatypeLibrary +attribute that is on an element other than data or +value is removed. + +
      + +
      +<literal>type</literal> attribute of <literal>value</literal> element + +For any value element that does not have a +type attribute, a type attribute +is added with value token and the value of the +datatypeLibrary attribute is changed to the empty +string. + +
      + +
      +<literal>href</literal> attribute + +The value of the href attribute on an +externalRef or include element +is first transformed by escaping disallowed characters as specified in +Section 5.4 of . The URI reference is then +resolved into an absolute form as described in section 5.2 of using the base URI from the context of the element +that bears the href attribute. + +The value of the href attribute will be used +to construct an element (as specified in ). This must be done as follows. The URI +reference consists of the URI itself and an optional fragment +identifier. The resource identified by the URI is retrieved. The +result is a MIME entity: a sequence of bytes labeled with a MIME +media type. The media type determines how an element is constructed +from the MIME entity and optional fragment identifier. When the media +type is application/xml or +text/xml, the MIME entity must be parsed as an XML +document in accordance with the applicable RFC (at the term of writing +) and an element constructed from the result +of the parse as specified in . In +particular, the charset parameter must be handled +as specified by the RFC. This specification does not define the +handling of media types other than application/xml +and text/xml. The href attribute +must not include a fragment identifier unless the registration of the +media type of the resource identified by the attribute defines the +interpretation of fragment identifiers for that media type. + + does not define the +interpretation of fragment identifiers for +application/xml or +text/xml. + +
      + +
      +<literal>externalRef</literal> element + +An externalRef element is transformed as +follows. An element is constructed using the URI reference that is +the value of href attribute as specified in . This element must match the syntax for pattern. The +element is transformed by recursively applying the rules from this +subsection and from previous subsections of this section. This must +not result in a loop. In other words, the transformation of the +referenced element must not require the dereferencing of an +externalRef attribute with an +href attribute with the same value. + +Any ns attribute on the +externalRef element is transferred to the +referenced element if the referenced element does not already have an +ns attribute. The externalRef +element is then replaced by the referenced element. + +
      + +
      +<literal>include</literal> element + +An include element is transformed as follows. +An element is constructed using the URI reference that is the value of +href attribute as specified in . This element must be a grammar +element, matching the syntax for grammar. + +This grammar element is transformed by +recursively applying the rules from this subsection and from previous +subsections of this section. This must not result in a loop. In other +words, the transformation of the grammar element +must not require the dereferencing of an include +attribute with an href attribute with the same +value. + +Define the components of an element to +be the children of the element together with the components of any +div child elements. If the +include element has a start +component, then the grammar element must have a +start component. If the include +element has a start component, then all +start components are removed from the +grammar element. If the include +element has a define component, then the +grammar element must have a +define component with the same name. For every +define component of the include +element, all define components with the same name +are removed from the grammar element. + +The include element is transformed into a +div element. The attributes of the +div element are the attributes of the +include element other than the +href attribute. The children of the +div element are the grammar +element (after the removal of the start and +define components described by the preceding +paragraph) followed by the children of the include +element. The grammar element is then renamed to +div. + +
      + +
      +<literal>name</literal> attribute of <literal>element</literal> +and <literal>attribute</literal> elements + +The name attribute on an +element or attribute element is +transformed into a name child element. + +If an attribute element has a +name attribute but no ns +attribute, then an ns="" attribute is added to the +name child element. + +
      + +
      +<literal>ns</literal> attribute + +For any name, nsName or +value element that does not have an +ns attribute, an ns attribute is +added. The value of the added ns attribute is the +value of the ns attribute of the nearest ancestor +element that has an ns attribute, or the empty +string if there is no such ancestor. Then, any ns +attribute that is on an element other than name, +nsName or value is +removed. + +The value of the ns attribute is +not transformed either by escaping +disallowed characters, or in any other way, because the value of the +ns attribute is compared against namespace URIs in +the instance, which are not subject to any +transformation. + +Since include and +externalRef elements are resolved after +datatypeLibrary attributes are added but before +ns attributes are added, ns +attributes are inherited into external schemas but +datatypeLibrary attributes are not. + +
      + +
      +QNames + +For any name element containing a prefix, the +prefix is removed and an ns attribute is added +replacing any existing ns attribute. The value of +the added ns attribute is the value to which the +namespace map of the context of the name element +maps the prefix. The context must have a mapping for the +prefix. + +
      + +
      +<literal>div</literal> element + +Each div element is replaced by its +children. + +
      + +
      +Number of child elements + +A define, oneOrMore, +zeroOrMore, optional, list or +mixed element is transformed so that it has exactly +one child element. If it has more than one child element, then its +child elements are wrapped in a group +element. Similarly, an element element is transformed so +that it has exactly two child elements, the first being a name class +and the second being a pattern. If it has more than two child elements, +then the child elements other than the first are wrapped in a +group element. + +A except element is transformed +so that it has exactly one child element. If it has more +than one child element, then its child elements are wrapped +in a choice element. + +If an attribute element has only one child +element (a name class), then a text element is +added. + +A choice, group or +interleave element is transformed so that it has +exactly two child elements. If it has one child element, then it is +replaced by its child element. If it has more than two child +elements, then the first two child elements are combined into a new +element with the same name as the parent element and with the first +two child elements as its children. For example, + +<choice> p1 p2 p3 </choice> + +is transformed to + +<choice> <choice> p1 p2 </choice> p3 </choice> + +This reduces the number of child elements by one. The +transformation is applied repeatedly until there are exactly two child +elements. + +
      + +
      +<literal>mixed</literal> element + +A mixed element is transformed into an +interleaving with a text element: + +<mixed> p </mixed> + +is transformed into + +<interleave> p <text/> </interleave> + +
      + +
      +<literal>optional</literal> element + +An optional element is transformed into +a choice with empty: + +<optional> p </optional> + +is transformed into + +<choice> p <empty/> </choice> + +
      + +
      +<literal>zeroOrMore</literal> element + +A zeroOrMore element is transformed into a choice +between oneOrMore and +empty: + +<zeroOrMore> p </zeroOrMore> + +is transformed into + +<choice> <oneOrMore> p </oneOrMore> <empty/> </choice> + +
      + +
      +Constraints + +In this rule, no transformation is performed, but various +constraints are checked. + +The constraints in this section, unlike the constraints +specified in , can be checked without +resolving any ref elements, and are accordingly +applied even to patterns that will disappear during later stages of +simplification because they are not reachable (see ) or because of notAllowed +(see ). + +An except element that is a child of an +anyName element must not have any +anyName descendant elements. An +except element that is a child of an +nsName element must not have any +nsName or anyName descendant +elements. + +A name element that occurs as the first child +of an attribute element or as the descendant of the +first child of an attribute element and that has an +ns attribute with value equal to the empty string +must not have content equal to xmlns. + +A name or nsName element +that occurs as the first child of an attribute +element or as the descendant of the first child of an +attribute element must not have an +ns attribute with value +http://www.w3.org/2000/xmlns. + +The defines the namespace URI of +namespace declaration attributes to be +http://www.w3.org/2000/xmlns. + +A data or value element +must be correct in its use of datatypes. Specifically, the +type attribute must identify a datatype within the +datatype library identified by the value of the +datatypeLibrary attribute. For a +data element, the parameter list must be one that +is allowed by the datatype (see ). + +
      + +
      +<literal>combine</literal> attribute + +For each grammar element, all +define elements with the same name are combined +together. For any name, there must not be more than one +define element with that name that does not have a +combine attribute. For any name, if there is a +define element with that name that has a +combine attribute with the value +choice, then there must not also be a +define element with that name that has a +combine attribute with the value +interleave. Thus, for any name, if there is more +than one define element with that name, then there +is a unique value for the combine attribute for +that name. After determining this unique value, the +combine attributes are removed. A pair of +definitions + +<define name="n"> + p1 +</define> +<define name="n"> + p2 +</define> + +is combined into + +<define name="n"> + <c> + p1 + p2 + </c> +</define> + +where c is the value of the +combine attribute. Pairs of definitions are +combined until there is exactly one define element +for each name. + +Similarly, for each grammar element all +start elements are combined together. There must +not be more than one start element that does not +have a combine attribute. If there is a +start element that has a combine +attribute with the value choice, there must not +also be a start element that has a +combine attribute with the value +interleave. + +
      + +
      +<literal>grammar</literal> element + +In this rule, the schema is transformed so that its top-level +element is grammar and so that it has no other +grammar elements. + +Define the in-scope grammar for an +element to be the nearest ancestor grammar element. A +ref element refers to a +define element if the value of their +name attributes is the same and their in-scope +grammars are the same. A parentRef element +refers to a define element +if the value of their name attributes is the same +and the in-scope grammar of the in-scope grammar of the +parentRef element is the same as the in-scope +grammar of the define element. Every +ref or parentRef element must +refer to a define element. A +grammar must have a start child +element. + +First, transform the top-level pattern +p into +<grammar><start>p</start></grammar>. +Next, rename define elements so that no two +define elements anywhere in the schema have the +same name. To rename a define element, change the +value of its name attribute and change the value of +the name attribute of all ref +and parentRef elements that refer to that +define element. Next, move all +define elements to be children of the top-level +grammar element, replace each nested +grammar element by the child of its +start element and rename each +parentRef element to ref. + +
      + + +
      +<literal>define</literal> and <literal>ref</literal> elements + +In this rule, the grammar is transformed so that every +element element is the child of a +define element, and the child of every +define element is an element +element. + +First, remove any define element that is not +reachable. A define element +is reachable if there is reachable ref element +referring to it. A ref element is reachable if it +is the descendant of the start element or of a +reachable define element. Now, for +each element element that is not the child of a +define element, add a define +element to the grammar element, and replace the +element element by a ref element +referring to the added define element. The value of +the name attribute of the added +define element must be different from value of the +name attribute of all other +define elements. The child of the added +define element is the element +element. + +Define a ref element to be +expandable if it refers to a +define element whose child is not an +element element. For each ref +element that is expandable and is a descendant of a +start element or an element +element, expand it by replacing the ref element by +the child of the define element to which it refers and +then recursively expanding any expandable ref +elements in this replacement. This must not result in a loop. +In other words expanding the replacement of a +ref element having a name with +value n must not require the expansion of +ref element also having a name +with value n. Finally, remove any +define element whose child is not an +element element. + +
      + +
      +<literal>notAllowed</literal> element + +In this rule, the grammar is transformed so that a +notAllowed element occurs only as the child of +a start or element element. An +attribute, list, +group, interleave, +or oneOrMore element that has a +notAllowed child element is transformed into a +notAllowed element. A choice +element that has two notAllowed child elements is +transformed into a notAllowed element. A +choice element that has one +notAllowed child element is transformed into its +other child element. An except element that has a +notAllowed child element is removed. +The preceding transformations are applied +repeatedly until none of them is applicable any more. +Any define element that is no longer reachable +is removed. + +
      + +
      +<literal>empty</literal> element + +In this rule, the grammar is transformed so that an +empty element does not occur as a child of a +group, interleave, or +oneOrMore element or as the second child of +a choice element. A group, +interleave or choice element +that has two empty child elements is transformed +into an empty element. A group +or interleave element that has one +empty child element is transformed into its other +child element. A choice element whose +second child element is an empty element is +transformed by interchanging its two child elements. A +oneOrMore element that has an +empty child element is transformed into an +empty element. The preceding transformations are applied +repeatedly until none of them is applicable any more. + +
      + +
      + +
      +Simple syntax + +After applying all the rules in , the schema will match the following +grammar: + + + +With this grammar, no elements or attributes are allowed other +than those explicitly shown. + +
      +Example + +The following is an example of how the schema in can be transformed into the simple +syntax: + + + + + + + + + + foo + + + + + + + + + + bar1 + + + + + + + bar2 + + + +]]> + +Strictly speaking, the result of simplification is an +instance of the data model rather than an XML document. For +convenience, we use an XML document to represent an instance of the +data model. + +
      + +
      + +
      +Semantics + +In this section, we define the semantics of a correct RELAX NG +schema that has been transformed into the simple syntax. The +semantics of a RELAX NG schema consist of a specification of what XML +documents are valid with respect to that schema. The semantics are +described formally. The formalism uses axioms and inference rules. +Axioms are propositions that are provable unconditionally. An +inference rule consists of one or more antecedents and exactly one +consequent. An antecedent is either positive or negative. If all the +positive antecedents of an inference rule are provable and none of the +negative antecedents are provable, then the consequent of the +inference rule is provable. An XML document is valid with respect to a +RELAX NG schema if and only if the proposition that it is valid is +provable in the formalism specified in this section. + +This kind of formalism is similar to a proof system. +However, a traditional proof system only has positive +antecedents. + +The notation for inference rules separates the antecedents from +the consequent by a horizontal line: the antecedents are above the +line; the consequent is below the line. If an antecedent is of the +form not(p), then it is a negative +antecedent; otherwise, it is a positive antecedent. Both axioms and +inferences +rules may use variables. A variable has a name and optionally a +subscript. The name of a variable is italicized. Each variable has a +range that is determined by its name. Axioms and inference rules are +implicitly universally quantified over the variables they contain. We +explain this further below. + +The possibility that an inference rule or axiom may contain more +than one occurrence of a particular variable requires that an identity +relation be defined on each kind of object over which a variable can +range. The identity relation for all kinds of object is value-based. +Two objects of a particular kind are identical if the constituents of +the objects are identical. For example, two attributes are considered +the same if they have the same name and the same value. Two characters +are identical if their Unicode character codes are the same. + +
      +Name classes + +The main semantic concept for name classes is that of a name +belonging to a name class. A name class is an element that matches the +production nameClass. A name is as defined in : it consists of a namespace URI and a local +name. + +We use the following notation: + + + +is a variable +that ranges over names + +ranges over name classes + + + + + + +asserts that name is a member of name class + + + + + +We are now ready for our first axiom, which is called "anyName +1": + + + + + + + + + + +This says for any name , belongs to the name class , +in other words matches any name. Note the +effect of the implicit universal quantification over the variables in +the axiom: this is what makes the axiom apply for any name . + +Our first inference rule is almost as simple: + + + + + + + + + + + + + + + + + + + + + +This says that for any name +and for any name class , +if does not belong to , +then belongs to + + + + + . In other words, + + + + matches any name that does not match . + +We now need the following additional notation: + + + + + +ranges over local names; a local name is a string that +matches the NCName production of , that is, +a name with no colons + + +ranges over URIs + + + + + + + + +constructs a name with URI and local +name + + + + +The remaining axioms and inference rules for name classes are as +follows: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + +
      +Patterns + +The axioms and inference rules for patterns use the following +notation: + + + +ranges +over contexts (as defined in ) + +ranges over +sets of attributes; a set with a single member +is considered the same as that member + +ranges over sequences of +elements and strings; a sequence with a single member is considered +the same as that member; the sequences ranged over by may contain consecutive strings and may contain strings +that are empty; thus, there are sequences ranged over by that cannot occur as the children of an +element + +ranges +over patterns (elements matching the pattern +production) + + + + + + + + +asserts that with respect to context , the +attributes and the sequence of elements and +strings matches the pattern + + + +
      +<literal>choice</literal> pattern + +The semantics of the choice pattern are as follows: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      +<literal>group</literal> pattern + +We use the following additional notation: + + + + + + + +represents the concatenation of the sequences and + + + + + + + +represents the union of +and + + + + + +The semantics of the group pattern are as follows: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +The restriction in +ensures that the set of attributes constructed in the consequent will +not have multiple attributes with the same name. + +
      + + +
      +<literal>empty</literal> pattern + +We use the following additional notation: + + +represents an empty sequence + +represents an empty set + + + +The semantics of the empty pattern are as follows: + + + + + + + + + + + + + + +
      + + +
      +<literal>text</literal> pattern + +We use the following additional notation: + + +ranges +over strings + + +The semantics of the text pattern are as follows: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +The effect of the above rule is that a text +element matches zero or more strings. + +
      + + +
      +<literal>oneOrMore</literal> pattern + +We use the following additional notation: + + + + + + +asserts that there is no name that is +the name of both an attribute in +and of an attribute in + + + +The semantics of the oneOrMore pattern are as follows: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + +
      +<literal>interleave</literal> pattern + +We use the following additional notation: + + + + + + + + +asserts that +is an interleaving of +and + + + + +The semantics of interleaving are defined by the following rules. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +For example, the interleavings of +]]> and +]]> are +]]>, +]]>, and +]]>. + +The semantics of the interleave pattern are +as follows: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +The restriction in +ensures that the set of attributes constructed in the consequent will +not have multiple attributes with the same name. + +
      + +
      +<literal>element</literal> and <literal>attribute</literal> pattern + +The value of an attribute is always a single string, which may +be empty. Thus, the empty sequence is not a possible attribute value. +On the hand, the children of an element can be an empty sequence and +cannot consist of an empty string. In order to ensure that validation +handles attributes and elements consistently, we introduce a variant +of matching called weak matching. Weak +matching is used when matching the pattern for the value of an +attribute or for the attributes and children of an element. We use +the following notation to define weak matching. + + + +represents an empty +string + +ranges over the empty +sequence and strings that consist entirely of +whitespace + + + + + + + + +asserts that with respect to context , the +attributes and the sequence of elements and +strings weakly matches the pattern + + + +The semantics of weak matching are as follows: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +We use the following additional notation: + + + + + + + + +constructs an attribute with name +and value + + + + + + + + + +constructs an element with name , +context , +attributes +and mixed sequence as children + + + + + + +asserts that the mixed sequence can occur as +the children of an element: it does not contain any member that is an +empty string, nor does it contain two consecutive members that are +both strings + + + + + + + +asserts that the grammar contains + + + + + + + + + + + + + +The semantics of the attribute pattern are as follows: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +The semantics of the element pattern are as follows: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      +<literal>data</literal> and <literal>value</literal> pattern + +RELAX NG relies on datatype libraries to perform datatyping. +A datatype library is identified by a URI. A datatype within a +datatype library is identified by an NCName. A datatype library +provides two services. + + + +It can determine whether a string is a legal +representation of a datatype. This service accepts a list of zero or +more parameters. For example, a string datatype might have a parameter +specifying the length of a string. The datatype library determines +what parameters are applicable for each datatype. + +It can determine whether two strings represent the +same value of a datatype. This service does not have any +parameters. + + + +Both services may make use of the context of a string. For +example, a datatype representing a QName would use the namespace +map. + +We use the following additional notation: + + + + + + + + + + +asserts that in the datatype library identified by URI , the string interpreted with +context is a legal +value of datatype with parameters + + + + + + + + + + +asserts that in the datatype library identified by URI , string interpreted with +context represents the same value of +the datatype as the string interpreted in the context of + + +ranges over sequences of parameters + + + + + +within the start-tag of a pattern refers to the context +of the pattern element + + + + + + + + + +constructs a context which is the same as +except that the default namespace is ; if is the empty string, then there is no default namespace +in the constructed context + + + +The datatypeEqual function must be reflexive, transitive +and symmetric, that is, the following inference rules must hold: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +The semantics of the data and +value patterns are as follows: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      +Built-in datatype library + +The empty URI identifies a special built-in datatype library. +This provides two datatypes, string and +token. No parameters are allowed for either of +these datatypes. + + + + + + + +asserts that +and are identical + + + + + + + +returns the string , +with leading and trailing whitespace characters removed, +and with each other maximal sequence of whitespace characters +replaced by a single space character + + + +The semantics of the two built-in datatypes are as +follows: + + + + + + + string + + + + + + + + + + string + + + + + + + + + + + token + + + + + + + + + + + + + + + + + + token + + + + + + + + + +
      + +
      +<literal>list</literal> pattern + +We use the following additional notation: + + + + + + +returns a sequence of strings one for each whitespace delimited token +of ; each string in the returned sequence will +be non-empty and will not contain any +whitespace + + + +The semantics of the list pattern are as follows: + + + + + + + + + + + + + + + + + + + + + + + + + +It is crucial in the above inference rule that the +sequence that is matched against a pattern can contain consecutive +strings. + +
      + +
      + +
      +Validity + +Now we can define when an element is valid with respect to a +schema. We use the following additional notation: + + + +ranges over elements + + + + + +asserts that the element is valid with +respect to the grammar + + + + +asserts that the grammar contains + + + + +An element is valid if together with an empty set of attributes +it matches the start pattern of the grammar. + + + + + + + + + + + + + + + + + + + + +
      + +
      +Example + +Let be + + + + + + + foo + + + + + + + + +where is + + + + + + + + +and is + + + + + http://www.example.com/n1 + bar1 + + + + + + + +and is + + + + + http://www.example.com/n2 + bar2 + + + + + + + +Assuming appropriate definitions of , and , this represents the document in . + +We now show how can be shown to +be valid with respect to the schema in . The schema is equivalent to the +following propositions: + + + + + foo + + + + + + + foo.element + + + foo + + + + + bar1 + + + + + bar2 + + + + + + + + + bar1.element + + + http://www.example.com/n1 + + bar1 + + + + + + + + bar2.element + + + http://www.example.com/n2 + + bar2 + + + + + + +Let name class be + + + + + http://www.example.com/n1 + + bar1 + + + +and let be + + + + + http://www.example.com/n2 + + bar2 + + + +Then, by the inference rule (name) in , we have + + + + + http://www.example.com/n1 + bar1 + + + + + +and + + + + + http://www.example.com/n2 + bar2 + + + + + + +By the inference rule (empty) in , +we have + + + + + + + + + + +and + + + + + + + + + + +Thus by the inference rule (element) in , we have + + + + + + + + + bar1 + + + + + +Note that we have chosen , since any context is allowed. + +Likewise, we have + + + + + + + + + bar2 + + + + + +By the inference rule (group) in , we have + + + + + + + + + + + + + bar1 + + + + + bar2 + + + + + + +By the inference rule (element) in , we have + + + + + + + + + foo + + + + + + + + foo + + + + + +Here is an arbitrary +context. + +Thus we can apply the inference rule (valid) in and obtain + + + + + + + +
      + +
      + +
      +Restrictions + +The following constraints are all checked after the grammar has +been transformed to the simple form described in . The purpose of these restrictions is to +catch user errors and to facilitate implementation. + +
      +Contextual restrictions + +In this section we describe restrictions on where elements are +allowed in the schema based on the names of the ancestor elements. We +use the concept of a prohibited path to +describe these restrictions. A path is a sequence of NCNames separated +by / or //. + + + +An element matches a path +x, where x is an +NCName, if and only if the local name of the element is +x + +An element matches a path +x/p, +where x is an NCName and +p is a path, if and only if the local name +of the element is x and the element has a +child that matches p + +An element matches a path +x//p, +where x is an NCName and +p is a path, if and only if the local name +of the element is x and the element has a +descendant that matches p + + + +For example, the element + + + + + +]]> + +matches the paths foo, +foo/bar, foo//bar, +foo//baz, foo/bar/baz, +foo/bar//baz and foo//bar/baz, +but not foo/baz or +foobar. + +A correct RELAX NG schema must be such that, after +transformation to the simple form, it does not contain any element +that matches a prohibited path. + +
      +<literal>attribute</literal> pattern + +The following paths are prohibited: + + +attribute//ref +attribute//attribute + + +
      + +
      +<literal>oneOrMore</literal> pattern + +The following paths are prohibited: + + +oneOrMore//group//attribute +oneOrMore//interleave//attribute + + +
      + +
      +<literal>list</literal> pattern + +The following paths are prohibited: + + +list//list +list//ref +list//attribute +list//text +list//interleave + +
      + +
      +<literal>except</literal> in <literal>data</literal> pattern + +The following paths are prohibited: + + +data/except//attribute +data/except//ref +data/except//text +data/except//list +data/except//group +data/except//interleave +data/except//oneOrMore +data/except//empty + + +This implies that an except element +with a data parent can contain only +data, value and +choice elements. + +
      + +
      +<literal>start</literal> element + +The following paths are prohibited: + + +start//attribute +start//data +start//value +start//text +start//list +start//group +start//interleave +start//oneOrMore +start//empty + +
      + +
      + +
      +String sequences + +RELAX NG does not allow a pattern such as: + + + + + + + + +]]> + +Nor does it allow a pattern such as: + + + + + + +]]> + +More generally, if the pattern for the content of an element or +attribute contains + + + +a pattern that can match a child +(that is, an element, data, +value, list or +text pattern), and + +a pattern that matches a single string (that is, a +data, value or +list pattern), + + + +then the two patterns must be alternatives to each other. + +This rule does not apply to patterns occurring within a +list pattern. + +To formalize this, we use the concept of a content-type. A +pattern that is allowable as the content of an element has one of +three content-types: empty, complex and simple. We use the following +notation. + + + + + +returns the empty content-type + + + + +returns the complex content-type + + + + +returns the simple content-type + + + +ranges over content-types + + + + + + + + +asserts that the content-types and +are groupable + + + + +The empty content-type is groupable with anything. In addition, +the complex content-type is groupable with the complex content-type. The +following rules formalize this. + + + + + + + + + + + + + + + + + + + + + + +Some patterns have a content-type. We use the following +additional notation. + + + + + + + + + +asserts that pattern has +content-type + + + + + + + + +returns the maximum of and where the +content-types in increasing order are , +, + + + + +The following rules define when a pattern has a content-type and, +if so, what it is. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +The antecedent in the (data 2) rule above is in fact +redundant because of the prohibited paths in . + +Now we can describe the restriction. We use the following +notation. + + + + + + +asserts that the schema is incorrect + + + + +All patterns occurring as the content of an element pattern must +have a content-type. + + + + + + + + + + + + + + + + + + + + +
      + +
      +Restrictions on attributes + +Duplicate attributes are not allowed. More precisely, for a +pattern <group> p1 +p2 </group> or +<interleave> p1 +p2 </interleave>, there must +not be a name that belongs to both the name class of an +attribute pattern occurring in +p1 and the name class of an +attribute pattern occurring in +p2. A pattern p1 +is defined to occur in a pattern +p2 if + + + +p1 is +p2, or + +p2 is a +choice, interleave, +group or oneOrMore element and +p1 occurs in one or more children of +p2. + + + +Attributes using infinite name classes must be repeated. More +precisely, an attribute element that has an +anyName or nsName descendant +element must have a oneOrMore ancestor +element. + +This restriction is necessary for closure under +negation. + +
      + +
      +Restrictions on <literal>interleave</literal> + +For a pattern <interleave> +p1 p2 +</interleave>, + + + +there must not be a name that belongs to both the name +class of an element pattern referenced by a +ref pattern occurring in +p1 and the name class of an +element pattern referenced by a +ref pattern occurring in +p2, and + +a text pattern must not occur in +both p1 and +p2. + + + + defines when one +pattern is considered to occur in another pattern. + +
      + +
      + +
      +Conformance + +A conforming RELAX NG validator must be able to determine for +any XML document whether it is a correct RELAX NG schema. A +conforming RELAX NG validator must be able to determine for any XML +document and for any correct RELAX NG schema whether the document is +valid with respect to the schema. + +However, the requirements in the preceding paragraph do not +apply if the schema uses a datatype library that the validator does +not support. A conforming RELAX NG validator is only required to +support the built-in datatype library described in . A validator that claims conformance to +RELAX NG should document which datatype libraries it supports. The +requirements in the preceding paragraph also do not apply if the +schema includes externalRef or +include elements and the validator is unable to +retrieve the resource identified by the URI or is unable to construct +an element from the retrieved resource. A validator that claims +conformance to RELAX NG should document its capabilities for handling +URI references. + +
      + + +RELAX NG schema for RELAX NG + + + + + + +Changes since version 0.9 + +The changes in this version relative to version 0.9 +are as follows: + + + +in the namespace URI, 0.9 has been +changed to 1.0 + +data/except//empty has been added +as a prohibited path (see ) + +start//empty has been added +as a prohibited path (see ) + + now specifies how a +list element with more than one child element is +transformed + + now specifies how a +notAllowed element occurring in an +except element is transformed + +although a relative URI is not allowed as the value of +the ns and datatypeLibrary +attributes, an empty string is allowed (see ) + +the removal of unreachable definitions in is now correctly specified + + now specifies that +define elements that are no longer reachable are +removed + + has been added; the +restrictions on the contents of except in name +classes that are now specified in the newly added section were +previously specified in a subsection of , which has been +removed + +the treatment of element and attribute values that +consist only of whitespace has been refined (see and ) + +attributes with infinite name classes are now required +to be repeated (see ) + +restrictions have been imposed on +interleave (see ); list//interleave +has been added as a prohibited path (see ) + +some of the prohibited paths in have been corrected to use +ref rather than +element + +an error in the inference rule (text 1) in has been corrected + +the value of the ns attribute is +now unconstrained (see ) + + + + + + +RELAX NG TC (Non-Normative) + +This specification was prepared and approved for publication by +the RELAX NG TC. The current members of the TC are: + + +Fabio Arciniegas +James Clark +Mike Fitzgerald +KAWAGUCHI Kohsuke +Josh Lubell +MURATA Makoto +Norman Walsh +David Webber + + + + +References + +Normative + +XML 1.0Tim Bray, +Jean Paoli, and +C. M. Sperberg-McQueen, Eve Maler, editors. +Extensible Markup +Language (XML) 1.0 Second Edition. +W3C (World Wide Web Consortium), 2000. + +XML NamespacesTim Bray, +Dave Hollander, +and Andrew Layman, editors. +Namespaces in +XML. +W3C (World Wide Web Consortium), 1999. + +XLinkSteve DeRose, Eve Maler +and David Orchard, editors. +XML Linking +Language (XLink) Version 1.0. +W3C (World Wide Web Consortium), 2001. + +XML InfosetJohn Cowan, Richard Tobin, +editors. +XML +Information Set. +W3C (World Wide Web Consortium), 2001. + +RFC 2396T. Berners-Lee, R. Fielding, L. Masinter. +RFC 2396: +Uniform Resource Identifiers (URI): Generic +Syntax. +IETF (Internet Engineering Task Force). 1998. + +RFC 2732R. Hinden, B. Carpenter, L. Masinter. +RFC 2732: Format for Literal IPv6 Addresses in URL's. +IETF (Internet Engineering Task Force), 1999. + +RFC 3023 M. Murata, +S. St.Laurent, D. Kohn. RFC 3023: XML Media +Types. IETF (Internet Engineering Task Force), +2001. + + + +Non-Normative + +W3C XML Schema DatatypesPaul V. Biron, Ashok Malhotra, editors. +XML Schema Part 2: Datatypes. +W3C (World Wide Web Consortium), 2001. + +TREXJames Clark. +TREX - Tree Regular Expressions for XML. +Thai Open Source Software Center, 2001. + +RELAXMURATA Makoto. +RELAX (Regular +Language description for XML). INSTAC +(Information Technology Research and Standardization Center), 2001. + +XML Schema FormalAllen Brown, +Matthew Fuchs, Jonathan Robie, Philip Wadler, editors. +XML Schema: Formal Description. +W3C (World Wide Web Consortium), 2001. + +TutorialJames Clark, +Makoto MURATA, editors. RELAX +NG Tutorial. OASIS, 2001. + + + + + +
      diff --git a/test/relaxng/table.rng b/test/relaxng/table.rng new file mode 100644 index 0000000..c14e603 --- /dev/null +++ b/test/relaxng/table.rng @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/testsuite.xml b/test/relaxng/testsuite.xml new file mode 100644 index 0000000..09a8f38 --- /dev/null +++ b/test/relaxng/testsuite.xml @@ -0,0 +1,1708 @@ + +Daniel Veillard +daniel@veillard.com +For libxml2 implementation of Relax NG spec. + +Test of node matches + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Test of indeterminism + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Test of grammars merging + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      + + +

      + +

      + + +

      + +

      +
      + + + + +

      + + +

      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      + + +

      + +

      + + +

      + +

      +
      + +

      + +

      +
      + +

      + +

      +
      + + + + + + + + + + +

      + + +

      +
      + +

      + + +

      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      + + +

      + +

      + + +

      + +

      +
      + +

      + +

      +
      + +

      + +

      +
      + +

      + +

      +
      + +

      + +

      +
      + +

      + +

      +
      + + + + + + + + + + + + + + + + + + + +

      + + +

      +
      + +

      + + +

      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      + + +

      + +

      + + +

      + +

      +
      + +

      + +

      +
      + +

      + +

      +
      + +

      + +

      +
      + +

      + +

      +
      + +

      + +

      +
      + +

      + +

      +
      + +

      + +

      +
      + +

      + +

      +
      + + + + + + + + + + + + + + + + + + + +

      + + +

      +
      + +

      + + +

      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + + + + +

      + + + + + + + + + + + + + + +

      + + + + + + +

      + + + + + + +Test of ID/IDREF + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Test of ENTITY/ENTITIES + + + + + + + + + + +foo + + +foo + + + foo + + +foo bar + + + + + + + + + + + + +foo + + + foo bar + + + foo bar foo + + +foo bar + + + + +Test of Mixed + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + mixed + + + + + + + + mixed + + + + + + + is + + inter + + mixed + + + + + + + mixed + + . + + + + + + this + + is + + inter + + mixed + + . + + + + + + diff --git a/test/relaxng/tutor10_1.rng b/test/relaxng/tutor10_1.rng new file mode 100644 index 0000000..98df277 --- /dev/null +++ b/test/relaxng/tutor10_1.rng @@ -0,0 +1,4 @@ + + + diff --git a/test/relaxng/tutor10_10.rng b/test/relaxng/tutor10_10.rng new file mode 100644 index 0000000..375b628 --- /dev/null +++ b/test/relaxng/tutor10_10.rng @@ -0,0 +1,13 @@ + + + + + + + + + + + + diff --git a/test/relaxng/tutor10_10_1.xml b/test/relaxng/tutor10_10_1.xml new file mode 100644 index 0000000..607982a --- /dev/null +++ b/test/relaxng/tutor10_10_1.xml @@ -0,0 +1,5 @@ + + + foobar + + diff --git a/test/relaxng/tutor10_1_1.xml b/test/relaxng/tutor10_1_1.xml new file mode 100644 index 0000000..898193d --- /dev/null +++ b/test/relaxng/tutor10_1_1.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/tutor10_1_2.xml b/test/relaxng/tutor10_1_2.xml new file mode 100644 index 0000000..16d900a --- /dev/null +++ b/test/relaxng/tutor10_1_2.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/tutor10_1_3.xml b/test/relaxng/tutor10_1_3.xml new file mode 100644 index 0000000..756c73f --- /dev/null +++ b/test/relaxng/tutor10_1_3.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/tutor10_1_4.xml b/test/relaxng/tutor10_1_4.xml new file mode 100644 index 0000000..f1999f8 --- /dev/null +++ b/test/relaxng/tutor10_1_4.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/tutor10_1_5.xml b/test/relaxng/tutor10_1_5.xml new file mode 100644 index 0000000..ed0f048 --- /dev/null +++ b/test/relaxng/tutor10_1_5.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/tutor10_1_6.xml b/test/relaxng/tutor10_1_6.xml new file mode 100644 index 0000000..7dd6aed --- /dev/null +++ b/test/relaxng/tutor10_1_6.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/tutor10_2.rng b/test/relaxng/tutor10_2.rng new file mode 100644 index 0000000..ebf08de --- /dev/null +++ b/test/relaxng/tutor10_2.rng @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/tutor10_2_1.xml b/test/relaxng/tutor10_2_1.xml new file mode 100644 index 0000000..24e0b22 --- /dev/null +++ b/test/relaxng/tutor10_2_1.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/tutor10_2_2.xml b/test/relaxng/tutor10_2_2.xml new file mode 100644 index 0000000..f1999f8 --- /dev/null +++ b/test/relaxng/tutor10_2_2.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/tutor10_2_3.xml b/test/relaxng/tutor10_2_3.xml new file mode 100644 index 0000000..898193d --- /dev/null +++ b/test/relaxng/tutor10_2_3.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/tutor10_2_4.xml b/test/relaxng/tutor10_2_4.xml new file mode 100644 index 0000000..16d900a --- /dev/null +++ b/test/relaxng/tutor10_2_4.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/tutor10_3.rng b/test/relaxng/tutor10_3.rng new file mode 100644 index 0000000..86f8cd1 --- /dev/null +++ b/test/relaxng/tutor10_3.rng @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/relaxng/tutor10_3_1.xml b/test/relaxng/tutor10_3_1.xml new file mode 100644 index 0000000..693df18 --- /dev/null +++ b/test/relaxng/tutor10_3_1.xml @@ -0,0 +1,3 @@ + + foobar + diff --git a/test/relaxng/tutor10_4.rng b/test/relaxng/tutor10_4.rng new file mode 100644 index 0000000..9a0ad34 --- /dev/null +++ b/test/relaxng/tutor10_4.rng @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/relaxng/tutor10_4_1.xml b/test/relaxng/tutor10_4_1.xml new file mode 100644 index 0000000..693df18 --- /dev/null +++ b/test/relaxng/tutor10_4_1.xml @@ -0,0 +1,3 @@ + + foobar + diff --git a/test/relaxng/tutor10_5.rng b/test/relaxng/tutor10_5.rng new file mode 100644 index 0000000..85f5418 --- /dev/null +++ b/test/relaxng/tutor10_5.rng @@ -0,0 +1,13 @@ + + + + + + + + + + + + diff --git a/test/relaxng/tutor10_5_1.xml b/test/relaxng/tutor10_5_1.xml new file mode 100644 index 0000000..94e62f0 --- /dev/null +++ b/test/relaxng/tutor10_5_1.xml @@ -0,0 +1,3 @@ + + foobar + diff --git a/test/relaxng/tutor10_6.rng b/test/relaxng/tutor10_6.rng new file mode 100644 index 0000000..fd50547 --- /dev/null +++ b/test/relaxng/tutor10_6.rng @@ -0,0 +1,13 @@ + + + + + + + + + + + + diff --git a/test/relaxng/tutor10_6_1.xml b/test/relaxng/tutor10_6_1.xml new file mode 100644 index 0000000..94e62f0 --- /dev/null +++ b/test/relaxng/tutor10_6_1.xml @@ -0,0 +1,3 @@ + + foobar + diff --git a/test/relaxng/tutor10_7.rng b/test/relaxng/tutor10_7.rng new file mode 100644 index 0000000..ce93df7 --- /dev/null +++ b/test/relaxng/tutor10_7.rng @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/test/relaxng/tutor10_7_1.xml b/test/relaxng/tutor10_7_1.xml new file mode 100644 index 0000000..740d0d3 --- /dev/null +++ b/test/relaxng/tutor10_7_1.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/tutor10_7_2.xml b/test/relaxng/tutor10_7_2.xml new file mode 100644 index 0000000..97436e5 --- /dev/null +++ b/test/relaxng/tutor10_7_2.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/tutor10_7_3.xml b/test/relaxng/tutor10_7_3.xml new file mode 100644 index 0000000..7f58a8b --- /dev/null +++ b/test/relaxng/tutor10_7_3.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/tutor10_8.rng b/test/relaxng/tutor10_8.rng new file mode 100644 index 0000000..caeffec --- /dev/null +++ b/test/relaxng/tutor10_8.rng @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/test/relaxng/tutor10_8_1.xml b/test/relaxng/tutor10_8_1.xml new file mode 100644 index 0000000..740d0d3 --- /dev/null +++ b/test/relaxng/tutor10_8_1.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/tutor10_8_2.xml b/test/relaxng/tutor10_8_2.xml new file mode 100644 index 0000000..97436e5 --- /dev/null +++ b/test/relaxng/tutor10_8_2.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/tutor10_8_3.xml b/test/relaxng/tutor10_8_3.xml new file mode 100644 index 0000000..7f58a8b --- /dev/null +++ b/test/relaxng/tutor10_8_3.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/tutor10_9.rng b/test/relaxng/tutor10_9.rng new file mode 100644 index 0000000..c954a91 --- /dev/null +++ b/test/relaxng/tutor10_9.rng @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/test/relaxng/tutor10_9_1.xml b/test/relaxng/tutor10_9_1.xml new file mode 100644 index 0000000..607982a --- /dev/null +++ b/test/relaxng/tutor10_9_1.xml @@ -0,0 +1,5 @@ + + + foobar + + diff --git a/test/relaxng/tutor11_1.rng b/test/relaxng/tutor11_1.rng new file mode 100644 index 0000000..2511af1 --- /dev/null +++ b/test/relaxng/tutor11_1.rng @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor11_1_1.xml b/test/relaxng/tutor11_1_1.xml new file mode 100644 index 0000000..2511af1 --- /dev/null +++ b/test/relaxng/tutor11_1_1.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor11_1_2.xml b/test/relaxng/tutor11_1_2.xml new file mode 100644 index 0000000..f45fc3b --- /dev/null +++ b/test/relaxng/tutor11_1_2.xml @@ -0,0 +1,7 @@ + + + foo + bar + this guy is annoying ! + + diff --git a/test/relaxng/tutor11_1_3.xml b/test/relaxng/tutor11_1_3.xml new file mode 100644 index 0000000..c778ce0 --- /dev/null +++ b/test/relaxng/tutor11_1_3.xml @@ -0,0 +1,4197 @@ + + + + + + + + + + + + + + + + +"> + +'"> + + + + + + + + + +amp, +lt, +gt, +apos, +quot"> + + + + + +]> + + + + + +

      +Extensible Markup Language (XML) 1.0 + +REC-xml-&iso6.doc.date; +W3C Recommendation +&draft.day;&draft.month;&draft.year; + + + +http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date; + +http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.xml + +http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.html + +http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.pdf + +http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.ps + + + +http://www.w3.org/TR/REC-xml + + + +http://www.w3.org/TR/PR-xml-971208 + + + +Tim Bray +Textuality and Netscape +tbray@textuality.com +Jean Paoli +Microsoft +jeanpa@microsoft.com +C. M. Sperberg-McQueen +University of Illinois at Chicago +cmsmcq@uic.edu + + +

      The Extensible Markup Language (XML) is a subset of +SGML that is completely described in this document. Its goal is to +enable generic SGML to be served, received, and processed on the Web +in the way that is now possible with HTML. XML has been designed for +ease of implementation and for interoperability with both SGML and +HTML.

      +
      + +

      This document has been reviewed by W3C Members and +other interested parties and has been endorsed by the +Director as a W3C Recommendation. It is a stable +document and may be used as reference material or cited +as a normative reference from another document. W3C's +role in making the Recommendation is to draw attention +to the specification and to promote its widespread +deployment. This enhances the functionality and +interoperability of the Web.

      +

      +This document specifies a syntax created by subsetting an existing, +widely used international text processing standard (Standard +Generalized Markup Language, ISO 8879:1986(E) as amended and +corrected) for use on the World Wide Web. It is a product of the W3C +XML Activity, details of which can be found at http://www.w3.org/XML. A list of +current W3C Recommendations and other technical documents can be found +at http://www.w3.org/TR. +

      +

      This specification uses the term URI, which is defined by , a work in progress expected to update and . +

      +

      The list of known errors in this specification is +available at +http://www.w3.org/XML/xml-19980210-errata.

      +

      Please report errors in this document to +xml-editor@w3.org. +

      +
      + + + +

      Chicago, Vancouver, Mountain View, et al.: +World-Wide Web Consortium, XML Working Group, 1996, 1997.

      +
      + +

      Created in electronic form.

      +
      + +English +Extended Backus-Naur Form (formal grammar) + + + +1997-12-03 : CMSMcQ : yet further changes +1997-12-02 : TB : further changes (see TB to XML WG, +2 December 1997) +1997-12-02 : CMSMcQ : deal with as many corrections and +comments from the proofreaders as possible: +entify hard-coded document date in pubdate element, +change expansion of entity WebSGML, +update status description as per Dan Connolly (am not sure +about refernece to Berners-Lee et al.), +add 'The' to abstract as per WG decision, +move Relationship to Existing Standards to back matter and +combine with References, +re-order back matter so normative appendices come first, +re-tag back matter so informative appendices are tagged informdiv1, +remove XXX XXX from list of 'normative' specs in prose, +move some references from Other References to Normative References, +add RFC 1738, 1808, and 2141 to Other References (they are not +normative since we do not require the processor to enforce any +rules based on them), +add reference to 'Fielding draft' (Berners-Lee et al.), +move notation section to end of body, +drop URIchar non-terminal and use SkipLit instead, +lose stray reference to defunct nonterminal 'markupdecls', +move reference to Aho et al. into appendix (Tim's right), +add prose note saying that hash marks and fragment identifiers are +NOT part of the URI formally speaking, and are NOT legal in +system identifiers (processor 'may' signal an error). +Work through: +Tim Bray reacting to James Clark, +Tim Bray on his own, +Eve Maler, + +NOT DONE YET: +change binary / text to unparsed / parsed. +handle James's suggestion about < in attriubte values +uppercase hex characters, +namechar list, + +1997-12-01 : JB : add some column-width parameters +1997-12-01 : CMSMcQ : begin round of changes to incorporate +recent WG decisions and other corrections: +binding sources of character encoding info (27 Aug / 3 Sept), +correct wording of Faust quotation (restore dropped line), +drop SDD from EncodingDecl, +change text at version number 1.0, +drop misleading (wrong!) sentence about ignorables and extenders, +modify definition of PCData to make bar on msc grammatical, +change grammar's handling of internal subset (drop non-terminal markupdecls), +change definition of includeSect to allow conditional sections, +add integral-declaration constraint on internal subset, +drop misleading / dangerous sentence about relationship of +entities with system storage objects, +change table body tag to htbody as per EM change to DTD, +add rule about space normalization in public identifiers, +add description of how to generate our name-space rules from +Unicode character database (needs further work!). + +1997-10-08 : TB : Removed %-constructs again, new rules +for PE appearance. +1997-10-01 : TB : Case-sensitive markup; cleaned up +element-type defs, lotsa little edits for style +1997-09-25 : TB : Change to elm's new DTD, with +substantial detail cleanup as a side-effect +1997-07-24 : CMSMcQ : correct error (lost *) in definition +of ignoreSectContents (thanks to Makoto Murata) +Allow all empty elements to have end-tags, consistent with +SGML TC (as per JJC). +1997-07-23 : CMSMcQ : pre-emptive strike on pending corrections: +introduce the term 'empty-element tag', note that all empty elements +may use it, and elements declared EMPTY must use it. +Add WFC requiring encoding decl to come first in an entity. +Redefine notations to point to PIs as well as binary entities. +Change autodetection table by removing bytes 3 and 4 from +examples with Byte Order Mark. +Add content model as a term and clarify that it applies to both +mixed and element content. + +1997-06-30 : CMSMcQ : change date, some cosmetic changes, +changes to productions for choice, seq, Mixed, NotationType, +Enumeration. Follow James Clark's suggestion and prohibit +conditional sections in internal subset. TO DO: simplify +production for ignored sections as a result, since we don't +need to worry about parsers which don't expand PErefs finding +a conditional section. +1997-06-29 : TB : various edits +1997-06-29 : CMSMcQ : further changes: +Suppress old FINAL EDIT comments and some dead material. +Revise occurrences of % in grammar to exploit Henry Thompson's pun, +especially markupdecl and attdef. +Remove RMD requirement relating to element content (?). + +1997-06-28 : CMSMcQ : Various changes for 1 July draft: +Add text for draconian error handling (introduce +the term Fatal Error). +RE deleta est (changing wording from +original announcement to restrict the requirement to validating +parsers). +Tag definition of validating processor and link to it. +Add colon as name character. +Change def of %operator. +Change standard definitions of lt, gt, amp. +Strip leading zeros from #x00nn forms. +1997-04-02 : CMSMcQ : final corrections of editorial errors +found in last night's proofreading. Reverse course once more on +well-formed: Webster's Second hyphenates it, and that's enough +for me. +1997-04-01 : CMSMcQ : corrections from JJC, EM, HT, and self +1997-03-31 : Tim Bray : many changes +1997-03-29 : CMSMcQ : some Henry Thompson (on entity handling), +some Charles Goldfarb, some ERB decisions (PE handling in miscellaneous +declarations. Changed Ident element to accept def attribute. +Allow normalization of Unicode characters. move def of systemliteral +into section on literals. +1997-03-28 : CMSMcQ : make as many corrections as possible, from +Terry Allen, Norbert Mikula, James Clark, Jon Bosak, Henry Thompson, +Paul Grosso, and self. Among other things: give in on "well formed" +(Terry is right), tentatively rename QuotedCData as AttValue +and Literal as EntityValue to be more informative, since attribute +values are the only place QuotedCData was used, and +vice versa for entity text and Literal. (I'd call it Entity Text, +but 8879 uses that name for both internal and external entities.) +1997-03-26 : CMSMcQ : resynch the two forks of this draft, reapply +my changes dated 03-20 and 03-21. Normalize old 'may not' to 'must not' +except in the one case where it meant 'may or may not'. +1997-03-21 : TB : massive changes on plane flight from Chicago +to Vancouver +1997-03-21 : CMSMcQ : correct as many reported errors as possible. + +1997-03-20 : CMSMcQ : correct typos listed in CMSMcQ hand copy of spec. +1997-03-20 : CMSMcQ : cosmetic changes preparatory to revision for +WWW conference April 1997: restore some of the internal entity +references (e.g. to docdate, etc.), change character xA0 to &nbsp; +and define nbsp as &#160;, and refill a lot of paragraphs for +legibility. +1996-11-12 : CMSMcQ : revise using Tim's edits: +Add list type of NUMBERED and change most lists either to +BULLETS or to NUMBERED. +Suppress QuotedNames, Names (not used). +Correct trivial-grammar doc type decl. +Rename 'marked section' as 'CDATA section' passim. +Also edits from James Clark: +Define the set of characters from which [^abc] subtracts. +Charref should use just [0-9] not Digit. +Location info needs cleaner treatment: remove? (ERB +question). +One example of a PI has wrong pic. +Clarify discussion of encoding names. +Encoding failure should lead to unspecified results; don't +prescribe error recovery. +Don't require exposure of entity boundaries. +Ignore white space in element content. +Reserve entity names of the form u-NNNN. +Clarify relative URLs. +And some of my own: +Correct productions for content model: model cannot +consist of a name, so "elements ::= cp" is no good. + +1996-11-11 : CMSMcQ : revise for style. +Add new rhs to entity declaration, for parameter entities. +1996-11-10 : CMSMcQ : revise for style. +Fix / complete section on names, characters. +Add sections on parameter entities, conditional sections. +Still to do: Add compatibility note on deterministic content models. +Finish stylistic revision. +1996-10-31 : TB : Add Entity Handling section +1996-10-30 : TB : Clean up term & termdef. Slip in +ERB decision re EMPTY. +1996-10-28 : TB : Change DTD. Implement some of Michael's +suggestions. Change comments back to //. Introduce language for +XML namespace reservation. Add section on white-space handling. +Lots more cleanup. +1996-10-24 : CMSMcQ : quick tweaks, implement some ERB +decisions. Characters are not integers. Comments are /* */ not //. +Add bibliographic refs to 10646, HyTime, Unicode. +Rename old Cdata as MsData since it's only seen +in marked sections. Call them attribute-value pairs not +name-value pairs, except once. Internal subset is optional, needs +'?'. Implied attributes should be signaled to the app, not +have values supplied by processor. +1996-10-16 : TB : track down & excise all DSD references; +introduce some EBNF for entity declarations. +1996-10-?? : TB : consistency check, fix up scraps so +they all parse, get formatter working, correct a few productions. +1996-10-10/11 : CMSMcQ : various maintenance, stylistic, and +organizational changes: +Replace a few literals with xmlpio and +pic entities, to make them consistent and ensure we can change pic +reliably when the ERB votes. +Drop paragraph on recognizers from notation section. +Add match, exact match to terminology. +Move old 2.2 XML Processors and Apps into intro. +Mention comments, PIs, and marked sections in discussion of +delimiter escaping. +Streamline discussion of doctype decl syntax. +Drop old section of 'PI syntax' for doctype decl, and add +section on partial-DTD summary PIs to end of Logical Structures +section. +Revise DSD syntax section to use Tim's subset-in-a-PI +mechanism. +1996-10-10 : TB : eliminate name recognizers (and more?) +1996-10-09 : CMSMcQ : revise for style, consistency through 2.3 +(Characters) +1996-10-09 : CMSMcQ : re-unite everything for convenience, +at least temporarily, and revise quickly +1996-10-08 : TB : first major homogenization pass +1996-10-08 : TB : turn "current" attribute on div type into +CDATA +1996-10-02 : TB : remould into skeleton + entities +1996-09-30 : CMSMcQ : add a few more sections prior to exchange + with Tim. +1996-09-20 : CMSMcQ : finish transcribing notes. +1996-09-19 : CMSMcQ : begin transcribing notes for draft. +1996-09-13 : CMSMcQ : made outline from notes of 09-06, +do some housekeeping + + +
      + + +Introduction +

      Extensible Markup Language, abbreviated XML, describes a class of +data objects called XML documents and +partially describes the behavior of +computer programs which process them. XML is an application profile or +restricted form of SGML, the Standard Generalized Markup +Language . +By construction, XML documents +are conforming SGML documents. +

      +

      XML documents are made up of storage units called entities, which contain either parsed +or unparsed data. +Parsed data is made up of characters, +some +of which form character data, +and some of which form markup. +Markup encodes a description of the document's storage layout and +logical structure. XML provides a mechanism to impose constraints on +the storage layout and logical structure.

      +

      A software module +called an XML processor is used to read XML documents +and provide access to their content and structure. It is assumed that an XML processor is +doing its work on behalf of another module, called the +application. This specification describes the +required behavior of an XML processor in terms of how it must read XML +data and the information it must provide to the application.

      + + +Origin and Goals +

      XML was developed by an XML Working Group (originally known as the +SGML Editorial Review Board) formed under the auspices of the World +Wide Web Consortium (W3C) in 1996. +It was chaired by Jon Bosak of Sun +Microsystems with the active participation of an XML Special +Interest Group (previously known as the SGML Working Group) also +organized by the W3C. The membership of the XML Working Group is given +in an appendix. Dan Connolly served as the WG's contact with the W3C. +

      +

      The design goals for XML are: +

      XML shall be straightforwardly usable over the +Internet.

      +

      XML shall support a wide variety of applications.

      +

      XML shall be compatible with SGML.

      +

      It shall be easy to write programs which process XML +documents.

      +

      The number of optional features in XML is to be kept to the +absolute minimum, ideally zero.

      +

      XML documents should be human-legible and reasonably +clear.

      +

      The XML design should be prepared quickly.

      +

      The design of XML shall be formal and concise.

      +

      XML documents shall be easy to create.

      +

      Terseness in XML markup is of minimal importance.

      +

      +

      This specification, +together with associated standards +(Unicode and ISO/IEC 10646 for characters, +Internet RFC 1766 for language identification tags, +ISO 639 for language name codes, and +ISO 3166 for country name codes), +provides all the information necessary to understand +XML Version &XML.version; +and construct computer programs to process it.

      +

      This version of the XML specification + +&doc.distribution;.

      + +
      + + + + + +Terminology + +

      The terminology used to describe XML documents is defined in the body of +this specification. +The terms defined in the following list are used in building those +definitions and in describing the actions of an XML processor: + + + +

      Conforming documents and XML +processors are permitted to but need not behave as +described.

      + + + +

      Conforming documents and XML processors +are required to behave as described; otherwise they are in error. + +

      +
      + + +

      A violation of the rules of this +specification; results are +undefined. Conforming software may detect and report an error and may +recover from it.

      +
      + + +

      An error +which a conforming XML processor +must detect and report to the application. +After encountering a fatal error, the +processor may continue +processing the data to search for further errors and may report such +errors to the application. In order to support correction of errors, +the processor may make unprocessed data from the document (with +intermingled character data and markup) available to the application. +Once a fatal error is detected, however, the processor must not +continue normal processing (i.e., it must not +continue to pass character data and information about the document's +logical structure to the application in the normal way). +

      +
      + + +

      Conforming software may or must (depending on the modal verb in the +sentence) behave as described; if it does, it must +provide users a means to enable or disable the behavior +described.

      +
      + + +

      A rule which applies to all +valid XML documents. +Violations of validity constraints are errors; they must, at user option, +be reported by +validating XML processors.

      +
      + + +

      A rule which applies to all well-formed XML documents. +Violations of well-formedness constraints are +fatal errors.

      +
      + + + +

      (Of strings or names:) +Two strings or names being compared must be identical. +Characters with multiple possible representations in ISO/IEC 10646 (e.g. +characters with +both precomposed and base+diacritic forms) match only if they have the +same representation in both strings. +At user option, processors may normalize such characters to +some canonical form. +No case folding is performed. +(Of strings and rules in the grammar:) +A string matches a grammatical production if it belongs to the +language generated by that production. +(Of content and content models:) +An element matches its declaration when it conforms +in the fashion described in the constraint +. + +

      +
      + + +

      A feature of +XML included solely to ensure that XML remains compatible with SGML. +

      +
      + + +

      A +non-binding recommendation included to increase the chances that XML +documents can be processed by the existing installed base of SGML +processors which predate the +&WebSGML;.

      +
      + +

      +
      + + +
      + + + +Documents + +

      +A data object is an +XML document if it is +well-formed, as +defined in this specification. +A well-formed XML document may in addition be +valid if it meets certain further +constraints.

      + +

      Each XML document has both a logical and a physical structure. +Physically, the document is composed of units called entities. An entity may refer to other entities to cause their +inclusion in the document. A document begins in a "root" or document entity. +Logically, the document is composed of declarations, elements, +comments, +character references, and +processing +instructions, all of which are indicated in the document by explicit +markup. +The logical and physical structures must nest properly, as described +in . +

      + + +Well-Formed XML Documents + +

      +A textual object is +a well-formed XML document if: + +

      Taken as a whole, it +matches the production labeled document.

      +

      It +meets all the well-formedness constraints given in this specification.

      +
      +

      Each of the parsed entities +which is referenced directly or indirectly within the document is +well-formed.

      +

      +

      + +Document +document +prolog +element +Misc* + +

      +

      Matching the document production +implies that: + +

      It contains one or more +elements.

      + + +

      There is exactly +one element, called the root, or document element, no +part of which appears in the content of any other element. +For all other elements, if the start-tag is in the content of another +element, the end-tag is in the content of the same element. More +simply stated, the elements, delimited by start- and end-tags, nest +properly within each other. +

      + +

      +

      As a consequence +of this, +for each non-root element +C in the document, there is one other element P +in the document such that +C is in the content of P, but is not in +the content of any other element that is in the content of +P. +P is referred to as the +parent of C, and C as a +child of P.

      + + +Characters + +

      A parsed entity contains +text, a sequence of +characters, +which may represent markup or character data. +A character +is an atomic unit of text as specified by +ISO/IEC 10646 . +Legal characters are tab, carriage return, line feed, and the legal +graphic characters of Unicode and ISO/IEC 10646. +The use of "compatibility characters", as defined in section 6.8 +of , is discouraged. + + +Character Range + +Char +#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] +| [#x10000-#x10FFFF] +any Unicode character, excluding the +surrogate blocks, FFFE, and FFFF. + + +

      + +

      The mechanism for encoding character code points into bit patterns may +vary from entity to entity. All XML processors must accept the UTF-8 +and UTF-16 encodings of 10646; the mechanisms for signaling which of +the two is in use, or for bringing other encodings into play, are +discussed later, in . +

      + +
      + + +Common Syntactic Constructs + +

      This section defines some symbols used widely in the grammar.

      +

      S (white space) consists of one or more space (#x20) +characters, carriage returns, line feeds, or tabs. + + +White Space + +S +(#x20 | #x9 | #xD | #xA)+ + + +

      +

      Characters are classified for convenience as letters, digits, or other +characters. Letters consist of an alphabetic or syllabic +base character possibly +followed by one or more combining characters, or of an ideographic +character. +Full definitions of the specific characters in each class +are given in .

      +

      A Name is a token +beginning with a letter or one of a few punctuation characters, and continuing +with letters, digits, hyphens, underscores, colons, or full stops, together +known as name characters. +Names beginning with the string "xml", or any string +which would match (('X'|'x') ('M'|'m') ('L'|'l')), are +reserved for standardization in this or future versions of this +specification. +

      + +

      The colon character within XML names is reserved for experimentation with +name spaces. +Its meaning is expected to be +standardized at some future point, at which point those documents +using the colon for experimental purposes may need to be updated. +(There is no guarantee that any name-space mechanism +adopted for XML will in fact use the colon as a name-space delimiter.) +In practice, this means that authors should not use the colon in XML +names except as part of name-space experiments, but that XML processors +should accept the colon as a name character.

      +
      +

      An +Nmtoken (name token) is any mixture of +name characters. + +Names and Tokens +NameChar +Letter +| Digit +| '.' | '-' | '_' | ':' +| CombiningChar +| Extender + +Name +(Letter | '_' | ':') +(NameChar)* +Names +Name +(S Name)* +Nmtoken +(NameChar)+ +Nmtokens +Nmtoken (S Nmtoken)* + +

      +

      Literal data is any quoted string not containing +the quotation mark used as a delimiter for that string. +Literals are used +for specifying the content of internal entities +(EntityValue), +the values of attributes (AttValue), +and external identifiers +(SystemLiteral). +Note that a SystemLiteral +can be parsed without scanning for markup. + +Literals +EntityValue +'"' +([^%&"] +| PEReference +| Reference)* +'"' + +|  +"'" +([^%&'] +| PEReference +| Reference)* +"'" + +AttValue +'"' +([^<&"] +| Reference)* +'"' + +|  +"'" +([^<&'] +| Reference)* +"'" + +SystemLiteral +('"' [^"]* '"') | ("'" [^']* "'") + + +PubidLiteral +'"' PubidChar* +'"' +| "'" (PubidChar - "'")* "'" + +PubidChar +#x20 | #xD | #xA +| [a-zA-Z0-9] +| [-'()+,./:=?;!*#@$_%] + + +

      + +
      + + +Character Data and Markup + +

      Text consists of intermingled +character +data and markup. +Markup takes the form of +start-tags, +end-tags, +empty-element tags, +entity references, +character references, +comments, +CDATA section delimiters, +document type declarations, and +processing instructions. + +

      +

      All text that is not markup +constitutes the character data of +the document.

      +

      The ampersand character (&) and the left angle bracket (<) +may appear in their literal form only when used as markup +delimiters, or within a comment, a +processing instruction, +or a CDATA section. + +They are also legal within the literal entity +value of an internal entity declaration; see +. + +If they are needed elsewhere, +they must be escaped +using either numeric character references +or the strings +"&amp;" and "&lt;" respectively. +The right angle +bracket (>) may be represented using the string +"&gt;", and must, for +compatibility, +be escaped using +"&gt;" or a character reference +when it appears in the string +"]]>" +in content, +when that string is not marking the end of +a CDATA section. +

      +

      +In the content of elements, character data +is any string of characters which does +not contain the start-delimiter of any markup. +In a CDATA section, character data +is any string of characters not including the CDATA-section-close +delimiter, "]]>".

      +

      +To allow attribute values to contain both single and double quotes, the +apostrophe or single-quote character (') may be represented as +"&apos;", and the double-quote character (") as +"&quot;". + +Character Data + +CharData +[^<&]* - ([^<&]* ']]>' [^<&]*) + + +

      +
      + + +Comments + +

      Comments may +appear anywhere in a document outside other +markup; in addition, +they may appear within the document type declaration +at places allowed by the grammar. +They are not part of the document's character +data; an XML +processor may, but need not, make it possible for an application to +retrieve the text of comments. +For compatibility, the string +"--" (double-hyphen) must not occur within +comments. + +Comments +Comment +'<!--' +((Char - '-') +| ('-' (Char - '-')))* +'-->' + + +

      +

      An example of a comment: +<!&como; declarations for <head> & <body> &comc;> +

      +
      + + +Processing Instructions + +

      Processing +instructions (PIs) allow documents to contain instructions +for applications. + + +Processing Instructions +PI +'<?' PITarget +(S +(Char* - +(Char* &pic; Char*)))? +&pic; +PITarget +Name - +(('X' | 'x') ('M' | 'm') ('L' | 'l')) + + +PIs are not part of the document's character +data, but must be passed through to the application. The +PI begins with a target (PITarget) used +to identify the application to which the instruction is directed. +The target names "XML", "xml", and so on are +reserved for standardization in this or future versions of this +specification. +The +XML Notation mechanism +may be used for +formal declaration of PI targets. +

      +
      + + +CDATA Sections + +

      CDATA sections +may occur +anywhere character data may occur; they are +used to escape blocks of text containing characters which would +otherwise be recognized as markup. CDATA sections begin with the +string "<![CDATA[" and end with the string +"]]>": + +CDATA Sections +CDSect +CDStart +CData +CDEnd +CDStart +'<![CDATA[' + +CData +(Char* - +(Char* ']]>' Char*)) + + +CDEnd +']]>' + + + +Within a CDATA section, only the CDEnd string is +recognized as markup, so that left angle brackets and ampersands may occur in +their literal form; they need not (and cannot) be escaped using +"&lt;" and "&amp;". CDATA sections +cannot nest. +

      + +

      An example of a CDATA section, in which "<greeting>" and +"</greeting>" +are recognized as character data, not +markup: +<![CDATA[<greeting>Hello, world!</greeting>]]> +

      +
      + + +Prolog and Document Type Declaration + +

      XML documents +may, and should, +begin with an XML declaration which specifies +the version of +XML being used. +For example, the following is a complete XML document, well-formed but not +valid: + +Hello, world! +]]> +and so is this: +Hello, world! +]]> +

      + +

      The version number "1.0" should be used to indicate +conformance to this version of this specification; it is an error +for a document to use the value "1.0" +if it does not conform to this version of this specification. +It is the intent +of the XML working group to give later versions of this specification +numbers other than "1.0", but this intent does not +indicate a +commitment to produce any future versions of XML, nor if any are produced, to +use any particular numbering scheme. +Since future versions are not ruled out, this construct is provided +as a means to allow the possibility of automatic version recognition, should +it become necessary. +Processors may signal an error if they receive documents labeled with +versions they do not support. +

      +

      The function of the markup in an XML document is to describe its +storage and logical structure and to associate attribute-value pairs +with its logical structures. XML provides a mechanism, the document type declaration, to define +constraints on the logical structure and to support the use of +predefined storage units. + +An XML document is +valid if it has an associated document type +declaration and if the document +complies with the constraints expressed in it.

      +

      The document type declaration must appear before +the first element in the document. + +Prolog + +prolog +XMLDecl? +Misc* +(doctypedecl +Misc*)? +XMLDecl +&xmlpio; +VersionInfo +EncodingDecl? +SDDecl? +S? +&pic; + +VersionInfo +S 'version' Eq +(' VersionNum ' +| " VersionNum ") + +Eq +S? '=' S? + +VersionNum +([a-zA-Z0-9_.:] | '-')+ + +Misc +Comment | PI | +S + +

      + +

      The XML +document type declaration +contains or points to +markup declarations +that provide a grammar for a +class of documents. +This grammar is known as a document type definition, +or DTD. +The document type declaration can point to an external subset (a +special kind of +external entity) containing markup +declarations, or can +contain the markup declarations directly in an internal subset, or can do +both. +The DTD for a document consists of both subsets taken +together. +

      +

      +A markup declaration is +an element type declaration, +an attribute-list declaration, +an entity declaration, or +a notation declaration. + +These declarations may be contained in whole or in part +within parameter entities, +as described in the well-formedness and validity constraints below. +For fuller information, see +.

      + +Document Type Definition + +doctypedecl +'<!DOCTYPE' S +Name (S +ExternalID)? +S? ('[' +(markupdecl +| PEReference +| S)* +']' +S?)? '>' + + +markupdecl +elementdecl +| AttlistDecl +| EntityDecl +| NotationDecl +| PI +| Comment + + + + + + + + +

      The markup declarations may be made up in whole or in part of +the replacement text of +parameter entities. +The productions later in this specification for +individual nonterminals (elementdecl, +AttlistDecl, and so on) describe +the declarations after all the parameter entities have been +included.

      + + +Root Element Type +

      +The Name in the document type declaration must +match the element type of the root element. +

      +
      + + +Proper Declaration/PE Nesting +

      Parameter-entity +replacement text must be properly nested +with markup declarations. +That is to say, if either the first character +or the last character of a markup +declaration (markupdecl above) +is contained in the replacement text for a +parameter-entity reference, +both must be contained in the same replacement text.

      +
      + +PEs in Internal Subset +

      In the internal DTD subset, +parameter-entity references +can occur only where markup declarations can occur, not +within markup declarations. (This does not apply to +references that occur in +external parameter entities or to the external subset.) +

      +
      +

      +Like the internal subset, the external subset and +any external parameter entities referred to in the DTD +must consist of a series of complete markup declarations of the types +allowed by the non-terminal symbol +markupdecl, interspersed with white space +or parameter-entity references. +However, portions of the contents +of the +external subset or of external parameter entities may conditionally be ignored +by using +the conditional section +construct; this is not allowed in the internal subset. + + +External Subset + +extSubset +TextDecl? +extSubsetDecl +extSubsetDecl +( +markupdecl +| conditionalSect +| PEReference +| S +)* + + +

      +

      The external subset and external parameter entities also differ +from the internal subset in that in them, +parameter-entity references +are permitted within markup declarations, +not only between markup declarations.

      +

      An example of an XML document with a document type declaration: + + +Hello, world! +]]> +The system identifier +"hello.dtd" gives the URI of a DTD for the document.

      +

      The declarations can also be given locally, as in this +example: + + +]> +Hello, world! +]]> +If both the external and internal subsets are used, the +internal subset is considered to occur before the external subset. + +This has the effect that entity and attribute-list declarations in the +internal subset take precedence over those in the external subset. +

      +
      + + +Standalone Document Declaration +

      Markup declarations can affect the content of the document, +as passed from an XML processor +to an application; examples are attribute defaults and entity +declarations. +The standalone document declaration, +which may appear as a component of the XML declaration, signals +whether or not there are such declarations which appear external to +the document entity. + +Standalone Document Declaration + +SDDecl + +S +'standalone' Eq +(("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"')) + + + +

      +

      +In a standalone document declaration, the value "yes" indicates +that there +are no markup declarations external to the document +entity (either in the DTD external subset, or in an +external parameter entity referenced from the internal subset) +which affect the information passed from the XML processor to +the application. +The value "no" indicates that there are or may be such +external markup declarations. +Note that the standalone document declaration only +denotes the presence of external declarations; the presence, in a +document, of +references to external entities, when those entities are +internally declared, +does not change its standalone status.

      +

      If there are no external markup declarations, the standalone document +declaration has no meaning. +If there are external markup declarations but there is no standalone +document declaration, the value "no" is assumed.

      +

      Any XML document for which standalone="no" holds can +be converted algorithmically to a standalone document, +which may be desirable for some network delivery applications.

      + +Standalone Document Declaration +

      The standalone document declaration must have +the value "no" if any external markup declarations +contain declarations of:

      +

      attributes with default values, if +elements to which +these attributes apply appear in the document without +specifications of values for these attributes, or

      +

      entities (other than &magicents;), +if references to those +entities appear in the document, or

      +
      +

      attributes with values subject to +normalization, where the +attribute appears in the document with a value which will +change as a result of normalization, or

      +
      + +

      element types with element content, +if white space occurs +directly within any instance of those types. +

      +
      + +
      +

      An example XML declaration with a standalone document declaration:<?xml version="&XML.version;" standalone='yes'?>

      +
      + +White Space Handling + +

      In editing XML documents, it is often convenient to use "white space" +(spaces, tabs, and blank lines, denoted by the nonterminal +S in this specification) to +set apart the markup for greater readability. Such white space is typically +not intended for inclusion in the delivered version of the document. +On the other hand, "significant" white space that should be preserved in the +delivered version is common, for example in poetry and +source code.

      +

      An XML processor +must always pass all characters in a document that are not +markup through to the application. A +validating XML processor must also inform the application +which of these characters constitute white space appearing +in element content. +

      +

      A special attribute +named xml:space may be attached to an element +to signal an intention that in that element, +white space should be preserved by applications. +In valid documents, this attribute, like any other, must be +declared if it is used. +When declared, it must be given as an +enumerated type whose only +possible values are "default" and "preserve". +For example:]]>

      +

      The value "default" signals that applications' +default white-space processing modes are acceptable for this element; the +value "preserve" indicates the intent that applications preserve +all the white space. +This declared intent is considered to apply to all elements within the content +of the element where it is specified, unless overriden with another instance +of the xml:space attribute. +

      +

      The root element of any document +is considered to have signaled no intentions as regards application space +handling, unless it provides a value for +this attribute or the attribute is declared with a default value. +

      + +
      + +End-of-Line Handling +

      XML parsed entities are often stored in +computer files which, for editing convenience, are organized into lines. +These lines are typically separated by some combination of the characters +carriage-return (#xD) and line-feed (#xA).

      +

      To simplify the tasks of applications, +wherever an external parsed entity or the literal entity value +of an internal parsed entity contains either the literal +two-character sequence "#xD#xA" or a standalone literal +#xD, an XML processor must +pass to the application the single character #xA. +(This behavior can +conveniently be produced by normalizing all +line breaks to #xA on input, before parsing.) +

      +
      + +Language Identification +

      In document processing, it is often useful to +identify the natural or formal language +in which the content is +written. +A special attribute named +xml:lang may be inserted in +documents to specify the +language used in the contents and attribute values +of any element in an XML document. +In valid documents, this attribute, like any other, must be +declared if it is used. +The values of the attribute are language identifiers as defined +by , "Tags for the Identification of Languages": + +Language Identification +LanguageID +Langcode +('-' Subcode)* +Langcode +ISO639Code | +IanaCode | +UserCode + +ISO639Code +([a-z] | [A-Z]) ([a-z] | [A-Z]) +IanaCode +('i' | 'I') '-' ([a-z] | [A-Z])+ +UserCode +('x' | 'X') '-' ([a-z] | [A-Z])+ +Subcode +([a-z] | [A-Z])+ + +The Langcode may be any of the following: + +

      a two-letter language code as defined by +, "Codes +for the representation of names of languages"

      +

      a language identifier registered with the Internet +Assigned Numbers Authority ; these begin with the +prefix "i-" (or "I-")

      +

      a language identifier assigned by the user, or agreed on +between parties in private use; these must begin with the +prefix "x-" or "X-" in order to ensure that they do not conflict +with names later standardized or registered with IANA

      +

      +

      There may be any number of Subcode segments; if +the first +subcode segment exists and the Subcode consists of two +letters, then it must be a country code from +, "Codes +for the representation of names of countries." +If the first +subcode consists of more than two letters, it must be +a subcode for the language in question registered with IANA, +unless the Langcode begins with the prefix +"x-" or +"X-".

      +

      It is customary to give the language code in lower case, and +the country code (if any) in upper case. +Note that these values, unlike other names in XML documents, +are case insensitive.

      +

      For example: +The quick brown fox jumps over the lazy dog.

      +

      What colour is it?

      +

      What color is it?

      + + Habe nun, ach! Philosophie, + Juristerei, und Medizin + und leider auch Theologie + durchaus studiert mit heißem Bemüh'n. + ]]>

      + +

      The intent declared with xml:lang is considered to apply to +all attributes and content of the element where it is specified, +unless overridden with an instance of xml:lang +on another element within that content.

      + +

      A simple declaration for xml:lang might take +the form +xml:lang NMTOKEN #IMPLIED +but specific default values may also be given, if appropriate. In a +collection of French poems for English students, with glosses and +notes in English, the xml:lang attribute might be declared this way: + + + ]]> +

      + +
      +
      + + + +Logical Structures + +

      Each XML document contains one or more +elements, the boundaries of which are +either delimited by start-tags +and end-tags, or, for empty elements, by an empty-element tag. Each element has a type, +identified by name, sometimes called its "generic +identifier" (GI), and may have a set of +attribute specifications. Each attribute specification +has a name and a value. +

      +Element +element +EmptyElemTag +| STag content +ETag + + + + +

      This specification does not constrain the semantics, use, or (beyond +syntax) names of the element types and attributes, except that names +beginning with a match to (('X'|'x')('M'|'m')('L'|'l')) +are reserved for standardization in this or future versions of this +specification. +

      + +Element Type Match +

      +The Name in an element's end-tag must match +the element type in +the start-tag. +

      +
      + +Element Valid +

      An element is +valid if +there is a declaration matching +elementdecl where the +Name matches the element type, and +one of the following holds:

      + +

      The declaration matches EMPTY and the element has no +content.

      +

      The declaration matches children and +the sequence of +child elements +belongs to the language generated by the regular expression in +the content model, with optional white space (characters +matching the nonterminal S) between each pair +of child elements.

      +

      The declaration matches Mixed and +the content consists of character +data and child elements +whose types match names in the content model.

      +

      The declaration matches ANY, and the types +of any child elements have +been declared.

      +
      +
      + + +Start-Tags, End-Tags, and Empty-Element Tags + +

      The beginning of every +non-empty XML element is marked by a start-tag. + +Start-tag + +STag +'<' Name +(S Attribute)* +S? '>' + + +Attribute +Name Eq +AttValue + + + + + +The Name in +the start- and end-tags gives the +element's type. + +The Name-AttValue pairs are +referred to as +the attribute specifications of the element, +with the +Name in each pair +referred to as the attribute name and +the content of the +AttValue (the text between the +' or " delimiters) +as the attribute value. +

      + +Unique Att Spec +

      +No attribute name may appear more than once in the same start-tag +or empty-element tag. +

      +
      + +Attribute Value Type +

      +The attribute must have been declared; the value must be of the type +declared for it. +(For attribute types, see .) +

      +
      + +No External Entity References +

      +Attribute values cannot contain direct or indirect entity references +to external entities. +

      +
      + +No < in Attribute Values +

      The replacement text of any entity +referred to directly or indirectly in an attribute +value (other than "&lt;") must not contain +a <. +

      +

      An example of a start-tag: +<termdef id="dt-dog" term="dog">

      +

      The end of every element +that begins with a start-tag must +be marked by an end-tag +containing a name that echoes the element's type as given in the +start-tag: + +End-tag + +ETag +'</' Name +S? '>' + + +

      +

      An example of an end-tag:</termdef>

      +

      The +text between the start-tag and +end-tag is called the element's +content: + +Content of Elements + +content +(element | CharData +| Reference | CDSect +| PI | Comment)* + + + +

      +

      If an element is empty, +it must be represented either by a start-tag immediately followed +by an end-tag or by an empty-element tag. +An +empty-element tag takes a special form: + +Tags for Empty Elements + +EmptyElemTag +'<' Name (S +Attribute)* S? +'/>' + + + + +

      +

      Empty-element tags may be used for any element which has no +content, whether or not it is declared using the keyword +EMPTY. +For interoperability, the empty-element +tag must be used, and can only be used, for elements which are +declared EMPTY.

      +

      Examples of empty elements: +<IMG align="left" + src="http://www.w3.org/Icons/WWW/w3c_home" /> +<br></br> +<br/>

      +
      + + +Element Type Declarations + +

      The element structure of an +XML document may, for +validation purposes, +be constrained +using element type and attribute-list declarations. +An element type declaration constrains the element's +content. +

      + +

      Element type declarations often constrain which element types can +appear as children of the element. +At user option, an XML processor may issue a warning +when a declaration mentions an element type for which no declaration +is provided, but this is not an error.

      +

      An element +type declaration takes the form: + +Element Type Declaration + +elementdecl +'<!ELEMENT' S +Name +S +contentspec +S? '>' + +contentspec +'EMPTY' +| 'ANY' +| Mixed +| children + + + + +where the Name gives the element type +being declared. +

      + + +Unique Element Type Declaration +

      +No element type may be declared more than once. +

      +
      + +

      Examples of element type declarations: +<!ELEMENT br EMPTY> +<!ELEMENT p (#PCDATA|emph)* > +<!ELEMENT %name.para; %content.para; > +<!ELEMENT container ANY>

      + + +Element Content + +

      An element type has +element content when elements of that +type must contain only child +elements (no character data), optionally separated by +white space (characters matching the nonterminal +S). + +In this case, the +constraint includes a content model, a simple grammar governing +the allowed types of the child +elements and the order in which they are allowed to appear. +The grammar is built on +content particles (cps), which consist of names, +choice lists of content particles, or +sequence lists of content particles: + +Element-content Models + +children +(choice +| seq) +('?' | '*' | '+')? +cp +(Name +| choice +| seq) +('?' | '*' | '+')? +choice +'(' S? cp +( S? '|' S? cp )* +S? ')' + +seq +'(' S? cp +( S? ',' S? cp )* +S? ')' + + + + +where each Name is the type of an element which may +appear as a child. +Any content +particle in a choice list may appear in the element content at the location where +the choice list appears in the grammar; +content particles occurring in a sequence list must each +appear in the element content in the +order given in the list. +The optional character following a name or list governs +whether the element or the content particles in the list may occur one +or more (+), zero or more (*), or zero or +one times (?). +The absence of such an operator means that the element or content particle +must appear exactly once. +This syntax +and meaning are identical to those used in the productions in this +specification.

      +

      +The content of an element matches a content model if and only if it is +possible to trace out a path through the content model, obeying the +sequence, choice, and repetition operators and matching each element in +the content against an element type in the content model. For compatibility, it is an error +if an element in the document can +match more than one occurrence of an element type in the content model. +For more information, see . + + +

      + +Proper Group/PE Nesting +

      Parameter-entity +replacement text must be properly nested +with parenthetized groups. +That is to say, if either of the opening or closing parentheses +in a choice, seq, or +Mixed construct +is contained in the replacement text for a +parameter entity, +both must be contained in the same replacement text.

      +

      For interoperability, +if a parameter-entity reference appears in a +choice, seq, or +Mixed construct, its replacement text +should not be empty, and +neither the first nor last non-blank +character of the replacement text should be a connector +(| or ,). +

      +
      +

      Examples of element-content models: +<!ELEMENT spec (front, body, back?)> +<!ELEMENT div1 (head, (p | list | note)*, div2*)> +<!ELEMENT dictionary-body (%div.mix; | %dict.mix;)*>

      +
      + + +Mixed Content + +

      An element +type has +mixed content when elements of that type may contain +character data, optionally interspersed with +child elements. +In this case, the types of the child elements +may be constrained, but not their order or their number of occurrences: + +Mixed-content Declaration + +Mixed +'(' S? +'#PCDATA' +(S? +'|' +S? +Name)* +S? +')*' +| '(' S? '#PCDATA' S? ')' + + + + + + +where the Names give the types of elements +that may appear as children. +

      + +No Duplicate Types +

      The same name must not appear more than once in a single mixed-content +declaration. +

      +

      Examples of mixed content declarations: +<!ELEMENT p (#PCDATA|a|ul|b|i|em)*> +<!ELEMENT p (#PCDATA | %font; | %phrase; | %special; | %form;)* > +<!ELEMENT b (#PCDATA)>

      +
      +
      + + +Attribute-List Declarations + +

      Attributes are used to associate +name-value pairs with elements. +Attribute specifications may appear only within start-tags +and empty-element tags; +thus, the productions used to +recognize them appear in . +Attribute-list +declarations may be used: + +

      To define the set of attributes pertaining to a given +element type.

      +

      To establish type constraints for these +attributes.

      +

      To provide default values +for attributes.

      + +

      +

      +Attribute-list declarations specify the name, data type, and default +value (if any) of each attribute associated with a given element type: + +Attribute-list Declaration +AttlistDecl +'<!ATTLIST' S +Name +AttDef* +S? '>' + +AttDef +S Name +S AttType +S DefaultDecl + + +The Name in the +AttlistDecl rule is the type of an element. At +user option, an XML processor may issue a warning if attributes are +declared for an element type not itself declared, but this is not an +error. The Name in the +AttDef rule is +the name of the attribute.

      +

      +When more than one AttlistDecl is provided for a +given element type, the contents of all those provided are merged. When +more than one definition is provided for the same attribute of a +given element type, the first declaration is binding and later +declarations are ignored. +For interoperability, writers of DTDs +may choose to provide at most one attribute-list declaration +for a given element type, at most one attribute definition +for a given attribute name, and at least one attribute definition +in each attribute-list declaration. +For interoperability, an XML processor may at user option +issue a warning when more than one attribute-list declaration is +provided for a given element type, or more than one attribute definition +is provided +for a given attribute, but this is not an error. +

      + + +Attribute Types + +

      XML attribute types are of three kinds: a string type, a +set of tokenized types, and enumerated types. The string type may take +any literal string as a value; the tokenized types have varying lexical +and semantic constraints, as noted: + +Attribute Types + +AttType +StringType +| TokenizedType +| EnumeratedType + + +StringType +'CDATA' + +TokenizedType +'ID' + + + +| 'IDREF' + +| 'IDREFS' + +| 'ENTITY' + +| 'ENTITIES' + +| 'NMTOKEN' + +| 'NMTOKENS' + + + +

      + +ID +

      +Values of type ID must match the +Name production. +A name must not appear more than once in +an XML document as a value of this type; i.e., ID values must uniquely +identify the elements which bear them. +

      +
      + +One ID per Element Type +

      No element type may have more than one ID attribute specified.

      +
      + +ID Attribute Default +

      An ID attribute must have a declared default of #IMPLIED or +#REQUIRED.

      +
      + +IDREF +

      +Values of type IDREF must match +the Name production, and +values of type IDREFS must match +Names; +each Name must match the value of an ID attribute on +some element in the XML document; i.e. IDREF values must +match the value of some ID attribute. +

      +
      + +Entity Name +

      +Values of type ENTITY +must match the Name production, +values of type ENTITIES must match +Names; +each Name must +match the +name of an unparsed entity declared in the +DTD. +

      +
      + +Name Token +

      +Values of type NMTOKEN must match the +Nmtoken production; +values of type NMTOKENS must +match Nmtokens. +

      +
      + +

      Enumerated attributes can take one +of a list of values provided in the declaration. There are two +kinds of enumerated types: + +Enumerated Attribute Types +EnumeratedType +NotationType +| Enumeration + +NotationType +'NOTATION' +S +'(' +S? +Name +(S? '|' S? +Name)* +S? ')' + + +Enumeration +'(' S? +Nmtoken +(S? '|' +S? +Nmtoken)* +S? +')' + + +A NOTATION attribute identifies a +notation, declared in the +DTD with associated system and/or public identifiers, to +be used in interpreting the element to which the attribute +is attached. +

      + + +Notation Attributes +

      +Values of this type must match +one of the notation names included in +the declaration; all notation names in the declaration must +be declared. +

      +
      + +Enumeration +

      +Values of this type +must match one of the Nmtoken tokens in the +declaration. +

      +
      +

      For interoperability, the same +Nmtoken should not occur more than once in the +enumerated attribute types of a single element type. +

      +
      + + +Attribute Defaults + +

      An attribute declaration provides +information on whether +the attribute's presence is required, and if not, how an XML processor should +react if a declared attribute is absent in a document. + +Attribute Defaults + +DefaultDecl +'#REQUIRED' +| '#IMPLIED' +| (('#FIXED' S)? AttValue) + + + + + + + + +

      +

      In an attribute declaration, #REQUIRED means that the +attribute must always be provided, #IMPLIED that no default +value is provided. + +If the +declaration +is neither #REQUIRED nor #IMPLIED, then the +AttValue value contains the declared +default value; the #FIXED keyword states that +the attribute must always have the default value. +If a default value +is declared, when an XML processor encounters an omitted attribute, it +is to behave as though the attribute were present with +the declared default value.

      + +Required Attribute +

      If the default declaration is the keyword #REQUIRED, then +the attribute must be specified for +all elements of the type in the attribute-list declaration. +

      + +Attribute Default Legal +

      +The declared +default value must meet the lexical constraints of the declared attribute type. +

      +
      + +Fixed Attribute Default +

      If an attribute has a default value declared with the +#FIXED keyword, instances of that attribute must +match the default value. +

      + +

      Examples of attribute-list declarations: +<!ATTLIST termdef + id ID #REQUIRED + name CDATA #IMPLIED> +<!ATTLIST list + type (bullets|ordered|glossary) "ordered"> +<!ATTLIST form + method CDATA #FIXED "POST">

      +
      + +Attribute-Value Normalization +

      Before the value of an attribute is passed to the application +or checked for validity, the +XML processor must normalize it as follows: + +

      a character reference is processed by appending the referenced +character to the attribute value

      +

      an entity reference is processed by recursively processing the +replacement text of the entity

      +

      a whitespace character (#x20, #xD, #xA, #x9) is processed by +appending #x20 to the normalized value, except that only a single #x20 +is appended for a "#xD#xA" sequence that is part of an external +parsed entity or the literal entity value of an internal parsed +entity

      +

      other characters are processed by appending them to the normalized +value

      +
      +

      +

      If the declared value is not CDATA, then the XML processor must +further process the normalized attribute value by discarding any +leading and trailing space (#x20) characters, and by replacing +sequences of space (#x20) characters by a single space (#x20) +character.

      +

      +All attributes for which no declaration has been read should be treated +by a non-validating parser as if declared +CDATA. +

      +
      +
      + +Conditional Sections +

      +Conditional sections are portions of the +document type declaration external subset +which are +included in, or excluded from, the logical structure of the DTD based on +the keyword which governs them. + +Conditional Section + +conditionalSect +includeSect +| ignoreSect + + +includeSect +'<![' S? 'INCLUDE' S? '[' + +extSubsetDecl +']]>' + + +ignoreSect +'<![' S? 'IGNORE' S? '[' +ignoreSectContents* +']]>' + + +ignoreSectContents +Ignore +('<![' ignoreSectContents ']]>' +Ignore)* +Ignore +Char* - +(Char* ('<![' | ']]>') +Char*) + + + + +

      +

      Like the internal and external DTD subsets, a conditional section +may contain one or more complete declarations, +comments, processing instructions, +or nested conditional sections, intermingled with white space. +

      +

      If the keyword of the +conditional section is INCLUDE, then the contents of the conditional +section are part of the DTD. +If the keyword of the conditional +section is IGNORE, then the contents of the conditional section are +not logically part of the DTD. +Note that for reliable parsing, the contents of even ignored +conditional sections must be read in order to +detect nested conditional sections and ensure that the end of the +outermost (ignored) conditional section is properly detected. +If a conditional section with a +keyword of INCLUDE occurs within a larger conditional +section with a keyword of IGNORE, both the outer and the +inner conditional sections are ignored.

      +

      If the keyword of the conditional section is a +parameter-entity reference, the parameter entity must be replaced by its +content before the processor decides whether to +include or ignore the conditional section.

      +

      An example: +<!ENTITY % draft 'INCLUDE' > +<!ENTITY % final 'IGNORE' > + +<![%draft;[ +<!ELEMENT book (comments*, title, body, supplements?)> +]]> +<![%final;[ +<!ELEMENT book (title, body, supplements?)> +]]> + +

      +
      + + + + +
      + + + +Physical Structures + +

      An XML document may consist +of one or many storage units. These are called +entities; they all have content and are all +(except for the document entity, see below, and +the external DTD subset) +identified by name. + +Each XML document has one entity +called the document entity, which serves +as the starting point for the XML +processor and may contain the whole document.

      +

      Entities may be either parsed or unparsed. +A parsed entity's +contents are referred to as its +replacement text; +this text is considered an +integral part of the document.

      + +

      An +unparsed entity +is a resource whose contents may or may not be +text, and if text, may not be XML. +Each unparsed entity +has an associated notation, identified by name. +Beyond a requirement +that an XML processor make the identifiers for the entity and +notation available to the application, +XML places no constraints on the contents of unparsed entities. +

      +

      +Parsed entities are invoked by name using entity references; +unparsed entities by name, given in the value of ENTITY +or ENTITIES +attributes.

      +

      General entities +are entities for use within the document content. +In this specification, general entities are sometimes referred +to with the unqualified term entity when this leads +to no ambiguity. +Parameter entities +are parsed entities for use within the DTD. +These two types of entities use different forms of reference and +are recognized in different contexts. +Furthermore, they occupy different namespaces; a parameter entity and +a general entity with the same name are two distinct entities. +

      + + +Character and Entity References +

      +A character reference refers to a specific character in the +ISO/IEC 10646 character set, for example one not directly accessible from +available input devices. + +Character Reference +CharRef +'&#' [0-9]+ ';' +| '&hcro;' [0-9a-fA-F]+ ';' + + + + +Legal Character +

      Characters referred to using character references must +match the production for +Char.

      + +If the character reference begins with "&#x", the digits and +letters up to the terminating ; provide a hexadecimal +representation of the character's code point in ISO/IEC 10646. +If it begins just with "&#", the digits up to the terminating +; provide a decimal representation of the character's +code point. + +

      +

      An entity +reference refers to the content of a named entity. +References to +parsed general entities +use ampersand (&) and semicolon (;) as +delimiters. + +Parameter-entity references use percent-sign (%) and +semicolon +(;) as delimiters. +

      + +Entity Reference +Reference +EntityRef +| CharRef +EntityRef +'&' Name ';' + + + + + +PEReference +'%' Name ';' + + + + + + + +Entity Declared +

      In a document without any DTD, a document with only an internal +DTD subset which contains no parameter entity references, or a document with +"standalone='yes'", +the Name given in the entity reference must +match that in an +entity declaration, except that +well-formed documents need not declare +any of the following entities: &magicents;. +The declaration of a parameter entity must precede any reference to it. +Similarly, the declaration of a general entity must precede any +reference to it which appears in a default value in an attribute-list +declaration.

      +

      Note that if entities are declared in the external subset or in +external parameter entities, a non-validating processor is +not obligated to read +and process their declarations; for such documents, the rule that +an entity must be declared is a well-formedness constraint only +if standalone='yes'.

      +
      + +Entity Declared +

      In a document with an external subset or external parameter +entities with "standalone='no'", +the Name given in the entity reference must match that in an +entity declaration. +For interoperability, valid documents should declare the entities +&magicents;, in the form +specified in . +The declaration of a parameter entity must precede any reference to it. +Similarly, the declaration of a general entity must precede any +reference to it which appears in a default value in an attribute-list +declaration.

      +
      + + +Parsed Entity +

      +An entity reference must not contain the name of an unparsed entity. Unparsed entities may be referred +to only in attribute values declared to +be of type ENTITY or ENTITIES. +

      +
      + +No Recursion +

      +A parsed entity must not contain a recursive reference to itself, +either directly or indirectly. +

      +
      + +In DTD +

      +Parameter-entity references may only appear in the +DTD. +

      +
      +

      Examples of character and entity references: +Type <key>less-than</key> (&hcro;3C;) to save options. +This document was prepared on &docdate; and +is classified &security-level;.

      +

      Example of a parameter-entity reference: + + + +%ISOLat2;]]>

      +
      + + +Entity Declarations + +

      +Entities are declared thus: + +Entity Declaration + +EntityDecl +GEDecl | PEDecl + + +GEDecl +'<!ENTITY' S Name +S EntityDef +S? '>' + +PEDecl +'<!ENTITY' S '%' S +Name S +PEDef S? '>' + + +EntityDef +EntityValue +| (ExternalID +NDataDecl?) + + + +PEDef +EntityValue +| ExternalID + + +The Name identifies the entity in an +entity reference or, in the case of an +unparsed entity, in the value of an ENTITY or ENTITIES +attribute. +If the same entity is declared more than once, the first declaration +encountered is binding; at user option, an XML processor may issue a +warning if entities are declared multiple times. +

      + + +Internal Entities + +

      If +the entity definition is an +EntityValue, +the defined entity is called an internal entity. +There is no separate physical +storage object, and the content of the entity is given in the +declaration. +Note that some processing of entity and character references in the +literal entity value may be required to +produce the correct replacement +text: see . +

      +

      An internal entity is a parsed +entity.

      +

      Example of an internal entity declaration: +<!ENTITY Pub-Status "This is a pre-release of the + specification.">

      +
      + + +External Entities + +

      If the entity is not +internal, it is an external +entity, declared as follows: + +External Entity Declaration + +ExternalID +'SYSTEM' S +SystemLiteral +| 'PUBLIC' S +PubidLiteral +S +SystemLiteral + + +NDataDecl +S 'NDATA' S +Name + + +If the NDataDecl is present, this is a +general unparsed +entity; otherwise it is a parsed entity.

      + +Notation Declared +

      +The Name must match the declared name of a +notation. +

      +
      +

      The +SystemLiteral +is called the entity's system identifier. It is a URI, +which may be used to retrieve the entity. +Note that the hash mark (#) and fragment identifier +frequently used with URIs are not, formally, part of the URI itself; +an XML processor may signal an error if a fragment identifier is +given as part of a system identifier. +Unless otherwise provided by information outside the scope of this +specification (e.g. a special XML element type defined by a particular +DTD, or a processing instruction defined by a particular application +specification), relative URIs are relative to the location of the +resource within which the entity declaration occurs. +A URI might thus be relative to the +document entity, to the entity +containing the external DTD subset, +or to some other external parameter entity. +

      +

      An XML processor should handle a non-ASCII character in a URI by +representing the character in UTF-8 as one or more bytes, and then +escaping these bytes with the URI escaping mechanism (i.e., by +converting each byte to %HH, where HH is the hexadecimal notation of the +byte value).

      +

      +In addition to a system identifier, an external identifier may +include a public identifier. +An XML processor attempting to retrieve the entity's content may use the public +identifier to try to generate an alternative URI. If the processor +is unable to do so, it must use the URI specified in the system +literal. Before a match is attempted, all strings +of white space in the public identifier must be normalized to single space characters (#x20), +and leading and trailing white space must be removed.

      +

      Examples of external entity declarations: +<!ENTITY open-hatch + SYSTEM "http://www.textuality.com/boilerplate/OpenHatch.xml"> +<!ENTITY open-hatch + PUBLIC "-//Textuality//TEXT Standard open-hatch boilerplate//EN" + "http://www.textuality.com/boilerplate/OpenHatch.xml"> +<!ENTITY hatch-pic + SYSTEM "../grafix/OpenHatch.gif" + NDATA gif >

      +
      + +
      + + +Parsed Entities + +The Text Declaration +

      External parsed entities may each begin with a text +declaration. + +Text Declaration + +TextDecl +&xmlpio; +VersionInfo? +EncodingDecl +S? &pic; + + + +

      +

      The text declaration must be provided literally, not +by reference to a parsed entity. +No text declaration may appear at any position other than the beginning of +an external parsed entity.

      +
      + +Well-Formed Parsed Entities +

      The document entity is well-formed if it matches the production labeled +document. +An external general +parsed entity is well-formed if it matches the production labeled +extParsedEnt. +An external parameter +entity is well-formed if it matches the production labeled +extPE. + +Well-Formed External Parsed Entity +extParsedEnt +TextDecl? +content + +extPE +TextDecl? +extSubsetDecl + + +An internal general parsed entity is well-formed if its replacement text +matches the production labeled +content. +All internal parameter entities are well-formed by definition. +

      +

      A consequence of well-formedness in entities is that the logical +and physical structures in an XML document are properly nested; no +start-tag, +end-tag, +empty-element tag, +element, +comment, +processing instruction, +character +reference, or +entity reference +can begin in one entity and end in another.

      +
      + +Character Encoding in Entities + +

      Each external parsed entity in an XML document may use a different +encoding for its characters. All XML processors must be able to read +entities in either UTF-8 or UTF-16. + +

      +

      Entities encoded in UTF-16 must +begin with the Byte Order Mark described by ISO/IEC 10646 Annex E and +Unicode Appendix B (the ZERO WIDTH NO-BREAK SPACE character, #xFEFF). +This is an encoding signature, not part of either the markup or the +character data of the XML document. +XML processors must be able to use this character to +differentiate between UTF-8 and UTF-16 encoded documents.

      +

      Although an XML processor is required to read only entities in +the UTF-8 and UTF-16 encodings, it is recognized that other encodings are +used around the world, and it may be desired for XML processors +to read entities that use them. +Parsed entities which are stored in an encoding other than +UTF-8 or UTF-16 must begin with a text +declaration containing an encoding declaration: + +Encoding Declaration +EncodingDecl +S +'encoding' Eq +('"' EncName '"' | +"'" EncName "'" ) + + +EncName +[A-Za-z] ([A-Za-z0-9._] | '-')* +Encoding name contains only Latin characters + + +In the document entity, the encoding +declaration is part of the XML declaration. +The EncName is the name of the encoding used. +

      + +

      In an encoding declaration, the values +"UTF-8", +"UTF-16", +"ISO-10646-UCS-2", and +"ISO-10646-UCS-4" should be +used for the various encodings and transformations of Unicode / +ISO/IEC 10646, the values +"ISO-8859-1", +"ISO-8859-2", ... +"ISO-8859-9" should be used for the parts of ISO 8859, and +the values +"ISO-2022-JP", +"Shift_JIS", and +"EUC-JP" +should be used for the various encoded forms of JIS X-0208-1997. XML +processors may recognize other encodings; it is recommended that +character encodings registered (as charsets) +with the Internet Assigned Numbers +Authority , other than those just listed, should be +referred to +using their registered names. +Note that these registered names are defined to be +case-insensitive, so processors wishing to match against them +should do so in a case-insensitive +way.

      +

      In the absence of information provided by an external +transport protocol (e.g. HTTP or MIME), +it is an error for an entity including +an encoding declaration to be presented to the XML processor +in an encoding other than that named in the declaration, +for an encoding declaration to occur other than at the beginning +of an external entity, or for +an entity which begins with neither a Byte Order Mark nor an encoding +declaration to use an encoding other than UTF-8. +Note that since ASCII +is a subset of UTF-8, ordinary ASCII entities do not strictly need +an encoding declaration.

      + +

      It is a fatal error when an XML processor +encounters an entity with an encoding that it is unable to process.

      +

      Examples of encoding declarations: +<?xml encoding='UTF-8'?> +<?xml encoding='EUC-JP'?>

      +
      +
      + +XML Processor Treatment of Entities and References +

      The table below summarizes the contexts in which character references, +entity references, and invocations of unparsed entities might appear and the +required behavior of an XML processor in +each case. +The labels in the leftmost column describe the recognition context: + + +

      as a reference +anywhere after the start-tag and +before the end-tag of an element; corresponds +to the nonterminal content.

      + + + +

      as a reference within either the value of an attribute in a +start-tag, or a default +value in an attribute declaration; +corresponds to the nonterminal +AttValue.

      + + +

      as a Name, not a reference, appearing either as +the value of an +attribute which has been declared as type ENTITY, or as one of +the space-separated tokens in the value of an attribute which has been +declared as type ENTITIES.

      +
      + +

      as a reference +within a parameter or internal entity's +literal entity value in +the entity's declaration; corresponds to the nonterminal +EntityValue.

      + +

      as a reference within either the internal or external subsets of the +DTD, but outside +of an EntityValue or +AttValue.

      +
      +

      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Not Recognized +

      Outside the DTD, the % character has no +special significance; thus, what would be parameter entity references in the +DTD are not recognized as markup in content. +Similarly, the names of unparsed entities are not recognized except +when they appear in the value of an appropriately declared attribute. +

      +
      + +Included +

      An entity is +included when its +replacement text is retrieved +and processed, in place of the reference itself, +as though it were part of the document at the location the +reference was recognized. +The replacement text may contain both +character data +and (except for parameter entities) markup, +which must be recognized in +the usual way, except that the replacement text of entities used to escape +markup delimiters (the entities &magicents;) is always treated as +data. (The string "AT&amp;T;" expands to +"AT&T;" and the remaining ampersand is not recognized +as an entity-reference delimiter.) +A character reference is included when the indicated +character is processed in place of the reference itself. +

      +
      + +Included If Validating +

      When an XML processor recognizes a reference to a parsed entity, in order +to validate +the document, the processor must +include its +replacement text. +If the entity is external, and the processor is not +attempting to validate the XML document, the +processor may, but need not, +include the entity's replacement text. +If a non-validating parser does not include the replacement text, +it must inform the application that it recognized, but did not +read, the entity.

      +

      This rule is based on the recognition that the automatic inclusion +provided by the SGML and XML entity mechanism, primarily designed +to support modularity in authoring, is not necessarily +appropriate for other applications, in particular document browsing. +Browsers, for example, when encountering an external parsed entity reference, +might choose to provide a visual indication of the entity's +presence and retrieve it for display only on demand. +

      +
      + +Forbidden +

      The following are forbidden, and constitute +fatal errors: + +

      the appearance of a reference to an +unparsed entity. +

      +

      the appearance of any character or general-entity reference in the +DTD except within an EntityValue or +AttValue.

      +

      a reference to an external entity in an attribute value.

      +
      + +

      +
      + +Included in Literal +

      When an entity reference appears in an +attribute value, or a parameter entity reference appears in a literal entity +value, its replacement text is +processed in place of the reference itself as though it +were part of the document at the location the reference was recognized, +except that a single or double quote character in the replacement text +is always treated as a normal data character and will not terminate the +literal. +For example, this is well-formed: + +]]> +while this is not: +<!ENTITY EndAttr "27'" > +<element attribute='a-&EndAttr;> +

      + +Notify +

      When the name of an unparsed +entity appears as a token in the +value of an attribute of declared type ENTITY or ENTITIES, +a validating processor must inform the +application of the system +and public (if any) +identifiers for both the entity and its associated +notation.

      +
      + +Bypassed +

      When a general entity reference appears in the +EntityValue in an entity declaration, +it is bypassed and left as is.

      +
      + +Included as PE +

      Just as with external parsed entities, parameter entities +need only be included if +validating. +When a parameter-entity reference is recognized in the DTD +and included, its +replacement +text is enlarged by the attachment of one leading and one following +space (#x20) character; the intent is to constrain the replacement +text of parameter +entities to contain an integral number of grammatical tokens in the DTD. +

      +
      + + + +Construction of Internal Entity Replacement Text +

      In discussing the treatment +of internal entities, it is +useful to distinguish two forms of the entity's value. +The literal +entity value is the quoted string actually +present in the entity declaration, corresponding to the +non-terminal EntityValue. +The replacement +text is the content of the entity, after +replacement of character references and parameter-entity +references. +

      + +

      The literal entity value +as given in an internal entity declaration +(EntityValue) may contain character, +parameter-entity, and general-entity references. +Such references must be contained entirely within the +literal entity value. +The actual replacement text that is +included as described above +must contain the replacement text of any +parameter entities referred to, and must contain the character +referred to, in place of any character references in the +literal entity value; however, +general-entity references must be left as-is, unexpanded. +For example, given the following declarations: + + + +]]> +then the replacement text for the entity "book" is: +La Peste: Albert Camus, +© 1947 Éditions Gallimard. &rights; +The general-entity reference "&rights;" would be expanded +should the reference "&book;" appear in the document's +content or an attribute value.

      +

      These simple rules may have complex interactions; for a detailed +discussion of a difficult example, see +. +

      + +
      + +Predefined Entities +

      Entity and character +references can both be used to escape the left angle bracket, +ampersand, and other delimiters. A set of general entities +(&magicents;) is specified for this purpose. +Numeric character references may also be used; they are +expanded immediately when recognized and must be treated as +character data, so the numeric character references +"&#60;" and "&#38;" may be used to +escape < and & when they occur +in character data.

      +

      All XML processors must recognize these entities whether they +are declared or not. +For interoperability, +valid XML documents should declare these +entities, like any others, before using them. +If the entities in question are declared, they must be declared +as internal entities whose replacement text is the single +character being escaped or a character reference to +that character, as shown below. + + + + + +]]> +Note that the < and & characters +in the declarations of "lt" and "amp" +are doubly escaped to meet the requirement that entity replacement +be well-formed. +

      +
      + + +Notation Declarations + +

      Notations identify by +name the format of unparsed +entities, the +format of elements which bear a notation attribute, +or the application to which +a processing instruction is +addressed.

      +

      +Notation declarations +provide a name for the notation, for use in +entity and attribute-list declarations and in attribute specifications, +and an external identifier for the notation which may allow an XML +processor or its client application to locate a helper application +capable of processing data in the given notation. + +Notation Declarations +NotationDecl +'<!NOTATION' S Name +S +(ExternalID | +PublicID) +S? '>' +PublicID +'PUBLIC' S +PubidLiteral + + +

      +

      XML processors must provide applications with the name and external +identifier(s) of any notation declared and referred to in an attribute +value, attribute definition, or entity declaration. They may +additionally resolve the external identifier into the +system identifier, +file name, or other information needed to allow the +application to call a processor for data in the notation described. (It +is not an error, however, for XML documents to declare and refer to +notations for which notation-specific applications are not available on +the system where the XML processor or application is running.)

      +
      + + + +Document Entity + +

      The document +entity serves as the root of the entity +tree and a starting-point for an XML +processor. +This specification does +not specify how the document entity is to be located by an XML +processor; unlike other entities, the document entity has no name and might +well appear on a processor input stream +without any identification at all.

      +
      + + + + + + +Conformance + + +Validating and Non-Validating Processors +

      Conforming XML processors fall into two +classes: validating and non-validating.

      +

      Validating and non-validating processors alike must report +violations of this specification's well-formedness constraints +in the content of the +document entity and any +other parsed entities that +they read.

      +

      +Validating processors must report +violations of the constraints expressed by the declarations in the +DTD, and +failures to fulfill the validity constraints given +in this specification. + +To accomplish this, validating XML processors must read and process the entire +DTD and all external parsed entities referenced in the document. +

      +

      Non-validating processors are required to check only the +document entity, including +the entire internal DTD subset, for well-formedness. + +While they are not required to check the document for validity, +they are required to +process all the declarations they read in the +internal DTD subset and in any parameter entity that they +read, up to the first reference +to a parameter entity that they do not read; that is to +say, they must +use the information in those declarations to +normalize attribute values, +include the replacement text of +internal entities, and supply +default attribute values. + +They must not process +entity declarations or +attribute-list declarations +encountered after a reference to a parameter entity that is not +read, since the entity may have contained overriding declarations. +

      +
      + +Using XML Processors +

      The behavior of a validating XML processor is highly predictable; it +must read every piece of a document and report all well-formedness and +validity violations. +Less is required of a non-validating processor; it need not read any +part of the document other than the document entity. +This has two effects that may be important to users of XML processors: + +

      Certain well-formedness errors, specifically those that require +reading external entities, may not be detected by a non-validating processor. +Examples include the constraints entitled +Entity Declared, +Parsed Entity, and +No Recursion, as well +as some of the cases described as +forbidden in +.

      +

      The information passed from the processor to the application may +vary, depending on whether the processor reads +parameter and external entities. +For example, a non-validating processor may not +normalize attribute values, +include the replacement text of +internal entities, or supply +default attribute values, +where doing so depends on having read declarations in +external or parameter entities.

      + +

      +

      For maximum reliability in interoperating between different XML +processors, applications which use non-validating processors should not +rely on any behaviors not required of such processors. +Applications which require facilities such as the use of default +attributes or internal entities which are declared in external +entities should use validating XML processors.

      +
      +
      + + +Notation + +

      The formal grammar of XML is given in this specification using a simple +Extended Backus-Naur Form (EBNF) notation. Each rule in the grammar defines +one symbol, in the form +symbol ::= expression

      +

      Symbols are written with an initial capital letter if they are +defined by a regular expression, or with an initial lower case letter +otherwise. +Literal strings are quoted. + +

      + +

      Within the expression on the right-hand side of a rule, the following +expressions are used to match strings of one or more characters: + + + +

      where N is a hexadecimal integer, the +expression matches the character in ISO/IEC 10646 whose canonical +(UCS-4) +code value, when interpreted as an unsigned binary number, has +the value indicated. The number of leading zeros in the +#xN form is insignificant; the number of leading +zeros in the corresponding code value +is governed by the character +encoding in use and is not significant for XML.

      + + + +

      matches any character +with a value in the range(s) indicated (inclusive).

      +
      + + +

      matches any character +with a value outside the +range indicated.

      +
      + + +

      matches any character +with a value not among the characters given.

      +
      + + +

      matches a literal string matching +that given inside the double quotes.

      +
      + + +

      matches a literal string matching +that given inside the single quotes.

      +
      + +These symbols may be combined to match more complex patterns as follows, +where A and B represent simple expressions: + + + +

      expression is treated as a unit +and may be combined as described in this list.

      +
      + + +

      matches A or nothing; optional A.

      +
      + + +

      matches A followed by B.

      +
      + + +

      matches A or B but not both.

      +
      + + +

      matches any string that matches A but does not match +B. +

      +
      + + +

      matches one or more occurrences of A.

      +
      + + +

      matches zero or more occurrences of A.

      +
      + +
      +Other notations used in the productions are: + + + +

      comment.

      +
      + + +

      well-formedness constraint; this identifies by name a +constraint on +well-formed documents +associated with a production.

      +
      + + +

      validity constraint; this identifies by name a constraint on +valid documents associated with +a production.

      +
      +
      +

      + + + + + + + + + +References + +Normative References + + + +(Internet Assigned Numbers Authority) Official Names for +Character Sets, +ed. Keld Simonsen et al. +See ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets. + + + +IETF (Internet Engineering Task Force). +RFC 1766: Tags for the Identification of Languages, +ed. H. Alvestrand. +1995. + + + +(International Organization for Standardization). +ISO 639:1988 (E). +Code for the representation of names of languages. +[Geneva]: International Organization for +Standardization, 1988. + + +(International Organization for Standardization). +ISO 3166-1:1997 (E). +Codes for the representation of names of countries and their subdivisions +— Part 1: Country codes +[Geneva]: International Organization for +Standardization, 1997. + +ISO +(International Organization for Standardization). +ISO/IEC 10646-1993 (E). Information technology — Universal +Multiple-Octet Coded Character Set (UCS) — Part 1: +Architecture and Basic Multilingual Plane. +[Geneva]: International Organization for +Standardization, 1993 (plus amendments AM 1 through AM 7). + + +The Unicode Consortium. +The Unicode Standard, Version 2.0. +Reading, Mass.: Addison-Wesley Developers Press, 1996. + + + + + +Other References + + + +Aho, Alfred V., +Ravi Sethi, and Jeffrey D. Ullman. +Compilers: Principles, Techniques, and Tools. +Reading: Addison-Wesley, 1986, rpt. corr. 1988. + + +Berners-Lee, T., R. Fielding, and L. Masinter. +Uniform Resource Identifiers (URI): Generic Syntax and +Semantics. +1997. +(Work in progress; see updates to RFC1738.) + +Brüggemann-Klein, Anne. +Regular Expressions into Finite Automata. +Extended abstract in I. Simon, Hrsg., LATIN 1992, +S. 97-98. Springer-Verlag, Berlin 1992. +Full Version in Theoretical Computer Science 120: 197-213, 1993. + + + +Brüggemann-Klein, Anne, +and Derick Wood. +Deterministic Regular Languages. +Universität Freiburg, Institut für Informatik, +Bericht 38, Oktober 1991. + + +James Clark. +Comparison of SGML and XML. See +http://www.w3.org/TR/NOTE-sgml-xml-971215. + + +IETF (Internet Engineering Task Force). +RFC 1738: Uniform Resource Locators (URL), +ed. T. Berners-Lee, L. Masinter, M. McCahill. +1994. + + + +IETF (Internet Engineering Task Force). +RFC 1808: Relative Uniform Resource Locators, +ed. R. Fielding. +1995. + + + +IETF (Internet Engineering Task Force). +RFC 2141: URN Syntax, +ed. R. Moats. +1997. + + +ISO +(International Organization for Standardization). +ISO 8879:1986(E). Information processing — Text and Office +Systems — Standard Generalized Markup Language (SGML). First +edition — 1986-10-15. [Geneva]: International Organization for +Standardization, 1986. + + + +ISO +(International Organization for Standardization). +ISO/IEC 10744-1992 (E). Information technology — +Hypermedia/Time-based Structuring Language (HyTime). + +[Geneva]: International Organization for +Standardization, 1992. +Extended Facilities Annexe. +[Geneva]: International Organization for +Standardization, 1996. + + + + + + + + +Character Classes +

      Following the characteristics defined in the Unicode standard, +characters are classed as base characters (among others, these +contain the alphabetic characters of the Latin alphabet, without +diacritics), ideographic characters, and combining characters (among +others, this class contains most diacritics); these classes combine +to form the class of letters. Digits and extenders are +also distinguished. + +Characters + +Letter +BaseChar +| Ideographic +BaseChar +[#x0041-#x005A] +| [#x0061-#x007A] +| [#x00C0-#x00D6] +| [#x00D8-#x00F6] +| [#x00F8-#x00FF] +| [#x0100-#x0131] +| [#x0134-#x013E] +| [#x0141-#x0148] +| [#x014A-#x017E] +| [#x0180-#x01C3] +| [#x01CD-#x01F0] +| [#x01F4-#x01F5] +| [#x01FA-#x0217] +| [#x0250-#x02A8] +| [#x02BB-#x02C1] +| #x0386 +| [#x0388-#x038A] +| #x038C +| [#x038E-#x03A1] +| [#x03A3-#x03CE] +| [#x03D0-#x03D6] +| #x03DA +| #x03DC +| #x03DE +| #x03E0 +| [#x03E2-#x03F3] +| [#x0401-#x040C] +| [#x040E-#x044F] +| [#x0451-#x045C] +| [#x045E-#x0481] +| [#x0490-#x04C4] +| [#x04C7-#x04C8] +| [#x04CB-#x04CC] +| [#x04D0-#x04EB] +| [#x04EE-#x04F5] +| [#x04F8-#x04F9] +| [#x0531-#x0556] +| #x0559 +| [#x0561-#x0586] +| [#x05D0-#x05EA] +| [#x05F0-#x05F2] +| [#x0621-#x063A] +| [#x0641-#x064A] +| [#x0671-#x06B7] +| [#x06BA-#x06BE] +| [#x06C0-#x06CE] +| [#x06D0-#x06D3] +| #x06D5 +| [#x06E5-#x06E6] +| [#x0905-#x0939] +| #x093D +| [#x0958-#x0961] +| [#x0985-#x098C] +| [#x098F-#x0990] +| [#x0993-#x09A8] +| [#x09AA-#x09B0] +| #x09B2 +| [#x09B6-#x09B9] +| [#x09DC-#x09DD] +| [#x09DF-#x09E1] +| [#x09F0-#x09F1] +| [#x0A05-#x0A0A] +| [#x0A0F-#x0A10] +| [#x0A13-#x0A28] +| [#x0A2A-#x0A30] +| [#x0A32-#x0A33] +| [#x0A35-#x0A36] +| [#x0A38-#x0A39] +| [#x0A59-#x0A5C] +| #x0A5E +| [#x0A72-#x0A74] +| [#x0A85-#x0A8B] +| #x0A8D +| [#x0A8F-#x0A91] +| [#x0A93-#x0AA8] +| [#x0AAA-#x0AB0] +| [#x0AB2-#x0AB3] +| [#x0AB5-#x0AB9] +| #x0ABD +| #x0AE0 +| [#x0B05-#x0B0C] +| [#x0B0F-#x0B10] +| [#x0B13-#x0B28] +| [#x0B2A-#x0B30] +| [#x0B32-#x0B33] +| [#x0B36-#x0B39] +| #x0B3D +| [#x0B5C-#x0B5D] +| [#x0B5F-#x0B61] +| [#x0B85-#x0B8A] +| [#x0B8E-#x0B90] +| [#x0B92-#x0B95] +| [#x0B99-#x0B9A] +| #x0B9C +| [#x0B9E-#x0B9F] +| [#x0BA3-#x0BA4] +| [#x0BA8-#x0BAA] +| [#x0BAE-#x0BB5] +| [#x0BB7-#x0BB9] +| [#x0C05-#x0C0C] +| [#x0C0E-#x0C10] +| [#x0C12-#x0C28] +| [#x0C2A-#x0C33] +| [#x0C35-#x0C39] +| [#x0C60-#x0C61] +| [#x0C85-#x0C8C] +| [#x0C8E-#x0C90] +| [#x0C92-#x0CA8] +| [#x0CAA-#x0CB3] +| [#x0CB5-#x0CB9] +| #x0CDE +| [#x0CE0-#x0CE1] +| [#x0D05-#x0D0C] +| [#x0D0E-#x0D10] +| [#x0D12-#x0D28] +| [#x0D2A-#x0D39] +| [#x0D60-#x0D61] +| [#x0E01-#x0E2E] +| #x0E30 +| [#x0E32-#x0E33] +| [#x0E40-#x0E45] +| [#x0E81-#x0E82] +| #x0E84 +| [#x0E87-#x0E88] +| #x0E8A +| #x0E8D +| [#x0E94-#x0E97] +| [#x0E99-#x0E9F] +| [#x0EA1-#x0EA3] +| #x0EA5 +| #x0EA7 +| [#x0EAA-#x0EAB] +| [#x0EAD-#x0EAE] +| #x0EB0 +| [#x0EB2-#x0EB3] +| #x0EBD +| [#x0EC0-#x0EC4] +| [#x0F40-#x0F47] +| [#x0F49-#x0F69] +| [#x10A0-#x10C5] +| [#x10D0-#x10F6] +| #x1100 +| [#x1102-#x1103] +| [#x1105-#x1107] +| #x1109 +| [#x110B-#x110C] +| [#x110E-#x1112] +| #x113C +| #x113E +| #x1140 +| #x114C +| #x114E +| #x1150 +| [#x1154-#x1155] +| #x1159 +| [#x115F-#x1161] +| #x1163 +| #x1165 +| #x1167 +| #x1169 +| [#x116D-#x116E] +| [#x1172-#x1173] +| #x1175 +| #x119E +| #x11A8 +| #x11AB +| [#x11AE-#x11AF] +| [#x11B7-#x11B8] +| #x11BA +| [#x11BC-#x11C2] +| #x11EB +| #x11F0 +| #x11F9 +| [#x1E00-#x1E9B] +| [#x1EA0-#x1EF9] +| [#x1F00-#x1F15] +| [#x1F18-#x1F1D] +| [#x1F20-#x1F45] +| [#x1F48-#x1F4D] +| [#x1F50-#x1F57] +| #x1F59 +| #x1F5B +| #x1F5D +| [#x1F5F-#x1F7D] +| [#x1F80-#x1FB4] +| [#x1FB6-#x1FBC] +| #x1FBE +| [#x1FC2-#x1FC4] +| [#x1FC6-#x1FCC] +| [#x1FD0-#x1FD3] +| [#x1FD6-#x1FDB] +| [#x1FE0-#x1FEC] +| [#x1FF2-#x1FF4] +| [#x1FF6-#x1FFC] +| #x2126 +| [#x212A-#x212B] +| #x212E +| [#x2180-#x2182] +| [#x3041-#x3094] +| [#x30A1-#x30FA] +| [#x3105-#x312C] +| [#xAC00-#xD7A3] + +Ideographic +[#x4E00-#x9FA5] +| #x3007 +| [#x3021-#x3029] + +CombiningChar +[#x0300-#x0345] +| [#x0360-#x0361] +| [#x0483-#x0486] +| [#x0591-#x05A1] +| [#x05A3-#x05B9] +| [#x05BB-#x05BD] +| #x05BF +| [#x05C1-#x05C2] +| #x05C4 +| [#x064B-#x0652] +| #x0670 +| [#x06D6-#x06DC] +| [#x06DD-#x06DF] +| [#x06E0-#x06E4] +| [#x06E7-#x06E8] +| [#x06EA-#x06ED] +| [#x0901-#x0903] +| #x093C +| [#x093E-#x094C] +| #x094D +| [#x0951-#x0954] +| [#x0962-#x0963] +| [#x0981-#x0983] +| #x09BC +| #x09BE +| #x09BF +| [#x09C0-#x09C4] +| [#x09C7-#x09C8] +| [#x09CB-#x09CD] +| #x09D7 +| [#x09E2-#x09E3] +| #x0A02 +| #x0A3C +| #x0A3E +| #x0A3F +| [#x0A40-#x0A42] +| [#x0A47-#x0A48] +| [#x0A4B-#x0A4D] +| [#x0A70-#x0A71] +| [#x0A81-#x0A83] +| #x0ABC +| [#x0ABE-#x0AC5] +| [#x0AC7-#x0AC9] +| [#x0ACB-#x0ACD] +| [#x0B01-#x0B03] +| #x0B3C +| [#x0B3E-#x0B43] +| [#x0B47-#x0B48] +| [#x0B4B-#x0B4D] +| [#x0B56-#x0B57] +| [#x0B82-#x0B83] +| [#x0BBE-#x0BC2] +| [#x0BC6-#x0BC8] +| [#x0BCA-#x0BCD] +| #x0BD7 +| [#x0C01-#x0C03] +| [#x0C3E-#x0C44] +| [#x0C46-#x0C48] +| [#x0C4A-#x0C4D] +| [#x0C55-#x0C56] +| [#x0C82-#x0C83] +| [#x0CBE-#x0CC4] +| [#x0CC6-#x0CC8] +| [#x0CCA-#x0CCD] +| [#x0CD5-#x0CD6] +| [#x0D02-#x0D03] +| [#x0D3E-#x0D43] +| [#x0D46-#x0D48] +| [#x0D4A-#x0D4D] +| #x0D57 +| #x0E31 +| [#x0E34-#x0E3A] +| [#x0E47-#x0E4E] +| #x0EB1 +| [#x0EB4-#x0EB9] +| [#x0EBB-#x0EBC] +| [#x0EC8-#x0ECD] +| [#x0F18-#x0F19] +| #x0F35 +| #x0F37 +| #x0F39 +| #x0F3E +| #x0F3F +| [#x0F71-#x0F84] +| [#x0F86-#x0F8B] +| [#x0F90-#x0F95] +| #x0F97 +| [#x0F99-#x0FAD] +| [#x0FB1-#x0FB7] +| #x0FB9 +| [#x20D0-#x20DC] +| #x20E1 +| [#x302A-#x302F] +| #x3099 +| #x309A + +Digit +[#x0030-#x0039] +| [#x0660-#x0669] +| [#x06F0-#x06F9] +| [#x0966-#x096F] +| [#x09E6-#x09EF] +| [#x0A66-#x0A6F] +| [#x0AE6-#x0AEF] +| [#x0B66-#x0B6F] +| [#x0BE7-#x0BEF] +| [#x0C66-#x0C6F] +| [#x0CE6-#x0CEF] +| [#x0D66-#x0D6F] +| [#x0E50-#x0E59] +| [#x0ED0-#x0ED9] +| [#x0F20-#x0F29] + +Extender +#x00B7 +| #x02D0 +| #x02D1 +| #x0387 +| #x0640 +| #x0E46 +| #x0EC6 +| #x3005 +| [#x3031-#x3035] +| [#x309D-#x309E] +| [#x30FC-#x30FE] + + + + +

      +

      The character classes defined here can be derived from the +Unicode character database as follows: + + +

      Name start characters must have one of the categories Ll, Lu, +Lo, Lt, Nl.

      + + +

      Name characters other than Name-start characters +must have one of the categories Mc, Me, Mn, Lm, or Nd.

      +
      + +

      Characters in the compatibility area (i.e. with character code +greater than #xF900 and less than #xFFFE) are not allowed in XML +names.

      +
      + +

      Characters which have a font or compatibility decomposition (i.e. those +with a "compatibility formatting tag" in field 5 of the database -- +marked by field 5 beginning with a "<") are not allowed.

      +
      + +

      The following characters are treated as name-start characters +rather than name characters, because the property file classifies +them as Alphabetic: [#x02BB-#x02C1], #x0559, #x06E5, #x06E6.

      +
      + +

      Characters #x20DD-#x20E0 are excluded (in accordance with +Unicode, section 5.14).

      +
      + +

      Character #x00B7 is classified as an extender, because the +property list so identifies it.

      +
      + +

      Character #x0387 is added as a name character, because #x00B7 +is its canonical equivalent.

      +
      + +

      Characters ':' and '_' are allowed as name-start characters.

      +
      + +

      Characters '-' and '.' are allowed as name characters.

      +
      + +

      +
      + +XML and SGML + +

      XML is designed to be a subset of SGML, in that every +valid XML document should also be a +conformant SGML document. +For a detailed comparison of the additional restrictions that XML places on +documents beyond those of SGML, see . +

      +
      + +Expansion of Entity and Character References +

      This appendix contains some examples illustrating the +sequence of entity- and character-reference recognition and +expansion, as specified in .

      +

      +If the DTD contains the declaration +An ampersand (&#38;) may be escaped +numerically (&#38;#38;) or with a general entity +(&amp;).

      " > +]]> +then the XML processor will recognize the character references +when it parses the entity declaration, and resolve them before +storing the following string as the +value of the entity "example": +An ampersand (&) may be escaped +numerically (&#38;) or with a general entity +(&amp;).

      +]]>
      +A reference in the document to "&example;" +will cause the text to be reparsed, at which time the +start- and end-tags of the "p" element will be recognized +and the three references will be recognized and expanded, +resulting in a "p" element with the following content +(all data, no delimiters or markup): + +

      +

      A more complex example will illustrate the rules and their +effects fully. In the following example, the line numbers are +solely for reference. + +2 +4 +5 ' > +6 %xx; +7 ]> +8 This sample shows a &tricky; method. +]]> +This produces the following: + +

      in line 4, the reference to character 37 is expanded immediately, +and the parameter entity "xx" is stored in the symbol +table with the value "%zz;". Since the replacement text +is not rescanned, the reference to parameter entity "zz" +is not recognized. (And it would be an error if it were, since +"zz" is not yet declared.)

      +

      in line 5, the character reference "&#60;" is +expanded immediately and the parameter entity "zz" is +stored with the replacement text +"<!ENTITY tricky "error-prone" >", +which is a well-formed entity declaration.

      +

      in line 6, the reference to "xx" is recognized, +and the replacement text of "xx" (namely +"%zz;") is parsed. The reference to "zz" +is recognized in its turn, and its replacement text +("<!ENTITY tricky "error-prone" >") is parsed. +The general entity "tricky" has now been +declared, with the replacement text "error-prone".

      +

      +in line 8, the reference to the general entity "tricky" is +recognized, and it is expanded, so the full content of the +"test" element is the self-describing (and ungrammatical) string +This sample shows a error-prone method. +

      + +

      +
      + +Deterministic Content Models +

      For compatibility, it is +required +that content models in element type declarations be deterministic. +

      + +

      SGML +requires deterministic content models (it calls them +"unambiguous"); XML processors built using SGML systems may +flag non-deterministic content models as errors.

      +

      For example, the content model ((b, c) | (b, d)) is +non-deterministic, because given an initial b the parser +cannot know which b in the model is being matched without +looking ahead to see which element follows the b. +In this case, the two references to +b can be collapsed +into a single reference, making the model read +(b, (c | d)). An initial b now clearly +matches only a single name in the content model. The parser doesn't +need to look ahead to see what follows; either c or +d would be accepted.

      +

      More formally: a finite state automaton may be constructed from the +content model using the standard algorithms, e.g. algorithm 3.5 +in section 3.9 +of Aho, Sethi, and Ullman . +In many such algorithms, a follow set is constructed for each +position in the regular expression (i.e., each leaf +node in the +syntax tree for the regular expression); +if any position has a follow set in which +more than one following position is +labeled with the same element type name, +then the content model is in error +and may be reported as an error. +

      +

      Algorithms exist which allow many but not all non-deterministic +content models to be reduced automatically to equivalent deterministic +models; see Brüggemann-Klein 1991 .

      +
      + +Autodetection of Character Encodings +

      The XML encoding declaration functions as an internal label on each +entity, indicating which character encoding is in use. Before an XML +processor can read the internal label, however, it apparently has to +know what character encoding is in use—which is what the internal label +is trying to indicate. In the general case, this is a hopeless +situation. It is not entirely hopeless in XML, however, because XML +limits the general case in two ways: each implementation is assumed +to support only a finite set of character encodings, and the XML +encoding declaration is restricted in position and content in order to +make it feasible to autodetect the character encoding in use in each +entity in normal cases. Also, in many cases other sources of information +are available in addition to the XML data stream itself. +Two cases may be distinguished, +depending on whether the XML entity is presented to the +processor without, or with, any accompanying +(external) information. We consider the first case first. +

      +

      +Because each XML entity not in UTF-8 or UTF-16 format must +begin with an XML encoding declaration, in which the first characters +must be '<?xml', any conforming processor can detect, +after two to four octets of input, which of the following cases apply. +In reading this list, it may help to know that in UCS-4, '<' is +"#x0000003C" and '?' is "#x0000003F", and the Byte +Order Mark required of UTF-16 data streams is "#xFEFF".

      +

      + + +

      00 00 00 3C: UCS-4, big-endian machine (1234 order)

      + + +

      3C 00 00 00: UCS-4, little-endian machine (4321 order)

      +
      + +

      00 00 3C 00: UCS-4, unusual octet order (2143)

      +
      + +

      00 3C 00 00: UCS-4, unusual octet order (3412)

      +
      + +

      FE FF: UTF-16, big-endian

      +
      + +

      FF FE: UTF-16, little-endian

      +
      + +

      00 3C 00 3F: UTF-16, big-endian, no Byte Order Mark +(and thus, strictly speaking, in error)

      +
      + +

      3C 00 3F 00: UTF-16, little-endian, no Byte Order Mark +(and thus, strictly speaking, in error)

      +
      + +

      3C 3F 78 6D: UTF-8, ISO 646, ASCII, some part of ISO 8859, +Shift-JIS, EUC, or any other 7-bit, 8-bit, or mixed-width encoding +which ensures that the characters of ASCII have their normal positions, +width, +and values; the actual encoding declaration must be read to +detect which of these applies, but since all of these encodings +use the same bit patterns for the ASCII characters, the encoding +declaration itself may be read reliably +

      +
      + +

      4C 6F A7 94: EBCDIC (in some flavor; the full +encoding declaration must be read to tell which code page is in +use)

      +
      + +

      other: UTF-8 without an encoding declaration, or else +the data stream is corrupt, fragmentary, or enclosed in +a wrapper of some kind

      +
      + +

      +

      +This level of autodetection is enough to read the XML encoding +declaration and parse the character-encoding identifier, which is +still necessary to distinguish the individual members of each family +of encodings (e.g. to tell UTF-8 from 8859, and the parts of 8859 +from each other, or to distinguish the specific EBCDIC code page in +use, and so on). +

      +

      +Because the contents of the encoding declaration are restricted to +ASCII characters, a processor can reliably read the entire encoding +declaration as soon as it has detected which family of encodings is in +use. Since in practice, all widely used character encodings fall into +one of the categories above, the XML encoding declaration allows +reasonably reliable in-band labeling of character encodings, even when +external sources of information at the operating-system or +transport-protocol level are unreliable. +

      +

      +Once the processor has detected the character encoding in use, it can +act appropriately, whether by invoking a separate input routine for +each case, or by calling the proper conversion function on each +character of input. +

      +

      +Like any self-labeling system, the XML encoding declaration will not +work if any software changes the entity's character set or encoding +without updating the encoding declaration. Implementors of +character-encoding routines should be careful to ensure the accuracy +of the internal and external information used to label the entity. +

      +

      The second possible case occurs when the XML entity is accompanied +by encoding information, as in some file systems and some network +protocols. +When multiple sources of information are available, + +their relative +priority and the preferred method of handling conflict should be +specified as part of the higher-level protocol used to deliver XML. +Rules for the relative priority of the internal label and the +MIME-type label in an external header, for example, should be part of the +RFC document defining the text/xml and application/xml MIME types. In +the interests of interoperability, however, the following rules +are recommended. + +

      If an XML entity is in a file, the Byte-Order Mark +and encoding-declaration PI are used (if present) to determine the +character encoding. All other heuristics and sources of information +are solely for error recovery. +

      +

      If an XML entity is delivered with a +MIME type of text/xml, then the charset parameter +on the MIME type determines the +character encoding method; all other heuristics and sources of +information are solely for error recovery. +

      +

      If an XML entity is delivered +with a +MIME type of application/xml, then the Byte-Order Mark and +encoding-declaration PI are used (if present) to determine the +character encoding. All other heuristics and sources of +information are solely for error recovery. +

      + +These rules apply only in the absence of protocol-level documentation; +in particular, when the MIME types text/xml and application/xml are +defined, the recommendations of the relevant RFC will supersede +these rules. +

      + +
      + + +W3C XML Working Group + +

      This specification was prepared and approved for publication by the +W3C XML Working Group (WG). WG approval of this specification does +not necessarily imply that all WG members voted for its approval. +The current and former members of the XML WG are:

      + + +Jon Bosak, SunChair +James ClarkTechnical Lead +Tim Bray, Textuality and NetscapeXML Co-editor +Jean Paoli, MicrosoftXML Co-editor +C. M. Sperberg-McQueen, U. of Ill.XML +Co-editor +Dan Connolly, W3CW3C Liaison +Paula Angerstein, Texcel +Steve DeRose, INSO +Dave Hollander, HP +Eliot Kimber, ISOGEN +Eve Maler, ArborText +Tom Magliery, NCSA +Murray Maloney, Muzmo and Grif +Makoto Murata, Fuji Xerox Information Systems +Joel Nava, Adobe +Conleth O'Connell, Vignette +Peter Sharpe, SoftQuad +John Tigue, DataChannel + + +
      +
      + + diff --git a/test/relaxng/tutor11_2.rng b/test/relaxng/tutor11_2.rng new file mode 100644 index 0000000..038ac48 --- /dev/null +++ b/test/relaxng/tutor11_2.rng @@ -0,0 +1,14 @@ + + + + + + + + + + + + + diff --git a/test/relaxng/tutor11_2_1.xml b/test/relaxng/tutor11_2_1.xml new file mode 100644 index 0000000..2b84ebb --- /dev/null +++ b/test/relaxng/tutor11_2_1.xml @@ -0,0 +1,5 @@ + + This should work + diff --git a/test/relaxng/tutor11_2_2.xml b/test/relaxng/tutor11_2_2.xml new file mode 100644 index 0000000..b06b4e7 --- /dev/null +++ b/test/relaxng/tutor11_2_2.xml @@ -0,0 +1,5 @@ + + This should fail + diff --git a/test/relaxng/tutor11_2_3.xml b/test/relaxng/tutor11_2_3.xml new file mode 100644 index 0000000..c849c03 --- /dev/null +++ b/test/relaxng/tutor11_2_3.xml @@ -0,0 +1,5 @@ + + This should fail + diff --git a/test/relaxng/tutor11_3.rng b/test/relaxng/tutor11_3.rng new file mode 100644 index 0000000..72e041d --- /dev/null +++ b/test/relaxng/tutor11_3.rng @@ -0,0 +1,15 @@ + + + + + + + + + + default + preserve + + + + diff --git a/test/relaxng/tutor11_3_1.xml b/test/relaxng/tutor11_3_1.xml new file mode 100644 index 0000000..01b47fc --- /dev/null +++ b/test/relaxng/tutor11_3_1.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/tutor11_4.rng b/test/relaxng/tutor11_4.rng new file mode 100644 index 0000000..158c7a5 --- /dev/null +++ b/test/relaxng/tutor11_4.rng @@ -0,0 +1,19 @@ + + + + + + xml:space + + + + + + + + default + preserve + + + + diff --git a/test/relaxng/tutor11_4_1.xml b/test/relaxng/tutor11_4_1.xml new file mode 100644 index 0000000..01b47fc --- /dev/null +++ b/test/relaxng/tutor11_4_1.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/tutor12_1.rng b/test/relaxng/tutor12_1.rng new file mode 100644 index 0000000..3902687 --- /dev/null +++ b/test/relaxng/tutor12_1.rng @@ -0,0 +1,13 @@ + + + + Information about a single email address. + + + + + + + + + diff --git a/test/relaxng/tutor12_1_1.xml b/test/relaxng/tutor12_1_1.xml new file mode 100644 index 0000000..693df18 --- /dev/null +++ b/test/relaxng/tutor12_1_1.xml @@ -0,0 +1,3 @@ + + foobar + diff --git a/test/relaxng/tutor13_1.rng b/test/relaxng/tutor13_1.rng new file mode 100644 index 0000000..f945142 --- /dev/null +++ b/test/relaxng/tutor13_1.rng @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor13_1_1.xml b/test/relaxng/tutor13_1_1.xml new file mode 100644 index 0000000..a5cb437 --- /dev/null +++ b/test/relaxng/tutor13_1_1.xml @@ -0,0 +1,12 @@ + +

      start

      +
      +
      + تاريخ درج: چهارشنبه، 29 اسفند 1386 + - Wednesday, March 19, 2008      + نويسنده:       + دفعات مشاهده: 2688 + بار      كد: 341 +
      +
      + + + +
      +
      +
      +
      + +
      + + + +
      + عکس محصول هنر یکی از همکاران است. روی آن کلیک کند.
      +
      + +
      +

      +
        نظرات + کاربران:
      • حاجی Ø¬ÙØ±Ø³ÙˆÙ†:
        4/5/2008 - + 7:08:00 PM
        با درود به شما... Ø¨Ø¯ÙˆÙ† هیچ گونه طنز + Ùˆ دستکاری توسط حاجی دایی نقل شده است این ها Ú©Ù‡ در بیان جدی + اینقدر طناز هستند وای به روزی Ú©Ù‡ بخواهند طنز بنویسند. ببین + شهیر جان Ú†Ù‡ کسانی سر جوانان ما را با اصلاحات 8 سال گول + مالیدند.. این ها را بخوانید :::::((دبيركل مجمع اسلامي بانوان + Ú¯ÙØª: به نظر مي‌رسد آقاي خاتمي قصد ÙØ§ØµÙ„Ù‡ Ú¯Ø±ÙØªÙ† از تندروها + را ندارد Ùˆ تا اين روند ادامه دارد ما با تندروها در يك ائتلا٠+ شركت نمي‌كنيم. به گزارش خبرنگار سياسي خبرگزاري ÙØ§Ø±Ø³ØŒ + ÙØ§Ø·Ù…Ù‡ كروبي دبيركل مجمع اسلامي بانوان عصر امروز شنبه در جمع + خبرنگاران رسانه‌هاي گروهي روند برگزاري انتخابات هشتمين + دوره مجلس شوراي اسلامي را تحليل كرد. وي ضمن برشمردن مرزبندي خود + با جربان تندروي اصلاح طلب Ø§ÙØ²ÙˆØ¯: اين ما نيستيم كه با ستاد ائتلا٠+ اصلاح طلبان اختلا٠داريم اما انحصارگري برخي از گروه‌ها + جريان اصلاحات را دچار از هم‌گسستگي كرد. داوطلب هشتمين دوره + انتخابات مجلس شوراي اسلامي درباره تشكيل ستاد مردمي اصلاحات خاطر + نشان كرد: آقاي خاتمي به توصيه‌ها Ùˆ نظرات دوستانشان توجهي + ندارند Ùˆ اگر اين امكان وجود داشت كه همه جريانات اصلاح طلب زير + يك عنوان ÙØ¹Ø§Ù„يت كنند حتما از آن استقبال مي‌كرديم اما به + نظر نمي‌رسد كه آقاي خاتمي بخواهد از تندروها ÙØ§ØµÙ„Ù‡ بگيرد Ùˆ + تا اين روند ادامه داشته باشد ما با تندروها در يك ائتلا٠شركت + نمي‌كنيم. وي در مورد شركت تشكل متبوع خود در مرحله بعدي + انتخابات مجلس Ú¯ÙØª: برخي از كانديداهاي نزديك به ما به مرحله دوم + انتخابات راه ÙŠØ§ÙØªÙ‡‌اند Ùˆ ما با تمام توان در اين مرحله از + آنها Ø¯ÙØ§Ø¹ خواهيم كرد. كروبي تاكيد كرد: گروهي انحصارگر با + اقدامات غيرعقلاني Ùˆ تندروي‌هاي خود اتوبوس اصلاحات را در دره + سرنگون كردند)))) Ù„Ø·ÙØ§ پیدا کنید پرتقال ÙØ±ÙˆØ´ را......واقعا این + ها Ù…ÛŒ خواهند دوباره وارد مجلس Ùˆ دولت شوند.....اووووووووووووووو + لالالالالالا........نه!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! البته این + مجمع بانوان بیشتر به Ø³ÙØ±Ù‡ های نذر Ùˆ سبزی پاک کردن های خونه + مامان بزرگ Ùˆ خاله زنک بازی های عصر قاجاریه Ùˆ مجلس پا تختی Ùˆ + حنا بندون عروس شباهت دارد. مهندس جان گویا ما از دست این ....Ùˆ + عیالش باید برویم گوشه همان ابدارخانه Ùˆ شاغلام Ùˆ چایی + دیشلمه....شما تشری٠نمی آورید؟


      • سیاوش:
        4/3/2008 - 9:28:00 PM
        مرد هزار چهره مرد هزار چهره کیست؟شخصیتی ساخته Ùˆ پرداخته مهران مدیری، پیمان قاسم خانی Ùˆ دیگر نویسندگان؟ تنها Ù‡Ø¯ÙØ´ آنست Ú©Ù‡ چند روز تعطیلات، مارا سرگم کند Ùˆ دیگر هیچ؟ مرد هزار چهره یک طنز است یک طنز تلخ، برداشتی واقعی از جامعه ایرانی. من جوانم پس دردآشنای جوانانم Ùˆ خود را با خود Ùˆ دیگر جوانان طر٠می کنم بسیار اند جوانانی Ú©Ù‡ مصداق مرد هزار چهره هستند جوانانی سودا زده یا به قول خود مسعود "جو گیر" Ú©Ù‡ هر با محصولی کهنه را با تعریÙÛŒ جدید به آنها ارائه کنند چنان با تمام Ùˆ جود Ù…ÛŒ پذیرند Ú©Ù‡ گویی راه ÙØ§Ø¦Ù‚ آمدن بر تمام مشکلاتشان را ÛŒØ§ÙØªÙ‡ اند Ùˆ Ù…ÛŒ خرند، خواه این تحÙÙ‡ تئوری بر Ú¯Ø±ÙØªÙ‡ از تÙکرات خشک Ùˆ ÙØ³ÛŒÙ„ÛŒ گروهی باشد یا مدل ملیجک وار لباسی در پشت ویترین ÙØ±ÙˆØ´Ú¯Ø§Ù‡. مهم نیست Ú†Ù‡ باشد! مهم نیست دلیل انتخابش Ú†Ù‡ باشد! مهم نیست نتیجه این انتخاب چیست! تنها مهم است Ú©Ù‡ Ù…ÛŒ گویند از این Ø·Ø±Ù Ø¨ÙØ±Ù…ائید!حال این Ø¨ÙØ±Ù…ائید Ú†Ù‡ معنایی دارد باز هم مهم نیست!!! وای بر ما Ú©Ù‡ نه خود را Ù…ÛŒ شناسیم Ùˆ نه در جهت شناخت خویش قدم Ù…ÛŒ گذاریم. وای بر ما Ú©Ù‡ دیگر حتی ندای درون خویش را نمی توانیم بشنویم. وای بر ما Ú©Ù‡ نمی دانیم Ú†Ù‡ Ù…ÛŒ خواهیم Ùˆ هر بار Ú©Ù‡ چیزی Ù…ÛŒ خواهیم Ùˆ در مسیر وصال پا Ù…ÛŒ گذاریم به میانه راه نرسیده چنان مجذوب زرق Ùˆ برق راههای دیگر Ù…ÛŒ شویم Ú©Ù‡ مبدا Ùˆ مقصد را یکجا ÙØ±Ø§Ù…وش Ù…ÛŒ کنیم. وای بر ما Ú©Ù‡ نمی توانیم در برابر هر آنچه در مقابل انسانیت ما ایستاده "نه"بگوییم. درست است Ú©Ù‡ ما جوانان به تنهایی مقصر نیستیم اما چون شروع تقصیریم پس Ù…ÛŒ توانیم از ابتدا مانع مشکل هم باشیم. با احترام سیاوش

        +بسیار زیبا سیاوش جان. درود بر تو. شهیر


      • احسان __ خط سوم:
        4/3/2008 - 8:21:00 PM
        با سلام Ùˆ ادای احترام وکسب اجازه از شهیر عزیز . از عماد جان عزیزم بخاطر زحمتی Ú©Ù‡ کشیدند Ùˆ اطلاعات خوبی Ú©Ù‡ دادند ØŒ به سهم خودم تشکر Ù…ÛŒ کنم . با کمال شرمندگی از اینکه "بدون هماهنگی" Ùˆ " اجازه ای قبلی شما" Ùˆ "بسرعت" ØŒ معدود اشتباهات تایپی را Ú©Ù‡ با توجه به حجم مطلب ØŒ امری کاملا اجتناب ناپذیر است ØŒ سعی کردم Ú©Ù‡ اصلاح کنم ØŒ از شما پوزش Ù…ÛŒ خواهم . البته عماد جان عزیزم ØŒ بد نیست بدانید Ú©Ù‡ در میزان اشتباه در تایپ هرگز به پای بنده نخواهید رسید ! شاهد ادعای حقیر، شهیر Ùˆ حسین جان عزیزم هستند Ú©Ù‡ خبردارند Ú©Ù‡ چگونه بنده در یک Ùقره عملیات تایپ ØŒ دو ØµÙØ­Ù‡ ای کامل را جا انداختم !!! کاÙÛŒ است بپرسید ØŒ در نهایت صداقت ØŒ بر این رکورد بی نظیر Ùˆ تاریخی شهادت خواهند داد ! باز هم از زحمات عماد جان Ùˆ نیز سوالات خوب حسین جان تشکر Ù…ÛŒ کنم Ú©Ù‡ ان وعده ای مقاله ای عیدانه ای Ù…ÙØµÙ„ شهیر را در باره ای زنده یاد مرحوم مصدق ØŒ در وسع خود بجای اوردند . ضمن انکه هیچکدام از دوستان، این زحمت ارزشمند عماد جان را دلیل ان نخواهند دانست Ú©Ù‡ شهیرعزیز بعد از بازگشت از Ù…Ø³Ø§ÙØ±Øª ØŒ سر ÙØ±ØµØª وعده ای خود را عمل نکنند . مشتاقانه اما نه عجولانه ØŒ منتظر مقاله ای شهیر هم خواهیم ماند. با احترام : احسان

        +احسان جان، من Ùکر کردم قضیه شامل مرور زمان شده است. تا امروز Ú©Ù‡ نرسیده ام دست به این پروژه بزنم. اگر عشق به Ø­ÙØ¸ ارتباط با شما ها نبود تا روز 25 اپریل به خودم مرخصی Ù…ÛŒ دادم. در این Ø³ÙØ± خدا Ù…ÛŒ داند چند هزار مایل در 3 قاره را پیموده ام. از پوست Ú©Ù„ÙØª خودم در عجبم Ú©Ù‡ چطوری تونستم اخبار را دنبال کنم Ùˆ چند مقاله کوتاه بنویسم. Ú¯Ø±ÙØªØ§Ø±ÛŒ زیاد بود. شهیر


      • عماد Û²Û´ ساله از اصÙهان:
        4/3/2008 - 7:14:00 PM
        شهير جان اگر طولانی شد ببخشيد چاره ای نبود احسان جان از کمک شما نيز در ويرايش اين مطلب متشکرم اميدوارم حسين عزیز نيز راضی باشد

        +ممنون از زحمتی که کشیدی عماد جان. شهیر


      • حسین:
        4/3/2008 - 7:04:00 PM
        سلام آقا شهیر با اجازه شما خواستم از عماد عزیز وهمچنین سرور بزرگوار آقااحسان تشکر کنم وبه آقا عمادبگویم دستت درد نکنه بابت زحمتت ÙˆÙوق العاده عالی بود.قسمتی Ú©Ù‡ نوشتید" خود دکتر مصدق در تقریراتشان به اشتباه بودن تصمیمشان مبنی بر Ø§Ø³ØªØ¹ÙØ§Ø¡ اقرار Ù…ÛŒ کنند"واقعا جالب وحاکی از روح بلند دکتر مصدق هست .بااینکه سوالات خرد وریز زیاد هست اما از اینکه به سوالات عمده من با توجه به کتاب دکتر مصدق پاسخ دادید بازهم تشکر میکنم .میخواستم این پاسخ را برای نویسنده مقاله رجانیوز copy&paste
        +کنم Ú¯ÙØªÙ… شاید هرچند به احتمال ضعی٠برای سایت دوست داشتنی آقا شهیر مشکلی پیش +آید.خواستم با حذ٠نام آقا شهیر وشما از کامنت اینکار را بکنم احتمال دادم راضی +نباشید .بنابراین ÙØ¹Ù„ا علیرغم میل ÙØ±Ø§ÙˆØ§Ù† از اینکار صر٠نظر کردم .بهرحال بازهم +ممنون ومتشکر


      • حاجی Ø¬ÙØ±Ø³ÙˆÙ†:
        4/3/2008 - 6:06:00 PM FOO!
        با درود از قدیم Ú¯ÙØªÙ‡ اند Ú©Ù‡ یک کلمه هم از مادر عروس بشنوید. بنابراین به Ø§ÙØ§Ø¶Ø§Øª اخیر کشور دوست Ùˆ برادر Ùˆ سوسیالیست چین عزیز Ùˆ جان جانان کمونیست عنایت Ø¨ÙØ±Ù…ایید: رادیو ÙØ±Ø¯Ø§: ديپلمات ها در وين Ú¯ÙØªÙ‡ اند: Ú©Ù‡ چين، از Ù…Ø®Ø§Ù„ÙØ§Ù† تشديد تحريم های ايران در شورای امينت، اطلاعات خود درباره ارتباط برنامه هسته ای تهران با تلاش برای دستيابی سلاح اتمی را در اختيار آژانس بين المللی انرژی اتمی قرار داده است. العجب!!!!!! انتخاب :با وجود اینکه چین به شدت با تحریمهای شورای امنیت سازمان ملل علیه ایران Ù…Ø®Ø§Ù„ÙØª Ù…ÛŒ کرد، اطلاعاتی در رابطه با ÙØ¹Ø§Ù„یتهای هسته ای ایران در اختیار مقامات آژانس بین المللی انرژی اتمی قرار داده Ú©Ù‡ بر اساس آن ایران در تلاش برای دست یابی به سلاح های اتمی است. به گزارش خبرنگار سرویس بین الملل خبرگزاری انتخاب به نقل از ÙØ§Ú©Ø³ نیوز؛جان بولتون ،نمایندۀ پیشین ایالات متحدۀ امریکا در سازمان ملل،در این باره Ú¯ÙØª: اقدام اینچنینی از سوی چین به دلیل روابط نظامی Ú©Ù‡ میان دو کشور [ایران Ùˆ چین] برقرار است، بسیار قابل توجه است. خبرنگار انتخاب Ù…ÛŒ Ø§ÙØ²Ø§ÛŒØ¯Ø› در حالی چین به این اقدام دست زده است Ú©Ù‡ همکاری های تجاری Ùˆ نظامی ایران با این کشور بطور بی سابقه ای Ø§ÙØ²Ø§ÛŒØ´ ÛŒØ§ÙØªÙ‡ است. یا باب الحوائج!!!!! رادیو زمانه: چین با وجود Ù…Ø®Ø§Ù„ÙØª با تحریم‌های شدید شورای امنیت علیه تهران، اطلاعاتی درباره تلاش‌های تهران برای ساخت تسلیحات هسته‌ای به آژانس بین‌المللی انرژی اتمی ارائه کرده است. آسوشیتدپرس با اعلام این خبر به نقل از چند دیپلمات آشنا با پرونده هسته‌ای ایران نوشت، Ù¾Ú©Ù† به همراه مسکو همواره بر سر راه شورای امنیت Ùˆ امریکا برای اعمال مجازات های سخت تر علیه تهران به دلیل مقاومت هسته ای این کشور به صورت یک مانع عمل کرده‌اند. این گزارش Ù…ÛŒ Ø§ÙØ²Ø§ÛŒØ¯ØŒ تصمیم چین برای ارائه اطلاعاتی جهت Ø§Ø³ØªÙØ§Ø¯Ù‡ در تحقیقات آژانس انرژی اتمی درباره برنامه تسلیحات هسته‌ای ایران، گویای Ø§ÙØ²Ø§ÛŒØ´ نارضایتی بین‌المللی درباره برنامه هسته‌ای جمهوری اسلامی است Ú©Ù‡ حتی تلاش برای ساخت چنین تسلیحاتی را نیز تکذیب Ù…ÛŒ‌کند. بر اساس این گزارش، دو دیپلمات بلندپایه Ú©Ù‡ ارتباط نزدیکی با آژانس بین‌المللی انرژی اتمی دارند این اقدام چین را برملا کرده‌اند. آژانس بین‌المللی انرژی اتمی از اظهار نظر در این باره خودداری کرده است. العجب. من مامور Ùˆ معذور..حالا از پدر عروس چند کلمه بشنوید: سخنگوی آژانس بین المللی انرژی اتمی ادعای برخی از رسانه های غربی را درباره این Ú©Ù‡ چین اطلاعاتی را درباره برنامه هسته ای ایران در اختیار آژانس قرار داده است ØŒ تکذیب کرد . ملیسا Ùلمینگ در Ú¯ÙØª Ùˆ Ú¯Ùˆ با خبرنگار واحد مرکزی خبر تاکید کرد : آژانس بین المللی انرژی اتمی هرگز درباره اطلاعات محرمانه Ø¯Ø±ÛŒØ§ÙØªÛŒ از کشورها اظهار نظر نمی کند . ÙˆÛŒ Ú¯ÙØª: هم diff --git a/test/HTML/wired.html b/test/HTML/wired.html new file mode 100644 index 0000000..3d00d28 --- /dev/null +++ b/test/HTML/wired.html @@ -0,0 +1,516 @@ + +Top Stories News from Wired News + + + + + + +
        + + + +
        + +
        True to the Original
        + + + + + + + + + + + + + + + + + + + + + + + + + +

           updated 10:15 a.m.  15.Oct.99.PDT
        + + + + + + + + + + +
        + + + + + + + + +
        +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
        SECTIONS
        Business
        Culture
        Technology
        Politics
        +WIRE SERVICE NEWS
        Top Headlines
        Sports
        Finance
        + FREE DELIVERY
        + + + + +
        +
        + + + + + + + + + +  +
        + + +
        + STOCKS
        Get Quote:
         
        +Financial Services
        +
        +
        +
        + + + Datek + Wired Index Fund + internet.com Index Fund + GetSmart's MortgageFinder +
        Today's Summary
        Wired Index | All Indexes
        Portfolios
        FIND A BOOK
        + + + + + + + + + + +
        +
        + + + +
        + + + +
        +

        + Powered by barnesandnoble.com + +
        + + +

        + +
        WIRED + MAGAZINE
        + + +
        + +Wired Magazine
        + +Issue 7.11 +
        +
        + + +Subscribe to Wired.
        Special offer!
        + + +
        +
        + HOTWIRED
        +Frontdoor
        +Webmonkey
        +Webmonkey Guides
        +RGB Gallery
        +Animation Express
        +Suck.com
        +
        + HOTBOT
        +Search
        +Shopping
        +
        +
        + + + Wired News staff

        + + + + Contact us
        + + +

        + + Wired News delivered
        by PalmPilot,
        Outlook Express,
        In-Box Direct,
        +or PointCast

        + + + +
        + + + + + + + + + + + + + + + +
        +
        +

        + + + + +Nomad's Land

        Homeless, but ID'd, in Seattle
        8:15 a.m. The city council approves a plan to track the homeless by a numbering system, saying it'll improve services. The implications worry privacy advocates, naturally. By Craig Bicknell.
        in Politics
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
         HITS & MISC.
         
        + + Calendar of E-Vents
        Ongoing goings-on.

        Rants & Raves
        Readers on Apple's G4 ... AOL's passwords ... MS vs. Linux.

         CURRENT HOO-HA
          + +
        + +MP3 Rocks the Web
        Download the sound.
        Sponsored by Musicmaker


        + +The Wireless World
        Networking gets unplugged.
        Sponsored by Ericsson


        + +Digital Hollywood
        The buzz of tech.

        + +IPO Outlook
        Deals in the pipeline.
        Sponsored by Sun


        + +E-Biz
        Business unusual.
        Sponsored by IBM


        + +Med-Tech Center
        From the bleeding edge.
        Sponsored by WebMD


        + +The Linux Effect
        Not just for geeks.


        + +Executive Summary
        CEOs, COOs, CIOs unite.
        Sponsored by Vignette

        + +Making the Grade
        Reading, writing, and ROM.
        Sponsored by U of Phoenix


        + +Infostructure
        An IS/IT resource
        Sponsored by Sprint

        + +Y2K Watch
        Tick... Tick... Tick...

        + +More Hoo-Ha
         
        + +
         MEANWHILE...
          +
        + + + +Führer Furor

        +Contruction workers in Berlin opened an old wound in the German psyche this week when they accidentally stumbled across Adolf Hitler's bunker while excavating near the Brandenburg Gate. The bunker, just south of the Gate, was where Hitler and his closest associates barricaded themselves as the Red Army approached Berlin in the waning days of World War II. It is also where the Führer and his bride, Eva Braun, committed suicide rather than fall into the hands of the Russians. Although the bunker's location has never been a mystery, it has been sealed off since the end of the war to keep neo-Nazis from turning it into a shrine. +

      • More from Lycos

        +
      • + + + 
        + +
        + +Other Top Stories
        +
        + + +Wall Street Keeps Reeling
        10:15 a.m. The Dow and Nasdaq suffer sizeable losses during the first half of Friday trading. Why? Wholesale prices are the highest this decade, and Greenspan is concerned about stock prices.
        in Reuters

        The Market's Madness
        9:10 a.m. The bulls and the bears are in the midst of a Battle Royale, and all this turbulence is not a healthy thing. So say the experts.
        in Reuters

        'Want a Loan? What's Your Race?'
        3:00 a.m. The Federal Reserve is in the middle of changing banking regulations to let banks collect data on the race, sex, religion, and national origin of their customers. By Declan McCullagh.
        in Politics

        Music Regs: A Bagful of Noise
        3:00 a.m. The struggle to come up with a digital music standard that would minimize download piracy is pushing right up against the holiday gift-giving season. By Jennifer Sullivan.
        in Business

        Can't Beat 'Em? Green 'Em
        3:00 a.m. High-tech companies are notoriously environmentally unfriendly, and a growing number of "Greenies" are trying to change things from the inside ... with varying results. By Chris Gaither.
        in Technology

        Y2K Cloud Over MS Office
        3:00 a.m. Windows NT sales remain strong, but corporate clients are wary of upgrading to MS Office 2000. Analysts say that means strong, but not stunning, Microsoft earnings.
        in Business

        Med-Tech
        Biochips for Custom Chemo
        3:00 a.m. Different cancer patients need different medicine, but doctors can rarely determine the best match. New biochip technology promises chemotherapy tailored to a tumor's genetic make-up. By Kristen Philipkoski.
        in Technology

        High Stakes in Priceline Suit
        3:00 a.m. It's not just another round of Redmond-bashing. A Priceline.com lawsuit against Microsoft's Expedia.com may have a big impact on how Net companies protect their business models. By Joanna Glasner.
        in Business

        Biodiversity Merges Online
        3:00 a.m. The far-flung databases on global biodiversity get together to form one monster database. Soon the red-eyed tree frog will be eyeing those Swedish lingonberries. From the Environment News Service.
        in Technology

        + + + + +
        +Elsewhere Today
        +
        + + +FCC: Hands-Off on Broadband
        The Industry Standard

        White House Lashes Out on Treaty
        Lycos

        Steve Jobs at 44
        Time

        Computers May Run on Gas
        ZDNN

        Much Is Free in the Wired World
        The New York Times (Registration Required)

        Melissa: I'm Baaaack
        USA Today

        Domain Owners Surrender Privacy
        MSNBC

        Dividing to Conquer in VC Game
        The Washington Post

        The Red Hat Diaries
        Salon

        Screensaver to Predict Climate
        BBC News

        + + + + + +
        + +
        + + + +
        +
        + +

        + +

        +Send us feedback + |  +Work at Wired Digital + |  +Advertise with us +
        +About Wired Digital + |  +Our Privacy Policy
        + + +

        Copyright © 1994-99 Wired Digital Inc. All rights reserved. + +
        + + + + + + + + + + +

        + + +
        + + +
        + + + diff --git a/test/SVG/4rects.xml b/test/SVG/4rects.xml new file mode 100755 index 0000000..b8d1a65 --- /dev/null +++ b/test/SVG/4rects.xml @@ -0,0 +1,11 @@ + + + + Four separate rectangles + + + + + + diff --git a/test/SVG/a-valid.xml b/test/SVG/a-valid.xml new file mode 100755 index 0000000..233b78c --- /dev/null +++ b/test/SVG/a-valid.xml @@ -0,0 +1,10 @@ + + + + This valid svg document draws a triangle which is a hyperlink + + +

        + + diff --git a/test/SVG/a-wf.xml b/test/SVG/a-wf.xml new file mode 100755 index 0000000..756e9c6 --- /dev/null +++ b/test/SVG/a-wf.xml @@ -0,0 +1,9 @@ + + + This well formed svg document draws a triangle which is a hyperlink + + +

        + + diff --git a/test/SVG/bike.xml b/test/SVG/bike.xml new file mode 100755 index 0000000..796b996 --- /dev/null +++ b/test/SVG/bike.xml @@ -0,0 +1,41 @@ + + + + + Kona Lavadome mountain bike + + This picture shows a mountain bike, a human-propelled, + multi-terrain vehicle. While it can be succesfully used on moorland, + forest, roads, and large hills it is not actually suitable for going + up mountains. + + + + 14/12 gauge double butted spoke + + + black anodised low torsion hub + + + twin wall, eyeletted rim + + + 8 speed, wide ratio gearing + + + double cross lacing of 32 spokes + + + + + Front wheel + The front wheel provides grip, steering and some shock absorption + + + + + + + + diff --git a/test/SVG/circle.xml b/test/SVG/circle.xml new file mode 100755 index 0000000..44e70e7 --- /dev/null +++ b/test/SVG/circle.xml @@ -0,0 +1,11 @@ + + + + This is a blue circle with a red outline + + + + + diff --git a/test/SVG/defs.xml b/test/SVG/defs.xml new file mode 100755 index 0000000..0bf5f27 --- /dev/null +++ b/test/SVG/defs.xml @@ -0,0 +1,14 @@ + + + + + + + + + + Defining things for later use + + + diff --git a/test/SVG/desc.xml b/test/SVG/desc.xml new file mode 100755 index 0000000..87838db --- /dev/null +++ b/test/SVG/desc.xml @@ -0,0 +1,14 @@ + + + + + + Company sales by region + + + This is a bar chart which shows + company sales by region. + + + + diff --git a/test/SVG/ellipse.xml b/test/SVG/ellipse.xml new file mode 100755 index 0000000..2097ef5 --- /dev/null +++ b/test/SVG/ellipse.xml @@ -0,0 +1,10 @@ + + + + This is an ellipse, axis aligned and centered on the origin + + + + + diff --git a/test/SVG/flower2.xml b/test/SVG/flower2.xml new file mode 100755 index 0000000..10064c9 --- /dev/null +++ b/test/SVG/flower2.xml @@ -0,0 +1,44 @@ + + + + This sample SVG file draws a flower + + + + + + diff --git a/test/SVG/gradient.xml b/test/SVG/gradient.xml new file mode 100755 index 0000000..328d5e8 --- /dev/null +++ b/test/SVG/gradient.xml @@ -0,0 +1,16 @@ + + + + Gradient example + + + + + + + + + + + + diff --git a/test/SVG/group01.xml b/test/SVG/group01.xml new file mode 100755 index 0000000..906a220 --- /dev/null +++ b/test/SVG/group01.xml @@ -0,0 +1,15 @@ + + + + Two groups, each of two rectangles + + + + + + + + + + diff --git a/test/SVG/group02.xml b/test/SVG/group02.xml new file mode 100755 index 0000000..082474a --- /dev/null +++ b/test/SVG/group02.xml @@ -0,0 +1,13 @@ + + + + Two named groups + + + + + + + + diff --git a/test/SVG/group03.xml b/test/SVG/group03.xml new file mode 100755 index 0000000..ad25e93 --- /dev/null +++ b/test/SVG/group03.xml @@ -0,0 +1,13 @@ + + + + Groups can nest + + + + + + + + diff --git a/test/SVG/image-valid.xml b/test/SVG/image-valid.xml new file mode 100755 index 0000000..320e8d2 --- /dev/null +++ b/test/SVG/image-valid.xml @@ -0,0 +1,11 @@ + + + + This graphic links to an external image + + + My image + + diff --git a/test/SVG/image-wf.xml b/test/SVG/image-wf.xml new file mode 100755 index 0000000..6d13b33 --- /dev/null +++ b/test/SVG/image-wf.xml @@ -0,0 +1,11 @@ + + + This links to an external image + + + My image + + diff --git a/test/SVG/lin-gradient.xml b/test/SVG/lin-gradient.xml new file mode 100755 index 0000000..8ace2b4 --- /dev/null +++ b/test/SVG/lin-gradient.xml @@ -0,0 +1,16 @@ + + + + Linear gradient example + + + + + + + + + + + diff --git a/test/SVG/marker.xml b/test/SVG/marker.xml new file mode 100755 index 0000000..62716a2 --- /dev/null +++ b/test/SVG/marker.xml @@ -0,0 +1,28 @@ + + + + + + + + + An double-headed arrow example using markers + + + + + + + + + + + + + + + diff --git a/test/SVG/mask.xml b/test/SVG/mask.xml new file mode 100755 index 0000000..f81aca1 --- /dev/null +++ b/test/SVG/mask.xml @@ -0,0 +1,13 @@ + + + + Example of using a mask + + + + + + + + diff --git a/test/SVG/mathswitch.xml b/test/SVG/mathswitch.xml new file mode 100755 index 0000000..4d28f33 --- /dev/null +++ b/test/SVG/mathswitch.xml @@ -0,0 +1,32 @@ + + + This example uses the switch element to provide a + fallback graphical representation of an equation, if + MathML is not supported. + + + + + + + + + + + + + + Formula goes here + + + + diff --git a/test/SVG/parentns.xml b/test/SVG/parentns.xml new file mode 100755 index 0000000..ba410e1 --- /dev/null +++ b/test/SVG/parentns.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/test/SVG/path01.xml b/test/SVG/path01.xml new file mode 100755 index 0000000..4590b6c --- /dev/null +++ b/test/SVG/path01.xml @@ -0,0 +1,5 @@ + + + + diff --git a/test/SVG/path02.xml b/test/SVG/path02.xml new file mode 100755 index 0000000..a91aa61 --- /dev/null +++ b/test/SVG/path02.xml @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/test/SVG/patternfill.xml b/test/SVG/patternfill.xml new file mode 100755 index 0000000..292f4f7 --- /dev/null +++ b/test/SVG/patternfill.xml @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/test/SVG/polyline.xml b/test/SVG/polyline.xml new file mode 100755 index 0000000..e6f7b62 --- /dev/null +++ b/test/SVG/polyline.xml @@ -0,0 +1,9 @@ + + + + A sample polyline, and equivalent path + + + + diff --git a/test/SVG/private.xml b/test/SVG/private.xml new file mode 100755 index 0000000..3601365 --- /dev/null +++ b/test/SVG/private.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + This chart includes private data in another namespace + + + diff --git a/test/SVG/rad-gradient.xml b/test/SVG/rad-gradient.xml new file mode 100755 index 0000000..9ad7683 --- /dev/null +++ b/test/SVG/rad-gradient.xml @@ -0,0 +1,17 @@ + + + + Radial gradient example with three gradient stops + + + + + + + + + + + + diff --git a/test/SVG/rectangle.xml b/test/SVG/rectangle.xml new file mode 100755 index 0000000..e6cdeea --- /dev/null +++ b/test/SVG/rectangle.xml @@ -0,0 +1,10 @@ + + + + This is a rectangle + + + + + diff --git a/test/SVG/richdesc.xml b/test/SVG/richdesc.xml new file mode 100755 index 0000000..ccf8c8d --- /dev/null +++ b/test/SVG/richdesc.xml @@ -0,0 +1,12 @@ + + + + This is an example SVG file + The global description uses markup from the + mydoc namespace. + + + + + diff --git a/test/SVG/script.xml b/test/SVG/script.xml new file mode 100755 index 0000000..600365e --- /dev/null +++ b/test/SVG/script.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/test/SVG/structure01.xml b/test/SVG/structure01.xml new file mode 100755 index 0000000..dec9143 --- /dev/null +++ b/test/SVG/structure01.xml @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/test/SVG/style.xml b/test/SVG/style.xml new file mode 100755 index 0000000..ba15041 --- /dev/null +++ b/test/SVG/style.xml @@ -0,0 +1,11 @@ + + + + + + + Here is my title + diff --git a/test/SVG/switch.xml b/test/SVG/switch.xml new file mode 100755 index 0000000..18955c9 --- /dev/null +++ b/test/SVG/switch.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + diff --git a/test/SVG/symbol-use.xml b/test/SVG/symbol-use.xml new file mode 100755 index 0000000..83bc458 --- /dev/null +++ b/test/SVG/symbol-use.xml @@ -0,0 +1,28 @@ + + + + + + + + + + Examples of inline and referenced content + + + + + + + + + + + + + + + + + diff --git a/test/SVG/template.xml b/test/SVG/template.xml new file mode 100755 index 0000000..0a9fee7 --- /dev/null +++ b/test/SVG/template.xml @@ -0,0 +1,9 @@ + + + This well formed svg document contains a hyperlink + + +

        + + diff --git a/test/SVG/text01.xml b/test/SVG/text01.xml new file mode 100755 index 0000000..395bafb --- /dev/null +++ b/test/SVG/text01.xml @@ -0,0 +1,12 @@ + + + + + XYZ + + ABC + + + + diff --git a/test/SVG/text02.xml b/test/SVG/text02.xml new file mode 100755 index 0000000..7b95292 --- /dev/null +++ b/test/SVG/text02.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + 123 + ABC + 456 + DEF diff --git a/test/SVG/text03.xml b/test/SVG/text03.xml new file mode 100755 index 0000000..fae9af1 --- /dev/null +++ b/test/SVG/text03.xml @@ -0,0 +1,8 @@ + + + + 123 + 456 + + diff --git a/test/SVG/toap01.xml b/test/SVG/toap01.xml new file mode 100755 index 0000000..32e16e6 --- /dev/null +++ b/test/SVG/toap01.xml @@ -0,0 +1,10 @@ + + + + Simple text on a path + + + Text on path + diff --git a/test/SVG/toap02.xml b/test/SVG/toap02.xml new file mode 100755 index 0000000..6898093 --- /dev/null +++ b/test/SVG/toap02.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + General graphics on a path + + + + + + + + + + + + + + + + + diff --git a/test/SVG/transform.xml b/test/SVG/transform.xml new file mode 100755 index 0000000..13075ee --- /dev/null +++ b/test/SVG/transform.xml @@ -0,0 +1,26 @@ + + + + Demonstration of coordinate transforms + + + This prints 12 pixels high. + This prints 12 pixels high. + + + + + + This prints 24 pixels high. + + + This prints 12 pixels high. + + + + diff --git a/test/SVG/trivial.xml b/test/SVG/trivial.xml new file mode 100755 index 0000000..b6122be --- /dev/null +++ b/test/SVG/trivial.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/test/SVG/twin-gradients.xml b/test/SVG/twin-gradients.xml new file mode 100755 index 0000000..6213f1b --- /dev/null +++ b/test/SVG/twin-gradients.xml @@ -0,0 +1,19 @@ + + + + Gradients apply to leaf nodes + + + + + + + + + + + + + + diff --git a/test/SVG/v-template.xml b/test/SVG/v-template.xml new file mode 100755 index 0000000..d8643d7 --- /dev/null +++ b/test/SVG/v-template.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/test/SVG/viewport-nest.xml b/test/SVG/viewport-nest.xml new file mode 100755 index 0000000..981a7ac --- /dev/null +++ b/test/SVG/viewport-nest.xml @@ -0,0 +1,13 @@ + + + + This SVG drawing embeds another one, + thus establishing a new viewport + + + + + + diff --git a/test/SVG/viewport-transform.xml b/test/SVG/viewport-transform.xml new file mode 100755 index 0000000..e2434bd --- /dev/null +++ b/test/SVG/viewport-transform.xml @@ -0,0 +1,46 @@ + + + + Transformation with establishment of a new viewport + + + This prints 12 pixels high. + This prints 12 pixels high. + + + + + + This prints 24 pixels high. + + + This prints 12 pixels high. + + + + + + + + + + This prints 36 pixels high. + This prints 36 pixels high. + + + + + diff --git a/test/SVG/viewport.xml b/test/SVG/viewport.xml new file mode 100755 index 0000000..0923fae --- /dev/null +++ b/test/SVG/viewport.xml @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/test/SVG/wf-template.xml b/test/SVG/wf-template.xml new file mode 100755 index 0000000..f1cad85 --- /dev/null +++ b/test/SVG/wf-template.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/test/URI/smith.uri b/test/URI/smith.uri new file mode 100644 index 0000000..6cc6c87 --- /dev/null +++ b/test/URI/smith.uri @@ -0,0 +1,15 @@ +/foo/../bar +foo/../bar +./foo/../bar +foo/./../bar +foo/bar/.././../baz +foo/.. +foo/bar/.. +./foo +././foo +.././foo./ +.././foo/. +/foo +../foo +../../foo +../../../foo diff --git a/test/URI/uri.data b/test/URI/uri.data new file mode 100644 index 0000000..a96ea5f --- /dev/null +++ b/test/URI/uri.data @@ -0,0 +1,18 @@ + +. +bar +bar#baz +bar?baz +bar?baz#baz2 +#baz +?baz +?baz#baz2 +../up.a.notch.html#wow +../up.a.notch.html?wow +../up.a.notch.html?wow#wow2 +/root.cgi#OK +/root.cgi?OK +/root.cgi?OK#OK2 +http://elsewhere.com/#deep +http://elsewhere.com/?deep +http://elsewhere.com/?deep#deep2 diff --git a/test/VC/AttributeDefaultLegal b/test/VC/AttributeDefaultLegal new file mode 100644 index 0000000..471eb20 --- /dev/null +++ b/test/VC/AttributeDefaultLegal @@ -0,0 +1,12 @@ + + + + + + + + +]> + + diff --git a/test/VC/AttributeNmtokens b/test/VC/AttributeNmtokens new file mode 100644 index 0000000..8710de4 --- /dev/null +++ b/test/VC/AttributeNmtokens @@ -0,0 +1,6 @@ + + +]> + + diff --git a/test/VC/DuplicateType b/test/VC/DuplicateType new file mode 100644 index 0000000..4b28804 --- /dev/null +++ b/test/VC/DuplicateType @@ -0,0 +1,5 @@ + + +]> + violates [ VC: No Duplicate Types ] diff --git a/test/VC/ElementValid b/test/VC/ElementValid new file mode 100644 index 0000000..c297ce6 --- /dev/null +++ b/test/VC/ElementValid @@ -0,0 +1,3 @@ + + diff --git a/test/VC/ElementValid2 b/test/VC/ElementValid2 new file mode 100644 index 0000000..672a0f5 --- /dev/null +++ b/test/VC/ElementValid2 @@ -0,0 +1,4 @@ + +]> +

        diff --git a/test/VC/ElementValid3 b/test/VC/ElementValid3 new file mode 100644 index 0000000..67cbab4 --- /dev/null +++ b/test/VC/ElementValid3 @@ -0,0 +1,4 @@ + +]> +Oops, this element was declared EMPTY diff --git a/test/VC/ElementValid4 b/test/VC/ElementValid4 new file mode 100644 index 0000000..56df55a --- /dev/null +++ b/test/VC/ElementValid4 @@ -0,0 +1,7 @@ + + + + +]> + This seems Ok but this was not declared diff --git a/test/VC/ElementValid5 b/test/VC/ElementValid5 new file mode 100644 index 0000000..2cef3c4 --- /dev/null +++ b/test/VC/ElementValid5 @@ -0,0 +1,7 @@ + + + + +]> + but thiswas not declaredseems diff --git a/test/VC/ElementValid6 b/test/VC/ElementValid6 new file mode 100644 index 0000000..fbf721d --- /dev/null +++ b/test/VC/ElementValid6 @@ -0,0 +1,7 @@ + + + + +]> +lacks c diff --git a/test/VC/ElementValid7 b/test/VC/ElementValid7 new file mode 100644 index 0000000..a88115f --- /dev/null +++ b/test/VC/ElementValid7 @@ -0,0 +1,7 @@ + + + + +]> + diff --git a/test/VC/ElementValid8 b/test/VC/ElementValid8 new file mode 100644 index 0000000..5fd2044 --- /dev/null +++ b/test/VC/ElementValid8 @@ -0,0 +1,7 @@ + + + + +]> + doc is non-deterministic diff --git a/test/VC/Enumeration b/test/VC/Enumeration new file mode 100644 index 0000000..6c63968 --- /dev/null +++ b/test/VC/Enumeration @@ -0,0 +1,5 @@ + + +]> + diff --git a/test/VC/NS1 b/test/VC/NS1 new file mode 100644 index 0000000..2f74463 --- /dev/null +++ b/test/VC/NS1 @@ -0,0 +1,13 @@ + + + + +]> + + + first line + second line + diff --git a/test/VC/NS2 b/test/VC/NS2 new file mode 100644 index 0000000..d748d1a --- /dev/null +++ b/test/VC/NS2 @@ -0,0 +1,13 @@ + + + + +]> + + + first line + second line + diff --git a/test/VC/NS3 b/test/VC/NS3 new file mode 100644 index 0000000..f53b0ca --- /dev/null +++ b/test/VC/NS3 @@ -0,0 +1,9 @@ + + + +]> + diff --git a/test/VC/OneID b/test/VC/OneID new file mode 100644 index 0000000..e9cbc0c --- /dev/null +++ b/test/VC/OneID @@ -0,0 +1,6 @@ + + + +]> + diff --git a/test/VC/OneID2 b/test/VC/OneID2 new file mode 100644 index 0000000..ffa9d1f --- /dev/null +++ b/test/VC/OneID2 @@ -0,0 +1,6 @@ + + + +]> + diff --git a/test/VC/OneID3 b/test/VC/OneID3 new file mode 100644 index 0000000..9696736 --- /dev/null +++ b/test/VC/OneID3 @@ -0,0 +1,4 @@ + +]> + diff --git a/test/VC/PENesting b/test/VC/PENesting new file mode 100644 index 0000000..17332ae --- /dev/null +++ b/test/VC/PENesting @@ -0,0 +1,2 @@ + "> + + + diff --git a/test/VC/UniqueElementTypeDeclaration b/test/VC/UniqueElementTypeDeclaration new file mode 100644 index 0000000..2246f17 --- /dev/null +++ b/test/VC/UniqueElementTypeDeclaration @@ -0,0 +1,7 @@ + + + + +]> + violates [ VC: Unique Element Type Declaration ] diff --git a/test/VC/UniqueElementTypeDeclaration2 b/test/VC/UniqueElementTypeDeclaration2 new file mode 100644 index 0000000..0805f8d --- /dev/null +++ b/test/VC/UniqueElementTypeDeclaration2 @@ -0,0 +1,8 @@ + + + + + +]> + violates [ VC: Unique Element Type Declaration ] diff --git a/test/VC/dtds/a.dtd b/test/VC/dtds/a.dtd new file mode 100644 index 0000000..b8571a4 --- /dev/null +++ b/test/VC/dtds/a.dtd @@ -0,0 +1,2 @@ + + diff --git a/test/VC/dtds/doc.dtd b/test/VC/dtds/doc.dtd new file mode 100644 index 0000000..71f8b41 --- /dev/null +++ b/test/VC/dtds/doc.dtd @@ -0,0 +1,2 @@ + + diff --git a/test/VCM/21.xml b/test/VCM/21.xml new file mode 100644 index 0000000..78c8713 --- /dev/null +++ b/test/VCM/21.xml @@ -0,0 +1,8 @@ + + + + + +]> + diff --git a/test/VCM/AttributeNmtokens.xml b/test/VCM/AttributeNmtokens.xml new file mode 100644 index 0000000..575f811 --- /dev/null +++ b/test/VCM/AttributeNmtokens.xml @@ -0,0 +1,14 @@ + + + +]> + + + + + + diff --git a/test/VCM/v1.xml b/test/VCM/v1.xml new file mode 100644 index 0000000..8a7f679 --- /dev/null +++ b/test/VCM/v1.xml @@ -0,0 +1,4 @@ + +]> + diff --git a/test/VCM/v10.xml b/test/VCM/v10.xml new file mode 100644 index 0000000..f293a42 --- /dev/null +++ b/test/VCM/v10.xml @@ -0,0 +1,5 @@ + + +]> + diff --git a/test/VCM/v11.xml b/test/VCM/v11.xml new file mode 100644 index 0000000..c133523 --- /dev/null +++ b/test/VCM/v11.xml @@ -0,0 +1,5 @@ + + +]> + diff --git a/test/VCM/v12.xml b/test/VCM/v12.xml new file mode 100644 index 0000000..3eed3d6 --- /dev/null +++ b/test/VCM/v12.xml @@ -0,0 +1,9 @@ + + +]> + + + + + diff --git a/test/VCM/v13.xml b/test/VCM/v13.xml new file mode 100644 index 0000000..75f4352 --- /dev/null +++ b/test/VCM/v13.xml @@ -0,0 +1,7 @@ + + +]> + + + diff --git a/test/VCM/v14.xml b/test/VCM/v14.xml new file mode 100644 index 0000000..fa70f9f --- /dev/null +++ b/test/VCM/v14.xml @@ -0,0 +1,9 @@ + + +]> + + + + + diff --git a/test/VCM/v15.xml b/test/VCM/v15.xml new file mode 100644 index 0000000..878e3e3 --- /dev/null +++ b/test/VCM/v15.xml @@ -0,0 +1,9 @@ + + + + +]> + + + diff --git a/test/VCM/v16.xml b/test/VCM/v16.xml new file mode 100644 index 0000000..e676347 --- /dev/null +++ b/test/VCM/v16.xml @@ -0,0 +1,8 @@ + + + +]> + + + diff --git a/test/VCM/v17.xml b/test/VCM/v17.xml new file mode 100644 index 0000000..bc9c8c2 --- /dev/null +++ b/test/VCM/v17.xml @@ -0,0 +1,7 @@ + + + + +]> + diff --git a/test/VCM/v18.xml b/test/VCM/v18.xml new file mode 100644 index 0000000..fccc440 --- /dev/null +++ b/test/VCM/v18.xml @@ -0,0 +1,7 @@ + + + + +]> + diff --git a/test/VCM/v19.xml b/test/VCM/v19.xml new file mode 100644 index 0000000..17aacff --- /dev/null +++ b/test/VCM/v19.xml @@ -0,0 +1,7 @@ + + + + +]> + diff --git a/test/VCM/v2.xml b/test/VCM/v2.xml new file mode 100644 index 0000000..35c63af --- /dev/null +++ b/test/VCM/v2.xml @@ -0,0 +1,4 @@ + +]> +text diff --git a/test/VCM/v20.xml b/test/VCM/v20.xml new file mode 100644 index 0000000..a9b0529 --- /dev/null +++ b/test/VCM/v20.xml @@ -0,0 +1,10 @@ + + + + +]> + + + + diff --git a/test/VCM/v21.xml b/test/VCM/v21.xml new file mode 100644 index 0000000..4c8d923 --- /dev/null +++ b/test/VCM/v21.xml @@ -0,0 +1,7 @@ + + + + +]> + diff --git a/test/VCM/v22.xml b/test/VCM/v22.xml new file mode 100644 index 0000000..d0376f7 --- /dev/null +++ b/test/VCM/v22.xml @@ -0,0 +1,15 @@ + + + + + +"> +&c;"> +]> + + +&bc; +&bc; + + diff --git a/test/VCM/v23.xml b/test/VCM/v23.xml new file mode 100644 index 0000000..6aedcfb --- /dev/null +++ b/test/VCM/v23.xml @@ -0,0 +1,10 @@ + + + + + +]> + + + diff --git a/test/VCM/v24.xml b/test/VCM/v24.xml new file mode 100644 index 0000000..25367c4 --- /dev/null +++ b/test/VCM/v24.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + +]> + + + diff --git a/test/VCM/v3.xml b/test/VCM/v3.xml new file mode 100644 index 0000000..f255589 --- /dev/null +++ b/test/VCM/v3.xml @@ -0,0 +1,8 @@ + +]> + + +text + + diff --git a/test/VCM/v4.xml b/test/VCM/v4.xml new file mode 100644 index 0000000..e96afe2 --- /dev/null +++ b/test/VCM/v4.xml @@ -0,0 +1,5 @@ + + +]> + diff --git a/test/VCM/v5.xml b/test/VCM/v5.xml new file mode 100644 index 0000000..a7ff5ba --- /dev/null +++ b/test/VCM/v5.xml @@ -0,0 +1,7 @@ + + +]> + + + diff --git a/test/VCM/v6.xml b/test/VCM/v6.xml new file mode 100644 index 0000000..93fa4b8 --- /dev/null +++ b/test/VCM/v6.xml @@ -0,0 +1,9 @@ + + + +]> + + + + diff --git a/test/VCM/v7.xml b/test/VCM/v7.xml new file mode 100644 index 0000000..240c480 --- /dev/null +++ b/test/VCM/v7.xml @@ -0,0 +1,8 @@ + + + +]> + + + diff --git a/test/VCM/v8.xml b/test/VCM/v8.xml new file mode 100644 index 0000000..421a1df --- /dev/null +++ b/test/VCM/v8.xml @@ -0,0 +1,5 @@ + + +]> + diff --git a/test/VCM/v9.xml b/test/VCM/v9.xml new file mode 100644 index 0000000..1c639ec --- /dev/null +++ b/test/VCM/v9.xml @@ -0,0 +1,5 @@ + + +]> + diff --git a/test/WFC/ElemTypeMatch b/test/WFC/ElemTypeMatch new file mode 100644 index 0000000..11a2df3 --- /dev/null +++ b/test/WFC/ElemTypeMatch @@ -0,0 +1,2 @@ + + violates [ WFC: Element Type Match ] diff --git a/test/WFC/EntityDeclared b/test/WFC/EntityDeclared new file mode 100644 index 0000000..e3427a1 --- /dev/null +++ b/test/WFC/EntityDeclared @@ -0,0 +1,2 @@ + + &unknown; violates [ WFC: Entity Declared ] diff --git a/test/WFC/EntityDeclared2 b/test/WFC/EntityDeclared2 new file mode 100644 index 0000000..e6d16dd --- /dev/null +++ b/test/WFC/EntityDeclared2 @@ -0,0 +1,5 @@ + + +]> + &unknown; violates [ WFC: Entity Declared ] diff --git a/test/WFC/EntityDeclared3 b/test/WFC/EntityDeclared3 new file mode 100644 index 0000000..1670980 --- /dev/null +++ b/test/WFC/EntityDeclared3 @@ -0,0 +1,3 @@ + + + &unknown; violates [ WFC: Entity Declared ] diff --git a/test/WFC/EntityDeclared4 b/test/WFC/EntityDeclared4 new file mode 100644 index 0000000..15354ac --- /dev/null +++ b/test/WFC/EntityDeclared4 @@ -0,0 +1,6 @@ + +"> +]> + violates [ WFC: Entity Declared ] diff --git a/test/WFC/EntityDeclared5 b/test/WFC/EntityDeclared5 new file mode 100644 index 0000000..f125373 --- /dev/null +++ b/test/WFC/EntityDeclared5 @@ -0,0 +1,6 @@ + +"> +]> + violates [ WFC: Entity Declared ] diff --git a/test/WFC/LegalCharacter b/test/WFC/LegalCharacter new file mode 100644 index 0000000..67ff388 --- /dev/null +++ b/test/WFC/LegalCharacter @@ -0,0 +1,2 @@ + +  violates [ WFC: Legal Character ] diff --git a/test/WFC/NoExternalEntityRef b/test/WFC/NoExternalEntityRef new file mode 100644 index 0000000..43cd192 --- /dev/null +++ b/test/WFC/NoExternalEntityRef @@ -0,0 +1,5 @@ + + +]> + violates [ WFC: No External Entity References ] diff --git a/test/WFC/NoLtInAttValue b/test/WFC/NoLtInAttValue new file mode 100644 index 0000000..cc459e9 --- /dev/null +++ b/test/WFC/NoLtInAttValue @@ -0,0 +1,5 @@ + + +]> + violates [ WFC: No < in Attribute Values ] diff --git a/test/WFC/NoRecursion b/test/WFC/NoRecursion new file mode 100644 index 0000000..970b897 --- /dev/null +++ b/test/WFC/NoRecursion @@ -0,0 +1,7 @@ + + + + +]> + &a; violates [ WFC: No Recursion ] diff --git a/test/WFC/PEintsubset b/test/WFC/PEintsubset new file mode 100644 index 0000000..e1ea331 --- /dev/null +++ b/test/WFC/PEintsubset @@ -0,0 +1,6 @@ + + + +]> + violates [ WFC: PEs in Internal Subset ] diff --git a/test/WFC/UniqueAttSpec b/test/WFC/UniqueAttSpec new file mode 100644 index 0000000..5074ff2 --- /dev/null +++ b/test/WFC/UniqueAttSpec @@ -0,0 +1,2 @@ + + violates [ WFC: Unique Att Spec ] diff --git a/test/WFC/UniqueAttSpec2 b/test/WFC/UniqueAttSpec2 new file mode 100644 index 0000000..e4511f1 --- /dev/null +++ b/test/WFC/UniqueAttSpec2 @@ -0,0 +1,2 @@ + + violates [ WFC: Unique Att Spec ] diff --git a/test/XInclude/docs/docids.xml b/test/XInclude/docs/docids.xml new file mode 100644 index 0000000..7791620 --- /dev/null +++ b/test/XInclude/docs/docids.xml @@ -0,0 +1,15 @@ + + + + +]> + + + + + + + + diff --git a/test/XInclude/docs/fallback.xml b/test/XInclude/docs/fallback.xml new file mode 100644 index 0000000..e80222e --- /dev/null +++ b/test/XInclude/docs/fallback.xml @@ -0,0 +1,6 @@ + + + + Inclusion failed + + diff --git a/test/XInclude/docs/fallback2.xml b/test/XInclude/docs/fallback2.xml new file mode 100644 index 0000000..dac71f9 --- /dev/null +++ b/test/XInclude/docs/fallback2.xml @@ -0,0 +1,10 @@ + + + There is no b.xml ... + + + There is no c.xml ... + + + + diff --git a/test/XInclude/docs/include.xml b/test/XInclude/docs/include.xml new file mode 100644 index 0000000..806ac23 --- /dev/null +++ b/test/XInclude/docs/include.xml @@ -0,0 +1,4 @@ + + + + diff --git a/test/XInclude/docs/nodes.xml b/test/XInclude/docs/nodes.xml new file mode 100644 index 0000000..d0ccab9 --- /dev/null +++ b/test/XInclude/docs/nodes.xml @@ -0,0 +1,4 @@ + + + + diff --git a/test/XInclude/docs/nodes2.xml b/test/XInclude/docs/nodes2.xml new file mode 100644 index 0000000..32f8cfe --- /dev/null +++ b/test/XInclude/docs/nodes2.xml @@ -0,0 +1,4 @@ + + + + diff --git a/test/XInclude/docs/nodes3.xml b/test/XInclude/docs/nodes3.xml new file mode 100644 index 0000000..355c548 --- /dev/null +++ b/test/XInclude/docs/nodes3.xml @@ -0,0 +1,4 @@ + + + + diff --git a/test/XInclude/docs/recursive.xml b/test/XInclude/docs/recursive.xml new file mode 100644 index 0000000..a9285ac --- /dev/null +++ b/test/XInclude/docs/recursive.xml @@ -0,0 +1,3 @@ + + diff --git a/test/XInclude/docs/tstencoding.xml b/test/XInclude/docs/tstencoding.xml new file mode 100644 index 0000000..b1309a9 --- /dev/null +++ b/test/XInclude/docs/tstencoding.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/test/XInclude/docs/txtinclude.xml b/test/XInclude/docs/txtinclude.xml new file mode 100644 index 0000000..f1af6a2 --- /dev/null +++ b/test/XInclude/docs/txtinclude.xml @@ -0,0 +1,4 @@ + + + + diff --git a/test/XInclude/ents/ids.xml b/test/XInclude/ents/ids.xml new file mode 100644 index 0000000..8193231 --- /dev/null +++ b/test/XInclude/ents/ids.xml @@ -0,0 +1,10 @@ + + + +]> + + + + + diff --git a/test/XInclude/ents/inc.txt b/test/XInclude/ents/inc.txt new file mode 100644 index 0000000..d5cdd7c --- /dev/null +++ b/test/XInclude/ents/inc.txt @@ -0,0 +1 @@ +is a test diff --git a/test/XInclude/ents/isolatin.txt b/test/XInclude/ents/isolatin.txt new file mode 100644 index 0000000..d1dbf70 --- /dev/null +++ b/test/XInclude/ents/isolatin.txt @@ -0,0 +1 @@ +test with accents in ISO-8859-1: À Á é è diff --git a/test/XInclude/ents/something.txt b/test/XInclude/ents/something.txt new file mode 100644 index 0000000..48c21b7 --- /dev/null +++ b/test/XInclude/ents/something.txt @@ -0,0 +1 @@ +this is some text in ASCII diff --git a/test/XInclude/ents/something.xml b/test/XInclude/ents/something.xml new file mode 100644 index 0000000..9bba683 --- /dev/null +++ b/test/XInclude/ents/something.xml @@ -0,0 +1,5 @@ + +

        something

        +

        really

        +

        simple

        + diff --git a/test/XInclude/ents/sub-inc.ent b/test/XInclude/ents/sub-inc.ent new file mode 100644 index 0000000..7726c9d --- /dev/null +++ b/test/XInclude/ents/sub-inc.ent @@ -0,0 +1,2 @@ + diff --git a/test/XPath/docs/chapters b/test/XPath/docs/chapters new file mode 100644 index 0000000..c48f65e --- /dev/null +++ b/test/XPath/docs/chapters @@ -0,0 +1,28 @@ + + + + Welcome to Gnome + + + The Linux adventure +

        bla bla bla ...

        + +

        ...

        +
        + + Chapter 2 +

        this is chapter 2 ...

        +
        + + Chapter 3 +

        this is chapter 3 ...

        +
        + + Chapter 4 +

        this is chapter 4 ...

        +
        + + Chapter 5 +

        this is chapter 5 ...

        +
        +
        diff --git a/test/XPath/docs/id b/test/XPath/docs/id new file mode 100644 index 0000000..4b6659f --- /dev/null +++ b/test/XPath/docs/id @@ -0,0 +1,28 @@ + + + + Welcome to Gnome + + + The Linux adventure +

        bla bla bla ...

        + +

        ...

        +
        + + Chapter 2 +

        this is chapter 2 ...

        +
        + + Chapter 3 +

        this is chapter 3 ...

        +
        + + Chapter 4 +

        this is chapter 4 ...

        +
        + + Chapter 5 +

        this is chapter 5 ...

        +
        +
        diff --git a/test/XPath/docs/lang b/test/XPath/docs/lang new file mode 100644 index 0000000..abfe1d6 --- /dev/null +++ b/test/XPath/docs/lang @@ -0,0 +1,13 @@ + + 1 + + en + 3 + + 4 + +
        + + + +
        diff --git a/test/XPath/docs/mixed b/test/XPath/docs/mixed new file mode 100644 index 0000000..3b457bc --- /dev/null +++ b/test/XPath/docs/mixed @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/test/XPath/docs/nodes b/test/XPath/docs/nodes new file mode 100644 index 0000000..a863df0 --- /dev/null +++ b/test/XPath/docs/nodes @@ -0,0 +1,2 @@ + +txttxt \ No newline at end of file diff --git a/test/XPath/docs/simple b/test/XPath/docs/simple new file mode 100644 index 0000000..ca665a2 --- /dev/null +++ b/test/XPath/docs/simple @@ -0,0 +1,12 @@ + + + + Welcome to Gnome + + + The Linux adventure +

        bla bla bla ...

        + +

        ...

        +
        +
        diff --git a/test/XPath/docs/str b/test/XPath/docs/str new file mode 100644 index 0000000..547e54d --- /dev/null +++ b/test/XPath/docs/str @@ -0,0 +1,9 @@ + + +

        a simple test

        +

        multiple tests

        +

        a difficult one

        +

        a span

        n

        ing one

        +

        and an unbal

        anced test

        +

        for empty string 123

        +
        diff --git a/test/XPath/docs/usr1 b/test/XPath/docs/usr1 new file mode 100644 index 0000000..44c7529 --- /dev/null +++ b/test/XPath/docs/usr1 @@ -0,0 +1,12 @@ + + + + + + + + +N + + diff --git a/test/XPath/docs/vid b/test/XPath/docs/vid new file mode 100644 index 0000000..cdb7437 --- /dev/null +++ b/test/XPath/docs/vid @@ -0,0 +1,43 @@ + + + + + + + + + + + +]> + + + + Welcome to Gnome + + + The Linux adventure +

        bla bla bla ...

        + +

        ...

        +

        third p

        +

        fourth p

        +
        + + Chapter 2 +

        this is chapter 2 ...

        +
        + + Chapter 3 +

        this is chapter 3 ...

        +
        + + Chapter 4 +

        this is chapter 4 ...

        +
        + + Chapter 5 +

        this is chapter 5 ...

        +
        +
        diff --git a/test/XPath/expr/base b/test/XPath/expr/base new file mode 100644 index 0000000..9aaed4f --- /dev/null +++ b/test/XPath/expr/base @@ -0,0 +1,5 @@ +1 +1+2 +2*3 +1+2*3+4 +(1+2)*(3+4) diff --git a/test/XPath/expr/compare b/test/XPath/expr/compare new file mode 100644 index 0000000..2d52eaf --- /dev/null +++ b/test/XPath/expr/compare @@ -0,0 +1,46 @@ +0<0 +0<=0 +0>0 +0>=0 +0<1 +0<=1 +0>1 +0>=1 +1<0 +1<=0 +1>0 +1>=0 +1<1 +1<=1 +1>1 +1>=1 +'0'<1 +'0'<=1 +'0'>1 +'0'>=1 +0<'1.2' +0<='1.2' +0>'1.2' +0>='1.2' +0<'-0.2' +0<='-0.2' +0>'-0.2' +0>='-0.2' +false()<1 +false()<=1 +0>true() +0>=true() +'a' > 'a' +'a' > 'b' +'b' > 'a' +'a' < 'a' +'a' < 'b' +'b' < 'a' +'a' >= 'a' +'a' >= 'b' +'b' >= 'a' +'a' <= 'a' +'a' <= 'b' +'b' <= 'a' +'a' > '0.0' +'a' < '0.0' diff --git a/test/XPath/expr/equality b/test/XPath/expr/equality new file mode 100644 index 0000000..7982173 --- /dev/null +++ b/test/XPath/expr/equality @@ -0,0 +1,26 @@ +1=1 +1!=1 +1=0 +1!=0 +true()=true() +true()!=true() +true()=false() +false()!=true() +'test'='test' +'test'!='test' +'test2'='test' +'test2'!='test' +false()=0 +false()!=0 +false()=1 +false()!=1 +0=true() +0!=true() +1=true() +1!=true() +true()='test' +false()='test' +'test'!=true() +'test'!=false() +'a'=0.0 +'a'!=0.0 diff --git a/test/XPath/expr/floats b/test/XPath/expr/floats new file mode 100644 index 0000000..96c10d1 --- /dev/null +++ b/test/XPath/expr/floats @@ -0,0 +1,61 @@ +1 +123 +1.23 +0.123 +4. +.4 +1.23e3 +1.23e-3 +1 div 0 +-1 div 0 +0 div 0 +1 div -0 +(1 div 0) > 0 +(1 div 0) < 0 +(-1 div 0) > 0 +(-1 div 0) < 0 +(0 div 0) > 0 +(0 div 0) < 0 +(1 div -0) > 0 +(1 div -0) < 0 +0 div 0 = 0 div 0 +0 div 0 != 0 div 0 +0 div 0 > 0 div 0 +0 div 0 < 0 div 0 +0 div 0 >= 0 div 0 +0 div 0 <= 0 div 0 +1 div 0 = -1 div 0 +1 div 0 != -1 div 0 +1 div 0 > -1 div 0 +1 div 0 < -1 div 0 +1 div 0 >= -1 div 0 +1 div 0 <= -1 div 0 +1 div 0 = 1 div 0 +1 div 0 != 1 div 0 +1 div 0 > 1 div 0 +1 div 0 < 1 div 0 +1 div 0 >= -1 div 0 +1 div 0 <= -1 div 0 +-2 div 0 = -1 div 0 +1 div floor(0.1) +1 div floor(-0.1) +1 div floor(-0) +1 div floor(0) +1 div ceiling(0.1) +1 div ceiling(-0.1) +1 div ceiling(-0) +1 div ceiling(0) +1 div round(0.1) +1 div round(-0.1) +1 div round(-0) +1 div round(0) +1 div number('f') +number('f') div 1 +1 div (1 div 0) +(1 div 0) div 1 +-(1 div 0) div 1 +5 mod 2 +5 mod -2 +-5 mod 2 +-5 mod -2 +8 mod 3 = 2 diff --git a/test/XPath/expr/functions b/test/XPath/expr/functions new file mode 100644 index 0000000..d168b18 --- /dev/null +++ b/test/XPath/expr/functions @@ -0,0 +1,25 @@ +true() +false() +number("1.5") +number('abc') +-number('abc') +floor(0.1) +floor(-0.1) +floor(-0) +floor(0) +floor(5.2) +floor(-5.2) +ceiling(0.1) +ceiling(-0.1) +ceiling(-0) +ceiling(0) +ceiling(5.2) +ceiling(-5.2) +round(0.1) +round(5.2) +round(5.5) +round(5.6) +round(-0.1) +round(-5.2) +round(-5.5) +round(-5.6) diff --git a/test/XPath/expr/strings b/test/XPath/expr/strings new file mode 100644 index 0000000..849ca14 --- /dev/null +++ b/test/XPath/expr/strings @@ -0,0 +1,34 @@ +string(5) +string(0.5) +string(-0.5) +string(true()) +string(false()) +concat("titi","toto") +concat("titi","toto","tata") +concat("titi",'toto') +concat("titi",'toto',"tata","last") +starts-with("tititoto","titi") +starts-with("tititoto","to") +contains("tititototata","titi") +contains("tititototata","toto") +contains("tititototata","tata") +contains("tititototata","tita") +substring("12345",2,3) +substring("12345",2) +substring("12345",-4) +substring("12345",3.4) +substring("12345",3.6) +substring("12345",1.5,2.6) +substring("12345",2.2,2.2) +substring("12345",0,3) +substring("12345",-8,10) +substring("12345",4,-10) +substring("12345",0 div 0, 3) +substring("12345",1, 0 div 0) +substring("12345",1 div 0, 3) +substring("12345",3,-1 div 0) +substring("12345",-42, 1 div 0) +substring("12345",-1 div 0, 1 div 0) +substring("12345",-1 div 0,5) +string-length("") +string-length("titi") diff --git a/test/XPath/tests/chaptersbase b/test/XPath/tests/chaptersbase new file mode 100644 index 0000000..daa53b7 --- /dev/null +++ b/test/XPath/tests/chaptersbase @@ -0,0 +1,9 @@ +/child::EXAMPLE +/child::* +/child::EXAMPLE/child::head +/child::EXAMPLE/child::* +/child::EXAMPLE/child::head/child::title +/child::EXAMPLE/child::head/child::title/child::text() +/child::EXAMPLE/child::head/node() +/descendant::title +/descendant::p/ancestor::chapter diff --git a/test/XPath/tests/chaptersprefol b/test/XPath/tests/chaptersprefol new file mode 100644 index 0000000..8f1e65b --- /dev/null +++ b/test/XPath/tests/chaptersprefol @@ -0,0 +1,8 @@ +/following::* +/preceding::* +/child::EXAMPLE/preceding::* +/child::EXAMPLE/following::* +/child::EXAMPLE/child::chapter[3]/preceding::* +/child::EXAMPLE/child::chapter[3]/following::* +/child::EXAMPLE/child::chapter[1]/image/preceding::* +/child::EXAMPLE/child::chapter[1]/image/following::* diff --git a/test/XPath/tests/idsimple b/test/XPath/tests/idsimple new file mode 100644 index 0000000..2841ae9 --- /dev/null +++ b/test/XPath/tests/idsimple @@ -0,0 +1,3 @@ +//*[@id="root"] +//*[@id="chapter2"] +//*[@id="chapter5"] diff --git a/test/XPath/tests/langsimple b/test/XPath/tests/langsimple new file mode 100644 index 0000000..f71a321 --- /dev/null +++ b/test/XPath/tests/langsimple @@ -0,0 +1,5 @@ +//*[lang('en')] +//*[lang('en-us')] +//*[lang('en-gb')] +//*[lang('fr')] +//*[lang('')] diff --git a/test/XPath/tests/mixedpat b/test/XPath/tests/mixedpat new file mode 100644 index 0000000..c212f6c --- /dev/null +++ b/test/XPath/tests/mixedpat @@ -0,0 +1,7 @@ +s +s|p1/s +s|/root/p1/s +/root/p1/s|s +//s +//s|p1 +p1|//s diff --git a/test/XPath/tests/nodespat b/test/XPath/tests/nodespat new file mode 100644 index 0000000..c157a3e --- /dev/null +++ b/test/XPath/tests/nodespat @@ -0,0 +1,5 @@ +/. +//. +/root//. +//.//./././/. +/root//././/bar//. \ No newline at end of file diff --git a/test/XPath/tests/simpleabbr b/test/XPath/tests/simpleabbr new file mode 100644 index 0000000..8de476f --- /dev/null +++ b/test/XPath/tests/simpleabbr @@ -0,0 +1,10 @@ +/EXAMPLE +/EXAMPLE/head +/EXAMPLE/chapter[1] +//p +//chapter/image +//p/text() +//p/text()[position()=1] +//p/text()[position()=last()] +(//p/text())[position()=1] +(//p/text())[position()=last()] diff --git a/test/XPath/tests/simplebase b/test/XPath/tests/simplebase new file mode 100644 index 0000000..7e4203a --- /dev/null +++ b/test/XPath/tests/simplebase @@ -0,0 +1,9 @@ +/child::* +/child::EXAMPLE +/child::EXAMPLE/child::head +/child::EXAMPLE/child::* +/child::EXAMPLE/child::head/child::title +/child::EXAMPLE/child::head/child::title/child::text() +/child::EXAMPLE/child::head/node() +/descendant::title +/descendant::p/ancestor::chapter diff --git a/test/XPath/tests/usr1check b/test/XPath/tests/usr1check new file mode 100644 index 0000000..c38d003 --- /dev/null +++ b/test/XPath/tests/usr1check @@ -0,0 +1 @@ +//ITEM[1] diff --git a/test/XPath/tests/vidbase b/test/XPath/tests/vidbase new file mode 100644 index 0000000..5cd79ac --- /dev/null +++ b/test/XPath/tests/vidbase @@ -0,0 +1,5 @@ +id('chapter1') +id('chapter3') +id('chapter1')/p +id('chapter1')//p +id('chapter1')/p[1] diff --git a/test/XPath/xptr/chapterschildseq b/test/XPath/xptr/chapterschildseq new file mode 100644 index 0000000..3b52f5f --- /dev/null +++ b/test/XPath/xptr/chapterschildseq @@ -0,0 +1,8 @@ +/1/2/3 +element(/1/2/3) +element(foo)element(/1/2/3) +element(/1/2/3)element(foo) +chapter1/3 +element(chapter1/3) +element(foo)element(chapter1/3) +element(chapter1/3)element(foo) diff --git a/test/XPath/xptr/chaptersparts b/test/XPath/xptr/chaptersparts new file mode 100644 index 0000000..aadc47c --- /dev/null +++ b/test/XPath/xptr/chaptersparts @@ -0,0 +1,6 @@ +xpointer(//chapitre[2]) +xpointer(//chapter[2]) +xpointer(//chapitre[2])xpointer(//chapter[2]) +xpointer(id("chapter1")) +xpointer(//*[@id="chapter1"]) +xpointer(id("chapter1"))xpointer(//*[@id="chapter1"]) diff --git a/test/XPath/xptr/chaptersrange b/test/XPath/xptr/chaptersrange new file mode 100644 index 0000000..4d7a55b --- /dev/null +++ b/test/XPath/xptr/chaptersrange @@ -0,0 +1,4 @@ +xpointer(//chapter[position() = 2]/range-to(following::chapter[1])) +xpointer(//chapter[position() <= 2]/range-to(following::chapter[1])) +xpointer(//chapter[position() = last()]/range-to(following::chapter[1])) +xpointer(//chapter[position() = 3]/range-to(/.//chapter[position() = 1])) diff --git a/test/XPath/xptr/strpoint b/test/XPath/xptr/strpoint new file mode 100644 index 0000000..0916ef1 --- /dev/null +++ b/test/XPath/xptr/strpoint @@ -0,0 +1,9 @@ +xpointer(start-point(string-range(//p,'multiple'))) +xpointer(end-point(string-range(//p,'multiple'))) +xpointer(start-point(string-range(//p,'test'))) +xpointer(end-point(string-range(//p,'test'))) +xpointer(start-point(string-range(//*,'multiple',1,0))) +xpointer(end-point(string-range(//*,'multiple',1,0))) +xpointer(start-point(string-range(//*,'multiple',1,1))) +xpointer(end-point(string-range(//*,'multiple',1,1))) +xpointer(start-point(string-range(//p,'test'))[1]) diff --git a/test/XPath/xptr/strrange b/test/XPath/xptr/strrange new file mode 100644 index 0000000..3231927 --- /dev/null +++ b/test/XPath/xptr/strrange @@ -0,0 +1,6 @@ +xpointer(string-range(//p, 'simple')) +xpointer(string-range(//p, 'test')) +xpointer(string-range(//p, 'difficult')) +xpointer(string-range(//p, 'spanning')) +xpointer(string-range(//p, 'unbalanced')) +xpointer(string-range(//seq, '')) diff --git a/test/XPath/xptr/strrange2 b/test/XPath/xptr/strrange2 new file mode 100644 index 0000000..5133547 --- /dev/null +++ b/test/XPath/xptr/strrange2 @@ -0,0 +1,3 @@ +xpointer(string-range(//p, 'test', 2)) +xpointer(string-range(//p, 'test', 2, 2)) +xpointer(string-range(//p, 'difficult', 1, 0)) diff --git a/test/XPath/xptr/strrange3 b/test/XPath/xptr/strrange3 new file mode 100644 index 0000000..aea5665 --- /dev/null +++ b/test/XPath/xptr/strrange3 @@ -0,0 +1,4 @@ +xpointer(string-range(//p, 'test', 1, 0)) +xpointer(string-range(//*, 'test', 1, 0)) +xpointer(string-range(//p, 'test', 1, 0)[2]) +xpointer(string-range(//*, 'test', 1, 0)[2]) diff --git a/test/XPath/xptr/vidbase b/test/XPath/xptr/vidbase new file mode 100644 index 0000000..b146383 --- /dev/null +++ b/test/XPath/xptr/vidbase @@ -0,0 +1,2 @@ +xpointer(id('chapter1')/p) +xpointer(id('chapter1')/p[1]/range-to(following-sibling::p[2])) diff --git a/test/XPath/xptr/vidchildseq b/test/XPath/xptr/vidchildseq new file mode 100644 index 0000000..fe205dc --- /dev/null +++ b/test/XPath/xptr/vidchildseq @@ -0,0 +1,4 @@ +/1/2/3 +element(/1/2/3) +chapter1/3 +element(chapter1/3) diff --git a/test/XPath/xptr/vidparts b/test/XPath/xptr/vidparts new file mode 100644 index 0000000..3afbbdd --- /dev/null +++ b/test/XPath/xptr/vidparts @@ -0,0 +1,3 @@ +xpointer(id("chapter1")) +xpointer(//*[@id="chapter1"]) +xpointer(id("chapter1"))xpointer(//*[@id="chapter1"]) diff --git a/test/att1 b/test/att1 new file mode 100644 index 0000000..609e5cc --- /dev/null +++ b/test/att1 @@ -0,0 +1,2 @@ + diff --git a/test/att10 b/test/att10 new file mode 100644 index 0000000..5c14dc6 --- /dev/null +++ b/test/att10 @@ -0,0 +1,22 @@ + + + + + + + +]> + + + + + + + + + diff --git a/test/att11 b/test/att11 new file mode 100644 index 0000000..32faaf3 --- /dev/null +++ b/test/att11 @@ -0,0 +1,13 @@ + + + + + +]> + diff --git a/test/att2 b/test/att2 new file mode 100644 index 0000000..e630ff5 --- /dev/null +++ b/test/att2 @@ -0,0 +1 @@ + diff --git a/test/att3 b/test/att3 new file mode 100644 index 0000000..d576fec --- /dev/null +++ b/test/att3 @@ -0,0 +1 @@ + diff --git a/test/att4 b/test/att4 new file mode 100644 index 0000000..2e8bbca --- /dev/null +++ b/test/att4 @@ -0,0 +1,9264 @@ + + + + + + + diff --git a/test/att5 b/test/att5 new file mode 100644 index 0000000..2c05105 --- /dev/null +++ b/test/att5 @@ -0,0 +1,73 @@ +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/att6 b/test/att6 new file mode 100644 index 0000000..79508e9 --- /dev/null +++ b/test/att6 @@ -0,0 +1,6 @@ + + + + pvalue->ReferencedOrder.SellersOrderID + + \ No newline at end of file diff --git a/test/att7 b/test/att7 new file mode 100644 index 0000000..cd31c3d --- /dev/null +++ b/test/att7 @@ -0,0 +1,10 @@ + + + +"> +]> + + + &test.ent; + diff --git a/test/att8 b/test/att8 new file mode 100644 index 0000000..2cb6f56 --- /dev/null +++ b/test/att8 @@ -0,0 +1 @@ +/bsk:DocPart[@docId='20040308152601345236' and @docPartNo=1]XQL Request processing XQL Request processed diff --git a/test/att9 b/test/att9 new file mode 100644 index 0000000..f06b531 --- /dev/null +++ b/test/att9 @@ -0,0 +1,5 @@ + + +]> + diff --git a/test/attrib.xml b/test/attrib.xml new file mode 100644 index 0000000..5be33fa --- /dev/null +++ b/test/attrib.xml @@ -0,0 +1 @@ + diff --git a/test/automata/a b/test/automata/a new file mode 100644 index 0000000..e1f3e91 --- /dev/null +++ b/test/automata/a @@ -0,0 +1,14 @@ +# +# tests just "a" +# +t 0 1 a +f 1 +------- +a +=> +a +a +=> +=> +b +=> diff --git a/test/automata/aba b/test/automata/aba new file mode 100644 index 0000000..ee9a873 --- /dev/null +++ b/test/automata/aba @@ -0,0 +1,26 @@ +# +# Tests a[ab]* +# +t 0 1 a +t 1 1 a +t 1 1 b +f 1 +------- +a +=> +a +a +=> +a +b +a +b +a +b +=> +b +=> +a +c +=> +=> diff --git a/test/automata/abaa b/test/automata/abaa new file mode 100644 index 0000000..7862ba2 --- /dev/null +++ b/test/automata/abaa @@ -0,0 +1,43 @@ +# +# Tests: a[ab]*a{2,3} +# +t 0 1 a +t 1 1 a +t 1 1 b +c 1 2 2 3 a +f 2 +------- +a +a +a +=> +# Pass +a +b +a +a +=> +# Pass +a +a +a +a +a +a +a +a +a +=> +# Pass +a +b +a +=> +# Fail +a +b +a +a +b +=> +# Fail diff --git a/test/automata/abba b/test/automata/abba new file mode 100644 index 0000000..86c08f1 --- /dev/null +++ b/test/automata/abba @@ -0,0 +1,30 @@ +# +# Tests ab*a with an eliminated epsilon transition +# +t 0 1 a +t 1 2 b +e 1 2 +t 2 2 b +t 2 3 a +f 3 +------- +a +a +=> +# Pass +a +b +b +a +=> +# Pass +a +b +=> +# Fail +a +b +a +b +=> +# Fail diff --git a/test/automata/po b/test/automata/po new file mode 100644 index 0000000..592b8c9 --- /dev/null +++ b/test/automata/po @@ -0,0 +1,19 @@ +# +# purchaseOrder +# +t 0 1 shipTo +t 1 2 billTo +t 2 3 comment +t 3 4 items +e 2 3 +f 4 +------- +shipTo +billTo +comment +items +=> +shipTo +billTo +items +=> diff --git a/test/badcomment.xml b/test/badcomment.xml new file mode 100644 index 0000000..147414c --- /dev/null +++ b/test/badcomment.xml @@ -0,0 +1,18 @@ + + + +Char* ']]>' Char*)) +']]>' +CDATA sections +| '<!DOCTYPE' +(Char - ('[' | ']'))+ +('[' +simpleDTD* +']')? '>' +doc type declaration +simpleDTD +'<!&como;' +(Char* - +(Char* '&comc;' Char*)) +'&comc;>'--> + diff --git a/test/bigentname.xml b/test/bigentname.xml new file mode 100644 index 0000000..aa6e336 --- /dev/null +++ b/test/bigentname.xml @@ -0,0 +1,5 @@ + + +]> +&WhatHeSaid; diff --git a/test/bigname.xml b/test/bigname.xml new file mode 100644 index 0000000..6c303e4 --- /dev/null +++ b/test/bigname.xml @@ -0,0 +1 @@ + diff --git a/test/bigname2.xml b/test/bigname2.xml new file mode 100644 index 0000000..c67cda9 --- /dev/null +++ b/test/bigname2.xml @@ -0,0 +1 @@ + diff --git a/test/c14n/1-1-without-comments/doc.dtd b/test/c14n/1-1-without-comments/doc.dtd new file mode 100755 index 0000000..c460239 --- /dev/null +++ b/test/c14n/1-1-without-comments/doc.dtd @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/test/c14n/1-1-without-comments/example-1.xml b/test/c14n/1-1-without-comments/example-1.xml new file mode 100755 index 0000000..ed450c7 --- /dev/null +++ b/test/c14n/1-1-without-comments/example-1.xml @@ -0,0 +1,14 @@ + + + + + + +Hello, world! + + + + + + diff --git a/test/c14n/1-1-without-comments/example-2.xml b/test/c14n/1-1-without-comments/example-2.xml new file mode 100755 index 0000000..74eeea1 --- /dev/null +++ b/test/c14n/1-1-without-comments/example-2.xml @@ -0,0 +1,11 @@ + + + A B + + A + + B + A B + C + + diff --git a/test/c14n/1-1-without-comments/example-3.xml b/test/c14n/1-1-without-comments/example-3.xml new file mode 100755 index 0000000..a7a1950 --- /dev/null +++ b/test/c14n/1-1-without-comments/example-3.xml @@ -0,0 +1,18 @@ +]> + + + + + + + + + + + + + + diff --git a/test/c14n/1-1-without-comments/example-4.xml b/test/c14n/1-1-without-comments/example-4.xml new file mode 100755 index 0000000..3fba138 --- /dev/null +++ b/test/c14n/1-1-without-comments/example-4.xml @@ -0,0 +1,9 @@ +]> + + First line Second line + 2 + "0" && value<"10" ?"valid":"error"]]> + valid + + + diff --git a/test/c14n/1-1-without-comments/example-5.xml b/test/c14n/1-1-without-comments/example-5.xml new file mode 100755 index 0000000..92c5322 --- /dev/null +++ b/test/c14n/1-1-without-comments/example-5.xml @@ -0,0 +1,12 @@ + + + + + +]> + + &ent1;, &ent2;! + + + diff --git a/test/c14n/1-1-without-comments/example-6.xml b/test/c14n/1-1-without-comments/example-6.xml new file mode 100755 index 0000000..31e2071 --- /dev/null +++ b/test/c14n/1-1-without-comments/example-6.xml @@ -0,0 +1,2 @@ + +© diff --git a/test/c14n/1-1-without-comments/example-7.xml b/test/c14n/1-1-without-comments/example-7.xml new file mode 100755 index 0000000..41171cb --- /dev/null +++ b/test/c14n/1-1-without-comments/example-7.xml @@ -0,0 +1,11 @@ + + +]> + + + + + + + diff --git a/test/c14n/1-1-without-comments/example-7.xpath b/test/c14n/1-1-without-comments/example-7.xpath new file mode 100755 index 0000000..84ddb08 --- /dev/null +++ b/test/c14n/1-1-without-comments/example-7.xpath @@ -0,0 +1,10 @@ + + (//.|//@*|//namespace::*) + [ + self::ietf:e1 + or + (parent::ietf:e1 and not(self::text() or self::e2)) + or + count(id("E3")|ancestor-or-self::node()) = count(ancestor-or-self::node()) + ] + \ No newline at end of file diff --git a/test/c14n/1-1-without-comments/example-8.xml b/test/c14n/1-1-without-comments/example-8.xml new file mode 100755 index 0000000..a07f6c7 --- /dev/null +++ b/test/c14n/1-1-without-comments/example-8.xml @@ -0,0 +1,11 @@ + + +]> + + + + + + + diff --git a/test/c14n/1-1-without-comments/example-8.xpath b/test/c14n/1-1-without-comments/example-8.xpath new file mode 100755 index 0000000..84ddb08 --- /dev/null +++ b/test/c14n/1-1-without-comments/example-8.xpath @@ -0,0 +1,10 @@ + + (//.|//@*|//namespace::*) + [ + self::ietf:e1 + or + (parent::ietf:e1 and not(self::text() or self::e2)) + or + count(id("E3")|ancestor-or-self::node()) = count(ancestor-or-self::node()) + ] + \ No newline at end of file diff --git a/test/c14n/1-1-without-comments/world.txt b/test/c14n/1-1-without-comments/world.txt new file mode 100755 index 0000000..04fea06 --- /dev/null +++ b/test/c14n/1-1-without-comments/world.txt @@ -0,0 +1 @@ +world \ No newline at end of file diff --git a/test/c14n/1-1-without-comments/xmlbase-c14n11spec-102.xml b/test/c14n/1-1-without-comments/xmlbase-c14n11spec-102.xml new file mode 100644 index 0000000..18b7c75 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlbase-c14n11spec-102.xml @@ -0,0 +1,16 @@ + + + +]> + + + + + + + \ No newline at end of file diff --git a/test/c14n/1-1-without-comments/xmlbase-c14n11spec-102.xpath b/test/c14n/1-1-without-comments/xmlbase-c14n11spec-102.xpath new file mode 100644 index 0000000..e919acc --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlbase-c14n11spec-102.xpath @@ -0,0 +1,9 @@ + + +(//. | //@* | //namespace::*) +[self::ietf:e1 or (parent::ietf:e1 and not(self::text() or self::e2)) or count(id("E3")|ancestor-or-self::node()) = count(ancestor-or-self::node())] + diff --git a/test/c14n/1-1-without-comments/xmlbase-c14n11spec2-102.xml b/test/c14n/1-1-without-comments/xmlbase-c14n11spec2-102.xml new file mode 100644 index 0000000..d271afd --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlbase-c14n11spec2-102.xml @@ -0,0 +1,16 @@ + + + +]> + + + + + + + \ No newline at end of file diff --git a/test/c14n/1-1-without-comments/xmlbase-c14n11spec2-102.xpath b/test/c14n/1-1-without-comments/xmlbase-c14n11spec2-102.xpath new file mode 100644 index 0000000..cdaad3e --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlbase-c14n11spec2-102.xpath @@ -0,0 +1,9 @@ + + +(//. | //@* | //namespace::*) +[self::ietf:e1 or (parent::ietf:e1 and not(self::text() or self::e2)) or count(id("E3")|ancestor-or-self::node()) = count(ancestor-or-self::node())] + diff --git a/test/c14n/1-1-without-comments/xmlbase-c14n11spec3-102.xml b/test/c14n/1-1-without-comments/xmlbase-c14n11spec3-102.xml new file mode 100644 index 0000000..f46e1e9 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlbase-c14n11spec3-102.xml @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/test/c14n/1-1-without-comments/xmlbase-c14n11spec3-102.xpath b/test/c14n/1-1-without-comments/xmlbase-c14n11spec3-102.xpath new file mode 100644 index 0000000..1d8dd71 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlbase-c14n11spec3-102.xpath @@ -0,0 +1,9 @@ + + +(//. | //@* | //namespace::*) +[self::a or ancestor-or-self::d] + diff --git a/test/c14n/1-1-without-comments/xmlbase-prop-1.xml b/test/c14n/1-1-without-comments/xmlbase-prop-1.xml new file mode 100755 index 0000000..24a899b --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlbase-prop-1.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/test/c14n/1-1-without-comments/xmlbase-prop-1.xpath b/test/c14n/1-1-without-comments/xmlbase-prop-1.xpath new file mode 100755 index 0000000..168e98d --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlbase-prop-1.xpath @@ -0,0 +1,11 @@ + + +(//. | //@* | //namespace::*) +[ancestor-or-self::ietf:c14n11XmlBaseDoc1 and not(ancestor-or-self::ietf:e2)] + diff --git a/test/c14n/1-1-without-comments/xmlbase-prop-2.xml b/test/c14n/1-1-without-comments/xmlbase-prop-2.xml new file mode 100755 index 0000000..4c85329 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlbase-prop-2.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + diff --git a/test/c14n/1-1-without-comments/xmlbase-prop-2.xpath b/test/c14n/1-1-without-comments/xmlbase-prop-2.xpath new file mode 100755 index 0000000..fdab085 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlbase-prop-2.xpath @@ -0,0 +1,10 @@ + + +(//. | //@* | //namespace::*) +[ancestor-or-self::ietf:e1] + diff --git a/test/c14n/1-1-without-comments/xmlbase-prop-3.xml b/test/c14n/1-1-without-comments/xmlbase-prop-3.xml new file mode 100755 index 0000000..19ce738 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlbase-prop-3.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/test/c14n/1-1-without-comments/xmlbase-prop-3.xpath b/test/c14n/1-1-without-comments/xmlbase-prop-3.xpath new file mode 100755 index 0000000..de87508 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlbase-prop-3.xpath @@ -0,0 +1,11 @@ + + +(//. | //@* | //namespace::*) +[ancestor-or-self::ietf:e11] + diff --git a/test/c14n/1-1-without-comments/xmlbase-prop-4.xml b/test/c14n/1-1-without-comments/xmlbase-prop-4.xml new file mode 100755 index 0000000..57e4436 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlbase-prop-4.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/test/c14n/1-1-without-comments/xmlbase-prop-4.xpath b/test/c14n/1-1-without-comments/xmlbase-prop-4.xpath new file mode 100755 index 0000000..818ef10 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlbase-prop-4.xpath @@ -0,0 +1,11 @@ + + +(//. | //@* | //namespace::*) +[ancestor-or-self::ietf:e111] + diff --git a/test/c14n/1-1-without-comments/xmlbase-prop-5.xml b/test/c14n/1-1-without-comments/xmlbase-prop-5.xml new file mode 100755 index 0000000..f92a897 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlbase-prop-5.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/test/c14n/1-1-without-comments/xmlbase-prop-5.xpath b/test/c14n/1-1-without-comments/xmlbase-prop-5.xpath new file mode 100755 index 0000000..7020803 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlbase-prop-5.xpath @@ -0,0 +1,11 @@ + + +(//. | //@* | //namespace::*) +[ancestor-or-self::ietf:e21] + diff --git a/test/c14n/1-1-without-comments/xmlbase-prop-6.xml b/test/c14n/1-1-without-comments/xmlbase-prop-6.xml new file mode 100755 index 0000000..62824f9 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlbase-prop-6.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + diff --git a/test/c14n/1-1-without-comments/xmlbase-prop-6.xpath b/test/c14n/1-1-without-comments/xmlbase-prop-6.xpath new file mode 100755 index 0000000..2b93c64 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlbase-prop-6.xpath @@ -0,0 +1,10 @@ + + +(//. | //@* | //namespace::*) +[ancestor-or-self::ietf:e3] + diff --git a/test/c14n/1-1-without-comments/xmlbase-prop-7.xml b/test/c14n/1-1-without-comments/xmlbase-prop-7.xml new file mode 100755 index 0000000..ee13916 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlbase-prop-7.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + diff --git a/test/c14n/1-1-without-comments/xmlbase-prop-7.xpath b/test/c14n/1-1-without-comments/xmlbase-prop-7.xpath new file mode 100755 index 0000000..7d37ab8 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlbase-prop-7.xpath @@ -0,0 +1,10 @@ + + +(//. | //@* | //namespace::*) +[ancestor-or-self::ietf:c14n11XmlBaseDoc1 and not(ancestor-or-self::ietf:e1 or ancestor-or-self::ietf:e2)] + diff --git a/test/c14n/1-1-without-comments/xmlid-prop-1.xml b/test/c14n/1-1-without-comments/xmlid-prop-1.xml new file mode 100644 index 0000000..ca58c2b --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlid-prop-1.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/c14n/1-1-without-comments/xmlid-prop-1.xpath b/test/c14n/1-1-without-comments/xmlid-prop-1.xpath new file mode 100755 index 0000000..dc5573c --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlid-prop-1.xpath @@ -0,0 +1,10 @@ + + +(//. | //@* | //namespace::*) +[ancestor-or-self::ietf:e1] + diff --git a/test/c14n/1-1-without-comments/xmlid-prop-2.xml b/test/c14n/1-1-without-comments/xmlid-prop-2.xml new file mode 100644 index 0000000..ca58c2b --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlid-prop-2.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/c14n/1-1-without-comments/xmlid-prop-2.xpath b/test/c14n/1-1-without-comments/xmlid-prop-2.xpath new file mode 100755 index 0000000..bed44b7 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlid-prop-2.xpath @@ -0,0 +1,10 @@ + + +(//. | //@* | //namespace::*) +[ancestor-or-self::ietf:e11 or ancestor-or-self::ietf:e12] + diff --git a/test/c14n/1-1-without-comments/xmllang-prop-1.xml b/test/c14n/1-1-without-comments/xmllang-prop-1.xml new file mode 100644 index 0000000..1111e33 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmllang-prop-1.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/c14n/1-1-without-comments/xmllang-prop-1.xpath b/test/c14n/1-1-without-comments/xmllang-prop-1.xpath new file mode 100755 index 0000000..224924e --- /dev/null +++ b/test/c14n/1-1-without-comments/xmllang-prop-1.xpath @@ -0,0 +1,10 @@ + + +(//. | //@* | //namespace::*) +[ancestor-or-self::ietf:e1] + diff --git a/test/c14n/1-1-without-comments/xmllang-prop-2.xml b/test/c14n/1-1-without-comments/xmllang-prop-2.xml new file mode 100644 index 0000000..1111e33 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmllang-prop-2.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/c14n/1-1-without-comments/xmllang-prop-2.xpath b/test/c14n/1-1-without-comments/xmllang-prop-2.xpath new file mode 100755 index 0000000..ca21758 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmllang-prop-2.xpath @@ -0,0 +1,10 @@ + + +(//. | //@* | //namespace::*) +[ancestor-or-self::ietf:e2] + diff --git a/test/c14n/1-1-without-comments/xmllang-prop-3.xml b/test/c14n/1-1-without-comments/xmllang-prop-3.xml new file mode 100644 index 0000000..1111e33 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmllang-prop-3.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/c14n/1-1-without-comments/xmllang-prop-3.xpath b/test/c14n/1-1-without-comments/xmllang-prop-3.xpath new file mode 100755 index 0000000..86e77fa --- /dev/null +++ b/test/c14n/1-1-without-comments/xmllang-prop-3.xpath @@ -0,0 +1,10 @@ + + +(//. | //@* | //namespace::*) +[ancestor-or-self::ietf:e11] + diff --git a/test/c14n/1-1-without-comments/xmllang-prop-4.xml b/test/c14n/1-1-without-comments/xmllang-prop-4.xml new file mode 100644 index 0000000..1111e33 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmllang-prop-4.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/c14n/1-1-without-comments/xmllang-prop-4.xpath b/test/c14n/1-1-without-comments/xmllang-prop-4.xpath new file mode 100755 index 0000000..fdc7661 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmllang-prop-4.xpath @@ -0,0 +1,10 @@ + + +(//. | //@* | //namespace::*) +[ancestor-or-self::ietf:e11 or ancestor-or-self::ietf:e12] + diff --git a/test/c14n/1-1-without-comments/xmlspace-prop-1.xml b/test/c14n/1-1-without-comments/xmlspace-prop-1.xml new file mode 100644 index 0000000..62da9e4 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlspace-prop-1.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/c14n/1-1-without-comments/xmlspace-prop-1.xpath b/test/c14n/1-1-without-comments/xmlspace-prop-1.xpath new file mode 100755 index 0000000..bad373a --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlspace-prop-1.xpath @@ -0,0 +1,10 @@ + + +(//. | //@* | //namespace::*) +[ancestor-or-self::ietf:e1] + diff --git a/test/c14n/1-1-without-comments/xmlspace-prop-2.xml b/test/c14n/1-1-without-comments/xmlspace-prop-2.xml new file mode 100644 index 0000000..62da9e4 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlspace-prop-2.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/c14n/1-1-without-comments/xmlspace-prop-2.xpath b/test/c14n/1-1-without-comments/xmlspace-prop-2.xpath new file mode 100755 index 0000000..ffb7d85 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlspace-prop-2.xpath @@ -0,0 +1,10 @@ + + +(//. | //@* | //namespace::*) +[ancestor-or-self::ietf:e2] + diff --git a/test/c14n/1-1-without-comments/xmlspace-prop-3.xml b/test/c14n/1-1-without-comments/xmlspace-prop-3.xml new file mode 100644 index 0000000..62da9e4 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlspace-prop-3.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/c14n/1-1-without-comments/xmlspace-prop-3.xpath b/test/c14n/1-1-without-comments/xmlspace-prop-3.xpath new file mode 100755 index 0000000..3f27aed --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlspace-prop-3.xpath @@ -0,0 +1,10 @@ + + +(//. | //@* | //namespace::*) +[ancestor-or-self::ietf:e11] + diff --git a/test/c14n/1-1-without-comments/xmlspace-prop-4.xml b/test/c14n/1-1-without-comments/xmlspace-prop-4.xml new file mode 100644 index 0000000..62da9e4 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlspace-prop-4.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/c14n/1-1-without-comments/xmlspace-prop-4.xpath b/test/c14n/1-1-without-comments/xmlspace-prop-4.xpath new file mode 100755 index 0000000..49c4395 --- /dev/null +++ b/test/c14n/1-1-without-comments/xmlspace-prop-4.xpath @@ -0,0 +1,10 @@ + + +(//. | //@* | //namespace::*) +[ancestor-or-self::ietf:e11 or ancestor-or-self::ietf:e12] + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-09.xml b/test/c14n/exc-without-comments/merlin-c14n-two-09.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-09.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-09.xpath b/test/c14n/exc-without-comments/merlin-c14n-two-09.xpath new file mode 100644 index 0000000..717b66a --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-09.xpath @@ -0,0 +1,8 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something + ] + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-10.xml b/test/c14n/exc-without-comments/merlin-c14n-two-10.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-10.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-10.xpath b/test/c14n/exc-without-comments/merlin-c14n-two-10.xpath new file mode 100644 index 0000000..8ea2795 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-10.xpath @@ -0,0 +1,12 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + ((name() != "bar") or parent::bar:Something) and + ((name() != "foo") or parent::foo:Something) and + ((name() != "baz") or parent::baz:Something) and + ((name() != "") or self::text()) + ] + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-11.xml b/test/c14n/exc-without-comments/merlin-c14n-two-11.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-11.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-11.xpath b/test/c14n/exc-without-comments/merlin-c14n-two-11.xpath new file mode 100644 index 0000000..37d65e0 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-11.xpath @@ -0,0 +1,11 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + ] + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-12.xml b/test/c14n/exc-without-comments/merlin-c14n-two-12.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-12.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-12.xpath b/test/c14n/exc-without-comments/merlin-c14n-two-12.xpath new file mode 100644 index 0000000..ed8ae68 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-12.xpath @@ -0,0 +1,12 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + not (self::foo:Something) and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + ] + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-13.xml b/test/c14n/exc-without-comments/merlin-c14n-two-13.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-13.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-13.xpath b/test/c14n/exc-without-comments/merlin-c14n-two-13.xpath new file mode 100644 index 0000000..7d0170b --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-13.xpath @@ -0,0 +1,10 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) != + count(parent::node()/namespace::* | self::node())) + ] + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-14.xml b/test/c14n/exc-without-comments/merlin-c14n-two-14.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-14.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-14.xpath b/test/c14n/exc-without-comments/merlin-c14n-two-14.xpath new file mode 100644 index 0000000..2732894 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-14.xpath @@ -0,0 +1,10 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "")) + ] + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-15.xml b/test/c14n/exc-without-comments/merlin-c14n-two-15.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-15.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-15.xpath b/test/c14n/exc-without-comments/merlin-c14n-two-15.xpath new file mode 100644 index 0000000..ae6589e --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-15.xpath @@ -0,0 +1,10 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) = + count(parent::node()/namespace::* | self::node())) + ] + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-16.xml b/test/c14n/exc-without-comments/merlin-c14n-two-16.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-16.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-16.xpath b/test/c14n/exc-without-comments/merlin-c14n-two-16.xpath new file mode 100644 index 0000000..bdca528 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-16.xpath @@ -0,0 +1,9 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + (string(self::node()) = namespace-uri(parent::node())) + ] + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-17.xml b/test/c14n/exc-without-comments/merlin-c14n-two-17.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-17.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-17.xpath b/test/c14n/exc-without-comments/merlin-c14n-two-17.xpath new file mode 100644 index 0000000..24fdd3f --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-17.xpath @@ -0,0 +1,12 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + ((name() = "") and + ((count(ancestor-or-self::node()) mod 2) = 1))) + ] + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-18.ns b/test/c14n/exc-without-comments/merlin-c14n-two-18.ns new file mode 100644 index 0000000..3886aed --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-18.ns @@ -0,0 +1 @@ +#default \ No newline at end of file diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-18.xml b/test/c14n/exc-without-comments/merlin-c14n-two-18.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-18.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-18.xpath b/test/c14n/exc-without-comments/merlin-c14n-two-18.xpath new file mode 100644 index 0000000..717b66a --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-18.xpath @@ -0,0 +1,8 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something + ] + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-19.ns b/test/c14n/exc-without-comments/merlin-c14n-two-19.ns new file mode 100644 index 0000000..3886aed --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-19.ns @@ -0,0 +1 @@ +#default \ No newline at end of file diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-19.xml b/test/c14n/exc-without-comments/merlin-c14n-two-19.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-19.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-19.xpath b/test/c14n/exc-without-comments/merlin-c14n-two-19.xpath new file mode 100644 index 0000000..8ea2795 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-19.xpath @@ -0,0 +1,12 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + ((name() != "bar") or parent::bar:Something) and + ((name() != "foo") or parent::foo:Something) and + ((name() != "baz") or parent::baz:Something) and + ((name() != "") or self::text()) + ] + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-20.ns b/test/c14n/exc-without-comments/merlin-c14n-two-20.ns new file mode 100644 index 0000000..3886aed --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-20.ns @@ -0,0 +1 @@ +#default \ No newline at end of file diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-20.xml b/test/c14n/exc-without-comments/merlin-c14n-two-20.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-20.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-20.xpath b/test/c14n/exc-without-comments/merlin-c14n-two-20.xpath new file mode 100644 index 0000000..37d65e0 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-20.xpath @@ -0,0 +1,11 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + ] + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-21.ns b/test/c14n/exc-without-comments/merlin-c14n-two-21.ns new file mode 100644 index 0000000..3886aed --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-21.ns @@ -0,0 +1 @@ +#default \ No newline at end of file diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-21.xml b/test/c14n/exc-without-comments/merlin-c14n-two-21.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-21.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-21.xpath b/test/c14n/exc-without-comments/merlin-c14n-two-21.xpath new file mode 100644 index 0000000..ed8ae68 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-21.xpath @@ -0,0 +1,12 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + not (self::foo:Something) and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + ] + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-22.ns b/test/c14n/exc-without-comments/merlin-c14n-two-22.ns new file mode 100644 index 0000000..3886aed --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-22.ns @@ -0,0 +1 @@ +#default \ No newline at end of file diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-22.xml b/test/c14n/exc-without-comments/merlin-c14n-two-22.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-22.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-22.xpath b/test/c14n/exc-without-comments/merlin-c14n-two-22.xpath new file mode 100644 index 0000000..7d0170b --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-22.xpath @@ -0,0 +1,10 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) != + count(parent::node()/namespace::* | self::node())) + ] + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-23.ns b/test/c14n/exc-without-comments/merlin-c14n-two-23.ns new file mode 100644 index 0000000..3886aed --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-23.ns @@ -0,0 +1 @@ +#default \ No newline at end of file diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-23.xml b/test/c14n/exc-without-comments/merlin-c14n-two-23.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-23.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-23.xpath b/test/c14n/exc-without-comments/merlin-c14n-two-23.xpath new file mode 100644 index 0000000..2732894 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-23.xpath @@ -0,0 +1,10 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "")) + ] + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-24.ns b/test/c14n/exc-without-comments/merlin-c14n-two-24.ns new file mode 100644 index 0000000..3886aed --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-24.ns @@ -0,0 +1 @@ +#default \ No newline at end of file diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-24.xml b/test/c14n/exc-without-comments/merlin-c14n-two-24.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-24.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-24.xpath b/test/c14n/exc-without-comments/merlin-c14n-two-24.xpath new file mode 100644 index 0000000..ae6589e --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-24.xpath @@ -0,0 +1,10 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) = + count(parent::node()/namespace::* | self::node())) + ] + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-25.ns b/test/c14n/exc-without-comments/merlin-c14n-two-25.ns new file mode 100644 index 0000000..3886aed --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-25.ns @@ -0,0 +1 @@ +#default \ No newline at end of file diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-25.xml b/test/c14n/exc-without-comments/merlin-c14n-two-25.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-25.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-25.xpath b/test/c14n/exc-without-comments/merlin-c14n-two-25.xpath new file mode 100644 index 0000000..bdca528 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-25.xpath @@ -0,0 +1,9 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + (string(self::node()) = namespace-uri(parent::node())) + ] + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-26.ns b/test/c14n/exc-without-comments/merlin-c14n-two-26.ns new file mode 100644 index 0000000..3886aed --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-26.ns @@ -0,0 +1 @@ +#default \ No newline at end of file diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-26.xml b/test/c14n/exc-without-comments/merlin-c14n-two-26.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-26.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/exc-without-comments/merlin-c14n-two-26.xpath b/test/c14n/exc-without-comments/merlin-c14n-two-26.xpath new file mode 100644 index 0000000..24fdd3f --- /dev/null +++ b/test/c14n/exc-without-comments/merlin-c14n-two-26.xpath @@ -0,0 +1,12 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + ((name() = "") and + ((count(ancestor-or-self::node()) mod 2) = 1))) + ] + diff --git a/test/c14n/exc-without-comments/test-0.xml b/test/c14n/exc-without-comments/test-0.xml new file mode 100644 index 0000000..c7c42d9 --- /dev/null +++ b/test/c14n/exc-without-comments/test-0.xml @@ -0,0 +1,18 @@ +]> + + + + + + + + + + + + + + diff --git a/test/c14n/exc-without-comments/test-0.xpath b/test/c14n/exc-without-comments/test-0.xpath new file mode 100644 index 0000000..faa0070 --- /dev/null +++ b/test/c14n/exc-without-comments/test-0.xpath @@ -0,0 +1,3 @@ + +(//. | //@* | //namespace::*)[ancestor-or-self::e6] + \ No newline at end of file diff --git a/test/c14n/exc-without-comments/test-1.ns b/test/c14n/exc-without-comments/test-1.ns new file mode 100644 index 0000000..2e65efe --- /dev/null +++ b/test/c14n/exc-without-comments/test-1.ns @@ -0,0 +1 @@ +a \ No newline at end of file diff --git a/test/c14n/exc-without-comments/test-1.xml b/test/c14n/exc-without-comments/test-1.xml new file mode 100644 index 0000000..c7c42d9 --- /dev/null +++ b/test/c14n/exc-without-comments/test-1.xml @@ -0,0 +1,18 @@ +]> + + + + + + + + + + + + + + diff --git a/test/c14n/exc-without-comments/test-1.xpath b/test/c14n/exc-without-comments/test-1.xpath new file mode 100644 index 0000000..faa0070 --- /dev/null +++ b/test/c14n/exc-without-comments/test-1.xpath @@ -0,0 +1,3 @@ + +(//. | //@* | //namespace::*)[ancestor-or-self::e6] + \ No newline at end of file diff --git a/test/c14n/exc-without-comments/test-2.xml b/test/c14n/exc-without-comments/test-2.xml new file mode 100644 index 0000000..83d15a7 --- /dev/null +++ b/test/c14n/exc-without-comments/test-2.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + sj1VXDB2VMCU5qmva2OtDw3kKOs= + + + ... + + + ... + + + diff --git a/test/c14n/exc-without-comments/test-2.xpath b/test/c14n/exc-without-comments/test-2.xpath new file mode 100644 index 0000000..e57652f --- /dev/null +++ b/test/c14n/exc-without-comments/test-2.xpath @@ -0,0 +1,6 @@ + +(//. | //@* | //namespace::*) +[ + ancestor-or-self::ds:SignedInfo +] + \ No newline at end of file diff --git a/test/c14n/with-comments/doc.dtd b/test/c14n/with-comments/doc.dtd new file mode 100644 index 0000000..c460239 --- /dev/null +++ b/test/c14n/with-comments/doc.dtd @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/test/c14n/with-comments/example-1.xml b/test/c14n/with-comments/example-1.xml new file mode 100644 index 0000000..ed450c7 --- /dev/null +++ b/test/c14n/with-comments/example-1.xml @@ -0,0 +1,14 @@ + + + + + + +Hello, world! + + + + + + diff --git a/test/c14n/with-comments/example-2.xml b/test/c14n/with-comments/example-2.xml new file mode 100644 index 0000000..74eeea1 --- /dev/null +++ b/test/c14n/with-comments/example-2.xml @@ -0,0 +1,11 @@ + + + A B + + A + + B + A B + C + + diff --git a/test/c14n/with-comments/example-3.xml b/test/c14n/with-comments/example-3.xml new file mode 100644 index 0000000..a7a1950 --- /dev/null +++ b/test/c14n/with-comments/example-3.xml @@ -0,0 +1,18 @@ +]> + + + + + + + + + + + + + + diff --git a/test/c14n/with-comments/example-4.xml b/test/c14n/with-comments/example-4.xml new file mode 100644 index 0000000..3fba138 --- /dev/null +++ b/test/c14n/with-comments/example-4.xml @@ -0,0 +1,9 @@ +]> + + First line Second line + 2 + "0" && value<"10" ?"valid":"error"]]> + valid + + + diff --git a/test/c14n/with-comments/example-5.xml b/test/c14n/with-comments/example-5.xml new file mode 100644 index 0000000..92c5322 --- /dev/null +++ b/test/c14n/with-comments/example-5.xml @@ -0,0 +1,12 @@ + + + + + +]> + + &ent1;, &ent2;! + + + diff --git a/test/c14n/with-comments/example-6.xml b/test/c14n/with-comments/example-6.xml new file mode 100644 index 0000000..31e2071 --- /dev/null +++ b/test/c14n/with-comments/example-6.xml @@ -0,0 +1,2 @@ + +© diff --git a/test/c14n/with-comments/example-7.xml b/test/c14n/with-comments/example-7.xml new file mode 100644 index 0000000..41171cb --- /dev/null +++ b/test/c14n/with-comments/example-7.xml @@ -0,0 +1,11 @@ + + +]> + + + + + + + diff --git a/test/c14n/with-comments/example-7.xpath b/test/c14n/with-comments/example-7.xpath new file mode 100644 index 0000000..84ddb08 --- /dev/null +++ b/test/c14n/with-comments/example-7.xpath @@ -0,0 +1,10 @@ + + (//.|//@*|//namespace::*) + [ + self::ietf:e1 + or + (parent::ietf:e1 and not(self::text() or self::e2)) + or + count(id("E3")|ancestor-or-self::node()) = count(ancestor-or-self::node()) + ] + \ No newline at end of file diff --git a/test/c14n/with-comments/world.txt b/test/c14n/with-comments/world.txt new file mode 100644 index 0000000..04fea06 --- /dev/null +++ b/test/c14n/with-comments/world.txt @@ -0,0 +1 @@ +world \ No newline at end of file diff --git a/test/c14n/without-comments/doc.dtd b/test/c14n/without-comments/doc.dtd new file mode 100644 index 0000000..c460239 --- /dev/null +++ b/test/c14n/without-comments/doc.dtd @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/test/c14n/without-comments/example-1.xml b/test/c14n/without-comments/example-1.xml new file mode 100644 index 0000000..ed450c7 --- /dev/null +++ b/test/c14n/without-comments/example-1.xml @@ -0,0 +1,14 @@ + + + + + + +Hello, world! + + + + + + diff --git a/test/c14n/without-comments/example-2.xml b/test/c14n/without-comments/example-2.xml new file mode 100644 index 0000000..74eeea1 --- /dev/null +++ b/test/c14n/without-comments/example-2.xml @@ -0,0 +1,11 @@ + + + A B + + A + + B + A B + C + + diff --git a/test/c14n/without-comments/example-3.xml b/test/c14n/without-comments/example-3.xml new file mode 100644 index 0000000..a7a1950 --- /dev/null +++ b/test/c14n/without-comments/example-3.xml @@ -0,0 +1,18 @@ +]> + + + + + + + + + + + + + + diff --git a/test/c14n/without-comments/example-4.xml b/test/c14n/without-comments/example-4.xml new file mode 100644 index 0000000..3fba138 --- /dev/null +++ b/test/c14n/without-comments/example-4.xml @@ -0,0 +1,9 @@ +]> + + First line Second line + 2 + "0" && value<"10" ?"valid":"error"]]> + valid + + + diff --git a/test/c14n/without-comments/example-5.xml b/test/c14n/without-comments/example-5.xml new file mode 100644 index 0000000..92c5322 --- /dev/null +++ b/test/c14n/without-comments/example-5.xml @@ -0,0 +1,12 @@ + + + + + +]> + + &ent1;, &ent2;! + + + diff --git a/test/c14n/without-comments/example-6.xml b/test/c14n/without-comments/example-6.xml new file mode 100644 index 0000000..31e2071 --- /dev/null +++ b/test/c14n/without-comments/example-6.xml @@ -0,0 +1,2 @@ + +© diff --git a/test/c14n/without-comments/example-7.xml b/test/c14n/without-comments/example-7.xml new file mode 100644 index 0000000..41171cb --- /dev/null +++ b/test/c14n/without-comments/example-7.xml @@ -0,0 +1,11 @@ + + +]> + + + + + + + diff --git a/test/c14n/without-comments/example-7.xpath b/test/c14n/without-comments/example-7.xpath new file mode 100644 index 0000000..84ddb08 --- /dev/null +++ b/test/c14n/without-comments/example-7.xpath @@ -0,0 +1,10 @@ + + (//.|//@*|//namespace::*) + [ + self::ietf:e1 + or + (parent::ietf:e1 and not(self::text() or self::e2)) + or + count(id("E3")|ancestor-or-self::node()) = count(ancestor-or-self::node()) + ] + \ No newline at end of file diff --git a/test/c14n/without-comments/merlin-c14n-two-00.xml b/test/c14n/without-comments/merlin-c14n-two-00.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/without-comments/merlin-c14n-two-00.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/without-comments/merlin-c14n-two-00.xpath b/test/c14n/without-comments/merlin-c14n-two-00.xpath new file mode 100644 index 0000000..717b66a --- /dev/null +++ b/test/c14n/without-comments/merlin-c14n-two-00.xpath @@ -0,0 +1,8 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something + ] + diff --git a/test/c14n/without-comments/merlin-c14n-two-01.xml b/test/c14n/without-comments/merlin-c14n-two-01.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/without-comments/merlin-c14n-two-01.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/without-comments/merlin-c14n-two-01.xpath b/test/c14n/without-comments/merlin-c14n-two-01.xpath new file mode 100644 index 0000000..8ea2795 --- /dev/null +++ b/test/c14n/without-comments/merlin-c14n-two-01.xpath @@ -0,0 +1,12 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + ((name() != "bar") or parent::bar:Something) and + ((name() != "foo") or parent::foo:Something) and + ((name() != "baz") or parent::baz:Something) and + ((name() != "") or self::text()) + ] + diff --git a/test/c14n/without-comments/merlin-c14n-two-02.xml b/test/c14n/without-comments/merlin-c14n-two-02.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/without-comments/merlin-c14n-two-02.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/without-comments/merlin-c14n-two-02.xpath b/test/c14n/without-comments/merlin-c14n-two-02.xpath new file mode 100644 index 0000000..37d65e0 --- /dev/null +++ b/test/c14n/without-comments/merlin-c14n-two-02.xpath @@ -0,0 +1,11 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + ] + diff --git a/test/c14n/without-comments/merlin-c14n-two-03.xml b/test/c14n/without-comments/merlin-c14n-two-03.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/without-comments/merlin-c14n-two-03.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/without-comments/merlin-c14n-two-03.xpath b/test/c14n/without-comments/merlin-c14n-two-03.xpath new file mode 100644 index 0000000..ed8ae68 --- /dev/null +++ b/test/c14n/without-comments/merlin-c14n-two-03.xpath @@ -0,0 +1,12 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + not (self::foo:Something) and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + ] + diff --git a/test/c14n/without-comments/merlin-c14n-two-04.xml b/test/c14n/without-comments/merlin-c14n-two-04.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/without-comments/merlin-c14n-two-04.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/without-comments/merlin-c14n-two-04.xpath b/test/c14n/without-comments/merlin-c14n-two-04.xpath new file mode 100644 index 0000000..7d0170b --- /dev/null +++ b/test/c14n/without-comments/merlin-c14n-two-04.xpath @@ -0,0 +1,10 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) != + count(parent::node()/namespace::* | self::node())) + ] + diff --git a/test/c14n/without-comments/merlin-c14n-two-05.xml b/test/c14n/without-comments/merlin-c14n-two-05.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/without-comments/merlin-c14n-two-05.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/without-comments/merlin-c14n-two-05.xpath b/test/c14n/without-comments/merlin-c14n-two-05.xpath new file mode 100644 index 0000000..2732894 --- /dev/null +++ b/test/c14n/without-comments/merlin-c14n-two-05.xpath @@ -0,0 +1,10 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "")) + ] + diff --git a/test/c14n/without-comments/merlin-c14n-two-06.xml b/test/c14n/without-comments/merlin-c14n-two-06.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/without-comments/merlin-c14n-two-06.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/without-comments/merlin-c14n-two-06.xpath b/test/c14n/without-comments/merlin-c14n-two-06.xpath new file mode 100644 index 0000000..ae6589e --- /dev/null +++ b/test/c14n/without-comments/merlin-c14n-two-06.xpath @@ -0,0 +1,10 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) = + count(parent::node()/namespace::* | self::node())) + ] + diff --git a/test/c14n/without-comments/merlin-c14n-two-07.xml b/test/c14n/without-comments/merlin-c14n-two-07.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/without-comments/merlin-c14n-two-07.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/without-comments/merlin-c14n-two-07.xpath b/test/c14n/without-comments/merlin-c14n-two-07.xpath new file mode 100644 index 0000000..bdca528 --- /dev/null +++ b/test/c14n/without-comments/merlin-c14n-two-07.xpath @@ -0,0 +1,9 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + (string(self::node()) = namespace-uri(parent::node())) + ] + diff --git a/test/c14n/without-comments/merlin-c14n-two-08.xml b/test/c14n/without-comments/merlin-c14n-two-08.xml new file mode 100644 index 0000000..714c9d1 --- /dev/null +++ b/test/c14n/without-comments/merlin-c14n-two-08.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/c14n/without-comments/merlin-c14n-two-08.xpath b/test/c14n/without-comments/merlin-c14n-two-08.xpath new file mode 100644 index 0000000..24fdd3f --- /dev/null +++ b/test/c14n/without-comments/merlin-c14n-two-08.xpath @@ -0,0 +1,12 @@ + + + (//. | //@* | //namespace::*) + [ + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + ((name() = "") and + ((count(ancestor-or-self::node()) mod 2) = 1))) + ] + diff --git a/test/c14n/without-comments/test-0.xml b/test/c14n/without-comments/test-0.xml new file mode 100644 index 0000000..7e1f9d4 --- /dev/null +++ b/test/c14n/without-comments/test-0.xml @@ -0,0 +1,9 @@ + + + + + + +]> +I am the text. diff --git a/test/c14n/without-comments/test-0.xpath b/test/c14n/without-comments/test-0.xpath new file mode 100644 index 0000000..1fca7bf --- /dev/null +++ b/test/c14n/without-comments/test-0.xpath @@ -0,0 +1,14 @@ + + + + + + +]> + + (//.|//@*|//namespace::*) + [ + self::text() + ] + diff --git a/test/c14n/without-comments/test-1.xml b/test/c14n/without-comments/test-1.xml new file mode 100644 index 0000000..2156615 --- /dev/null +++ b/test/c14n/without-comments/test-1.xml @@ -0,0 +1,43 @@ + + + + + + +]> + + + + + CN=Merlin Hughes,O=Baltimore Technologies\, Ltd.,ST=Dublin,C=IE + + + + CN=Test DSA CA,O=Baltimore Technologies\, Ltd.,ST=Dublin,C=IE + + 970849936 + + + MIIDNzCCAvWgAwIBAgIEOd3+kDAJBgcqhkjOOAQDMFsxCzAJBgNVBAYTAklFMQ8w + DQYDVQQIEwZEdWJsaW4xJTAjBgNVBAoTHEJhbHRpbW9yZSBUZWNobm9sb2dpZXMs + IEx0ZC4xFDASBgNVBAMTC1Rlc3QgRFNBIENBMB4XDTAwMTAwNjE2MzIxNVoXDTAx + MTAwNjE2MzIxNFowXTELMAkGA1UEBhMCSUUxDzANBgNVBAgTBkR1YmxpbjElMCMG + A1UEChMcQmFsdGltb3JlIFRlY2hub2xvZ2llcywgTHRkLjEWMBQGA1UEAxMNTWVy + bGluIEh1Z2hlczCCAbYwggErBgcqhkjOOAQBMIIBHgKBgQDaJjfDTrawMHf8MiUt + Y54b37hSmYNnR3KpGT10uU1Dqppcju06uN0iGbqf947DjkBC25hKnqykK31xBw0E + CPbYq/KC98kghdf2xJCu6B8aqJ95K9jdVflJ3WP7PQxJn+fmM23zy6HYLXVICpfq + etdNj/VHCShZE3bdJiE6VobSFQIVAPQecqS2PaTDprcQnkwx4MHTRXhrAoGAMuGA + lqeB1ax+vyO2+Osubjhl7pHxLu47RIH+/M52DjESA9KMSrwzsYx8yNR2WooByrE0 + t6fu0VncK7UK8olO4t7wpv2z4AFQPRVCKFwo0qgn5aKIkICGMlrRy81avb27wGcW + othx3iPPMtFXtoDqK0JItaI9R8zc1msFhM1GKMYDgYQAAoGActA8YGxrtngg/zKV + vqEOefnwmViFztcnPBYPlJsvh6yKI4iDm68fnp4Mi3RrJ6bZAygFrUIQLxLjV+OJ + tgJAEto0xAs+Mehuq1DkSFEpP3oDzCTOsrOiS1DwQe4oIb7zVk/9l7aPtJMHW0LV + lMdwZNFNNJoqMcT2ZfCPrfvYvQ2jRzBFMB4GA1UdEQQXMBWBE21lcmxpbkBiYWx0 + aW1vcmUuaWUwDgYDVR0PAQH/BAQDAgeAMBMGA1UdIwQMMAqACEJZQG0KwRbPMAkG + ByqGSM44BAMDMQAwLgIVAK4skWEFYgrggaJA8vYAwSjg12+KAhUAwHTo7wd4tENw + 9LAKPklQ/74fH18= + + + + \ No newline at end of file diff --git a/test/c14n/without-comments/test-1.xpath b/test/c14n/without-comments/test-1.xpath new file mode 100644 index 0000000..3c11e29 --- /dev/null +++ b/test/c14n/without-comments/test-1.xpath @@ -0,0 +1,14 @@ + + + + + + +]> + + (//.|//@*|//namespace::*) + [ + ancestor-or-self::dsig:X509Data + ] + diff --git a/test/c14n/without-comments/test-2.xml b/test/c14n/without-comments/test-2.xml new file mode 100644 index 0000000..9fda49e --- /dev/null +++ b/test/c14n/without-comments/test-2.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/test/c14n/without-comments/test-2.xpath b/test/c14n/without-comments/test-2.xpath new file mode 100644 index 0000000..9653bc3 --- /dev/null +++ b/test/c14n/without-comments/test-2.xpath @@ -0,0 +1,8 @@ + + + (//. | //@* | //namespace::*) + [ + ancestor-or-self::n1:elem2 + ] + + \ No newline at end of file diff --git a/test/c14n/without-comments/test-3.xml b/test/c14n/without-comments/test-3.xml new file mode 100644 index 0000000..c7c42d9 --- /dev/null +++ b/test/c14n/without-comments/test-3.xml @@ -0,0 +1,18 @@ +]> + + + + + + + + + + + + + + diff --git a/test/c14n/without-comments/test-3.xpath b/test/c14n/without-comments/test-3.xpath new file mode 100644 index 0000000..faa0070 --- /dev/null +++ b/test/c14n/without-comments/test-3.xpath @@ -0,0 +1,3 @@ + +(//. | //@* | //namespace::*)[ancestor-or-self::e6] + \ No newline at end of file diff --git a/test/c14n/without-comments/world.txt b/test/c14n/without-comments/world.txt new file mode 100644 index 0000000..04fea06 --- /dev/null +++ b/test/c14n/without-comments/world.txt @@ -0,0 +1 @@ +world \ No newline at end of file diff --git a/test/catalogs/catal.script b/test/catalogs/catal.script new file mode 100644 index 0000000..1c644d1 --- /dev/null +++ b/test/catalogs/catal.script @@ -0,0 +1,4 @@ +public "-//OASIS//DTD DocBook XML CALS Table Model V4.1//EN" +public "-//Davenport//DTD DocBook V3.0//EN" +public "-//OASIS//DTD XML Exchange Table Model 19990315//EN" +public "-//Davenport//ENTITIES DocBook Additional General Entities V3.0//EN" diff --git a/test/catalogs/catal.sgml b/test/catalogs/catal.sgml new file mode 100644 index 0000000..03fc2c5 --- /dev/null +++ b/test/catalogs/catal.sgml @@ -0,0 +1,2 @@ +CATALOG catal1.sgml +CATALOG catal2.sgml diff --git a/test/catalogs/catal1.sgml b/test/catalogs/catal1.sgml new file mode 100644 index 0000000..b8319ca --- /dev/null +++ b/test/catalogs/catal1.sgml @@ -0,0 +1 @@ +CATALOG catal3.sgml diff --git a/test/catalogs/catal2.sgml b/test/catalogs/catal2.sgml new file mode 100644 index 0000000..ff4cf8c --- /dev/null +++ b/test/catalogs/catal2.sgml @@ -0,0 +1,4 @@ +PUBLIC "-//Davenport//DTD DocBook V3.0//EN" "docbook.dtd" +PUBLIC "-//USA-DOD//DTD Table Model 951010//EN" "cals-tbl.dtd" +PUBLIC "-//Davenport//ELEMENTS DocBook Information Pool V3.0//EN" "dbpool.mod" +PUBLIC "-//Davenport//ELEMENTS DocBook Document Hierarchy V3.0//EN" "dbhier.mod"PUBLIC "-//Davenport//ENTITIES DocBook Additional General Entities V3.0//EN" "dbgenent.mod" diff --git a/test/catalogs/catal3.sgml b/test/catalogs/catal3.sgml new file mode 100644 index 0000000..bf54724 --- /dev/null +++ b/test/catalogs/catal3.sgml @@ -0,0 +1,8 @@ +PUBLIC "-//OASIS//DTD DocBook XML CALS Table Model V4.1//EN" "calstblx.dtd" +PUBLIC "-//OASIS//DTD XML Exchange Table Model 19990315//EN" "soextblx.dtd" +PUBLIC "-//OASIS//ELEMENTS DocBook XML Information Pool V4.1//EN" "dbpool.mod" +PUBLIC "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.1//EN" "dbhier.mod"PUBLIC "-//OASIS//ENTITIES DocBook XML Additional General Entities V4.1//EN" "dbgenent.mod" +PUBLIC "-//OASIS//ENTITIES DocBook XML Notations V4.1//EN" "dbnotn.mod" +PUBLIC "-//OASIS//ENTITIES DocBook XML Character Entities V4.1//EN" "dbcent.mod" + + diff --git a/test/catalogs/docbook.script b/test/catalogs/docbook.script new file mode 100644 index 0000000..faa06b0 --- /dev/null +++ b/test/catalogs/docbook.script @@ -0,0 +1,5 @@ +resolve toto http://www.oasis-open.org/docbook/xml/4.1.2/dbpoolx.mod +public "-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN" +system urn:publicid:-:OASIS:DTD+DocBook+XML+V4.1.2:EN +public urn:publicid:-:OASIS:DTD+DocBook+XML+V4.1.2:EN +resolve toto toto diff --git a/test/catalogs/docbook.xml b/test/catalogs/docbook.xml new file mode 100644 index 0000000..c8dd2bf --- /dev/null +++ b/test/catalogs/docbook.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/test/catalogs/registry.script b/test/catalogs/registry.script new file mode 100644 index 0000000..9bb944c --- /dev/null +++ b/test/catalogs/registry.script @@ -0,0 +1,4 @@ +resolve toto http://www.oasis-open.org/docbook/xml/4.1.2/dbpoolx.mod +public "-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN" +system http://www.oasis-open.org/docbook/xml/4.1.2/dbpoolx.mod +system urn:publicid:-:OASIS:DTD+DocBook+XML+V4.1.2:EN diff --git a/test/catalogs/registry.xml b/test/catalogs/registry.xml new file mode 100644 index 0000000..5caccfc --- /dev/null +++ b/test/catalogs/registry.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + diff --git a/test/catalogs/stylesheet.xml b/test/catalogs/stylesheet.xml new file mode 100644 index 0000000..4b611e1 --- /dev/null +++ b/test/catalogs/stylesheet.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/test/catalogs/whites.script b/test/catalogs/whites.script new file mode 100644 index 0000000..8f4dd13 --- /dev/null +++ b/test/catalogs/whites.script @@ -0,0 +1,4 @@ +public "-//OASIS//DTD DocBook XML CALS Table Model V4.1//EN " +public "-//Davenport//DTD DocBook V3.0//EN" +public " -//OASIS//DTD XML Exchange Table Model 19990315//EN" +public "-//Davenport//ENTITIES DocBook Additional General Entities V3.0//EN" diff --git a/test/catalogs/whites.sgml b/test/catalogs/whites.sgml new file mode 100644 index 0000000..50269b7 --- /dev/null +++ b/test/catalogs/whites.sgml @@ -0,0 +1,5 @@ +PUBLIC " -//OASIS//DTD DocBook XML CALS Table Model V4.1//EN" "calstblx.dtd" +PUBLIC "-//OASIS//DTD XML Exchange Table Model 19990315//EN " "soextblx.dtd" +PUBLIC "-//Davenport//DTD DocBook + V3.0//EN" "docbook.dtd" +PUBLIC "-//Davenport//ENTITIES DocBook Additional General Entities V3.0//EN" "dbgenent.mod" diff --git a/test/catalogs/whitex.script b/test/catalogs/whitex.script new file mode 100644 index 0000000..a49ca23 --- /dev/null +++ b/test/catalogs/whitex.script @@ -0,0 +1,7 @@ +resolve "toto " http://www.oasis-open.org/docbook/xml/4.1.2/dbpoolx.mod +public "-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN" +public " -//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN" +public "-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN " +system urn:publicid:+-:OASIS:DTD+++DocBook+XML+V4.1.2:EN+ +public urn:publicid:+-:OASIS:DTD+DocBook+XML+++V4.1.2:EN+ +resolve " toto " toto diff --git a/test/catalogs/whitex.xml b/test/catalogs/whitex.xml new file mode 100644 index 0000000..d742887 --- /dev/null +++ b/test/catalogs/whitex.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + diff --git a/test/cdata b/test/cdata new file mode 100644 index 0000000..bd8c474 --- /dev/null +++ b/test/cdata @@ -0,0 +1,3 @@ + +Hello, world!]]> + diff --git a/test/cdata2 b/test/cdata2 new file mode 100644 index 0000000..b4db791 --- /dev/null +++ b/test/cdata2 @@ -0,0 +1,6 @@ + + + ]> + diff --git a/test/comment.xml b/test/comment.xml new file mode 100644 index 0000000..98c5eff --- /dev/null +++ b/test/comment.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/test/comment2.xml b/test/comment2.xml new file mode 100644 index 0000000..9e122ec --- /dev/null +++ b/test/comment2.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/test/comment3.xml b/test/comment3.xml new file mode 100644 index 0000000..395f67c --- /dev/null +++ b/test/comment3.xml @@ -0,0 +1,164 @@ + + + diff --git a/test/comment4.xml b/test/comment4.xml new file mode 100644 index 0000000..93282d8 --- /dev/null +++ b/test/comment4.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/test/comment5.xml b/test/comment5.xml new file mode 100644 index 0000000..398f974 --- /dev/null +++ b/test/comment5.xml @@ -0,0 +1,9 @@ + + + diff --git a/test/comment6.xml b/test/comment6.xml new file mode 100644 index 0000000..014500b --- /dev/null +++ b/test/comment6.xml @@ -0,0 +1,13 @@ + + +]> + diff --git a/test/dav1 b/test/dav1 new file mode 100644 index 0000000..cbfd4c4 --- /dev/null +++ b/test/dav1 @@ -0,0 +1,25 @@ + + + + + + Box type A + + + J.J. Dingleheimerschmidt + + + HTTP/1.1 200 OK + + + + + + + HTTP/1.1 403 Forbidden + The user does not have access to the DingALing property. + + + There has been an access violation error. + + diff --git a/test/dav10 b/test/dav10 new file mode 100644 index 0000000..4b00da4 --- /dev/null +++ b/test/dav10 @@ -0,0 +1,4 @@ + + + http://www.ics.uci.edu/~ejw/contact.html + diff --git a/test/dav11 b/test/dav11 new file mode 100644 index 0000000..8ac23d6 --- /dev/null +++ b/test/dav11 @@ -0,0 +1,21 @@ + + + + + write + exclusive + + + + http://www.ics.uci.edu/~ejw/contact.html + + + Second-604800 + + + opaquelocktoken:xyz122393481230912asdfa09s8df09s7df + + + + + diff --git a/test/dav12 b/test/dav12 new file mode 100644 index 0000000..d8d03fe --- /dev/null +++ b/test/dav12 @@ -0,0 +1,2 @@ + +http://www.ics.uci.edu/~ejw/contact.html diff --git a/test/dav13 b/test/dav13 new file mode 100644 index 0000000..f44ae38 --- /dev/null +++ b/test/dav13 @@ -0,0 +1,16 @@ + + + + + http://webdav.sb.aol.com/workspace/webdav/proposal.doc + + + http://webdav.sb.aol.com/workspace/webdav/ + + HTTP/1.1 202 Accepted + + + http://foo.bar/blah + HTTP/1.1 403 Forbidden + + diff --git a/test/dav15 b/test/dav15 new file mode 100644 index 0000000..b80802e --- /dev/null +++ b/test/dav15 @@ -0,0 +1,20 @@ + + + + + Source + http://foo.bar/program + http://foo.bar/src/main.c + + + Library + http://foo.bar/program + http://foo.bar/src/main.lib + + + Makefile + http://foo.bar/program + http://foo.bar/src/makefile + + + diff --git a/test/dav16 b/test/dav16 new file mode 100644 index 0000000..9a7dc36 --- /dev/null +++ b/test/dav16 @@ -0,0 +1,6 @@ + + + + + + diff --git a/test/dav17 b/test/dav17 new file mode 100644 index 0000000..1137662 --- /dev/null +++ b/test/dav17 @@ -0,0 +1,22 @@ + + + + + + + write + exclusive + + http://foo.com/doc/ + + Jane Smith + Infinite + + iamuri:unique!!!!! + + + + + HTTP/1.1 200 OK + + diff --git a/test/dav18 b/test/dav18 new file mode 100644 index 0000000..3de1c19 --- /dev/null +++ b/test/dav18 @@ -0,0 +1,6 @@ + + + + + + diff --git a/test/dav19 b/test/dav19 new file mode 100644 index 0000000..9535ffc --- /dev/null +++ b/test/dav19 @@ -0,0 +1,18 @@ + + + + + + + Write + Exclusive + + + Write + Shared + + + + HTTP/1.1 200 OK + + diff --git a/test/dav2 b/test/dav2 new file mode 100644 index 0000000..f831b4b --- /dev/null +++ b/test/dav2 @@ -0,0 +1,24 @@ + + + + http://www.foo.bar/container/ + + + Box type A + + + Hadrian + + + HTTP 1.1 200 OK + + + http://www.foo.bar/container/index.html + + + Box type B + + + HTTP 1.1 200 OK + + diff --git a/test/dav3 b/test/dav3 new file mode 100644 index 0000000..986b3fe --- /dev/null +++ b/test/dav3 @@ -0,0 +1,18 @@ + + + + http://www.foo.bar/container/ + + + + + HTTP 1.1 200 OK + + + http://www.foo.bar/container/index.html + + + + HTTP 1.1 200 OK + + diff --git a/test/dav4 b/test/dav4 new file mode 100644 index 0000000..9ab7ceb --- /dev/null +++ b/test/dav4 @@ -0,0 +1,16 @@ + + + + + + Jim Whitehead + Roy Fielding + + + + + + + + + diff --git a/test/dav5 b/test/dav5 new file mode 100644 index 0000000..68ebab9 --- /dev/null +++ b/test/dav5 @@ -0,0 +1,17 @@ + + + + + + + HTTP/1.1 420 Method Failure + + + + + + HTTP/1.1 409 Conflict + + Copyright Owner can not be deleted or +altered. + diff --git a/test/dav6 b/test/dav6 new file mode 100644 index 0000000..3d0de24 --- /dev/null +++ b/test/dav6 @@ -0,0 +1,22 @@ + + + + http://www.microsoft.com/user/yarong/dav_drafts/ + + + + + + + HTTP 1.1 200 OK + + + + http://www.microsoft.com/user/yarong/dav_drafts/base + + + + + HTTP 1.1 200 OK + + diff --git a/test/dav7 b/test/dav7 new file mode 100644 index 0000000..ec4a952 --- /dev/null +++ b/test/dav7 @@ -0,0 +1,16 @@ + + + + http://www.foo.bar/container/resource1 + http://www.foo.bar/container/resource2 + HTTP/1.1 200 OK + + + http://www.foo.bar/container/ + HTTP/1.1 420 Method Failure + + + http://www.foo.bar/container/resource3 + HTTP/1.1 412 Precondition Failed + + diff --git a/test/dav8 b/test/dav8 new file mode 100644 index 0000000..7f99baf --- /dev/null +++ b/test/dav8 @@ -0,0 +1,14 @@ + + + + http://www.foo.bar/othercontainer/resource1 + http://www.foo.bar/othercontainer/resource2 + http://www.foo.bar/othercontainer/ + http://www.foo.bar/othercontainer/R2/D2 + HTTP/1.1 201 Created + + + http://www.foo.bar/othercontainer/R2/ + HTTP/1.1 412 Precondition Failed + + diff --git a/test/dav9 b/test/dav9 new file mode 100644 index 0000000..8ed63b8 --- /dev/null +++ b/test/dav9 @@ -0,0 +1,18 @@ + + + + http://www.foo.bar/container/resource1 + http://www.foo.bar/container/resource2 + http://www.foo.bar/container/ + http://www.foo.bar/container/C2/R2 + HTTP/1.1 201 Created + + + http://www.foo.bar/container/C2 + HTTP/1.1 420 Method Failure + + + http://www.foo.bar/othercontainer/C2 + HTTP/1.1 409 Conflict + + diff --git a/test/defattr.xml b/test/defattr.xml new file mode 100644 index 0000000..3f16a50 --- /dev/null +++ b/test/defattr.xml @@ -0,0 +1,6 @@ + + +]> + diff --git a/test/defattr2.xml b/test/defattr2.xml new file mode 100644 index 0000000..ab50709 --- /dev/null +++ b/test/defattr2.xml @@ -0,0 +1,8 @@ + + +]> + diff --git a/test/dia1 b/test/dia1 new file mode 100644 index 0000000..207bd73 --- /dev/null +++ b/test/dia1 @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/dia2 b/test/dia2 new file mode 100644 index 0000000..207bd73 --- /dev/null +++ b/test/dia2 @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/dtd1 b/test/dtd1 new file mode 100644 index 0000000..35c9dc7 --- /dev/null +++ b/test/dtd1 @@ -0,0 +1,5 @@ + + + + diff --git a/test/dtd10 b/test/dtd10 new file mode 100644 index 0000000..f5e49e7 --- /dev/null +++ b/test/dtd10 @@ -0,0 +1,8 @@ + + + + + +]> +This is a valid document diff --git a/test/dtd11 b/test/dtd11 new file mode 100644 index 0000000..bdd512b --- /dev/null +++ b/test/dtd11 @@ -0,0 +1,5 @@ + + +]> + diff --git a/test/dtd12 b/test/dtd12 new file mode 100644 index 0000000..a0fbf22 --- /dev/null +++ b/test/dtd12 @@ -0,0 +1,5 @@ + + +]> +&WhatHeSaid; diff --git a/test/dtd13 b/test/dtd13 new file mode 100644 index 0000000..d18d00c --- /dev/null +++ b/test/dtd13 @@ -0,0 +1,6 @@ + + +]> + + diff --git a/test/dtd2 b/test/dtd2 new file mode 100644 index 0000000..3bcc101 --- /dev/null +++ b/test/dtd2 @@ -0,0 +1,4 @@ + +]> +This is a valid document ! diff --git a/test/dtd3 b/test/dtd3 new file mode 100644 index 0000000..63f44a5 --- /dev/null +++ b/test/dtd3 @@ -0,0 +1,5 @@ + +]> +This is a valid document ! + diff --git a/test/dtd4 b/test/dtd4 new file mode 100644 index 0000000..5457b91 --- /dev/null +++ b/test/dtd4 @@ -0,0 +1,4 @@ + +]> + diff --git a/test/dtd5 b/test/dtd5 new file mode 100644 index 0000000..a33889b --- /dev/null +++ b/test/dtd5 @@ -0,0 +1,6 @@ + + + +]> +This is a valid document diff --git a/test/dtd6 b/test/dtd6 new file mode 100644 index 0000000..35e63fc --- /dev/null +++ b/test/dtd6 @@ -0,0 +1,6 @@ + + + +]> +This is a valid document diff --git a/test/dtd7 b/test/dtd7 new file mode 100644 index 0000000..b151c21 --- /dev/null +++ b/test/dtd7 @@ -0,0 +1,6 @@ + + + +]> +This is a valid document diff --git a/test/dtd8 b/test/dtd8 new file mode 100644 index 0000000..ce7a291 --- /dev/null +++ b/test/dtd8 @@ -0,0 +1,8 @@ + + + + + +]> +This is a valid document diff --git a/test/dtd9 b/test/dtd9 new file mode 100644 index 0000000..144b8c5 --- /dev/null +++ b/test/dtd9 @@ -0,0 +1,8 @@ + + + + + +]> +This is a valid document diff --git a/test/dtds/eve.dtd b/test/dtds/eve.dtd new file mode 100644 index 0000000..b1fc883 --- /dev/null +++ b/test/dtds/eve.dtd @@ -0,0 +1,4 @@ + + + diff --git a/test/ebcdic_566012.xml b/test/ebcdic_566012.xml new file mode 100644 index 0000000..09b4e7b --- /dev/null +++ b/test/ebcdic_566012.xml @@ -0,0 +1 @@ +Lo§”“@¥…™¢‰–•~ñKð@…•ƒ–„‰•‡~ÉÂÔ`ññôñ@on%L£…¢£@££™~JàZ@an% \ No newline at end of file diff --git a/test/emptycdata.xml b/test/emptycdata.xml new file mode 100644 index 0000000..bc98388 --- /dev/null +++ b/test/emptycdata.xml @@ -0,0 +1,4 @@ + + + + diff --git a/test/ent1 b/test/ent1 new file mode 100644 index 0000000..3e24756 --- /dev/null +++ b/test/ent1 @@ -0,0 +1,7 @@ + + +]> + + &xml; + diff --git a/test/ent10 b/test/ent10 new file mode 100644 index 0000000..4778d89 --- /dev/null +++ b/test/ent10 @@ -0,0 +1,21 @@ + + + + + + + + hello world + + " +> +]> + + + &f; + + diff --git a/test/ent11 b/test/ent11 new file mode 100644 index 0000000..6c611c1 --- /dev/null +++ b/test/ent11 @@ -0,0 +1,6 @@ + + +]> + +&newl; diff --git a/test/ent12 b/test/ent12 new file mode 100644 index 0000000..f495831 --- /dev/null +++ b/test/ent12 @@ -0,0 +1,8 @@ + + + +]> + + &bar; + diff --git a/test/ent13 b/test/ent13 new file mode 100644 index 0000000..f5ebd89 --- /dev/null +++ b/test/ent13 @@ -0,0 +1,6 @@ + + +]> +a + diff --git a/test/ent2 b/test/ent2 new file mode 100644 index 0000000..155e2d2 --- /dev/null +++ b/test/ent2 @@ -0,0 +1,11 @@ + + + + +]> + + &title; + This text is about XML, the &xml; and this is an embedded + + diff --git a/test/ent3 b/test/ent3 new file mode 100644 index 0000000..f9803b8 --- /dev/null +++ b/test/ent3 @@ -0,0 +1,8 @@ + + +]> + + Test of entities in attributes. + + diff --git a/test/ent4 b/test/ent4 new file mode 100644 index 0000000..e668b40 --- /dev/null +++ b/test/ent4 @@ -0,0 +1,8 @@ + + +]> + + Test of &amp; behaviour a&b . + + diff --git a/test/ent5 b/test/ent5 new file mode 100644 index 0000000..adb9ea7 --- /dev/null +++ b/test/ent5 @@ -0,0 +1,5 @@ + + + This is an inverted exclamation sign ¡ + This is a space + diff --git a/test/ent6 b/test/ent6 new file mode 100644 index 0000000..40b2f12 --- /dev/null +++ b/test/ent6 @@ -0,0 +1,8 @@ + + + + + +]> + diff --git a/test/ent7 b/test/ent7 new file mode 100644 index 0000000..3ef2030 --- /dev/null +++ b/test/ent7 @@ -0,0 +1,7 @@ +"> + +%sampleEnt; + +]> +'they called me &sampleEnt;' diff --git a/test/ent8 b/test/ent8 new file mode 100644 index 0000000..5eeccf2 --- /dev/null +++ b/test/ent8 @@ -0,0 +1,9 @@ + + +]> + + Retenção + <> + &test1;&test2; + diff --git a/test/ent9 b/test/ent9 new file mode 100644 index 0000000..5db63ba --- /dev/null +++ b/test/ent9 @@ -0,0 +1,61 @@ +,,,"> +]> + + &test1; +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        +

        WE need lot of garbage now to trigger the problem

        + &test1; +
        + diff --git a/test/errors/attr1.xml b/test/errors/attr1.xml new file mode 100644 index 0000000..96be477 --- /dev/null +++ b/test/errors/attr1.xml @@ -0,0 +1 @@ +oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo diff --git a/test/errors/attr3.xml b/test/errors/attr3.xml new file mode 100644 index 0000000..e2567f5 --- /dev/null +++ b/test/errors/attr3.xml @@ -0,0 +1,6 @@ + + + +]> + diff --git a/test/errors/attr4.xml b/test/errors/attr4.xml new file mode 100644 index 0000000..553bbce --- /dev/null +++ b/test/errors/attr4.xml @@ -0,0 +1 @@ + diff --git a/test/errors/cdata.xml b/test/errors/cdata.xml new file mode 100644 index 0000000..8f2bc09 --- /dev/null +++ b/test/errors/cdata.xml @@ -0,0 +1,2 @@ + + diff --git a/test/errors/charref1.xml b/test/errors/charref1.xml new file mode 100644 index 0000000..11423df --- /dev/null +++ b/test/errors/charref1.xml @@ -0,0 +1 @@ + diff --git a/test/errors/comment1.xml b/test/errors/comment1.xml new file mode 100644 index 0000000..b02bb17 --- /dev/null +++ b/test/errors/comment1.xml @@ -0,0 +1,6 @@ + +]> + + diff --git a/test/errors/content1.xml b/test/errors/content1.xml new file mode 100644 index 0000000..7264694 --- /dev/null +++ b/test/errors/content1.xml @@ -0,0 +1,10 @@ + + + + + + +]> +Any content + diff --git a/test/errors/dtd13 b/test/errors/dtd13 new file mode 100644 index 0000000..d7658b0 --- /dev/null +++ b/test/errors/dtd13 @@ -0,0 +1,6 @@ + +]> + + +]> + + diff --git a/test/expr/base b/test/expr/base new file mode 100644 index 0000000..7ba11e2 --- /dev/null +++ b/test/expr/base @@ -0,0 +1,86 @@ +=>a +1 a +1 a | a +0 b +=>a|b +1 a +1 b +1 a | b +0 a{0} +0 b{0} +=>a | b | a +1 a +1 b +1 a | b +1 b | a +1 a | b | b +1 a | b | a +1 b | a | b +=>a,a +1 a,a +0 a +0 a,a,a +=>a{0,3} +1 a{3} +1 a +1 a,a,a +1 a{1,3} +=>(a|b){0,4} +1 a +1 b +1 a,b +1 a,b,a,b +0 b,a,b,a,b +1 b,a{1,3} +1 a{1,3},b +0 a{1,3},b,a +0 a{1,4},b +0 a{0,5} +1 (b|a){0,4} +0 (b|a){0,4},a +1 (a,b){0,2} +1 (a,b){0,1},b +=> a* +1 a +1 a? +1 a+ +1 a* +1 a{0} +=> a+ +1 a +0 a? +1 a+ +0 a* +1 a?,a +1 a,a* +1 a*,a +1 a?,a*,a +1 a*,a?,a +=>(a|b)* +1 a +1 b +1 a,b +1 a,b,a,b +1 (b|a){0,4} +1 (b|a){0,4},a +1 a* +1 b* +1 (a|b)* +1 a{1,3} +1 b,a{1,3} +1 a{1,3},b +1 a*,(a|b)* +1 a*,b{2,5} +1 a*,(a|b)*,b{2,5} +=>(a|b)+,(c|d) +1 a+,c +0 a*,c +1 a,c +1 a,b*,a*,c +# more complex +=>(a|b),(a|c){0,100} +1 a{0,100},(a|c) +0 a{0,101},(a|c) +# the example from cmsmcq at extreme markup 05 +=>(a, ((b, c, d){0,5}, e{0,1}){0,4}, f) +1 (a, b, (c, d, b){2,3}, c, d, e, f) diff --git a/test/intsubset.xml b/test/intsubset.xml new file mode 100644 index 0000000..709de15 --- /dev/null +++ b/test/intsubset.xml @@ -0,0 +1,6 @@ + + + +]> + diff --git a/test/intsubset2.xml b/test/intsubset2.xml new file mode 100644 index 0000000..4ae845a --- /dev/null +++ b/test/intsubset2.xml @@ -0,0 +1,282 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +] > + + diff --git a/test/isolat1 b/test/isolat1 new file mode 100644 index 0000000..1e5a059 --- /dev/null +++ b/test/isolat1 @@ -0,0 +1,2 @@ + + diff --git a/test/isolat2 b/test/isolat2 new file mode 100644 index 0000000..8c290b9 --- /dev/null +++ b/test/isolat2 @@ -0,0 +1,107 @@ + + + + The following table displays the characters in ISO 8859 + Latin-1, which are printable and unlisted in the ascii + manual page. + + Oct Dec Hex Char Description + -------------------------------------------------------------------- + 240 160 A0 NO-BREAK SPACE + 241 161 A1 ¡ INVERTED EXCLAMATION MARK + 242 162 A2 ¢ CENT SIGN + 243 163 A3 £ POUND SIGN + 244 164 A4 ¤ CURRENCY SIGN + 245 165 A5 ¥ YEN SIGN + 246 166 A6 ¦ BROKEN BAR + 247 167 A7 § SECTION SIGN + 250 168 A8 ¨ DIAERESIS + 251 169 A9 © COPYRIGHT SIGN + 252 170 AA ª FEMININE ORDINAL INDICATOR + 253 171 AB « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + 254 172 AC ¬ NOT SIGN + 255 173 AD ­ SOFT HYPHEN + 256 174 AE ® REGISTERED SIGN + 257 175 AF ¯ MACRON + 260 176 B0 ° DEGREE SIGN + 261 177 B1 ± PLUS-MINUS SIGN + 262 178 B2 ² SUPERSCRIPT TWO + 263 179 B3 ³ SUPERSCRIPT THREE + 264 180 B4 ´ ACUTE ACCENT + 265 181 B5 µ MICRO SIGN + 266 182 B6 ¶ PILCROW SIGN + 267 183 B7 · MIDDLE DOT + 270 184 B8 ¸ CEDILLA + 271 185 B9 ¹ SUPERSCRIPT ONE + 272 186 BA º MASCULINE ORDINAL INDICATOR + 273 187 BB » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + 274 188 BC ¼ VULGAR FRACTION ONE QUARTER + 275 189 BD ½ VULGAR FRACTION ONE HALF + 276 190 BE ¾ VULGAR FRACTION THREE QUARTERS + 277 191 BF ¿ INVERTED QUESTION MARK + 300 192 C0 À LATIN CAPITAL LETTER A WITH GRAVE + 301 193 C1 Á LATIN CAPITAL LETTER A WITH ACUTE + 302 194 C2 Â LATIN CAPITAL LETTER A WITH CIRCUMFLEX + 303 195 C3 Ã LATIN CAPITAL LETTER A WITH TILDE + 304 196 C4 Ä LATIN CAPITAL LETTER A WITH DIAERESIS + 305 197 C5 Å LATIN CAPITAL LETTER A WITH RING ABOVE + 306 198 C6 Æ LATIN CAPITAL LETTER AE + 307 199 C7 Ç LATIN CAPITAL LETTER C WITH CEDILLA + 310 200 C8 È LATIN CAPITAL LETTER E WITH GRAVE + 311 201 C9 É LATIN CAPITAL LETTER E WITH ACUTE + 312 202 CA Ê LATIN CAPITAL LETTER E WITH CIRCUMFLEX + 313 203 CB Ë LATIN CAPITAL LETTER E WITH DIAERESIS + 314 204 CC Ì LATIN CAPITAL LETTER I WITH GRAVE + 315 205 CD Í LATIN CAPITAL LETTER I WITH ACUTE + 316 206 CE Î LATIN CAPITAL LETTER I WITH CIRCUMFLEX + 317 207 CF Ï LATIN CAPITAL LETTER I WITH DIAERESIS + 320 208 D0 Ð LATIN CAPITAL LETTER ETH + 321 209 D1 Ñ LATIN CAPITAL LETTER N WITH TILDE + 322 210 D2 Ò LATIN CAPITAL LETTER O WITH GRAVE + 323 211 D3 Ó LATIN CAPITAL LETTER O WITH ACUTE + 324 212 D4 Ô LATIN CAPITAL LETTER O WITH CIRCUMFLEX + 325 213 D5 Õ LATIN CAPITAL LETTER O WITH TILDE + 326 214 D6 Ö LATIN CAPITAL LETTER O WITH DIAERESIS + 327 215 D7 × MULTIPLICATION SIGN + 330 216 D8 Ø LATIN CAPITAL LETTER O WITH STROKE + 331 217 D9 Ù LATIN CAPITAL LETTER U WITH GRAVE + 332 218 DA Ú LATIN CAPITAL LETTER U WITH ACUTE + 333 219 DB Û LATIN CAPITAL LETTER U WITH CIRCUMFLEX + 334 220 DC Ü LATIN CAPITAL LETTER U WITH DIAERESIS + 335 221 DD Ý LATIN CAPITAL LETTER Y WITH ACUTE + 336 222 DE Þ LATIN CAPITAL LETTER THORN + 337 223 DF ß LATIN SMALL LETTER SHARP S + 340 224 E0 à LATIN SMALL LETTER A WITH GRAVE + 341 225 E1 á LATIN SMALL LETTER A WITH ACUTE + 342 226 E2 â LATIN SMALL LETTER A WITH CIRCUMFLEX + 343 227 E3 ã LATIN SMALL LETTER A WITH TILDE + 344 228 E4 ä LATIN SMALL LETTER A WITH DIAERESIS + 345 229 E5 å LATIN SMALL LETTER A WITH RING ABOVE + 346 230 E6 æ LATIN SMALL LETTER AE + 347 231 E7 ç LATIN SMALL LETTER C WITH CEDILLA + 350 232 E8 è LATIN SMALL LETTER E WITH GRAVE + 351 233 E9 é LATIN SMALL LETTER E WITH ACUTE + 352 234 EA ê LATIN SMALL LETTER E WITH CIRCUMFLEX + 353 235 EB ë LATIN SMALL LETTER E WITH DIAERESIS + 354 236 EC ì LATIN SMALL LETTER I WITH GRAVE + 355 237 ED í LATIN SMALL LETTER I WITH ACUTE + 356 238 EE î LATIN SMALL LETTER I WITH CIRCUMFLEX + 357 239 EF ï LATIN SMALL LETTER I WITH DIAERESIS + 360 240 F0 ð LATIN SMALL LETTER ETH + 361 241 F1 ñ LATIN SMALL LETTER N WITH TILDE + 362 242 F2 ò LATIN SMALL LETTER O WITH GRAVE + 363 243 F3 ó LATIN SMALL LETTER O WITH ACUTE + 364 244 F4 ô LATIN SMALL LETTER O WITH CIRCUMFLEX + 365 245 F5 õ LATIN SMALL LETTER O WITH TILDE + 366 246 F6 ö LATIN SMALL LETTER O WITH DIAERESIS + 367 247 F7 ÷ DIVISION SIGN + 370 248 F8 ø LATIN SMALL LETTER O WITH STROKE + 371 249 F9 ù LATIN SMALL LETTER U WITH GRAVE + 372 250 FA ú LATIN SMALL LETTER U WITH ACUTE + 373 251 FB û LATIN SMALL LETTER U WITH CIRCUMFLEX + 374 252 FC ü LATIN SMALL LETTER U WITH DIAERESIS + 375 253 FD ý LATIN SMALL LETTER Y WITH ACUTE + 376 254 FE þ LATIN SMALL LETTER THORN + 377 255 FF ÿ LATIN SMALL LETTER Y WITH DIAERESIS + + diff --git a/test/isolat3 b/test/isolat3 new file mode 100644 index 0000000..40fb3a0 --- /dev/null +++ b/test/isolat3 @@ -0,0 +1,10 @@ + + + + +]]> +then the replacement text for the entity "book" is: +La Peste: Albert Camus, +© 1947 Éditions Gallimard. &rights; + diff --git a/test/namespaces/err_0.xml b/test/namespaces/err_0.xml new file mode 100644 index 0000000..50bdd32 --- /dev/null +++ b/test/namespaces/err_0.xml @@ -0,0 +1 @@ + diff --git a/test/namespaces/err_1.xml b/test/namespaces/err_1.xml new file mode 100644 index 0000000..eb6f43b --- /dev/null +++ b/test/namespaces/err_1.xml @@ -0,0 +1 @@ + diff --git a/test/namespaces/err_10.xml b/test/namespaces/err_10.xml new file mode 100644 index 0000000..cf36261 --- /dev/null +++ b/test/namespaces/err_10.xml @@ -0,0 +1 @@ + diff --git a/test/namespaces/err_11.xml b/test/namespaces/err_11.xml new file mode 100644 index 0000000..9d81939 --- /dev/null +++ b/test/namespaces/err_11.xml @@ -0,0 +1 @@ + diff --git a/test/namespaces/err_2.xml b/test/namespaces/err_2.xml new file mode 100644 index 0000000..9fd51b3 --- /dev/null +++ b/test/namespaces/err_2.xml @@ -0,0 +1 @@ +<:/> diff --git a/test/namespaces/err_3.xml b/test/namespaces/err_3.xml new file mode 100644 index 0000000..3d4d439 --- /dev/null +++ b/test/namespaces/err_3.xml @@ -0,0 +1 @@ +<:foo/> diff --git a/test/namespaces/err_4.xml b/test/namespaces/err_4.xml new file mode 100644 index 0000000..9dc294e --- /dev/null +++ b/test/namespaces/err_4.xml @@ -0,0 +1 @@ + diff --git a/test/namespaces/err_5.xml b/test/namespaces/err_5.xml new file mode 100644 index 0000000..5943c11 --- /dev/null +++ b/test/namespaces/err_5.xml @@ -0,0 +1 @@ + diff --git a/test/namespaces/err_6.xml b/test/namespaces/err_6.xml new file mode 100644 index 0000000..e3eb3b2 --- /dev/null +++ b/test/namespaces/err_6.xml @@ -0,0 +1 @@ + diff --git a/test/namespaces/err_7.xml b/test/namespaces/err_7.xml new file mode 100644 index 0000000..5bbe235 --- /dev/null +++ b/test/namespaces/err_7.xml @@ -0,0 +1 @@ + diff --git a/test/namespaces/err_8.xml b/test/namespaces/err_8.xml new file mode 100644 index 0000000..8321da2 --- /dev/null +++ b/test/namespaces/err_8.xml @@ -0,0 +1 @@ + diff --git a/test/namespaces/err_9.xml b/test/namespaces/err_9.xml new file mode 100644 index 0000000..4478c60 --- /dev/null +++ b/test/namespaces/err_9.xml @@ -0,0 +1,2 @@ + diff --git a/test/namespaces/reconcile/tests-to-c.xsl b/test/namespaces/reconcile/tests-to-c.xsl new file mode 100644 index 0000000..9a0d1c6 --- /dev/null +++ b/test/namespaces/reconcile/tests-to-c.xsl @@ -0,0 +1,275 @@ + + + + + + +#include +#include +#include +]]> + + + + + +int main(int argc, char **argv) { + + + /* printf("finished.\n"); */ + return (0); +} + + + + + nsTest_ + + (); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + xmlDocPtr + + ; + const char * + + _str = " + + + + "; + + + + const char * + exp_str = " + + + + "; + + + + + + = xmlReadDoc(BAD_CAST + + _str, NULL, NULL, 0); + + + + xmlFreeDoc( + + ); + + + + + + + xmlNodePtr + + ; + + + + + + /* Selecting node "". */ + xp = xmlXPathNewContext( + + ); + + + xmlXPathRegisterNs(xp, BAD_CAST " + + ", BAD_CAST " + + "); + + + + + = nsSelectNode(xp, " + + "); + xmlXPathFreeContext(xp); + + + + + + /* Reconcile node "". */ + xmlDOMWrapReconcileNamespaces(NULL, + + , 0); + + + + + xmlDOMWrapRemoveNode(NULL, + + ->doc, + + , 0); + + + + + /* Adopt "". */ + xmlDOMWrapAdoptNode(NULL, + + ->doc, + + , + + , + + + + + + NULL + + + , 0); + + + + + xmlAddChild( + + , + + ); + + + + + /* Serialize "". */ + result_str = nsSerializeNode(xmlDocGetRootElement( + + )); + /* Compare result. */ + if (! xmlStrEqual(BAD_CAST result_str, BAD_CAST exp_str)) { + printf("FAILED\n"); + printf("%s\n", (const char *) result_str); + printf("- - -\n"); + printf("Expected:\n%s\n", exp_str); + printf("= = =\n"); + } + xmlFree(result_str); + + + + + void nsTest_ + + (void) { + xmlChar * result_str; + xmlXPathContextPtr xp; + int memory; + + + memory = xmlMemUsed(); + xmlInitParser(); + + + xmlCleanupParser(); + memory = xmlMemUsed() - memory; + + if (memory != 0) { + printf("## '%s' MEMORY leak: %d\n", " + + ", memory); + } +} + + + + + + +xmlChar * nsSerializeNode(xmlNodePtr node) { + xmlChar * ret; + + xmlOutputBufferPtr buf; + buf = xmlAllocOutputBuffer(NULL); + xmlNodeDumpOutput(buf, node->doc, node, 0, 0, NULL); + xmlOutputBufferFlush(buf); + ret = (xmlChar *) buf->buffer->content; + buf->buffer->content = NULL; + (void) xmlOutputBufferClose(buf); + return (ret); +} + +xmlNodePtr nsSelectNode(xmlXPathContextPtr xp, const char * xpath) { + xmlXPathObjectPtr xpres; + xmlNodePtr ret; + + xpres = xmlXPathEval(BAD_CAST xpath, xp); + ret = xpres->nodesetval->nodeTab[0]; + xmlXPathFreeObject(xpres); + return (ret); +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/namespaces/reconcile/tests.xml b/test/namespaces/reconcile/tests.xml new file mode 100644 index 0000000..c6f8c54 --- /dev/null +++ b/test/namespaces/reconcile/tests.xml @@ -0,0 +1,249 @@ + + + + + ]]> + ]]> + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + ]]> + ]]> + + + + + + + + + + + + + + ]]> + + + + ]]> + ]]> + + + + + + + + + + + + + + ]]> + + + + + ]]> + ]]> + + + + + + + + + + + + + + ]]> + + + + + ]]> + ]]> + + + + + + + + + + + + + + ]]> + + + + + ]]> + ]]> + + + + + + + + + + + + + + ]]> + + + + + ]]> + ]]> + + + + + + + + + + + + + + + +]]> + + + + + ]]> + ]]> + + + + + + + + + + + + + + + +]]> + + + + + +

        + + + + + + +]]> + + + + + + + + + + +

        + + + + + +

        +
        +]]> + + + + + + + + + + + +
        +]]>
        + + + + + + + + + + + + + + + + + + +
        +]]> + + diff --git a/test/ns b/test/ns new file mode 100644 index 0000000..94b927e --- /dev/null +++ b/test/ns @@ -0,0 +1,4 @@ + + + + diff --git a/test/ns2 b/test/ns2 new file mode 100644 index 0000000..80aaf94 --- /dev/null +++ b/test/ns2 @@ -0,0 +1,3 @@ + + diff --git a/test/ns3 b/test/ns3 new file mode 100644 index 0000000..76bb20d --- /dev/null +++ b/test/ns3 @@ -0,0 +1,3 @@ + + diff --git a/test/ns4 b/test/ns4 new file mode 100644 index 0000000..136bf92 --- /dev/null +++ b/test/ns4 @@ -0,0 +1,2 @@ + + diff --git a/test/ns5 b/test/ns5 new file mode 100644 index 0000000..d75d345 --- /dev/null +++ b/test/ns5 @@ -0,0 +1,4 @@ + + + + diff --git a/test/ns6 b/test/ns6 new file mode 100644 index 0000000..1f2a8b3 --- /dev/null +++ b/test/ns6 @@ -0,0 +1,4 @@ + + + + diff --git a/test/ns7 b/test/ns7 new file mode 100644 index 0000000..d32b3b4 --- /dev/null +++ b/test/ns7 @@ -0,0 +1 @@ + diff --git a/test/nsclean.xml b/test/nsclean.xml new file mode 100644 index 0000000..c293ddb --- /dev/null +++ b/test/nsclean.xml @@ -0,0 +1,9 @@ + +
        + + +
        + diff --git a/test/p3p b/test/p3p new file mode 100644 index 0000000..dad8fb7 --- /dev/null +++ b/test/p3p @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + diff --git a/test/pattern/conj.pat b/test/pattern/conj.pat new file mode 100644 index 0000000..ca80a06 --- /dev/null +++ b/test/pattern/conj.pat @@ -0,0 +1,8 @@ +a|b +a|c +b|c +a|b|c +/a|b +b|/a +a//c|b//c +d|e|f|g|h|a diff --git a/test/pattern/conj.xml b/test/pattern/conj.xml new file mode 100644 index 0000000..c1c770e --- /dev/null +++ b/test/pattern/conj.xml @@ -0,0 +1,13 @@ +
        + + + + + + + + + + + + diff --git a/test/pattern/multiple.pat b/test/pattern/multiple.pat new file mode 100644 index 0000000..3f1ee3e --- /dev/null +++ b/test/pattern/multiple.pat @@ -0,0 +1,27 @@ +a +b +c +c/a +c/b +b/a +c/b/a +c//a +c//b +b//a +c//b//a +c/b//a +c//b/a +/a +/b +/c +/c/a +/c/b +/b/a +/c/b/a +/c//a +/c//b +/b//a +/c//b//a +/c/b//a +/c//b/a + diff --git a/test/pattern/multiple.xml b/test/pattern/multiple.xml new file mode 100644 index 0000000..62f31a5 --- /dev/null +++ b/test/pattern/multiple.xml @@ -0,0 +1,5 @@ + + + + +
        diff --git a/test/pattern/namespaces.pat b/test/pattern/namespaces.pat new file mode 100644 index 0000000..c273a10 --- /dev/null +++ b/test/pattern/namespaces.pat @@ -0,0 +1,10 @@ +//a +//a:a +//b +//b:b +/a//a +/a/a +/a/b +/a/a:a +/a/a:b +/a/c:a diff --git a/test/pattern/namespaces.xml b/test/pattern/namespaces.xml new file mode 100644 index 0000000..1ebb50f --- /dev/null +++ b/test/pattern/namespaces.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/test/pattern/simple.pat b/test/pattern/simple.pat new file mode 100644 index 0000000..1b298ae --- /dev/null +++ b/test/pattern/simple.pat @@ -0,0 +1,15 @@ +a +b +b +/a +/b +/c +a/b +a/b/c +//a +//b +//c +a//b +a//c +b//c + diff --git a/test/pattern/simple.xml b/test/pattern/simple.xml new file mode 100644 index 0000000..16ac6c2 --- /dev/null +++ b/test/pattern/simple.xml @@ -0,0 +1,5 @@ + + + text + + diff --git a/test/pi.xml b/test/pi.xml new file mode 100644 index 0000000..48c7ff0 --- /dev/null +++ b/test/pi.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/test/pi2.xml b/test/pi2.xml new file mode 100644 index 0000000..710d51c --- /dev/null +++ b/test/pi2.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/test/rdf1 b/test/rdf1 new file mode 100644 index 0000000..d44c3c6 --- /dev/null +++ b/test/rdf1 @@ -0,0 +1,81 @@ + + + + rpm + 2.5 + 2 + i386 + Linux + Manhattan + Red Hat Software + Red Hat Software <bugs@redhat.com> + Utilities/System + Red Hat Package Manager + RPM is a powerful package manager, which can be used to build, install, +query, verify, update, and uninstall individual software packages. A +package consists of an archive of files, and package information, including +name, version, and description. + GPL + * Sun May 10 1998 Prospector System <bugs@redhat.com> + - translations modified for de, fr, tr + + rpm-2.5-2.src.rpm + ftp://ftp.redhat.com/pub/redhat/redhat-5.1/SRPMS + Sun May 10 14:52:32 1998 + 894826352 + 850599 + porky.redhat.com + + + rpm + + + + + /bin/sh + ld-linux.so.2 + libc.so.6 + libdb.so.2 + libz.so.1 + /bin/bash + /bin/sh + + + /bin/rpm +/usr/bin/find-provides +/usr/bin/find-requires +/usr/bin/gendiff +/usr/bin/rpm2cpio +/usr/doc/rpm-2.5 +/usr/doc/rpm-2.5/CHANGES +/usr/doc/rpm-2.5/RPM-PGP-KEY +/usr/doc/rpm-2.5/buildroot +/usr/doc/rpm-2.5/dependencies +/usr/doc/rpm-2.5/format +/usr/doc/rpm-2.5/groups +/usr/doc/rpm-2.5/macros +/usr/doc/rpm-2.5/queryformat +/usr/doc/rpm-2.5/relocatable +/usr/doc/rpm-2.5/signatures +/usr/doc/rpm-2.5/spec +/usr/doc/rpm-2.5/triggers +/usr/lib/rpmpopt +/usr/lib/rpmrc +/usr/man/man8/rpm.8 +/usr/man/man8/rpm2cpio.8 +/usr/share/locale/de/LC_MESSAGES/rpm.mo +/usr/share/locale/fr/LC_MESSAGES/rpm.mo +/usr/share/locale/pt-br/LC_MESSAGES/rpm.mo +/usr/share/locale/sv/LC_MESSAGES/rpm.mo +/usr/share/locale/tr/LC_MESSAGES/rpm.mo +/usr/src/redhat +/usr/src/redhat/BUILD +/usr/src/redhat/RPMS +/usr/src/redhat/RPMS/i386 +/usr/src/redhat/RPMS/noarch +/usr/src/redhat/SOURCES +/usr/src/redhat/SPECS +/usr/src/redhat/SRPMS + + + diff --git a/test/rdf2 b/test/rdf2 new file mode 100644 index 0000000..fe80399 --- /dev/null +++ b/test/rdf2 @@ -0,0 +1,1899 @@ + + + + ncurses4 + 4.2 + 3 + i386 + Linux + DLD + delix Computer GmbH + Till Bubeck <bubeck@delix.de>, Ngo Than <than@delix.de> + Libraries + Bibliothek zur Ansteuerung von Terminals + Diese Library stellt dem Programmierer vom Terminal unabhängige +Routinen zur Ansteuerung Ihres Bildschirms zur Verfügung, die +speziell optimiert sind. +Diese Version ist die 'new curses' (ncurses) Variante und ist der +anerkannte Ersatz für die klassische Curses-Library, die nicht mehr +weiterentwickelt wird. + GPL + ncurses4-4.2-3.src.rpm + Tue May 12 19:30:26 1998 + 895015826 + 1373513 + erdbeere.delix.de + + + ncurses4 + libpanel.so.4 + libncurses.so.4 + libmenu.so.4 + libform.so.4 + ncurses + + + /lib/libncurses.so.4 +/lib/libncurses.so.4.2 +/usr/doc/ncurses4-4.2-3 +/usr/doc/ncurses4-4.2-3/ANNOUNCE.gz +/usr/doc/ncurses4-4.2-3/NEWS.gz +/usr/doc/ncurses4-4.2-3/README.gz +/usr/doc/ncurses4-4.2-3/TO-DO.gz +/usr/lib/libform.so.4 +/usr/lib/libform.so.4.2 +/usr/lib/libmenu.so.4 +/usr/lib/libmenu.so.4.2 +/usr/lib/libpanel.so.4 +/usr/lib/libpanel.so.4.2 +/usr/share/ncurses4 +/usr/share/ncurses4/tabset +/usr/share/ncurses4/tabset/std +/usr/share/ncurses4/tabset/stdcrt +/usr/share/ncurses4/tabset/vt100 +/usr/share/ncurses4/tabset/vt300 +/usr/share/ncurses4/terminfo +/usr/share/ncurses4/terminfo/1 +/usr/share/ncurses4/terminfo/1/1178 +/usr/share/ncurses4/terminfo/1/1730-lm +/usr/share/ncurses4/terminfo/2 +/usr/share/ncurses4/terminfo/2/2621 +/usr/share/ncurses4/terminfo/2/2621-wl +/usr/share/ncurses4/terminfo/2/2621A +/usr/share/ncurses4/terminfo/2/2621a +/usr/share/ncurses4/terminfo/3 +/usr/share/ncurses4/terminfo/3/386at +/usr/share/ncurses4/terminfo/3/3b1 +/usr/share/ncurses4/terminfo/4 +/usr/share/ncurses4/terminfo/4/4025ex +/usr/share/ncurses4/terminfo/4/4027ex +/usr/share/ncurses4/terminfo/4/4410-w +/usr/share/ncurses4/terminfo/5 +/usr/share/ncurses4/terminfo/5/5051 +/usr/share/ncurses4/terminfo/5/5410-w +/usr/share/ncurses4/terminfo/5/5620 +/usr/share/ncurses4/terminfo/5/5630-24 +/usr/share/ncurses4/terminfo/5/5630DMD-24 +/usr/share/ncurses4/terminfo/6 +/usr/share/ncurses4/terminfo/6/630-lm +/usr/share/ncurses4/terminfo/6/630MTG-24 +/usr/share/ncurses4/terminfo/7 +/usr/share/ncurses4/terminfo/7/730MTG-24 +/usr/share/ncurses4/terminfo/7/730MTG-41 +/usr/share/ncurses4/terminfo/7/730MTG-41r +/usr/share/ncurses4/terminfo/7/730MTGr +/usr/share/ncurses4/terminfo/7/730MTGr-24 +/usr/share/ncurses4/terminfo/8 +/usr/share/ncurses4/terminfo/8/8510 +/usr/share/ncurses4/terminfo/9 +/usr/share/ncurses4/terminfo/9/955-hb +/usr/share/ncurses4/terminfo/9/955-w +/usr/share/ncurses4/terminfo/P +/usr/share/ncurses4/terminfo/P/P12 +/usr/share/ncurses4/terminfo/P/P12-M +/usr/share/ncurses4/terminfo/P/P12-M-W +/usr/share/ncurses4/terminfo/P/P12-W +/usr/share/ncurses4/terminfo/P/P14 +/usr/share/ncurses4/terminfo/P/P14-M +/usr/share/ncurses4/terminfo/P/P14-M-W +/usr/share/ncurses4/terminfo/P/P14-W +/usr/share/ncurses4/terminfo/P/P4 +/usr/share/ncurses4/terminfo/P/P5 +/usr/share/ncurses4/terminfo/P/P7 +/usr/share/ncurses4/terminfo/P/P8 +/usr/share/ncurses4/terminfo/P/P8-W +/usr/share/ncurses4/terminfo/P/P9 +/usr/share/ncurses4/terminfo/P/P9-8 +/usr/share/ncurses4/terminfo/P/P9-8-W +/usr/share/ncurses4/terminfo/P/P9-W +/usr/share/ncurses4/terminfo/X +/usr/share/ncurses4/terminfo/X/X-hpterm +/usr/share/ncurses4/terminfo/a +/usr/share/ncurses4/terminfo/a/a210 +/usr/share/ncurses4/terminfo/a/a80 +/usr/share/ncurses4/terminfo/a/a980 +/usr/share/ncurses4/terminfo/a/aa4080 +/usr/share/ncurses4/terminfo/a/aaa +/usr/share/ncurses4/terminfo/a/aaa+dec +/usr/share/ncurses4/terminfo/a/aaa+rv +/usr/share/ncurses4/terminfo/a/aaa+unk +/usr/share/ncurses4/terminfo/a/aaa-18 +/usr/share/ncurses4/terminfo/a/aaa-18-rv +/usr/share/ncurses4/terminfo/a/aaa-20 +/usr/share/ncurses4/terminfo/a/aaa-22 +/usr/share/ncurses4/terminfo/a/aaa-24 +/usr/share/ncurses4/terminfo/a/aaa-24-rv +/usr/share/ncurses4/terminfo/a/aaa-26 +/usr/share/ncurses4/terminfo/a/aaa-28 +/usr/share/ncurses4/terminfo/a/aaa-30 +/usr/share/ncurses4/terminfo/a/aaa-30-ctxt +/usr/share/ncurses4/terminfo/a/aaa-30-rv +/usr/share/ncurses4/terminfo/a/aaa-30-rv-ctxt +/usr/share/ncurses4/terminfo/a/aaa-30-s +/usr/share/ncurses4/terminfo/a/aaa-30-s-ctxt +/usr/share/ncurses4/terminfo/a/aaa-30-s-rv +/usr/share/ncurses4/terminfo/a/aaa-30-s-rv-ct +/usr/share/ncurses4/terminfo/a/aaa-36 +/usr/share/ncurses4/terminfo/a/aaa-36-rv +/usr/share/ncurses4/terminfo/a/aaa-40 +/usr/share/ncurses4/terminfo/a/aaa-40-rv +/usr/share/ncurses4/terminfo/a/aaa-48 +/usr/share/ncurses4/terminfo/a/aaa-48-rv +/usr/share/ncurses4/terminfo/a/aaa-60 +/usr/share/ncurses4/terminfo/a/aaa-60-dec-rv +/usr/share/ncurses4/terminfo/a/aaa-60-rv +/usr/share/ncurses4/terminfo/a/aaa-60-s +/usr/share/ncurses4/terminfo/a/aaa-60-s-rv +/usr/share/ncurses4/terminfo/a/aaa-ctxt +/usr/share/ncurses4/terminfo/a/aaa-db +/usr/share/ncurses4/terminfo/a/aaa-rv +/usr/share/ncurses4/terminfo/a/aaa-rv-ctxt +/usr/share/ncurses4/terminfo/a/aaa-rv-unk +/usr/share/ncurses4/terminfo/a/aaa-s +/usr/share/ncurses4/terminfo/a/aaa-s-ctxt +/usr/share/ncurses4/terminfo/a/aaa-s-rv +/usr/share/ncurses4/terminfo/a/aaa-s-rv-ctxt +/usr/share/ncurses4/terminfo/a/aaa-unk +/usr/share/ncurses4/terminfo/a/aas1901 +/usr/share/ncurses4/terminfo/a/abm80 +/usr/share/ncurses4/terminfo/a/abm85 +/usr/share/ncurses4/terminfo/a/abm85e +/usr/share/ncurses4/terminfo/a/abm85h +/usr/share/ncurses4/terminfo/a/abm85h-old +/usr/share/ncurses4/terminfo/a/act4 +/usr/share/ncurses4/terminfo/a/act5 +/usr/share/ncurses4/terminfo/a/addrinfo +/usr/share/ncurses4/terminfo/a/adds980 +/usr/share/ncurses4/terminfo/a/addsviewpoint +/usr/share/ncurses4/terminfo/a/addsvp60 +/usr/share/ncurses4/terminfo/a/adm+sgr +/usr/share/ncurses4/terminfo/a/adm1 +/usr/share/ncurses4/terminfo/a/adm11 +/usr/share/ncurses4/terminfo/a/adm1178 +/usr/share/ncurses4/terminfo/a/adm12 +/usr/share/ncurses4/terminfo/a/adm1a +/usr/share/ncurses4/terminfo/a/adm2 +/usr/share/ncurses4/terminfo/a/adm20 +/usr/share/ncurses4/terminfo/a/adm21 +/usr/share/ncurses4/terminfo/a/adm22 +/usr/share/ncurses4/terminfo/a/adm3 +/usr/share/ncurses4/terminfo/a/adm31 +/usr/share/ncurses4/terminfo/a/adm31-old +/usr/share/ncurses4/terminfo/a/adm36 +/usr/share/ncurses4/terminfo/a/adm3a +/usr/share/ncurses4/terminfo/a/adm3a+ +/usr/share/ncurses4/terminfo/a/adm42 +/usr/share/ncurses4/terminfo/a/adm42-ns +/usr/share/ncurses4/terminfo/a/adm5 +/usr/share/ncurses4/terminfo/a/aepro +/usr/share/ncurses4/terminfo/a/aixterm-m +/usr/share/ncurses4/terminfo/a/aixterm-m-old +/usr/share/ncurses4/terminfo/a/aj +/usr/share/ncurses4/terminfo/a/aj510 +/usr/share/ncurses4/terminfo/a/aj830 +/usr/share/ncurses4/terminfo/a/aj832 +/usr/share/ncurses4/terminfo/a/alt2 +/usr/share/ncurses4/terminfo/a/alt3 +/usr/share/ncurses4/terminfo/a/alt4 +/usr/share/ncurses4/terminfo/a/alt5 +/usr/share/ncurses4/terminfo/a/alt7 +/usr/share/ncurses4/terminfo/a/alt7pc +/usr/share/ncurses4/terminfo/a/alto-h19 +/usr/share/ncurses4/terminfo/a/alto-heath +/usr/share/ncurses4/terminfo/a/altoh19 +/usr/share/ncurses4/terminfo/a/altoheath +/usr/share/ncurses4/terminfo/a/altos-2 +/usr/share/ncurses4/terminfo/a/altos-3 +/usr/share/ncurses4/terminfo/a/altos-4 +/usr/share/ncurses4/terminfo/a/altos-5 +/usr/share/ncurses4/terminfo/a/altos2 +/usr/share/ncurses4/terminfo/a/altos3 +/usr/share/ncurses4/terminfo/a/altos4 +/usr/share/ncurses4/terminfo/a/altos5 +/usr/share/ncurses4/terminfo/a/altos7 +/usr/share/ncurses4/terminfo/a/altos7pc +/usr/share/ncurses4/terminfo/a/ambas +/usr/share/ncurses4/terminfo/a/ambassador +/usr/share/ncurses4/terminfo/a/amiga +/usr/share/ncurses4/terminfo/a/amiga-h +/usr/share/ncurses4/terminfo/a/amp219 +/usr/share/ncurses4/terminfo/a/amp219w +/usr/share/ncurses4/terminfo/a/ampex-219 +/usr/share/ncurses4/terminfo/a/ampex-219w +/usr/share/ncurses4/terminfo/a/ampex-232 +/usr/share/ncurses4/terminfo/a/ampex175 +/usr/share/ncurses4/terminfo/a/ampex175-b +/usr/share/ncurses4/terminfo/a/ampex210 +/usr/share/ncurses4/terminfo/a/ampex219 +/usr/share/ncurses4/terminfo/a/ampex219w +/usr/share/ncurses4/terminfo/a/ampex232 +/usr/share/ncurses4/terminfo/a/ampex232w +/usr/share/ncurses4/terminfo/a/ampex80 +/usr/share/ncurses4/terminfo/a/annarbor4080 +/usr/share/ncurses4/terminfo/a/ansi +/usr/share/ncurses4/terminfo/a/ansi-color-2-emx +/usr/share/ncurses4/terminfo/a/ansi-color-3-emx +/usr/share/ncurses4/terminfo/a/ansi-emx +/usr/share/ncurses4/terminfo/a/ansi-m +/usr/share/ncurses4/terminfo/a/ansi-mini +/usr/share/ncurses4/terminfo/a/ansi-mono +/usr/share/ncurses4/terminfo/a/ansi-nt +/usr/share/ncurses4/terminfo/a/ansi.sys +/usr/share/ncurses4/terminfo/a/ansi.sys-old +/usr/share/ncurses4/terminfo/a/ansi.sysk +/usr/share/ncurses4/terminfo/a/ansi43m +/usr/share/ncurses4/terminfo/a/ansi77 +/usr/share/ncurses4/terminfo/a/ansi80x25 +/usr/share/ncurses4/terminfo/a/ansi80x25-mono +/usr/share/ncurses4/terminfo/a/ansi80x25-raw +/usr/share/ncurses4/terminfo/a/ansi80x30 +/usr/share/ncurses4/terminfo/a/ansi80x30-mono +/usr/share/ncurses4/terminfo/a/ansi80x43 +/usr/share/ncurses4/terminfo/a/ansi80x43-mono +/usr/share/ncurses4/terminfo/a/ansi80x50 +/usr/share/ncurses4/terminfo/a/ansi80x50-mono +/usr/share/ncurses4/terminfo/a/ansi80x60 +/usr/share/ncurses4/terminfo/a/ansi80x60-mono +/usr/share/ncurses4/terminfo/a/ansil +/usr/share/ncurses4/terminfo/a/ansil-mono +/usr/share/ncurses4/terminfo/a/ansis +/usr/share/ncurses4/terminfo/a/ansis-mono +/usr/share/ncurses4/terminfo/a/ansisysk +/usr/share/ncurses4/terminfo/a/ansiw +/usr/share/ncurses4/terminfo/a/ap-vm80 +/usr/share/ncurses4/terminfo/a/apl +/usr/share/ncurses4/terminfo/a/apollo +/usr/share/ncurses4/terminfo/a/apollo_15P +/usr/share/ncurses4/terminfo/a/apollo_19L +/usr/share/ncurses4/terminfo/a/apollo_color +/usr/share/ncurses4/terminfo/a/apple-80 +/usr/share/ncurses4/terminfo/a/apple-ae +/usr/share/ncurses4/terminfo/a/apple-soroc +/usr/share/ncurses4/terminfo/a/apple-uterm +/usr/share/ncurses4/terminfo/a/apple-uterm-vb +/usr/share/ncurses4/terminfo/a/apple-videx +/usr/share/ncurses4/terminfo/a/apple-videx2 +/usr/share/ncurses4/terminfo/a/apple-videx3 +/usr/share/ncurses4/terminfo/a/apple-vm80 +/usr/share/ncurses4/terminfo/a/apple2e +/usr/share/ncurses4/terminfo/a/apple2e-p +/usr/share/ncurses4/terminfo/a/apple80p +/usr/share/ncurses4/terminfo/a/appleII +/usr/share/ncurses4/terminfo/a/appleIIc +/usr/share/ncurses4/terminfo/a/appleIIe +/usr/share/ncurses4/terminfo/a/appleIIgs +/usr/share/ncurses4/terminfo/a/at386 +/usr/share/ncurses4/terminfo/a/atari +/usr/share/ncurses4/terminfo/a/att2300 +/usr/share/ncurses4/terminfo/a/att2350 +/usr/share/ncurses4/terminfo/a/att4410 +/usr/share/ncurses4/terminfo/a/att4410-w +/usr/share/ncurses4/terminfo/a/att4410v1 +/usr/share/ncurses4/terminfo/a/att4410v1-w +/usr/share/ncurses4/terminfo/a/att4415 +/usr/share/ncurses4/terminfo/a/att4415+nl +/usr/share/ncurses4/terminfo/a/att4415-nl +/usr/share/ncurses4/terminfo/a/att4415-rv +/usr/share/ncurses4/terminfo/a/att4415-rv-nl +/usr/share/ncurses4/terminfo/a/att4415-w +/usr/share/ncurses4/terminfo/a/att4415-w-nl +/usr/share/ncurses4/terminfo/a/att4415-w-rv +/usr/share/ncurses4/terminfo/a/att4415-w-rv-n +/usr/share/ncurses4/terminfo/a/att4418 +/usr/share/ncurses4/terminfo/a/att4418-w +/usr/share/ncurses4/terminfo/a/att4420 +/usr/share/ncurses4/terminfo/a/att4424 +/usr/share/ncurses4/terminfo/a/att4424-1 +/usr/share/ncurses4/terminfo/a/att4424m +/usr/share/ncurses4/terminfo/a/att4425 +/usr/share/ncurses4/terminfo/a/att4425-nl +/usr/share/ncurses4/terminfo/a/att4425-w +/usr/share/ncurses4/terminfo/a/att4426 +/usr/share/ncurses4/terminfo/a/att500 +/usr/share/ncurses4/terminfo/a/att505 +/usr/share/ncurses4/terminfo/a/att505-24 +/usr/share/ncurses4/terminfo/a/att510a +/usr/share/ncurses4/terminfo/a/att510d +/usr/share/ncurses4/terminfo/a/att513 +/usr/share/ncurses4/terminfo/a/att5310 +/usr/share/ncurses4/terminfo/a/att5320 +/usr/share/ncurses4/terminfo/a/att5410 +/usr/share/ncurses4/terminfo/a/att5410-w +/usr/share/ncurses4/terminfo/a/att5410v1 +/usr/share/ncurses4/terminfo/a/att5410v1-w +/usr/share/ncurses4/terminfo/a/att5418 +/usr/share/ncurses4/terminfo/a/att5418-w +/usr/share/ncurses4/terminfo/a/att5420 +/usr/share/ncurses4/terminfo/a/att5420+nl +/usr/share/ncurses4/terminfo/a/att5420-nl +/usr/share/ncurses4/terminfo/a/att5420-rv +/usr/share/ncurses4/terminfo/a/att5420-rv-nl +/usr/share/ncurses4/terminfo/a/att5420-w +/usr/share/ncurses4/terminfo/a/att5420-w-nl +/usr/share/ncurses4/terminfo/a/att5420-w-rv +/usr/share/ncurses4/terminfo/a/att5420-w-rv-n +/usr/share/ncurses4/terminfo/a/att5420_2 +/usr/share/ncurses4/terminfo/a/att5420_2-w +/usr/share/ncurses4/terminfo/a/att5425 +/usr/share/ncurses4/terminfo/a/att5425-nl +/usr/share/ncurses4/terminfo/a/att5425-w +/usr/share/ncurses4/terminfo/a/att5430 +/usr/share/ncurses4/terminfo/a/att5620 +/usr/share/ncurses4/terminfo/a/att5620-1 +/usr/share/ncurses4/terminfo/a/att5620-24 +/usr/share/ncurses4/terminfo/a/att5620-34 +/usr/share/ncurses4/terminfo/a/att5620-s +/usr/share/ncurses4/terminfo/a/att605 +/usr/share/ncurses4/terminfo/a/att605-pc +/usr/share/ncurses4/terminfo/a/att605-w +/usr/share/ncurses4/terminfo/a/att610 +/usr/share/ncurses4/terminfo/a/att610-103k +/usr/share/ncurses4/terminfo/a/att610-103k-w +/usr/share/ncurses4/terminfo/a/att610-w +/usr/share/ncurses4/terminfo/a/att615 +/usr/share/ncurses4/terminfo/a/att615-103k +/usr/share/ncurses4/terminfo/a/att615-103k-w +/usr/share/ncurses4/terminfo/a/att615-w +/usr/share/ncurses4/terminfo/a/att620 +/usr/share/ncurses4/terminfo/a/att620-103k +/usr/share/ncurses4/terminfo/a/att620-103k-w +/usr/share/ncurses4/terminfo/a/att620-w +/usr/share/ncurses4/terminfo/a/att630 +/usr/share/ncurses4/terminfo/a/att630-24 +/usr/share/ncurses4/terminfo/a/att6386 +/usr/share/ncurses4/terminfo/a/att730 +/usr/share/ncurses4/terminfo/a/att730-24 +/usr/share/ncurses4/terminfo/a/att730-41 +/usr/share/ncurses4/terminfo/a/att7300 +/usr/share/ncurses4/terminfo/a/att730r +/usr/share/ncurses4/terminfo/a/att730r-24 +/usr/share/ncurses4/terminfo/a/att730r-41 +/usr/share/ncurses4/terminfo/a/avatar +/usr/share/ncurses4/terminfo/a/avatar0 +/usr/share/ncurses4/terminfo/a/avatar0+ +/usr/share/ncurses4/terminfo/a/avatar1 +/usr/share/ncurses4/terminfo/a/avt +/usr/share/ncurses4/terminfo/a/avt+s +/usr/share/ncurses4/terminfo/a/avt-ns +/usr/share/ncurses4/terminfo/a/avt-rv +/usr/share/ncurses4/terminfo/a/avt-rv-ns +/usr/share/ncurses4/terminfo/a/avt-rv-s +/usr/share/ncurses4/terminfo/a/avt-s +/usr/share/ncurses4/terminfo/a/avt-w +/usr/share/ncurses4/terminfo/a/avt-w-ns +/usr/share/ncurses4/terminfo/a/avt-w-rv +/usr/share/ncurses4/terminfo/a/avt-w-rv-ns +/usr/share/ncurses4/terminfo/a/avt-w-rv-s +/usr/share/ncurses4/terminfo/a/avt-w-s +/usr/share/ncurses4/terminfo/a/aws +/usr/share/ncurses4/terminfo/a/awsc +/usr/share/ncurses4/terminfo/b +/usr/share/ncurses4/terminfo/b/b-128 +/usr/share/ncurses4/terminfo/b/bantam +/usr/share/ncurses4/terminfo/b/basic4 +/usr/share/ncurses4/terminfo/b/basis +/usr/share/ncurses4/terminfo/b/bct510a +/usr/share/ncurses4/terminfo/b/bct510d +/usr/share/ncurses4/terminfo/b/beacon +/usr/share/ncurses4/terminfo/b/bee +/usr/share/ncurses4/terminfo/b/beehive +/usr/share/ncurses4/terminfo/b/beehive3 +/usr/share/ncurses4/terminfo/b/beehive4 +/usr/share/ncurses4/terminfo/b/beehiveIIIm +/usr/share/ncurses4/terminfo/b/beterm +/usr/share/ncurses4/terminfo/b/bg1.25 +/usr/share/ncurses4/terminfo/b/bg1.25nv +/usr/share/ncurses4/terminfo/b/bg1.25rv +/usr/share/ncurses4/terminfo/b/bg2.0 +/usr/share/ncurses4/terminfo/b/bg2.0nv +/usr/share/ncurses4/terminfo/b/bg2.0rv +/usr/share/ncurses4/terminfo/b/bg3.10 +/usr/share/ncurses4/terminfo/b/bg3.10nv +/usr/share/ncurses4/terminfo/b/bg3.10rv +/usr/share/ncurses4/terminfo/b/bh3m +/usr/share/ncurses4/terminfo/b/bh4 +/usr/share/ncurses4/terminfo/b/bitgraph +/usr/share/ncurses4/terminfo/b/blit +/usr/share/ncurses4/terminfo/b/bobcat +/usr/share/ncurses4/terminfo/b/bsdos +/usr/share/ncurses4/terminfo/b/bsdos-bold +/usr/share/ncurses4/terminfo/c +/usr/share/ncurses4/terminfo/c/c100 +/usr/share/ncurses4/terminfo/c/c100-1p +/usr/share/ncurses4/terminfo/c/c100-4p +/usr/share/ncurses4/terminfo/c/c100-rv +/usr/share/ncurses4/terminfo/c/c100-rv-4p +/usr/share/ncurses4/terminfo/c/c104 +/usr/share/ncurses4/terminfo/c/c108 +/usr/share/ncurses4/terminfo/c/c108-4p +/usr/share/ncurses4/terminfo/c/c108-8p +/usr/share/ncurses4/terminfo/c/c108-rv +/usr/share/ncurses4/terminfo/c/c108-rv-4p +/usr/share/ncurses4/terminfo/c/c108-rv-8p +/usr/share/ncurses4/terminfo/c/c108-w +/usr/share/ncurses4/terminfo/c/c108-w-8p +/usr/share/ncurses4/terminfo/c/c300 +/usr/share/ncurses4/terminfo/c/c301 +/usr/share/ncurses4/terminfo/c/c321 +/usr/share/ncurses4/terminfo/c/ca22851 +/usr/share/ncurses4/terminfo/c/cad68-2 +/usr/share/ncurses4/terminfo/c/cad68-3 +/usr/share/ncurses4/terminfo/c/cbblit +/usr/share/ncurses4/terminfo/c/cbunix +/usr/share/ncurses4/terminfo/c/cci +/usr/share/ncurses4/terminfo/c/cci1 +/usr/share/ncurses4/terminfo/c/cdc456 +/usr/share/ncurses4/terminfo/c/cdc721 +/usr/share/ncurses4/terminfo/c/cdc721-esc +/usr/share/ncurses4/terminfo/c/cdc721ll +/usr/share/ncurses4/terminfo/c/cdc752 +/usr/share/ncurses4/terminfo/c/cdc756 +/usr/share/ncurses4/terminfo/c/cg7900 +/usr/share/ncurses4/terminfo/c/cgc2 +/usr/share/ncurses4/terminfo/c/cgc3 +/usr/share/ncurses4/terminfo/c/chromatics +/usr/share/ncurses4/terminfo/c/ci8510 +/usr/share/ncurses4/terminfo/c/cit-80 +/usr/share/ncurses4/terminfo/c/cit101 +/usr/share/ncurses4/terminfo/c/cit101e +/usr/share/ncurses4/terminfo/c/cit101e-132 +/usr/share/ncurses4/terminfo/c/cit101e-n +/usr/share/ncurses4/terminfo/c/cit101e-n132 +/usr/share/ncurses4/terminfo/c/cit101e-rv +/usr/share/ncurses4/terminfo/c/cit500 +/usr/share/ncurses4/terminfo/c/cit80 +/usr/share/ncurses4/terminfo/c/citc +/usr/share/ncurses4/terminfo/c/citoh +/usr/share/ncurses4/terminfo/c/citoh-6lpi +/usr/share/ncurses4/terminfo/c/citoh-8lpi +/usr/share/ncurses4/terminfo/c/citoh-comp +/usr/share/ncurses4/terminfo/c/citoh-elite +/usr/share/ncurses4/terminfo/c/citoh-pica +/usr/share/ncurses4/terminfo/c/citoh-prop +/usr/share/ncurses4/terminfo/c/citoh-ps +/usr/share/ncurses4/terminfo/c/coco3 +/usr/share/ncurses4/terminfo/c/coherent +/usr/share/ncurses4/terminfo/c/color_xterm +/usr/share/ncurses4/terminfo/c/colorscan +/usr/share/ncurses4/terminfo/c/commodore +/usr/share/ncurses4/terminfo/c/concept +/usr/share/ncurses4/terminfo/c/concept-avt +/usr/share/ncurses4/terminfo/c/concept100 +/usr/share/ncurses4/terminfo/c/concept100-rv +/usr/share/ncurses4/terminfo/c/concept108 +/usr/share/ncurses4/terminfo/c/concept108-4p +/usr/share/ncurses4/terminfo/c/concept108-8p +/usr/share/ncurses4/terminfo/c/concept108-w-8 +/usr/share/ncurses4/terminfo/c/concept108-w8p +/usr/share/ncurses4/terminfo/c/concept108rv4p +/usr/share/ncurses4/terminfo/c/cons25 +/usr/share/ncurses4/terminfo/c/cons25-iso-m +/usr/share/ncurses4/terminfo/c/cons25-iso8859 +/usr/share/ncurses4/terminfo/c/cons25-koi8-r +/usr/share/ncurses4/terminfo/c/cons25-koi8r-m +/usr/share/ncurses4/terminfo/c/cons25-m +/usr/share/ncurses4/terminfo/c/cons25l1 +/usr/share/ncurses4/terminfo/c/cons25l1-m +/usr/share/ncurses4/terminfo/c/cons25r +/usr/share/ncurses4/terminfo/c/cons25r-m +/usr/share/ncurses4/terminfo/c/cons25w +/usr/share/ncurses4/terminfo/c/cons30 +/usr/share/ncurses4/terminfo/c/cons30-m +/usr/share/ncurses4/terminfo/c/cons43 +/usr/share/ncurses4/terminfo/c/cons43-m +/usr/share/ncurses4/terminfo/c/cons50 +/usr/share/ncurses4/terminfo/c/cons50-iso-m +/usr/share/ncurses4/terminfo/c/cons50-iso8859 +/usr/share/ncurses4/terminfo/c/cons50-koi8r +/usr/share/ncurses4/terminfo/c/cons50-koi8r-m +/usr/share/ncurses4/terminfo/c/cons50-m +/usr/share/ncurses4/terminfo/c/cons50l1 +/usr/share/ncurses4/terminfo/c/cons50l1-m +/usr/share/ncurses4/terminfo/c/cons50r +/usr/share/ncurses4/terminfo/c/cons50r-m +/usr/share/ncurses4/terminfo/c/cons60 +/usr/share/ncurses4/terminfo/c/cons60-iso +/usr/share/ncurses4/terminfo/c/cons60-iso-m +/usr/share/ncurses4/terminfo/c/cons60-koi8r +/usr/share/ncurses4/terminfo/c/cons60-koi8r-m +/usr/share/ncurses4/terminfo/c/cons60-m +/usr/share/ncurses4/terminfo/c/cons60l1 +/usr/share/ncurses4/terminfo/c/cons60l1-m +/usr/share/ncurses4/terminfo/c/cons60r +/usr/share/ncurses4/terminfo/c/cons60r-m +/usr/share/ncurses4/terminfo/c/contel300 +/usr/share/ncurses4/terminfo/c/contel301 +/usr/share/ncurses4/terminfo/c/contel320 +/usr/share/ncurses4/terminfo/c/contel321 +/usr/share/ncurses4/terminfo/c/cops +/usr/share/ncurses4/terminfo/c/cops-10 +/usr/share/ncurses4/terminfo/c/cops10 +/usr/share/ncurses4/terminfo/c/cs10 +/usr/share/ncurses4/terminfo/c/cs10-w +/usr/share/ncurses4/terminfo/c/ct82 +/usr/share/ncurses4/terminfo/c/ct8500 +/usr/share/ncurses4/terminfo/c/ctrm +/usr/share/ncurses4/terminfo/c/cx +/usr/share/ncurses4/terminfo/c/cx100 +/usr/share/ncurses4/terminfo/c/cyb110 +/usr/share/ncurses4/terminfo/c/cyb83 +/usr/share/ncurses4/terminfo/d +/usr/share/ncurses4/terminfo/d/d132 +/usr/share/ncurses4/terminfo/d/d80 +/usr/share/ncurses4/terminfo/d/d800 +/usr/share/ncurses4/terminfo/d/datagraphix +/usr/share/ncurses4/terminfo/d/datamedia2500 +/usr/share/ncurses4/terminfo/d/datapoint +/usr/share/ncurses4/terminfo/d/dataspeed40 +/usr/share/ncurses4/terminfo/d/dd5000 +/usr/share/ncurses4/terminfo/d/ddr +/usr/share/ncurses4/terminfo/d/ddr3180 +/usr/share/ncurses4/terminfo/d/dec-vt100 +/usr/share/ncurses4/terminfo/d/dec-vt220 +/usr/share/ncurses4/terminfo/d/dec-vt330 +/usr/share/ncurses4/terminfo/d/dec-vt340 +/usr/share/ncurses4/terminfo/d/dec-vt400 +/usr/share/ncurses4/terminfo/d/decpro +/usr/share/ncurses4/terminfo/d/decwriter +/usr/share/ncurses4/terminfo/d/delta +/usr/share/ncurses4/terminfo/d/dg-ansi +/usr/share/ncurses4/terminfo/d/dg100 +/usr/share/ncurses4/terminfo/d/dg200 +/usr/share/ncurses4/terminfo/d/dg210 +/usr/share/ncurses4/terminfo/d/dg211 +/usr/share/ncurses4/terminfo/d/dg450 +/usr/share/ncurses4/terminfo/d/dg460-ansi +/usr/share/ncurses4/terminfo/d/dg6053 +/usr/share/ncurses4/terminfo/d/dg6134 +/usr/share/ncurses4/terminfo/d/diablo +/usr/share/ncurses4/terminfo/d/diablo-lm +/usr/share/ncurses4/terminfo/d/diablo1620 +/usr/share/ncurses4/terminfo/d/diablo1620-m8 +/usr/share/ncurses4/terminfo/d/diablo1640 +/usr/share/ncurses4/terminfo/d/diablo1640-lm +/usr/share/ncurses4/terminfo/d/diablo1640-m8 +/usr/share/ncurses4/terminfo/d/diablo1720 +/usr/share/ncurses4/terminfo/d/diablo1730 +/usr/share/ncurses4/terminfo/d/diablo1740 +/usr/share/ncurses4/terminfo/d/diablo1740-lm +/usr/share/ncurses4/terminfo/d/diablo450 +/usr/share/ncurses4/terminfo/d/diablo630 +/usr/share/ncurses4/terminfo/d/dialogue +/usr/share/ncurses4/terminfo/d/dialogue80 +/usr/share/ncurses4/terminfo/d/digilog +/usr/share/ncurses4/terminfo/d/dku7003 +/usr/share/ncurses4/terminfo/d/dku7003-dumb +/usr/share/ncurses4/terminfo/d/dm1520 +/usr/share/ncurses4/terminfo/d/dm1521 +/usr/share/ncurses4/terminfo/d/dm2500 +/usr/share/ncurses4/terminfo/d/dm3025 +/usr/share/ncurses4/terminfo/d/dm3045 +/usr/share/ncurses4/terminfo/d/dm80 +/usr/share/ncurses4/terminfo/d/dm80w +/usr/share/ncurses4/terminfo/d/dmchat +/usr/share/ncurses4/terminfo/d/dmd +/usr/share/ncurses4/terminfo/d/dmd-24 +/usr/share/ncurses4/terminfo/d/dmd-34 +/usr/share/ncurses4/terminfo/d/dmd1 +/usr/share/ncurses4/terminfo/d/dmdt80 +/usr/share/ncurses4/terminfo/d/dmdt80w +/usr/share/ncurses4/terminfo/d/dmterm +/usr/share/ncurses4/terminfo/d/dp3360 +/usr/share/ncurses4/terminfo/d/dp8242 +/usr/share/ncurses4/terminfo/d/ds40 +/usr/share/ncurses4/terminfo/d/ds40-2 +/usr/share/ncurses4/terminfo/d/dt-100 +/usr/share/ncurses4/terminfo/d/dt-100w +/usr/share/ncurses4/terminfo/d/dt100 +/usr/share/ncurses4/terminfo/d/dt100w +/usr/share/ncurses4/terminfo/d/dt110 +/usr/share/ncurses4/terminfo/d/dt80 +/usr/share/ncurses4/terminfo/d/dt80-sas +/usr/share/ncurses4/terminfo/d/dt80w +/usr/share/ncurses4/terminfo/d/dtc300s +/usr/share/ncurses4/terminfo/d/dtc382 +/usr/share/ncurses4/terminfo/d/dtterm +/usr/share/ncurses4/terminfo/d/dumb +/usr/share/ncurses4/terminfo/d/dw +/usr/share/ncurses4/terminfo/d/dw1 +/usr/share/ncurses4/terminfo/d/dw2 +/usr/share/ncurses4/terminfo/d/dw3 +/usr/share/ncurses4/terminfo/d/dw4 +/usr/share/ncurses4/terminfo/d/dwk +/usr/share/ncurses4/terminfo/d/dwk-vt +/usr/share/ncurses4/terminfo/e +/usr/share/ncurses4/terminfo/e/ecma+color +/usr/share/ncurses4/terminfo/e/ecma+sgr +/usr/share/ncurses4/terminfo/e/emots +/usr/share/ncurses4/terminfo/e/emu +/usr/share/ncurses4/terminfo/e/env230 +/usr/share/ncurses4/terminfo/e/envision230 +/usr/share/ncurses4/terminfo/e/ep40 +/usr/share/ncurses4/terminfo/e/ep4000 +/usr/share/ncurses4/terminfo/e/ep4080 +/usr/share/ncurses4/terminfo/e/ep48 +/usr/share/ncurses4/terminfo/e/ergo4000 +/usr/share/ncurses4/terminfo/e/esprit +/usr/share/ncurses4/terminfo/e/esprit-am +/usr/share/ncurses4/terminfo/e/eterm +/usr/share/ncurses4/terminfo/e/ex155 +/usr/share/ncurses4/terminfo/e/excel62 +/usr/share/ncurses4/terminfo/e/excel62-rv +/usr/share/ncurses4/terminfo/e/excel62-w +/usr/share/ncurses4/terminfo/e/excel64 +/usr/share/ncurses4/terminfo/e/excel64-rv +/usr/share/ncurses4/terminfo/e/excel64-w +/usr/share/ncurses4/terminfo/e/exec80 +/usr/share/ncurses4/terminfo/f +/usr/share/ncurses4/terminfo/f/f100 +/usr/share/ncurses4/terminfo/f/f100-rv +/usr/share/ncurses4/terminfo/f/f110 +/usr/share/ncurses4/terminfo/f/f110-14 +/usr/share/ncurses4/terminfo/f/f110-14w +/usr/share/ncurses4/terminfo/f/f110-w +/usr/share/ncurses4/terminfo/f/f1720 +/usr/share/ncurses4/terminfo/f/f1720a +/usr/share/ncurses4/terminfo/f/f200 +/usr/share/ncurses4/terminfo/f/f200-w +/usr/share/ncurses4/terminfo/f/f200vi +/usr/share/ncurses4/terminfo/f/f200vi-w +/usr/share/ncurses4/terminfo/f/falco +/usr/share/ncurses4/terminfo/f/falco-p +/usr/share/ncurses4/terminfo/f/fenix +/usr/share/ncurses4/terminfo/f/fenixw +/usr/share/ncurses4/terminfo/f/fixterm +/usr/share/ncurses4/terminfo/f/fortune +/usr/share/ncurses4/terminfo/f/fos +/usr/share/ncurses4/terminfo/f/fox +/usr/share/ncurses4/terminfo/f/freedom +/usr/share/ncurses4/terminfo/f/freedom-rv +/usr/share/ncurses4/terminfo/f/freedom100 +/usr/share/ncurses4/terminfo/f/freedom110 +/usr/share/ncurses4/terminfo/f/freedom200 +/usr/share/ncurses4/terminfo/g +/usr/share/ncurses4/terminfo/g/gator +/usr/share/ncurses4/terminfo/g/gator-52 +/usr/share/ncurses4/terminfo/g/gator-52t +/usr/share/ncurses4/terminfo/g/gator-t +/usr/share/ncurses4/terminfo/g/gigi +/usr/share/ncurses4/terminfo/g/glasstty +/usr/share/ncurses4/terminfo/g/go-225 +/usr/share/ncurses4/terminfo/g/go140 +/usr/share/ncurses4/terminfo/g/go140w +/usr/share/ncurses4/terminfo/g/go225 +/usr/share/ncurses4/terminfo/g/graphos +/usr/share/ncurses4/terminfo/g/graphos-30 +/usr/share/ncurses4/terminfo/g/gs5430 +/usr/share/ncurses4/terminfo/g/gs5430-22 +/usr/share/ncurses4/terminfo/g/gs5430-24 +/usr/share/ncurses4/terminfo/g/gs6300 +/usr/share/ncurses4/terminfo/g/gsi +/usr/share/ncurses4/terminfo/g/gt100 +/usr/share/ncurses4/terminfo/g/gt100a +/usr/share/ncurses4/terminfo/g/gt40 +/usr/share/ncurses4/terminfo/g/gt42 +/usr/share/ncurses4/terminfo/g/guru +/usr/share/ncurses4/terminfo/g/guru+rv +/usr/share/ncurses4/terminfo/g/guru+s +/usr/share/ncurses4/terminfo/g/guru+unk +/usr/share/ncurses4/terminfo/g/guru-24 +/usr/share/ncurses4/terminfo/g/guru-33 +/usr/share/ncurses4/terminfo/g/guru-33-rv +/usr/share/ncurses4/terminfo/g/guru-33-s +/usr/share/ncurses4/terminfo/g/guru-44 +/usr/share/ncurses4/terminfo/g/guru-44-s +/usr/share/ncurses4/terminfo/g/guru-76 +/usr/share/ncurses4/terminfo/g/guru-76-lp +/usr/share/ncurses4/terminfo/g/guru-76-s +/usr/share/ncurses4/terminfo/g/guru-76-w +/usr/share/ncurses4/terminfo/g/guru-76-w-s +/usr/share/ncurses4/terminfo/g/guru-76-wm +/usr/share/ncurses4/terminfo/g/guru-lp +/usr/share/ncurses4/terminfo/g/guru-nctxt +/usr/share/ncurses4/terminfo/g/guru-rv +/usr/share/ncurses4/terminfo/g/guru-s +/usr/share/ncurses4/terminfo/h +/usr/share/ncurses4/terminfo/h/h-100 +/usr/share/ncurses4/terminfo/h/h-100bw +/usr/share/ncurses4/terminfo/h/h100 +/usr/share/ncurses4/terminfo/h/h100bw +/usr/share/ncurses4/terminfo/h/h19 +/usr/share/ncurses4/terminfo/h/h19-a +/usr/share/ncurses4/terminfo/h/h19-b +/usr/share/ncurses4/terminfo/h/h19-bs +/usr/share/ncurses4/terminfo/h/h19-g +/usr/share/ncurses4/terminfo/h/h19-smul +/usr/share/ncurses4/terminfo/h/h19-u +/usr/share/ncurses4/terminfo/h/h19-us +/usr/share/ncurses4/terminfo/h/h19a +/usr/share/ncurses4/terminfo/h/h19g +/usr/share/ncurses4/terminfo/h/h19k +/usr/share/ncurses4/terminfo/h/h19kermit +/usr/share/ncurses4/terminfo/h/h19us +/usr/share/ncurses4/terminfo/h/h29a-kc-bc +/usr/share/ncurses4/terminfo/h/h29a-kc-uc +/usr/share/ncurses4/terminfo/h/h29a-nkc-bc +/usr/share/ncurses4/terminfo/h/h29a-nkc-uc +/usr/share/ncurses4/terminfo/h/h80 +/usr/share/ncurses4/terminfo/h/ha8675 +/usr/share/ncurses4/terminfo/h/ha8686 +/usr/share/ncurses4/terminfo/h/hazel +/usr/share/ncurses4/terminfo/h/hds200 +/usr/share/ncurses4/terminfo/h/he80 +/usr/share/ncurses4/terminfo/h/heath +/usr/share/ncurses4/terminfo/h/heath-19 +/usr/share/ncurses4/terminfo/h/heath-ansi +/usr/share/ncurses4/terminfo/h/heathkit +/usr/share/ncurses4/terminfo/h/heathkit-a +/usr/share/ncurses4/terminfo/h/hft +/usr/share/ncurses4/terminfo/h/hft-c +/usr/share/ncurses4/terminfo/h/hirez100 +/usr/share/ncurses4/terminfo/h/hirez100-w +/usr/share/ncurses4/terminfo/h/hmod1 +/usr/share/ncurses4/terminfo/h/hp +/usr/share/ncurses4/terminfo/h/hp+arrows +/usr/share/ncurses4/terminfo/h/hp+color +/usr/share/ncurses4/terminfo/h/hp+labels +/usr/share/ncurses4/terminfo/h/hp+pfk+arrows +/usr/share/ncurses4/terminfo/h/hp+pfk+cr +/usr/share/ncurses4/terminfo/h/hp+pfk-cr +/usr/share/ncurses4/terminfo/h/hp+printer +/usr/share/ncurses4/terminfo/h/hp110 +/usr/share/ncurses4/terminfo/h/hp150 +/usr/share/ncurses4/terminfo/h/hp2 +/usr/share/ncurses4/terminfo/h/hp236 +/usr/share/ncurses4/terminfo/h/hp2382 +/usr/share/ncurses4/terminfo/h/hp2382a +/usr/share/ncurses4/terminfo/h/hp2392 +/usr/share/ncurses4/terminfo/h/hp2397 +/usr/share/ncurses4/terminfo/h/hp2397a +/usr/share/ncurses4/terminfo/h/hp2621 +/usr/share/ncurses4/terminfo/h/hp2621-48 +/usr/share/ncurses4/terminfo/h/hp2621-a +/usr/share/ncurses4/terminfo/h/hp2621-ba +/usr/share/ncurses4/terminfo/h/hp2621-fl +/usr/share/ncurses4/terminfo/h/hp2621-k45 +/usr/share/ncurses4/terminfo/h/hp2621-nl +/usr/share/ncurses4/terminfo/h/hp2621-nt +/usr/share/ncurses4/terminfo/h/hp2621-wl +/usr/share/ncurses4/terminfo/h/hp2621A +/usr/share/ncurses4/terminfo/h/hp2621a +/usr/share/ncurses4/terminfo/h/hp2621a-a +/usr/share/ncurses4/terminfo/h/hp2621b +/usr/share/ncurses4/terminfo/h/hp2621b-kx +/usr/share/ncurses4/terminfo/h/hp2621b-kx-p +/usr/share/ncurses4/terminfo/h/hp2621b-p +/usr/share/ncurses4/terminfo/h/hp2621k45 +/usr/share/ncurses4/terminfo/h/hp2621p +/usr/share/ncurses4/terminfo/h/hp2621p-a +/usr/share/ncurses4/terminfo/h/hp2622 +/usr/share/ncurses4/terminfo/h/hp2622a +/usr/share/ncurses4/terminfo/h/hp2623 +/usr/share/ncurses4/terminfo/h/hp2623a +/usr/share/ncurses4/terminfo/h/hp2624 +/usr/share/ncurses4/terminfo/h/hp2624-10p +/usr/share/ncurses4/terminfo/h/hp2624a +/usr/share/ncurses4/terminfo/h/hp2624a-10p +/usr/share/ncurses4/terminfo/h/hp2624b +/usr/share/ncurses4/terminfo/h/hp2624b-10p +/usr/share/ncurses4/terminfo/h/hp2624b-10p-p +/usr/share/ncurses4/terminfo/h/hp2624b-4p +/usr/share/ncurses4/terminfo/h/hp2624b-4p-p +/usr/share/ncurses4/terminfo/h/hp2624b-p +/usr/share/ncurses4/terminfo/h/hp2626 +/usr/share/ncurses4/terminfo/h/hp2626-12 +/usr/share/ncurses4/terminfo/h/hp2626-12-s +/usr/share/ncurses4/terminfo/h/hp2626-12x40 +/usr/share/ncurses4/terminfo/h/hp2626-ns +/usr/share/ncurses4/terminfo/h/hp2626-s +/usr/share/ncurses4/terminfo/h/hp2626-x40 +/usr/share/ncurses4/terminfo/h/hp2626a +/usr/share/ncurses4/terminfo/h/hp2626p +/usr/share/ncurses4/terminfo/h/hp2627a +/usr/share/ncurses4/terminfo/h/hp2627a-rev +/usr/share/ncurses4/terminfo/h/hp2627c +/usr/share/ncurses4/terminfo/h/hp262x +/usr/share/ncurses4/terminfo/h/hp2640a +/usr/share/ncurses4/terminfo/h/hp2640b +/usr/share/ncurses4/terminfo/h/hp2641a +/usr/share/ncurses4/terminfo/h/hp2644a +/usr/share/ncurses4/terminfo/h/hp2645 +/usr/share/ncurses4/terminfo/h/hp2645a +/usr/share/ncurses4/terminfo/h/hp2647a +/usr/share/ncurses4/terminfo/h/hp2648 +/usr/share/ncurses4/terminfo/h/hp2648a +/usr/share/ncurses4/terminfo/h/hp300h +/usr/share/ncurses4/terminfo/h/hp45 +/usr/share/ncurses4/terminfo/h/hp700 +/usr/share/ncurses4/terminfo/h/hp700-wy +/usr/share/ncurses4/terminfo/h/hp70092 +/usr/share/ncurses4/terminfo/h/hp70092A +/usr/share/ncurses4/terminfo/h/hp70092a +/usr/share/ncurses4/terminfo/h/hp9837 +/usr/share/ncurses4/terminfo/h/hp9845 +/usr/share/ncurses4/terminfo/h/hp98550 +/usr/share/ncurses4/terminfo/h/hp98550a +/usr/share/ncurses4/terminfo/h/hp98720 +/usr/share/ncurses4/terminfo/h/hp98721 +/usr/share/ncurses4/terminfo/h/hpansi +/usr/share/ncurses4/terminfo/h/hpex +/usr/share/ncurses4/terminfo/h/hpex2 +/usr/share/ncurses4/terminfo/h/hpgeneric +/usr/share/ncurses4/terminfo/h/hpsub +/usr/share/ncurses4/terminfo/h/hpterm +/usr/share/ncurses4/terminfo/h/htx11 +/usr/share/ncurses4/terminfo/h/hz1000 +/usr/share/ncurses4/terminfo/h/hz1420 +/usr/share/ncurses4/terminfo/h/hz1500 +/usr/share/ncurses4/terminfo/h/hz1510 +/usr/share/ncurses4/terminfo/h/hz1520 +/usr/share/ncurses4/terminfo/h/hz1520-noesc +/usr/share/ncurses4/terminfo/h/hz1552 +/usr/share/ncurses4/terminfo/h/hz1552-rv +/usr/share/ncurses4/terminfo/h/hz2000 +/usr/share/ncurses4/terminfo/i +/usr/share/ncurses4/terminfo/i/i100 +/usr/share/ncurses4/terminfo/i/i3101 +/usr/share/ncurses4/terminfo/i/i3151 +/usr/share/ncurses4/terminfo/i/i3164 +/usr/share/ncurses4/terminfo/i/i400 +/usr/share/ncurses4/terminfo/i/ibcs2 +/usr/share/ncurses4/terminfo/i/ibm-apl +/usr/share/ncurses4/terminfo/i/ibm-pc +/usr/share/ncurses4/terminfo/i/ibm-system1 +/usr/share/ncurses4/terminfo/i/ibm3101 +/usr/share/ncurses4/terminfo/i/ibm3151 +/usr/share/ncurses4/terminfo/i/ibm3161 +/usr/share/ncurses4/terminfo/i/ibm3163 +/usr/share/ncurses4/terminfo/i/ibm3164 +/usr/share/ncurses4/terminfo/i/ibm327x +/usr/share/ncurses4/terminfo/i/ibm5051 +/usr/share/ncurses4/terminfo/i/ibm5081 +/usr/share/ncurses4/terminfo/i/ibm5081-c +/usr/share/ncurses4/terminfo/i/ibm5151 +/usr/share/ncurses4/terminfo/i/ibm5154 +/usr/share/ncurses4/terminfo/i/ibm5154-c +/usr/share/ncurses4/terminfo/i/ibm6153 +/usr/share/ncurses4/terminfo/i/ibm6154 +/usr/share/ncurses4/terminfo/i/ibm6154-c +/usr/share/ncurses4/terminfo/i/ibm6155 +/usr/share/ncurses4/terminfo/i/ibm8512 +/usr/share/ncurses4/terminfo/i/ibm8513 +/usr/share/ncurses4/terminfo/i/ibm8514 +/usr/share/ncurses4/terminfo/i/ibm8514-c +/usr/share/ncurses4/terminfo/i/ibmaed +/usr/share/ncurses4/terminfo/i/ibmapa16 +/usr/share/ncurses4/terminfo/i/ibmapa8 +/usr/share/ncurses4/terminfo/i/ibmapa8c +/usr/share/ncurses4/terminfo/i/ibmapa8c-c +/usr/share/ncurses4/terminfo/i/ibmega +/usr/share/ncurses4/terminfo/i/ibmega-c +/usr/share/ncurses4/terminfo/i/ibmmono +/usr/share/ncurses4/terminfo/i/ibmmpel +/usr/share/ncurses4/terminfo/i/ibmmpel-c +/usr/share/ncurses4/terminfo/i/ibmpc +/usr/share/ncurses4/terminfo/i/ibmpc3 +/usr/share/ncurses4/terminfo/i/ibmpc3r +/usr/share/ncurses4/terminfo/i/ibmpc3r-mono +/usr/share/ncurses4/terminfo/i/ibmpcx +/usr/share/ncurses4/terminfo/i/ibmvga +/usr/share/ncurses4/terminfo/i/ibmvga-c +/usr/share/ncurses4/terminfo/i/ibmx +/usr/share/ncurses4/terminfo/i/ifmr +/usr/share/ncurses4/terminfo/i/ims-ansi +/usr/share/ncurses4/terminfo/i/ims950 +/usr/share/ncurses4/terminfo/i/ims950-b +/usr/share/ncurses4/terminfo/i/ims950-rv +/usr/share/ncurses4/terminfo/i/infoton +/usr/share/ncurses4/terminfo/i/intertec +/usr/share/ncurses4/terminfo/i/intertube +/usr/share/ncurses4/terminfo/i/intertube2 +/usr/share/ncurses4/terminfo/i/intext +/usr/share/ncurses4/terminfo/i/intext2 +/usr/share/ncurses4/terminfo/i/intextii +/usr/share/ncurses4/terminfo/i/ips +/usr/share/ncurses4/terminfo/i/ipsi +/usr/share/ncurses4/terminfo/i/iq120 +/usr/share/ncurses4/terminfo/i/iq140 +/usr/share/ncurses4/terminfo/i/iris-ansi +/usr/share/ncurses4/terminfo/i/iris-ansi-ap +/usr/share/ncurses4/terminfo/i/iris-color +/usr/share/ncurses4/terminfo/i/iris40 +/usr/share/ncurses4/terminfo/j +/usr/share/ncurses4/terminfo/j/jaixterm-m +/usr/share/ncurses4/terminfo/j/jerq +/usr/share/ncurses4/terminfo/k +/usr/share/ncurses4/terminfo/k/k45 +/usr/share/ncurses4/terminfo/k/kaypro +/usr/share/ncurses4/terminfo/k/kaypro2 +/usr/share/ncurses4/terminfo/k/kermit +/usr/share/ncurses4/terminfo/k/kermit-am +/usr/share/ncurses4/terminfo/k/klone+acs +/usr/share/ncurses4/terminfo/k/klone+color +/usr/share/ncurses4/terminfo/k/klone+koi8acs +/usr/share/ncurses4/terminfo/k/klone+sgr +/usr/share/ncurses4/terminfo/k/klone+sgr-dumb +/usr/share/ncurses4/terminfo/k/kt7 +/usr/share/ncurses4/terminfo/k/kt7ix +/usr/share/ncurses4/terminfo/k/kterm +/usr/share/ncurses4/terminfo/k/ktm +/usr/share/ncurses4/terminfo/l +/usr/share/ncurses4/terminfo/l/la120 +/usr/share/ncurses4/terminfo/l/layer +/usr/share/ncurses4/terminfo/l/linux +/usr/share/ncurses4/terminfo/l/linux-c +/usr/share/ncurses4/terminfo/l/linux-c-nc +/usr/share/ncurses4/terminfo/l/linux-koi8 +/usr/share/ncurses4/terminfo/l/linux-koi8r +/usr/share/ncurses4/terminfo/l/linux-m +/usr/share/ncurses4/terminfo/l/linux-nic +/usr/share/ncurses4/terminfo/l/lisa +/usr/share/ncurses4/terminfo/l/lisaterm +/usr/share/ncurses4/terminfo/l/lisaterm-w +/usr/share/ncurses4/terminfo/l/liswb +/usr/share/ncurses4/terminfo/l/ln03 +/usr/share/ncurses4/terminfo/l/ln03-w +/usr/share/ncurses4/terminfo/l/lpr +/usr/share/ncurses4/terminfo/l/luna +/usr/share/ncurses4/terminfo/l/luna68k +/usr/share/ncurses4/terminfo/m +/usr/share/ncurses4/terminfo/m/m2-nam +/usr/share/ncurses4/terminfo/m/mac +/usr/share/ncurses4/terminfo/m/mac-w +/usr/share/ncurses4/terminfo/m/macintosh +/usr/share/ncurses4/terminfo/m/macterminal-w +/usr/share/ncurses4/terminfo/m/mai +/usr/share/ncurses4/terminfo/m/masscomp +/usr/share/ncurses4/terminfo/m/masscomp1 +/usr/share/ncurses4/terminfo/m/masscomp2 +/usr/share/ncurses4/terminfo/m/mdl110 +/usr/share/ncurses4/terminfo/m/megatek +/usr/share/ncurses4/terminfo/m/memhp +/usr/share/ncurses4/terminfo/m/mgr +/usr/share/ncurses4/terminfo/m/mgr-linux +/usr/share/ncurses4/terminfo/m/mgr-sun +/usr/share/ncurses4/terminfo/m/microb +/usr/share/ncurses4/terminfo/m/microbee +/usr/share/ncurses4/terminfo/m/microterm +/usr/share/ncurses4/terminfo/m/microterm5 +/usr/share/ncurses4/terminfo/m/mime +/usr/share/ncurses4/terminfo/m/mime-3ax +/usr/share/ncurses4/terminfo/m/mime-fb +/usr/share/ncurses4/terminfo/m/mime-hb +/usr/share/ncurses4/terminfo/m/mime1 +/usr/share/ncurses4/terminfo/m/mime2 +/usr/share/ncurses4/terminfo/m/mime2a +/usr/share/ncurses4/terminfo/m/mime2a-s +/usr/share/ncurses4/terminfo/m/mime2a-v +/usr/share/ncurses4/terminfo/m/mime314 +/usr/share/ncurses4/terminfo/m/mime340 +/usr/share/ncurses4/terminfo/m/mime3a +/usr/share/ncurses4/terminfo/m/mime3ax +/usr/share/ncurses4/terminfo/m/mimei +/usr/share/ncurses4/terminfo/m/mimeii +/usr/share/ncurses4/terminfo/m/minitel +/usr/share/ncurses4/terminfo/m/minitel-2 +/usr/share/ncurses4/terminfo/m/minitel-2-nam +/usr/share/ncurses4/terminfo/m/minix +/usr/share/ncurses4/terminfo/m/minix-old +/usr/share/ncurses4/terminfo/m/minix-old-am +/usr/share/ncurses4/terminfo/m/mm314 +/usr/share/ncurses4/terminfo/m/mm340 +/usr/share/ncurses4/terminfo/m/mod +/usr/share/ncurses4/terminfo/m/mod24 +/usr/share/ncurses4/terminfo/m/modgraph +/usr/share/ncurses4/terminfo/m/modgraph2 +/usr/share/ncurses4/terminfo/m/modgraph48 +/usr/share/ncurses4/terminfo/m/mono-emx +/usr/share/ncurses4/terminfo/m/msk227 +/usr/share/ncurses4/terminfo/m/msk22714 +/usr/share/ncurses4/terminfo/m/msk227am +/usr/share/ncurses4/terminfo/m/mskermit227 +/usr/share/ncurses4/terminfo/m/mskermit22714 +/usr/share/ncurses4/terminfo/m/mskermit227am +/usr/share/ncurses4/terminfo/m/mt-70 +/usr/share/ncurses4/terminfo/m/mt4520-rv +/usr/share/ncurses4/terminfo/m/mt70 +/usr/share/ncurses4/terminfo/n +/usr/share/ncurses4/terminfo/n/nansi.sys +/usr/share/ncurses4/terminfo/n/nansi.sysk +/usr/share/ncurses4/terminfo/n/nansisys +/usr/share/ncurses4/terminfo/n/nansisysk +/usr/share/ncurses4/terminfo/n/ncr7900 +/usr/share/ncurses4/terminfo/n/ncr7900i +/usr/share/ncurses4/terminfo/n/ncr7900iv +/usr/share/ncurses4/terminfo/n/ncr7901 +/usr/share/ncurses4/terminfo/n/nec +/usr/share/ncurses4/terminfo/n/nec5520 +/usr/share/ncurses4/terminfo/n/newhp +/usr/share/ncurses4/terminfo/n/newhpkeyboard +/usr/share/ncurses4/terminfo/n/news +/usr/share/ncurses4/terminfo/n/news-29 +/usr/share/ncurses4/terminfo/n/news-29-euc +/usr/share/ncurses4/terminfo/n/news-29-sjis +/usr/share/ncurses4/terminfo/n/news-33 +/usr/share/ncurses4/terminfo/n/news-33-euc +/usr/share/ncurses4/terminfo/n/news-33-sjis +/usr/share/ncurses4/terminfo/n/news-42 +/usr/share/ncurses4/terminfo/n/news-42-euc +/usr/share/ncurses4/terminfo/n/news-42-sjis +/usr/share/ncurses4/terminfo/n/news-a +/usr/share/ncurses4/terminfo/n/news-o +/usr/share/ncurses4/terminfo/n/news-old-unk +/usr/share/ncurses4/terminfo/n/news-unk +/usr/share/ncurses4/terminfo/n/news28 +/usr/share/ncurses4/terminfo/n/news28-a +/usr/share/ncurses4/terminfo/n/news29 +/usr/share/ncurses4/terminfo/n/news31 +/usr/share/ncurses4/terminfo/n/news31-a +/usr/share/ncurses4/terminfo/n/news31-o +/usr/share/ncurses4/terminfo/n/news33 +/usr/share/ncurses4/terminfo/n/news40 +/usr/share/ncurses4/terminfo/n/news40-a +/usr/share/ncurses4/terminfo/n/news40-o +/usr/share/ncurses4/terminfo/n/news42 +/usr/share/ncurses4/terminfo/n/newscbm +/usr/share/ncurses4/terminfo/n/newscbm-a +/usr/share/ncurses4/terminfo/n/newscbm-o +/usr/share/ncurses4/terminfo/n/newscbm33 +/usr/share/ncurses4/terminfo/n/next +/usr/share/ncurses4/terminfo/n/nextshell +/usr/share/ncurses4/terminfo/n/northstar +/usr/share/ncurses4/terminfo/n/nwe501 +/usr/share/ncurses4/terminfo/n/nwe501-a +/usr/share/ncurses4/terminfo/n/nwe501-o +/usr/share/ncurses4/terminfo/n/nwp-511 +/usr/share/ncurses4/terminfo/n/nwp-517 +/usr/share/ncurses4/terminfo/n/nwp-517-w +/usr/share/ncurses4/terminfo/n/nwp251-a +/usr/share/ncurses4/terminfo/n/nwp251-o +/usr/share/ncurses4/terminfo/n/nwp511 +/usr/share/ncurses4/terminfo/n/nwp512 +/usr/share/ncurses4/terminfo/n/nwp512-a +/usr/share/ncurses4/terminfo/n/nwp512-o +/usr/share/ncurses4/terminfo/n/nwp513 +/usr/share/ncurses4/terminfo/n/nwp513-a +/usr/share/ncurses4/terminfo/n/nwp513-o +/usr/share/ncurses4/terminfo/n/nwp514 +/usr/share/ncurses4/terminfo/n/nwp514-a +/usr/share/ncurses4/terminfo/n/nwp514-o +/usr/share/ncurses4/terminfo/n/nwp517 +/usr/share/ncurses4/terminfo/n/nwp517-w +/usr/share/ncurses4/terminfo/n/nwp518 +/usr/share/ncurses4/terminfo/n/nwp518-a +/usr/share/ncurses4/terminfo/n/nwp518-o +/usr/share/ncurses4/terminfo/o +/usr/share/ncurses4/terminfo/o/o31 +/usr/share/ncurses4/terminfo/o/o4112-nd +/usr/share/ncurses4/terminfo/o/o85h +/usr/share/ncurses4/terminfo/o/oabm85h +/usr/share/ncurses4/terminfo/o/oblit +/usr/share/ncurses4/terminfo/o/oc100 +/usr/share/ncurses4/terminfo/o/oconcept +/usr/share/ncurses4/terminfo/o/ojerq +/usr/share/ncurses4/terminfo/o/oldibmpc3 +/usr/share/ncurses4/terminfo/o/oldpc3 +/usr/share/ncurses4/terminfo/o/oldsun +/usr/share/ncurses4/terminfo/o/omron +/usr/share/ncurses4/terminfo/o/opus3n1+ +/usr/share/ncurses4/terminfo/o/origibmpc3 +/usr/share/ncurses4/terminfo/o/origpc3 +/usr/share/ncurses4/terminfo/o/os9LII +/usr/share/ncurses4/terminfo/o/osborne +/usr/share/ncurses4/terminfo/o/osborne-w +/usr/share/ncurses4/terminfo/o/osborne1 +/usr/share/ncurses4/terminfo/o/osborne1-w +/usr/share/ncurses4/terminfo/o/osexec +/usr/share/ncurses4/terminfo/o/otek4112 +/usr/share/ncurses4/terminfo/o/otek4113 +/usr/share/ncurses4/terminfo/o/otek4114 +/usr/share/ncurses4/terminfo/o/otek4115 +/usr/share/ncurses4/terminfo/o/owl +/usr/share/ncurses4/terminfo/p +/usr/share/ncurses4/terminfo/p/p12 +/usr/share/ncurses4/terminfo/p/p12-m +/usr/share/ncurses4/terminfo/p/p12-m-w +/usr/share/ncurses4/terminfo/p/p12-w +/usr/share/ncurses4/terminfo/p/p14 +/usr/share/ncurses4/terminfo/p/p14-m +/usr/share/ncurses4/terminfo/p/p14-m-w +/usr/share/ncurses4/terminfo/p/p14-w +/usr/share/ncurses4/terminfo/p/p19 +/usr/share/ncurses4/terminfo/p/p4 +/usr/share/ncurses4/terminfo/p/p5 +/usr/share/ncurses4/terminfo/p/p7 +/usr/share/ncurses4/terminfo/p/p8 +/usr/share/ncurses4/terminfo/p/p8-w +/usr/share/ncurses4/terminfo/p/p8gl +/usr/share/ncurses4/terminfo/p/p9 +/usr/share/ncurses4/terminfo/p/p9-8 +/usr/share/ncurses4/terminfo/p/p9-8-w +/usr/share/ncurses4/terminfo/p/p9-w +/usr/share/ncurses4/terminfo/p/pc-coherent +/usr/share/ncurses4/terminfo/p/pc-minix +/usr/share/ncurses4/terminfo/p/pc-venix +/usr/share/ncurses4/terminfo/p/pc3 +/usr/share/ncurses4/terminfo/p/pc3-bold +/usr/share/ncurses4/terminfo/p/pc3r +/usr/share/ncurses4/terminfo/p/pc3r-m +/usr/share/ncurses4/terminfo/p/pc6300plus +/usr/share/ncurses4/terminfo/p/pc7300 +/usr/share/ncurses4/terminfo/p/pcansi +/usr/share/ncurses4/terminfo/p/pcansi-25 +/usr/share/ncurses4/terminfo/p/pcansi-25-m +/usr/share/ncurses4/terminfo/p/pcansi-33 +/usr/share/ncurses4/terminfo/p/pcansi-33-m +/usr/share/ncurses4/terminfo/p/pcansi-43 +/usr/share/ncurses4/terminfo/p/pcansi-43-m +/usr/share/ncurses4/terminfo/p/pcansi-m +/usr/share/ncurses4/terminfo/p/pcansi-mono +/usr/share/ncurses4/terminfo/p/pcansi25 +/usr/share/ncurses4/terminfo/p/pcansi25m +/usr/share/ncurses4/terminfo/p/pcansi33 +/usr/share/ncurses4/terminfo/p/pcansi33m +/usr/share/ncurses4/terminfo/p/pcansi43 +/usr/share/ncurses4/terminfo/p/pccons +/usr/share/ncurses4/terminfo/p/pcconsole +/usr/share/ncurses4/terminfo/p/pcix +/usr/share/ncurses4/terminfo/p/pckermit +/usr/share/ncurses4/terminfo/p/pckermit12 +/usr/share/ncurses4/terminfo/p/pckermit120 +/usr/share/ncurses4/terminfo/p/pcplot +/usr/share/ncurses4/terminfo/p/pcvt25 +/usr/share/ncurses4/terminfo/p/pcvt25w +/usr/share/ncurses4/terminfo/p/pcvt28 +/usr/share/ncurses4/terminfo/p/pcvt28w +/usr/share/ncurses4/terminfo/p/pcvt35 +/usr/share/ncurses4/terminfo/p/pcvt35w +/usr/share/ncurses4/terminfo/p/pcvt40 +/usr/share/ncurses4/terminfo/p/pcvt40w +/usr/share/ncurses4/terminfo/p/pcvt43 +/usr/share/ncurses4/terminfo/p/pcvt43w +/usr/share/ncurses4/terminfo/p/pcvt50 +/usr/share/ncurses4/terminfo/p/pcvt50w +/usr/share/ncurses4/terminfo/p/pcvtXX +/usr/share/ncurses4/terminfo/p/pcz19 +/usr/share/ncurses4/terminfo/p/pe1100 +/usr/share/ncurses4/terminfo/p/pe1200 +/usr/share/ncurses4/terminfo/p/pe1251 +/usr/share/ncurses4/terminfo/p/pe550 +/usr/share/ncurses4/terminfo/p/pe6100 +/usr/share/ncurses4/terminfo/p/pe6300 +/usr/share/ncurses4/terminfo/p/pe6312 +/usr/share/ncurses4/terminfo/p/pe7000c +/usr/share/ncurses4/terminfo/p/pe7000m +/usr/share/ncurses4/terminfo/p/pilot +/usr/share/ncurses4/terminfo/p/printer +/usr/share/ncurses4/terminfo/p/prism12 +/usr/share/ncurses4/terminfo/p/prism12-m +/usr/share/ncurses4/terminfo/p/prism12-m-w +/usr/share/ncurses4/terminfo/p/prism12-w +/usr/share/ncurses4/terminfo/p/prism14 +/usr/share/ncurses4/terminfo/p/prism14-m +/usr/share/ncurses4/terminfo/p/prism14-m-w +/usr/share/ncurses4/terminfo/p/prism14-w +/usr/share/ncurses4/terminfo/p/prism2 +/usr/share/ncurses4/terminfo/p/prism4 +/usr/share/ncurses4/terminfo/p/prism5 +/usr/share/ncurses4/terminfo/p/prism7 +/usr/share/ncurses4/terminfo/p/prism8 +/usr/share/ncurses4/terminfo/p/prism8-w +/usr/share/ncurses4/terminfo/p/prism8gl +/usr/share/ncurses4/terminfo/p/prism9 +/usr/share/ncurses4/terminfo/p/prism9-8 +/usr/share/ncurses4/terminfo/p/prism9-8-w +/usr/share/ncurses4/terminfo/p/prism9-w +/usr/share/ncurses4/terminfo/p/pro350 +/usr/share/ncurses4/terminfo/p/ps300 +/usr/share/ncurses4/terminfo/p/psterm +/usr/share/ncurses4/terminfo/p/psterm-80x24 +/usr/share/ncurses4/terminfo/p/psterm-90x28 +/usr/share/ncurses4/terminfo/p/psterm-96x48 +/usr/share/ncurses4/terminfo/p/psterm-basic +/usr/share/ncurses4/terminfo/p/psterm-fast +/usr/share/ncurses4/terminfo/p/psx_ansi +/usr/share/ncurses4/terminfo/p/pt100 +/usr/share/ncurses4/terminfo/p/pt100w +/usr/share/ncurses4/terminfo/p/pt200 +/usr/share/ncurses4/terminfo/p/pt200w +/usr/share/ncurses4/terminfo/p/pt210 +/usr/share/ncurses4/terminfo/p/pt250 +/usr/share/ncurses4/terminfo/p/pt250w +/usr/share/ncurses4/terminfo/p/pt505 +/usr/share/ncurses4/terminfo/p/pt505-22 +/usr/share/ncurses4/terminfo/p/pt505-24 +/usr/share/ncurses4/terminfo/p/pty +/usr/share/ncurses4/terminfo/q +/usr/share/ncurses4/terminfo/q/qdcons +/usr/share/ncurses4/terminfo/q/qdss +/usr/share/ncurses4/terminfo/q/qnx +/usr/share/ncurses4/terminfo/q/qnx4 +/usr/share/ncurses4/terminfo/q/qume +/usr/share/ncurses4/terminfo/q/qume5 +/usr/share/ncurses4/terminfo/q/qvt101 +/usr/share/ncurses4/terminfo/q/qvt101+ +/usr/share/ncurses4/terminfo/q/qvt101p +/usr/share/ncurses4/terminfo/q/qvt102 +/usr/share/ncurses4/terminfo/q/qvt103 +/usr/share/ncurses4/terminfo/q/qvt103-w +/usr/share/ncurses4/terminfo/q/qvt108 +/usr/share/ncurses4/terminfo/q/qvt119 +/usr/share/ncurses4/terminfo/q/qvt119+ +/usr/share/ncurses4/terminfo/q/qvt119+-25 +/usr/share/ncurses4/terminfo/q/qvt119+-25-w +/usr/share/ncurses4/terminfo/q/qvt119+-w +/usr/share/ncurses4/terminfo/q/qvt119-25-w +/usr/share/ncurses4/terminfo/q/qvt119-w +/usr/share/ncurses4/terminfo/q/qvt119p +/usr/share/ncurses4/terminfo/q/qvt119p-25 +/usr/share/ncurses4/terminfo/q/qvt119p-25-w +/usr/share/ncurses4/terminfo/q/qvt119p-w +/usr/share/ncurses4/terminfo/q/qvt203 +/usr/share/ncurses4/terminfo/q/qvt203+ +/usr/share/ncurses4/terminfo/q/qvt203-25 +/usr/share/ncurses4/terminfo/q/qvt203-25-w +/usr/share/ncurses4/terminfo/q/qvt203-w +/usr/share/ncurses4/terminfo/q/qvt203-w-am +/usr/share/ncurses4/terminfo/r +/usr/share/ncurses4/terminfo/r/rbcomm +/usr/share/ncurses4/terminfo/r/rbcomm-nam +/usr/share/ncurses4/terminfo/r/rbcomm-w +/usr/share/ncurses4/terminfo/r/rca +/usr/share/ncurses4/terminfo/r/rebus3180 +/usr/share/ncurses4/terminfo/r/regent +/usr/share/ncurses4/terminfo/r/regent100 +/usr/share/ncurses4/terminfo/r/regent20 +/usr/share/ncurses4/terminfo/r/regent200 +/usr/share/ncurses4/terminfo/r/regent25 +/usr/share/ncurses4/terminfo/r/regent40 +/usr/share/ncurses4/terminfo/r/regent40+ +/usr/share/ncurses4/terminfo/r/regent60 +/usr/share/ncurses4/terminfo/r/rt6221 +/usr/share/ncurses4/terminfo/r/rt6221-w +/usr/share/ncurses4/terminfo/r/rtpc +/usr/share/ncurses4/terminfo/r/rxvt +/usr/share/ncurses4/terminfo/r/rxvt-basic +/usr/share/ncurses4/terminfo/s +/usr/share/ncurses4/terminfo/s/s +/usr/share/ncurses4/terminfo/s/s4 +/usr/share/ncurses4/terminfo/s/sb1 +/usr/share/ncurses4/terminfo/s/sb2 +/usr/share/ncurses4/terminfo/s/sb3 +/usr/share/ncurses4/terminfo/s/sbi +/usr/share/ncurses4/terminfo/s/sbobcat +/usr/share/ncurses4/terminfo/s/sc410 +/usr/share/ncurses4/terminfo/s/sc415 +/usr/share/ncurses4/terminfo/s/scanset +/usr/share/ncurses4/terminfo/s/scoansi +/usr/share/ncurses4/terminfo/s/screen +/usr/share/ncurses4/terminfo/s/screen-w +/usr/share/ncurses4/terminfo/s/screen2 +/usr/share/ncurses4/terminfo/s/screen3 +/usr/share/ncurses4/terminfo/s/screwpoint +/usr/share/ncurses4/terminfo/s/scrhp +/usr/share/ncurses4/terminfo/s/simterm +/usr/share/ncurses4/terminfo/s/soroc +/usr/share/ncurses4/terminfo/s/soroc120 +/usr/share/ncurses4/terminfo/s/soroc140 +/usr/share/ncurses4/terminfo/s/spinwriter +/usr/share/ncurses4/terminfo/s/st52 +/usr/share/ncurses4/terminfo/s/sun +/usr/share/ncurses4/terminfo/s/sun-1 +/usr/share/ncurses4/terminfo/s/sun-12 +/usr/share/ncurses4/terminfo/s/sun-17 +/usr/share/ncurses4/terminfo/s/sun-24 +/usr/share/ncurses4/terminfo/s/sun-34 +/usr/share/ncurses4/terminfo/s/sun-48 +/usr/share/ncurses4/terminfo/s/sun-c +/usr/share/ncurses4/terminfo/s/sun-cmd +/usr/share/ncurses4/terminfo/s/sun-e +/usr/share/ncurses4/terminfo/s/sun-e-s +/usr/share/ncurses4/terminfo/s/sun-il +/usr/share/ncurses4/terminfo/s/sun-nic +/usr/share/ncurses4/terminfo/s/sun-s +/usr/share/ncurses4/terminfo/s/sun-s-e +/usr/share/ncurses4/terminfo/s/sun-ss5 +/usr/share/ncurses4/terminfo/s/sun1 +/usr/share/ncurses4/terminfo/s/sun2 +/usr/share/ncurses4/terminfo/s/sune +/usr/share/ncurses4/terminfo/s/superbee +/usr/share/ncurses4/terminfo/s/superbee-xsb +/usr/share/ncurses4/terminfo/s/superbeeic +/usr/share/ncurses4/terminfo/s/superbrain +/usr/share/ncurses4/terminfo/s/sv80 +/usr/share/ncurses4/terminfo/s/swtp +/usr/share/ncurses4/terminfo/s/synertek +/usr/share/ncurses4/terminfo/s/synertek380 +/usr/share/ncurses4/terminfo/s/system1 +/usr/share/ncurses4/terminfo/t +/usr/share/ncurses4/terminfo/t/t10 +/usr/share/ncurses4/terminfo/t/t1061 +/usr/share/ncurses4/terminfo/t/t1061f +/usr/share/ncurses4/terminfo/t/t16 +/usr/share/ncurses4/terminfo/t/t3700 +/usr/share/ncurses4/terminfo/t/t3800 +/usr/share/ncurses4/terminfo/t/t653x +/usr/share/ncurses4/terminfo/t/tab +/usr/share/ncurses4/terminfo/t/tab132 +/usr/share/ncurses4/terminfo/t/tab132-15 +/usr/share/ncurses4/terminfo/t/tab132-rv +/usr/share/ncurses4/terminfo/t/tab132-w +/usr/share/ncurses4/terminfo/t/tab132-w-rv +/usr/share/ncurses4/terminfo/t/tandem6510 +/usr/share/ncurses4/terminfo/t/tandem653 +/usr/share/ncurses4/terminfo/t/tek +/usr/share/ncurses4/terminfo/t/tek4012 +/usr/share/ncurses4/terminfo/t/tek4013 +/usr/share/ncurses4/terminfo/t/tek4014 +/usr/share/ncurses4/terminfo/t/tek4014-sm +/usr/share/ncurses4/terminfo/t/tek4015 +/usr/share/ncurses4/terminfo/t/tek4015-sm +/usr/share/ncurses4/terminfo/t/tek4023 +/usr/share/ncurses4/terminfo/t/tek4024 +/usr/share/ncurses4/terminfo/t/tek4025 +/usr/share/ncurses4/terminfo/t/tek4025-17 +/usr/share/ncurses4/terminfo/t/tek4025-17-ws +/usr/share/ncurses4/terminfo/t/tek4025-cr +/usr/share/ncurses4/terminfo/t/tek4025-ex +/usr/share/ncurses4/terminfo/t/tek4025a +/usr/share/ncurses4/terminfo/t/tek4025ex +/usr/share/ncurses4/terminfo/t/tek4027 +/usr/share/ncurses4/terminfo/t/tek4027-ex +/usr/share/ncurses4/terminfo/t/tek4105 +/usr/share/ncurses4/terminfo/t/tek4105-30 +/usr/share/ncurses4/terminfo/t/tek4105a +/usr/share/ncurses4/terminfo/t/tek4106brl +/usr/share/ncurses4/terminfo/t/tek4107 +/usr/share/ncurses4/terminfo/t/tek4107brl +/usr/share/ncurses4/terminfo/t/tek4109 +/usr/share/ncurses4/terminfo/t/tek4109brl +/usr/share/ncurses4/terminfo/t/tek4112 +/usr/share/ncurses4/terminfo/t/tek4112-5 +/usr/share/ncurses4/terminfo/t/tek4112-nd +/usr/share/ncurses4/terminfo/t/tek4113 +/usr/share/ncurses4/terminfo/t/tek4113-34 +/usr/share/ncurses4/terminfo/t/tek4113-nd +/usr/share/ncurses4/terminfo/t/tek4114 +/usr/share/ncurses4/terminfo/t/tek4115 +/usr/share/ncurses4/terminfo/t/tek4125 +/usr/share/ncurses4/terminfo/t/tek4205 +/usr/share/ncurses4/terminfo/t/tek4207 +/usr/share/ncurses4/terminfo/t/tek4207-s +/usr/share/ncurses4/terminfo/t/tek4404 +/usr/share/ncurses4/terminfo/t/teleray +/usr/share/ncurses4/terminfo/t/teletec +/usr/share/ncurses4/terminfo/t/terminet +/usr/share/ncurses4/terminfo/t/terminet1200 +/usr/share/ncurses4/terminfo/t/terminet300 +/usr/share/ncurses4/terminfo/t/tgtelnet +/usr/share/ncurses4/terminfo/t/ti700 +/usr/share/ncurses4/terminfo/t/ti733 +/usr/share/ncurses4/terminfo/t/ti735 +/usr/share/ncurses4/terminfo/t/ti745 +/usr/share/ncurses4/terminfo/t/ti800 +/usr/share/ncurses4/terminfo/t/ti916 +/usr/share/ncurses4/terminfo/t/ti916-132 +/usr/share/ncurses4/terminfo/t/ti916-220-7 +/usr/share/ncurses4/terminfo/t/ti916-220-8 +/usr/share/ncurses4/terminfo/t/ti916-8 +/usr/share/ncurses4/terminfo/t/ti916-8-132 +/usr/share/ncurses4/terminfo/t/ti924 +/usr/share/ncurses4/terminfo/t/ti924-8 +/usr/share/ncurses4/terminfo/t/ti924-8w +/usr/share/ncurses4/terminfo/t/ti924w +/usr/share/ncurses4/terminfo/t/ti926 +/usr/share/ncurses4/terminfo/t/ti926-8 +/usr/share/ncurses4/terminfo/t/ti928 +/usr/share/ncurses4/terminfo/t/ti928-8 +/usr/share/ncurses4/terminfo/t/ti931 +/usr/share/ncurses4/terminfo/t/ti_ansi +/usr/share/ncurses4/terminfo/t/tn1200 +/usr/share/ncurses4/terminfo/t/tn300 +/usr/share/ncurses4/terminfo/t/trs16 +/usr/share/ncurses4/terminfo/t/trs2 +/usr/share/ncurses4/terminfo/t/trs80II +/usr/share/ncurses4/terminfo/t/trsII +/usr/share/ncurses4/terminfo/t/ts-1 +/usr/share/ncurses4/terminfo/t/ts-1p +/usr/share/ncurses4/terminfo/t/ts1 +/usr/share/ncurses4/terminfo/t/ts100 +/usr/share/ncurses4/terminfo/t/ts100-ctxt +/usr/share/ncurses4/terminfo/t/ts100-sp +/usr/share/ncurses4/terminfo/t/ts1p +/usr/share/ncurses4/terminfo/t/tt505-22 +/usr/share/ncurses4/terminfo/t/tty33 +/usr/share/ncurses4/terminfo/t/tty35 +/usr/share/ncurses4/terminfo/t/tty37 +/usr/share/ncurses4/terminfo/t/tty40 +/usr/share/ncurses4/terminfo/t/tty43 +/usr/share/ncurses4/terminfo/t/tty4420 +/usr/share/ncurses4/terminfo/t/tty4424 +/usr/share/ncurses4/terminfo/t/tty4424-1 +/usr/share/ncurses4/terminfo/t/tty4424m +/usr/share/ncurses4/terminfo/t/tty4426 +/usr/share/ncurses4/terminfo/t/tty5410 +/usr/share/ncurses4/terminfo/t/tty5410-w +/usr/share/ncurses4/terminfo/t/tty5410v1 +/usr/share/ncurses4/terminfo/t/tty5410v1-w +/usr/share/ncurses4/terminfo/t/tty5420 +/usr/share/ncurses4/terminfo/t/tty5420+nl +/usr/share/ncurses4/terminfo/t/tty5420-nl +/usr/share/ncurses4/terminfo/t/tty5420-rv +/usr/share/ncurses4/terminfo/t/tty5420-rv-nl +/usr/share/ncurses4/terminfo/t/tty5420-w +/usr/share/ncurses4/terminfo/t/tty5420-w-nl +/usr/share/ncurses4/terminfo/t/tty5420-w-rv +/usr/share/ncurses4/terminfo/t/tty5420-w-rv-n +/usr/share/ncurses4/terminfo/t/tty5425 +/usr/share/ncurses4/terminfo/t/tty5425-nl +/usr/share/ncurses4/terminfo/t/tty5425-w +/usr/share/ncurses4/terminfo/t/tty5620 +/usr/share/ncurses4/terminfo/t/tty5620-1 +/usr/share/ncurses4/terminfo/t/tty5620-24 +/usr/share/ncurses4/terminfo/t/tty5620-34 +/usr/share/ncurses4/terminfo/t/tty5620-s +/usr/share/ncurses4/terminfo/t/ttydmd +/usr/share/ncurses4/terminfo/t/tvi-2p +/usr/share/ncurses4/terminfo/t/tvi803 +/usr/share/ncurses4/terminfo/t/tvi9065 +/usr/share/ncurses4/terminfo/t/tvi910 +/usr/share/ncurses4/terminfo/t/tvi910+ +/usr/share/ncurses4/terminfo/t/tvi912 +/usr/share/ncurses4/terminfo/t/tvi912-2p +/usr/share/ncurses4/terminfo/t/tvi912b +/usr/share/ncurses4/terminfo/t/tvi912c +/usr/share/ncurses4/terminfo/t/tvi912cc +/usr/share/ncurses4/terminfo/t/tvi914 +/usr/share/ncurses4/terminfo/t/tvi920 +/usr/share/ncurses4/terminfo/t/tvi920-2p +/usr/share/ncurses4/terminfo/t/tvi920b +/usr/share/ncurses4/terminfo/t/tvi920c +/usr/share/ncurses4/terminfo/t/tvi921 +/usr/share/ncurses4/terminfo/t/tvi924 +/usr/share/ncurses4/terminfo/t/tvi925 +/usr/share/ncurses4/terminfo/t/tvi925-hi +/usr/share/ncurses4/terminfo/t/tvi92B +/usr/share/ncurses4/terminfo/t/tvi92D +/usr/share/ncurses4/terminfo/t/tvi950 +/usr/share/ncurses4/terminfo/t/tvi950-2p +/usr/share/ncurses4/terminfo/t/tvi950-4p +/usr/share/ncurses4/terminfo/t/tvi950-rv +/usr/share/ncurses4/terminfo/t/tvi950-rv-2p +/usr/share/ncurses4/terminfo/t/tvi950-rv-4p +/usr/share/ncurses4/terminfo/t/tvi955 +/usr/share/ncurses4/terminfo/t/tvi955-hb +/usr/share/ncurses4/terminfo/t/tvi955-w +/usr/share/ncurses4/terminfo/t/tvi970 +/usr/share/ncurses4/terminfo/t/tvi970-2p +/usr/share/ncurses4/terminfo/t/tvi970-vb +/usr/share/ncurses4/terminfo/t/tvipt +/usr/share/ncurses4/terminfo/u +/usr/share/ncurses4/terminfo/u/ultima2 +/usr/share/ncurses4/terminfo/u/ultimaII +/usr/share/ncurses4/terminfo/u/uniterm +/usr/share/ncurses4/terminfo/u/uniterm49 +/usr/share/ncurses4/terminfo/u/unixpc +/usr/share/ncurses4/terminfo/u/unknown +/usr/share/ncurses4/terminfo/u/uts30 +/usr/share/ncurses4/terminfo/v +/usr/share/ncurses4/terminfo/v/v200-nam +/usr/share/ncurses4/terminfo/v/v320n +/usr/share/ncurses4/terminfo/v/v3220 +/usr/share/ncurses4/terminfo/v/v5410 +/usr/share/ncurses4/terminfo/v/vapple +/usr/share/ncurses4/terminfo/v/vc103 +/usr/share/ncurses4/terminfo/v/vc203 +/usr/share/ncurses4/terminfo/v/vc303 +/usr/share/ncurses4/terminfo/v/vc303a +/usr/share/ncurses4/terminfo/v/vc403a +/usr/share/ncurses4/terminfo/v/vc404 +/usr/share/ncurses4/terminfo/v/vc404-s +/usr/share/ncurses4/terminfo/v/vc414 +/usr/share/ncurses4/terminfo/v/vc414h +/usr/share/ncurses4/terminfo/v/vc415 +/usr/share/ncurses4/terminfo/v/venix +/usr/share/ncurses4/terminfo/v/versaterm +/usr/share/ncurses4/terminfo/v/vi200 +/usr/share/ncurses4/terminfo/v/vi200-f +/usr/share/ncurses4/terminfo/v/vi200-rv +/usr/share/ncurses4/terminfo/v/vi300 +/usr/share/ncurses4/terminfo/v/vi300-old +/usr/share/ncurses4/terminfo/v/vi50 +/usr/share/ncurses4/terminfo/v/vi500 +/usr/share/ncurses4/terminfo/v/vi50adm +/usr/share/ncurses4/terminfo/v/vi55 +/usr/share/ncurses4/terminfo/v/vi550 +/usr/share/ncurses4/terminfo/v/vi603 +/usr/share/ncurses4/terminfo/v/viewpoint +/usr/share/ncurses4/terminfo/v/viewpoint3a+ +/usr/share/ncurses4/terminfo/v/viewpoint60 +/usr/share/ncurses4/terminfo/v/viewpoint90 +/usr/share/ncurses4/terminfo/v/visa50 +/usr/share/ncurses4/terminfo/v/visual603 +/usr/share/ncurses4/terminfo/v/vitty +/usr/share/ncurses4/terminfo/v/vk100 +/usr/share/ncurses4/terminfo/v/vp3a+ +/usr/share/ncurses4/terminfo/v/vp60 +/usr/share/ncurses4/terminfo/v/vp90 +/usr/share/ncurses4/terminfo/v/vremote +/usr/share/ncurses4/terminfo/v/vs100 +/usr/share/ncurses4/terminfo/v/vs100-x10 +/usr/share/ncurses4/terminfo/v/vsc +/usr/share/ncurses4/terminfo/v/vt-61 +/usr/share/ncurses4/terminfo/v/vt100 +/usr/share/ncurses4/terminfo/v/vt100-am +/usr/share/ncurses4/terminfo/v/vt100-bm +/usr/share/ncurses4/terminfo/v/vt100-bm-o +/usr/share/ncurses4/terminfo/v/vt100-bot-s +/usr/share/ncurses4/terminfo/v/vt100-nam +/usr/share/ncurses4/terminfo/v/vt100-nam-w +/usr/share/ncurses4/terminfo/v/vt100-nav +/usr/share/ncurses4/terminfo/v/vt100-nav-w +/usr/share/ncurses4/terminfo/v/vt100-s +/usr/share/ncurses4/terminfo/v/vt100-s-bot +/usr/share/ncurses4/terminfo/v/vt100-s-top +/usr/share/ncurses4/terminfo/v/vt100-top-s +/usr/share/ncurses4/terminfo/v/vt100-vb +/usr/share/ncurses4/terminfo/v/vt100-w +/usr/share/ncurses4/terminfo/v/vt100-w-am +/usr/share/ncurses4/terminfo/v/vt100-w-nam +/usr/share/ncurses4/terminfo/v/vt100-w-nav +/usr/share/ncurses4/terminfo/v/vt100nam +/usr/share/ncurses4/terminfo/v/vt102 +/usr/share/ncurses4/terminfo/v/vt102-nsgr +/usr/share/ncurses4/terminfo/v/vt102-w +/usr/share/ncurses4/terminfo/v/vt125 +/usr/share/ncurses4/terminfo/v/vt131 +/usr/share/ncurses4/terminfo/v/vt132 +/usr/share/ncurses4/terminfo/v/vt200 +/usr/share/ncurses4/terminfo/v/vt200-js +/usr/share/ncurses4/terminfo/v/vt200-w +/usr/share/ncurses4/terminfo/v/vt220 +/usr/share/ncurses4/terminfo/v/vt220-8 +/usr/share/ncurses4/terminfo/v/vt220-js +/usr/share/ncurses4/terminfo/v/vt220-nam +/usr/share/ncurses4/terminfo/v/vt220-w +/usr/share/ncurses4/terminfo/v/vt220d +/usr/share/ncurses4/terminfo/v/vt300 +/usr/share/ncurses4/terminfo/v/vt300-nam +/usr/share/ncurses4/terminfo/v/vt300-w +/usr/share/ncurses4/terminfo/v/vt300-w-nam +/usr/share/ncurses4/terminfo/v/vt320 +/usr/share/ncurses4/terminfo/v/vt320-k3 +/usr/share/ncurses4/terminfo/v/vt320-k311 +/usr/share/ncurses4/terminfo/v/vt320-nam +/usr/share/ncurses4/terminfo/v/vt320-w +/usr/share/ncurses4/terminfo/v/vt320-w-nam +/usr/share/ncurses4/terminfo/v/vt320nam +/usr/share/ncurses4/terminfo/v/vt330 +/usr/share/ncurses4/terminfo/v/vt340 +/usr/share/ncurses4/terminfo/v/vt400 +/usr/share/ncurses4/terminfo/v/vt400-24 +/usr/share/ncurses4/terminfo/v/vt420 +/usr/share/ncurses4/terminfo/v/vt420f +/usr/share/ncurses4/terminfo/v/vt420pc +/usr/share/ncurses4/terminfo/v/vt420pcdos +/usr/share/ncurses4/terminfo/v/vt50 +/usr/share/ncurses4/terminfo/v/vt50h +/usr/share/ncurses4/terminfo/v/vt510 +/usr/share/ncurses4/terminfo/v/vt510pc +/usr/share/ncurses4/terminfo/v/vt510pcdos +/usr/share/ncurses4/terminfo/v/vt52 +/usr/share/ncurses4/terminfo/v/vt520 +/usr/share/ncurses4/terminfo/v/vt525 +/usr/share/ncurses4/terminfo/v/vt61 +/usr/share/ncurses4/terminfo/v/vt61.5 +/usr/share/ncurses4/terminfo/w +/usr/share/ncurses4/terminfo/w/wren +/usr/share/ncurses4/terminfo/w/wrenw +/usr/share/ncurses4/terminfo/w/wsiris +/usr/share/ncurses4/terminfo/w/wy-75ap +/usr/share/ncurses4/terminfo/w/wy100 +/usr/share/ncurses4/terminfo/w/wy100q +/usr/share/ncurses4/terminfo/w/wy120 +/usr/share/ncurses4/terminfo/w/wy120-25 +/usr/share/ncurses4/terminfo/w/wy120-25-w +/usr/share/ncurses4/terminfo/w/wy120-vb +/usr/share/ncurses4/terminfo/w/wy120-w +/usr/share/ncurses4/terminfo/w/wy120-w-vb +/usr/share/ncurses4/terminfo/w/wy120-wvb +/usr/share/ncurses4/terminfo/w/wy150 +/usr/share/ncurses4/terminfo/w/wy150-25 +/usr/share/ncurses4/terminfo/w/wy150-25-w +/usr/share/ncurses4/terminfo/w/wy150-vb +/usr/share/ncurses4/terminfo/w/wy150-w +/usr/share/ncurses4/terminfo/w/wy150-w-vb +/usr/share/ncurses4/terminfo/w/wy160 +/usr/share/ncurses4/terminfo/w/wy160-25 +/usr/share/ncurses4/terminfo/w/wy160-25-w +/usr/share/ncurses4/terminfo/w/wy160-42 +/usr/share/ncurses4/terminfo/w/wy160-42-w +/usr/share/ncurses4/terminfo/w/wy160-43 +/usr/share/ncurses4/terminfo/w/wy160-43-w +/usr/share/ncurses4/terminfo/w/wy160-tek +/usr/share/ncurses4/terminfo/w/wy160-vb +/usr/share/ncurses4/terminfo/w/wy160-w +/usr/share/ncurses4/terminfo/w/wy160-w-vb +/usr/share/ncurses4/terminfo/w/wy160-wvb +/usr/share/ncurses4/terminfo/w/wy185 +/usr/share/ncurses4/terminfo/w/wy185-24 +/usr/share/ncurses4/terminfo/w/wy185-vb +/usr/share/ncurses4/terminfo/w/wy185-w +/usr/share/ncurses4/terminfo/w/wy185-wvb +/usr/share/ncurses4/terminfo/w/wy30 +/usr/share/ncurses4/terminfo/w/wy30-mc +/usr/share/ncurses4/terminfo/w/wy30-vb +/usr/share/ncurses4/terminfo/w/wy325 +/usr/share/ncurses4/terminfo/w/wy325-25 +/usr/share/ncurses4/terminfo/w/wy325-25w +/usr/share/ncurses4/terminfo/w/wy325-42 +/usr/share/ncurses4/terminfo/w/wy325-42w +/usr/share/ncurses4/terminfo/w/wy325-42w-vb +/usr/share/ncurses4/terminfo/w/wy325-42wvb +/usr/share/ncurses4/terminfo/w/wy325-43 +/usr/share/ncurses4/terminfo/w/wy325-43w +/usr/share/ncurses4/terminfo/w/wy325-43w-vb +/usr/share/ncurses4/terminfo/w/wy325-43wvb +/usr/share/ncurses4/terminfo/w/wy325-80 +/usr/share/ncurses4/terminfo/w/wy325-vb +/usr/share/ncurses4/terminfo/w/wy325-w +/usr/share/ncurses4/terminfo/w/wy325-w-vb +/usr/share/ncurses4/terminfo/w/wy325-wvb +/usr/share/ncurses4/terminfo/w/wy325w-24 +/usr/share/ncurses4/terminfo/w/wy350 +/usr/share/ncurses4/terminfo/w/wy350-vb +/usr/share/ncurses4/terminfo/w/wy350-w +/usr/share/ncurses4/terminfo/w/wy350-wvb +/usr/share/ncurses4/terminfo/w/wy370 +/usr/share/ncurses4/terminfo/w/wy370-101k +/usr/share/ncurses4/terminfo/w/wy370-105k +/usr/share/ncurses4/terminfo/w/wy370-EPC +/usr/share/ncurses4/terminfo/w/wy370-nk +/usr/share/ncurses4/terminfo/w/wy370-rv +/usr/share/ncurses4/terminfo/w/wy370-tek +/usr/share/ncurses4/terminfo/w/wy370-vb +/usr/share/ncurses4/terminfo/w/wy370-w +/usr/share/ncurses4/terminfo/w/wy370-wvb +/usr/share/ncurses4/terminfo/w/wy50 +/usr/share/ncurses4/terminfo/w/wy50-mc +/usr/share/ncurses4/terminfo/w/wy50-vb +/usr/share/ncurses4/terminfo/w/wy50-w +/usr/share/ncurses4/terminfo/w/wy50-wvb +/usr/share/ncurses4/terminfo/w/wy520 +/usr/share/ncurses4/terminfo/w/wy520-24 +/usr/share/ncurses4/terminfo/w/wy520-36 +/usr/share/ncurses4/terminfo/w/wy520-36pc +/usr/share/ncurses4/terminfo/w/wy520-36w +/usr/share/ncurses4/terminfo/w/wy520-36wpc +/usr/share/ncurses4/terminfo/w/wy520-48 +/usr/share/ncurses4/terminfo/w/wy520-48pc +/usr/share/ncurses4/terminfo/w/wy520-48w +/usr/share/ncurses4/terminfo/w/wy520-48wpc +/usr/share/ncurses4/terminfo/w/wy520-epc +/usr/share/ncurses4/terminfo/w/wy520-epc-24 +/usr/share/ncurses4/terminfo/w/wy520-epc-vb +/usr/share/ncurses4/terminfo/w/wy520-epc-w +/usr/share/ncurses4/terminfo/w/wy520-epc-wvb +/usr/share/ncurses4/terminfo/w/wy520-vb +/usr/share/ncurses4/terminfo/w/wy520-w +/usr/share/ncurses4/terminfo/w/wy520-wvb +/usr/share/ncurses4/terminfo/w/wy60 +/usr/share/ncurses4/terminfo/w/wy60-25 +/usr/share/ncurses4/terminfo/w/wy60-25-w +/usr/share/ncurses4/terminfo/w/wy60-316X +/usr/share/ncurses4/terminfo/w/wy60-42 +/usr/share/ncurses4/terminfo/w/wy60-42-w +/usr/share/ncurses4/terminfo/w/wy60-43 +/usr/share/ncurses4/terminfo/w/wy60-43-w +/usr/share/ncurses4/terminfo/w/wy60-vb +/usr/share/ncurses4/terminfo/w/wy60-w +/usr/share/ncurses4/terminfo/w/wy60-w-vb +/usr/share/ncurses4/terminfo/w/wy60-wvb +/usr/share/ncurses4/terminfo/w/wy75 +/usr/share/ncurses4/terminfo/w/wy75-mc +/usr/share/ncurses4/terminfo/w/wy75-vb +/usr/share/ncurses4/terminfo/w/wy75-w +/usr/share/ncurses4/terminfo/w/wy75-wvb +/usr/share/ncurses4/terminfo/w/wy75ap +/usr/share/ncurses4/terminfo/w/wy85 +/usr/share/ncurses4/terminfo/w/wy85-vb +/usr/share/ncurses4/terminfo/w/wy85-w +/usr/share/ncurses4/terminfo/w/wy85-wvb +/usr/share/ncurses4/terminfo/w/wy99gt +/usr/share/ncurses4/terminfo/w/wy99gt-25 +/usr/share/ncurses4/terminfo/w/wy99gt-25-w +/usr/share/ncurses4/terminfo/w/wy99gt-tek +/usr/share/ncurses4/terminfo/w/wy99gt-vb +/usr/share/ncurses4/terminfo/w/wy99gt-w +/usr/share/ncurses4/terminfo/w/wy99gt-w-vb +/usr/share/ncurses4/terminfo/w/wy99gt-wvb +/usr/share/ncurses4/terminfo/w/wyse-325 +/usr/share/ncurses4/terminfo/w/wyse-75ap +/usr/share/ncurses4/terminfo/w/wyse-vp +/usr/share/ncurses4/terminfo/w/wyse120 +/usr/share/ncurses4/terminfo/w/wyse120-25 +/usr/share/ncurses4/terminfo/w/wyse120-25-w +/usr/share/ncurses4/terminfo/w/wyse120-vb +/usr/share/ncurses4/terminfo/w/wyse120-w +/usr/share/ncurses4/terminfo/w/wyse120-wvb +/usr/share/ncurses4/terminfo/w/wyse150 +/usr/share/ncurses4/terminfo/w/wyse150-25 +/usr/share/ncurses4/terminfo/w/wyse150-25-w +/usr/share/ncurses4/terminfo/w/wyse150-vb +/usr/share/ncurses4/terminfo/w/wyse150-w +/usr/share/ncurses4/terminfo/w/wyse150-w-vb +/usr/share/ncurses4/terminfo/w/wyse160 +/usr/share/ncurses4/terminfo/w/wyse160-25 +/usr/share/ncurses4/terminfo/w/wyse160-25-w +/usr/share/ncurses4/terminfo/w/wyse160-42 +/usr/share/ncurses4/terminfo/w/wyse160-42-w +/usr/share/ncurses4/terminfo/w/wyse160-43 +/usr/share/ncurses4/terminfo/w/wyse160-43-w +/usr/share/ncurses4/terminfo/w/wyse160-vb +/usr/share/ncurses4/terminfo/w/wyse160-w +/usr/share/ncurses4/terminfo/w/wyse160-wvb +/usr/share/ncurses4/terminfo/w/wyse185 +/usr/share/ncurses4/terminfo/w/wyse185-24 +/usr/share/ncurses4/terminfo/w/wyse185-vb +/usr/share/ncurses4/terminfo/w/wyse185-w +/usr/share/ncurses4/terminfo/w/wyse185-wvb +/usr/share/ncurses4/terminfo/w/wyse30 +/usr/share/ncurses4/terminfo/w/wyse30-mc +/usr/share/ncurses4/terminfo/w/wyse30-vb +/usr/share/ncurses4/terminfo/w/wyse325 +/usr/share/ncurses4/terminfo/w/wyse325-25 +/usr/share/ncurses4/terminfo/w/wyse325-25w +/usr/share/ncurses4/terminfo/w/wyse325-42 +/usr/share/ncurses4/terminfo/w/wyse325-42w +/usr/share/ncurses4/terminfo/w/wyse325-43 +/usr/share/ncurses4/terminfo/w/wyse325-43w +/usr/share/ncurses4/terminfo/w/wyse325-vb +/usr/share/ncurses4/terminfo/w/wyse325-w +/usr/share/ncurses4/terminfo/w/wyse325-wvb +/usr/share/ncurses4/terminfo/w/wyse350 +/usr/share/ncurses4/terminfo/w/wyse350-vb +/usr/share/ncurses4/terminfo/w/wyse350-w +/usr/share/ncurses4/terminfo/w/wyse350-wvb +/usr/share/ncurses4/terminfo/w/wyse370 +/usr/share/ncurses4/terminfo/w/wyse50 +/usr/share/ncurses4/terminfo/w/wyse50-mc +/usr/share/ncurses4/terminfo/w/wyse50-vb +/usr/share/ncurses4/terminfo/w/wyse50-w +/usr/share/ncurses4/terminfo/w/wyse50-wvb +/usr/share/ncurses4/terminfo/w/wyse520 +/usr/share/ncurses4/terminfo/w/wyse520-24 +/usr/share/ncurses4/terminfo/w/wyse520-36 +/usr/share/ncurses4/terminfo/w/wyse520-36pc +/usr/share/ncurses4/terminfo/w/wyse520-36w +/usr/share/ncurses4/terminfo/w/wyse520-36wpc +/usr/share/ncurses4/terminfo/w/wyse520-48 +/usr/share/ncurses4/terminfo/w/wyse520-48pc +/usr/share/ncurses4/terminfo/w/wyse520-48w +/usr/share/ncurses4/terminfo/w/wyse520-48wpc +/usr/share/ncurses4/terminfo/w/wyse520-epc +/usr/share/ncurses4/terminfo/w/wyse520-epc-w +/usr/share/ncurses4/terminfo/w/wyse520-p-wvb +/usr/share/ncurses4/terminfo/w/wyse520-pc-24 +/usr/share/ncurses4/terminfo/w/wyse520-pc-vb +/usr/share/ncurses4/terminfo/w/wyse520-vb +/usr/share/ncurses4/terminfo/w/wyse520-w +/usr/share/ncurses4/terminfo/w/wyse520-wvb +/usr/share/ncurses4/terminfo/w/wyse60 +/usr/share/ncurses4/terminfo/w/wyse60-25 +/usr/share/ncurses4/terminfo/w/wyse60-25-w +/usr/share/ncurses4/terminfo/w/wyse60-316X +/usr/share/ncurses4/terminfo/w/wyse60-42 +/usr/share/ncurses4/terminfo/w/wyse60-42-w +/usr/share/ncurses4/terminfo/w/wyse60-43 +/usr/share/ncurses4/terminfo/w/wyse60-43-w +/usr/share/ncurses4/terminfo/w/wyse60-vb +/usr/share/ncurses4/terminfo/w/wyse60-w +/usr/share/ncurses4/terminfo/w/wyse60-wvb +/usr/share/ncurses4/terminfo/w/wyse75 +/usr/share/ncurses4/terminfo/w/wyse75-mc +/usr/share/ncurses4/terminfo/w/wyse75-vb +/usr/share/ncurses4/terminfo/w/wyse75-w +/usr/share/ncurses4/terminfo/w/wyse75-wvb +/usr/share/ncurses4/terminfo/w/wyse75ap +/usr/share/ncurses4/terminfo/w/wyse85 +/usr/share/ncurses4/terminfo/w/wyse85-vb +/usr/share/ncurses4/terminfo/w/wyse85-w +/usr/share/ncurses4/terminfo/w/wyse85-wvb +/usr/share/ncurses4/terminfo/w/wyse99gt +/usr/share/ncurses4/terminfo/w/wyse99gt-25 +/usr/share/ncurses4/terminfo/w/wyse99gt-25-w +/usr/share/ncurses4/terminfo/w/wyse99gt-vb +/usr/share/ncurses4/terminfo/w/wyse99gt-w +/usr/share/ncurses4/terminfo/w/wyse99gt-wvb +/usr/share/ncurses4/terminfo/x +/usr/share/ncurses4/terminfo/x/x10term +/usr/share/ncurses4/terminfo/x/x1700 +/usr/share/ncurses4/terminfo/x/x1700-lm +/usr/share/ncurses4/terminfo/x/x1720 +/usr/share/ncurses4/terminfo/x/x1750 +/usr/share/ncurses4/terminfo/x/x68k +/usr/share/ncurses4/terminfo/x/x68k-ite +/usr/share/ncurses4/terminfo/x/x820 +/usr/share/ncurses4/terminfo/x/xenix +/usr/share/ncurses4/terminfo/x/xerox +/usr/share/ncurses4/terminfo/x/xerox-lm +/usr/share/ncurses4/terminfo/x/xerox1720 +/usr/share/ncurses4/terminfo/x/xerox820 +/usr/share/ncurses4/terminfo/x/xl83 +/usr/share/ncurses4/terminfo/x/xtalk +/usr/share/ncurses4/terminfo/x/xterm +/usr/share/ncurses4/terminfo/x/xterm+sl +/usr/share/ncurses4/terminfo/x/xterm+sl-twm +/usr/share/ncurses4/terminfo/x/xterm-16color +/usr/share/ncurses4/terminfo/x/xterm-8bit +/usr/share/ncurses4/terminfo/x/xterm-bold +/usr/share/ncurses4/terminfo/x/xterm-nic +/usr/share/ncurses4/terminfo/x/xterm-old +/usr/share/ncurses4/terminfo/x/xterm-pcolor +/usr/share/ncurses4/terminfo/x/xterm-r5 +/usr/share/ncurses4/terminfo/x/xterm-r6 +/usr/share/ncurses4/terminfo/x/xterm-sun +/usr/share/ncurses4/terminfo/x/xterm-xf86-v32 +/usr/share/ncurses4/terminfo/x/xterm-xf86-v33 +/usr/share/ncurses4/terminfo/x/xterm-xf86-v40 +/usr/share/ncurses4/terminfo/x/xterm-xi +/usr/share/ncurses4/terminfo/x/xterm1 +/usr/share/ncurses4/terminfo/x/xterms +/usr/share/ncurses4/terminfo/x/xterms-sun +/usr/share/ncurses4/terminfo/x/xwsh +/usr/share/ncurses4/terminfo/z +/usr/share/ncurses4/terminfo/z/z-100 +/usr/share/ncurses4/terminfo/z/z-100bw +/usr/share/ncurses4/terminfo/z/z100 +/usr/share/ncurses4/terminfo/z/z100bw +/usr/share/ncurses4/terminfo/z/z110 +/usr/share/ncurses4/terminfo/z/z110bw +/usr/share/ncurses4/terminfo/z/z19 +/usr/share/ncurses4/terminfo/z/z29 +/usr/share/ncurses4/terminfo/z/z29a +/usr/share/ncurses4/terminfo/z/z29a-kc-bc +/usr/share/ncurses4/terminfo/z/z29a-kc-uc +/usr/share/ncurses4/terminfo/z/z29a-nkc-bc +/usr/share/ncurses4/terminfo/z/z29a-nkc-uc +/usr/share/ncurses4/terminfo/z/z29b +/usr/share/ncurses4/terminfo/z/z30 +/usr/share/ncurses4/terminfo/z/z340 +/usr/share/ncurses4/terminfo/z/z340-nam +/usr/share/ncurses4/terminfo/z/z39-a +/usr/share/ncurses4/terminfo/z/z39a +/usr/share/ncurses4/terminfo/z/z50 +/usr/share/ncurses4/terminfo/z/z8001 +/usr/share/ncurses4/terminfo/z/zen30 +/usr/share/ncurses4/terminfo/z/zen50 +/usr/share/ncurses4/terminfo/z/zen8001 +/usr/share/ncurses4/terminfo/z/zenith +/usr/share/ncurses4/terminfo/z/zenith29 +/usr/share/ncurses4/terminfo/z/zenith39-a +/usr/share/ncurses4/terminfo/z/zenith39-ansi +/usr/share/ncurses4/terminfo/z/zt-1 +/usr/share/ncurses4/terminfo/z/ztx +/usr/share/ncurses4/terminfo/z/ztx-1-a +/usr/share/ncurses4/terminfo/z/ztx11 + + + diff --git a/test/recurse/good.xml b/test/recurse/good.xml new file mode 100644 index 0000000..60aa1b6 --- /dev/null +++ b/test/recurse/good.xml @@ -0,0 +1,343 @@ + + + +]> +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; +&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;&d; diff --git a/test/recurse/goodattr.xml b/test/recurse/goodattr.xml new file mode 100644 index 0000000..94f7071 --- /dev/null +++ b/test/recurse/goodattr.xml @@ -0,0 +1,343 @@ + + + +]> + diff --git a/test/recurse/lol1.xml b/test/recurse/lol1.xml new file mode 100644 index 0000000..d92c985 --- /dev/null +++ b/test/recurse/lol1.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + +]> +&laugh13; + diff --git a/test/recurse/lol2.xml b/test/recurse/lol2.xml new file mode 100644 index 0000000..e07dc4d --- /dev/null +++ b/test/recurse/lol2.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + +]> +text + diff --git a/test/recurse/lol3.dtd b/test/recurse/lol3.dtd new file mode 100644 index 0000000..eb3bc20 --- /dev/null +++ b/test/recurse/lol3.dtd @@ -0,0 +1,20 @@ + +"> + + + + + + + + + + + + + +%laugh13; + diff --git a/test/recurse/lol3.xml b/test/recurse/lol3.xml new file mode 100644 index 0000000..acc2346 --- /dev/null +++ b/test/recurse/lol3.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/test/recurse/lol4.patch b/test/recurse/lol4.patch new file mode 100644 index 0000000..f41be28 --- /dev/null +++ b/test/recurse/lol4.patch @@ -0,0 +1,16 @@ +Index: parser.c +=================================================================== +--- parser.c (revision 3773) ++++ parser.c (working copy) +@@ -2505,6 +2505,11 @@ xmlStringLenDecodeEntities(xmlParserCtxt + c = CUR_SCHAR(str, l); + else + c = 0; ++ if ((nbchars > 500000) && ++ (ctxt->instate == XML_PARSER_ATTRIBUTE_VALUE)) { ++ xmlFatalErr(ctxt, XML_ERR_ENTITY_LOOP, NULL); ++ goto int_error; ++ } + } + buffer[nbchars++] = 0; + return(buffer); diff --git a/test/recurse/lol4.xml b/test/recurse/lol4.xml new file mode 100644 index 0000000..dd6d9eb --- /dev/null +++ b/test/recurse/lol4.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]> +text diff --git a/test/recurse/lol5.xml b/test/recurse/lol5.xml new file mode 100644 index 0000000..b2aa6cb --- /dev/null +++ b/test/recurse/lol5.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]> +&ha48; diff --git a/test/recurse/lol6.xml b/test/recurse/lol6.xml new file mode 100644 index 0000000..2e9d55e --- /dev/null +++ b/test/recurse/lol6.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + +]> +text + diff --git a/test/regexp/branch b/test/regexp/branch new file mode 100644 index 0000000..6a728e6 --- /dev/null +++ b/test/regexp/branch @@ -0,0 +1,14 @@ +=>a|b(d|e(g|h|i)|f)|c +a +c +bd +bf +beg +beh +bei +b +be +bi +f +ab +ac diff --git a/test/regexp/bug316338 b/test/regexp/bug316338 new file mode 100644 index 0000000..98c7838 --- /dev/null +++ b/test/regexp/bug316338 @@ -0,0 +1,20 @@ +=>(((C|c)(([\s]*\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?){3})+[\s]*))+ +C 433 +C 433 12 +C 433 123 +C 433 123 456 +C 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 +=>(((C|c)(([\s]+\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?){3})+[\s]*))+ +C 433 +C 433 12 +C 433 123 +C 433 123 456 +C 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 +=>(((C|c)(([\s]+\-?[0-9]+(\.[0-9]+)?[\s]*,[\s]*\-?[0-9]+(\.[0-9]+)?){3})+[\s]*))+ +C 433 +C 433 12 +C 433 123 +C 433 123 456 +C 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 +=>(((M|m)([\s]+\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?[\s]*,[\s]*\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?)[\s]*)|((L|l)([\s]+\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?[\s]*,[\s]*\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?)+[\s]*)|((H|h)([\s]+\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?)+[\s]*)|((V|v)([\s]+\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?)+[\s]*)|((C|c)(([\s]+\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?[\s]*,[\s]*\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?){3})+[\s]*)|((Q|q)(([\s]+\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?[\s]*,[\s]*\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?){2})+[\s]*)|((S|s)(([\s]+\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?[\s]*,[\s]*\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?){2})+[\s]*)|((A|a)([\s]+\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?[\s]*,[\s]*\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?[\s]*\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?[\s]+[0-1][\s]+[0-1][\s]+\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?[\s]*,[\s]*\-?[0-9]+(\.[0-9]+)?((e|E)\-?[0-9]+)?)+[\s]*)|((Z|z)[\s]*))* +M 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 724.64,433.12 718.08,433.12 711.52,433.12 diff --git a/test/regexp/bug420596 b/test/regexp/bug420596 new file mode 100644 index 0000000..b6f285d --- /dev/null +++ b/test/regexp/bug420596 @@ -0,0 +1,10 @@ +=>(\+|-)(0[0-9]|1[0-1]) ++01 +-01 ++10 +-10 +=>[+-](0[0-9]|1[0-1]) ++01 +-01 ++10 +-10 diff --git a/test/regexp/content b/test/regexp/content new file mode 100644 index 0000000..9d01c8b --- /dev/null +++ b/test/regexp/content @@ -0,0 +1,12 @@ +=>((a|b|c)def) +adef +bdef +adefg +aaef +=>((a|b|c|d|e|f)?(g|h|i)+(k|l)*) +g +gi +fil +gikl +cghhhiill +ak diff --git a/test/regexp/hard b/test/regexp/hard new file mode 100644 index 0000000..ddb4cfd --- /dev/null +++ b/test/regexp/hard @@ -0,0 +1,12 @@ +=>((a|b|\p{Nd}){1,2}|aaa|bbbb){1,2} +bab +aaca +aaabbbb +a0b +aa0aaa +b0aaa +=>(\d{1,3}\.){3}\d{1,3} +1.2.3.4 +1.22.333.44 +1.2.3 +1..2.3 diff --git a/test/regexp/ncname b/test/regexp/ncname new file mode 100644 index 0000000..1e452a8 --- /dev/null +++ b/test/regexp/ncname @@ -0,0 +1,6 @@ +=>[\i-[:]][\c-[:]]* +a +abc +abc1d +1ac +a1b:c diff --git a/test/regexp/ranges b/test/regexp/ranges new file mode 100644 index 0000000..cb7c22f --- /dev/null +++ b/test/regexp/ranges @@ -0,0 +1,15 @@ +=>a{2,3} +a +aa +aaa +aaaa +=>ba{2,3}c +bac +baac +baaac +baaaac +=>a(b|c){2,3}d +abcd +acccd +abd +accccd diff --git a/test/regexp/ranges2 b/test/regexp/ranges2 new file mode 100644 index 0000000..a8eb884 --- /dev/null +++ b/test/regexp/ranges2 @@ -0,0 +1,14 @@ +=>(a|b{0,3}){0,1} +a +aa +b +bb +bbb +bbbb +ab +ba +=>([0-9]{0,3}|([0-9]{0}|[0-9]{0,3})){0,3} +0 +00 +123 +abc diff --git a/test/regexp/xpath b/test/regexp/xpath new file mode 100644 index 0000000..62c18c4 --- /dev/null +++ b/test/regexp/xpath @@ -0,0 +1,37 @@ +=>(\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*(\|(\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*)* +a +a12/b312/b312/b312/b312/b312/b312/b312/b312/b312/b312/b312/b3 +* +a|b +.//a:b +a/b/c +a/*/b +a:*/b:*/c:* +child::a/child::b:* +child::a/child::b:*|a/*/b|.//a:b +1 +1ab +a:1 +@a +ancestor::a +# +# the previous regexp from the Schemas for Schemas was broken +# here is the fixed one: +# http://lists.w3.org/Archives/Public/www-xml-schema-comments/2002AprJun/0005.html +# +=>(\.//)?(((child::)?(([\i-[:]][\c-[:]]*:)?([\i-[:]][\c-[:]]*|\*)))|\.)(/(((child::)?(([\i-[:]][\c-[:]]*:)?([\i-[:]][\c-[:]]*|\*)))|\.))*(\|(\.//)?(((child::)?(([\i-[:]][\c-[:]]*:)?([\i-[:]][\c-[:]]*|\*)))|\.)(/(((child::)?(([\i-[:]][\c-[:]]*:)?([\i-[:]][\c-[:]]*|\*)))|\.))*)* +a +a12/b312/b312/b312/b312/b312/b312/b312/b312/b312/b312/b312/b3 +* +a|b +.//a:b +a/b/c +a/*/b +a:*/b:*/c:* +child::a/child::b:* +child::a/child::b:*|a/*/b|.//a:b +1 +1ab +a:1 +@a +ancestor::a diff --git a/test/relaxng/302836.rng b/test/relaxng/302836.rng new file mode 100644 index 0000000..b4db298 --- /dev/null +++ b/test/relaxng/302836.rng @@ -0,0 +1,35 @@ + + + + + firstValue + + + + + + + + + + + + + + + secondValue + + + + + + + + + + + + + + diff --git a/test/relaxng/302836_0.xml b/test/relaxng/302836_0.xml new file mode 100644 index 0000000..25eb2f1 --- /dev/null +++ b/test/relaxng/302836_0.xml @@ -0,0 +1,12 @@ + + + secondValue + + + diff --git a/test/relaxng/307377.rng b/test/relaxng/307377.rng new file mode 100644 index 0000000..37a87c9 --- /dev/null +++ b/test/relaxng/307377.rng @@ -0,0 +1,14 @@ + + + + + + 1 + 2 + 3 + + + + + + diff --git a/test/relaxng/307377_0.xml b/test/relaxng/307377_0.xml new file mode 100644 index 0000000..106d02a --- /dev/null +++ b/test/relaxng/307377_0.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/307377_1.xml b/test/relaxng/307377_1.xml new file mode 100644 index 0000000..73b0d1c --- /dev/null +++ b/test/relaxng/307377_1.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/307377_2.xml b/test/relaxng/307377_2.xml new file mode 100644 index 0000000..4a041aa --- /dev/null +++ b/test/relaxng/307377_2.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/492317.rng b/test/relaxng/492317.rng new file mode 100644 index 0000000..343f294 --- /dev/null +++ b/test/relaxng/492317.rng @@ -0,0 +1,16 @@ + + + + + Foo + + + + + + Bar + + + + + diff --git a/test/relaxng/492317_0.xml b/test/relaxng/492317_0.xml new file mode 100644 index 0000000..6ab9d80 --- /dev/null +++ b/test/relaxng/492317_0.xml @@ -0,0 +1,4 @@ + + + + diff --git a/test/relaxng/492317_1.xml b/test/relaxng/492317_1.xml new file mode 100644 index 0000000..d325ac2 --- /dev/null +++ b/test/relaxng/492317_1.xml @@ -0,0 +1,4 @@ + + + + diff --git a/test/relaxng/492317_2.xml b/test/relaxng/492317_2.xml new file mode 100644 index 0000000..33bbc5d --- /dev/null +++ b/test/relaxng/492317_2.xml @@ -0,0 +1,4 @@ + + + + diff --git a/test/relaxng/558452.rng b/test/relaxng/558452.rng new file mode 100644 index 0000000..80fbf7b --- /dev/null +++ b/test/relaxng/558452.rng @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/558452_0.xml b/test/relaxng/558452_0.xml new file mode 100644 index 0000000..70440e2 --- /dev/null +++ b/test/relaxng/558452_0.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/test/relaxng/558452_1.xml b/test/relaxng/558452_1.xml new file mode 100644 index 0000000..2c569f9 --- /dev/null +++ b/test/relaxng/558452_1.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/558452_2.xml b/test/relaxng/558452_2.xml new file mode 100644 index 0000000..6e24626 --- /dev/null +++ b/test/relaxng/558452_2.xml @@ -0,0 +1,4 @@ + + + + diff --git a/test/relaxng/558452_3.xml b/test/relaxng/558452_3.xml new file mode 100644 index 0000000..5ceb468 --- /dev/null +++ b/test/relaxng/558452_3.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/test/relaxng/558452_4.xml b/test/relaxng/558452_4.xml new file mode 100644 index 0000000..a1ee72b --- /dev/null +++ b/test/relaxng/558452_4.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/test/relaxng/595792-ext.rng b/test/relaxng/595792-ext.rng new file mode 100644 index 0000000..58990cb --- /dev/null +++ b/test/relaxng/595792-ext.rng @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/test/relaxng/595792.rng b/test/relaxng/595792.rng new file mode 100644 index 0000000..fb2eb93 --- /dev/null +++ b/test/relaxng/595792.rng @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/test/relaxng/595792_0.xml b/test/relaxng/595792_0.xml new file mode 100644 index 0000000..546c589 --- /dev/null +++ b/test/relaxng/595792_0.xml @@ -0,0 +1,4 @@ + + + foo + diff --git a/test/relaxng/OASIS/spectest.xml b/test/relaxng/OASIS/spectest.xml new file mode 100644 index 0000000..18afb2e --- /dev/null +++ b/test/relaxng/OASIS/spectest.xml @@ -0,0 +1,6845 @@ +"> +]> + +James Clark +jjc@jclark.com +For October 26 version of the spec. + +
        3
        + +Various possible syntax errors. + +
        3
        + + + +
        + +
        3
        + + + + + + + + + + + + +
        + +
        3
        + + + + + + + + +
        + +
        3
        + + + foo + + + +
        + +
        3
        + + + + bar + + + +
        + +
        3
        + + + + + foo + + + bar + + + + + +
        + +
        3
        + + + + + foo + + + bar + + + + + +
        + +
        3
        + + + + + foo + + + bar + + + + +
        + +
        3
        + + + + + +
        + +
        3
        + + + + + +
        + +
        3
        + + + + + + + +
        + +
        3
        + + + + + + + +
        + +
        3
        + + + + + + + + + + +
        + +
        3
        + + + + + + + + + + + + + + +
        + +
        3
        + + + + + + + + + + + + + + + + + + +
        +
        + +Tests for obsolete syntax + +
        3
        + + + + + + + + + +
        + +
        3
        + + + + + + + +
        + +
        3
        + + + + foo + + + + +
        + +
        3
        + + + + + foo + + + + +
        + +
        3
        + + + + + +
        + +
        3
        + + + + + +
        + +
        3
        + + + + + + + +
        + +
        3
        + + + + + + + +
        +
        + +Tests for missing attributes and child elements + +
        3
        + + + + +
        + +
        3
        + + + foo + + +
        + +
        3
        + + + + +
        + +
        3
        + + + + + +
        + +
        3
        + + + + + +
        + +
        3
        + + + + + +
        + +
        3
        + + + + + +
        + +
        3
        + + + + + +
        + +
        3
        + + + + + +
        + +
        3
        + + + + + +
        + +
        3
        + + + + + +
        + +
        3
        + + + + + +
        + +
        3
        + + + + + + +
        + +
        3
        + + + + + + + + +
        + +
        3
        + + + + + + + + +
        + +
        3
        + + + + + + + +
        + +
        3
        + + + + + +
        + +
        3
        + + + + + + + +
        + +
        3
        + + + + + + + +
        + +
        3
        + + + + + + + + + + +
        + +
        3
        + + + + + +
        + +
        3
        + + + + + + + + + + +
        + +
        3
        + + + + + + + + + + + + + + +
        + +
        3
        + + + + + + + + + + + + +
        + +
        3
        + + + + + + + + + + + + + + + + +
        +
        + +Checking of ns attribute + +
        3
        + + + + + + + + +
        + +
        3
        +No checking of ns attribute is performed + + + + + + + + +
        + +
        3
        +No checking of ns attribute is performed + + + + + +
        + +
        3
        +No checking of ns attribute is performed + + + + + +
        +
        + +Checking of datatypeLibrary attribute + +
        3
        +Value of datatypeLibrary attribute must conform to RFC 2396 + + + + + +
        + +
        3
        +Value of datatypeLibrary attribute must conform to RFC 2396 + + + + + + + + +
        + +
        3
        +Value of datatypeLibrary attribute must conform to RFC 2396 + + + + + + + + +
        + +
        3
        +Value of datatypeLibrary attribute must conform to RFC 2396 + + + + + +
        + +
        3
        +Value of datatypeLibrary attribute must conform to RFC 2396 + + + + + +
        + +
        3
        +Value of datatypeLibrary attribute must conform to RFC 2396 + + + + + +
        + +
        3
        +Value of datatypeLibrary attribute must conform to RFC 2396 + + + + + + + + +
        + +
        3
        +Value of datatypeLibrary attribute must not be relative + + + + + +
        + +
        3
        +Value of datatypeLibrary attribute must not be relative + + + + + +
        + +
        3
        +Value of datatypeLibrary attribute must not be relative + + + + + +
        + +
        3
        +Value of datatypeLibrary attribute must not be relative + + + + + +
        + +
        3
        + + + + + + + + +
        + +
        3
        + + + + + + + + +
        + +
        3
        + + + + + + +x + +
        + +
        3
        +Value of datatypeLibrary attribute must not contain fragment identifier + + + + + +
        + +
        3
        +Value of datatypeLibrary attribute must not contain fragment identifier + + + + + +
        +
        + +Tests for QName and NCNames in schemas + +
        3
        + + + + + + + + +&dii; + +
        + +
        3
        + + + + + +
        + +
        3
        + + + + + +
        + +
        3
        + + + + + + +
        + +
        3
        + + + + + + +
        + +
        3
        + + + + + + + + + + + + +
        + +
        3
        + + + + + + + + + + + + + + + +
        + +
        3
        + + + + + + + + + + + + +
        + +
        3
        + + + + + + + + + + + + +
        + +
        3
        + + + + + + + + + + + + +
        + +
        3
        + + + + + +
        + +
        3
        + + + + + +
        + +
        3
        + + + + + +
        +
        + +Tests for elements that allow only a single pattern child. + +
        3
        + + + + + + + + + + +
        + +
        3
        + + + + + + + + +
        + +
        3
        + + + + bar + + + + + +
        +
        + +Tests for foreign element and attribute handling. + +
        3
        + + + + + +
        + +
        3
        + + + foo + + + +
        + +
        3
        + + + foo + + +
        + +
        3
        + + + + + + +X + +
        + +
        3
        + + + + + + + + + + + + +
        + +
        3
        + + + + + + + + + + foo + + + + + + + + + + + + + + + + +X + +
        + +
        3
        + + + + + foo + + + + + + + +X + +
        + +
        3
        + + + + + + + + + + foo + + + + + + + + + + +X + +
        + +
        3
        + + + + + + + + + + foo + + + + + + + + + + +X + +
        +
        +
        + +
        4
        + +
        4.2
        + +
        4.2
        + + + + + + + + +
        + +
        4.2
        + + + bar + + + +bar + + +bar + +
        + +
        4.2
        + + + + + + +X + +
        + +
        4.2
        + + + foo + bar + + + + + +
        + +
        4.2
        + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
        + +
        4.4
        + + + bar + + + +bar + + + + bar + + + + bar + + +baz + + +ba r + +
        + +
        4.5
        + +
        4.5
        + + + + + + + + + + + + + + + + +
        + +
        4.5
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        4.5
        + + + + + + + + +
        +
        + +
        4.6
        + +
        4.6
        + + + + + + + + + + + + + + +
        + +
        4.6
        + + + + + + + + + + + + + + +
        + +
        4.6
        + + + + + + +
        + +
        4.6
        + + + + + + + + + + +
        + +
        4.6
        + + + + + + + + + +
        + +
        4.6
        +Same value of href before resolution, but not a loop. + + + + + + + + + + + + + + + + + + + + + +
        +
        + +
        4.7
        + +
        4.7
        + + + + + + + + + + + + + + + + + + + + +
        + +
        4.7
        + + + + + + + + + + + + + + + + + + + + +
        + +
        4.7
        + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        4.7
        + + + + + + + + + + +
        + +
        4.7
        + + + + + + + + + + +
        + +
        4.7
        + + + + + + + + + + + + + + + +
        + +
        4.7
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        4.7
        + + + + + + + + + + + + + + + + + + +
        + +
        4.7
        + + + + + + + + + + + + + + + + + + + +
        + +
        4.7
        + + + + + + + + + + + + + + + + + + +
        + +
        4.7
        + + + + + + + + + + + + + + + + + + + +
        + +
        4.7
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        4.7
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
        + +
        4.8
        + +
        4.8
        + + + + + + + + + + + +
        + +
        4.8
        + + + + + + + + + + + +
        +
        + +
        4.9
        + +
        4.9
        + + + + bar + + + + + + + + + +
        + +
        4.6
        +
        4.9
        + + + + + + + + + + + + + + + + +
        + + + + + foo + + + + + + + + + + + foo + + + + + + + + + + + bar + + + + + + + +
        + +
        4.10
        + +
        4.10
        + + + + + +
        + +
        4.10
        + + + + + + + + + + + +
        + +
        4.10
        + + + + + + + + + + + +
        + +
        4.10
        + + + + + + + + + + + +
        +
        + +
        4.11
        + +
        4.11
        + + +
        +
        + + + +
        + + + + + +
        +
        + + + + + + + + + + + + +
        4.12
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +X + + +X + + + + +
        + +
        4.12
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +X + + +X + + + + +
        + +
        4.12
        +
        4.15
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +X + + +X + + + + +
        + +
        4.12
        +
        4.14
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +X + + +X + + + + +
        + +
        4.12
        + + + + x + y + z + + + + +x y z + + +x + +
        + +
        4.12
        +
        4.13
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +X + + +X + + + + +
        + +
        4.12
        + + + foo + + + + + + + + + + + + + + + + + + + + + + + + + + + +X + + +X + + + + +
        + +
        4.12
        + + + + + foo + bar + baz + + + + + + + + + +
        + +
        4.12
        + + + + + x + y + z + + + + + +xyz +x +y +y +
        + +
        4.12
        + + + + + + + + + + + + + + +
        + +
        4.12
        + + + + bar + + + + + + + + + + + + +
        + +
        4.12
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +X + + +X + + + + +
        + +
        4.12
        + + + + + + + + + + + + + + + + + + + +
        + +
        4.12
        + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        4.12
        + + + + + + + + + + + +
        + +
        4.12
        + + + + + + + + + + + +
        + +
        4.12
        + + + + + + + + + + + +
        +
        + +
        4.13
        + +
        4.13
        + + + + + + + + + +x + +x +xy + + +
        +
        + +
        4.14
        + +
        4.14
        + + + + + + + + + + + +x + +
        +
        + +
        4.15
        + +
        4.15
        + + + + + + + + + + + +x + + +
        +
        + +
        4.16
        + +
        4.16
        + + + + + + + + + + + + + + +
        + +
        4.16
        + + + + + + + + + foo + + + + + + + + +
        + +
        4.16
        + + + + + + + + + + + + + + +
        + +
        4.16
        + + + + + + + + + foo + + + + + + + + +
        + +
        4.16
        + + + + + + + + + + + + + + +
        + +
        4.16
        + + + + + + + + + foo + + + + + + + + +
        + +
        4.16
        +Tests that 4.16 is before 4.20. + + + + + + + + + + + + + + + + + + + +
        + +
        4.16
        +Tests that 4.16 is before removal of unreachable definitions. + + + + + + + + + + + + + + + + + + + +
        + +
        4.16
        + + + + + + + +
        + +
        4.16
        + + + + + + +
        + +
        4.16
        + + + + + + + +
        + +
        4.16
        + + + + + + + + + + +
        + +
        4.16
        + + + + + + + + + + + + + + +
        + +
        4.16
        + + + + + + + +
        + +
        4.16
        + + + + + xmlns + foo + + + + + +
        + +
        4.16
        + + + + xmlns + + + + +
        + +
        4.16
        + + + + xmlns + + + + +
        + +
        4.16
        + + + + + xmlns + + + + + +
        + +
        4.16
        + + + + + foo + xmlns + + + + + +
        + +
        4.16
        + + + + + + + xmlns + + + + + + + +
        + +
        4.16
        + + + + + + + xmlns + + + + + + + +
        + +
        4.16
        + + + + + + + +
        + +
        4.16
        + + + + + + +
        + +
        4.16
        + + + + 2 + + + +
        + +
        4.16
        + + + + + +
        + +
        4.16
        + + + + + +
        + +
        4.16
        + + + + + + 2 + + + + +
        + +
        4.16
        + + + + + + + + +
        + +
        4.16
        + + + + + + + + +
        + +
        4.16
        + + + + + + + + + + 2 + + + + +
        + +
        4.16
        + + + + + + + + + + + + +
        + +
        4.16
        + + + + + + + + + + + + +
        +
        + +
        4.17
        + +
        4.17
        + + + + + + + + + + + + + + + + + + + + + + +
        + +
        4.17
        + + + + + + + + + + + + + + + + + + + +
        + +
        4.17
        + + + + + + + + + + + + + + + + + +
        + +
        4.17
        + + + + + + + + + + + + + + +
        + +
        4.17
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        4.17
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        4.17
        + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        4.17
        + + + + + + + + + + + + + + + + + + + + + +
        + +
        4.17
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        4.17
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        4.17
        + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        4.17
        + + + + + + + + + + + + + + + + + + + + + +
        +
        + +
        4.18
        + +
        4.18
        +grammar must have a start + + + + + + + + + +
        + +
        4.18
        +4.17 is before 4.18 + + + + + + + + + + + + + + + + + + +
        + +
        4.18
        +4.17 is before 4.19 + + + + + + + + + + + + + + + + + +
        + +
        4.18
        +every ref must have a def + + + + + + + +
        + +
        4.18
        +4.17 is before 4.18 + + + + + + + + + + + + +
        + +
        4.18
        +4.17 is before 4.19 + + + + + + + + + + + + + + + +
        + +
        4.18
        +every parentRef must have a def + + + + + + + + + + + + + + + + +
        + +
        4.18
        +4.17 is before 4.18 + + + + + + + + + + + + + + + + + + + + + +
        + +
        4.18
        +4.17 is before 4.19 + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        4.18
        + + + + + + + + + + + + + + + + + + + +
        + +
        4.18
        + + + + + + + + + + + + + + + + + + + + +
        + +
        4.18
        + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        4.18
        + + + + + + + + + + + + + + + + + + + + + + + +
        +
        + +
        4.19
        + +
        4.19
        + + + + + + + + + + + + + + + + + +
        + +
        4.19
        + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        4.19
        + + + + + + + + + + + + + +
        + +
        4.19
        +
        4.20
        +Tests that recursion detection happens before +normalization of notAllowed. + + + + + + + + + + + + + + + + + + + + + + + +
        +
        + + +
        6
        + +
        6.1
        + +
        6.1
        + + + + + + + + + + + + +
        + +
        6.1
        + + + + + foo + + + + + + + + + + + + + + +
        + +
        6.1
        + + + + + + + + + + + + + + + + +
        + +
        6.1
        + + + + + + + + + + + + +
        + +
        6.1
        + + + + + + + + + + + + + + + + + + +
        + +
        6.1
        + + + + + foo + + + + + + + + + + + + + + +
        + +
        6.1
        + + + + + foo + + + + + + + + + + + + + + + + + +
        + +
        6.1
        + + + foo + + + + + + + + + + + + + + + +
        + +
        6.1
        + + + foo + + + + + + + + + + + + + + + +
        + +
        6.1
        + + + + foo + bar + + + + + + + + + + + + + +
        +
        + +
        6.2
        + +
        6.2.1
        + +
        6.2.1
        + + + + + + + + + + + + + + + + + + + +
        + +
        6.2.1
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        6.2.1
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        6.2.1
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
        + +
        6.2.2
        + +
        6.2.2
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        6.2.2
        + + + + + + + + + + + + + + + + + + +
        + +
        6.2.2
        + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        6.2.2
        + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        6.2.2
        + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        6.2.2
        + + + + + + + + + + + + + + + + + + + + + + + + +
        +
        + +
        6.2.3
        + +
        6.2.3
        + + + + + + + + + + + + + + + + + + + + + + + + + + +x + + + + + + + +
        + +
        6.2.3
        + + + + + + + + + + +
        + +
        6.2.3
        + + + + + + + + + +x + + +
        + +
        6.2.3
        + + + + + + + + + + + + +
        + +
        6.2.3
        + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        6.2.4
        + +
        6.2.4
        + + + + + + + + + + + + +x + + + +x + +y + + + + + +
        + +
        6.2.4
        + + + + + + + + + + + + + + + + + + + + +x + + + + + +x + +y + + + + + + +x + +
        + +
        6.2.4
        + + + + + + + + + + + + + + + + + + + + +x + + + + + + +x + +y + + + + + + +x + +
        + +
        6.2.4
        + + + + + + + + + + + + + + + + + + + + +x + + + + + + +x + +y + + + + + + +x + + +xx + + +xx + +
        + +
        6.2.4
        + + + + + + + + + + + + + + + + + + + + +x + +
        +
        + +
        6.2.5
        + +
        6.2.5
        + + + + + + + + + + + + + + + + + + + + + +
        + +
        6.2.5
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        6.2.5
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        6.2.5
        + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
        + +
        6.2.6
        + +
        6.2.6
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        6.2.6
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        6.2.6
        + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        6.2.6
        + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
        + +
        6.2.7
        + +
        6.2.7
        + + + + bar + baz + + + + + + + + + + + + + + + + + + + +baz + +
        + +
        6.2.7
        + + + + bar + + baz + + + + + + + + + + + + + + + + + + +baz + + + + + + + +
        + +
        6.2.7
        + + + + bar + + + + + + + + + + + + + +
        + +
        6.2.7
        + + + foo + + + bar + + + + baz + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        6.2.7
        +
        6.2.8
        + + + + + + + +x +
        + +
        6.2.7
        +
        6.2.8
        + + + + + + + + + + +x +
        + +
        6.2.7
        +
        6.2.8
        +
        6.2.10
        + + + + + + + + + +x + x +x y +
        + +
        6.2.7
        +
        6.2.8
        + + + + + 2 + + + +xx +xxx + + +x + + +
        + +
        6.2.7
        +
        6.2.8
        + + + + x + + + + + + + x +x +y + + + + + + +x + +x +
        + +
        6.2.7
        +
        6.2.8
        + + + + x + + + + + + + + + x +x +y + + + + + + +x + +x +
        +
        + +
        6.2.8
        + +
        6.2.8
        + + + + + + x + y + + + + + + +xyzzy + + +x + + +y + + + x + +
        + +
        6.2.8
        + + + + + + + + +
        + +
        6.2.8
        + + + + + + + + +
        + +
        6.2.8
        + + + + + + + + + + + + + +x + +
        +
        + +
        6.2.9
        + +
        6.2.9
        + + + + + + +xyzzy + + + +x + +y + +z + + + + + + + + + + + + + + + +
        + +
        6.2.9
        + + + + + + +xyzzy + + + +x + +y + +z + + + + + + + + + + + + + + + +
        + +
        6.2.9
        + + + x + + +x +xy + x + +
        + +
        6.2.9
        + + + x + + + x + xy +x + +
        + +
        6.2.9
        + + + x + + +x + x +x + x + +xy +
        + +
        6.2.9
        + + + x y + + +x y + x y +x y +xy +
        + +
        6.2.9
        + + + x + + +x + x +x + x + +xy +
        + +
        6.2.9
        + + + x y + + +x y +x y + x y +x y +x y + +xy +
        + +
        6.2.9
        + + + + + +
        + +
        6.2.9
        + + + + + +
        + +
        6.2.9
        + + + + 2 + + + +
        + +
        6.2.9
        + + + + 2 + + + +
        +
        + +
        6.2.10
        + +
        6.2.10
        + + + + x + + + + +x + + + x + + +x x + +
        + +
        6.2.10
        + + + + + x + + + + + +x + + + x x x x + + + + + +x y + +
        + +
        6.2.10
        + + + + + x + y + + + + + +x y + + +x y + + + x y + + +x + +
        + +
        6.2.10
        + + + + + + + + + + + +x y + + + + + +x y z + +
        + +
        6.2.10
        + + + + x y + + + + +x y + +
        +
        +
        +
        + +
        7
        + +
        7.1
        + +
        7.1.1
        + + + + + + + + + + + + + +
        + +
        7.1.1
        + + + + + + + + + + + + + + + + +
        + +
        7.1.1
        + + + + + + + + + + + +
        + +
        7.1.1
        + + + + + + + + + + + + + + +
        + +
        7.1.2
        + + + + + + + + + + + + + + +
        + +
        7.1.2
        + + + + + + + + + + + + + + + + + + +
        + +
        7.1.2
        + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        7.1.2
        + + + + + + + + + + + + + + +
        + +
        7.1.2
        + + + + + + + + + + + + + + + + + + +
        + +
        7.1.2
        + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        7.1.3
        + + + + + + + + + + + + + +
        + +
        7.1.3
        + + + + + + + + + + + + + + + + +
        + +
        7.1.3
        + + + + + + + + + + + + + +
        + +
        7.1.3
        + + + + + + + + + + + + + + + + +
        + +
        7.1.3
        + + + + + + + + + + + + + +
        + +
        7.1.3
        + + + + + + + + + + + + + + + + +
        + +
        7.1.3
        + + + + + + + + + + + + + + +
        + +
        7.1.3
        + + + + + + + x + y + + + + + + +
        + +
        7.1.3
        + + + + + + + + x + y + + z + + + + + + +
        + +
        7.1.4
        + + + + + + + + + + + + + +
        + +
        7.1.4
        + + + + + + + + + + + + + + + +
        + +
        7.1.4
        + + + + + + + + + + + + + +
        + +
        7.1.4
        + + + + + + + + + + + + + + + +
        + +
        7.1.4
        + + + + + + + + + + + + + + + + +
        + +
        7.1.4
        + + + + + + + + + + + + + + + + +
        + +
        7.1.4
        + + + + + + + + + + + + + + + +
        + +
        7.1.4
        + + + + + + + + + + + + + +
        + +
        7.1.5
        + + + + + + + +
        + +
        7.1.5
        + + + + + + + +
        + +
        7.1.5
        + + + + + + + + + + + + +
        + +
        7.1.5
        + + + + + foo + + + + + + + +
        + +
        7.1.5
        + + + + + + + +
        + +
        7.1.5
        + + + + + + + + + + + + +
        + +
        7.1.5
        + + + + + + + + + +
        + +
        7.1.5
        + + + + + + + + + + + + + + +
        + +
        7.1.5
        + + + + + + + + + + + + + + +
        + +
        7.1.5
        + + + + + + + + + + + + + + + + + + + +
        + +
        7.1.5
        + + + + + + + + + + + + + + +
        + +
        7.1.5
        + + + + + + + + + + + + + + + + + + + +
        + +
        7.1.5
        + + + + + + + + + + + +
        + +
        7.1.5
        + + + + + + + + + + + + + + + + +
        + +
        7.1.5
        + + + + + + + +
        + +
        7.1.5
        + + + + + + + + + + + + +
        + +
        7.1.5
        +
        7
        +
        4.18
        +Tests that constraints are post-normalization + + + + + + + + + + +text + +
        + +
        7.1.5
        +
        7
        +
        4.18
        + + + +
        + +
        7.1.1
        +
        7
        +
        4.20
        + + + + + + + + + + + + + + + +
        + +
        7.1.1
        +
        7
        +
        4.20
        +The nested attribute element is normalized out because +of the not allowed. + + + + + + + + + + + + + + + + +
        + +
        7.1.2
        +
        7
        +
        4.12
        +The group element is normalized out. + + + + + + + + + + + + + + + + + + +
        + +
        7.1.2
        +
        7
        +
        4.21
        +The group element is normalized out. + + + + + + + + + + + + + + + + + + + +
        + +
        7.1.2
        +
        7
        +
        4.20
        +The attribute elements are all normalized out. + + + + + + + + + + + + + + + + +
        +
        + +
        7.2
        + +
        7.2
        + + + + + + + + + + + + +
        + +Checks that normalization of notAllowed happens +before string sequence checking. +
        7.2
        +
        4.20
        + + + + + + + + + + + + + + + + + + + +
        + +
        4.20
        +
        7.2
        +notAllowed in an element is not normalized + + + + + + + + + + + + + + + + +
        +
        + +
        7.3
        + +
        7.3
        + + + + + + +
        + +
        7.3
        + + + + + + + + +
        + +
        7.3
        + + + + + + + + + + +
        + +
        7.3
        + + + + + + + + +
        + +
        7.3
        + + + + + + + + + + +
        + +
        7.3
        + + + + + + + + + + +
        + +
        7.3
        + + + + + + + + baz + + + + + + +
        + +
        7.3
        + + + + + + + + bar + + + + + + + + + + + + + + + + + + + + + +
        + +
        7.3
        + + + + + + + + + + +
        + +
        7.3
        + + + + + + + + baz + + + + + + +
        + +
        7.3
        + + + + + + + + + + + + + + +
        + +
        7.3
        + + + + + + + + + + + + + + +
        + +
        7.3
        + + + + + + + + + + + + bar + + + + + + +
        + +
        7.3
        + + + + + + + + + foo + + + + + + + + + +
        + +
        7.3
        + + + + + + + + + foo + + + + + + + + + + + + + +
        + +
        7.3
        + + + + + + + + + bar + + + + + + + + + + + + + + + + + + +
        + +
        7.3
        + + + + + + + + + + + + + + + + + +
        + +
        7.3
        + + + + + + + + + + + +
        + +
        7.3
        + + + + + + + + + +
        + +
        7.3
        + + + + + +
        + +
        7.3
        + + + + + +
        + +
        7.3
        + + + foo + + +
        +
        + +
        7.4
        + +
        7.4
        + + + + + + + + + + + + +
        + +
        7.4
        + + + + + + + + + + + + + + + + + +
        + +
        7.4
        + + + + + + + + + + + + + + + + + +
        + +
        7.4
        + + + + + + + + + + + + + + + + + + + + + + +
        + +
        7.4
        + + + + + + + + + + + + + + +
        + +
        7.4
        + + + + + + + + + + + + + +
        + +
        7.4
        + + + + + + + + + + + + + +
        + +
        7.4
        + + + + + + + + + + + + +
        + +
        7.4
        + + + + + + + + + + bar + + + + + + + + + + +
        + +
        7.4
        + + + + + + + + + + + + + + + + + + + + +
        + +
        7.4
        + + + + + + + + +
        + +
        7.4
        + + + + + + + + + + + + + + +
        +
        +
        + +Regressions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/OpenDocumentSub.rng b/test/relaxng/OpenDocumentSub.rng new file mode 100644 index 0000000..161be66 --- /dev/null +++ b/test/relaxng/OpenDocumentSub.rng @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + document + chapter + page + + + + + + + + + text + page + section + document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + i + I + + + + + + + + a + A + + + + + + + + + + + + + + + + + + footnote + endnote + + + + + + + + + + + + + + + true + false + + + + + + diff --git a/test/relaxng/OpenDocumentSub_0.xml b/test/relaxng/OpenDocumentSub_0.xml new file mode 100644 index 0000000..9cfb198 --- /dev/null +++ b/test/relaxng/OpenDocumentSub_0.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/test/relaxng/addressBook.rng b/test/relaxng/addressBook.rng new file mode 100644 index 0000000..3d910f9 --- /dev/null +++ b/test/relaxng/addressBook.rng @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/choice0.rng b/test/relaxng/choice0.rng new file mode 100644 index 0000000..99526e1 --- /dev/null +++ b/test/relaxng/choice0.rng @@ -0,0 +1,25 @@ + + + + + + ethernet + + + + + + + + + + serial + + + + + + + + + diff --git a/test/relaxng/choice0_0.xml b/test/relaxng/choice0_0.xml new file mode 100644 index 0000000..113ffa8 --- /dev/null +++ b/test/relaxng/choice0_0.xml @@ -0,0 +1,2 @@ + + diff --git a/test/relaxng/choice0_1.xml b/test/relaxng/choice0_1.xml new file mode 100644 index 0000000..f0c441d --- /dev/null +++ b/test/relaxng/choice0_1.xml @@ -0,0 +1,2 @@ + + diff --git a/test/relaxng/choice0_2.xml b/test/relaxng/choice0_2.xml new file mode 100644 index 0000000..5f67e0b --- /dev/null +++ b/test/relaxng/choice0_2.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/choice0_3.xml b/test/relaxng/choice0_3.xml new file mode 100644 index 0000000..79ac4a6 --- /dev/null +++ b/test/relaxng/choice0_3.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/choice0_4.xml b/test/relaxng/choice0_4.xml new file mode 100644 index 0000000..1de1abc --- /dev/null +++ b/test/relaxng/choice0_4.xml @@ -0,0 +1,2 @@ + + diff --git a/test/relaxng/choice0_5.xml b/test/relaxng/choice0_5.xml new file mode 100644 index 0000000..2ac50f7 --- /dev/null +++ b/test/relaxng/choice0_5.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/choice0_6.xml b/test/relaxng/choice0_6.xml new file mode 100644 index 0000000..1e4d1d2 --- /dev/null +++ b/test/relaxng/choice0_6.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/choice0_7.xml b/test/relaxng/choice0_7.xml new file mode 100644 index 0000000..f28f89f --- /dev/null +++ b/test/relaxng/choice0_7.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/choice0_8.xml b/test/relaxng/choice0_8.xml new file mode 100644 index 0000000..f810229 --- /dev/null +++ b/test/relaxng/choice0_8.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/compare0.rng b/test/relaxng/compare0.rng new file mode 100644 index 0000000..a0446c8 --- /dev/null +++ b/test/relaxng/compare0.rng @@ -0,0 +1,8 @@ + + + + 1 + + + diff --git a/test/relaxng/compare0_0.xml b/test/relaxng/compare0_0.xml new file mode 100644 index 0000000..6a74b2f --- /dev/null +++ b/test/relaxng/compare0_0.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/comps.rng b/test/relaxng/comps.rng new file mode 100644 index 0000000..86172c1 --- /dev/null +++ b/test/relaxng/comps.rng @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + false + + + + + + + + + + true + false + + + + + + + + + + + + + + + + + + + + + default + + optional + + + + + + + + + + + + + + default + mandatory + optional + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/comps_0.xml b/test/relaxng/comps_0.xml new file mode 100644 index 0000000..c0168a5 --- /dev/null +++ b/test/relaxng/comps_0.xml @@ -0,0 +1,17870 @@ + + + + + + + core + Core + Jádro + Grundlæggende + Haupt + Núcleo + Tore + Lágmarkskerfi + Principale + コア + 핵심 + Kjerne + Núcleo + ОÑнова + Grundläggande + 核心 + ä¸»è¦ + true + Smallest possible installation + Nejmenší možná instalace + Mindst mulige installation + Kleinstmögliche Installation + Instalación lo más pequeña posible + Plus petite installation possible + Lágmarks uppsetning + Installazione minima + 最低å¯èƒ½ãªã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ« + 가능한 최소 설치 + Minste mulige installering + A mais pequena instalação possível + Минимально Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð°Ñ ÑƒÑтановка + Minsta möjliga installation + 最å°å®‰è£… + 最å°çš„å®‰è£ + false + + ash + basesystem + bash + bdflush + cpio + e2fsprogs + ed + file + filesystem + glibc + grub + hdparm + hotplug + initscripts + iproute + iputils + kbd + kernel + ksymoops + libgcc + libtermcap + losetup + passwd + procps + raidtools + readline + redhat-logos + redhat-release + rootfiles + rpm + setserial + setup + sysklogd + SysVinit + termcap + util-linux + vim-minimal + + authconfig + kudzu + lilo + mouseconfig + shadow-utils + + + + + base + Base + Základ + Base + Basis + Base + Base + Grunnur + Base + ベース + 기준 + Grunnpakker + Base + ОÑнова + Bas + 基本 + 基礎 + + false + true + + core + dialup + + + acl + anacron + apmd + aspell + at + attr + authconfig + autofs + bc + bind-utils + bzip2 + crontabs + cyrus-sasl-plain + dhclient + diffutils + dos2unix + dosfstools + dump + ethtool + eject + fbset + finger + ftp + gpm + irda-utils + kbdconfig + kernel-pcmcia-cs + krb5-workstation + kudzu + lftp + lha + logrotate + lsof + logwatch + lokkit + mailcap + man + man-pages + mkbootdisk + mt-st + mtools + mtr + netconfig + nfs-utils + nss_ldap + ntsysv + openssh-clients + pam_krb5 + pam_smb + parted + pax + pciutils + pidentd + pinfo + quota + rdate + redhat-logos + reiserfs-utils + rp-pppoe + rsh + rsync + jfsutils + setuptool + sendmail + slocate + specspo + star + sudo + stunnel + talk + tcp_wrappers + tcsh + telnet + traceroute + time + timeconfig + tmpwatch + up2date + utempter + wireless-tools + rdist + tcpdump + net-snmp-utils + openssh-server + wget + unix2dos + unzip + whois + vim-common + vixie-cron + ypbind + zip + + + + + printing + true + true + Printing Support + Podpora pro tisk + Udskriftsunderstøttelse + Drucker-Support + Soporte para la impresión + Support d'impression + Prentstuðningur + Supporto per la stampa + å°åˆ·ã‚µãƒãƒ¼ãƒˆ + ì¸ì‡„ ì§€ì› + Skriverstøtte + Suporte a Impressão + Поддержка печати + Utskriftsstöd + æ‰“å°æ”¯æŒ + åˆ—å°æ”¯æ´ + Install these tools to enable the system to print or act as a print server. + Nainstalováním tÄ›chto nástrojů umožníte VaÅ¡emu poÄítaÄi tisknout nebo vystupovat jako tiskový server. + Installér disse værktøjer for at lade systemet udskrive eller fungere som udskriftsserver. + Installieren Sie diese Tools, um es dem System zu ermöglichen zu drucken oder als Drucker-Server zu funktionieren. + Instalar estas herramientas para habilitar el sistema para imprimir o actuar como un servidor de impresión. + Installer ces outils pour habiliter le système à imprimer ou agir comme un serveur d'impression. + Settu þessa pakka inn ef þú vilt prenta eða setja upp prentþjón. + Installare questi strumenti per permettere al sistema di stampare o fungere da server di stampa. + ã“れらã®ãƒ„ールをインストールã—ã¦ã‚·ã‚¹ãƒ†ãƒ ã‚’å°åˆ·å¯èƒ½ã«ã€åˆã¯ãƒ—リントサーãƒã¨ã—㦠有効ã«ã—ã¾ã™ã€‚ + 시스템ì—서 ì¸ì‡„ 가능하게 하거나 ì¸ì‡„ 서버로 기능하게 하시려면 ì´ ë„구를 설치하십시오. + Installer disse verktøyene for Ã¥ kunne bruke skriver og Ã¥ kunne sette opp systemet some utskriftstjener. + Instale estas ferramentas se desejar imprimir com o computador ou que este funcione como servidor de impressão. + УÑтановите Ñти пакеты, чтобы получить возможноÑть печатать файлы или иÑпользовать ÑиÑтему как Ñервер печати. + Installera dessa verktyg för att lÃ¥ta systemet skriva ut eller agera utskriftsserver. + 安装这些工具æ¥å¯ç”¨æ‰“å°ç³»ç»Ÿæˆ–å……å½“æ‰“å°æœåŠ¡å™¨çš„ç³»ç»Ÿã€‚ + 請安è£é€™äº›å¥—件,以啟用系統的列å°åŠŸèƒ½æˆ–ç•¶ä½œä¸€éƒ¨åˆ—å°ä¼ºæœå™¨ã€‚ + + cups + + + 4Suite + XFree86-font-utils + a2ps + ghostscript + hpijs + LPRng + ttfprint + redhat-config-printer + redhat-switch-printer + + + + + cups + false + false + Cups + Cups + CUPS + Cups + Cups + Coupes + Cups + Cups + カップ + CUPS + Cups + Cups + Cups + Cups + Cups + Cups + Cups printing service and drivers to use it. + Tisková služba Cups a ovladaÄe pro její použití. + Udskriftstjenesten CUPS og de driverrutiner som behøves for brug af den. + Cups Druckerdienst und Treiber für die Verwendung. + Servicios de impresión cups y drivers para usarlo. + Service d'impression des coupes et lecteurs pour l'utiliser. + Cups prentkerfið og reklar fyrir það. + Servizio di stampa Cups e relativi driver per utilizzarlo. + カップå°åˆ·ã‚µãƒ¼ãƒ“スã¨ãれを使用ã™ã‚‹ãƒ‰ãƒ©ã‚¤ãƒãƒ¼ + CUPS ì¸ì‡„ 서비스와 ì´ ì„œë¹„ìŠ¤ë¥¼ 사용할 드ë¼ì´ë²„. + Utskriftssystemet Cups med drivere. + Serviço de impressão cups e controladores para o utilizar. + Служба печати Cups и драйверы Ð´Ð»Ñ ÐµÐµ иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ + Utskriftstjänsten Cups och de drivrutiner som behövs för användning av den. + Cups æ‰“å°æœåŠ¡åŠæ‰€éœ€é©±åŠ¨ç¨‹åºã€‚ + Cups åˆ—å°æœå‹™èˆ‡è¦ä½¿ç”¨çš„驅動程å¼ã€‚ + + cups + cups-drivers + cups-drivers-hpijs + cups-drivers-pnm2ppa + + + + + base-x + true + true + X Window System + X Window System + Vinduessystemet X + X Window System + Sistema X Window + Système X Window + X gluggakerfið + Sistema X Window + X Window System + X 윈ë„ìš° 시스템 + X + Sistema de Janelas X + СиÑтема X Window + Fönstersystemet X + X 窗å£ç³»ç»Ÿ + X 視窗系統 + Install this group of packages to use the base graphical (X) user interface. + Tuto skupinu balíÄků nainstalujte pro použití grafického (X) uživatelského prostÅ™edí. + Installér denne pakkegruppe for at bruge den grundlæggende grafiske brugergrænseflade (X). + Installieren Sie diese Paketgruppe, um die grafische Hauptbenutzeroberfläche (X) zu verwenden. + Instalar este grupo de paquetes para usar la interfaz de usuario (X) gráfica. + Installer ce groupe de paquetages pour utiliser l'interface utilisateur graphique de base (X). + Settu þessa pakka inn ef þú vilt nota myndræn forrit (X). + Installare questo gruppo di pacchetti per usare l'interfaccia utente grafica (X) di base. + ã“ã®ãƒ‘ッケージã®ã‚°ãƒ«ãƒ¼ãƒ—をインストールã—ã¦ã€åŸºæœ¬çš„グラフィカル(X)ユーザーインターフェイスを使用ã—ã¾ã™ã€‚ + 기본 그래픽 (X) ì‚¬ìš©ìž ì¸í„°íŽ˜ì´ìŠ¤ë¥¼ 사용하시려면 ì´ íŒ¨í‚¤ì§€ ê·¸ë£¹ì„ ì„¤ì¹˜í•˜ì‹­ì‹œì˜¤. + Installer denne pakkegruppen for Ã¥ bruke et grafisk grensesnitt (X). + Instale este grupo de pacotes para usar a interface gráfica básica de utilizador (o X). + УÑтановите Ñту группу пакетов, чтобы получить графичеÑкий Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ (X) + Installera denna paketgrupp för att använda det grundläggande grafiska gränssnittet (X). + 安装这组软件包æ¥ä½¿ç”¨åŸºç¡€å›¾å½¢åŒ–用户界é¢(X)。 + 請安è£é€™å€‹å¥—件群組,以用來使用基礎的圖形 (X) 使用者介é¢ã€‚ + + printing + + + authconfig-gtk + bitmap-fonts + firstboot + desktop-backgrounds-basic + desktop-backgrounds-extra + gdm + openssh-askpass + openssh-askpass-gnome + redhat-config-date + redhat-config-network + redhat-config-services + redhat-config-soundcard + redhat-config-users + redhat-config-xfree86 + redhat-logviewer + redhat-config-printer-gui + redhat-switch-printer-gnome + redhat-switchmail-gnome + redhat-config-packages + switchdesk + usermode-gtk + XFree86 + Xtest + XFree86-font-utils + XFree86-tools + XFree86-twm + XFree86-xauth + XFree86-75dpi-fonts + XFree86-100dpi-fonts + xinitrc + XFree86-xdm + up2date-gnome + rhn-applet + WindowMaker + xisdnload + + + + + dialup + false + true + Dialup Networking Support + Podpora vytáÄeného pÅ™ipojení k síti + Understøttelse for opkaldt opkopling + Dialup Netzwerk Support + Soporte de red del marcado + Support d'accès distant au réseau + Upphringinetsstuðningur + Supporto di networking dialup + ダイヤルアップãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚µãƒãƒ¼ãƒˆ + 전화연결 네트워킹 ì§€ì› + Støtte for oppringt nettverk + Suporte a Ligações Telefónicas + Удаленный доÑтуп к Ñети + Stöd för uppringd uppkoppling + 拨å·è”ç½‘æ”¯æŒ + æ’¥è™Ÿç¶²è·¯æ”¯æ´ + + ppp + lrzsz + minicom + statserial + wvdial + isdn4k-utils + + + + + gnome-desktop + true + true + GNOME Desktop Environment + ProstÅ™edí pracovní plochy GNOME + Skrivebordsmiljøet Gnome + GNOME Desktopumgebung + Entorno de escritorio de GNOME + Environnement de bureau GNOME + GNOME skjáborðið + Ambiente desktop di GNOME + GNOMEデスクトップ環境 + GNOME ë°ìФí¬íƒ‘ 환경 + Skrivebordsmiljøet GNOME + Ambiente de Trabalho GNOME + Окружение рабочего Ñтола GNOME + Skrivbordsmiljön GNOME + GNOME 桌é¢çŽ¯å¢ƒ + GNOME 桌é¢ç’°å¢ƒ + GNOME is a powerful, graphical user interface which includes a panel, desktop, system icons, and a graphical file manager. + GNOME je výkonné grafické uživatelské prostÅ™edí, které zahrnuje panel, prostÅ™edí pracovní plochy, systémové ikony a grafického správce souborů. + Gnome er en stærk grafisk brugergrænseflade som indholder et panel, et skrivebord, systemikoner og en grafisk filbehandler. + GNOME ist eine leistungsstarkes grafisches Benutzerinterface mit Panel, Desktop, Systemsymbolen und grafischem Fenstermanager. + GNOME es una interfaz gráfica de usuario potente que incluye un panel, un escritorio, iconos del sistema y gestores de ficheros gráficos. + GNOME est une interface utilisateur graphique puissante qui comprend un tableau de bord, un bureau, des icônes de système et un gestionnaire de fichiers graphique. + GNOME er öflugt myndrænt vinnuumhverfi sem inniheldur spjald, skjáborð, kerfissmámyndir og myndrænann skráarstjóra. + GNOME è una potente interfaccia grafica utente che include un pannello, un desktop, icone di sistema e un file manager grafico. + GNOMEã¯ã€ãƒ‘ãƒãƒ«ã€ãƒ‡ã‚¹ã‚¯ãƒˆãƒƒãƒ—ã€ã‚·ã‚¹ãƒ†ãƒ ã‚¢ã‚¤ã‚³ãƒ³ã€åŠã³ã‚°ãƒ©ãƒ•ィカル ファイルマãƒã‚¸ãƒ£ã‚’å«ã‚€å¼·åŠ›ãªã‚°ãƒ©ãƒ•ィカルユーザーインターフェイスã§ã™ã€‚ + GNOMEì€ ê°•ë ¥í•œ 그래픽 ì‚¬ìš©ìž ì¸í„°íŽ˜ì´ìŠ¤ë¡œì„œ 패ë„, ë°ìФí¬íƒ‘, 시스템 ì•„ì´ì½˜ê³¼ 그래픽 íŒŒì¼ ê´€ë¦¬ìž ê¸°ëŠ¥ì„ ê°–ì¶”ê³  있습니다. + GNOME er et kraftig, grafisk brukergrensesnitt som inkluderer et panel, skrivebord, systemikoner og en grafisk filhÃ¥ndterer + GNOME is a powerful, graphical user interface which includes a panel, desktop, system icons, and a graphical file manager. + GNOME - Ñто мощный графичеÑкий Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ, который включает панель, рабочий Ñтол, ÑиÑтемные пиктограммы и графичеÑкий менеджер файлов. + GNOME är ett kraftfullt, grafiskt användargränssnitt som innehÃ¥ller en panel, ett skrivbord, systemikoner och en grafisk filhanterare. + GNOME 是一个功能强大的图形化用户界é¢ï¼Œå®ƒåŒ…æ‹¬ä¸€ä¸ªé¢æ¿ã€ 桌é¢ã€ç³»ç»Ÿå›¾æ ‡ã€ä»¥åŠå›¾å½¢åŒ–文件管ç†å™¨ã€‚ + GNOME 是一個功能強大的圖形使用者介é¢ï¼Œå®ƒå«æœ‰ä¸€å€‹é¢æ¿ã€æ¡Œé¢ã€ç³»çµ±åœ–示 以åŠä¸€å€‹åœ–形的檔案管ç†å“¡ã€‚ + + base-x + + + control-center + desktop-file-utils + eog + file-roller + gconf-editor + gedit + gftp + gimp-print-utils + gnome-applets + gnome-audio + gnome-media + gnome-panel + gnome-session + gnome-spell + gnome-system-monitor + gnome-terminal + gnome-user-docs + gnome-utils + gnome-vfs-extras + gnome-vfs2-extras + gqview + gtk-engines + gtk2-engines + ggv + mtr-gtk + magicdev + hwbrowser + metacity + nautilus + switchdesk-gnome + yelp + + + + + kde-desktop + KDE Desktop Environment + ProstÅ™edí pracovní plochy KDE + Skrivebordsmiljøet KDE + KDE Desktopumgebung + Entorno de escritorio para KDE + Environnement de bureau KDE + KDE skjáborðið + Ambiente desktop KDE + KDEデスクトップ環境 + KDE ë°ìФí¬íƒ‘ 환경 + Skrivebordsmiljøet KDE + Ambiente de Trabalho KDE + Окружение рабочего Ñтола KDE + Skrivbordsmiljön KDE + KDE 桌é¢çŽ¯å¢ƒ + KDE 桌é¢ç’°å¢ƒ + KDE is a powerful, graphical user interface which includes a panel, desktop, system icons, and a graphical file manager. + KDE je výkonné grafické uživatelské prostÅ™edí, které zahrnuje panel, prostÅ™edí pracovní plochy, systémové ikony a grafického správce souborů. + KDE er en stærk, grafisk brugergrænseflade som indholder et panel, et skrivebord, systemikoner og en grafisk filbehandler. + KDE ist eine leistungsstarkes grafisches Benutzerinterface mit Panel, Desktop, Systemsymbolen und grafischem Fenstermanager. + KDE es una interfaz de usuario gráfica y potente que incluye un panel, un escritorio, iconos del sistema y un gestor gráfico de ficheros. + KDE est une interface utilisateur graphique puissante comprenant un tableau de bord, un bureau, des icônes de système et un gestionnaire de fichier graphique. + KDE er öflugt myndrænt vinnuumhverfi sem inniheldur spjald, skjáborð, kerfissmámyndir og myndrænann skráarstjóra. + KDE è una potente interfaccia grafica utente che include un pannello, un desktop, icone di sistema e un file manager grafico. + KDEã¯ã€ãƒ‘ãƒãƒ«ã€ãƒ‡ã‚¹ã‚¯ãƒˆãƒƒãƒ—ã€ã‚·ã‚¹ãƒ†ãƒ ã‚¢ã‚¤ã‚³ãƒ³åŠã³ã‚°ãƒ©ãƒ•ィカルファイル マãƒã‚¸ãƒ£ã‚’å«ã‚€å¼·åŠ›ãªã‚°ãƒ©ãƒ•ィカルユーザーインターフェイスã§ã™ã€‚ + KDE는 강력한 그래픽 ì‚¬ìš©ìž ì¸í„°íŽ˜ì´ìŠ¤ë¡œì„œ 패ë„, ë°ìФí¬íƒ‘, 시스템 ì•„ì´ì½˜ê³¼ 그래픽 íŒŒì¼ ê´€ë¦¬ìž ê¸°ëŠ¥ì„ ê°–ì¶”ê³  있습니다. + KDE er et kraftig, grafisk brukergrensesnitt som inkluderer et panel, skrivebord, systemikoner og en grafisk filhÃ¥ndterer. + O KDE é uma interface gráfica poderosa que inclui um painel, um ambiente de trabalho, os ícones de sistema e um gestor de ficheiros gráfico. + KDE Ñто мощный графичеÑкий интерфейÑ, включающий в ÑÐµÐ±Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ приложений, рабочий Ñтол, ÑиÑтемные иконки, и графичеÑкий менеджер файлов. + KDE är ett kraftfullt, grafiskt användargränssnitt som innehÃ¥ller en panel, ett skrivbord, systemikoner och en grafisk filhanterare. + KDE 是一个功能强大的图形化用户界é¢ã€‚å®ƒåŒ…æ‹¬é¢æ¿ã€æ¡Œé¢ã€ 系统图标ã€ä»¥åŠå›¾å½¢åŒ–文件管ç†å™¨ã€‚ + KDE 是一個功能強大的圖形使用者介é¢ï¼Œå®ƒå«æœ‰ä¸€å€‹é¢æ¿ã€æ¡Œé¢ã€ç³»çµ±åœ–示 以åŠä¸€å€‹åœ–形的檔案管ç†å“¡ã€‚ + + base-x + dialup + + + ark + arts + autorun + fam + htdig + kaboodle + kamera + karm + kcalc + kcharselect + kdeaddons-kate + kdeaddons-noatun + kdeaddons-konqueror + kdeaddons-kicker + kdeaddons-konqueror + kdeadmin + kdeartwork + kdeartwork-locolor + kdeartwork-screensavers + kdemultimedia-arts + kdemultimedia-kfile + kdepasswd + kdepim + kdebase + kdessh + kdf + kdict + kedit + kdeaddons-knewsticker + kdeutils-laptop + kfloppy + kfile-pdf + kfile-png + khexedit + kjots + kljettool + klprfax + klpq + kmix + kpf + kregexpeditor + kscd + ksnapshot + ktimer + lisa + switchdesk-kde + xinetd + kppp + kpppload + kghostview + kdvi + kiconedit + kmail + kit + koncd + kpaint + kuickshow + kview + kviewshell + + + + + graphical-internet + Graphical Internet + Grafický Internet + Grafisk internet + Grafisches Internet + Internet gráfica + Internet graphique + Myndræn Internettól + Internet grafico + グラフィカルインターãƒãƒƒãƒˆ + 그래픽 ì¸í„°ë„· + Grafisk Internet + Internet em Modo Gráfico + ГрафичеÑкие ÑредÑтва Интернет + Grafiskt Internet + 图形化互è”网 + 圖形化網際網路 + This group includes graphical email, Web, and chat clients. + Tato skupina obsahuje grafické klienty pro email, WWW a chat. + Denne gruppe indeholder grafiske klienter for e-post, netlæsning og chat. + Diese Gruppe umfasst grafische E-Mail, Web und Chat-Clients. + El grupo incluye clientes gráficos de correo electrónico, Web y chat. + Ce groupe comprend le courrier électronique graphique, Web et les clients de conversation. + Þessi hópur inniheldur myndræn póst, vef og spjallforrit. + Questo gruppo include e-mail, Web e chat client grafici. + ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«ã¯ã€ã‚°ãƒ©ãƒ•ィカルemailã€Webã€åŠã³ãƒãƒ£ãƒƒãƒˆã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆãŒ å«ã¾ã‚Œã¦ã„ã¾ã™ã€‚ + ì´ ê·¸ë£¹ì—는 그래픽 ì´ë©”ì¼, 웹, 채팅 í´ë¼ì´ì–¸íŠ¸ê°€ í¬í•¨ë˜ì–´ 있습니다. + Denne gruppen inkluderer grafiske epost, web og chat-klienter. + Este grupo contém clientes gráficso de email, Web e chat. + Эта группа включает графичеÑкие клиенты Ñлектронной почты, Веб и чата. + Denna grupp inkluderar grafiska klienter för e-post, webbsurfande och chatt. + 这组软件包包å«å›¾å½¢åŒ–电å­é‚®ä»¶ã€ä¸‡ç»´ç½‘å’ŒèŠå¤©å®¢æˆ·ã€‚ + 這個群組包括圖形的電å­éƒµä»¶ã€ç¶²é ä»¥åŠèŠå¤©ç”¨æˆ¶ç«¯ã€‚ + true + true + + balsa + evolution + gaim + galeon + gnomemeeting + mozilla + mozilla-psm + mozilla-chat + mozilla-mail + pan + xchat + indexhtml + licq-kde + ksirc + kmail + korn + knode + kit + quanta + + + + + text-internet + Text-based Internet + Textový Internet + Tekstbaseret internet + Textbasiertes Internet + Internet basada en texto + Internet basé sur texte + Internet með textaskilum + Internet text-based + テキストベースã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆ + í…스트-기반 ì¸í„°ë„· + Tekstbaserte Internett-programmer + Internet em modo texto + ТеÑтовые ÑредÑтва Интернет + Textbaserat Internet + 基于文本的互è”网 + 文字為主的網際網路 + This group includes text-based email, Web, and chat clients. These applications do not require the X Window System. + Tato skupina obsahuje textové klienty pro email, WWW a chat. Tyto aplikace nepotÅ™ebují X Window System. + Denne gruppe indeholder tekst-baserede klienter for e-post, netlæsning og chat. Disse programmer kræver ikke vinduessystemet X. + Diese Gruppe enthält text-basierte E-Mail, Web und Chat-Clients. Diese Anwendungen benötigen das X Window System nicht. + Este grupo incluye correo electrónico en forma de texto, Web y clientes de chats. Estas aplicaciones no necesitan el sistema X Window. + Ce groupe contient une messagerie électronique en modalité texte et des clients de conversation. Ces applications ne nécessitent pas le système X Window. + Þessi hópur inniheldur póst, vef og spjallforrit með textaskilum. Þessi tól þurfa ekki X gluggakerfið. + Questo gruppo include e-mail, Web e chat client text-based. Tali applicazioni non richiedono il sistema X Window. + ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«ã¯ã€ãƒ†ã‚­ã‚¹ãƒˆãƒ™ãƒ¼ã‚¹ã®email, Web,åŠã³ãƒãƒ£ãƒƒãƒˆã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆãŒå«ã¾ã‚Œã¦ ã„ã¾ã™ã€‚ã“れらã®ã‚¢ãƒ—リケーションã¯X Window Systemã‚’å¿…è¦ã¨ã—ã¾ã›ã‚“。 + ì´ ê·¸ë¦…ì—는 í…스트-기반 ì´ë©”ì¼, 웹, 채팅 í´ë¼ì´ì–¸íŠ¸ê°€ í¬í•¨ë˜ì–´ 있습니다. X 윈ë„ìš° ì‹œìŠ¤í…œì´ ì—†ì–´ë„ ìž‘ë™í•©ë‹ˆë‹¤. + Denne gruppen inneholder tekstbaserte epost, web og chat-klienter. Disse programmene trenger ikke X. + Este grupo inclui o email em modo texto, a Web e os clientes de conversação. Estas aplicações não necessitam do X Window System. + Эта группа Ñодержит текÑтовые Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Ñлектронной почтой, интернетом, а также чат-клиенты. ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð² Ñтой группе не требуют X Window System + Denna grupp inkluderar text-baserade klienter för e-post, webbsurfande och chatt. Dessa program kräver inte fönstersystemet X. + 这组软件包包å«åŸºäºŽæ–‡æœ¬çš„电å­é‚®ä»¶ã€ä¸‡ç»´ç½‘ã€å’ŒèŠå¤©å®¢æˆ·çš„软件包。 这些应用程åºä¸è¦æ±‚ X 窗å£ç³»ç»Ÿã€‚ + 這個群組包括文字為主的電å­éƒµä»¶ã€ç¶²é èˆ‡èŠå¤©ç”¨æˆ¶ç«¯ã€‚ é€™äº›æ‡‰ç”¨ç¨‹å¼ ä¸¦ä¸éœ€è¦ X 視窗系統。 + true + true + + base + + + fetchmail + epic + lynx + mutt + ncftp + pine + slrn + + + + + sound-and-video + Sound and Video + Zvuk a video + Lyd og video + Sound und Video + Sonido y vídeo + Son et vidéo + Hljóð og mynd + Audio e video + サウンドã¨ãƒ“デオ + 사운드와 비디오 + Lyd og bilde + Som e Video + Звук и видео + Ljud och video + 视频和音频 + 音效與視訊 + From CD recording to playing audio CDs and multimedia files, this package group allows you to work with sound and video on the system. + Tato skupina balíÄků Vám umožňuje pracovat se zvukem a videem od vypalování CD po pÅ™ehrávání zvukových CD a multimediálních souborů. + Denne gruppe lader dig arbejde med lyd og video pÃ¥ systemet, med altfra cd-optagning til afspilning af lyd-cd'er og multimedie-filer. + Von der Aufnahme von CDs bis zum Abspielen von Audio-CDs ermöglicht Ihnen diese Paketgruppe eine optimale Nutzung der Sound- und Videofunktionen des Systems. + Desde la grabación de CDs hasta la reproducción de CDs de audio y archivos multimedia, este paquete le permite trabajar con audio y video en su sistema. + CDã®éŒ²éŸ³ã‹ã‚‰ã‚ªãƒ¼ãƒ‡ã‚£ã‚ªCDã¨ãƒžãƒ«ãƒãƒ¡ãƒ‡ã‚£ã‚¢ãƒ•ァイルã®å†ç”Ÿã¾ã§ã€ã“㮠パッケージグループã§ã‚·ã‚¹ãƒ†ãƒ ä¸Šã®ã‚µã‚¦ãƒ³ãƒ‰ã¨ãƒ“デオを機能を使用ã§ãã¾ã™ã€‚ + ì´ íŒ¨í‚¤ì§€ ê·¸ë£¹ì„ ì‚¬ìš©í•˜ì—¬ CD ë…¹ìŒì—서 오디오 CD ë° ë©€í‹°ë¯¸ë””ì–´ íŒŒì¼ ìž¬ìƒì— ì´ë¥´ê¸°ê¹Œì§€ 다양한 사운드와 비디오 ìž‘ì—…ì„ ìˆ˜í–‰í•˜ì‹¤ 수 있습니다. + Denne pakkegruppen inneholder programmer for Ã¥ spille av CDer og multimediefiler samt arbeide med lyd og bilde pÃ¥ systemet. + Desde a gravação de CDs até à reprodução de CDs áudio e multimédia, este\ngrupo de pacotes permite-lhe lidar com o som e o vídeo no sistema. + От запиÑи CD до Ð¿Ñ€Ð¾Ð¸Ð³Ñ€Ñ‹Ð²Ð°Ð½Ð¸Ñ Ð·Ð²ÑƒÐºÐ¾Ð²Ñ‹Ñ… диÑков и MP3, Ñта группа пакетов позволÑет работать Ñо звуком и видео в ÑиÑтеме. + Denna paketgrupp lÃ¥ter dig arbeta med ljud och video, vare sig det gäller cdinspelning eller att lyssna pÃ¥ musikskivor och multimediafiler. + 从光盘录制到播放音频光盘和多媒体文件,该软件包组å…许您使用系统上的音频和视频资æºã€‚ + 從燒錄 CD 到播放音效 CD 與多媒體檔案,這個套件群組讓您å¯ä»¥åœ¨ç³»çµ±ä¸Šä½¿ç”¨éŸ³æ•ˆèˆ‡è¦–訊的功能。 + true + true + + base + base-x + + + aumix + cdda2wav + cdlabelgen + cdp + cdparanoia + cdrecord + dvdrecord + dvgrab + grip + gtoaster + kaboodle + kdeaddons-noatun + kmid + kmidi + koncd + mikmod + sndconfig + sox + vorbis-tools + xawtv + xcdroast + xmms + xmms-skins + + + + + graphics + Graphics + Grafika + Grafik + Grafik + Gráficos + Graphismes + Myndvinnsla + Grafica + グラフィクス + 그래픽 + Grafikk + Gráficos + Графика + Grafik + 图形 + 圖形 + This group includes packages to help you manipulate and scan images. + Tato skupina obsahuje balíÄky, které Vám pomohou pracovat s obrázky a skenovat je. + Denne gruppe indeholder pakker som hjælper dig med at manipulere og indlæse billeder. + Diese Gruppe umfasst Pakete, mit denen Sie Bilder bearbeiten und scannen können. + Este grupo incluye paquetes que le permitirán manipular y escanera imágenes. + Ce groupe comprend des paquetages qui vous aident à manipuler et scanner des images. + Þessi hópur inniheldur pakka sem gera þér kleyft að skanna og breyta myndum. + Questo gruppo include i pacchetti per la manipolazione e la scansione delle immagini. + ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«ã¯ã‚¤ãƒ¡ãƒ¼ã‚¸ã®å‡¦ç†ã¨ã‚¹ã‚­ãƒ£ãƒ³ã‚’手ä¼ã†ãƒ‘ッケージãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚ + ì´ ê·¸ë£¹ì— í¬í•¨ëœ 패키지는 ì´ë¯¸ì§€ë¥¼ 스캔, ì¡°ìž‘ ìž‘ì—…ì„ ë„와드립니다. + Denne gruppen inneholder pakker for manipulering og innscanning av bilder. + Este grupo inclui pacotes que o ajudam a manipular e digitalizar imagens. + Эта группа Ñодержит Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½ÐµÐ¾Ð±Ñ…Ð¾Ð´Ð¸Ð¼Ñ‹Ðµ Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Ð³Ñ€Ð°Ñ„Ð¸ÐºÐ¾Ð¹ и Ñканерами. + Denna grupp inkluderar paket som hjälper dig manipulera och läsa in bilder. + 这组软件包包括用æ¥å¸®åŠ©æ‚¨æ“作和扫æå›¾åƒçš„软件包。 + 這個群組包括了幫助您處ç†èˆ‡æŽƒæå½±åƒçš„套件。 + true + true + + base + base-x + + + ImageMagick + sane-frontends + xsane + xsane-gimp + dia + gimp + gimp-data-extras + gtkam + gtkam-gimp + kamera + kcoloredit + kiconedit + kooka + kpaint + kuickshow + netpbm-progs + xfig + + + + + + office + Office/Productivity + Kancelář/produktivita + Kontorprogrammel + Office/Produktivität + Oficina/Productividad + Bureau/Productivité + Skrifstofuforrit + Office/Produttività + Office/生産性 + 사무/ìƒì‚°ì„± + Kontor/Produktivitet + Escritório/Produtividade + ОфиÑные Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ + Kontorsprogramvara + 办公/生产率 + 辦公軟體/作業軟體 + The applications include office suites, PDF viewers, and more. + Aplikace zahrnují kancelářské balíky, prohlížeÄe PDF atd. + Programmerne inkluderer suiter med kontorprogrammel, PDF-visere, med mere. + Die Anwendungen enthalten Office-Programme, PDF-Anzeigeprogramme u.v.m. + Las aplicaciones incluyen los paquetes de ofimática, los visualizadores de PDF y mucho más. + Les applications comprennent des suites de bureau, des afficheurs PDF et bien plus encore. + Forritin innihalda meðal annars skrifstofutól, PDF sjár og fleira. + Le applicazioni includono pacchetti per l'ufficio, programmi per visualizzare i PDF e altro. + アプリケーションã«ã¯ã€ã‚ªãƒ•ィスセットã€PDFビューアåŠã³ãã®ä»–ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚ + ì´ ì‘ìš© í”„ë¡œê·¸ëž¨ì€ ì‚¬ë¬´ìš© 프로그램 모ìŒ, PDF 보기 프로그램 ë“±ì„ í¬í•¨í•©ë‹ˆë‹¤. + Applikasjonene innerholder kontorstøtteprogrammer, PDV-lesere og mer. + As aplicações incluem pacotes de escritório, visualizadores de PDF e outros. + Эта группа включает в ÑÐµÐ±Ñ Ð¾Ñ„Ð¸Ñные приложениÑ: редакторы текÑта, программы Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра PDF файлов, и проч. + Programmen inkluderar sviter med kontorsprogramvara, PDF-visare, med mera. + åŒ…æ‹¬çš„åº”ç”¨ç¨‹åºæœ‰åŠžå…¬å¥—ä»¶ã€PDF 查看器等等。 + 應用程å¼åŒ…括了辦公室套è£è»Ÿé«”ã€PDF 檢視器等等。 + true + true + + base-x + + + openoffice + xpdf + MagicPoint + abiword + ggv + gnumeric + gnucash + mrproject + kdepim-pilot + koffice + kdvi + kghostview + kfax + tetex-xdvi + + + + + mail-server + Mail Server + PoÅ¡tovní server + Postserver + Mail-Server + Servidor de correo + Serveur de courrier + Póstþjónn + Server Mail + メールサーム+ ë©”ì¼ ì„œë²„ + Eposttjener + Servidor de Mail + Сервер Ñлектронной почты + E-postserver + 邮件æœåС噍 + 郵件伺æœå™¨ + These packages allow you to configure an IMAP or Postfix mail server. + Tyto balíÄky Vám umožní nakonfigurovat server IMAP nebo poÅ¡tovní server Postfix. + Disse pakker lader dig konfigurere en IMAP- eller Postfix-postserver. + Mit diesen Paketen können Sie einen IMAP oder Postfix Mail-Server konfigurieren. + Estos paquetes le permiten configurar un servidor de correo IMAP o Postfix. + Ces paquetages vous permettent de configurer un serveur de courrier IMAP ou Postfix. + Þessir pakkar gera þér kleyft að setja upp IMAP eða Postfix pósthús. + Questi pacchetti consentono di configurare un server di posta IMAP o Postfix. + ã“れらã®ãƒ‘ッケージã§ã€IMAP ã‹ Postfixメールサーãƒã‚’設定ã§ãã¾ã™ã€‚ + ì´ íŒ¨í‚¤ì§€ëŠ” IMAPê³¼ Postfix ë©”ì¼ ì„œë²„ ì„¤ì •ì„ ë„와ì¤ë‹ˆë‹¤. + Disse pakkene lar deg konfigurere en IMAP eller Postfix eposttjener. + Este pacotes permitem-lhe configurar os servidores de mail IMAP ou Postfix. + Эти пакеты позволÑÑŽÑ‚ наÑтроить почтовый Ñервер IMAP или Postfix. + Dessa paket lÃ¥ter dig konfigurera en IMAP- eller Postfix-epostserver. + 这些软件包å…许您é…ç½® IMAP 或 Postfix 邮件æœåŠ¡å™¨ã€‚ + 這些套件讓您å¯ä»¥è¨­å®šä¸€å€‹ IMAP 或 Postfix 郵件伺æœå™¨ã€‚ + true + + base + + + sendmail + imap + sendmail-cf + mailman + spamassassin + squirrelmail + postfix + + + + + network-server + Network Servers + Síťové servery + Netværksservere + Netzwerk-Server + Servidores de red + Serveur de réseau + Netþjónustur + Server di rete + ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚µãƒ¼ãƒ + ë„¤íŠ¸ì›Œí¬ ì„œë²„ + Nettverkstjener + Servidores de Rede + Сетевые Ñерверы + Nätverksservrar + 网络æœåС噍 + 網路伺æœå™¨ + These packages include network-based servers such as CIPE, DHCP, and telnet. + Tyto balíÄky zahrnují síťové servery jako CIPE, DHCP a telnet. + Disse pakker inkluderer netværksbaserede servere som fx CIPE, DHCP og telnet. + Diese Pakete enthalten netzwerkbasierte Server wie CIPE, DHCP und telnet. + Estos paquetes incluyen servidores basados en la red tales como CIPE, DHCP, y telnet. + Ces paquetages comprennent des serveurs basés sur réseau comme CIPE, DHCP et telnet. + Þessir pakkar innihalda netþjónustur eins og CIPE, DHCP og telnet. + Questi pacchetti includono server network-based quali CIPE, DHCP e telnet. + ã“れらã®ãƒ‘ッケージã«ã¯ã€CIPE, DHCP, ã‚„ telnetãªã©ã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ™ãƒ¼ã‚¹ã®ã‚µãƒ¼ãƒãŒ å«ã¾ã‚Œã¦ã„ã¾ã™ã€‚ + ì´ íŒ¨í‚¤ì§€ì—는 CIPE, DHCP, telnetê³¼ ê°™ì€ ë„¤íŠ¸ì›Œí¬-기반 서버가 í¬í•¨ë˜ì–´ 있습니다. + Disse pakkene inkluderer nettverks-baserte tjenester som CIPE, DHCP og telnet. + Estes pacotes incluem servdores de rede como o CIPE, DHCP e telnet. + Эти пакеты включают в ÑÐµÐ±Ñ Ñ‚Ð°ÐºÐ¸Ðµ Ñетевые ÑервиÑÑ‹, как CIPE, DHCP и telet + Dessa paket inkluderar nätverksbaserade servrar som exempelvis CIPE, DHCP och telnet. + 这些软件包包括基于网络的æœåŠ¡å™¨ï¼Œä¾‹å¦‚ CIPEã€DHCPã€å’Œ telnet。 + 這些套件包括網路為主的伺æœå™¨ï¼Œä¾‹å¦‚ CIPE, DHCP 與 telnet。 + true + + base + + + amanda-server + am-utils + cipe + dhcp + finger-server + krb5-server + pxe + radvd + rsh-server + talk-server + telnet-server + ypserv + zebra + + + + + news-server + News Server + News server + Nyhedsgruppesserver + News-Server + Servidor de noticias + Serveur de news + Fréttaþjónn + Server news + ニュースサーム+ 뉴스 서버 + News-tjenere + Servidor de News + Сервер новоÑтей + Diskussionsgruppsserver + æ–°é—»æœåС噍 + æ–°èžä¼ºæœå™¨ + This group allows you to configure the system as a news server. + Tato skupina Vám umožní nakonfigurovat poÄítaÄ jako news server. + Denne gruppe lader dig konfigurere systemet som en nyhedsgruppesserver. + Mit dieser Gruppe können Sie das System als News-Server konfigurieren. + Este grupo le permite configurar el sistema como un servidor nuevo. + Ce groupe vous permet de configurer le système comme nouveau serveur. + Þessi tól gera þér kleyft að stilla vélina sem news þjón. + Questo gruppo consente di configurare il sistema come server news. + ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã§ã€ãƒ‹ãƒ¥ãƒ¼ã‚¹ã‚µãƒ¼ãƒã¨ã—ã¦ã‚·ã‚¹ãƒ†ãƒ ã‚’設定ã§ãã¾ã™ã€‚ + ì´ ê·¸ë£¹ì„ ì‚¬ìš©í•˜ì—¬ ì‹œìŠ¤í…œì„ ë‰´ìŠ¤ 서버로 설정하실 수 있습니다. + Disse verktøyene lar deg kjøre en news-tjener pÃ¥ systemet. + Este grupo permite-lhe configurar o sistema como um servidor de notícias. + Эта группа позволÑет иÑпользовать ÑиÑтему как Ñервер новоÑтей. + Denna grupp lÃ¥ter dig konfigurera systemet som en diskussionsgruppsserver. + 这组软件包å…许您把系统é…ç½®æˆæ–°é—»æœåŠ¡å™¨ã€‚ + 這個群組讓您å¯ä»¥è¨­å®šç³»çµ±ç‚ºä¸€éƒ¨æ–°èžä¼ºæœå™¨ã€‚ + true + + base + + + inn + + + + + smb-server + Windows File Server + Souborový server pro Windows + Windows-filserver + Windows Datei-Server + Servidor de ficheros Windows + Serveur de fichier Windows + Skráaþjónn fyrir Windows + File server Windows + Windowsファイルサーム+ Windows íŒŒì¼ ì„œë²„ + Filtjener for Windows + Servidor de Ficheiros Windows + Файловый Ñервер Ð´Ð»Ñ Windows + Windows-filserver + Windows 文件æœåС噍 + Windows 檔案伺æœå™¨ + This package group allows you to share files between Linux and MS Windows(tm) systems. + Tato skupina balíÄků Vám umožní sdílet soubory mezi systémy Linux a MS Windows (tm). + Denne pakkegruppe lader dig dele filer mellem Linux og system med MS Windows(tm). + Mit dieser Paketgruppe können Sie Dateien in Linux und MS Windows (tm) gemeinsam nutzen. + Este grupo de paquetes le permite compartir ficheros entre los sistemas Linux y MS Windows (tm). + Ce groupe de paquetages vous permet de partager des fichiers entre les systèmes Linux et Windows (m). + Þessi pakkahópur gerir þér kleyft að skiptast á skrám milli Linux og MS Windows véla. + Questo gruppo di pacchetti consente di condividere i file tra sistemi Linux e MS Windows(tm). + ã“ã®ãƒ‘ッケージグループã§ã€Linux 㨠MS Windows(tm) システムã®é–“ã§ãƒ•ァイルを共有 ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ + ì´ íŒ¨í‚¤ì§€ ê·¸ë£¹ì„ ì‚¬ìš©í•˜ì—¬ Linux와 MS Windows (tm) 시스템 사ì´ì—서 파ì¼ì„ 공유할 수 있습니다. + Denne pakkegruppen lar deg dele filer mellom Linux og MS Windows(tm)-systemer. + Este grupo de pacotes permite-lhe partilhar os ficheiros entre os sistemas Linux e MS Windows (tm). + Эта группа пакетов делает возможным доÑтуп к файлам между ÑиÑтемами Linux и MS Windows(tm). + Denna paketgrupp lÃ¥ter dig dela ut filer mellan Linux och system med MS Windows(tm). + 该软件包组å…许您在 Linux å’Œ MS Windows(tm) 系统间共享文件。 + 這個套件群組使您å¯ä»¥åœ¨ Linux 與 MS Windows (tm) 系統間共享檔案。 + true + + base + + + samba-client + samba + + + + + server-cfg + Server Configuration Tools + Nástroje pro konfiguraci serveru + Serverkonfigurationsværktøjer + Server Konfigurationstools + Herramientas de configuración del servidor + Outils de configuration de serveur + Stillingatól fyrir þjóna + Tool di configurazione del server + サーãƒè¨­å®šãƒ„ール + 서버 설정 ë„구 + Konfigurasjonsverktøy for tjenere + Ferramentas de Configuração de Servidores + СредÑтва наÑтройки Ñервера + Serverkonfigurationsverktyg + æœåС噍é…置工具 + 伺æœå™¨è¨­å®šå·¥å…· + This group contains all of Red Hat's custom server configuration tools. + Tato skupina obsahuje vÅ¡echny nástroje pro konfiguraci serveru od spoleÄnosti Red Hat. + Denne gruppe indholder alle Red Hats specialtilpassede serverkonfigureringsværktøjer. + Diese Gruppe enthält alle Tools für die benutzerdefinierte Konfiguration des Servers von Red Hat. + Este grupo contiene todas las herramientas de configuración del servidor de personalización de Red Hat. + Ce groupe contient tous les outils de configuration du serveur personnalisé Red Hat. + Þessi hópur inniheldur öll Red Hat stillingatólin. + Questo gruppo contiene tutti gli strumenti per personalizzare la configurazione del server Red Hat. + ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«ã¯ã€å…¨ã¦ã®Red Hatカスタムサーãƒè¨­å®šãƒ„ールãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚ + ì´ ê·¸ë£¹ì—는 Red Hatì˜ ì‚¬ìš©ìž ì„¤ì • 서버 설정 ë„구가 ëª¨ë‘ í¬í•¨ë˜ì–´ 있습니다. + Denne gruppen inneholder Red Hats konfigurasjonsverktøy. + Este grupo contém todas as ferramentas de configuração de servidores da Red Hat. + Эта группа включает в ÑÐµÐ±Ñ Ð²Ñе ÑредÑтва админиÑÑ‚Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñервера, напиÑанные в Red Hat. + Denna grupp innehÃ¥ller alla Red Hats specialanpassade serverkonfigurationsverktyg. + è¿™ç»„è½¯ä»¶åŒ…åŒ…å«æ‰€æœ‰ Red Hat 的定制æœåС噍é…置工具。 + 這個群組包括所有 Red Hat 自訂的伺æœå™¨è¨­å®šå·¥å…·ã€‚ + true + + base + + + redhat-config-bind + redhat-config-httpd + redhat-config-nfs + redhat-config-network + redhat-config-printer + redhat-config-printer-gui + redhat-config-securitylevel + redhat-config-services + redhat-switch-printer + redhat-switch-printer-gnome + redhat-switchmail + redhat-switchmail-gnome + + + + + ftp-server + FTP Server + FTP server + FTP-server + FTP-Server + Servidor FTP + Serveur FTP + FTP þjónn + Server FTP + FTP サーム+ FTP 서버 + FTP-tjener + Servidor FTP + Сервер FTP + FTP-server + FTP æœåС噍 + FTP 伺æœå™¨ + These tools allow you to run an FTP server on the system. + Tyto nástroje Vám umožní na poÄítaÄi provozovat FTP server. + Disse værktøjer lader dig køre en FTP-server pÃ¥ systemet. + Mit diesen Tools können Sie einen FTP-Server im System ausführen. + Estas herramientas le permiten ejecutar un servidor FTP en el sistema. + Ces outils vous permettent d'exécuter un serveur FTP sur le système. + Þessi tól gera þér kleyft að keyra FTP þjón á vélinni. + Questi strumenti consentono di eseguire un server FTP sul sistema. + ã“れらã®ãƒ„ールã§ã‚·ã‚¹ãƒ†ãƒ ä¸Šã®FTPサーãƒã‚’実行ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ + ì´ ë„구를 사용하여 시스템 ìƒì—서 FTP 서버를 ìš´ì˜í•˜ì‹¤ 수 있습니다. + Disse verktøyene lar deg kjøre en ftp-tjener pÃ¥ systemet. + Estas ferramentas permitem-lhe correr um servidor FTP no seu computador. + Эти ÑредÑтва позволÑÑŽÑ‚ иÑпользовать ÑиÑтему как Ñервер FTP. + Dessa verktyg lÃ¥ter dig köra en FTP-server pÃ¥ systemet. + 这些工具å…许您在系统上è¿è¡Œ FTP æœåŠ¡å™¨ã€‚ + 這些工具讓您å¯ä»¥åœ¨ç³»çµ±ä¸ŠåŸ·è¡Œä¸€å€‹ FTP 伺æœå™¨ã€‚ + true + + base + + + anonftp + vsftpd + + + + + sql-server + SQL Database Server + Databázový server SQL + SQL-databaseserver + SQL Datenbank-Server + Servidor de la base de datos SQL + Serveur de base de données SQL + SQL gagnagrunnur + Server per database SQL + SQLデータベースサーム+ SQL ë°ì´í„°ë² ì´ìФ 서버 + Database-tjener + Servidor de Base de Dados SQL + Сервер базы данных SQL + SQL-databasserver + SQL æ•°æ®åº“æœåС噍 + SQL 資料庫伺æœå™¨ + This package group allows you to run an SQL server on the system. + Tato skupina balíÄků Vám umožní na poÄítaÄi provozovat SQL server. + Denne pakkegruppe lader dig køre en SQL-server pÃ¥ systemet. + Mit dieser Paketgruppe können Sie einen SQL-Server im System ausführen. + Este grupo de paquetes le permite ejecutar un servidor SQL en el sistema. + Ce groupe de paquetages vous permet d'exécuter un serveur SQL sur le système. + Þessi pakkahópur gerir þér kleyft að keyra SQL þjónustu. + Questo gruppo di pacchetti consente di eseguire un server SQL sul sistema. + ã“ã®ãƒ‘ッケージグループã§ã€ã‚·ã‚¹ãƒ†ãƒ ä¸Šã®SQLサーãƒã‚’実行ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ + ì´ íŒ¨í‚¤ì§€ ê·¸ë£¹ì„ ì‚¬ìš©í•˜ì—¬ 시스템 ìƒì—서 SQL 서버를 ìš´ì˜í•˜ì‹¤ 수 있습니다. + Denne pakkegruppen lar deg kjøre en database-tjenere pÃ¥ systemet. + Este grupo de pacotes permite-lhe correr um servidor SQL no seu sistema. + Ð’ Ñту группу включены различные SQL Ñерверы. + Denna paketgrupp lÃ¥ter dig köra en SQL-server pÃ¥ systemet. + 该软件包组å…许您在系统上è¿è¡Œ SQL æœåŠ¡å™¨ã€‚ + 這個套件群組讓您å¯ä»¥åœ¨ç³»çµ±ä¸ŠåŸ·è¡Œä¸€éƒ¨ SQL 伺æœå™¨ã€‚ + true + + base + + + postgresql-server + unixODBC + perl-DBD-Pg + perl-DB_File + mysql-server + + + + + web-server + Web Server + WWW server + Webserver + Web-Server + Servidor Web + Serveur Web + Vefþjónn + Server Web + Webサーム+ 웹 서버 + Webtjener + Servidor Web + Веб-Ñервер + Webbserver + 万维网æœåС噍 + ç¶²é ä¼ºæœå™¨ + These tools allow you to run a Web server on the system. + Tyto nástroje Vám umožní na poÄítaÄi provozovat WWW server. + Disse værktøjer lader dig køre en webserver pÃ¥ systemet. + Mit diesen Tools können Sie einen Web-Server im System ausführen. + Estas herramientas le permiten ejecutar un servidor Web en el sistema. + Ces outils vous permettent d'exécuter un serveur Web sur le système. + Þessi tól gera þér kleyft að keyra vefþjón á vélinni. + Questi strumenti consentono di eseguire un server Web sul sistema. + ã“れらã®ãƒ„ールã§ã‚·ã‚¹ãƒ†ãƒ ä¸Šã®Webサーãƒã‚’実行ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ + ì´ ë„구를 사용하여 시스템 ìƒì—서 웹서버를 ìš´ì˜í•˜ì‹¤ 수 있습니다. + Disse verktøyene lar deg kjøre en web-tjener pÃ¥ systemet. + Estas ferramentas permitem-lhe correr um servidor Web no seu computador. + Эти ÑредÑтва позволÑÑŽÑ‚ иÑпользовать ÑиÑтему как Веб-Ñервер + Dessa verktyg lÃ¥ter dig köra en webbserver pÃ¥ systemet. + 这些工具å…许您在系统生è¿è¡Œä¸‡ç»´ç½‘æœåŠ¡å™¨ã€‚ + 這些工具讓您å¯ä»¥åœ¨ç³»çµ±ä¸ŠåŸ·è¡Œä¸€å€‹ç¶²é ä¼ºæœå™¨ã€‚ + true + + base + + + httpd + httpd-manual + hwcrypto + mod_python + mod_perl + mod_ssl + php + php-imap + php-ldap + php-pgsql + mod_auth_pgsql + squid + tux + webalizer + + + + + dns-server + DNS Name Server + Jmenný server DNS + DNS-navneserver + DNS Name-Server + Servidor del nombre DNS + Nom de serveur DNS + DNS nafnaþjónn + Nome server DNS + DNSãƒãƒ¼ãƒ ã‚µãƒ¼ãƒ + DNS ì´ë¦„ 서버 + DNS-tjener + Servidor de Nomes DNS + Сервер DNS + DNS-namnserver + DNS åç§°æœåС噍 + DNS å稱伺æœå™¨ + This package group allows you to run a DNS name server (BIND) on the system. + Tato skupina balíÄků Vám umožní na poÄítaÄi provozovat jmenný server DNS (BIND). + Denne pakkegruppe lader dig køre en DNS-navneserver (BIND) pÃ¥ systemet. + Mit dieser Paketgruppe können Sie einen DNS Name-Server (BIND) im System ausführen. + Este paquete le permite ejecutar un servidor de nombre DNS (BIND) en el sistema. + Ce groupe de paquetages vous permet d'exécuter un nom de serveur DNS (BIND) sur le système. + Þessi pakkahópur gerir þér kleyft að keyra DNS nafnaþjón (BIND) á vélinni þinni. + Questo gruppo di pacchetti consente di eseguire un name server DNS (BIND) sul sistema. + ã“ã®ãƒ‘ッケージグループã§ã€ã‚·ã‚¹ãƒ†ãƒ ä¸Šã®DNSãƒãƒ¼ãƒ ã‚µãƒ¼ãƒ(BIND)を実行ã§ãã¾ã™ã€‚ + ì´ íŒ¨í‚¤ì§€ ê·¸ë£¹ì„ ì‚¬ìš©í•˜ì—¬ 시스템 ìƒì—서 DNS ì´ë¦„ 서버 (BIND)를 ìš´ì˜í•˜ì‹¤ 수 있습니다. + Denne pakkegruppen lar deg kjøre en DNS-tjener (BIND) pÃ¥ systemet. + Este grupo de pacotes permite-lhe correr um servidor de nomes de DNS (o BIND) no sistema. + Пакеты в Ñтой группе позволÑÑ‚ вам уÑтановить и наÑтроить DNS (BIND). + Denna paketgrupp lÃ¥ter dig köra en DNS-namnserver (BIND) pÃ¥ systemet. + 该软件包组å…许您在系统上è¿è¡Œ DNS åç§°æœåС噍(BIND)。 + 這個套件群組讓您å¯ä»¥åœ¨ç³»çµ±ä¸ŠåŸ·è¡Œä¸€éƒ¨ DNS å稱伺æœå™¨ (BIND)。 + true + + base + + + caching-nameserver + bind + + + + + authoring-and-publishing + Authoring and Publishing + TvoÅ™ení a publikování + Forfatterskab og publicering + Authoring und Publishing + Autorización y publicación + Authoring et Publishing + Umbrot og ritstörf + Authoring e publishing + 著作ã¨ç™ºè¡Œ + 제작과 ì¶œíŒ + Tekstpublisering + Autoria e Publicação + Подготовка публикаций + Författande och publicering + 授æƒå’Œå‡ºç‰ˆ + 編寫與出版 + These tools allow you to create documentation in the DocBook format and convert them to HTML, PDF, Postscript, and text. + Tyto nástroje Vám umožní vytvářet dokumentaci ve formátu DocBook a konvertovat ji do HTML, PDF, Postscriptu a textu. + Disse værktøjer lader dig skabe dokumentation i DocBook-formatet og konvertere dem til HTML, PDF, Postscript og tekst. + Mit diesen Tools können Sie Dokumentation im DocBook Format anlegen und diese in die Formate HTML, PDF, Postscript und Text konvertieren. + Estas herramientas le permiten crear documentación en formato DocBook y convertirla a HTML, PDF, Postscript y texto. + Ces outils vous permettent de créer de la documentation sous format DocBook et de la convertir en HTML, PDF, Postscript et texte. + Þessi tól gera þér kleyft að búa til skjöl á DocBook sniði og breyta þeim í HTML, PDF, Postscript og texta. + Questi strumenti consentono di creare documenti in formato DocBook e di convertirli in HTML, PDF, Postscript e testo. + ã“れらã®ãƒ„ールã§ã€DocBookå½¢å¼ã§æ–‡æ›¸ã‚’作æˆã—ã¦ã€ãれらをHTML, PDF, Postscript, åŠã³ textã¸å¤‰æ›ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚. + ì´ ë„구를 사용하여 DocBook 형ì‹ì˜ 문서를 ìƒì„±í•˜ì‹¤ 수 있으며 ìƒì„±ëœ 문서를 HTML, PDF, Postscript와 í…스트 형ì‹ìœ¼ë¡œ 변환하실 수 있습니다. + Disse verktøyene lar deg lage dokumentasjon i DocBook-formatet og konvertere dem til HTML, PDF, Postscript og tekst. + Estas ferramentas permitem-lhe criar a documentação no formato DocBook e convertê-la para HTML, PDF, PostScript e texto. + Эти ÑредÑтва позволÑÑŽÑ‚ Ñоздавать документацию в формате DocBook и преобразовывать в HTML, PDF, Postscript и текÑÑ‚. + Dessa verktyg lÃ¥ter dig skapa dokumentation i DocBook-formatet och konvertera dem till HTML, PDF, Postscript och text. + 这些软件包å…许您创建 DocBook æ ¼å¼çš„æ–‡æ¡£ï¼Œå¹¶å°†å®ƒä»¬è½¬æ¢æˆ HTML〠PDFã€Postscript 和文本格å¼ã€‚ + 這些工具讓您å¯ä»¥å»ºç«‹ DocBook æ ¼å¼çš„說明文件,並且 將它們轉æ›ç‚º HTML, PDF, Postscript 與文字。 + true + + base + + + docbook-dtds + docbook-style-dsssl + docbook-utils + docbook-utils-pdf + linuxdoc-tools + tetex + tetex-afm + tetex-xdvi + tetex-latex + xmlto + + + + + engineering-and-scientific + Engineering and Scientific + VÄ›decké nástroje + Ingeniør- og naturvidenskab + Engineering und Wissenschaft + Ingeniería y científico + Engineering et Scientifique + Vísindi og verkfræði + Settori engineering e scientifico + 技術系ã¨ç§‘学系 + 공학과 과학 + Vitenskapelige programmer + Engenharia e Ciência + Ðаучные и инженерные + Konstruktion och forskning + 工程和科学 + 工程與科學 + This group includes packages for performing mathematical and scientific computations and plotting, as well as unit conversion. + Tato skupina obsahuje balíÄky pro provádÄ›ní matematických a vÄ›deckých výpoÄtů, tvorbu grafů a pÅ™evod mezi jednotkami. + Denne gruppe indeholder pakker for udførsel af matematiske og videnskabelige beregninger og diagramtegning sÃ¥vel som enhedskonvertering. + Diese Gruppe enthält Pakete für mathematische und wissenschaftliche Berechnungen und Plotting sowie die Konversion von Einheiten. + El grupo incluye paquetes para ejecutar cálculos matemáticos y científicos y trazados, así como la conversión de la unidad. + Ce groupe comprend les paquetages pour exécuter des calculs mathématiques et scientifiques, le traçage et la conversion des unités. + Þessi hópur inniheldur pakka til að framkvæma stærðfræði og vísindaútreikninga ásamt tólum til að umbreyta milli eininga. + Questo gruppo include i pacchetti per l'esecuzione e il plotting di operazioni matematiche e scientifiche, nonché la conversione di unità. + ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«ã¯ã€ãƒ¦ãƒ‹ãƒƒãƒˆå¤‰æ›ã¨å…±ã«ã€æ•°å­¦çš„åŠã³ç§‘å­¦çš„ãªæ¼”ç®—ã¨ãƒ—ロッティングを 実践ã™ã‚‹ç‚ºã®ãƒ‘ッケージãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚ + ì´ ê·¸ë£¹ì€ ë‹¨ìœ„ 변환 ê¸°ëŠ¥ì„ ë¹„ë¡¯í•˜ì—¬ 수학 계산과 과학 ê³„ì‚°ì„ ìˆ˜í–‰í•˜ê³  출력하는 패키지를 í¬í•¨í•©ë‹ˆë‹¤. + Denne gruppen inneholder pakker for Ã¥ utføre matematiske og vitenskapelige beregninger/visualiseringer samt enhetskonverteringer. + Este grupo inclui os pacotes para efecutar cálculos matemáticos e científicos, apresentá-los e efectuar a conversão de unidades. + Эта группа Ñодержит Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¼Ð°Ñ‚ÐµÐ¼Ð°Ñ‚Ð¸Ñ‡ÐµÑких и прочих научных вычиÑлений и преобразований. + Denna grupp inkluderar paket för utförande av matematiska och vetenskapliga beräkningar och diagramritning sÃ¥väl som enhetskonvertering. + è¿™ç»„è½¯ä»¶åŒ…åŒ…æ‹¬ç”¨æ¥æ‰§è¡Œæ•°å­¦å’Œç§‘学计算ã€ç»˜å›¾ã€ä»¥åŠè®¡é‡å•ä½è½¬æ¢çš„软件包。 + 這個群組包括的套件å¯ç”¨ä¾†åŸ·è¡Œæ•¸å­¸èˆ‡ç§‘學的計算與繪圖,以åŠå–®ä½çš„æ›ç®—ã€‚ + true + + base + + + blas + gnuplot + lam + lapack + octave + pvm + units + + + + + + editors + Editors + Editory + Tekstredigering + Editoren + Editores + Editeurs + Ritlar + Editor + エディタ + 편집기 + Editorer + Editores + Редакторы + Textredigerare + 编辑器 + 編輯器 + Sometimes called text editors, these are programs that allow you to create and edit files. These include Emacs and Vi. + NÄ›kdy oznaÄované jako textové editory, tyto programy Vám umožní vytvářet a upravovat soubory. Tato skupina zahrnuje Emacs a Vi. + Dette er programmer som lader dig skabe og redigere filer, og de kaldes ofte for tekstredigerere. Disse inkluderer Emacs og Vi. + Diese auch Text-Editoren genannten Programme ermöglichen das Anlegen und Bearbeiten von Dateien. Dazu gehören Emacs und Vi. + Existen programas que permiten crear y modificar ficheros, a veces llamados editores de texto. Estos incluyen Emacs y Vi. + Parfois appelés éditeurs de texte, ces programmes vous permettent de créer et d'éditer des fichiers. Ils comprennent Emacs et Vi. + Forrit sem kallast ritlar. Þetta eru tólin sem gera þér kleyft að búa til og breyta skrám. Þetta inniheldur meðal annars Emacs og Vi. + Talvolta definiti editor di testo, questi programmi consentono di creare emodificare i file. Sono inclusi Emacs e Vi. + 時ã«ã¯ãƒ†ã‚­ã‚¹ãƒˆã‚¨ãƒ‡ã‚£ã‚¿ã¨å‘¼ã°ã‚Œã‚‹ãƒ•ァイルを作æˆã¨ç·¨é›†ã§ãるプログラム㌠ã‚りã¾ã™ã€‚ã“れらã«ã¯Emacs 㨠ViãŒå«ã¾ã‚Œã¾ã™ã€‚ + ê°€ë”씩 í…스트 편집기ë¼ê³ ë„ 불리우는 ì´ í”„ë¡œê·¸ëž¨ì€ íŒŒì¼ì„ ìƒì„±í•˜ê³  íŽ¸ì§‘í•˜ëŠ”ë° ì‚¬ìš©ë©ë‹ˆë‹¤. ì´ëŸ¬í•œ 프로그램ì—는 Emacs와 Viê°€ í¬í•¨ë©ë‹ˆë‹¤. + Disse programmene, ofte kalt teksteditorer, lar deg lage og redigere filer. Emacs og Vi er inkludert her. + Normalmente chamados editores de texto, estes programas permite-lhe criar e editar ficheiros. Inclui o Emacs e o Vi. + Эти программы, иногда называемые текÑтовыми редакторами, позволÑÑŽÑ‚ редактировать текÑты. Включают Emacs and Vi. + Detta är program som lÃ¥ter dig skapa och redigera filer, och kallas ofta textredigerare. Dessa inkluderar Emacs och Vi. + 有时å«åšæ–‡æœ¬ç¼–è¾‘å™¨ã€‚å®ƒä»¬æ˜¯å…许您创建和编辑文件的程åºã€‚包括 Emacs å’Œ Vi。 + 這些是讓您å¯ä»¥å»ºç«‹èˆ‡ç·¨è¼¯æª”案的程å¼ï¼Œæœ‰æ™‚候稱為文字編輯器。 這些包括了 Emacs 與 Vi。 + true + + base + emacs + xemacs + + + vim-enhanced + + + + + + emacs + Emacs + Emacs + Emacs + Emacs + Emacs + Emacs + Emacs + Emacs + Emacs + Emacs + Emacs + Emacs + Emacs + Emacs + Emacs + Emacs + The GNU Emacs text editor. + Textový editor GNU Emacs. + Tekstredigereren GNU Emacs. + Der Text-Editor GNU Emacs. + Editor de textos Emacs de GNU. + Editeur de texte GNU Emacs. + GNU Emacs ritillinn. + Editor di testo GNU Emacs. + GNU Emacsテキストエディタ + GNU Emacs í…스트 편집기. + Teksteditoren GNU Emacs. + O editor de texto GNU Emacs. + ТекÑтовый редактор GNU Emacs. + Textredigeraren GNU Emacs. + GNU Emacs 文本编辑器 + GNU Emacs 文字編輯器。 + false + + base + + + emacs + emacs-leim + psgml + + + + + xemacs + XEmacs + XEmacs + XEmacs + XEmacs + XEmacs + XEmacs + XEmacs + XEmacs + XEmacs + XEmacs + XEmacs + XEmacs + XEmacs + XEmacs + XEmacs + XEmacs + The XEmacs text editor. + Textový editor XEmacs. + Tekstredigereren XEmacs. + Der Text-Editor XEmacs. + Editor de textos de XEmacs. + Editeur de texte XEmacs. + XEmacs ritillinn. + Editor di testo XEmacs. + XEmacsテキストエディタ + XEmacs í…스트 편집기. + Teksteditoren XEmacs. + O editor de texto XEmacs. + ТекÑтовый редактор XEmacs + Textredigeraren XEmacs. + XEmacs 文本编辑器 + XEmacs 文字編輯器。 + false + + base + + + xemacs + xemacs-el + xemacs-info + + + + + system-tools + System Tools + Systémové nástroje + Systemværktøjer + Systemtools + Herramientas del sistema + Outils de système + Kerfistól + Tool di sistema + システムツール〠+ 시스템 ë„구 + Systemverktøy + Ferramentas do Sistema + СиÑтемные ÑредÑтва + Systemverktyg + 系统工具 + 系統工具 + This group is a collection of various tools for the system, such as the client for connecting to SMB shares and tools to monitor network traffic. + Tato skupina je soubor různých systémových nástrojů, napÅ™. klient pro pÅ™ipojení ke svazkům SMB a nástroje pro sledování síťového provozu. + Denne gruppe er en samling med diverse værktøjer til systemet, som fx klienten for tilslutning til SMB-delinger og værktøjer for overvÃ¥gning af netværkstrafik. + Diese Gruppe bietet eine Reihe Systemtools wie beispielsweise den Client für die Verbindung zu SMB-Shares sowie Tools für die Kontrolle des Netzwerkverkehrs. + Este grupo es una colección de varias herramientas para el sistema, tales como el cliente para conectarse a las particiones SMB y herramientas para monitorizar el tráfico de redes. + Ce groupe est un ensemble de différents outils pour le système, ainsi qu'un client pour la connexion aux parts SMB et d'outils permettant de gérer le trafic dans le réseau. + Þessi hópur inniheldur safn kerfistóla eins og til dæmis tól til að tengjast SMB deildum og tól til að fylgjast með umferð á neti. + Questo gruppo è una raccolta di vari strumenti per il sistema, che comprende ilclient per la connessione alle partizioni SMB e gli strumenti per monitorare il traffico di rete. + ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã¯ã€SMBå…±æœ‰ã¸æŽ¥ç¶šã™ã‚‹ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã‚„ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯é€šä¿¡é‡ã‚’モニタã™ã‚‹ ツールãªã©ã®ã‚·ã‚¹ãƒ†ãƒ ç”¨ã®å„種ツールã®ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³ã§ã™ã€‚ + ì´ ê·¸ë£¹ì€ SMB ê³µìœ ì— ì ‘ì†í•˜ëŠ”ë° ì‚¬ìš©ë˜ëŠ” í´ë¼ì´ì–¸íŠ¸ì™€ ë„¤íŠ¸ì›Œí¬ ì†Œí†µëŸ‰ì„ ê°ì‹œí•˜ëŠ” ë„구와 ê°™ì€ ë‹¤ì–‘í•œ 시스템 ë„구 모ìŒìž…니다. + Denne gruppen er en samling av ulike systemverktøy, som oppkobling mot SMB-ressurser og nettverksovervÃ¥kning. + Este grupo é uma colecção de ferramentas para o sistema, tal como o cliente para se ligar a partilhas de SMB e as ferramentas para monitorizar o tráfego de rede. + Эта группа Ñодержит различные ÑиÑтемные утилиты: например, Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð´Ð¾Ñтупа к SMB Ñерверам, и программы Ð´Ð»Ñ Ð¼Ð¾Ð½Ð¸Ñ‚Ð¾Ñ€Ð¸Ð½Ð³Ð° Ñетевого траффика. + Denna grupp är en samling med diverse verktyg för systemet, som exempelvis klienten för anslutning till SMB-utdelningar och verktyg för övervakning av nätverkstrafik. + 这组软件包是å„类系统工具的集åˆï¼Œè­¬å¦‚:连接 SMB 共享的客户;监控网络交通的工具。 + 這個群組是系統上許多種工具的收集,例如用來連線到 SMB 共享的用戶端, 以åŠç”¨ä¾†ç›£è¦–網路æµé‡çš„工具。 + true + + amanda-client + ethereal + ethereal-gnome + gnome-lokkit + nmap + nmap-frontend + rdesktop + samba-client + shapecfg + vnc + xdelta + mc + screen + + + + + admin-tools + Administration Tools + Nástroje pro administraci + Administrationsværktøjer + Verwaltungstools + Herramientas de administración + Outils d'administration + Kerfisstjórnunartól + Strumenti amministrativi + 管ç†ãƒ„ール + 관리 ë„구 + Administrasjonsverktøy + Ferramentas de Administração + СредÑтва админиÑÑ‚Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ + Administrationsverktyg + 管ç†å·¥å…· + 管ç†å·¥å…· + This group is a collection of graphical administration tools for the system, such as for managing user accounts and configuring system hardware. + Tato skupina je soubor grafických nástrojů administrace, napÅ™. pro správu uživatelských úÄtů a nastavení hardware poÄítaÄe. + Denne gruppe er en samling grafiske administrationsværktøjer for systemet, som fx behandling af brugerkonti og konfiguration af systemudstyr. + Diese Gruppe bietet eine Reihe von grafische Verwaltungstools für das System, darunter Tools für die Verwaltung von Benutzeraccounts und die Konfiguration der Systemhardware. + Este grupo es una colección de herramientas de administración gráficas, tales como cuentas de usuario de gestión y configuración del hardware del sistema. + Ce groupe est un ensemble d'outils d'administration graphique pour le système, ainsi que pour la gestion des comptes utilisateurs et la configuration du matériel système. + Þessi hópur inniheldur safn myndrænna kerfisstjórnunartóla fyrir vélina eins og til dæmis tól til að vinna með notendur og stilla vélbúnað. + Questo gruppo è una raccolta di tool per la gestione della grafica del sistema, che consente di gestire gli account utente e di configurare l'hardware di sistema. + ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã¯ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’管ç†ã—ãŸã‚Šã€ã‚·ã‚¹ãƒ†ãƒ ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚’設定ã—ãŸã‚Šã™ã‚‹ システムã®ç‚ºã®ã‚°ãƒ©ãƒ•ィカル管ç†ãƒ„ールã®ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³ã§ã™ã€‚ + ì´ ê·¸ë£¹ì€ ì‚¬ìš©ìž ê³„ì •ì„ ê´€ë¦¬í•˜ê³  시스템 하드웨어를 설정하는 그래픽 시스템 관리 ë„구 모ìŒìž…니다. + Denne gruppen er en samling av grafiske administrasjonsverktøy for systemet, inkludert brukeradministrasjon og hardwarekonfigurering. + Este grupo é uma colecção de ferramentas gráficas de administração para o sistema, tal como a gestão das contas de utilizadores e configurar o 'hardware' do sistema. + Эта группа Ñодержит графичеÑкие Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð½Ð°Ñтройки ÑиÑтемы. С помощью Ñтих приложений можно добавить новых пользователей, наÑтроить звук, разрешение Ñкрана, и проч. + Denna grupp är en samling grafiska administrationsverktyg för systemet, som exempelvis hantering av användarkonton och konfiguration av systemhÃ¥rdvara. + 这组软件包包括一个系统图形化管ç†å·¥å…·çš„集åˆï¼Œè­¬å¦‚:管ç†ç”¨æˆ·å¸å·å’Œé…置系统硬件。 + 這個群組是系統中圖形管ç†å·¥å…·çš„æ”¶é›†ï¼Œä¾‹å¦‚用來管ç†ä½¿ç”¨è€…帳號與 設定系統硬體。 + true + + authconfig-gtk + redhat-config-date + redhat-config-keyboard + redhat-config-kickstart + redhat-config-language + redhat-config-mouse + redhat-config-rootpassword + redhat-config-soundcard + redhat-config-users + redhat-config-packages + redhat-config-proc + redhat-logviewer + + + + + games + Games and Entertainment + Hry a zábava + Spil og underholdning + Spiele und Zeitvertreib + Juegos y entretenimiento + Jeux et Divertissements + Leikir og skemmtun + Giochi e divertimento + ゲームã¨å¨¯æ¥½ + 게임과 ì˜¤ë½ + Spill og underholdning + Jogos e Entretenimento + Игры и Ñ€Ð°Ð·Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ + Spel och underhÃ¥llning + 游æˆå’Œå¨±ä¹ + éŠæˆ²èˆ‡å¨›æ¨‚ + Various ways to relax and spend your free time. + Různé způsoby, jak relaxovat a trávit volný Äas. + Diverse mÃ¥der at slappe af og bruge fritiden. + Verschiedene Möglichkeiten zur Entspannung und zum Zeitvertreib. + Maneras de relajarse y pasar el tiempo libre. + Différentes manières de vous relaxer et de passer le temps. + Ãmslegt til að slappa af yfir og eyða lausum tíma. + Vari modi per rilassarsi e passare il tempo libero. + リラックスã—ã¦æš‡ãªæ™‚é–“ã‚’éŽã”ã™ã„ã‚ã„ã‚ãªæ–¹æ³• + 휴ì‹ì„ 취하면서 여가 ì‹œê°„ì„ ë³´ë‚¼ 수 있는 다양한 방법. + Forskjellige mÃ¥ter Ã¥ slappe av og fordrive fritiden. + Várias maneiras de relaxar e passar o seu tempo livre. + Различные ÑпоÑобы раÑÑлабитьÑÑ Ð¸ провеÑти Ñвободное времÑ. + Diverse sätt att slappna av och fördriva ledig tid. + 放æ¾å’Œæ‰“呿—¶é—´çš„途径。 + è¨±å¤šç¨®è®“æ‚¨æ”¾é¬†ä»¥åŠæ¶ˆç£¨æ™‚間的方法。 + true + + base + + + fortune-mod + joystick + Maelstrom + chromium + freeciv + tuxracer + xboard + gnome-games + kdegames + + + + + ISO8859-2-support + ISO8859-2 Support + Podpora pro ISO8859-2 + Understøttelse for ISO8-859-2 + ISO8859-2 Support + Soporte ISO8859-2 + Support ISO8859-2 + ISO8859-2 stuðningur + Supporto ISO8859-2 + ISO8859-2 サãƒãƒ¼ãƒˆ + ISO8859-2 ì§€ì› + Støtte for ISO8859-2 + Suporte a ISO8859-2 + Поддержка ISO8859-2 + Stöd för ISO8859-2 + ISO8859-2 æ”¯æŒ + ISO8859-2 æ”¯æ´ + false + + fonts-ISO8859-2 + fonts-ISO8859-2-75dpi + fonts-ISO8859-2-100dpi + + + + + ISO8859-9-support + ISO8859-9 Support + Podpora pro ISO8859-9 + Understøttelse for ISO-8859-9 + ISO8859-9 Support + Soporte ISO8859-9 + Support ISO8859-9 + ISO8859-9 stuðningur + Supporto ISO8859-9 + ISO8859-9 サãƒãƒ¼ãƒˆ + ISO8859-9 ì§€ì› + Støtte for ISO8859-9 + Suporte a ISO8859-9 + Поддержка ISO8859-9 + Stöd för ISO8859-9 + ISO8859-9 æ”¯æŒ + ISO8859-9 æ”¯æ´ + false + + XFree86-ISO8859-9-75dpi-fonts + XFree86-ISO8859-9-100dpi-fonts + + + + + cyrillic-support + false + Cyrillic Support + Podpora pro azbuku + Understøttelse for kyrillisk alfabet + Support für Kyrillisch + Soporte para el cirílico + Support cyrillique + Kýrílíska + Supporto per il cirillico + シリル語ã®ã‚µãƒãƒ¼ãƒˆ + 키릴 ë¬¸ìž ì§€ì› + Støtte for kyrillisk + Suporte a Cirilico + Поддержка кириллицы + Stöd för kyrilliskt alfabet + è¥¿é‡Œå°”è¯­æ”¯æŒ + æ–¯æ‹‰å¤«èªžæ”¯æ´ + + XFree86-cyrillic-fonts + fonts-KOI8-R + fonts-KOI8-R-100dpi + + + + + british-support + false + British Support + Podpora pro angliÄtinu (Velká Británie) + Understøttelse for britisk engelsk + Support für Englisch (Großbritannien) + Soporte para el inglés británico + Support anglais + Breska + Supporto per l'inglese britannico + 英国語ã®ã‚µãƒãƒ¼ãƒˆ + ì˜êµ­ì‹ ì˜ì–´ ì§€ì› + Støtte for britisk + Suporte a Inglês Britânico + Поддержка британÑкого английÑкого + Stöd för brittisk engelska + 英å¼è‹±è¯­æ”¯æŒ + 英å¼è‹±æ–‡æ”¯æ´ + en_GB + + aspell-en-gb + kde-i18n-British + + + + + canadian-support + false + Canadian Support + Podpora pro angliÄtinu (Kanada) + Understøttelse for canadisk engelsk + Support für Englisch (Kanada) + Soporte para el francés de Canadá + Support canadien + Canadíska + Supporto per il canadese + カナダ英語ã®ã‚µãƒãƒ¼ãƒˆ + ìºë‚˜ë‹¤ì‹ ì˜ì–´ ì§€ì› + Støtte for kanadisk + Suporte a Canadiano + Поддержка канадÑкого английÑкого + Stöd för kanadensisk engelska + 加拿大å¼è‹±è¯­æ”¯æŒ + åŠ æ‹¿å¤§è‹±æ–‡æ”¯æ´ + en_CA + + aspell-en-ca + + + + + catalan-support + false + Catalan Support + Podpora pro katalánÅ¡tinu + Understøttelse for katalansk + Support für Spanisch (Katalanien) + Soporte para el catalán + Support catalan + Catalónska + Supporto per il catalano + カタルーニャ語ã®ã‚µãƒãƒ¼ãƒˆ + 카탈로니아어 ì§€ì› + Støtte for katalansk + Suporte a Catalão + Поддержка каталонÑкого Ñзыка + Stöd för katalanska + åŠ æ³°éš†è¯­æ”¯æŒ + åŠ æ³°éš†èªžæ”¯æ´ + ca + + aspell-ca + kde-i18n-Catalan + + + + + brazilian-support + false + Brazilian Support + Podpora pro portugalÅ¡tinu (Brazílie) + Understøttelse for brasiliansk portugisisk + Support für Portugiesisch (Brasilien) + Soporte para el brasileño + Support brésilien + Brasílíska + Supporto per il brasiliano + ブラジル語ã®ã‚µãƒãƒ¼ãƒˆ + 브ë¼ì§ˆì–´ ì§€ì› + Støtte for portugisisk(Brasil) + Suporte a Português do Brasil + Поддержка бразильÑкого Ñзыка + Stöd för brasiliansk portugisiska + å·´è¥¿è¯­æ”¯æŒ + 巴西å¼è‘¡è„ç‰™èªžæ”¯æ´ + pt_BR + + portuguese-support + + + aspell-pt_BR + kde-i18n-Brazil + + + + + czech-support + false + Czech Support + Podpora pro ÄeÅ¡tinu + Understøttelse for tjekkisk + Support für Tschechisch + Soporte para el checo + Support tchèque + Tjékkneska + Supporto per il ceco + ãƒã‚§ã‚³èªžã®ã‚µãƒãƒ¼ãƒˆ + 체코어 ì§€ì› + Støtte for tsjekkisk + Suporte a Checo + Поддержка чешÑкого Ñзыка + Stöd för tjeckiska + æ·å…‹è¯­æ”¯æŒ + æ·å…‹èªžæ”¯æ´ + cz + + ISO8859-2-support + + + kde-i18n-Czech + man-pages-cs + + + + + danish-support + false + Danish Support + Podpora pro dánÅ¡tinu + Understøttelse for dansk + Support für Dänisch + Soporte para el danés + Support danois + Danska + Supporto per il danese + デンマーク語ã®ã‚µãƒãƒ¼ãƒˆ + ë´ë§ˆí¬ì–´ ì§€ì› + Støtte for dansk + Suporte a Dinamarquês + Поддержка датÑкого Ñзыка + Stöd för danska + ä¸¹éº¦è¯­æ”¯æŒ + ä¸¹éº¥èªžæ”¯æ´ + da_DK + + aspell-da + kde-i18n-Danish + man-pages-da + + + + + dutch-support + false + Dutch Support + Podpora holandÅ¡tiny + Understøttelse for hollandsk + Support für Holländisch + Soporte para el holandés + Support hollandais + Hollenska + Supporto per l'olandese + オランダ語ã®ã‚µãƒãƒ¼ãƒˆ + 네ë¸ëž€ë“œì–´ ì§€ì› + Støtte for nederlandsk + Suporte a Holandês + Поддержка датÑкого Ñзыка + Stöd för nederländska + è·å…°è¯­æ”¯æŒ + è·è˜­èªžæ”¯æ´ + nl + + aspell-nl + kde-i18n-Dutch + + + + + estonian-support + false + Estonian Support + Podpora pro estonÅ¡tinu + Understøttelse for estisk + Support für Estonisch + Soporte para el estonio + Support estonien + Eistneska + Supporto per l'estone + エストニア語ã®ã‚µãƒãƒ¼ãƒˆ + ì—스토니아어 ì§€ì› + Støtte for estlandsk + Suporte a Estónio + Поддержка ÑÑтонÑкого Ñзыка + Stöd för estniska + çˆ±æ²™å°¼äºšè¯­æ”¯æŒ + æ„›æ²™å°¼äºžèªžæ”¯æ´ + et_EE + + ISO8859-2-support + + + kde-i18n-Estonian + + + + + finish-support + false + Finnish Support + Podpora pro finÅ¡tinu + Understøttelse for finsk + Support für Finnisch + Finalizar el soporte + Support finnois + Finnska + Supporto per il finlandese + フィンランド語ã®ã‚µãƒãƒ¼ãƒˆ + 핀란드어 ì§€ì› + Støtte for finsk + Suporte a Finlandês + Поддержка финÑкого Ñзыка + Stöd för finska + èŠ¬å…°è¯­æ”¯æŒ + èŠ¬è˜­èªžæ”¯æ´ + fi_FI + + kde-i18n-Finnish + + + + + german-support + false + German Support + Podpora pro nÄ›mÄinu + Understøttelse for tysk + Support für Deutsch + Soporte para el alemán + Support allemand + Þýska + Supporto per il tedesco + ドイツ語ã®ã‚µãƒãƒ¼ãƒˆ + ë…ì¼ì–´ ì§€ì› + Støtte for tysk + Suporte a Alemão + Поддержка немецкого Ñзыка + Stöd för tyska + å¾·è¯­æ”¯æŒ + å¾·èªžæ”¯æ´ + de_DE + + aspell-de + kde-i18n-German + man-pages-de + + + + + greek-support + false + Greek Support + Podpora pro Å™eÄtinu + Understøttelse for græsk + Support für Griechisch + Soporte para el griego + Support grec + Gríska + Supporto per il greco + ギリシャ語ã®ã‚µãƒãƒ¼ãƒˆ + 그리스어 ì§€ì› + Støtte for gresk + Suporte a Grego + Поддержка гречеÑкого Ñзыка + Stöd för grekiska + å¸Œè…Šè¯­æ”¯æŒ + å¸Œè‡˜èªžæ”¯æ´ + el_GR + + kde-i18n-Greek + + + + + hebrew-support + false + Hebrew Support + Podpora pro hebrejÅ¡tinu + Understøttelse for hebraisk + Support für Hebräisch + Soporte para el hebreo + Support hébreu + Hebreska + Supporto per l'ebraico + ヘブライ語ã®ã‚µãƒãƒ¼ãƒˆ + 헤브루어 ì§€ì› + Støtte for hebraisk + Suporte a Hebreu + Поддержка Ñзыка иврит + Stöd för hebreiska + 希伯æ¥è¯­æ”¯æŒ + å¸Œä¼¯ä¾†èªžæ”¯æ´ + he_IL + + kde-i18n-Hebrew + + + + + hungarian-support + false + Hungarian Support + Podpora pro maÄarÅ¡tinu + Understøttelse for ungarnsk + Support für Ungarisch + Soporte para el húngaro + Support hongrois + Ungverska + Supporto per l'ungherese + ãƒãƒ³ã‚¬ãƒªãƒ¼èªžã®ã‚µãƒãƒ¼ãƒˆ + í—가리아어 ì§€ì› + Støtte for ungarsk + Suporte a Hungaro + Поддержка венгерÑкого Ñзыка + Stöd för ungerska + åŒˆç‰™åˆ©è¯­æ”¯æŒ + åŒˆç‰™åˆ©èªžæ”¯æ´ + hu_HU + + ISO8859-2-support + + + kde-i18n-Hungarian + + + + + spanish-support + false + Spanish Support + Podpora pro Å¡panÄ›lÅ¡tinu + Understøttelse for spansk + Support für Spanisch + Soporte para el español + Support espagnol + Spánska + Supporto per lo spagnolo + スペイン語ã®ã‚µãƒãƒ¼ãƒˆ + 스페ì¸ì–´ ì§€ì› + Støtte for spansk + Suporte a Espanhol + Поддержка иÑпанÑкого Ñзыка + Stöd för spanska + 西ç­ç‰™è¯­æ”¯æŒ + 西ç­ç‰™èªžæ”¯æ´ + es_ES + + aspell-es + kde-i18n-Spanish + man-pages-es + + + + + french-support + false + French Support + Podpora pro francouzÅ¡tinu + Understøttelse for fransk + Support für Französisch + Soporte para el francés + Support français + Franska + Supporto per il francese + フランス語ã®ã‚µãƒãƒ¼ãƒˆ + 프랑스어 ì§€ì› + Støtte for fransk + Suporte a Francês + Поддержка французÑкого Ñзыка + Stöd för franska + æ³•è¯­æ”¯æŒ + æ³•èªžæ”¯æ´ + fr_FR + + aspell-fr + kde-i18n-French + man-pages-fr + + + + + icelandic-support + false + Icelandic Support + Podpora pro islandÅ¡tinu + Understøttelse for islandsk + Support für Isländisch + Soporte para el islandés + Support islandais + Ãslenska + Supporto per l'islandese + アイスランド語ã®ã‚µãƒãƒ¼ãƒˆ + ì•„ì´ìŠ¬ëž€ë“œì–´ ì§€ì› + Støtte for islandsk + Suporte a Islandês + Поддержка иÑландÑкого Ñзыка + Stöd för isländska + å†°å²›è¯­æ”¯æŒ + å†°å³¶èªžæ”¯æ´ + is_IS + + kde-i18n-Icelandic + + + + + italian-support + false + Italian Support + Podpora pro italÅ¡tinu + Understøttelse for italiensk + Support für Italienisch + Soporte para el italiano + Support italien + Ãtalska + Supporto per l'italiano + イタリア語ã®ã‚µãƒãƒ¼ãƒˆ + ì´íƒˆë¦¬ì•„ì–´ ì§€ì› + Støtte for italiensk + Suporte a Italiano + Поддержка итальÑнÑкого Ñзыка + Stöd för italienska + æ„å¤§åˆ©è¯­æ”¯æŒ + ç¾©å¤§åˆ©æ–‡æ”¯æ´ + it_IT + + aspell-it + kde-i18n-Italian + man-pages-it + + + + + korean-support + false + Korean Support + Podpora pro korejÅ¡tinu + Understøttelse for koreansk + Support für Koreanisch + Soporte para el coreano + Support coréen + Kóreska + Supporto per il coreano + 韓国語ã®ã‚µãƒãƒ¼ãƒˆ + 한국어 ì§€ì› + Støtte for koreansk + Suporte a Coreano + Поддержка корейÑкого Ñзыка + Stöd för koreanska + éŸ©æ–‡æ”¯æŒ + éŸ“æ–‡æ”¯æ´ + ko_KR + + nvi-m17n + kde-i18n-Korean + man-pages-ko + kWnn-devel + ami + kWnn + hanterm-xf + h2ps + nhpf + ttfonts-ko + + + + + norwegian-support + false + Norwegian Support + Podpora pro norÅ¡tinu + Understøttelse for norsk + Support für Norwegisch + Soporte para el noruego + Support norvégien + Norska + Supporto per il norvegese + ノルウェー語ã®ã‚µãƒãƒ¼ãƒˆ + 노르웨ì´ì–´ ì§€ì› + Støtte for norsk + Suporte a Norueguês + Поддержка норвежÑкого Ñзыка + Stöd för norska + æŒªå¨æ”¯æŒ + 挪å¨èªžæ”¯æ´ + no_NO + + aspell-no + kde-i18n-Norwegian + kde-i18n-Norwegian-Nynorsk + + + + + polish-support + false + Polish Support + Podpora pro polÅ¡tinu + Understøttelse for polsk + Support für Polnisch + Soporte para el polaco + Support polonais + Pólska + Supporto per il polacco + ãƒãƒ¼ãƒ©ãƒ³ãƒ‰èªžã®ã‚µãƒãƒ¼ãƒˆ + í´ëž€ë“œì–´ ì§€ì› + Støtte for polsk + Suporte a Polaco + Поддержка польÑкого Ñзыка + Stöd för polska + æ³¢å…°è¯­æ”¯æŒ + æ³¢è˜­èªžæ”¯æ´ + pl_PL + + ISO8859-2-support + + + kde-i18n-Polish + man-pages-pl + + + + + portuguese-support + false + Portuguese Support + Podpora pro portugalÅ¡tinu + Understøttelse for portugisisk + Support für Portugiesisch + Soporte para el portugués + Support portugais + Portúgalska + Supporto per il portoghese + ãƒãƒ«ãƒˆã‚¬ãƒ«èªžã®ã‚µãƒãƒ¼ãƒˆ + í¬ë¥´íˆ¬ê°ˆì–´ ì§€ì› + Støtte for portugisisk + Suporte a Português + Поддержка португальÑкого Ñзыка + Stöd för portugisiska + è‘¡è„ç‰™è¯­æ”¯æŒ + è‘¡è„ç‰™èªžæ”¯æ´ + pt + + aspell-pt + kde-i18n-Portuguese + + + + + romanian-support + false + Romanian Support + Podpora pro rumunÅ¡tinu + Understøttelse for rumænsk + Support für Rumänisch + Soporte para el rumano + Support roumain + Rómanska + Supporto per il romeno + ルーマニア語ã®ã‚µãƒãƒ¼ãƒˆ + 루마니아어 ì§€ì› + Støtte for rumensk + Suporte a Romeno + Поддержка румынÑкого Ñзыка + Stöd för rumänska + ç½—é©¬å°¼äºšè¯­æ”¯æŒ + ç¾…é¦¬å°¼äºžèªžæ”¯æ´ + ro_RO + + ISO8859-2-support + + + kde-i18n-Romanian + + + + + russian-support + false + Russian Support + Podpora pro ruÅ¡tinu + Understøttelse for russisk + Support für Russisch + Soporte para el ruso + Support russe + Rússnenska + Supporto per il russo + ロシア語ã®ã‚µãƒãƒ¼ãƒˆ + 러시아어 ì§€ì› + Støtte for russisk + Suporte a Russo + Поддержка руÑÑкого Ñзыка + Stöd för ryska + ä¿„è¯­æ”¯æŒ + ä¿„èªžæ”¯æ´ + ru_RU + + cyrillic-support + + + kde-i18n-Russian + man-pages-ru + + + + + serbian-support + false + Serbian Support + Podpora srbÅ¡tiny + Understøttelse for serbisk + Support für Serbisch + Soporte para el serbio + Support serbe + Serbneska + Supporto per il serbo + シベリア語ã®ã‚µãƒãƒ¼ãƒˆ + 세르비아어 ì§€ì› + Støtte for serbisk + Suporte a Sérvio + Поддержка ÑербÑкого Ñзыка + Stöd för serbiska + å¡žå°”ç»´äºšè¯­æ”¯æŒ + è³½çˆ¾ç¶­äºžèªžæ”¯æ´ + sr_YU + + ISO8859-2-support + + + kde-i18n-Serbian + + + + + slovak-support + false + Slovak Support + Podpora pro slovenÅ¡tinu + Understøttelse for slovakisk + Support für Slowakisch + Soporte para el eslovaco + Support slovaque + Slóvak + Supporto per lo slovacco + スロãƒã‚­ã‚¢èªžã®ã‚µãƒãƒ¼ãƒˆ + 슬로바키아어 ì§€ì› + Støtte for slovakisk + Suporte a Eslovaco + Поддержка Ñловацкого Ñзыка + Stöd för slovakiska + 斯洛ä¼å…‹è¯­æ”¯æŒ + 斯洛ä¼å…‹èªžæ”¯æ´ + sk_SK + + ISO8859-2-support + + + kde-i18n-Slovak + + + + + slovenian-support + false + Slovenian Support + Podpora pro slovinÅ¡tinu + Understøttelse for slovensk + Support für Slowenisch + Soporte para el eslovenio + Support slovène + Slóvnenska + Supporto per lo sloveno + スロベニア語ã®ã‚µãƒãƒ¼ãƒˆ + 슬로베ì´ì•„ì–´ ì§€ì› + Støtte for slovensk + Suporte a Eslovénio + Поддержка ÑловенÑкого Ñзыка + Stöd för slovenska + æ–¯æ´›æ–‡å°¼äºšè¯­æ”¯æŒ + æ–¯æ´›æ³•å°¼äºžèªžæ”¯æ´ + sl_SI + + ISO8859-2-support + + + kde-i18n-Slovenian + + + + + swedish-support + false + Swedish Support + Podpora pro Å¡védÅ¡tinu + Understøttelse for svensk + Support für Schwedisch + Soporte para el sueco + Support suédois + Sænska + Supporto per lo svedese + スウェデーン語ã®ã‚µãƒãƒ¼ãƒˆ + 스웨ë´ì–´ ì§€ì› + Støtte for svensk + Suporte a Sueco + Поддержка шведÑкого Ñзыка + Stöd för svenska + ç‘žå…¸è¯­æ”¯æŒ + ç‘žå…¸èªžæ”¯æ´ + sv_SE + + aspell-sv + kde-i18n-Swedish + + + + + turkish-support + false + Turkish Support + Podpora pro tureÄtinu + Understøttelse for tyrkisk + Support für Türkisch + Soporte para el turco + Support turc + Tyrkneska + Supporto per il turco + トルコ語ã®ã‚µãƒãƒ¼ãƒˆ + 터키어 ì§€ì› + Støtte for Tyrkisk + Suporte a Turco + Поддержка турецкого Ñзыка + Stöd för turkiska + åœŸè€³å…¶è¯­æ”¯æŒ + åœŸè€³å…¶èªžæ”¯æ´ + tr_TR + + ISO8859-9-support + + + kde-i18n-Turkish + + + + + ukrainian-support + false + Ukrainian Support + Podpora pro ukrajinÅ¡tinu + Understøttelse for ukrainsk + Support für Ukrainisch + Soporte para el ucraniano + Support ukrainien + Úkraínska + Supporto per l'ucraino + ウクライナ語ã®ã‚µãƒãƒ¼ãƒˆ + ìš°í¬ë¼ì´ë‚˜ì–´ ì§€ì› + Støtte for ukrainsk + Suporte a Ucraniano + Поддержка украинÑкого Ñзыка + Stöd för ukrainska + ä¹Œå…‹å…°è¯­æ”¯æŒ + çƒå…‹è˜­èªžæ”¯æ´ + uk_UA + + cyrillic-support + + + kde-i18n-Ukrainian + + + + + chinese-support + false + Chinese Support + Podpora pro ÄínÅ¡tinu + Understøttelse for kinesisk + Support für Chinesisch + Soporte para el chino + Support chinois + Kínverska + Supporto per il cinese + 中国語ã®ã‚µãƒãƒ¼ãƒˆ + 중국어 ì§€ì› + Støtte for kinesisk + Suporte a Chinês + Поддержка китайÑкого Ñзыка + Stöd för kinesiska + ä¸­æ–‡æ”¯æŒ + ä¸­æ–‡æ”¯æ´ + zh + + nvi-m17n + kde-i18n-Chinese + kde-i18n-Chinese-Big5 + man-pages-ko + cWnn-devel + libtabe-devel + cWnn + miniChinput + stardict + tWnn + ttfonts-zh_TW + ttfonts-zh_CN + taipeifonts + xcin + bg5ps + + + + + japanese-support + false + Japanese Support + Podpora pro japonÅ¡tinu + Understøttelse for japansk + Support für Japanisch + Soporte para el japonés + Support japonais + Japanska + Supporto per il giapponese + 日本語ã®ã‚µãƒãƒ¼ãƒˆ + ì¼ë³¸ì–´ ì§€ì› + Støtte for japansk + Suporte a Japonês + Поддержка ÑпонÑкого Ñзыка + Stöd för japanska + æ—¥è¯­æ”¯æŒ + æ—¥æ–‡æ”¯æ´ + ja_JP + + Canna + jcode.pl + kakasi-dict + kcc + kon2 + kon2-fonts + lv + nvi-m17n + nvi-m17n-canna + perl-NKF + perl-Text-Kakasi + nkf + ttfonts-ja + watanabe-vf + kde-i18n-Japanese + fonts-ja + jisksp14 + jisksp16-1990 + FreeWnn + kappa20 + kinput2-canna-wnn6 + knm_new + kterm + skkdic + skkinput + man-pages-ja + kakasi-devel + Wnn6-SDK-devel + namazu-devel + + + + + development-tools + Development Tools + Vývojové nástroje + Udviklingsværktøjer + Entwicklungstools + Herramientas de desarrollo + Outils de développement + Þróunartól + Strumenti di sviluppo + 開発ツール + 개발용 ë„구 + Utviklingsverktøy + Ferramentas de Desenvolvimento + СредÑтва разработки + Utvecklingsverktyg + å¼€å‘工具 + 開發工具 + These tools include core development tools such as automake, gcc, perl, python, and debuggers. + Tyto nástroje zahrnují základní vývojové nástroje jako automake, gcc, perl, python a ladící nástroje. + Disse værktøjer inkluderer basale udviklingsværktøjer som fx automake, gcc, perl, python og fejlsøgningsværktøjer. + Zu diesen Tools gehören grundlegende Entwicklungstools wie automake, gcc, perl, python und debuggers. + Estas herramientas incluyen herramientas de desarrollo de núcleo como por ejemplo automake, gcc, perl, python y depuradores. + Ces outils comprennent des outils de développement mémoire comme automake, gcc, perl, python, ainsi que des débogueurs. + Þessi tól eru meðal annars automake, gcc, perl, python og aflúsunartól. + Questi strumenti includono i principali tool di sviluppo tra cui automake, gcc, perl, python, e i debugger. + ã“れらã®ãƒ„ールã«ã¯ã€automake, gcc, perl, python, åŠã³ãƒ‡ãƒãƒƒã‚¬ãªã©ã®ã‚³ã‚¢é–‹ç™ºãƒ„ール㌠å«ã¾ã‚Œã¦ã„ã¾ã™ã€‚ + ì´ ë„구ì—는 automake, gcc, perl, pythonê³¼ 디버거와 ê°™ì€ í•µì‹¬ 개발용 ë„구가 í¬í•¨ë˜ì–´ 있습니다. + Disse verktøyene inkluderer utviklingsverktøy som automake, gcc, perl, python og avlusere. + Estas ferramentas incluem as ferramentas básicas de desenvolvimento como o automake, o gcc, o perl, o python e os depuradores. + Эти ÑредÑтва включают оÑновные ÑредÑтва разработки, такие как automake, gcc, perl, python и отладчики. + Dessa verktyg inkluderar kärnutvecklingsverktyg som exempelvis automake, gcc, perl, python och felsökningsverktyg. + 这些工具包括 automakeã€gccã€perlã€python 和调试器之类的核心开å‘工具。 + 這些工具包括主è¦çš„開發工具,例如 automake, gcc, perl, python ä»¥åŠ debuggers。 + true + + development-libs + + + ElectricFence + autoconf + automake14 + automake15 + automake + binutils + bison + byacc + cdecl + cproto + cvs + ddd + dev86 + diffstat + doxygen + dmalloc + expect + flex + gcc + gcc-c++ + gcc-g77 + gcc-gnat + gcc-java + gcc-objc + gdb + gettext + indent + libtool + ltrace + make + memprof + nasm + njamd + patchutils + perl-CPAN + pkgconfig + pmake + pstack + python-devel + rcs + rpm-build + redhat-rpm-config + splint + strace + texinfo + + + + + development-libs + Development Libraries + Knihovny pro vývoj + Udviklingsbiblioteker + Entwicklungsbibliotheken + Librerías de desarrollo + Bibliothèques de développement + Þróunaraðgerðasöfn + Librerie di sviluppo + 開発ライブラリ + 개발용 ë¼ì´ë¸ŒëŸ¬ë¦¬ + Utviklingsbibliotek + Bibliotecas de Desenvolvimento + Библиотеки Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ + Utvecklingsbibliotek + å¼€å‘库 + 開發函å¼åº« + The packages in this group are core libraries needed to develop applications. + BalíÄky v této skupinÄ› jsou základní knihovny potÅ™ebné pro vývoj aplikací. + Pakkerne i denne gruppe er basale biblioteker som behøves til udvikling af program. + Bei den Paketen dieser Gruppe handelt es sich um grundlegende Bibliotheken für die Entwicklung von Anwendungen. + Los paquetes de este grupo son librerías de núcleo necesarias para desarrollar aplicaciones. + Les paquetages de ce groupe sont des bibliothèques de mémoire nécessaires au développement d'applications. + Pakkarnir í þessum hóp eru grunnaðgerðasöfnin sem þarf til að þróa hugbúnað. + I pacchetti di questo gruppo sono le principali librerie di sviluppo delle applicazioni. + ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®ãƒ‘ッケージã¯ã‚¢ãƒ—リケーションã®é–‹ç™ºã«å¿…è¦ãªã‚³ã‚¢ãƒ©ã‚¤ãƒ–ラリã§ã™ã€‚ + ì´ íŒ¨í‚¤ì§€ ê·¸ë£¹ì€ ì‘ìš© í”„ë¡œê·¸ëž¨ì„ ê°œë°œí•˜ëŠ”ë° í•„ìš”í•œ 핵심 ë¼ì´ë¸ŒëŸ¬ë¦¬ìž…니다. + Pakkene i denne gruppen er basis-biblioteker for bruk ved programutvikling. + Os pacotes neste grupo contém bibliotecas de base necessárias para desenvolver aplicações. + Эта группа Ñодержит библиотеки необходимые Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ приложений. + Paketen i denna grupp är kärnbibliotek som behövs för utveckling av program. + 该组中的软件包是开å‘åº”ç”¨ç¨‹åºæ‰€éœ€çš„æ ¸å¿ƒåº“。 + é€™å€‹ç¾¤çµ„ä¸­çš„å¥—ä»¶æ˜¯ç”¨ä¾†é–‹ç™¼æ‡‰ç”¨ç¨‹å¼æ‰€éœ€çš„主è¦å‡½å¼åº«ã€‚ + false + + curl-devel + cyrus-sasl-devel + db4-devel + db4-utils + dialog + expat-devel + gdbm-devel + gmp-devel + gpm-devel + hesiod-devel + krb5-devel + krbafs-devel + kudzu-devel + libcap-devel + libtermcap-devel + libusb-devel + libuser-devel + libxml-devel + libxml2-devel + lockdev-devel + modutils-devel + ncurses-devel + newt-devel + openldap-devel + openssl-devel + pam-devel + pciutils-devel + readline-devel + rpm-devel + slang-devel + swig + zlib-devel + libogg-devel + libvorbis-devel + + + + + kernel-development + Kernel Development + Vývoj jádra + Kerneudvikling + Kernel-Entwicklung + Desarrollo del kernel + Développement du noyau + Kjarnaþróun + Sviluppo del kernel + カーãƒãƒ«é–‹ç™º + ì»¤ë„ ê°œë°œ + Kjerneutvikling + Desenvolvimento do Kernel + СредÑтва Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ Ñдра + Kärnutveckling + å†…æ ¸å¼€å‘ + 核心開發 + Install these packages to recompile the kernel. + Tyto balíÄky nainstalujte pro rekompilaci jádra. + Installér disse pakker for at oversætte om kernen. + Installieren Sie diese Pakete, wenn Sie selber den Kernel übersetzen möchten. + Settu þessa pakka inn ef þú vilt endurþýða kjarnann. + カーãƒãƒ«ã‚’å†ã‚³ãƒ³ãƒ‘イルã™ã‚‹ç‚ºã«ã“れらã®ãƒ‘ッケージをインストールã—ã¾ã™ã€‚ + 커ë„ì„ ìž¬ì»´íŒŒì¼í•˜ì‹œë ¤ë©´ ì´ íŒ¨í‚¤ì§€ë¥¼ 설치하십시오. + Installer disse pakkene for Ã¥ rekompilere kjernen. + Instale estes pacotes para recompilar o núcleo. + УÑтановите Ñти пакеты Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐºÐ¾Ð¼Ð¿Ð¸Ð»Ñции Ñдра ÑиÑтемы. + Installera dessa paket för att kompilera om kärnan. + 安装这些软件包æ¥é‡æ–°ç¼–译内核。 + 請安è£é€™äº›å¥—件以釿–°ç·¨è­¯æ ¸å¿ƒã€‚ + true + + development-tools + + + kernel-source + libattr-devel + libacl-devel + tk + + + + + legacy-software-development + Legacy Software Development + Podpora pro vývoj zdÄ›dÄ›ného software + Udvikling af ældre programmel + Legacy-Software Entwicklung + Desarrollo del software de legado + Développement du logiciel hérité + Þróunartól fyrir gömul forrit + Sviluppo del legacy software + レガシーソフトウェアーã®é–‹ç™º + 레거시 소프트웨어 개발 + Programvareutvikling for eldre systemer. + Desenvolvimento de Software Legado + СредÑтва Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ уÑтаревших приложений + Utveckling av äldre programvara + åŽŸæœ‰çš„è½¯ä»¶å¼€å‘ + 舊å¼è»Ÿé«”開發 + false + + compat-gcc + compat-gcc-c++ + compat-gcc-g77 + compat-libstdc++ + compat-libstdc++-devel + + + + + x-software-development + X Software Development + Vývoj software pro X + X-programmeludvikling + X Softwareentwicklung + Desarrollo del software X + Développement du logiciel X + Hugbúnaðarþróun fyrir X gluggakerfið + Sviluppo del software X + Xソフトウェア開発 + X 소프트웨어 개발 + Programvareutvikling for X + Desenvolvimento de Software para X + Разработка ПО Ð´Ð»Ñ X + X-programvaruutveckling + X è½¯ä»¶å¼€å‘ + X 軟體開發 + These packages allow you to develop applications for the X Window System. + Tyto balíÄky Vám umožní vyvíjet aplikace pro X Window System. + Disse pakker lader dig udvikle programmer for vinduessystemet X. + Mit diesen Paketen können Sie Anwendungen für das X Window System entwickeln. + Estos paquetes le permiten desarrollar aplicaciones para el sistema X Window. + Ces paquetages vous permettent de développer les applications pour le système X Window. + Þessir pakkar gera þér kleyft að þróa hugbúnað fyrir X gluggakerfið. + Questi pacchetti consentono di sviluppare applicazioni per il sistema X Window. + ã“れらã®ãƒ‘ッケージã§X Window System用ã®ã‚¢ãƒ—リケーションを開発ã§ãã¾ã™ã€‚ + ì´ íŒ¨í‚¤ì§€ëŠ” X 윈ë„ìš° 시스템ì—서 ì‚¬ìš©ë  ì‘ìš© í”„ë¡œê·¸ëž¨ì„ ê°œë°œí•  수 있게 í•´ì¤ë‹ˆë‹¤. + Disse pakkene lar deg utvikle programmer for X. + Este pacotes permitem-lhe desenvolver aplicações para o X Window System. + Эти пакеты позволÑÑŽÑ‚ разрабатывать Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ X Window System. + Dessa paket lÃ¥ter dig utveckla program för fönstersystemet X. + 这些软件包å…许您开å‘用于 X 窗å£ç³»ç»Ÿçš„应用程åºã€‚ + 這些套件讓您å¯ä»¥ç‚º X 視窗系統開發應用程å¼ã€‚ + true + + Glide3-devel + XFree86-devel + Xaw3d-devel + gd-devel + lesstif-devel + libjpeg-devel + libtiff-devel + libpng-devel + libmng-devel + libungif-devel + freetype-devel + netpbm-devel + libpng10-devel + openmotif-devel + SDL-devel + SDL_image-devel + SDL_mixer-devel + SDL_net-devel + + + + + gnome-software-development + GNOME Software Development + Vývoj software pro GNOMOE + Gnome-programmeludvikling + GNOME Softwareentwicklung + Desarrollo de software de GNOME + Développement de logiciel GNOME + Hugbúnaðarþróun fyrir GNOME + Sviluppo del software di GNOME + GNOME ソフトウェア開発 + GNOME 소프트웨어 개발 + Programvareutvikling for GNOME + Desenvolvimento de Software GNOME + Разработка Ñ Ð¸Ñпользованием GNOME + GNOME-programvaruutveckling + GNOME è½¯ä»¶å¼€å‘ + GNOME 軟體開發 + Install these packages in order to develop GTK+ and GNOME graphical applications. + Tyto balíÄky nainstalujte pro vývoj grafických aplikací pro GTK+ a GNOME. + Installér disse pakker for at kunne udvikle grafiske programmer som bruger GTK+ og Gnome. + Installieren Sie diese Pakete, um Applikationen für GTK+ und GNOME zu entwickeln. + Instalar estos paquetes para desarrollar GTK+ y las aplicaciones gráficas de GNOME. + Installer ces paquetages pour développer les applications graphiques GTK+ et GNOME. + Settu þessa pakka inn ef þú vilt þróa GTK+ og GNOME forrit. + Installare questi pacchetti per sviluppare le applicazioni grafiche GTK+ e GNOME. + GTK+ 㨠GNOMEã®ã‚°ãƒ©ãƒ•ィカルアプリケーションを開発ã™ã‚‹ç‚ºã«ã¯ã“れら㮠パッケージをインストールã—ã¦ä¸‹ã•ã„。 + GTK+와 GNOME 그래픽 ì‘ìš© í”„ë¡œê·¸ëž¨ì„ ê°œë°œí•˜ì‹œë ¤ë©´ ì´ íŒ¨í‚¤ì§€ë¥¼ 설치하십시오. + Installer disse pakkene for utvikling av GTK+- og GNOME-programmer. + Instale estes pacotes se quiser desenvolver aplicações gráficas GTK+ ou GNOME. + УÑтановите Ñти пакеты Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ графичеÑких приложений GTK+ и GNOME. + Installera dessa paket för att kunna utveckla grafiska program som använder GTK+ och GNOME. + 安装这些软件包æ¥å¼€å‘ GTK+ å’Œ GNOME 图形化应用程åºã€‚ + 請安è£é€™äº›å¥—件,用來開發 GTK+ 與 GNOME 的圖形應用程å¼ã€‚ + true + + bug-buddy + pygtk2-devel + glib-devel + glib2-devel + gtk+-devel + GConf-devel + GConf2-devel + Guppi-devel + ORBit-devel + ORBit2-devel + atk-devel + bonobo-activation-devel + bonobo-conf-devel + bonobo-devel + eel2-devel + fontconfig-devel + gail-devel + gal-devel + gdk-pixbuf-devel + gnome-libs-devel + gnome-pilot-devel + gnome-print-devel + gnome-vfs-devel + gnome-vfs2-devel + gtkhtml-devel + gtk2-devel + imlib-devel + libIDL-devel + libart_lgpl-devel + libbonobo-devel + libbonoboui-devel + libglade-devel + libglade2-devel + libgnome-devel + libgnomecanvas-devel + libgnomeui-devel + libgtop-devel + libole2-devel + librsvg-devel + librsvg2-devel + libunicode-devel + libxslt-devel + linc-devel + oaf-devel + pango-devel + glade + glade2 + + + + + kde-software-development + KDE Software Development + Vývoj software pro GNOME + KDE-programmeludvikling + KDE Softwareentwicklung + Desarrollo de software para KDE + Développement de logiciel KDE + Hugbúnaðarþróun fyrir KDE + Sviluppo software KDE + KDEソフトウェア開発 + KDE 소프트웨어 개발 + Programvareutvikling for KDE + Desenvolvimento de Software KDE + СредÑтва Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ в KDE + KDE-programvaruutveckling + KDE è½¯ä»¶å¼€å‘ + KDE 軟體開發 + Install these packages to develop QT and KDE graphical applications. + Tyto balíÄky nainstalujte pro vývoj grafických aplikací pro QT a KDE. + Installér disse pakker for at udvikle grafiske programmer som bruger QT og KDE. + Installieren Sie diese Pakete, um Applikationen für QT und KDE zu entwickeln. + Instalar estos paquetes para desarrollar las aplicaciones gráficas QT y KDE. + Installer ces paquetages pour développer les applications graphiques QT et KDE. + Settu þessa pakka inn ef þú vilt þróa QT og KDE forrit + Installare questi pacchetti per sviluppare le applicazioni grafiche QT e KDE. + QTã¨KDEã®ã‚°ãƒ©ãƒ•ィカルアプリケーション開発ã«ã¯ã“れらã®ãƒ‘ッケージをインストールã—ã¾ã™ã€‚ + QT와 KDE 그래픽 ì‘ìš© í”„ë¡œê·¸ëž¨ì„ ê°œë°œí•˜ì‹œë ¤ë©´ ì´ íŒ¨í‚¤ì§€ë¥¼ 설치하십시오. + Installer disse pakkene for utvikling av QT og KDE-programmer. + Instale estes pacotes se quiser desenvolver aplicações gráficas QT ou KDE. + УÑтановите Ñти пакеты Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ приложений QT и KDE. + Installera dessa paket för att utveckla grafiska program för QT och KDE. + 安装这些软件包æ¥å¼€å‘ QT å’Œ KDE 图形化应用程åºã€‚ + 請安è£é€™äº›å¥—件,用來開發 QT 與 KDE 的圖形應用程å¼ã€‚ + true + + PyQt-devel + arts-devel + cdparanoia-devel + cervisia + cups-devel + kdbg + kdebase-devel + kdelibs-devel + kdenetwork-devel + kdesdk-kapptemplate + kdesdk-kbabel + kdesdk-kbugbuster + kdesdk-kmtrace + kdesdk-kompare + kdesdk-kspy + kdepim-devel + kdevelop + kdoc + kregexpeditor-devel + kviewshell-devel + libkscan-devel + pilot-link-devel + qt-designer + qt-devel + sane-backends-devel + sip-devel + libxslt-devel + + + + + + workstation-common + false + Workstation Common + SpoleÄné pro pracovní stanici + Fælles for arbejdsstation + Workstation Common + Zona común de la estación de trabajo + Poste de travail commun + Almennt fyrir vinnustöðvar + Workstation Common + ワークステーション共通 + ì›ìŠ¤í…Œì´ì…˜ 공통 + Arbeidsstasjon - felles + Estação de Trabalho Comum + Ð¢Ð¸Ð¿Ð¾Ð²Ð°Ñ Ð Ð°Ð±Ð¾Ñ‡Ð°Ñ Ð¡Ñ‚Ð°Ð½Ñ†Ð¸Ñ + Gemensamt för arbetsstation + 工作站通用 + å·¥ä½œç«™å…±åŒ + + base + base-x + admin-tools + editors + sound-and-video + dialup + office + graphical-internet + text-internet + printing + graphics + games + + + + + server + false + Server + Server + Server + Server + Servidor + Serveur + Þjónn + Server + サーム+ 서버 + Tjener + Servidor + Сервер + Server + æœåС噍 + 伺æœå™¨ + + base + printing + text-internet + dialup + web-server + smb-server + server-cfg + admin-tools + + + + + gnome + false + GNOME + GNOME + Gnome + GNOME + GNOME + GNOME + GNOME + GNOME + GNOME + GNOME + GNOME + GNOME + GNOME + GNOME + GNOME + GNOME + + gnome-desktop + + + + + kde + false + KDE + KDE + KDE + KDE + KDE + KDE + KDE + KDE + KDE + KDE + KDE + KDE + KDE + KDE + KDE + KDE + + kde-desktop + + + + + supported + false + Supported Packages + Podporované balíÄky + Pakker som understøttes + Unterstützte Pakete + Paquetes soportados + Paquetages pris en charge + Studdir pakkar + Pacchetti supportati + サãƒãƒ¼ãƒˆã•れるパッケージ + ì§€ì›í•˜ëŠ” 패키지 + Støttede pakker + Pacotes Suportados + Поддерживаемые пакеты + Paket som stöds + 支æŒçš„软件包 + 支æ´çš„套件 + + anaconda + anaconda-help + anaconda-images + anaconda-runtime + booty + + + + + + + Desktops + ProstÅ™edí pracovní plochy + Skriveborde + Skjáborð + デスクトップ + ë°ìФí¬íƒ‘ + Skrivebord + Ambiente de Trabalho + Оконные менеджеры + Skrivbord + æ¡Œé¢ + æ¡Œé¢ + + base-x + gnome-desktop + kde-desktop + + + + Applications + Aplikace + Programmer + Forrit + アプリケーション + ì‘ìš© 프로그램 + Programmer + Aplicações + ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ + Program + åº”ç”¨ç¨‹åº + æ‡‰ç”¨ç¨‹å¼ + + editors + engineering-and-scientific + graphical-internet + text-internet + office + sound-and-video + authoring-and-publishing + graphics + games + + + + Servers + Servery + Servere + Server + Þjónar + サーム+ 서버 + Tjenere + Servidores + Серверы + Servrar + æœåС噍 + 伺æœå™¨ + + server-cfg + web-server + mail-server + smb-server + dns-server + ftp-server + sql-server + news-server + network-server + + + + Development + Vývoj + Udvikling + Softwareentwicklung + Þróun + 開発 + 개발용 ë„구 + Utviklingsverktøy + Desenvolvimento + Программирование + Utveckling + å¼€å‘ + 程å¼é–‹ç™¼ + + development-tools + kernel-development + x-software-development + gnome-software-development + kde-software-development + + + + System + Systém + System + Systemtools + Kerfi + システム + 시스템 + System + Sistema + СиÑтема + System + 系统 + 系統 + + admin-tools + system-tools + printing + + + + + + + busybox + + + + + libtool-libs + + glibc + + + + kpaint + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + kde-i18n-Estonian + + + + + libpng10-devel + + libpng10 + zlib-devel + + + + tclx + + glibc + bash + tcl + tk + XFree86-libs + + + + gnomemeeting + + openh323 + pwlib + GConf2 + bash + libart_lgpl + atk + libbonobo + bonobo-activation + libbonoboui + openssl + glibc + esound + libgcc + gtk2 + glib2 + libgnome + libgnomecanvas + libgnomeui + gnome-vfs2 + XFree86-libs + openldap + linc + ORBit2 + pango + SDL + libstdc++ + libxml2 + zlib + + + + gtk+-devel + + gtk+ + glib-devel + XFree86-devel + info + bash + + + + gdbm + + glibc + + + + cdrecord-devel + + cdrecord + + + + wl-xemacs + + xemacs + wl-common + flim-xemacs + + + + lapack-man + + + + + perl-Compress-Zlib + + glibc + zlib + perl + + + + modutils-devel + + + + + gnuchess + + glibc + + + + gnome-audio + + + + + mikmod + + info + bash + glibc + ncurses + + + + ruby-tcltk + + ruby-libs + glibc + tcl + tk + XFree86-libs + + + + postgresql-libs + + glibc + krb5-libs + openssl + libgcc + libstdc++ + + + + tk + + glibc + bash + tcl + XFree86-libs + + + + Xbae + + glibc + XFree86-libs + openmotif + + + + bzip2-libs + + glibc + + + + cadaver + + openssl + glibc + ncurses + readline + libxml2 + zlib + + + + klpq + + LPRng + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + aspell-es + + aspell + + + + man-pages-es + + + + + fam + + portmap + xinetd + bash + glibc + libgcc + libstdc++ + + + + openh323 + + pwlib + glibc + openssl + expat + libgcc + libstdc++ + + + + ncftp + + glibc + ncurses + + + + basesystem + + setup + filesystem + + + + ttfonts-ko + + chkfontpath + XFree86-font-utils + fontconfig + bash + + + + rpm-build + + rpm + patch + file + bash + perl + bzip2-libs + glibc + libelf + popt + + + + mew-common + + info + bash + perl + glibc + zlib + + + + rhmask + + glibc + + + + libaio-devel + + libaio + + + + lisa + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + gimp-perl + + gimp + perl + glibc + gtk+ + glib + XFree86-libs + Gtk-Perl + perl-PDL + + + + parted + + glibc + e2fsprogs + + + + zlib + + glibc + + + + dosfstools + + glibc + + + + xmms + + gtk+ + unzip + redhat-menus + redhat-artwork + glibc + glib + XFree86-Mesa-libGL + XFree86-libs + mikmod + libogg + libvorbis + libxml + zlib + + + + libtermcap + + termcap + glibc + + + + firstboot + + chkconfig + pygtk2 + python + usermode + metacity + rhpl + redhat-config-date + redhat-config-language + redhat-config-mouse + redhat-config-keyboard + redhat-config-soundcard + redhat-config-securitylevel + redhat-config-rootpassword + redhat-config-packages + up2date + redhat-logos + bash + + + + libxslt + + libxml2 + glibc + zlib + + + + XFree86-base-fonts + + chkfontpath + XFree86-font-utils + bash + + + + perl-DBD-Pg + + perl + perl-DBI + glibc + postgresql-libs + + + + sendmail + + chkconfig + shadow-utils + mktemp + fileutils + gawk + sed + sh-utils + procmail + bash + openssl + glibc + db4 + gdbm + hesiod + openldap + cyrus-sasl + + + + perl-Devel-Symdump + + perl + + + + openssl-devel + + openssl + + + + asp2php + + glibc + + + + kernel-pcmcia-cs + + kernel + chkconfig + kudzu + hotplug + bash + glibc + + + + libwnck-devel + + libwnck + glib2-devel + pango-devel + gtk2-devel + + + + pump-devel + + + + + ggv + + GConf2 + scrollkeeper + bash + libart_lgpl + atk + libbonobo + bonobo-activation + libbonoboui + glibc + gtk2 + glib2 + libgnome + libgnomecanvas + libgnomeui + gnome-vfs2 + XFree86-libs + linc + ORBit2 + pango + popt + libxml2 + zlib + + + + ncurses-devel + + ncurses + bash + perl + + + + redhat-config-printer + + alchemist + python + perl + PyXML + fileutils + initscripts + gzip + sed + LPRng + m4 + pnm2ppa + bzip2 + foomatic + ghostscript + newt + Omni-foomatic + mpage + usermode + rhpl + bash + glibc + + + + libao-devel + + libao + + + + mew + + emacs + mew-common + + + + xinetd + + chkconfig + initscripts + filesystem + setup + fileutils + bash + glibc + + + + knewsticker + + kdenetwork-libs + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + galeon + + glib + gtk+ + libxml + gnome-libs + GConf + ORBit + oaf + gnome-vfs + gdk-pixbuf + libglade + mozilla + perl + bash + + + + libxslt-devel + + libxslt + libxml2-devel + bash + + + + vim-X11 + + vim-common + libacl + glibc + gtk+ + glib + gpm + ncurses + perl + XFree86-libs + + + + symlinks + + glibc + + + + rpm2html + + glibc + gnome-libs + popt + rpm + libxml2 + zlib + + + + gtkam + + glibc + gtk+ + gdk-pixbuf + glib + gphoto2 + XFree86-libs + + + + sh-utils + + pam + bash + glibc + + + + XFree86-twm + + XFree86 + XFree86-libs + glibc + + + + alchemist + + libxml2 + libxslt + glibc + python + glib + zlib + + + + njamd + + glibc + ncurses + + + + xosview + + glibc + libgcc + libstdc++ + XFree86-libs + + + + dictd + + glibc + + + + ethereal-gnome + + gtk+ + usermode + ethereal + openssl + glibc + glib + libpcap + net-snmp + XFree86-libs + zlib + + + + netpbm-devel + + netpbm + + + + mouseconfig + + findutils + textutils + bash + glibc + newt + popt + + + + kdeaddons-kate + + kdebase + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + vlock + + pam + glibc + + + + redhat-lsb + + glibc + zlib + ncurses + XFree86-libs + XFree86-Mesa-libGL + gawk + sh-utils + textutils + fileutils + cpio + grep + gzip + net-tools + util-linux + mktemp + mount + procps + sed + bash + tar + psmisc + SysVinit + binutils + at + bc + diffutils + vixie-cron + file + findutils + glibc-common + LPRng + m4 + make + man + passwd + patch + rsync + time + shadow-utils + postfix + + + + usermode-gtk + + usermode + atk + glibc + gtk2 + libglade2 + glib2 + XFree86-libs + pango + libxml2 + zlib + + + + ltrace + + glibc + + + + perl-XML-Parser + + perl + perl-libwww-perl + perl-URI + glibc + expat + + + + fortune-mod + + glibc + + + + gphoto2-devel + + gphoto2 + pkgconfig + bash + + + + librsvg-devel + + librsvg + bash + + + + gnome-vfs2-devel + + gnome-vfs2 + GConf2-devel + libbonobo-devel + + + + mysql-devel + + mysql + + + + kpppload + + kdelibs + glibc + libgcc + qt + libstdc++ + XFree86-libs + + + + perl-Filter-Simple + + perl-Filter + perl-Parse-RecDescent + perl + + + + gmp-devel + + gmp + info + bash + + + + redhat-config-kickstart + + pygtk2 + pygtk2-libglade + python + hwdata + rhpl + bash + sh-utils + + + + kmid + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + WindowMaker-libs + + glibc + libjpeg + libpng + libtiff + libungif + XFree86-libs + zlib + + + + gnome-spell + + gnome-libs + aspell + audiofile + bonobo + glibc + esound + freetype + libgal19 + gtk+ + imlib + gdk-pixbuf + libglade + glib + gdk-pixbuf-gnome + libgnomeprint15 + XFree86-libs + ORBit + oaf + pspell + libstdc++ + libxml + zlib + + + + vte-devel + + vte + gtk2-devel + glibc + glib2 + + + + libbonoboui + + libxml2 + ORBit2 + bonobo-activation + libbonobo + libgnomecanvas + libgnome + libart_lgpl + gtk2 + libglade2 + glibc + atk + GConf2 + glib2 + gnome-vfs2 + linc + pango + zlib + + + + m4 + + info + bash + glibc + + + + timeconfig + + initscripts + glibc + util-linux + fileutils + gawk + bash + newt + popt + + + + bash + + mktemp + bash + glibc + libtermcap + + + + kmix + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + perl-Frontier-RPC + + perl + perl-libwww-perl + perl-XML-Parser + + + + blas + + glibc + + + + libgnomeprintui-devel + + libgnomeprintui + gtk2-devel + libgnomeprint-devel + libgnomecanvas-devel + + + + expat + + glibc + + + + nkf + + glibc + + + + authconfig-gtk + + authconfig + pygtk2-libglade + pam + python + + + + statserial + + glibc + ncurses + + + + kdenetwork-devel + + kdenetwork-libs + + + + mozilla + + fileutils + perl + psmisc + mozilla-nspr + indexhtml + bash + glibc + gtk+ + glib + compat-libstdc++ + XFree86-libs + zlib + + + + portmap + + chkconfig + initscripts + util-linux + bash + glibc + + + + Maelstrom + + glibc + libgcc + SDL + SDL_net + libstdc++ + + + + sysreport + + bash + gawk + grep + sed + + + + cdparanoia + + cdparanoia-libs + glibc + + + + indent + + info + bash + glibc + + + + xsane + + glibc + gtk+ + glib + libjpeg + libpng + sane-backends + libtiff + libusb + XFree86-libs + zlib + + + + parted-devel + + parted + + + + mc + + pam + chkconfig + dev + bash + perl + e2fsprogs + glibc + glib + gpm + slang + libtermcap + + + + autoconf213 + + gawk + m4 + mktemp + perl + textutils + bash + + + + ruby-libs + + bash + sh-utils + glibc + gdbm + ncurses + readline + + + + setup + + + + + desktop-backgrounds-basic + + + + + XFree86-ISO8859-9-75dpi-fonts + + chkfontpath + XFree86-font-utils + bash + + + + db4-utils + + db4 + glibc + + + + postgresql-jdbc + + + + + kde-i18n-Norwegian + + + + + kamera + + gphoto2 + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + libusb + zlib + + + + samba-swat + + samba + xinetd + libacl + openssl + glibc + cups-libs + pam + popt + + + + mx + + python + glibc + + + + bg5ps + + python + glibc + freetype + + + + nautilus + + fam + filesystem + eog + scrollkeeper + desktop-backgrounds-basic + redhat-menus + redhat-artwork + gnome-vfs2 + eel2 + bash + libart_lgpl + atk + audiofile + libbonobo + bonobo-activation + libbonoboui + glibc + esound + gail + GConf2 + gtk2 + libglade2 + glib2 + libgnome + libgnomecanvas + gnome-desktop + libgnomeui + XFree86-libs + libjpeg + linc + ORBit2 + pango + popt + librsvg2 + libxml2 + zlib + + + + sendmail-cf + + bash + + + + diffstat + + glibc + + + + XFree86-75dpi-fonts + + chkfontpath + XFree86-font-utils + bash + + + + gtk2-devel + + gtk2 + pango-devel + atk-devel + glib2-devel + XFree86-devel + glibc + glib2 + + + + compat-libgcj-devel + + zip + compat-libgcj + + + + SDL_mixer-devel + + SDL_mixer + + + + kde-i18n-Serbian + + + + + ncurses4 + + glibc + + + + openldap-devel + + openldap + + + + kon2-fonts + + + + + routed + + chkconfig + bash + glibc + + + + gnome-vfs2 + + gnome-mime-data + redhat-menus + bash + glibc + perl + libbonobo + bonobo-activation + bzip2-libs + openssl + fam + GConf2 + glib2 + linc + ORBit2 + libxml2 + zlib + + + + ImageMagick-c++ + + ImageMagick + glibc + + + + glib-devel + + glib + bash + + + + xloadimage + + glibc + libtiff + XFree86-libs + + + + eruby + + glibc + eruby-libs + ruby-libs + + + + cyrus-sasl-gssapi + + cyrus-sasl + krb5-libs + glibc + + + + passivetex + + tetex + xmltex + bash + + + + gnome-pilot-devel + + ORBit-devel + pilot-link-devel + gnome-pilot + + + + emacs-leim + + emacs + + + + libgnomeui-devel + + libgnomeui + zlib-devel + esound-devel + ORBit2-devel + glib2-devel + pango-devel + gtk2-devel + GConf2-devel + gnome-vfs2-devel + libgnomecanvas-devel + bonobo-activation-devel + libbonobo-devel + libbonoboui-devel + libxml2-devel + libgnome-devel + libart_lgpl-devel + libglade2-devel + + + + rhpl + + python + glibc + + + + gtk-engines + + gtk+ + bash + glibc + imlib + glib + XFree86-libs + + + + Xft + + glibc + freetype + XFree86-libs + + + + lam + + openssh-server + openssh-clients + bash + libaio + glibc + + + + jadetex + + sgml-common + tetex + tetex-latex + openjade + bash + + + + gnome-vfs-extras + + gnome-vfs + glibc + cups-libs + + + + jfsutils + + glibc + + + + cWnn-devel + + bash + + + + inn-devel + + inn + + + + xdelta + + glibc + bash + glib + zlib + + + + ghostscript-gtk + + ghostscript + glibc + gtk+ + glib + XFree86-libs + + + + fonts-ISO8859-2-100dpi + + chkfontpath + XFree86-font-utils + bash + + + + netdump-server + + shadow-utils + openssh-server + bash + glibc + glib + popt + + + + perl-Crypt-SSLeay + + perl + openssl + glibc + + + + aspell + + pspell + glibc + bash + libgcc + libtool-libs + ncurses + libstdc++ + + + + kdemultimedia-kfile + + glibc + kdelibs + libgcc + XFree86-libs + libogg + libpng + qt + libstdc++ + libvorbis + zlib + + + + openh323-devel + + openh323 + + + + lha + + glibc + + + + postfix + + chkconfig + initscripts + sh-utils + fileutils + textutils + shadow-utils + pcre + cyrus-sasl + openssl + bash + glibc + db4 + + + + mrproject + + glib + gtk+ + libxml + gnome-libs + ORBit + oaf + gnome-vfs + gdk-pixbuf + bonobo + popt + gnome-print + gal + libglade + libmrproject + libart_lgpl + atk + libbonobo + bonobo-activation + libbonoboui + glibc + GConf2 + gtk2 + libglade2 + glib2 + libgnome + libgnomecanvas + libgnomeui + gnome-vfs2 + XFree86-libs + linc + ORBit2 + pango + libxml2 + zlib + + + + pciutils + + kernel + hwdata + glibc + + + + Glide3 + + glibc + bash + XFree86-libs + + + + libwvstreams + + glibc + openssl + libgcc + libstdc++ + zlib + + + + wine + + shadow-utils + cups-libs + bash + perl + arts + glibc + XFree86-Mesa-libGL + XFree86-Mesa-libGLU + XFree86-libs + libjpeg + ncurses + sane-backends + libusb + + + + openssh-clients + + openssh + krb5-libs + openssl + glibc + zlib + + + + qtcups + + cups + qt + desktop-file-utils + glibc + cups-libs + libgcc + libstdc++ + zlib + + + + libIDL-devel + + libIDL + pkgconfig + glib2-devel + info + bash + + + + mars-nwe + + chkconfig + initscripts + ipxutils + bash + glibc + gdbm + + + + man-pages-fr + + + + + perl-Time-HiRes + + perl + glibc + + + + x3270 + + XFree86-font-utils + desktop-file-utils + glibc + + + + xmms-skins + + xmms + + + + anonftp + + vsftpd + grep + shadow-utils + glibc + fileutils + gzip + cpio + tar + libtermcap + sh-utils + textutils + bash + + + + python-tools + + python + bash + sh-utils + + + + bonobo-conf + + bonobo + GConf + oaf + glib + gtk+ + glibc + gnome-libs + audiofile + esound + imlib + gdk-pixbuf + XFree86-libs + ORBit + popt + libxml + zlib + + + + libungif-devel + + libungif + + + + XFree86-devel + + fontconfig + XFree86-libs + bash + glibc + + + + kregexpeditor + + kdelibs + glibc + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + ttfonts-ja + + fontconfig + chkfontpath + XFree86-font-utils + bash + + + + cipe + + info + bash + glibc + + + + lslk + + glibc + + + + libmng-devel + + libmng + + + + im-sdk + + Canna-libs + glibc + libgcc + XFree86-libs + pam + libstdc++ + + + + fonts-KOI8-R-75dpi + + chkfontpath + bash + + + + mozilla-nss + + mozilla-nspr + bash + glibc + + + + doxygen-doxywizard + + doxygen + glibc + libgcc + qt + libstdc++ + XFree86-libs + + + + kmidi + + timidity++ + arts + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + redhat-logos + + + + + compat-gcc-g77 + + compat-gcc + glibc + + + + kde-i18n-Dutch + + + + + kdemultimedia-libs + + glibc + libgcc + libogg + libstdc++ + libvorbis + XFree86-libs + + + + quanta + + kdelibs + glibc + libgcc + XFree86-libs + libjpeg + libpng + qt + libstdc++ + zlib + + + + XFree86-libs + + glibc + grep + textutils + bash + fontconfig + freetype + XFree86-Mesa-libGL + + + + atk-devel + + atk + glib2-devel + + + + giftrans + + glibc + + + + gtk2-engines + + gtk2 + atk + glibc + glib2 + pango + + + + foomatic + + perl + perl-DateManip + perl-libxml-enno + perl-libxml-perl + perl-Parse-Yapp + perl-XML-Dumper + perl-XML-Encoding + perl-XML-Parser + fileutils + initscripts + bash + glibc + libxml2 + zlib + perl-libwww-perl + perl-XML-Grove + perl-XML-Twig + + + + ncpfs + + ipxutils + glibc + + + + gnome-mime-data + + + + + ImageMagick-c++-devel + + ImageMagick + ImageMagick-c++ + ImageMagick-devel + + + + kcharselect + + kdebase + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + dhclient + + initscripts + bash + glibc + + + + libdbi + + glibc + + + + kde-i18n-Slovenian + + + + + xmltex + + tetex + bash + + + + libxml2-devel + + libxml2 + zlib-devel + bash + + + + amanda-server + + gnuplot + fileutils + grep + initscripts + xinetd + amanda + bash + perl + glibc + readline + libtermcap + + + + diskcheck + + crontabs + postfix + grep + bash + python + + + + e2fsprogs-devel + + e2fsprogs + info + bash + + + + pdksh + + grep + fileutils + bash + glibc + + + + fonts-ja + + XFree86-100dpi-fonts + XFree86-75dpi-fonts + chkfontpath + bash + + + + kWnn-devel + + bash + + + + awesfx + + glibc + + + + XFree86-doc + + + + + gnome-applets + + scrollkeeper + gnome-panel + bash + glibc + libart_lgpl + atk + libbonobo + bonobo-activation + libbonoboui + gail + GConf2 + gtk2 + libglade2 + glib2 + libgnome + libgnomecanvas + libgnomeui + gnome-vfs2 + libgtop2 + XFree86-libs + linc + ORBit2 + pango + libxml2 + zlib + + + + perl-SGMLSpm + + openjade + perl + + + + libtool-libs13 + + glibc + + + + koffice + + kdelibs + glibc + bash + perl + libart_lgpl + arts + audiofile + freetype + libgcc + XFree86-libs + libjpeg + libpng + qt + libstdc++ + libxml2 + libxslt + zlib + + + + docbook-style-dsssl + + openjade + docbook-dtds + sgml-common + bash + perl + + + + libavc1394-devel + + + + + cyrus-sasl-devel + + cyrus-sasl + glibc + gdbm + pam + + + + umb-scheme + + info + bash + glibc + + + + eel2-devel + + eel2 + gtk2-devel + libgnomeui-devel + gnome-vfs2-devel + librsvg2-devel + bonobo-activation-devel + libxml2-devel + libart_lgpl-devel + gail-devel + + + + expect + + glibc + tcl + tk + XFree86-libs + + + + gimp-print-cups + + cups + bash + openssl + glibc + cups-libs + gimp-print + libjpeg + libpng + libtiff + zlib + + + + gnome-kerberos + + atk + krb5-libs + glibc + gtk2 + libglade2 + glib2 + pango + libxml2 + zlib + + + + ftp + + glibc + ncurses + readline + + + + enscript + + bash + perl + glibc + + + + noatun + + glibc + kdemultimedia-arts + arts + kdelibs + audiofile + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + libgnomeprint-devel + + libgnomeprint + glib2-devel + pango-devel + libxml2-devel + libart_lgpl-devel + libbonobo-devel + bonobo-activation-devel + freetype + + + + freeciv + + desktop-file-utils + bash + audiofile + glibc + esound + gtk+ + imlib + glib + XFree86-libs + ncurses + readline + Xaw3d + zlib + + + + librpm404 + + gawk + fileutils + textutils + mktemp + shadow-utils + bash + bzip2-libs + glibc + zlib + + + + gnome-print-devel + + gnome-print + gdk-pixbuf-devel + + + + librep-devel + + librep + bash + glibc + gdbm + + + + gtkhtml2-devel + + gtkhtml2 + gtk2-devel + libxml2-devel + gnome-vfs2-devel + gail-devel + + + + xtraceroute + + gtkglarea + glibc + gtk+ + gdk-pixbuf + glib + XFree86-Mesa-libGL + XFree86-Mesa-libGLU + XFree86-libs + + + + compat-libstdc++-devel + + compat-libstdc++ + + + + losetup + + glibc + + + + ntp + + chkconfig + shadow-utils + sed + libcap + bash + perl + glibc + + + + sharutils + + info + bash + perl + glibc + + + + postgresql-python + + python + mx + sh-utils + glibc + postgresql-libs + + + + PyQt-examples + + PyQt + sh-utils + + + + SDL_mixer + + SDL + glibc + libogg + libvorbis + + + + ktalkd + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + ash + + fileutils + grep + bash + glibc + + + + eruby-libs + + ruby-libs + glibc + + + + kdebase-devel + + kdebase + + + + kdebindings-qtc + + qt + glibc + libgcc + libstdc++ + XFree86-libs + + + + VFlib2 + + XFree86-truetype-fonts + glibc + freetype + XFree86-libs + + + + xsane-gimp + + gawk + sh-utils + fileutils + bash + glibc + gtk+ + gimp + glib + libjpeg + libpng + sane-backends + libtiff + libusb + XFree86-libs + zlib + + + + libtabe-devel + + libtabe + + + + gnome-media + + scrollkeeper + bash + libart_lgpl + atk + audiofile + libbonobo + bonobo-activation + libbonoboui + glibc + esound + gail + GConf2 + gtk2 + glib2 + libgnome + libgnomecanvas + libgnomeui + gnome-vfs2 + XFree86-libs + linc + ORBit2 + pango + popt + libxml2 + zlib + + + + openssh + + util-linux + initscripts + krb5-libs + openssl + glibc + zlib + + + + openssl + + mktemp + glibc + bash + + + + festival + + glibc + bash + perl + libstdc++ + libtermcap + + + + stardict + + openmotif + glibc + libgcc + libstdc++ + XFree86-libs + + + + qmkbootdisk + + glibc + qt + mkbootdisk + desktop-file-utils + libgcc + libstdc++ + + + + ImageMagick + + bzip2 + freetype + libjpeg + libpng + libtiff + libungif + zlib + glibc + bzip2-libs + XFree86-libs + libxml2 + + + + wordtrans-web + + wordtrans + + + + nedit + + openmotif + desktop-file-utils + glibc + XFree86-libs + + + + fonts-KOI8-R-100dpi + + chkfontpath + bash + + + + oaf-devel + + oaf + bash + + + + ipxutils + + glibc + + + + kudzu-devel + + pciutils-devel + + + + ethereal + + libpcap + net-snmp + bash + perl + openssl + glibc + glib + zlib + + + + bootparamd + + chkconfig + portmap + bash + glibc + + + + licq-gnome + + licq + glibc + libgcc + gtk+ + glib + libstdc++ + XFree86-libs + + + + kdbg + + gdb + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + usbview + + gtk+ + glibc + glib + XFree86-libs + + + + cups + + chkconfig + initscripts + cups-libs + htmlview + xinetd + bash + openssl + glibc + pam + zlib + + + + gpm + + chkconfig + glibc + info + pam + bash + ncurses + + + + pmake + + mktemp + bash + glibc + + + + Xbae-devel + + Xbae + + + + pkgconfig + + glibc + + + + php-mysql + + php + perl + grep + mysql + zlib + bash + glibc + + + + jed + + info + bash + sh-utils + glibc + slang + + + + autorun + + glibc + libgcc + libstdc++ + + + + krb5-server + + krb5-libs + grep + info + bash + sh-utils + chkconfig + glibc + + + + gkrellm + + gtk+ + glib + imlib + glibc + XFree86-libs + + + + kmessedwords + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + gtkhtml + + gnome-print + gdk-pixbuf + pspell + bonobo + glibc + gnome-libs + audiofile + libcapplet0 + esound + freetype + libgal19 + gtk+ + imlib + libghttp + libglade + glib + gdk-pixbuf-gnome + libgnomeprint15 + XFree86-libs + ORBit + oaf + popt + libxml + zlib + + + + kernel-bigmem + + fileutils + modutils + initscripts + mkinitrd + bash + + + + qt-PostgreSQL + + qt + glibc + fontconfig + XFree86-Mesa-libGL + XFree86-Mesa-libGLU + XFree86-libs + postgresql-libs + Xft + + + + setuptool + + glibc + newt + + + + lrzsz + + glibc + + + + skkdic + + + + + wordtrans + + glibc + libgcc + qt + libstdc++ + + + + beecrypt + + glibc + + + + isdn4k-utils-devel + + isdn4k-utils + + + + grep + + info + pcre + bash + glibc + + + + guile + + info + readline + umb-scheme + bash + glibc + ncurses + + + + ttfprint + + fileutils + bash + glibc + + + + mkbootdisk + + mkinitrd + dosfstools + syslinux + bash + + + + tree + + glibc + + + + isdn4k-utils + + initscripts + chkconfig + glibc + fileutils + sh-utils + bash + ncurses + + + + PyQt + + python + glibc + libgcc + qt + sip + libstdc++ + XFree86-libs + zlib + + + + h2ps + + glibc + + + + openmotif + + glibc + bash + XFree86-libs + + + + gnupg + + info + bash + perl + glibc + openldap + zlib + + + + kde-i18n-Italian + + + + + emacs-el + + emacs + + + + python-docs + + + + + redhat-config-httpd + + python + alchemist + libglade2 + pygtk2-libglade + pygtk2 + gnome-python2 + httpd + usermode + 4Suite + bash + + + + kstars + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + cproto + + glibc + + + + kde-i18n-British + + + + + libraw1394-devel + + + + + knotes + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + ORBit + + info + glibc + glib + + + + openssl095a + + glibc + + + + kde-i18n-Spanish + + + + + perl-Parse-RecDescent + + perl + + + + linuxdoc-tools + + openjade + tetex-latex + gawk + groff + bash + perl + glibc + + + + libxml-devel + + libxml + bash + + + + fonts-KOI8-R + + chkfontpath + bash + perl + + + + compat-libgcj + + info + zip + glibc + libgcc + zlib + + + + XFree86-ISO8859-2-100dpi-fonts + + chkfontpath + XFree86-font-utils + bash + + + + amanda-devel + + amanda + + + + genromfs + + glibc + + + + python-devel + + bash + + + + kvoctrain + + perl + glibc + kdelibs + libgcc + XFree86-libs + libjpeg + libpng + qt + libstdc++ + zlib + + + + licq-qt + + licq + glibc + libgcc + XFree86-libs + qt + libstdc++ + + + + automake14 + + perl + info + bash + + + + automake15 + + perl + info + bash + + + + redhat-config-date + + pygtk2 + python + gnome-python2-canvas + usermode + ntp + chkconfig + rhpl + bash + sh-utils + + + + gimp-print + + bash + glibc + ghostscript + zlib + + + + aspell-sv + + aspell + + + + wireless-tools + + glibc + + + + passwd + + pam + glibc + glib2 + popt + libuser + + + + php-ldap + + php + perl + bash + glibc + openldap + + + + quota + + kernel + initscripts + glibc + + + + isdn4k-utils-vboxgetty + + isdn4k-utils + tcl + glibc + + + + SDL + + glibc + XFree86-libs + + + + gdk-pixbuf + + glibc + gtk+ + glib + libjpeg + libpng + libtiff + XFree86-libs + zlib + + + + desktop-file-utils + + glibc + glib2 + popt + + + + gdm + + shadow-utils + scrollkeeper + gtk2 + libglade2 + libgnomeui + libgnomecanvas + librsvg2 + libxml2 + pam + xinitrc + usermode + xsri + util-linux + redhat-artwork + redhat-menus + bash + libart_lgpl + atk + libbonobo + bonobo-activation + libbonoboui + glibc + GConf2 + glib2 + libgnome + gnome-vfs2 + XFree86-libs + linc + ORBit2 + pango + popt + zlib + + + + libwnck + + glib2 + gtk2 + glibc + atk + pango + + + + eel2 + + gtk2 + libgnomeui + gnome-vfs2 + librsvg2 + bonobo-activation + libxml2 + libart_lgpl + glibc + atk + libbonobo + libbonoboui + gail + GConf2 + libglade2 + glib2 + libgnome + libgnomecanvas + XFree86-libs + linc + ORBit2 + pango + zlib + + + + atk + + glibc + glib2 + + + + usermode + + util-linux + pam + glibc + glib2 + libuser + + + + hesiod-devel + + hesiod + + + + sendmail-doc + + + + + qt-designer + + qt-devel + glibc + qt + fontconfig + XFree86-Mesa-libGL + XFree86-Mesa-libGLU + XFree86-libs + Xft + zlib + + + + kdelibs + + qt + arts + cups-libs + glibc + bash + perl + python + audiofile + bzip2-libs + libgcc + XFree86-libs + libjpeg + pcre + libpng + libstdc++ + libtiff + libxml2 + libxslt + zlib + + + + postgresql-contrib + + postgresql-libs + postgresql + bash + sh-utils + perl + krb5-libs + openssl + glibc + pam + readline + libtermcap + zlib + perl-DBD-Pg + perl-DBI + postgresql-perl + perl-Time-HiRes + + + + gsl + + info + glibc + + + + pam + + cracklib + cracklib-dicts + glib + initscripts + grep + mktemp + sed + fileutils + textutils + glibc + bash + db4 + + + + mozilla-dom-inspector + + fileutils + mozilla + bash + glibc + mozilla-nspr + compat-libstdc++ + zlib + + + + librsvg2-devel + + librsvg2 + gtk2-devel + libxml2-devel + freetype-devel + libart_lgpl-devel + + + + ac-archive + + autoconf + perl + automake + + + + bonobo-activation-devel + + bonobo-activation + ORBit2-devel + libxml2-devel + glib2-devel + + + + anaconda-runtime + + + + + mozilla-nspr-devel + + mozilla-nspr + bash + + + + redhat-config-mouse + + pygtk2 + python + usermode + rhpl + pyxf86config + bash + + + + openldap-servers + + fileutils + make + openldap + openssl + shadow-utils + chkconfig + bash + perl + krb5-libs + glibc + gdbm + libtool-libs + pam + cyrus-sasl + + + + perl-XML-Twig + + perl + perl-XML-Parser + + + + stunnel + + textutils + fileutils + mktemp + glibc + words + net-tools + sh-utils + glibc-common + make + openssl + + + + ddskk + + emacs + apel + + + + kdeartwork-kworldclock + + kdetoys + + + + gnome-system-monitor + + libgnomeui + libgtop2 + libwnck + bash + libart_lgpl + atk + libbonobo + bonobo-activation + libbonoboui + glibc + GConf2 + gtk2 + glib2 + libgnome + libgnomecanvas + gnome-vfs2 + XFree86-libs + linc + ORBit2 + pango + libxml2 + zlib + + + + cdp + + glibc + ncurses + + + + findutils + + info + bash + glibc + + + + isicom + + bash + glibc + + + + popt + + glibc + + + + finger-server + + xinetd + glibc + + + + fontconfig + + freetype + bash + glibc + expat + + + + up2date-gnome + + up2date + usermode + pam + pygtk2 + pygtk2-libglade + gnome-python2 + gnome-python2-canvas + usermode-gtk + python + + + + patchutils + + bash + perl + glibc + + + + sox-devel + + + + + XFree86-tools + + XFree86 + bash + perl + glibc + freetype + XFree86-Mesa-libGL + XFree86-Mesa-libGLU + XFree86-libs + + + + gcc-c++ + + gcc + libstdc++ + libstdc++-devel + glibc + + + + gimp-print-utils + + gimp-print + glibc + ncurses + readline + zlib + + + + gsl-devel + + gsl + bash + + + + iptables + + kernel + chkconfig + bash + glibc + + + + kinput2-canna-wnn6 + + bash + Canna-libs + glibc + XFree86-libs + Wnn6-SDK + + + + kviewshell-devel + + kviewshell + + + + perl-XML-Dumper + + perl + perl-XML-Parser + + + + unix2dos + + glibc + + + + licq-text + + licq + glibc + libgcc + ncurses + libstdc++ + + + + libdbi-devel + + libdbi + + + + prelink + + glibc + kernel + + + + compat-gcc-c++ + + compat-gcc + compat-libstdc++ + compat-libstdc++-devel + glibc + + + + kdepim-cellphone + + kdepim + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + bitmap-fonts + + fontconfig + bash + + + + gdbm-devel + + gdbm + info + bash + + + + kdvi + + bash + glibc + kdelibs + libgcc + XFree86-libs + kviewshell + libpng + qt + libstdc++ + zlib + + + + kdeaddons-noatun + + noatun + kdemultimedia-arts + arts + kdelibs + audiofile + glibc + libgcc + XFree86-libs + libpng + qt + SDL + libstdc++ + zlib + + + + aumix-X11 + + aumix + glibc + gtk+ + glib + gpm + ncurses + XFree86-libs + + + + libelf-devel + + libelf + + + + tetex-dvips + + tetex + psutils + bash + glibc + + + + perl-CPAN + + perl + + + + patch + + glibc + + + + mew-xemacs + + xemacs + mew-common + + + + libelf + + glibc + + + + kdesdk-kspy + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + libgnome-devel + + libgnome + zlib-devel + esound-devel + ORBit2-devel + glib2-devel + libbonobo-devel + GConf2-devel + gnome-vfs2-devel + libxml2-devel + libxslt-devel + bonobo-activation-devel + + + + taipeifonts + + grep + XFree86-font-utils + textutils + mktemp + bash + + + + gnome-python2 + + gnome-python2-bonobo + libart_lgpl + atk + libbonobo + bonobo-activation + libbonoboui + glibc + GConf2 + gtk2 + glib2 + libgnome + libgnomecanvas + libgnomeui + gnome-vfs2 + XFree86-libs + linc + ORBit2 + pango + libxml2 + zlib + + + + pcre-devel + + pcre + bash + + + + dump + + setup + rmt + + + + nut + + nut-client + fileutils + chkconfig + initscripts + glibc + + + + openssh-askpass + + openssh + glibc + XFree86-libs + + + + rdesktop + + openssl + glibc + XFree86-libs + + + + sed + + info + bash + glibc + + + + LPRng + + chkconfig + mktemp + fileutils + textutils + gawk + bash + krb5-libs + glibc + + + + pygtk2-libglade + + pygtk2 + atk + glibc + gtk2 + libglade2 + glib2 + pango + libxml2 + zlib + + + + mgetty + + info + mktemp + bash + glibc + + + + ark + + zip + unzip + tar + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + mdadm + + bash + glibc + + + + XFree86-xtrap-clients + + XFree86 + glibc + XFree86-libs + + + + libaio + + initscripts + glibc + + + + libart_lgpl-devel + + libart_lgpl + bash + + + + xawtv + + XFree86 + XFree86-font-utils + usermode + bash + glibc + XFree86-libs + libjpeg + ncurses + + + + libungif-progs + + libungif + bash + perl + glibc + XFree86-libs + + + + kernel-debug + + fileutils + modutils + initscripts + mkinitrd + bash + + + + indexhtml + + + + + libmng-static + + + + + timidity++ + + arts + glibc + ncurses + libogg + slang + libvorbis + + + + finger + + glibc + + + + glibc-debug-static + + glibc + glibc-devel + + + + libpng + + glibc + zlib + + + + libgnomeprint + + urw-fonts + ghostscript + ghostscript-fonts + libxml + perl + XFree86 + bash + glibc + libart_lgpl + libbonobo + bonobo-activation + freetype + glib2 + linc + ORBit2 + pango + popt + libxml2 + zlib + + + + irb + + ruby + sh-utils + + + + kdebindings + + kdelibs + kdebase + glibc + libgcc + gtk+ + glib + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + kterm + + utempter + glibc + XFree86-libs + ncurses + + + + libole2-devel + + libole2 + bash + + + + gnome-terminal + + vte + bash + libart_lgpl + atk + libbonobo + bonobo-activation + libbonoboui + glibc + GConf2 + gtk2 + libglade2 + glib2 + libgnome + libgnomecanvas + libgnomeui + gnome-vfs2 + XFree86-libs + linc + ORBit2 + pango + popt + libxml2 + zlib + + + + perl-DateManip + + perl + + + + wl + + emacs + wl-common + flim + + + + cyrus-sasl + + glibc + chkconfig + initscripts + bash + krb5-libs + db4 + gdbm + pam + + + + WindowMaker + + cpp + glibc + bash + perl + libjpeg + libpng + libtiff + libungif + WindowMaker-libs + XFree86-libs + zlib + + + + Guppi-devel + + Guppi + gnome-libs-devel + gnome-print-devel + bonobo-devel + + + + pydict + + pygtk2 + bash + + + + newt + + slang + glibc + popt + + + + xchat + + perl + gnome-libs + audiofile + openssl + glibc + esound + gtk+ + imlib + gdk-pixbuf + glib + XFree86-libs + + + + gnome-print + + gnome-libs + urw-fonts + ghostscript + ghostscript-fonts + libxml + perl + XFree86 + libgnomeprint15 + bash + audiofile + glibc + esound + freetype + gtk+ + imlib + gdk-pixbuf + glib + XFree86-libs + zlib + + + + mrtg + + perl + gd + bash + glibc + libpng + zlib + perl-CGI + perl-URI + + + + Xaw3d-devel + + Xaw3d + bash + + + + kfile-pdf + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + sysstat + + kernel + sh-utils + textutils + grep + fileutils + vixie-cron + bash + glibc + + + + fonts-ISO8859-2 + + chkfontpath + XFree86-font-utils + bash + + + + arts-devel + + bash + glibc + libgcc + arts + libstdc++ + + + + kdeartwork-screensavers + + kdebase + glibc + kdelibs + libgcc + XFree86-Mesa-libGL + XFree86-Mesa-libGLU + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + iptables-ipv6 + + iptables + bash + glibc + + + + lsof + + glibc + + + + binutils + + info + bash + glibc + + + + freetype-demos + + freetype + glibc + XFree86-libs + + + + perl-RPM2 + + perl + glibc + libelf + popt + rpm + + + + namazu + + perl + perl-File-MMagic + perl-NKF + kakasi + perl-Text-Kakasi + glibc + + + + ElectricFence + + glibc + bash + + + + autoconvert-xchat + + xchat + glibc + + + + Gtk-Perl + + perl + gtk+ + gtkglarea + gnome-libs + audiofile + glibc + esound + imlib + gdk-pixbuf + libglade + glib + XFree86-Mesa-libGL + XFree86-Mesa-libGLU + XFree86-libs + libjpeg + libpng10 + libxml + zlib + perl-libwww-perl + + + + cdicconf + + perl + gtk+ + glibc + libglade + glib + XFree86-libs + libxml + zlib + + + + krbafs-utils + + krbafs + glibc + krb5-libs + + + + byacc + + glibc + + + + memprof + + bash + libart_lgpl + atk + binutils + libbonobo + bonobo-activation + libbonoboui + glibc + GConf2 + gtk2 + libglade2 + glib2 + libgnome + libgnomecanvas + libgnomeui + gnome-vfs2 + XFree86-libs + linc + ORBit2 + pango + popt + libxml2 + zlib + + + + redhat-rpm-config + + rpm-build + bash + perl + + + + kde-i18n-Japanese + + + + + compat-slang + + glibc + + + + perl-Inline + + perl + + + + gtkglarea + + XFree86 + gtk+ + glibc + bash + + + + mod_perl + + httpd + perl + glibc + + + + glibc-kernheaders + + fileutils + initscripts + bash + + + + specspo + + + + + redhat-config-printer-gui + + redhat-config-printer + pygtk2 + pygtk2-libglade + gnome-python2 + gnome-python2-gtkhtml2 + usermode + python + + + + ncurses + + glibc + bash + + + + nfs-utils + + kernel + portmap + sed + gawk + sh-utils + fileutils + textutils + grep + chkconfig + shadow-utils + util-linux + bash + glibc + + + + gal + + + + + gedit + + scrollkeeper + GConf2 + bash + libart_lgpl + atk + libbonobo + bonobo-activation + libbonoboui + glibc + eel2 + gail + gtk2 + libglade2 + glib2 + libgnome + libgnomecanvas + libgnomeprint + libgnomeprintui + libgnomeui + gnome-vfs2 + XFree86-libs + linc + ORBit2 + pango + popt + libxml2 + zlib + + + + libpng10 + + glibc + zlib + + + + squirrelmail + + httpd + php + perl + tmpwatch + postfix + bash + sh-utils + + + + imap + + pam + xinetd + bash + krb5-libs + openssl + glibc + + + + metacity + + redhat-artwork + bash + atk + glibc + GConf2 + gtk2 + libglade2 + glib2 + XFree86-libs + linc + ORBit2 + pango + libxml2 + zlib + + + + xpdf-japanese + + xpdf + + + + librep + + info + gmp + glibc + bash + gdbm + ncurses + readline + + + + busybox-anaconda + + glibc + + + + readline-devel + + readline + + + + amanda-client + + fileutils + grep + initscripts + xinetd + amanda + bash + glibc + readline + libtermcap + + + + kdeaddons-knewsticker + + kdebase + kdenetwork-libs + knewsticker + + + + pam_krb5 + + krbafs + krb5-libs + glibc + + + + irda-utils + + chkconfig + grep + modutils + bash + glibc + glib + + + + hwcrypto + + chkconfig + initscripts + gawk + bash + glibc + + + + kdebindings-kmozilla + + mozilla + kdebase + glibc + kdebindings + kdelibs + libgcc + gtk+ + glib + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + cdparanoia-libs + + bash + glibc + + + + perl-DBD-MySQL + + perl + perl-DBI + glibc + mysql + zlib + + + + kaboodle + + arts + kdelibs + audiofile + glibc + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + tripwire + + sed + grep + gzip + tar + gawk + bash + + + + cdecl + + glibc + readline + libtermcap + + + + net-snmp-devel + + net-snmp + + + + libart_lgpl + + glibc + + + + freetype-devel + + freetype + bash + + + + libxml + + info + glibc + zlib + + + + tetex + + tmpwatch + dialog + ed + info + sh-utils + tetex-fonts + bash + perl + glibc + libgcc + libpng + libstdc++ + + + + ksymoops + + glibc + + + + gimp + + gtk+ + desktop-file-utils + glibc + bash + glib + gnome-libs + XFree86-libs + libjpeg + libpng + libpng10 + libtiff + zlib + + + + Canna + + chkconfig + setup + grep + fileutils + bash + Canna-libs + glibc + + + + Wnn6-SDK-devel + + Wnn6-SDK + + + + openmotif21 + + glibc + XFree86-libs + + + + make + + info + bash + glibc + + + + balsa + + gtk+ + gnome-libs + audiofile + openssl + glibc + esound + libesmtp + freetype + libgal19 + libgcc + imlib + gdk-pixbuf + libglade + glib + gdk-pixbuf-gnome + libgnomeprint15 + krb5-libs + gtkhtml + XFree86-libs + openldap + libtool-libs + pcre + pspell + libstdc++ + libxml + zlib + + + + slang-devel + + slang + sh-utils + + + + ruby-mode + + emacs + + + + vnc-server + + XFree86 + bash + chkconfig + perl + glibc + XFree86-libs + zlib + + + + beecrypt-devel + + beecrypt + + + + gconf-editor + + atk + glibc + GConf2 + gtk2 + glib2 + linc + ORBit2 + pango + + + + ipchains + + chkconfig + sh-utils + initscripts + bash + glibc + + + + karm + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + itcl + + glibc + bash + tcl + tk + + + + kde-i18n-Korean + + + + + php-dbg-server + + php + perl + bash + glibc + + + + SDL_image-devel + + SDL_image + SDL-devel + + + + kit + + glibc + kdelibs + libgcc + XFree86-libs + libjpeg + libpng + qt + libstdc++ + zlib + + + + fam-devel + + fam + + + + exmh + + nmh + tk + + + + perl-Filter + + glibc + perl + + + + libgcj-devel + + zip + libgcj + gawk + + + + gnome-utils + + bash + libart_lgpl + atk + libbonobo + bonobo-activation + libbonoboui + glibc + e2fsprogs + GConf2 + gtk2 + libglade2 + glib2 + libgnome + libgnomecanvas + libgnomeui + gnome-vfs2 + XFree86-libs + linc + ncurses + ORBit2 + gnome-panel + pango + popt + libxml2 + zlib + + + + gnome-python2-canvas + + libgnomecanvas + gtk2 + pygtk2 + libart_lgpl + atk + glibc + glib2 + pango + + + + libxml10 + + info + glibc + + + + gqview + + gtk+ + imlib + desktop-file-utils + glibc + gdk-pixbuf + glib + libpng + XFree86-libs + zlib + + + + ImageMagick-perl + + ImageMagick + perl + bzip2-libs + glibc + XFree86-libs + freetype + libjpeg + libpng + libtiff + libxml2 + zlib + + + + cups-libs + + glibc + openssl + libjpeg + libpng + libtiff + zlib + + + + GConf2-devel + + GConf2 + libxml2-devel + ORBit2-devel + glib2-devel + + + + ghostscript-devel + + ghostscript + bash + + + + slrn + + slang + sh-utils + openssl + glibc + + + + ORBit2-devel + + indent + glib2-devel + linc-devel + libIDL-devel + ORBit2 + bash + glibc + glib2 + libIDL + linc + popt + + + + kdeadmin + + glibc + kdelibs + usermode + libgcc + XFree86-libs + libjpeg + pam + libpng + qt + libstdc++ + zlib + + + + gzip + + info + mktemp + less + bash + glibc + + + + lilo + + mkinitrd + bash + glibc + + + + kde-i18n-Russian + + + + + nss_db-compat + + glibc + + + + dejagnu + + tcl + expect + bash + + + + librsvg2 + + gtk2 + libxml2 + popt + freetype + libart_lgpl + libpng + glibc + + + + kernel-uml + + kernel-utils + + + + redhat-logviewer + + pygtk2 + python + usermode + bash + sh-utils + + + + spamassassin + + perl + chkconfig + perl-Net-DNS + perl-Time-HiRes + procmail + bash + glibc + db4 + gdbm + mrtg + + + + rhn-applet + + python + rpm + rpm-python + rhnlib + pygtk2-libglade + pygtk2 + up2date-gnome + gnome-python2 + libgnomeui + libgnome + gnome-python2-gtkhtml2 + up2date + e2fsprogs + bash + libart_lgpl + atk + libbonobo + bonobo-activation + libbonoboui + glibc + GConf2 + gtk2 + glib2 + libgnomecanvas + gnome-vfs2 + XFree86-libs + linc + ORBit2 + pango + libxml2 + zlib + + + + mysql + + glibc + info + grep + fileutils + chkconfig + bash + perl-DBI + perl-DBD-MySQL + perl + libgcc + ncurses + readline + libstdc++ + zlib + perl-CGI + + + + netconfig + + glibc + newt + + + + libgnomeprintui + + gtk2 + libgnomeprint + libgnomecanvas + glibc + libart_lgpl + atk + libbonobo + bonobo-activation + glib2 + linc + ORBit2 + pango + libxml2 + zlib + + + + kde-i18n-Chinese + + + + + libpcap + + kernel + openssl + glibc + + + + w3c-libwww + + glibc + zlib + + + + kdessh + + openssh-clients + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + tuxracer + + glibc + libgcc + XFree86-Mesa-libGL + XFree86-Mesa-libGLU + XFree86-libs + SDL + libstdc++ + tcl + + + + skkinput + + dbskkd-cdb + glibc + XFree86-libs + + + + lokkit + + iptables + glibc + newt + popt + slang + + + + kernel-utils + + chkconfig + initscripts + fileutils + bash + openssl + glibc + ncurses + readline + net-snmp + + + + compat-pwdb + + glibc + + + + kfax + + glibc + kdelibs + libgcc + XFree86-libs + libjpeg + kviewshell + libpng + qt + libstdc++ + libtiff + zlib + + + + libattr-devel + + libattr + + + + kdebase + + kdelibs + libxml2 + xinitrc + XFree86-xdm + cdparanoia-libs + desktop-backgrounds-basic + redhat-menus + redhat-artwork + shadow-utils + fileutils + desktop-file-utils + lm_sensors + glibc + sh-utils + XFree86-xfs + bash + arts + audiofile + openssl + freetype + libgcc + XFree86-libs + libjpeg + openldap + pam + libpng + qt + libstdc++ + libvorbis + zlib + + + + gd-devel + + gd + + + + kjots + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + cups-drivers-hpijs + + hpijs + ghostscript + initscripts + bash + + + + postgresql-devel + + postgresql-libs + bash + krb5-libs + openssl + glibc + pam + readline + libtermcap + zlib + + + + eruby-devel + + eruby-libs + + + + desktop-backgrounds-extra + + + + + w3m-el + + w3m-el-common + emacs + flim + w3m + + + + bonobo-activation + + linc + glibc + perl + glib2 + ORBit2 + popt + libxml2 + zlib + + + + w3c-libwww-devel + + w3c-libwww + bash + + + + ktimer + + kdelibs + glibc + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + magicdev + + gnome-mime-data + bash + libart_lgpl + atk + libbonobo + bonobo-activation + libbonoboui + glibc + GConf2 + gtk2 + libglade2 + glib2 + libgnome + libgnomecanvas + libgnomeui + gnome-vfs2 + XFree86-libs + linc + ORBit2 + pango + libxml2 + zlib + + + + perl-TermReadKey + + glibc + perl + + + + pyOpenSSL + + openssl + glibc + + + + rsync + + glibc + popt + + + + libgnat + + glibc + libgcc + + + + libpng-devel + + libpng + zlib-devel + + + + g-wrap-devel + + info + g-wrap + guile-devel + bash + guile + + + + gcc-g77 + + gcc + libf2c + info + bash + glibc + + + + termcap + + + + + tetex-latex + + tetex + netpbm-progs + bash + perl + + + + vnc-doc + + + + + klettres + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + kdebindings-qtjava + + qt + libgcj + jdkgcj + glibc + libgcc + libstdc++ + XFree86-libs + + + + cWnn + + FreeWnn-common + cWnn-common + shadow-utils + chkconfig + bash + glibc + + + + vnc + + chkconfig + initscripts + glibc + XFree86-libs + libjpeg + zlib + + + + xemacs + + info + ctags + bash + sh-utils + perl + Canna-libs + glibc + db4 + XFree86-libs + libjpeg + openldap + ncurses + libpng + postgresql-libs + libtiff + FreeWnn-libs + openmotif + zlib + + + + libgal19 + + gal + glibc + gtk+ + glib + XFree86-libs + + + + kdesdk-kbugbuster + + glibc + kdelibs + libgcc + XFree86-libs + libjpeg + libpng + qt + libstdc++ + zlib + + + + sysklogd + + fileutils + chkconfig + bash + glibc + + + + dvdrecord + + glibc + + + + kedit + + kdelibs + glibc + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + GConf2 + + info + glibc + atk + gtk2 + glib2 + linc + ORBit2 + pango + popt + libxml2 + zlib + + + + sylpheed + + gtk+ + glibc + gdk-pixbuf + glib + XFree86-libs + + + + libgtop2 + + glib2 + glibc + + + + glibc + + glibc-common + basesystem + glibc + + + + XFree86 + + utempter + cpp + XFree86-xauth + Glide3 + XFree86-xfs + XFree86-libs + XFree86-base-fonts + pam + kernel + fileutils + chkfontpath + XFree86-font-utils + bash + perl + glibc + freetype + XFree86-Mesa-libGL + ncurses + zlib + + + + x3270-x11 + + x3270 + bash + glibc + XFree86-libs + + + + Wnn6-SDK + + fileutils + bash + glibc + + + + kdepim-pilot + + kdepim + glibc + kdelibs + libgcc + XFree86-libs + pilot-link + libpng + qt + libstdc++ + zlib + + + + libtermcap-devel + + libtermcap + bash + + + + epic + + glibc + ncurses + + + + libtiff-devel + + libtiff + + + + FreeWnn-devel + + bash + + + + bc + + info + grep + bash + glibc + ncurses + readline + + + + compat-gcc + + binutils + glibc-devel + info + glibc + + + + gtkam-gimp + + gtkam + gimp + fileutils + gawk + sh-utils + bash + glibc + gtk+ + gdk-pixbuf + glib + gphoto2 + XFree86-libs + + + + wget + + info + bash + openssl + glibc + + + + kdesdk-kapptemplate + + bash + sh-utils + + + + libdbi-dbd-mysql + + libdbi + glibc + mysql + + + + sawfish + + librep + rep-gtk + info + bash + atk + audiofile + glibc + esound + gtk2 + glib2 + gmp + XFree86-libs + imlib + libjpeg + pango + libpng + libtiff + libungif + zlib + + + + kdepim-devel + + kdepim + + + + kdemultimedia-arts + + kdemultimedia-libs + glibc + arts + kdelibs + audiofile + libgcc + XFree86-libs + libogg + libpng + qt + libstdc++ + libvorbis + zlib + + + + postgresql + + glibc + initscripts + postgresql-libs + bash + krb5-libs + openssl + pam + readline + libtermcap + zlib + + + + mgetty-voice + + mgetty + glibc + + + + freetype-utils + + freetype + glibc + XFree86-libs + + + + redhat-config-bind + + python + alchemist + gtk2 + gnome-python2 + bind + 4Suite + usermode + bash + + + + words + + bash + + + + FreeWnn-common + + grep + textutils + shadow-utils + bash + + + + redhat-config-xfree86 + + pygtk2 + pygtk2-libglade + python + usermode + hwdata + kudzu + pyxf86config + rhpl + bash + + + + dialog + + bash + glibc + ncurses + + + + pccts + + glibc + + + + glib2 + + glibc + + + + ncurses-c++-devel + + ncurses + + + + kdesdk-kmtrace + + bash + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + hesiod + + glibc + + + + libmrproject-devel + + libmrproject + gtk+-devel + glibc + + + + kde-i18n-Finnish + + + + + webalizer + + shadow-utils + fileutils + bash + glibc + db4 + gd + libpng + zlib + + + + kernel-BOOT + + fileutils + modutils + bash + + + + SDL_image + + glibc + libjpeg + libpng + SDL + libtiff + zlib + + + + httpd-devel + + libtool + httpd + perl + + + + kdesdk-gimp + + gimp + + + + xemacs-el + + xemacs + + + + pilot-link095-compat + + glibc + + + + shapecfg + + kernel + iproute + bash + glibc + + + + dhcp-devel + + dhcp + + + + GConf + + info + glib + oaf + gtk+ + ORBit + libxml + bash + glibc + popt + XFree86-libs + zlib + + + + sox + + bash + glibc + libogg + libvorbis + + + + bdflush + + glibc + + + + pcre + + glibc + + + + sane-frontends + + gtk+ + gimp + sane-backends + glibc + glib + libjpeg + libusb + XFree86-libs + + + + aspell-devel + + pspell-devel + aspell + + + + sane-backends + + glibc + mktemp + grep + textutils + fileutils + bash + libjpeg + libusb + + + + php-snmp + + php + perl + bash + glibc + net-snmp + + + + man-pages-ru + + + + + recode-devel + + recode + + + + ctags + + glibc + + + + tcpdump + + kernel + bash + openssl + glibc + + + + zisofs-tools + + glibc + zlib + + + + kde-i18n-Polish + + + + + docbook-utils + + docbook-style-dsssl + docbook-dtds + perl-SGMLSpm + which + bash + perl + + + + qt-MySQL + + qt + glibc + fontconfig + XFree86-Mesa-libGL + XFree86-Mesa-libGLU + XFree86-libs + mysql + Xft + + + + traceroute + + glibc + + + + cyrus-sasl-plain + + cyrus-sasl + glibc + pam + + + + file-roller + + scrollkeeper + GConf2 + bash + libart_lgpl + atk + libbonobo + bonobo-activation + libbonoboui + glibc + gtk2 + libglade2 + glib2 + libgnome + libgnomecanvas + libgnomeui + gnome-vfs2 + XFree86-libs + linc + ORBit2 + pango + popt + libxml2 + zlib + + + + mod_auth_pgsql + + httpd + glibc + postgresql-libs + + + + XFree86-truetype-fonts + + chkfontpath + XFree86-font-utils + bash + + + + gnome-python2-applet + + libart_lgpl + atk + libbonobo + bonobo-activation + libbonoboui + glibc + GConf2 + gtk2 + glib2 + libgnome + libgnomecanvas + libgnomeui + gnome-vfs2 + XFree86-libs + linc + ORBit2 + gnome-panel + pango + libxml2 + zlib + + + + libcapplet0-devel + + libcapplet0 + gnome-libs-devel + + + + rp-pppoe + + chkconfig + initscripts + fileutils + ppp + kernel + bash + glibc + + + + info + + bash + glibc + ncurses + + + + pwlib-devel + + pwlib + openssl + glibc + expat + libgcc + libstdc++ + + + + attr + + glibc + libattr + + + + kdesdk-kompare + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + man-pages-it + + + + + mtr + + glibc + ncurses + libtermcap + + + + cervisia + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + fontconfig-devel + + fontconfig + freetype-devel + bash + + + + autofs + + chkconfig + bash + mktemp + sed + gawk + textutils + sh-utils + grep + procps + redhat-release + glibc + hesiod + openldap + + + + ppp + + glibc + pam + bash + + + + autoconf + + info + gawk + m4 + mktemp + perl + textutils + bash + + + + xinitrc + + XFree86 + bash + switchdesk + + + + pam-devel + + pam + + + + mozilla-mail + + fileutils + mozilla + bash + glibc + mozilla-nspr + compat-libstdc++ + + + + ypserv + + gawk + make + portmap + bash + chkconfig + initscripts + glibc + gdbm + + + + arpwatch + + chkconfig + initscripts + bash + glibc + + + + gnome-vfs + + glib + GConf + oaf + gnome-mime-data + glibc + bash + perl + bzip2-libs + openssl + gtk+ + ORBit + XFree86-libs + libxml + zlib + + + + mailx + + glibc + + + + ksirc + + perl + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + perl-Date-Calc + + glibc + perl-Bit-Vector + perl + + + + diffutils + + info + bash + glibc + + + + ruby-docs + + + + + curl + + bash + openssl + glibc + + + + hpijs + + ghostscript + glibc + libgcc + libstdc++ + + + + tix + + glibc + tcl + tk + + + + gnuplot + + gd + libpng + glibc + XFree86-libs + ncurses + readline + zlib + + + + perl-NKF + + glibc + perl + + + + nc + + bash + glibc + + + + kgeo + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + kviewshell + + kview + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + cups-drivers + + cups + ghostscript + initscripts + bash + + + + plugger + + mozilla + mikmod + xloadimage + sox + glibc + XFree86-libs + + + + FreeWnn + + chkconfig + grep + textutils + shadow-utils + FreeWnn-common + bash + glibc + + + + korn + + glibc + kdelibs + libgcc + XFree86-libs + kdenetwork-libs + libpng + qt + libstdc++ + zlib + + + + gnome-session + + redhat-artwork + redhat-logos + GConf2 + bash + libart_lgpl + atk + audiofile + libbonobo + bonobo-activation + libbonoboui + glibc + esound + gtk2 + glib2 + libgnome + libgnomecanvas + libgnomeui + gnome-vfs2 + XFree86-libs + linc + ORBit2 + pango + libxml2 + zlib + + + + kdeartwork + + kdebase + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + GConf-devel + + GConf + ORBit-devel + glib-devel + oaf-devel + gtk+-devel + bash + + + + perl-Digest-HMAC + + perl-Digest-SHA1 + perl + + + + gnome-desktop + + redhat-artwork + redhat-menus + bash + glibc + libart_lgpl + atk + libbonobo + bonobo-activation + libbonoboui + GConf2 + gtk2 + glib2 + libgnome + libgnomecanvas + libgnomeui + gnome-vfs2 + XFree86-libs + linc + ORBit2 + pango + libxml2 + zlib + + + + htdig-web + + htdig + glibc + libgcc + libstdc++ + zlib + + + + libogg + + glibc + + + + ncompress + + glibc + + + + pwlib + + glibc + openssl + expat + libgcc + libstdc++ + + + + dos2unix + + glibc + + + + qt2-designer + + qt2-devel + glibc + XFree86-libs + libjpeg + libmng + libpng + compat-libstdc++ + zlib + + + + xemacs-info + + xemacs + bash + + + + hanterm-xf + + XFree86-libs + Xaw3d + ttfonts-ko + glibc + libtermcap + utempter + + + + libgnomecanvas + + gtk2 + glibc + libart_lgpl + atk + libglade2 + glib2 + pango + libxml2 + zlib + + + + time + + info + bash + glibc + + + + kxmlrpcd + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + gnome-lokkit + + gnome-libs + iptables + audiofile + glibc + esound + gtk+ + imlib + glib + XFree86-libs + + + + nasm + + info + bash + glibc + + + + gv + + ghostscript + glibc + XFree86-libs + Xaw3d + + + + cyrus-sasl-md5 + + cyrus-sasl + openssl + glibc + + + + gkermit + + glibc + + + + iputils + + glibc + + + + perl-HTML-Tagset + + perl + + + + XFree86-cyrillic-fonts + + chkfontpath + XFree86-font-utils + bash + + + + python-optik + + python + + + + redhat-switchmail + + newt + chkconfig + python + sh-utils + + + + gd + + glibc + freetype + libjpeg + libpng + zlib + + + + pciutils-devel + + + + + recode + + info + glibc + bash + + + + php-pgsql + + php + perl + krb5-libs + openssl + postgresql-libs + bash + glibc + + + + fileutils + + info + grep + bash + libacl + glibc + libtermcap + + + + xsnow + + glibc + XFree86-libs + + + + wmix + + glibc + XFree86-libs + + + + dtach + + glibc + + + + klprfax + + LPRng + kdebase + bash + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + gcc-objc + + gcc + libobjc + glibc + + + + kview + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + rpm-devel + + rpm + glibc + bzip2-libs + libelf + popt + + + + tcllib + + glibc + + + + lftp + + bash + openssl + glibc + libgcc + ncurses + readline + libstdc++ + + + + unzip + + bash + glibc + + + + psacct + + info + bash + glibc + + + + openssl096 + + glibc + + + + kcc + + glibc + + + + linc-devel + + linc + pkgconfig + glib2-devel + bash + glibc + glib2 + + + + mkisofs + + glibc + + + + XFree86-Xnest + + XFree86 + glibc + pam + XFree86-libs + zlib + + + + gtk2 + + glib2 + atk + pango + bash + glibc + fontconfig + freetype + libjpeg + libpng + libtiff + XFree86-libs + Xft + + + + gtk+ + + glib + glibc + XFree86-libs + + + + apmd + + chkconfig + initscripts + bash + glibc + + + + ghostscript + + VFlib2 + zlib + libpng + glib + urw-fonts + ghostscript-fonts + Omni + bash + perl + glibc + cups-libs + gimp-print + XFree86-libs + libstdc++ + freetype + + + + bind-devel + + bind + bash + + + + gnucash + + glibc + info + bash + perl + gnome-libs + audiofile + bonobo + esound + freetype + libgal19 + gtk+ + imlib + gdk-pixbuf + libghttp + libglade + glib + gdk-pixbuf-gnome + libgnomeprint15 + gtkhtml + guile + Guppi + g-wrap + XFree86-libs + ORBit + oaf + popt + libxml + zlib + perl-CPAN + + + + dia + + libxml + redhat-menus + gnome-libs + audiofile + glibc + esound + gtk+ + imlib + gdk-pixbuf + glib + XFree86-libs + libpng + popt + libunicode + zlib + + + + fbset + + perl + glibc + + + + mozilla-devel + + mozilla + glibc + glib + ORBit + mozilla-nspr + compat-libstdc++ + + + + a2ps + + fileutils + sh-utils + info + psutils + bash + perl + glibc + + + + booty + + rhpl + glibc + + + + kdenetwork-libs + + qt + kdelibs + glibc + libgcc + XFree86-libs + libpng + libstdc++ + zlib + + + + rusers + + glibc + + + + fetchmail + + postfix + krb5-libs + openssl + glibc + hesiod + + + + tora + + glibc + kdelibs + qt + libstdc++ + + + + nss_ldap + + nscd + grep + mktemp + sed + textutils + glibc + bash + openldap + pam + + + + gnome-python2-nautilus + + orbit-python + nautilus + sh-utils + libart_lgpl + atk + libbonobo + bonobo-activation + libbonoboui + glibc + eel2 + gail + GConf2 + gtk2 + libglade2 + glib2 + libgnome + libgnomecanvas + libgnomeui + gnome-vfs2 + XFree86-libs + linc + ORBit2 + pango + libxml2 + zlib + + + + dev + + shadow-utils + fileutils + sed + textutils + mktemp + bash + + + + anaconda + + chkconfig + rpm404-python + rhpl + python + atk + glibc + e2fsprogs + gtk2 + glib2 + pango + popt + XFree86-libs + zlib + + + + mktemp + + glibc + + + + jisksp14 + + XFree86-xfs + bash + + + + imlib-devel + + imlib + libtiff-devel + libjpeg-devel + zlib-devel + gtk+-devel + libungif-devel + XFree86-devel + bash + + + + mkinitrd + + dev + e2fsprogs + bash + fileutils + grep + mount + gzip + tar + modutils + losetup + mktemp + findutils + lvm + filesystem + glibc + + + + reiserfs-utils + + glibc + + + + php-dbg-base + + + + + kakasi + + glibc + bash + + + + nvi-m17n + + fileutils + tcsh + bash + perl + + + + kde-i18n-Catalan + + + + + bridge-utils-devel + + + + + kernel-doc + + + + + macutils + + glibc + + + + gawk + + info + mktemp + bash + glibc + + + + tcl + + glibc + + + + raidtools + + MAKEDEV + bash + glibc + + + + gnome-panel + + gnome-desktop + gawk + textutils + fileutils + bash + glibc + libart_lgpl + atk + libbonobo + bonobo-activation + libbonoboui + GConf2 + gtk2 + libglade2 + glib2 + libgnome + libgnomecanvas + libgnomeui + gnome-vfs2 + XFree86-libs + linc + ORBit2 + pango + libpng + popt + libwnck + libxml2 + zlib + + + + octave + + gnuplot + less + info + bash + glibc + blas + libf2c + libgcc + lapack + ncurses + readline + libstdc++ + + + + gimp-devel + + gtk+-devel + gimp + bash + + + + libbonoboui-devel + + libbonoboui + libxml2-devel + ORBit2-devel + bonobo-activation-devel + libbonobo-devel + libgnomecanvas-devel + libgnome-devel + libart_lgpl-devel + gtk2-devel + libglade2-devel + libart_lgpl + atk + libbonobo + bonobo-activation + glibc + GConf2 + gtk2 + glib2 + libgnome + libgnomecanvas + gnome-vfs2 + linc + ORBit2 + pango + popt + libxml2 + zlib + + + + xpdf + + urw-fonts + bash + glibc + freetype + libgcc + XFree86-libs + libstdc++ + + + + unixODBC-kde + + qt + glibc + libgcc + unixODBC + libstdc++ + XFree86-libs + + + + xpdf-korean + + xpdf + + + + scrollkeeper + + intltool + docbook-dtds + openjade + bash + glibc + libxml2 + libxslt + zlib + + + + libgnomeui + + ORBit2 + glib2 + pango + gtk2 + GConf2 + gnome-vfs2 + libgnomecanvas + bonobo-activation + libbonobo + libbonoboui + libxml2 + libgnome + libart_lgpl + libglade2 + esound + Xft + fontconfig + glibc + atk + XFree86-libs + linc + popt + zlib + + + + cdda2wav + + glibc + + + + libraw1394 + + bash + glibc + + + + bind-utils + + glibc + openssl + + + + aspell-en-gb + + aspell + + + + redhat-config-language + + pygtk2 + python + usermode + bash + + + + kudzu + + chkconfig + modutils + pam + hwdata + bash + glibc + newt + popt + + + + nmap + + glibc + + + + man-pages-ja + + + + + comsat + + xinetd + glibc + + + + aspell-fr + + aspell + + + + pxe + + chkconfig + bash + glibc + libgcc + libstdc++ + + + + mozilla-psm + + fileutils + mozilla + mozilla-nss + bash + glibc + mozilla-nspr + compat-libstdc++ + + + + zip + + glibc + + + + libstdc++-devel + + libstdc++ + + + + perl + + perl + glibc + db4 + gdbm + perl-Filter + + + + kregexpeditor-devel + + + + + dietlibc + + + + + w3c-libwww-apps + + w3c-libwww + glibc + zlib + + + + telnet-server + + xinetd + glibc + + + + pygtk2-devel + + pygtk2 + bash + + + + sudo + + pam + bash + glibc + + + + bug-buddy + + gdb + libart_lgpl + atk + libbonobo + bonobo-activation + libbonoboui + glibc + GConf2 + gtk2 + libglade2 + glib2 + libgnome + libgnomecanvas + libgnomeui + gnome-vfs2 + XFree86-libs + linc + ORBit2 + pango + libxml2 + zlib + + + + kde-i18n-Hebrew + + + + + ntsysv + + chkconfig + glibc + newt + popt + + + + pinfo + + glibc + ncurses + + + + jisksp16-1990 + + XFree86-xfs + bash + + + + netdump + + openssh + openssh-clients + fileutils + textutils + gawk + net-tools + bash + + + + redhat-config-services + + chkconfig + gnome-python2 + pygtk2 + pygtk2-libglade + gnome-python2-canvas + rhpl + usermode + usermode-gtk + + + + lm_sensors + + glibc + bash + perl + + + + xfig + + transfig + xpdf + ImageMagick + aspell + htmlview + glibc + XFree86-libs + libjpeg + libpng + Xaw3d + zlib + + + + libjpeg-devel + + libjpeg + + + + flim-xemacs + + xemacs + + + + xpdf-chinese-traditional + + xpdf + + + + sip-devel + + sip + + + + htmlview + + redhat-menus + bash + + + + xsri + + atk + glibc + gtk2 + glib2 + pango + popt + XFree86-libs + + + + tar + + info + bash + glibc + + + + perl-File-MMagic + + perl + + + + wu-ftpd + + fileutils + openssl + xinetd + pam + bash + perl + glibc + + + + pilot-link-devel + + pilot-link + + + + keduca + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + kde-i18n-Hungarian + + + + + imlib + + libtiff + libjpeg + zlib + gtk+ + glibc + glib + XFree86-libs + libpng + libungif + + + + logrotate + + bash + glibc + popt + + + + cWnn-common + + FreeWnn-common + shadow-utils + glibc + + + + gnome-libs + + gtk+ + ORBit + imlib + esound + htmlview + utempter + glibc + bash + audiofile + glib + XFree86-libs + libjpeg + libpng10 + zlib + + + + htdig + + bash + glibc + libgcc + libstdc++ + zlib + + + + rdist + + glibc + + + + glibc-devel + + info + glibc-kernheaders + glibc + bash + + + + gcc + + cpp + binutils + glibc-devel + libgcc + info + bash + glibc + + + + sip + + glibc + python + libgcc + qt + libstdc++ + XFree86-libs + + + + mod_ssl + + openssl + dev + textutils + httpd + make + bash + glibc + + + + kghostview + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + librsvg + + glib + gtk+ + libxml + gdk-pixbuf + popt + freetype + libpng + glibc + + + + fonts-ISO8859-2-75dpi + + chkfontpath + XFree86-font-utils + bash + + + + gnome-desktop-devel + + gnome-desktop + glib2-devel + gtk2-devel + GConf2-devel + gnome-vfs2-devel + libgnomeui-devel + libgnome-devel + + + + openoffice-libs + + glibc + db4 + freetype + libgcc + XFree86-libs + libstdc++ + + + + rep-gtk + + librep + gtk2 + bash + atk + glibc + libglade2 + glib2 + pango + libxml2 + zlib + + + + guile-devel + + guile + bash + + + + sndconfig + + sox + kudzu + aumix + kernel + glibc + + + + libxslt-python + + libxslt + libxml2 + python + glibc + + + + tcsh + + fileutils + grep + bash + glibc + libtermcap + + + + nut-client + + chkconfig + bash + glibc + + + + aspell-en-ca + + aspell + + + + librpm404-devel + + librpm404 + popt + + + + nasm-rdoff + + glibc + + + + caching-nameserver + + bind + textutils + grep + bash + + + + wmapm + + glibc + XFree86-libs + + + + pspell + + glibc + bash + libgcc + libtool-libs + libstdc++ + + + + kljettool + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + pyxf86config + + glib2 + python + bash + glibc + + + + libf2c + + glibc + + + + man + + fileutils + less + groff + findutils + mktemp + bash + glibc + + + + zlib-devel + + zlib + + + + miniChinput + + glibc + fontconfig + libgcc + imlib + libstdc++ + XFree86-libs + Xft + + + + bind + + shadow-utils + chkconfig + textutils + fileutils + sed + bind-utils + initscripts + bash + openssl + glibc + + + + logwatch + + perl + textutils + sh-utils + grep + mailx + bash + + + + libglade2-devel + + libglade2 + libxml2-devel + gtk2-devel + python + + + + pvm + + initscripts + bash + tcsh + glibc + + + + rpm404-python + + librpm404 + python + bzip2-libs + glibc + popt + zlib + + + + talk + + glibc + ncurses + + + + libao + + glibc + + + + qt-Xt + + qt + glibc + fontconfig + XFree86-Mesa-libGL + XFree86-Mesa-libGLU + XFree86-libs + Xft + + + + libuser + + glibc + glib2 + openldap + pam + popt + + + + libole2 + + glibc + glib + + + + nss_db + + glibc + make + + + + sgml-common + + sh-utils + fileutils + textutils + grep + bash + + + + kbd + + pam + usermode + sed + mktemp + initscripts + bash + glibc + + + + gcc-gnat + + gcc + libgnat + info + bash + glibc + + + + perl-Archive-Tar + + perl + + + + pine + + krb5-libs + bash + openssl + glibc + openldap + ncurses + pam + + + + mutt + + slang + postfix + wget + bash + krb5-libs + openssl + glibc + cyrus-sasl + + + + transfig + + tcsh + bash + glibc + libjpeg + libpng + zlib + + + + anaconda-images + + anaconda-runtime + + + + netatalk-devel + + + + + tmpwatch + + psmisc + glibc + + + + wvdial + + ppp + glibc + libgcc + lockdev + libstdc++ + libwvstreams + + + + SDL_net-devel + + SDL_net + + + + bonobo-conf-devel + + bonobo-conf + + + + kdemultimedia-devel + + kdemultimedia-arts + noatun + + + + libglade2 + + libxml2 + glibc + atk + gtk2 + glib2 + pango + zlib + + + + kde-i18n-Afrikaans + + + + + jpilot + + gtk+ + pilot-link + glibc + openssl + glib + XFree86-libs + + + + pilot-link + + glibc + libgcc + libpng + readline + libstdc++ + libtermcap + + + + ruby + + ruby-libs + glibc + + + + xcpustate + + glibc + XFree86-libs + + + + perl-Text-Kakasi + + perl + kakasi + glibc + + + + apel + + emacs + + + + at-spi-devel + + at-spi + gtk2-devel + libbonobo-devel + ORBit2-devel + gail-devel + + + + flex + + glibc + + + + am-utils + + portmap + grep + gawk + findutils + info + chkconfig + bash + perl + glibc + gdbm + hesiod + openldap + + + + sendmail-devel + + + + + kde-i18n-Swedish + + + + + python + + bash + sh-utils + openssl + glibc + db4 + expat + gdbm + gmp + ncurses + readline + libtermcap + zlib + + + + splint + + glibc + + + + kdegames + + glibc + arts + audiofile + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + w3m-el-xemacs + + w3m-el-common + xemacs + flim-xemacs + w3m + + + + SysVinit + + pam + bash + glibc + + + + groff-gxditview + + glibc + XFree86-libs + + + + net-snmp-utils + + net-snmp + bash + perl + openssl + glibc + + + + pango + + glib2 + bash + glibc + fontconfig + freetype + XFree86-libs + Xft + + + + wl-common + + info + bash + + + + libstdc++ + + glibc + libgcc + + + + krb5-devel + + krb5-libs + bash + glibc + + + + knm_new + + XFree86-font-utils + bash + + + + compat-gcc-java + + compat-gcc + compat-libgcj + compat-libgcj-devel + glibc + zlib + + + + libjpeg + + glibc + + + + cleanfeed + + perl + + + + expat-devel + + expat + + + + wordtrans-qt + + wordtrans + glibc + libgcc + qt + libstdc++ + + + + qtcups-devel + + + + + psmisc + + glibc + ncurses + + + + kde-i18n-Czech + + + + + xmms-devel + + xmms + bash + + + + kpf + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + wordtrans-kde + + wordtrans + glibc + kdelibs + libgcc + qt + libstdc++ + + + + bonobo + + gnome-libs + ORBit + oaf + libxml + glibc + bash + audiofile + esound + freetype + gtk+ + imlib + gdk-pixbuf + glib + libgnomeprint15 + XFree86-libs + popt + zlib + + + + openssh-askpass-gnome + + openssh + atk + glibc + gtk2 + glib2 + pango + XFree86-libs + + + + kdeaddons-kicker + + kdebase + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + ed + + info + bash + glibc + + + + openoffice + + XFree86 + perl + openoffice-libs + openoffice-i18n + redhat-menus + chkfontpath + XFree86-font-utils + bash + glibc + libgcc + XFree86-libs + mozilla + mozilla-mail + libstdc++ + zlib + + + + xtoolwait + + glibc + XFree86-libs + + + + gpm-devel + + gpm + + + + libgcc + + glibc + + + + zebra + + grep + chkconfig + info + bash + glibc + ncurses + pam + readline + + + + libmng + + zlib + libjpeg + glibc + + + + bitmap-fonts-cjk + + fontconfig + + + + libgcj + + zip + glibc + libgcc + zlib + + + + pvm-gui + + pvm + tcsh + bash + glibc + tcl + tk + XFree86-libs + + + + nhpf + + glibc + + + + kdeutils-laptop + + kdebase + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + bzip2-devel + + bzip2 + bzip2-libs + + + + XFree86-Mesa-libGL + + bash + glibc + XFree86-libs + + + + gperf + + info + bash + glibc + libgcc + libstdc++ + + + + rwall-server + + chkconfig + portmap + bash + glibc + + + + libtabe + + db4 + glibc + + + + postgresql-odbc + + glibc + + + + dhcp + + chkconfig + bash + glibc + + + + mtx + + bash + glibc + + + + openjade + + sgml-common + docbook-dtds + glibc + libgcc + libstdc++ + + + + kdepim + + glibc + perl + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + php-devel + + bash + + + + perl-Parse-Yapp + + perl + + + + gnome-audio-extra + + + + + kcoloredit + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + qt2-devel + + qt2 + perl + glibc + XFree86-libs + libjpeg + libmng + libpng + compat-libstdc++ + zlib + + + + XFree86-ISO8859-15-75dpi-fonts + + chkfontpath + XFree86-font-utils + bash + + + + procmail + + bash + glibc + + + + dev86 + + bash + glibc + + + + gnumeric + + gnome-libs + libglade + guile + gnome-print + gtk+ + glibc + audiofile + bonobo + esound + freetype + libgal19 + imlib + gdk-pixbuf + glib + gdk-pixbuf-gnome + libole2 + libgnomeprint15 + XFree86-libs + ORBit + oaf + popt + libxml + zlib + + + + rdate + + glibc + + + + redhat-switchmail-gnome + + redhat-switchmail + libglade2 + pygtk2-libglade + pygtk2 + python + chkconfig + + + + perl-XML-Encoding + + perl + perl-XML-Parser + + + + qt-ODBC + + qt + glibc + fontconfig + XFree86-Mesa-libGL + XFree86-Mesa-libGLU + XFree86-libs + unixODBC + Xft + + + + glibc-common + + + + + XFree86-xdm + + XFree86 + pam + xinitrc + bash + glibc + XFree86-libs + + + + kdict + + glibc + kdelibs + libgcc + XFree86-libs + libjpeg + libpng + qt + libstdc++ + zlib + + + + rootfiles + + bash + + + + qt-devel + + qt + perl + glibc + fontconfig + XFree86-Mesa-libGL + XFree86-Mesa-libGLU + XFree86-libs + Xft + zlib + + + + openoffice-i18n + + + + + blas-man + + + + + libdbi-dbd-pgsql + + libdbi + glibc + postgresql-libs + + + + rarpd + + chkconfig + bash + glibc + + + + slocate + + shadow-utils + bash + glibc + + + + mt-st + + glibc + + + + tftp-server + + xinetd + bash + glibc + + + + compat-db + + glibc + compat-libstdc++ + tcl + + + + glibc-debug + + glibc + glibc-devel + + + + tWnn + + FreeWnn-common + cWnn-common + shadow-utils + chkconfig + bash + glibc + + + + tcp_wrappers + + glibc + + + + pam_smb + + glibc + + + + mtools + + info + bash + glibc + + + + pygtk2 + + gtk2 + python + sh-utils + atk + glibc + glib2 + pango + + + + kde-i18n-French + + + + + openldap12 + + glibc + gdbm + + + + open + + glibc + + + + aspell-nl + + aspell + + + + aspell-no + + aspell + + + + vim-minimal + + vim-common + libacl + glibc + libtermcap + + + + rmt + + + + + SDL_net + + SDL + glibc + + + + glibc-profile + + + + + emacspeak + + emacs + info + bash + + + + kWnn + + FreeWnn-common + shadow-utils + chkconfig + bash + glibc + + + + aspell-it + + aspell + + + + groff-perl + + bash + perl + + + + urw-fonts + + chkfontpath + fontconfig + bash + + + + libkscan-devel + + libkscan + + + + alchemist-devel + + alchemist + + + + kmail + + kdenetwork-libs + glibc + kdelibs + libgcc + XFree86-libs + libjpeg + libpng + qt + libstdc++ + zlib + + + + xmlto + + docbook-style-xsl + passivetex + libxslt + docbook-dtds + bash + + + + gnome-vfs-devel + + gnome-vfs + GConf-devel + oaf-devel + bash + + + + SDL-devel + + SDL + XFree86-devel + bash + + + + comps-extras + + python + + + + mgetty-sendfax + + mgetty + netpbm-progs + bash + perl + glibc + + + + rsh + + glibc + + + + postgresql-perl + + perl + glibc + postgresql-libs + + + + kdelibs-devel + + qt-devel + kdelibs + pcre-devel + glibc + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + kcalc + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + ftpcopy + + bash + glibc + + + + psutils + + bash + perl + glibc + + + + authconfig + + glibc + pam + glib2 + newt + popt + + + + libusb + + glibc + + + + hdparm + + glibc + + + + XFree86-100dpi-fonts + + chkfontpath + XFree86-font-utils + bash + + + + libcap-devel + + libcap + + + + postgresql-server + + shadow-utils + chkconfig + postgresql + postgresql-libs + bash + krb5-libs + openssl + glibc + pam + readline + libtermcap + zlib + + + + Xlt + + glibc + XFree86-libs + + + + jdkgcj + + gcc-java + libgcj + bash + + + + aspell-pt + + aspell + + + + perl-HTML-Parser + + perl + perl-HTML-Tagset + glibc + + + + kruler + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + Xaw3d + + fileutils + glibc + bash + XFree86-libs + + + + ttcp + + glibc + + + + kernel-source + + fileutils + gawk + gcc + bash + glibc + + + + lm_sensors-devel + + lm_sensors + + + + Xtest + + XFree86 + atk + glibc + gtk2 + glib2 + pango + popt + XFree86-libs + + + + gftp + + gtk+ + bash + glibc + glib + ncurses + readline + XFree86-libs + + + + docbook-dtds + + xml-common + fileutils + textutils + grep + perl + libxml2 + sgml-common + bash + + + + privoxy + + shadow-utils + chkconfig + initscripts + sh-utils + bash + glibc + + + + httpd-manual + + + + + zsh + + fileutils + grep + info + libcap + bash + glibc + libtermcap + + + + pidentd + + chkconfig + fileutils + sed + initscripts + util-linux + bash + openssl + glibc + + + + Xft-devel + + Xft + freetype-devel + fontconfig-devel + bash + + + + setserial + + glibc + + + + libobjc + + glibc + + + + bonobo-devel + + bonobo + + + + control-center + + xscreensaver + redhat-menus + bash + glibc + libart_lgpl + atk + audiofile + libbonobo + bonobo-activation + libbonoboui + esound + fontconfig + freetype + GConf2 + gtk2 + libglade2 + glib2 + libgnome + libgnomecanvas + gnome-desktop + libgnomeui + gnome-vfs2 + XFree86-libs + linc + ORBit2 + pango + popt + Xft + libxml2 + zlib + + + + xisdnload + + isdn4k-utils + glibc + XFree86-libs + + + + xboard + + gnuchess + info + desktop-file-utils + bash + perl + glibc + XFree86-libs + + + + gtkhtml2 + + gtk2 + libxml2 + gnome-vfs2 + gail + glibc + libart_lgpl + atk + glib2 + libgnomecanvas + pango + zlib + + + + ypbind + + chkconfig + portmap + yp-tools + bash + glibc + + + + licq + + htmlview + desktop-file-utils + bash + perl + openssl + glibc + libgcc + libstdc++ + + + + inews + + glibc + libelf + + + + redhat-config-securitylevel + + pygtk2 + python + usermode + bash + + + + crontabs + + bash + + + + gnome-vfs2-extras + + gnome-vfs + glibc + cups-libs + + + + net-snmp + + chkconfig + bash + perl + bzip2-libs + openssl + glibc + gnome-libs + libelf + popt + rpm + zlib + + + + dbskkd-cdb + + glibc + + + + kde-i18n-Greek + + + + + libglade-devel + + libglade + gnome-libs-devel + libxml-devel + bash + sh-utils + + + + VFlib2-conf-ja + + VFlib2 + ttfonts-ja + + + + vixie-cron + + sysklogd + bash + chkconfig + initscripts + glibc + + + + perl-libxml-enno + + perl + perl-DateManip + perl-libwww-perl + perl-Parse-Yapp + perl-XML-Encoding + perl-XML-Parser + + + + which + + glibc + + + + libcap + + glibc + + + + redhat-config-packages + + initscripts + usermode + libglade2 + pygtk2-libglade + pygtk2 + python + rhpl + comps-extras + rpm404-python + libxml2-python + gnome-python2 + bash + + + + samba-client + + samba-common + bash + libacl + openssl + glibc + cups-libs + ncurses + pam + popt + readline + + + + kscd + + glibc + perl + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + hwbrowser + + gnome-python2 + usermode + kudzu + parted + bash + + + + cracklib-dicts + + words + bash + cracklib + glibc + + + + man-pages-ko + + man + gzip + + + + aspell-pt_BR + + aspell + + + + gal-devel + + gal + libgal19 + + + + kde-i18n-Norwegian-Nynorsk + + + + + gnome-python2-gtkhtml2 + + gtkhtml2 + atk + glibc + gtk2 + glib2 + pango + libxml2 + zlib + + + + wmclock + + glibc + XFree86-libs + + + + kdetoys + + glibc + kdelibs + libgcc + XFree86-libs + libjpeg + libpng + qt + libstdc++ + zlib + + + + mozilla-nspr + + bash + glibc + + + + eject + + glibc + + + + kdoc + + perl + + + + strace + + glibc + + + + libbonobo + + glibc + bonobo-activation + glib2 + linc + ORBit2 + libxml2 + zlib + + + + pango-devel + + pango + XFree86-devel + glib2-devel + freetype-devel + fontconfig-devel + Xft-devel + + + + elinks + + bash + openssl + glibc + gpm + + + + hwdata + + + + + libusb-devel + + libusb + bash + + + + readline41 + + glibc + + + + tetex-xdvi + + tetex-fonts + bash + glibc + XFree86-libs + w3c-libwww + VFlib2 + Xaw3d + zlib + + + + ktouch + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + gail + + atk + gtk2 + libgnomecanvas + glibc + libart_lgpl + glib2 + pango + + + + iproute + + bash + glibc + + + + docbook-style-xsl + + docbook-dtds + xml-common + bash + + + + libkscan + + sane-backends + glibc + kdelibs + libgcc + XFree86-libs + libjpeg + libpng + qt + libstdc++ + libusb + zlib + + + + ImageMagick-devel + + ImageMagick + bash + + + + docbook-utils-pdf + + tetex-dvips + jadetex + docbook-utils + bash + + + + db4-java + + db4 + glibc + + + + libgtop-examples + + libgtop + glibc + gdbm + glib + gnome-libs + guile + + + + libIDL + + glibc + glib2 + + + + linc + + glibc + glib2 + + + + openldap-clients + + openldap + openssl + glibc + gdbm + pam + cyrus-sasl + libtermcap + + + + bash-doc + + + + + unixODBC-devel + + unixODBC + + + + krb5-workstation + + krb5-libs + grep + info + bash + sh-utils + glibc + libtermcap + + + + up2date + + python + rpm + rpm-python + gnupg + sh-utils + rhnlib + chkconfig + mkinitrd + python-optik + rhpl + newt + bash + glibc + + + + libgtop2-devel + + libgtop2 + glib2-devel + + + + ethtool + + glibc + + + + ksnapshot + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + vorbis-tools + + libogg + libvorbis + libao + glibc + curl + + + + Xlt-devel + + Xlt + + + + redhat-config-rootpassword + + pygtk2 + python + usermode + libuser + bash + + + + pnm2ppa + + bash + glibc + + + + kdegames-devel + + kdegames + + + + cpio + + info + bash + glibc + + + + kfract + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + nmap-frontend + + nmap + gtk+ + glibc + glib + XFree86-libs + + + + tetex-fonts + + bash + + + + textutils + + info + glibc + + + + util-linux + + pam + info + bash + glibc + ncurses + libtermcap + zlib + + + + db4 + + glibc + + + + XFree86-Xvfb + + XFree86 + glibc + pam + zlib + + + + evolution + + scrollkeeper + bonobo + GConf + oaf + mozilla-nss + mozilla-nspr + glibc + sh-utils + perl + gnome-libs + audiofile + bonobo-conf + esound + freetype + libgal19 + gtk+ + imlib + gdk-pixbuf + libglade + glib + gdk-pixbuf-gnome + libgnomeprint15 + gnome-vfs + gnome-pilot + gtkhtml + XFree86-libs + ORBit + openldap + pilot-link + popt + libxml + zlib + + + + lesstif + + XFree86 + glibc + + + + glibc-utils + + glibc + bash + perl + gd + libpng + zlib + + + + qt + + glibc + fontconfig + Xft + fileutils + bash + cups-libs + XFree86-Mesa-libGL + XFree86-Mesa-libGLU + XFree86-libs + libjpeg + libmng + libpng + zlib + + + + libvorbis-devel + + libogg-devel + libvorbis + + + + krb5-libs + + grep + glibc + sh-utils + bash + + + + bison + + info + bash + glibc + + + + net-tools + + glibc + + + + libvorbis + + libogg + glibc + + + + libunicode-devel + + libunicode + bash + + + + amanda + + fileutils + grep + initscripts + tar + bash + glibc + readline + libtermcap + + + + autoconvert + + python + glibc + + + + qt2-static + + qt2-devel + + + + kernel + + fileutils + modutils + initscripts + mkinitrd + bash + + + + asp2php-gtk + + asp2php + glibc + gtk+ + glib + XFree86-libs + + + + lockdev-devel + + lockdev + + + + openmotif-devel + + openmotif + glibc + XFree86-libs + + + + php-manual + + php + + + + adjtimex + + glibc + + + + w3m-el-common + + + + + redhat-config-nfs + + pygtk2 + python + nfs-utils + usermode + bash + + + + efax + + make + bash + glibc + + + + MySQL-python + + python + mx + mysql + glibc + zlib + + + + tmake + + perl + + + + mailcap + + + + + libghttp + + glibc + + + + kdepasswd + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + redhat-menus + + + + + kde-i18n-Portuguese + + + + + redhat-release + + bash + + + + aspell-ca + + aspell + + + + ORBit2 + + info + glibc + glib2 + linc + popt + + + + ipvsadm + + bash + glibc + popt + + + + VFlib2-VFjfm + + VFlib2 + bash + + + + libgnome + + glib2 + libbonobo + gnome-vfs2 + libxml2 + ORBit2 + libxslt + GConf2 + utempter + bash + glibc + audiofile + bonobo-activation + bzip2-libs + esound + linc + popt + zlib + + + + krbafs + + glibc + + + + libunicode + + glibc + + + + redhat-config-network + + initscripts + usermode + alchemist + kudzu + libglade2 + pygtk2-libglade + pygtk2 + python + gnome-python2 + wvdial + rhpl + gnome-python2-canvas + sh-utils + + + + tux + + chkconfig + bash + glibc + glib + popt + + + + redhat-config-proc + + procps + usermode + glibc + gtk+ + glib + XFree86-libs + libxml + zlib + + + + qt2 + + glibc + bash + XFree86-libs + libjpeg + libmng + libpng + compat-libstdc++ + zlib + + + + audiofile-devel + + audiofile + pkgconfig + bash + + + + kakasi-dict + + kakasi + + + + screen + + info + ncurses + bash + glibc + pam + utempter + + + + lynx + + indexhtml + bash + perl + openssl + glibc + ncurses + zlib + perl-CGI + + + + MyODBC + + unixODBC + glibc + mysql + zlib + + + + nscd + + chkconfig + shadow-utils + sh-utils + bash + glibc + + + + kfloppy + + kdelibs + glibc + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + joe + + ncurses + glibc + + + + vte + + bitmap-fonts + glibc + atk + fontconfig + freetype + gtk2 + glib2 + pango + Xft + XFree86-libs + + + + XFree86-xauth + + bash + glibc + XFree86-libs + + + + gtk-doc + + docbook-utils + openjade + bash + perl + + + + libghttp-devel + + libghttp + + + + tkinter + + python + glibc + tcl + tix + tk + XFree86-libs + + + + ORBit-devel + + indent + glib-devel + ORBit + bash + glibc + glib + + + + perl-XML-Grove + + perl + perl-libxml-perl + + + + Canna-devel + + Canna-libs + + + + cdrecord + + glibc + + + + lockdev + + shadow-utils + filesystem + bash + glibc + + + + kakasi-devel + + kakasi + + + + ami + + glibc + gtk+ + gdk-pixbuf + glib + XFree86-libs + + + + gnome-pilot + + pilot-link + ORBit + libglade + libxml + gnome-vfs + redhat-menus + glibc + gnome-libs + audiofile + libcapplet0 + esound + GConf + gtk+ + imlib + glib + XFree86-libs + oaf + popt + zlib + + + + mtr-gtk + + mtr + usermode + glibc + gtk+ + glib + ncurses + libtermcap + XFree86-libs + + + + switchdesk-kde + + glibc + libgcc + qt + libstdc++ + + + + libattr + + glibc + + + + modutils + + chkconfig + sh-utils + bash + glibc + + + + kappa20 + + XFree86-font-utils + bash + + + + perl-DBI + + perl + glibc + + + + gdk-pixbuf-gnome + + gdk-pixbuf + glibc + gnome-libs + audiofile + esound + gtk+ + imlib + glib + XFree86-libs + + + + lesstif-devel + + XFree86-devel + lesstif + glibc + XFree86-libs + + + + kernel-smp + + fileutils + modutils + initscripts + mkinitrd + bash + + + + kde-i18n-German + + + + + mysql-server + + chkconfig + shadow-utils + mysql + sh-utils + bash + glibc + libgcc + libstdc++ + zlib + + + + at-spi + + gtk2 + libbonobo + ORBit2 + gail + glibc + libart_lgpl + atk + bonobo-activation + glib2 + libgnomecanvas + XFree86-libs + linc + pango + libxml2 + zlib + + + + db4-devel + + db4 + + + + Glide3-devel + + Glide3 + + + + lv + + glibc + libtermcap + + + + arts + + audiofile + glibc + bash + libgcc + glib2 + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + redhat-switch-printer + + newt + chkconfig + python + sh-utils + + + + php-dbg-client + + php-dbg-base + php-dbg-server + glibc + libgcc + ncurses + pcre + readline + libstdc++ + + + + yp-tools + + ypbind + glibc + + + + libacl + + glibc + libattr + + + + PyQt-devel + + PyQt + + + + Omni-foomatic + + Omni + foomatic + fileutils + bash + + + + php-imap + + php + perl + bash + krb5-libs + openssl + glibc + + + + rhnlib + + pyOpenSSL + python + + + + openssl-perl + + perl + openssl + + + + glib2-devel + + pkgconfig + glib2 + bash + perl + glibc + + + + radvd + + chkconfig + shadow-utils + initscripts + bash + glibc + + + + cracklib + + glibc + + + + php-odbc + + php + perl + grep + unixODBC + bash + glibc + + + + esound + + glibc + bash + audiofile + + + + talk-server + + xinetd + glibc + + + + kde-i18n-Chinese-Big5 + + + + + rsh-server + + pam + glibc + + + + perl-URI + + perl + + + + doxygen + + glibc + libgcc + libstdc++ + + + + nasm-doc + + + + + chkfontpath + + XFree86-xfs + SysVinit + glibc + popt + + + + utempter + + shadow-utils + glibc + fileutils + bash + + + + mgetty-viewfax + + glibc + XFree86-libs + + + + libogg-devel + + libogg + + + + netpbm-progs + + netpbm + bash + perl + glibc + libjpeg + libpng + libtiff + zlib + + + + mount + + mktemp + gawk + diffutils + textutils + fileutils + glibc + + + + licq-kde + + licq + glibc + libgcc + XFree86-libs + kdelibs + qt + libstdc++ + + + + cvs + + info + bash + tcsh + perl + krb5-libs + glibc + zlib + + + + pstack + + glibc + + + + netpbm + + glibc + + + + MagicPoint + + watanabe-vf + VFlib2 + perl + glibc + XFree86-libs + libmng + libpng + freetype + libungif + + + + libgtop + + info + glibc + bash + gdbm + glib + + + + gd-progs + + gd + perl + glibc + freetype + libjpeg + libpng + zlib + + + + procps + + fileutils + glibc + bash + ncurses + + + + man-pages-de + + + + + kfile-png + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + pychecker + + python + bash + + + + hexedit + + glibc + ncurses + + + + man-pages-da + + + + + tetex-doc + + bash + perl + + + + libxml2 + + glibc + zlib + + + + aspell-de + + aspell + + + + squid + + chkconfig + logrotate + shadow-utils + bash + perl + glibc + openldap + pam + perl-URI + + + + kde-i18n-Ukrainian + + + + + aspell-da + + aspell + + + + imlib-cfgeditor + + imlib + glibc + gtk+ + glib + XFree86-libs + + + + kde-i18n-Brazil + + + + + chkconfig + + glibc + + + + texinfo + + info + bash + glibc + zlib + + + + switchdesk + + textutils + desktop-file-utils + bash + + + + ttfonts-zh_TW + + chkfontpath + fontconfig + bash + + + + PyXML + + python + glibc + + + + mpage + + glibc + + + + whois + + glibc + + + + perl-Net-DNS + + perl + perl-Digest-HMAC + + + + pax + + glibc + + + + XFree86-ISO8859-9-100dpi-fonts + + chkfontpath + XFree86-font-utils + bash + + + + iscsi + + kernel + chkconfig + bash + glibc + + + + sane-backends-devel + + sane-backends + + + + libgail-gnome + + atk + gtk2 + libgnomeui + at-spi + glibc + libart_lgpl + libbonobo + bonobo-activation + libbonoboui + GConf2 + glib2 + libgnome + libgnomecanvas + gnome-vfs2 + XFree86-libs + linc + ORBit2 + pango + libxml2 + zlib + + + + glade2 + + gail-devel + libart_lgpl + atk + libbonobo + bonobo-activation + libbonoboui + glibc + GConf2 + gtk2 + glib2 + libgnome + libgnomecanvas + libgnomeprint + libgnomeprintui + libgnomeui + gnome-vfs2 + XFree86-libs + linc + ORBit2 + pango + popt + libxml2 + zlib + + + + units + + info + bash + glibc + ncurses + readline + + + + psgml + + sgml-common + emacs + bash + + + + perl-Digest-SHA1 + + glibc + perl + + + + pan + + gtk2 + atk + glibc + glib2 + pango + libxml2 + zlib + + + + ddskk-xemacs + + xemacs + + + + man-pages-cs + + + + + mozilla-nss-devel + + + + + unixODBC + + glibc + libgcc + ncurses + qt + readline + libstdc++ + XFree86-libs + + + + bzip2 + + bzip2-libs + bash + glibc + + + + namazu-devel + + namazu + bash + + + + mod_auth_mysql + + httpd + glibc + mysql + + + + m2crypto + + python + glibc + openssl + + + + openldap + + cyrus-sasl + cyrus-sasl-md5 + mktemp + glibc + openssl + + + + rpm-python + + rpm + python + glibc + sh-utils + bzip2-libs + libelf + popt + + + + gcc-java + + gcc + libgcj + libgcj-devel + info + bash + glibc + zlib + + + + php + + perl + httpd + glibc + bzip2-libs + openssl + curl + db4 + expat + freetype + libgcc + gdbm + gd + gmp + libjpeg + libtool-libs + ncurses + pam + libpng + pspell + libstdc++ + libxml2 + zlib + + + + redhat-config-soundcard + + pygtk2 + python + usermode + sox + rhpl + bash + + + + tftp + + glibc + + + + libacl-devel + + libacl + + + + imap-devel + + + + + gdk-pixbuf-devel + + gdk-pixbuf + gdk-pixbuf-gnome + gnome-libs-devel + bash + + + + kdeartwork-locolor + + + + + filesystem + + setup + + + + namazu-cgi + + namazu + httpd + glibc + + + + joystick + + glibc + + + + kbdconfig + + kbd + glibc + newt + popt + + + + nut-cgi + + httpd + glibc + gd + libpng + zlib + + + + gnome-user-docs + + scrollkeeper + bash + + + + vim-common + + bash + gawk + glibc + + + + xml-common + + sh-utils + fileutils + textutils + grep + + + + less + + bash + glibc + ncurses + + + + glut + + XFree86-Mesa-libGL + glibc + XFree86-Mesa-libGLU + XFree86-libs + + + + libgnomecanvas-devel + + libgnomecanvas + gtk2-devel + libart_lgpl-devel + libglade2-devel + + + + vsftpd + + xinetd + logrotate + libcap + glibc + pam + + + + gdb + + info + bash + glibc + ncurses + + + + xferstats + + glibc + glib + + + + gnome-python2-gconf + + GConf2 + sh-utils + glibc + glib2 + linc + ORBit2 + + + + orbit-python-devel + + + + + kon2 + + sh-utils + textutils + termcap + bash + glibc + + + + samba + + pam + samba-common + logrotate + initscripts + chkconfig + mktemp + psmisc + fileutils + sed + bash + tcsh + perl + libacl + openssl + glibc + cups-libs + popt + perl-CGI + + + + xcdroast + + cdrecord + mkisofs + cdda2wav + usermode + glibc + gtk+ + imlib + glib + XFree86-libs + libjpeg + libpng + libtiff + libungif + zlib + + + + mingetty + + glibc + + + + lapack + + glibc + blas + + + + xscreensaver + + fortune-mod + redhat-logos + pam + bash + perl + atk + glibc + gtk2 + libglade2 + glib2 + XFree86-Mesa-libGL + XFree86-Mesa-libGLU + XFree86-libs + libjpeg + pango + libxml2 + zlib + + + + perl-PDL + + perl + glibc + gsl + perl-Filter + perl-Inline + + + + libgtop-devel + + libgtop + + + + nvi-m17n-canna + + bash + Canna-libs + glibc + libtermcap + + + + cups-devel + + cups-libs + bash + + + + kdebindings-devel + + kdebindings + + + + watanabe-vf + + + + + chromium + + zlib + glibc + libgcc + XFree86-Mesa-libGL + XFree86-Mesa-libGLU + qt + SDL + libstdc++ + XFree86-libs + + + + libbonobo-devel + + libbonobo + bonobo-activation-devel + ORBit2-devel + libxml2-devel + linc-devel + + + + gmp + + glibc + + + + grip + + vorbis-tools + gnome-libs + audiofile + cdparanoia-libs + glibc + esound + libgcc + gtk+ + imlib + libghttp + glib + XFree86-libs + libstdc++ + + + + jcode.pl + + + + + ruby-devel + + ruby-libs + + + + libesmtp-devel + + libesmtp + + + + swig + + glibc + libgcc + libstdc++ + + + + orbit-python + + ORBit2 + linc + libIDL + glib2 + python + sh-utils + glibc + + + + libcapplet0 + + glibc + gnome-libs + audiofile + esound + gtk+ + imlib + glib + XFree86-libs + ORBit + + + + libglade + + gnome-libs + libxml + glibc + audiofile + esound + gtk+ + imlib + glib + XFree86-libs + zlib + + + + xcin + + libtabe + glibc + db4 + XFree86-libs + + + + kde-i18n-Romanian + + + + + kde2-compat + + qt2 + openssl + fileutils + bash + glibc + perl + python + audiofile + bzip2-libs + cups-libs + fam + XFree86-libs + libjpeg + pcre + libpng + compat-libstdc++ + libtiff + libxml2 + libxslt + zlib + + + + ytalk + + glibc + XFree86-libs + ncurses + + + + kde-i18n-Icelandic + + + + + minicom + + lockdev + bash + glibc + ncurses + + + + XFree86-Mesa-libGLU + + bash + glibc + libgcc + libstdc++ + + + + perl-Bit-Vector + + glibc + perl-Date-Calc + perl + + + + rusers-server + + chkconfig + portmap + bash + glibc + procps + + + + man-pages + + + + + perl-DB_File + + perl + glibc + db4 + + + + postgresql-tcl + + tcl + glibc + bash + e2fsprogs + openssl + krb5-libs + pam + postgresql-libs + readline + libtermcap + zlib + + + + grub + + info + mktemp + bash + glibc + + + + gnome-libs-devel + + gnome-libs + gtk+-devel + ORBit-devel + imlib-devel + esound-devel + bash + perl + + + + kdf + + kdebase + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + redhat-config-users + + libuser + python + pygtk2 + pygtk2-libglade + usermode + bash + + + + kiconedit + + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + switchdesk-gnome + + glibc + gtk+ + glib + XFree86-libs + + + + pspell-devel + + pspell + + + + perl-libxml-perl + + perl + perl-XML-Parser + + + + intltool + + patch + bash + perl + + + + rpm + + gawk + fileutils + textutils + mktemp + shadow-utils + popt + libelf + bash + bzip2-libs + glibc + + + + automake + + perl + info + bash + + + + shadow-utils + + glibc + + + + libwvstreams-devel + + libwvstreams + + + + perl-TimeDate + + perl + + + + kdeaddons-konqueror + + kdebase + arts + kdelibs + audiofile + glibc + libgcc + XFree86-libs + libjpeg + libpng + qt + libstdc++ + zlib + + + + ddd + + info + openmotif + bash + sh-utils + glibc + libelf + libgcc + XFree86-libs + ncurses + libstdc++ + + + + x3270-text + + x3270 + glibc + ncurses + readline + libtermcap + + + + gtkhtml-devel + + gtkhtml + gnome-libs-devel + gnome-print-devel + libunicode-devel + gdk-pixbuf-devel + libglade-devel + libxml-devel + bonobo-devel + gal-devel + + + + dvgrab + + glibc + libgcc + libraw1394 + libstdc++ + + + + Canna-libs + + bash + glibc + + + + cups-drivers-pnm2ppa + + pnm2ppa + ghostscript + initscripts + bash + + + + anacron + + bash + vixie-cron + chkconfig + glibc + + + + syslinux + + glibc + + + + gnome-games + + scrollkeeper + bash + libart_lgpl + atk + audiofile + libbonobo + bonobo-activation + libbonoboui + glibc + esound + GConf2 + gtk2 + glib2 + libgnome + libgnomecanvas + libgnomeui + gnome-vfs2 + guile + XFree86-libs + linc + ncurses + ORBit2 + pango + libxml2 + zlib + + + + kdesdk-kbabel + + python + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + kde-i18n-Danish + + + + + mailman + + shadow-utils + postfix + vixie-cron + httpd + python + mktemp + bash + sh-utils + glibc + + + + MAKEDEV + + bash + glibc + + + + nmh + + fileutils + bash + glibc + libtermcap + + + + vim-enhanced + + vim-common + bash + libacl + glibc + gpm + ncurses + perl + + + + kde-i18n-Turkish + + + + + libuser-devel + + libuser + + + + libesmtp + + glibc + openssl + + + + Guppi + + glibc + gnome-libs + audiofile + bonobo + esound + freetype + libgal19 + gtk+ + imlib + gdk-pixbuf + libglade + glib + gdk-pixbuf-gnome + libgnomeprint15 + XFree86-libs + ORBit + oaf + libxml + zlib + + + + glut-devel + + glut + XFree86-Mesa-libGL + XFree86-devel + + + + glade + + gnome-libs + audiofile + glibc + esound + gtk+ + imlib + glib + XFree86-libs + + + + acl + + libacl + libattr + glibc + + + + gimp-print-devel + + gimp-print + bash + + + + iptraf + + glibc + ncurses + + + + khexedit + + kdelibs + glibc + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + abiword + + libpng10 + chkfontpath + bash + glibc + libgcc + gtk+ + glib + libtool-libs + libpng + pspell + libstdc++ + XFree86-libs + libxml2 + zlib + + + + libtool + + info + autoconf + automake + m4 + perl + libtool-libs + mktemp + bash + + + + festival-devel + + festival + + + + libgnomeprint15 + + glibc + gnome-libs + audiofile + esound + freetype + gtk+ + imlib + gdk-pixbuf + glib + XFree86-libs + libxml + zlib + + + + libavc1394 + + bash + glibc + libraw1394 + + + + gail-devel + + gail + gtk2-devel + libgnomecanvas-devel + + + + libtiff + + zlib + libjpeg + glibc + + + + compat-gcc-objc + + compat-gcc + libobjc + glibc + + + + redhat-artwork + + redhat-logos + qt + + + + xdelta-devel + + xdelta + + + + aumix + + initscripts + glibc + gpm + ncurses + + + + g-wrap + + guile + glibc + + + + libungif + + glibc + XFree86-libs + + + + mod_python + + httpd + glibc + + + + knode + + kdenetwork-libs + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + kooka + + libkscan + sane-backends + glibc + kdelibs + libgcc + XFree86-libs + libjpeg + libpng + qt + libstdc++ + libusb + zlib + + + + w3m + + indexhtml + perl + openssl + ImageMagick + bash + glibc + gpm + XFree86-libs + imlib + libjpeg + ncurses + libpng + libtiff + libungif + zlib + + + + httpd + + mailcap + gawk + file + findutils + chkconfig + mktemp + fileutils + sh-utils + textutils + shadow-utils + bash + openssl + glibc + db4 + expat + gdbm + zlib + + + + XFree86-ISO8859-15-100dpi-fonts + + chkfontpath + XFree86-font-utils + bash + + + + rcs + + glibc + + + + netatalk + + chkconfig + initscripts + pam + tcp_wrappers + openssl + cracklib + bash + perl + glibc + + + + emacs + + info + dev + bash + perl + glibc + XFree86-libs + libjpeg + ncurses + libpng + libtiff + libungif + Xaw3d + zlib + + + + perl-libwww-perl + + perl + perl-URI + perl-HTML-Parser + + + + groff + + mktemp + info + bash + glibc + libgcc + libstdc++ + + + + wine-devel + + wine + + + + glib + + glibc + + + + mozilla-js-debugger + + fileutils + mozilla + bash + + + + hotplug-gtk + + gnome-libs + audiofile + glibc + esound + gtk+ + imlib + glib + XFree86-libs + + + + openssh-server + + openssh + chkconfig + shadow-utils + pam + bash + krb5-libs + openssl + glibc + zlib + + + + kde-i18n-Slovak + + + + + redhat-switch-printer-gnome + + redhat-switch-printer + libglade2 + pygtk2-libglade + pygtk2 + python + chkconfig + + + + dmalloc + + info + bash + glibc + + + + unarj + + glibc + + + + gaim + + gtk+ + glibc + gnome-desktop + aspell + htmlview + bash + audiofile + esound + gdk-pixbuf + glib + XFree86-libs + + + + libmrproject + + gtk2 + glibc + + + + gnome-python2-bonobo + + orbit-python + bonobo-activation + libbonobo + libbonoboui + libart_lgpl + atk + glibc + GConf2 + gtk2 + glib2 + libgnome + libgnomecanvas + gnome-vfs2 + linc + ORBit2 + pango + libxml2 + zlib + + + + bridge-utils + + glibc + + + + VFlib2-devel + + VFlib2 + bash + + + + 4Suite + + python + PyXML + sh-utils + glibc + + + + cdrdao + + glibc + libgcc + libstdc++ + + + + flim + + emacs + apel + info + + + + initscripts + + mingetty + gawk + sed + mktemp + e2fsprogs + procps + sysklogd + setup + psmisc + which + grep + modutils + util-linux + mount + bash + SysVinit + iproute + iputils + net-tools + bdflush + redhat-release + chkconfig + shadow-utils + fileutils + sh-utils + glibc + + + + libxml2-python + + libxml2 + python + glibc + + + + xpdf-chinese-simplified + + xpdf + + + + XFree86-xfs + + fileutils + sed + shadow-utils + chkconfig + XFree86-font-utils + XFree86-libs + bash + glibc + zlib + + + + gphoto2 + + hotplug + glibc + grep + fileutils + lockdev + bash + glib + libjpeg + ncurses + readline + libusb + + + + perl-CGI + + perl + + + + lvm + + glibc + bash + + + + newt-devel + + slang-devel + newt + glibc + + + + procinfo + + perl + glibc + libtermcap + + + + perl-BSD-Resource + + glibc + perl + + + + koffice-devel + + + + + krbafs-devel + + krbafs + + + + koncd + + cdrecord + mkisofs + arts + audiofile + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + hotplug + + usbutils + chkconfig + bash + glibc + + + + compat-libstdc++ + + bash + glibc + libgcc + + + + inn + + chkconfig + grep + textutils + sed + fileutils + sh-utils + cleanfeed + bash + inews + perl + glibc + db4 + libelf + + + + at + + fileutils + chkconfig + bash + glibc + + + + file + + glibc + + + + rwall + + glibc + + + + samba-common + + bash + libacl + openssl + glibc + cups-libs + pam + popt + + + + mozilla-chat + + fileutils + mozilla + bash + + + + anaconda-help + + + + + oaf + + glibc + perl + glib + ORBit + popt + libxml + zlib + + + + kdevelop + + kdelibs-devel + make + perl + autoconf + automake + flex + qt-designer + bash + glibc + kdelibs + libgcc + XFree86-libs + libjpeg + libpng + qt + libstdc++ + zlib + + + + uucp + + fileutils + info + lockdev + bash + perl + glibc + + + + freetype + + bash + glibc + + + + perl-suidperl + + perl + glibc + + + + gettext + + info + bash + python + glibc + libgcc + libgcj + zlib + + + + cdparanoia-devel + + cdparanoia-libs + + + + gtoaster + + cdrecord + cdrdao + mkisofs + cdda2wav + sox + usermode + glibc + gtk+ + glib + ORBit + XFree86-libs + + + + esound-devel + + esound + audiofile-devel + bash + + + + gimp-data-extras + + + + + XFree86-font-utils + + glibc + freetype + libgcc + libstdc++ + XFree86-libs + zlib + + + + redhat-config-keyboard + + pygtk2 + python + usermode + rhpl + pyxf86config + bash + + + + stat + + glibc + + + + gnumeric-devel + + gnumeric + + + + star + + libacl + glibc + + + + rwho + + chkconfig + bash + glibc + + + + nvi-m17n-nocanna + + bash + glibc + libtermcap + + + + telnet + + glibc + ncurses + + + + kdebindings-kdejava + + kdelibs + kdebindings-qtjava + libgcj + glibc + libgcc + XFree86-libs + libjpeg + pcre + libpng + qt + libstdc++ + zlib + + + + kppp + + usermode + bash + glibc + kdelibs + libgcc + XFree86-libs + libpng + qt + libstdc++ + zlib + + + + man-pages-pl + + + + + readline + + info + glibc + bash + + + + curl-devel + + curl + bash + + + + slang + + glibc + + + + eog + + bash + libart_lgpl + atk + libbonobo + bonobo-activation + libbonoboui + glibc + GConf2 + gtk2 + glib2 + libgnome + libgnomecanvas + libgnomeprint + libgnomeui + gnome-vfs2 + XFree86-libs + libjpeg + linc + ORBit2 + pango + libpng + popt + librsvg2 + libxml2 + zlib + + + + kuickshow + + glibc + kdelibs + libgcc + XFree86-libs + imlib + libjpeg + libpng + qt + libstdc++ + libtiff + libungif + zlib + + + + yelp + + scrollkeeper + gtk2 + gnome-vfs2 + gtkhtml2 + libgnomeui + libbonobo + libart_lgpl + atk + bonobo-activation + libbonoboui + glibc + GConf2 + glib2 + libgnome + libgnomecanvas + XFree86-libs + linc + ORBit2 + pango + popt + libxml2 + libxslt + zlib + + + + Omni + + glibc + cups-libs + + + + tetex-afm + + tetex + bash + glibc + + + + slrn-pull + + slrn + bash + openssl + glibc + slang + + + + kdebindings-kdec + + qt + kdebindings-qtc + glibc + kdelibs + libgcc + XFree86-libs + libjpeg + pcre + libpng + libstdc++ + zlib + + + + usbutils + + hwdata + glibc + + + + e2fsprogs + + glibc + + + + audiofile + + glibc + bash + + + + XFree86-ISO8859-2-75dpi-fonts + + chkfontpath + XFree86-font-utils + bash + + + + ttfonts-zh_CN + + chkfontpath + XFree86-font-utils + fontconfig + bash + + + + cdlabelgen + + perl + + + + ghostscript-fonts + + ghostscript + fontconfig + + + + FreeWnn-libs + + bash + glibc + + + + qt2-Xt + + qt2 + glibc + compat-libstdc++ + XFree86-libs + + + + cpp + + info + bash + glibc + + + + oprofile + + kernel + bash + binutils + glibc + libgcc + popt + qt + libstdc++ + + + + sash + + + + diff --git a/test/relaxng/demo.rng b/test/relaxng/demo.rng new file mode 100644 index 0000000..1a7f17c --- /dev/null +++ b/test/relaxng/demo.rng @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/test/relaxng/demo.xml b/test/relaxng/demo.xml new file mode 100644 index 0000000..6b0cac1 --- /dev/null +++ b/test/relaxng/demo.xml @@ -0,0 +1 @@ +hello \ No newline at end of file diff --git a/test/relaxng/demo2.rng b/test/relaxng/demo2.rng new file mode 100644 index 0000000..f528f73 --- /dev/null +++ b/test/relaxng/demo2.rng @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/relaxng/demo3.rng b/test/relaxng/demo3.rng new file mode 100644 index 0000000..73e1eb6 --- /dev/null +++ b/test/relaxng/demo3.rng @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/test/relaxng/docbook.rng b/test/relaxng/docbook.rng new file mode 100644 index 0000000..85a6aed --- /dev/null +++ b/test/relaxng/docbook.rng @@ -0,0 +1,9141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + changed + added + deleted + off + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BMP + CGM-CHAR + CGM-BINARY + CGM-CLEAR + DITROFF + DVI + EPS + EQN + FAX + GIF + GIF87a + GIF89a + JPG + JPEG + IGES + PCX + PIC + PNG + PS + SGML + TBL + TEX + TIFF + WMF + WPG + linespecific + + + + + + + + + + + + + + + + + + + + + + left + right + center + + + + + + + + + + + + 0 + 1 + + + + + + + + + click + double-click + press + seq + simul + other + + + + + + + + + + + + + + + + + + + + linespecific + + + + + + numbered + unnumbered + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + refentry + none + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + qanda + number + none + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + optional + required + + + + + + + + + + + + + + + + + + + + + + optional + required + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + other + sect1 + sect2 + sect3 + sect4 + sect5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + normal + compact + + + + + + + + + + + + + + + + + + + + + + + + + arabic + upperalpha + loweralpha + upperroman + lowerroman + + + + + + + inherit + ignore + + + + + + + continues + restarts + + + + + + + normal + compact + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + inline + vert + horiz + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + calspair + linecolumn + linerange + linecolumnpair + other + + + + + + + + + + + + + + + + + + + + + + + + + + calspair + linecolumn + linerange + linecolumnpair + other + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + calspair + linecolumn + linerange + linecolumnpair + other + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + monospaced + normal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BMP + CGM-CHAR + CGM-BINARY + CGM-CLEAR + DITROFF + DVI + EPS + EQN + FAX + GIF + GIF87a + GIF89a + JPG + JPEG + IGES + PCX + PIC + PNG + PS + SGML + TBL + TEX + TIFF + WMF + WPG + linespecific + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + left + right + center + + + + + + + + + + + + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + left + right + center + + + + + + + + + + + + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + opt + req + plain + + + + + + + norepeat + repeat + + + + + + + + + + + + + + + + + + + + + + + + + + + + + opt + req + plain + + + + + + + norepeat + repeat + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + class + interface + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + opt + req + plain + + + + + + + norepeat + repeat + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BMP + CGM-CHAR + CGM-BINARY + CGM-CLEAR + DITROFF + DVI + EPS + EQN + FAX + GIF + GIF87a + GIF89a + JPG + JPEG + IGES + PCX + PIC + PNG + PS + SGML + TBL + TEX + TIFF + WMF + WPG + linespecific + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + service + trade + registered + copyright + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + hardware + software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + name + table + field + key1 + key2 + record + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + headerfile + devicefile + libraryfile + directory + symlink + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + limit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cartridge + cdrom + disk + tape + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + command + function + option + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + command + function + option + parameter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + attribute + attvalue + element + endtag + emptytag + genentity + numcharref + paramentity + pi + xmlpi + starttag + sgmlcomment + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + limit + + + + + + + + + + + + + + + + + + + + + + + + + + + constant + groupname + library + macro + osname + resource + systemname + username + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + article + book + chapter + part + refentry + section + journal + series + set + manuscript + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + service + trade + registered + copyright + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + all + global + local + + + + + + + preferred + normal + + + + + + + singular + startofrange + endofrange + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sect2 + sect3 + sect4 + sect5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sect1 + sect3 + sect4 + sect5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sect1 + sect2 + sect4 + sect5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sect1 + sect2 + sect3 + sect5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sect1 + sect2 + sect3 + sect4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + journalarticle + productsheet + whitepaper + techreport + specification + faq + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + top + bottom + topbot + all + sides + none + + + + + + + 0 + 1 + + + + + + + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + top + bottom + topbot + all + sides + none + + + + + + + 0 + 1 + + + + + + + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + 0 + 1 + + + + + + + left + right + center + justify + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + 0 + 1 + + + + + + + left + right + center + justify + char + + + + + + + + + + + + + + + + + + + + + + + + + + + + top + middle + bottom + + + + + + + + + + + + + + + + + + top + middle + bottom + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + top + middle + bottom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + 0 + 1 + + + + + + + left + right + center + justify + char + + + + + + + + + + + + + + + + + top + middle + bottom + + + + + diff --git a/test/relaxng/docbook_0.xml b/test/relaxng/docbook_0.xml new file mode 100644 index 0000000..ede051d --- /dev/null +++ b/test/relaxng/docbook_0.xml @@ -0,0 +1,4448 @@ + + + + + + + + + + + + +]> + + + +
        + + + + + + David + Mason + + Red Hat, Inc. +
        + dcm@redhat.com +
        +
        +
        + + + Daniel + Mueth + +
        + d-mueth@uchicago.edu +
        +
        +
        + + + Alexander + Kirillov + +
        + kirillov@math.sunysb.edu +
        +
        +
        + +
        + + + This is a pre-release! + + + + + + 0.99 + + + 04.10.2000 + + + + + + 2000 + Red Hat, Inc., Daniel Mueth, and Alexander Kirillov + + + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License, Version 1.1 or any later version published + by the Free Software Foundation with no Invariant Sections, no + Front-Cover Texts, and no Back-Cover Texts. You may obtain a copy + of the GNU Free Documentation License from + the Free Software Foundation by visiting their Web site or by writing to: + Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + + + Many of the names used by companies to distinguish their products and + services are claimed as trademarks. Where those names appear in any + GNOME documentation, and those trademarks are made aware to the members + of the GNOME Documentation Project, the names have been printed in caps + or initial caps. + + + + The GNOME Handbook of Writing Software Documentation + +
        + + + + + Introduction + + + + + The GNOME Documentation Project + + + Goals + + The GNOME Documentation Project (GDP) aims to provide GNOME + and GNOME applications with a complete, intuitive, and clear + documentation system. At the center of the GDP is the + GNOME Help Browser, which + presents a unified interface to GNOME-specific documentation + as well as other Linux documentation such as man pages and + texinfo documents. The GNOME Help System provides a + comprehensive view of documentation on a machine by + dynamically assembling the documentation of GNOME + applications and components which are installed. The GDP is + responsible for writing numerous GNOME-related documents, + both for developers and for users. Developer documentation + includes APIs for the GNOME libraries, GNOME White + Papers, GNOME developer tutorials, the GNOME Developer + FAQ, the GNOME + Developer's Website, and GNOME + Handbook's, such as the one you are reading. + User documentation include the GNOME User's + Guide, the GNOME FAQ, and + GNOME application documentation. Most GNOME applications + have their own manual in addition to context sensitive help. + + + + + Joining the GDP + + Documenting GNOME and all the numerous GNOME applications is + a very large project. The GDP is always looking for people + to help write, update, and edit documentation. If you are + interested in joining the GDP team, you should join the + + gnome-doc-list mailing list . + Read , for help selecting a + project to work on. Feel free to introduce yourself on the + gnome-doc-list mailing list and indicate which project you + intend to work on, or else ask for suggestions of important + documents which need work done. You may also want to join the + #docs IRC channel on irc.gnome.org to meet other GDP members + and discuss any questions you may have. For a list of GDP + projects and members, see the + + GDP Website. + + + + + Collaborating with the GDP + + GNOME developers, packagers, and translators may not be + writing GNOME documentation but will want to understand how + the GNOME documentation system works and will need to + collaborate with GDP members. This document should help to + outline the structure of how the GNOME documentation system + works. Developers who do not write the documentation for + their applications are encouraged to find a GDP member to + write the documentation. This is best done by sending an + email to the + gnome-doc-list mailing list + describing the application, where it can be downloaded from, + and that the developer(s) would like a GDP member to write + documentation for the application. The #docs IRC channel on + irc.gnome.org is another option for contacting GDP members. + + + + + + + + Notation and Conventions + + This Handbook uses the following notation: + + +
      Entity TypeCharacter
      ParameterInternal +GeneralExternal Parsed +GeneralUnparsed
      Reference +in ContentNot recognizedIncludedIncluded if validatingForbiddenIncluded
      Reference +in Attribute ValueNot recognizedIncluded in literalForbiddenForbiddenIncluded
      Occurs as +Attribute ValueNot recognizedForbiddenForbiddenNotifyNot recognized
      Reference +in EntityValueIncluded in literalBypassedBypassedForbiddenIncluded
      Reference +in DTDIncluded as PEForbiddenForbiddenForbiddenForbidden
      + + + + + + +
      hello !
      +

      end

      + diff --git a/test/relaxng/tutor14_1.rng b/test/relaxng/tutor14_1.rng new file mode 100644 index 0000000..8744356 --- /dev/null +++ b/test/relaxng/tutor14_1.rng @@ -0,0 +1,53 @@ + + + + + + + + + + addressBook + + + + + card + + + + name + + + + + + + givenName + + + + + + + + familyName + + + + + + + + + email + + + + + + + + + + diff --git a/test/relaxng/tutor1_1.rng b/test/relaxng/tutor1_1.rng new file mode 100644 index 0000000..86f8cd1 --- /dev/null +++ b/test/relaxng/tutor1_1.rng @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/relaxng/tutor1_1_1.xml b/test/relaxng/tutor1_1_1.xml new file mode 100644 index 0000000..edac8ba --- /dev/null +++ b/test/relaxng/tutor1_1_1.xml @@ -0,0 +1,10 @@ + + + John Smith + js@example.com + + + Fred Bloggs + fb@example.net + + diff --git a/test/relaxng/tutor1_2.rng b/test/relaxng/tutor1_2.rng new file mode 100644 index 0000000..ed9cf7a --- /dev/null +++ b/test/relaxng/tutor1_2.rng @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/relaxng/tutor1_2_1.xml b/test/relaxng/tutor1_2_1.xml new file mode 100644 index 0000000..edac8ba --- /dev/null +++ b/test/relaxng/tutor1_2_1.xml @@ -0,0 +1,10 @@ + + + John Smith + js@example.com + + + Fred Bloggs + fb@example.net + + diff --git a/test/relaxng/tutor1_3.rng b/test/relaxng/tutor1_3.rng new file mode 100644 index 0000000..23886d0 --- /dev/null +++ b/test/relaxng/tutor1_3.rng @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor1_3_1.xml b/test/relaxng/tutor1_3_1.xml new file mode 100644 index 0000000..edac8ba --- /dev/null +++ b/test/relaxng/tutor1_3_1.xml @@ -0,0 +1,10 @@ + + + John Smith + js@example.com + + + Fred Bloggs + fb@example.net + + diff --git a/test/relaxng/tutor1_4.rng b/test/relaxng/tutor1_4.rng new file mode 100644 index 0000000..5744fce --- /dev/null +++ b/test/relaxng/tutor1_4.rng @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/relaxng/tutor1_4_1.xml b/test/relaxng/tutor1_4_1.xml new file mode 100644 index 0000000..edac8ba --- /dev/null +++ b/test/relaxng/tutor1_4_1.xml @@ -0,0 +1,10 @@ + + + John Smith + js@example.com + + + Fred Bloggs + fb@example.net + + diff --git a/test/relaxng/tutor2_1.rng b/test/relaxng/tutor2_1.rng new file mode 100644 index 0000000..76a3ce4 --- /dev/null +++ b/test/relaxng/tutor2_1.rng @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor2_1_1.xml b/test/relaxng/tutor2_1_1.xml new file mode 100644 index 0000000..79b5584 --- /dev/null +++ b/test/relaxng/tutor2_1_1.xml @@ -0,0 +1,11 @@ + + + John + Smith + js@example.com + + + Fred Bloggs + fb@example.net + + diff --git a/test/relaxng/tutor3_1.rng b/test/relaxng/tutor3_1.rng new file mode 100644 index 0000000..78d6736 --- /dev/null +++ b/test/relaxng/tutor3_1.rng @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/relaxng/tutor3_1_1.xml b/test/relaxng/tutor3_1_1.xml new file mode 100644 index 0000000..f9849e6 --- /dev/null +++ b/test/relaxng/tutor3_1_1.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/tutor3_1_2.xml b/test/relaxng/tutor3_1_2.xml new file mode 100644 index 0000000..e9a766f --- /dev/null +++ b/test/relaxng/tutor3_1_2.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/tutor3_2.rng b/test/relaxng/tutor3_2.rng new file mode 100644 index 0000000..eeb6fa4 --- /dev/null +++ b/test/relaxng/tutor3_2.rng @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/test/relaxng/tutor3_2_1.xml b/test/relaxng/tutor3_2_1.xml new file mode 100644 index 0000000..73c2fa6 --- /dev/null +++ b/test/relaxng/tutor3_2_1.xml @@ -0,0 +1 @@ +js@example.comJohn Smith diff --git a/test/relaxng/tutor3_3.rng b/test/relaxng/tutor3_3.rng new file mode 100644 index 0000000..66193e8 --- /dev/null +++ b/test/relaxng/tutor3_3.rng @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor3_3_1.xml b/test/relaxng/tutor3_3_1.xml new file mode 100644 index 0000000..d9c9560 --- /dev/null +++ b/test/relaxng/tutor3_3_1.xml @@ -0,0 +1,4 @@ + + + + diff --git a/test/relaxng/tutor3_4.rng b/test/relaxng/tutor3_4.rng new file mode 100644 index 0000000..9a63917 --- /dev/null +++ b/test/relaxng/tutor3_4.rng @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor3_4_1.xml b/test/relaxng/tutor3_4_1.xml new file mode 100644 index 0000000..bb2a54b --- /dev/null +++ b/test/relaxng/tutor3_4_1.xml @@ -0,0 +1,4 @@ + + + + diff --git a/test/relaxng/tutor3_5.rng b/test/relaxng/tutor3_5.rng new file mode 100644 index 0000000..829f219 --- /dev/null +++ b/test/relaxng/tutor3_5.rng @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor3_5_1.xml b/test/relaxng/tutor3_5_1.xml new file mode 100644 index 0000000..a457220 --- /dev/null +++ b/test/relaxng/tutor3_5_1.xml @@ -0,0 +1,7 @@ + + + +John Smith +js@example.com +John Smithjs@example.com + diff --git a/test/relaxng/tutor3_5_2.xml b/test/relaxng/tutor3_5_2.xml new file mode 100644 index 0000000..baa56dc --- /dev/null +++ b/test/relaxng/tutor3_5_2.xml @@ -0,0 +1,3 @@ + +js@example.comJohn Smith + diff --git a/test/relaxng/tutor3_6.rng b/test/relaxng/tutor3_6.rng new file mode 100644 index 0000000..1c8814a --- /dev/null +++ b/test/relaxng/tutor3_6.rng @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/test/relaxng/tutor3_6_1.xml b/test/relaxng/tutor3_6_1.xml new file mode 100644 index 0000000..8081734 --- /dev/null +++ b/test/relaxng/tutor3_6_1.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/tutor3_7.rng b/test/relaxng/tutor3_7.rng new file mode 100644 index 0000000..84ff576 --- /dev/null +++ b/test/relaxng/tutor3_7.rng @@ -0,0 +1,2 @@ + + diff --git a/test/relaxng/tutor3_7_1.xml b/test/relaxng/tutor3_7_1.xml new file mode 100644 index 0000000..61aa6d7 --- /dev/null +++ b/test/relaxng/tutor3_7_1.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/tutor3_8.rng b/test/relaxng/tutor3_8.rng new file mode 100644 index 0000000..1b780e6 --- /dev/null +++ b/test/relaxng/tutor3_8.rng @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor3_8_1.xml b/test/relaxng/tutor3_8_1.xml new file mode 100644 index 0000000..8d47e27 --- /dev/null +++ b/test/relaxng/tutor3_8_1.xml @@ -0,0 +1,4 @@ + + foobar + foobar + diff --git a/test/relaxng/tutor3_9.rng b/test/relaxng/tutor3_9.rng new file mode 100644 index 0000000..a3895cc --- /dev/null +++ b/test/relaxng/tutor3_9.rng @@ -0,0 +1,5 @@ + + + + + diff --git a/test/relaxng/tutor3_9_1.xml b/test/relaxng/tutor3_9_1.xml new file mode 100644 index 0000000..9153bc8 --- /dev/null +++ b/test/relaxng/tutor3_9_1.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/tutor4_1.rng b/test/relaxng/tutor4_1.rng new file mode 100644 index 0000000..dd10602 --- /dev/null +++ b/test/relaxng/tutor4_1.rng @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor4_1_1.xml b/test/relaxng/tutor4_1_1.xml new file mode 100644 index 0000000..9b8616a --- /dev/null +++ b/test/relaxng/tutor4_1_1.xml @@ -0,0 +1,4 @@ + + John Smithjs@example.com" + John Smith2js2@example.com" + diff --git a/test/relaxng/tutor4_2.rng b/test/relaxng/tutor4_2.rng new file mode 100644 index 0000000..644b06e --- /dev/null +++ b/test/relaxng/tutor4_2.rng @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor4_2_1.xml b/test/relaxng/tutor4_2_1.xml new file mode 100644 index 0000000..9b8616a --- /dev/null +++ b/test/relaxng/tutor4_2_1.xml @@ -0,0 +1,4 @@ + + John Smithjs@example.com" + John Smith2js2@example.com" + diff --git a/test/relaxng/tutor4_3.rng b/test/relaxng/tutor4_3.rng new file mode 100644 index 0000000..0f2a0a9 --- /dev/null +++ b/test/relaxng/tutor4_3.rng @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor4_3_1.xml b/test/relaxng/tutor4_3_1.xml new file mode 100644 index 0000000..31ee882 --- /dev/null +++ b/test/relaxng/tutor4_3_1.xml @@ -0,0 +1 @@ +

      diff --git a/test/relaxng/tutor4_3_2.xml b/test/relaxng/tutor4_3_2.xml new file mode 100644 index 0000000..3a8b953 --- /dev/null +++ b/test/relaxng/tutor4_3_2.xml @@ -0,0 +1 @@ +

      a

      diff --git a/test/relaxng/tutor4_3_3.xml b/test/relaxng/tutor4_3_3.xml new file mode 100644 index 0000000..dbf9bd5 --- /dev/null +++ b/test/relaxng/tutor4_3_3.xml @@ -0,0 +1 @@ +

      diff --git a/test/relaxng/tutor4_3_4.xml b/test/relaxng/tutor4_3_4.xml new file mode 100644 index 0000000..5c284e6 --- /dev/null +++ b/test/relaxng/tutor4_3_4.xml @@ -0,0 +1 @@ +

      c

      diff --git a/test/relaxng/tutor4_3_5.xml b/test/relaxng/tutor4_3_5.xml new file mode 100644 index 0000000..ddc7af2 --- /dev/null +++ b/test/relaxng/tutor4_3_5.xml @@ -0,0 +1 @@ +

      abcdefg

      diff --git a/test/relaxng/tutor4_3_6.xml b/test/relaxng/tutor4_3_6.xml new file mode 100644 index 0000000..f715763 --- /dev/null +++ b/test/relaxng/tutor4_3_6.xml @@ -0,0 +1 @@ +

      abcdefg

      diff --git a/test/relaxng/tutor4_4.rng b/test/relaxng/tutor4_4.rng new file mode 100644 index 0000000..4e4f19c --- /dev/null +++ b/test/relaxng/tutor4_4.rng @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor4_4_1.xml b/test/relaxng/tutor4_4_1.xml new file mode 100644 index 0000000..ddc7af2 --- /dev/null +++ b/test/relaxng/tutor4_4_1.xml @@ -0,0 +1 @@ +

      abcdefg

      diff --git a/test/relaxng/tutor5_1.rng b/test/relaxng/tutor5_1.rng new file mode 100644 index 0000000..503a043 --- /dev/null +++ b/test/relaxng/tutor5_1.rng @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/tutor5_1_1.xml b/test/relaxng/tutor5_1_1.xml new file mode 100644 index 0000000..aa01853 --- /dev/null +++ b/test/relaxng/tutor5_1_1.xml @@ -0,0 +1 @@ +5 diff --git a/test/relaxng/tutor5_2.rng b/test/relaxng/tutor5_2.rng new file mode 100644 index 0000000..9d749dc --- /dev/null +++ b/test/relaxng/tutor5_2.rng @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/test/relaxng/tutor5_2_1.xml b/test/relaxng/tutor5_2_1.xml new file mode 100644 index 0000000..75c387d --- /dev/null +++ b/test/relaxng/tutor5_2_1.xml @@ -0,0 +1 @@ +15.20 diff --git a/test/relaxng/tutor5_3.rng b/test/relaxng/tutor5_3.rng new file mode 100644 index 0000000..e49f6ec --- /dev/null +++ b/test/relaxng/tutor5_3.rng @@ -0,0 +1,6 @@ + + + + + + diff --git a/test/relaxng/tutor5_3_1.xml b/test/relaxng/tutor5_3_1.xml new file mode 100644 index 0000000..bd73098 --- /dev/null +++ b/test/relaxng/tutor5_3_1.xml @@ -0,0 +1 @@ +5fails diff --git a/test/relaxng/tutor5_4.rng b/test/relaxng/tutor5_4.rng new file mode 100644 index 0000000..e6aae94 --- /dev/null +++ b/test/relaxng/tutor5_4.rng @@ -0,0 +1,6 @@ + + + + + + diff --git a/test/relaxng/tutor5_4_1.xml b/test/relaxng/tutor5_4_1.xml new file mode 100644 index 0000000..c9cdef4 --- /dev/null +++ b/test/relaxng/tutor5_4_1.xml @@ -0,0 +1 @@ +5 diff --git a/test/relaxng/tutor5_5.rng b/test/relaxng/tutor5_5.rng new file mode 100644 index 0000000..b620ab8 --- /dev/null +++ b/test/relaxng/tutor5_5.rng @@ -0,0 +1,5 @@ + + + 127 + + diff --git a/test/relaxng/tutor6_1.rng b/test/relaxng/tutor6_1.rng new file mode 100644 index 0000000..7a06092 --- /dev/null +++ b/test/relaxng/tutor6_1.rng @@ -0,0 +1,10 @@ + + + + + + html + text + + + diff --git a/test/relaxng/tutor6_1_1.xml b/test/relaxng/tutor6_1_1.xml new file mode 100644 index 0000000..30460ae --- /dev/null +++ b/test/relaxng/tutor6_1_1.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/tutor6_1_2.xml b/test/relaxng/tutor6_1_2.xml new file mode 100644 index 0000000..bf3dfc2 --- /dev/null +++ b/test/relaxng/tutor6_1_2.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/tutor6_1_3.xml b/test/relaxng/tutor6_1_3.xml new file mode 100644 index 0000000..6038d79 --- /dev/null +++ b/test/relaxng/tutor6_1_3.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/tutor6_1_4.xml b/test/relaxng/tutor6_1_4.xml new file mode 100644 index 0000000..0ad64dd --- /dev/null +++ b/test/relaxng/tutor6_1_4.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/tutor6_1_5.xml b/test/relaxng/tutor6_1_5.xml new file mode 100644 index 0000000..c5d22bd --- /dev/null +++ b/test/relaxng/tutor6_1_5.xml @@ -0,0 +1,2 @@ + + diff --git a/test/relaxng/tutor6_2.rng b/test/relaxng/tutor6_2.rng new file mode 100644 index 0000000..1237fa7 --- /dev/null +++ b/test/relaxng/tutor6_2.rng @@ -0,0 +1,14 @@ + + + + + + + + + + html + text + + + diff --git a/test/relaxng/tutor6_2_1.xml b/test/relaxng/tutor6_2_1.xml new file mode 100644 index 0000000..5064bf2 --- /dev/null +++ b/test/relaxng/tutor6_2_1.xml @@ -0,0 +1,5 @@ + + John Smith + js@example.com + text + diff --git a/test/relaxng/tutor6_2_2.xml b/test/relaxng/tutor6_2_2.xml new file mode 100644 index 0000000..57da2e8 --- /dev/null +++ b/test/relaxng/tutor6_2_2.xml @@ -0,0 +1,5 @@ + + John Smith + js@example.com + html + diff --git a/test/relaxng/tutor6_2_3.xml b/test/relaxng/tutor6_2_3.xml new file mode 100644 index 0000000..acca979 --- /dev/null +++ b/test/relaxng/tutor6_2_3.xml @@ -0,0 +1,5 @@ + + John Smith + js@example.com + html + diff --git a/test/relaxng/tutor6_2_4.xml b/test/relaxng/tutor6_2_4.xml new file mode 100644 index 0000000..c3f723b --- /dev/null +++ b/test/relaxng/tutor6_2_4.xml @@ -0,0 +1,5 @@ + + John Smith + js@example.com + error + diff --git a/test/relaxng/tutor6_3.rng b/test/relaxng/tutor6_3.rng new file mode 100644 index 0000000..0683d0b --- /dev/null +++ b/test/relaxng/tutor6_3.rng @@ -0,0 +1,10 @@ + + + + + + html + text + + + diff --git a/test/relaxng/tutor6_3_1.xml b/test/relaxng/tutor6_3_1.xml new file mode 100644 index 0000000..0ad64dd --- /dev/null +++ b/test/relaxng/tutor6_3_1.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/tutor7_1.rng b/test/relaxng/tutor7_1.rng new file mode 100644 index 0000000..116e912 --- /dev/null +++ b/test/relaxng/tutor7_1.rng @@ -0,0 +1,7 @@ + + + + + + diff --git a/test/relaxng/tutor7_1_1.xml b/test/relaxng/tutor7_1_1.xml new file mode 100644 index 0000000..3f03eea --- /dev/null +++ b/test/relaxng/tutor7_1_1.xml @@ -0,0 +1 @@ +1.2 3.4 diff --git a/test/relaxng/tutor7_1_2.xml b/test/relaxng/tutor7_1_2.xml new file mode 100644 index 0000000..adbfdbd --- /dev/null +++ b/test/relaxng/tutor7_1_2.xml @@ -0,0 +1 @@ +1.2 diff --git a/test/relaxng/tutor7_1_3.xml b/test/relaxng/tutor7_1_3.xml new file mode 100644 index 0000000..f9eeb5c --- /dev/null +++ b/test/relaxng/tutor7_1_3.xml @@ -0,0 +1 @@ +1.2 3.4 5.6 diff --git a/test/relaxng/tutor7_1_4.xml b/test/relaxng/tutor7_1_4.xml new file mode 100644 index 0000000..c9bda7f --- /dev/null +++ b/test/relaxng/tutor7_1_4.xml @@ -0,0 +1 @@ + 1.2 3.4 diff --git a/test/relaxng/tutor7_2.rng b/test/relaxng/tutor7_2.rng new file mode 100644 index 0000000..a1c71d2 --- /dev/null +++ b/test/relaxng/tutor7_2.rng @@ -0,0 +1,8 @@ + + + + + + + diff --git a/test/relaxng/tutor7_2_1.xml b/test/relaxng/tutor7_2_1.xml new file mode 100644 index 0000000..adbfdbd --- /dev/null +++ b/test/relaxng/tutor7_2_1.xml @@ -0,0 +1 @@ +1.2 diff --git a/test/relaxng/tutor7_2_2.xml b/test/relaxng/tutor7_2_2.xml new file mode 100644 index 0000000..f9eeb5c --- /dev/null +++ b/test/relaxng/tutor7_2_2.xml @@ -0,0 +1 @@ +1.2 3.4 5.6 diff --git a/test/relaxng/tutor7_2_3.xml b/test/relaxng/tutor7_2_3.xml new file mode 100644 index 0000000..5274bad --- /dev/null +++ b/test/relaxng/tutor7_2_3.xml @@ -0,0 +1 @@ + 1.2 3.4 diff --git a/test/relaxng/tutor7_2_4.xml b/test/relaxng/tutor7_2_4.xml new file mode 100644 index 0000000..719ba5f --- /dev/null +++ b/test/relaxng/tutor7_2_4.xml @@ -0,0 +1 @@ + diff --git a/test/relaxng/tutor7_3.rng b/test/relaxng/tutor7_3.rng new file mode 100644 index 0000000..cbedaf9 --- /dev/null +++ b/test/relaxng/tutor7_3.rng @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/test/relaxng/tutor7_3_1.xml b/test/relaxng/tutor7_3_1.xml new file mode 100644 index 0000000..bf61b50 --- /dev/null +++ b/test/relaxng/tutor7_3_1.xml @@ -0,0 +1 @@ +1.2 3.4 diff --git a/test/relaxng/tutor7_3_2.xml b/test/relaxng/tutor7_3_2.xml new file mode 100644 index 0000000..45b4857 --- /dev/null +++ b/test/relaxng/tutor7_3_2.xml @@ -0,0 +1 @@ +1.2 3.4 5 6 7 8 diff --git a/test/relaxng/tutor7_3_3.xml b/test/relaxng/tutor7_3_3.xml new file mode 100644 index 0000000..4abd17d --- /dev/null +++ b/test/relaxng/tutor7_3_3.xml @@ -0,0 +1 @@ + 1.2 3.4 5 6 diff --git a/test/relaxng/tutor7_3_4.xml b/test/relaxng/tutor7_3_4.xml new file mode 100644 index 0000000..62099ae --- /dev/null +++ b/test/relaxng/tutor7_3_4.xml @@ -0,0 +1 @@ +1.2 3.4 5.6 diff --git a/test/relaxng/tutor7_3_5.xml b/test/relaxng/tutor7_3_5.xml new file mode 100644 index 0000000..fef5f25 --- /dev/null +++ b/test/relaxng/tutor7_3_5.xml @@ -0,0 +1 @@ +1.2 diff --git a/test/relaxng/tutor8_1.rng b/test/relaxng/tutor8_1.rng new file mode 100644 index 0000000..c7bbe8b --- /dev/null +++ b/test/relaxng/tutor8_1.rng @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor8_1_1.xml b/test/relaxng/tutor8_1_1.xml new file mode 100644 index 0000000..8f1e1a8 --- /dev/null +++ b/test/relaxng/tutor8_1_1.xml @@ -0,0 +1,6 @@ + + + b@b + b + + diff --git a/test/relaxng/tutor8_1_2.xml b/test/relaxng/tutor8_1_2.xml new file mode 100644 index 0000000..c1f3767 --- /dev/null +++ b/test/relaxng/tutor8_1_2.xml @@ -0,0 +1,7 @@ + + + b + b@b + + + diff --git a/test/relaxng/tutor8_2.rng b/test/relaxng/tutor8_2.rng new file mode 100644 index 0000000..495968e --- /dev/null +++ b/test/relaxng/tutor8_2.rng @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor8_2_1.xml b/test/relaxng/tutor8_2_1.xml new file mode 100644 index 0000000..fed80d4 --- /dev/null +++ b/test/relaxng/tutor8_2_1.xml @@ -0,0 +1,5 @@ + + meta1 + foo + meta2 + diff --git a/test/relaxng/tutor8_2_2.xml b/test/relaxng/tutor8_2_2.xml new file mode 100644 index 0000000..24c2e6b --- /dev/null +++ b/test/relaxng/tutor8_2_2.xml @@ -0,0 +1,36 @@ + + meta + meta + + link + + + link + + base + foo + meta + + link + + meta + meta + meta + meta + meta + + link + + + link + + + link + + + link + + + link + + diff --git a/test/relaxng/tutor8_2_3.xml b/test/relaxng/tutor8_2_3.xml new file mode 100644 index 0000000..920f99d --- /dev/null +++ b/test/relaxng/tutor8_2_3.xml @@ -0,0 +1,3 @@ + + title + diff --git a/test/relaxng/tutor8_2_4.xml b/test/relaxng/tutor8_2_4.xml new file mode 100644 index 0000000..68f3865 --- /dev/null +++ b/test/relaxng/tutor8_2_4.xml @@ -0,0 +1,6 @@ + + meta1 + foo + meta2 + error + diff --git a/test/relaxng/tutor8_2_5.xml b/test/relaxng/tutor8_2_5.xml new file mode 100644 index 0000000..75b9d53 --- /dev/null +++ b/test/relaxng/tutor8_2_5.xml @@ -0,0 +1,3 @@ + + meta2 + diff --git a/test/relaxng/tutor8_2_6.xml b/test/relaxng/tutor8_2_6.xml new file mode 100644 index 0000000..20fb4c7 --- /dev/null +++ b/test/relaxng/tutor8_2_6.xml @@ -0,0 +1,5 @@ + + base + foo + error + diff --git a/test/relaxng/tutor8_3.rng b/test/relaxng/tutor8_3.rng new file mode 100644 index 0000000..b68814d --- /dev/null +++ b/test/relaxng/tutor8_3.rng @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/test/relaxng/tutor8_3_1.xml b/test/relaxng/tutor8_3_1.xml new file mode 100644 index 0000000..86ea447 --- /dev/null +++ b/test/relaxng/tutor8_3_1.xml @@ -0,0 +1 @@ + how are you

      'yau de poelle

      ?
      diff --git a/test/relaxng/tutor9_1.rng b/test/relaxng/tutor9_1.rng new file mode 100644 index 0000000..43a59fc --- /dev/null +++ b/test/relaxng/tutor9_1.rng @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor9_10.rng b/test/relaxng/tutor9_10.rng new file mode 100644 index 0000000..c5b38db --- /dev/null +++ b/test/relaxng/tutor9_10.rng @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor9_10_1.xml b/test/relaxng/tutor9_10_1.xml new file mode 100644 index 0000000..139a079 --- /dev/null +++ b/test/relaxng/tutor9_10_1.xml @@ -0,0 +1,3 @@ + +

      abcdefg

      +
      diff --git a/test/relaxng/tutor9_11.rng b/test/relaxng/tutor9_11.rng new file mode 100644 index 0000000..cf63b02 --- /dev/null +++ b/test/relaxng/tutor9_11.rng @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor9_11_1.xml b/test/relaxng/tutor9_11_1.xml new file mode 100644 index 0000000..c542fa6 --- /dev/null +++ b/test/relaxng/tutor9_11_1.xml @@ -0,0 +1,3 @@ + + foobar + diff --git a/test/relaxng/tutor9_12.rng b/test/relaxng/tutor9_12.rng new file mode 100644 index 0000000..be10b85 --- /dev/null +++ b/test/relaxng/tutor9_12.rng @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor9_12_1.xml b/test/relaxng/tutor9_12_1.xml new file mode 100644 index 0000000..c542fa6 --- /dev/null +++ b/test/relaxng/tutor9_12_1.xml @@ -0,0 +1,3 @@ + + foobar + diff --git a/test/relaxng/tutor9_1_1.xml b/test/relaxng/tutor9_1_1.xml new file mode 100644 index 0000000..f45fc3b --- /dev/null +++ b/test/relaxng/tutor9_1_1.xml @@ -0,0 +1,7 @@ + + + foo + bar + this guy is annoying ! + + diff --git a/test/relaxng/tutor9_2.rng b/test/relaxng/tutor9_2.rng new file mode 100644 index 0000000..cb434bd --- /dev/null +++ b/test/relaxng/tutor9_2.rng @@ -0,0 +1,7 @@ + + + + + + + diff --git a/test/relaxng/tutor9_2_1.xml b/test/relaxng/tutor9_2_1.xml new file mode 100644 index 0000000..2ca54ee --- /dev/null +++ b/test/relaxng/tutor9_2_1.xml @@ -0,0 +1,4 @@ + +
      a + a + diff --git a/test/relaxng/tutor9_2_2.xml b/test/relaxng/tutor9_2_2.xml new file mode 100644 index 0000000..2ca54ee --- /dev/null +++ b/test/relaxng/tutor9_2_2.xml @@ -0,0 +1,4 @@ + + a + a + diff --git a/test/relaxng/tutor9_3.rng b/test/relaxng/tutor9_3.rng new file mode 100644 index 0000000..62c6e7d --- /dev/null +++ b/test/relaxng/tutor9_3.rng @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor9_3_1.xml b/test/relaxng/tutor9_3_1.xml new file mode 100644 index 0000000..50bfa20 --- /dev/null +++ b/test/relaxng/tutor9_3_1.xml @@ -0,0 +1 @@ + a b c d e diff --git a/test/relaxng/tutor9_3_2.xml b/test/relaxng/tutor9_3_2.xml new file mode 100644 index 0000000..f089542 --- /dev/null +++ b/test/relaxng/tutor9_3_2.xml @@ -0,0 +1 @@ + a b c d foo e diff --git a/test/relaxng/tutor9_4.rng b/test/relaxng/tutor9_4.rng new file mode 100644 index 0000000..d3b7e8e --- /dev/null +++ b/test/relaxng/tutor9_4.rng @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor9_4_1.xml b/test/relaxng/tutor9_4_1.xml new file mode 100644 index 0000000..50bfa20 --- /dev/null +++ b/test/relaxng/tutor9_4_1.xml @@ -0,0 +1 @@ + a b c d e diff --git a/test/relaxng/tutor9_4_2.xml b/test/relaxng/tutor9_4_2.xml new file mode 100644 index 0000000..f089542 --- /dev/null +++ b/test/relaxng/tutor9_4_2.xml @@ -0,0 +1 @@ + a b c d foo e diff --git a/test/relaxng/tutor9_5.rng b/test/relaxng/tutor9_5.rng new file mode 100644 index 0000000..b8b0a84 --- /dev/null +++ b/test/relaxng/tutor9_5.rng @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor9_5_1.xml b/test/relaxng/tutor9_5_1.xml new file mode 100644 index 0000000..275753b --- /dev/null +++ b/test/relaxng/tutor9_5_1.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/tutor9_5_2.xml b/test/relaxng/tutor9_5_2.xml new file mode 100644 index 0000000..1ff1d3c --- /dev/null +++ b/test/relaxng/tutor9_5_2.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/tutor9_5_3.xml b/test/relaxng/tutor9_5_3.xml new file mode 100644 index 0000000..b70c5bf --- /dev/null +++ b/test/relaxng/tutor9_5_3.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/tutor9_6.rng b/test/relaxng/tutor9_6.rng new file mode 100644 index 0000000..0730038 --- /dev/null +++ b/test/relaxng/tutor9_6.rng @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor9_6_1.xml b/test/relaxng/tutor9_6_1.xml new file mode 100644 index 0000000..275753b --- /dev/null +++ b/test/relaxng/tutor9_6_1.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/tutor9_6_2.xml b/test/relaxng/tutor9_6_2.xml new file mode 100644 index 0000000..1ff1d3c --- /dev/null +++ b/test/relaxng/tutor9_6_2.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/tutor9_6_3.xml b/test/relaxng/tutor9_6_3.xml new file mode 100644 index 0000000..b70c5bf --- /dev/null +++ b/test/relaxng/tutor9_6_3.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/relaxng/tutor9_7.rng b/test/relaxng/tutor9_7.rng new file mode 100644 index 0000000..ae5e509 --- /dev/null +++ b/test/relaxng/tutor9_7.rng @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor9_7_1.xml b/test/relaxng/tutor9_7_1.xml new file mode 100644 index 0000000..139a079 --- /dev/null +++ b/test/relaxng/tutor9_7_1.xml @@ -0,0 +1,3 @@ + +

      abcdefg

      +
      diff --git a/test/relaxng/tutor9_8.rng b/test/relaxng/tutor9_8.rng new file mode 100644 index 0000000..16a141d --- /dev/null +++ b/test/relaxng/tutor9_8.rng @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor9_8_1.xml b/test/relaxng/tutor9_8_1.xml new file mode 100644 index 0000000..139a079 --- /dev/null +++ b/test/relaxng/tutor9_8_1.xml @@ -0,0 +1,3 @@ + +

      abcdefg

      +
      diff --git a/test/relaxng/tutor9_9.rng b/test/relaxng/tutor9_9.rng new file mode 100644 index 0000000..9f2e5ea --- /dev/null +++ b/test/relaxng/tutor9_9.rng @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/relaxng/tutor9_9_1.xml b/test/relaxng/tutor9_9_1.xml new file mode 100644 index 0000000..139a079 --- /dev/null +++ b/test/relaxng/tutor9_9_1.xml @@ -0,0 +1,3 @@ + +

      abcdefg

      +
      diff --git a/test/relaxng/tutorA.rng b/test/relaxng/tutorA.rng new file mode 100644 index 0000000..b9ef4e1 --- /dev/null +++ b/test/relaxng/tutorA.rng @@ -0,0 +1,334 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + choice + interleave + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/570702_0.xml b/test/schemas/570702_0.xml new file mode 100644 index 0000000..774e56f --- /dev/null +++ b/test/schemas/570702_0.xml @@ -0,0 +1,13 @@ + + + + + 15 + 127 + 15 + 127 + 15 + 127 + + diff --git a/test/schemas/570702_0.xsd b/test/schemas/570702_0.xsd new file mode 100644 index 0000000..397a4d6 --- /dev/null +++ b/test/schemas/570702_0.xsd @@ -0,0 +1,25 @@ + + + + + + + Destination Number Length + + + + + + + + + + + destroy flag + + + + + + diff --git a/test/schemas/579746_0.xml b/test/schemas/579746_0.xml new file mode 100644 index 0000000..7e42f2a --- /dev/null +++ b/test/schemas/579746_0.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/schemas/579746_0.xsd b/test/schemas/579746_0.xsd new file mode 100644 index 0000000..1695fe6 --- /dev/null +++ b/test/schemas/579746_0.xsd @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/test/schemas/579746_1.xml b/test/schemas/579746_1.xml new file mode 100644 index 0000000..12f3d4d --- /dev/null +++ b/test/schemas/579746_1.xml @@ -0,0 +1,4 @@ + + + + diff --git a/test/schemas/579746_1.xsd b/test/schemas/579746_1.xsd new file mode 100644 index 0000000..e354967 --- /dev/null +++ b/test/schemas/579746_1.xsd @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/test/schemas/579746_2.xml b/test/schemas/579746_2.xml new file mode 100644 index 0000000..5d16dea --- /dev/null +++ b/test/schemas/579746_2.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/test/schemas/579746_3.xml b/test/schemas/579746_3.xml new file mode 100644 index 0000000..aedcc21 --- /dev/null +++ b/test/schemas/579746_3.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/test/schemas/579746_4.xml b/test/schemas/579746_4.xml new file mode 100644 index 0000000..94bdc55 --- /dev/null +++ b/test/schemas/579746_4.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/test/schemas/579746_5.xml b/test/schemas/579746_5.xml new file mode 100644 index 0000000..b4b1350 --- /dev/null +++ b/test/schemas/579746_5.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/test/schemas/582887-attribute.xsd b/test/schemas/582887-attribute.xsd new file mode 100644 index 0000000..75d7d4a --- /dev/null +++ b/test/schemas/582887-attribute.xsd @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/test/schemas/582887-common.xsd b/test/schemas/582887-common.xsd new file mode 100644 index 0000000..c1c385d --- /dev/null +++ b/test/schemas/582887-common.xsd @@ -0,0 +1,8 @@ + + + + + + diff --git a/test/schemas/582887-element.xsd b/test/schemas/582887-element.xsd new file mode 100644 index 0000000..0562021 --- /dev/null +++ b/test/schemas/582887-element.xsd @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/test/schemas/582887_0.xml b/test/schemas/582887_0.xml new file mode 100644 index 0000000..0a74714 --- /dev/null +++ b/test/schemas/582887_0.xml @@ -0,0 +1,7 @@ + + + + diff --git a/test/schemas/582887_0.xsd b/test/schemas/582887_0.xsd new file mode 100644 index 0000000..a3b175a --- /dev/null +++ b/test/schemas/582887_0.xsd @@ -0,0 +1,17 @@ + + + + + + + + + + + + + diff --git a/test/schemas/582906-1-common.xsd b/test/schemas/582906-1-common.xsd new file mode 100644 index 0000000..aa7cbda --- /dev/null +++ b/test/schemas/582906-1-common.xsd @@ -0,0 +1,6 @@ + + + + diff --git a/test/schemas/582906-1-prog1.xsd b/test/schemas/582906-1-prog1.xsd new file mode 100644 index 0000000..33dde56 --- /dev/null +++ b/test/schemas/582906-1-prog1.xsd @@ -0,0 +1,11 @@ + + + + + + + diff --git a/test/schemas/582906-1-prog2-include.xsd b/test/schemas/582906-1-prog2-include.xsd new file mode 100644 index 0000000..8701cfc --- /dev/null +++ b/test/schemas/582906-1-prog2-include.xsd @@ -0,0 +1,9 @@ + + + + + + + diff --git a/test/schemas/582906-1-prog2.xsd b/test/schemas/582906-1-prog2.xsd new file mode 100644 index 0000000..4528fff --- /dev/null +++ b/test/schemas/582906-1-prog2.xsd @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/test/schemas/582906-1_0.xml b/test/schemas/582906-1_0.xml new file mode 100644 index 0000000..311d85f --- /dev/null +++ b/test/schemas/582906-1_0.xml @@ -0,0 +1,5 @@ + +5.3 diff --git a/test/schemas/582906-1_0.xsd b/test/schemas/582906-1_0.xsd new file mode 100644 index 0000000..578f5a4 --- /dev/null +++ b/test/schemas/582906-1_0.xsd @@ -0,0 +1,20 @@ + + + + + + + + + + + diff --git a/test/schemas/582906-2-common.xsd b/test/schemas/582906-2-common.xsd new file mode 100644 index 0000000..c3b8c37 --- /dev/null +++ b/test/schemas/582906-2-common.xsd @@ -0,0 +1,7 @@ + + + + diff --git a/test/schemas/582906-2-prog1.xsd b/test/schemas/582906-2-prog1.xsd new file mode 100644 index 0000000..5cd2d41 --- /dev/null +++ b/test/schemas/582906-2-prog1.xsd @@ -0,0 +1,11 @@ + + + + + + + diff --git a/test/schemas/582906-2-prog2-include.xsd b/test/schemas/582906-2-prog2-include.xsd new file mode 100644 index 0000000..4985aa3 --- /dev/null +++ b/test/schemas/582906-2-prog2-include.xsd @@ -0,0 +1,9 @@ + + + + + + + diff --git a/test/schemas/582906-2-prog2.xsd b/test/schemas/582906-2-prog2.xsd new file mode 100644 index 0000000..9446f21 --- /dev/null +++ b/test/schemas/582906-2-prog2.xsd @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/test/schemas/582906-2_0.xml b/test/schemas/582906-2_0.xml new file mode 100644 index 0000000..e928957 --- /dev/null +++ b/test/schemas/582906-2_0.xml @@ -0,0 +1,5 @@ + +5.3 diff --git a/test/schemas/582906-2_0.xsd b/test/schemas/582906-2_0.xsd new file mode 100644 index 0000000..e62ebb8 --- /dev/null +++ b/test/schemas/582906-2_0.xsd @@ -0,0 +1,20 @@ + + + + + + + + + + + diff --git a/test/schemas/all.xsd b/test/schemas/all.xsd new file mode 100644 index 0000000..b2e70e3 --- /dev/null +++ b/test/schemas/all.xsd @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/test/schemas/all1_0.xml b/test/schemas/all1_0.xml new file mode 100644 index 0000000..f50088c --- /dev/null +++ b/test/schemas/all1_0.xml @@ -0,0 +1,4 @@ + + + + diff --git a/test/schemas/all1_0.xsd b/test/schemas/all1_0.xsd new file mode 100644 index 0000000..28fee0e --- /dev/null +++ b/test/schemas/all1_0.xsd @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/test/schemas/all_0.xml b/test/schemas/all_0.xml new file mode 100644 index 0000000..fb5b0fa --- /dev/null +++ b/test/schemas/all_0.xml @@ -0,0 +1 @@ + diff --git a/test/schemas/all_0.xsd b/test/schemas/all_0.xsd new file mode 100644 index 0000000..55c04ee --- /dev/null +++ b/test/schemas/all_0.xsd @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/schemas/all_1.xml b/test/schemas/all_1.xml new file mode 100644 index 0000000..41d797e --- /dev/null +++ b/test/schemas/all_1.xml @@ -0,0 +1,2 @@ + + diff --git a/test/schemas/all_1.xsd b/test/schemas/all_1.xsd new file mode 100644 index 0000000..bc386f3 --- /dev/null +++ b/test/schemas/all_1.xsd @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/schemas/all_2.xml b/test/schemas/all_2.xml new file mode 100644 index 0000000..cc1580b --- /dev/null +++ b/test/schemas/all_2.xml @@ -0,0 +1 @@ + diff --git a/test/schemas/all_2.xsd b/test/schemas/all_2.xsd new file mode 100644 index 0000000..630b0df --- /dev/null +++ b/test/schemas/all_2.xsd @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/test/schemas/all_3.xml b/test/schemas/all_3.xml new file mode 100644 index 0000000..c011b3f --- /dev/null +++ b/test/schemas/all_3.xml @@ -0,0 +1 @@ + diff --git a/test/schemas/all_4.xml b/test/schemas/all_4.xml new file mode 100644 index 0000000..afa807c --- /dev/null +++ b/test/schemas/all_4.xml @@ -0,0 +1 @@ + diff --git a/test/schemas/all_5.xml b/test/schemas/all_5.xml new file mode 100644 index 0000000..d68f321 --- /dev/null +++ b/test/schemas/all_5.xml @@ -0,0 +1 @@ + diff --git a/test/schemas/all_6.xml b/test/schemas/all_6.xml new file mode 100644 index 0000000..7dd71b1 --- /dev/null +++ b/test/schemas/all_6.xml @@ -0,0 +1 @@ + diff --git a/test/schemas/all_7.xml b/test/schemas/all_7.xml new file mode 100644 index 0000000..c011b3f --- /dev/null +++ b/test/schemas/all_7.xml @@ -0,0 +1 @@ + diff --git a/test/schemas/allsg_0.xml b/test/schemas/allsg_0.xml new file mode 100644 index 0000000..814646f --- /dev/null +++ b/test/schemas/allsg_0.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/test/schemas/allsg_0.xsd b/test/schemas/allsg_0.xsd new file mode 100644 index 0000000..11d27a8 --- /dev/null +++ b/test/schemas/allsg_0.xsd @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/allsg_1.xml b/test/schemas/allsg_1.xml new file mode 100644 index 0000000..d1dc9c4 --- /dev/null +++ b/test/schemas/allsg_1.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/test/schemas/allsg_2.xml b/test/schemas/allsg_2.xml new file mode 100644 index 0000000..b39cb7a --- /dev/null +++ b/test/schemas/allsg_2.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/test/schemas/allsg_3.xml b/test/schemas/allsg_3.xml new file mode 100644 index 0000000..ac37b7b --- /dev/null +++ b/test/schemas/allsg_3.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/test/schemas/allsg_4.xml b/test/schemas/allsg_4.xml new file mode 100644 index 0000000..bbb654a --- /dev/null +++ b/test/schemas/allsg_4.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/test/schemas/allsg_5.xml b/test/schemas/allsg_5.xml new file mode 100644 index 0000000..44dde3e --- /dev/null +++ b/test/schemas/allsg_5.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/test/schemas/annot-err_0.xml b/test/schemas/annot-err_0.xml new file mode 100644 index 0000000..fe92b0a --- /dev/null +++ b/test/schemas/annot-err_0.xml @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/test/schemas/annot-err_0.xsd b/test/schemas/annot-err_0.xsd new file mode 100644 index 0000000..94d818c --- /dev/null +++ b/test/schemas/annot-err_0.xsd @@ -0,0 +1,21 @@ + + + + + I shouldn't do this here... + + weeelll + + + hmmmmmm + + ...and here as well - more than ever + + + + diff --git a/test/schemas/any1_0.xml b/test/schemas/any1_0.xml new file mode 100644 index 0000000..91264e4 --- /dev/null +++ b/test/schemas/any1_0.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + diff --git a/test/schemas/any1_0.xsd b/test/schemas/any1_0.xsd new file mode 100644 index 0000000..ed0087b --- /dev/null +++ b/test/schemas/any1_0.xsd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/any2_0.xml b/test/schemas/any2_0.xml new file mode 100644 index 0000000..e649a2c --- /dev/null +++ b/test/schemas/any2_0.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/any2_0.xsd b/test/schemas/any2_0.xsd new file mode 100644 index 0000000..2bf726e --- /dev/null +++ b/test/schemas/any2_0.xsd @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/any3_0.xml b/test/schemas/any3_0.xml new file mode 100644 index 0000000..158f91c --- /dev/null +++ b/test/schemas/any3_0.xml @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/test/schemas/any3_0.xsd b/test/schemas/any3_0.xsd new file mode 100644 index 0000000..b5c29f6 --- /dev/null +++ b/test/schemas/any3_0.xsd @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/any4_0.xml b/test/schemas/any4_0.xml new file mode 100644 index 0000000..1620397 --- /dev/null +++ b/test/schemas/any4_0.xml @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/test/schemas/any4_0.xsd b/test/schemas/any4_0.xsd new file mode 100644 index 0000000..fa93577 --- /dev/null +++ b/test/schemas/any4_0.xsd @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/any5_0.xml b/test/schemas/any5_0.xml new file mode 100644 index 0000000..e716cb1 --- /dev/null +++ b/test/schemas/any5_0.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/test/schemas/any5_0.xsd b/test/schemas/any5_0.xsd new file mode 100644 index 0000000..70c8789 --- /dev/null +++ b/test/schemas/any5_0.xsd @@ -0,0 +1,13 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/any5_1.xml b/test/schemas/any5_1.xml new file mode 100644 index 0000000..91dcb54 --- /dev/null +++ b/test/schemas/any5_1.xml @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/test/schemas/any5_1.xsd b/test/schemas/any5_1.xsd new file mode 100644 index 0000000..4d3c9de --- /dev/null +++ b/test/schemas/any5_1.xsd @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/test/schemas/any5_2.xml b/test/schemas/any5_2.xml new file mode 100644 index 0000000..e8434d1 --- /dev/null +++ b/test/schemas/any5_2.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/test/schemas/any5_3.xml b/test/schemas/any5_3.xml new file mode 100644 index 0000000..828c4b3 --- /dev/null +++ b/test/schemas/any5_3.xml @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/test/schemas/any5_4.xml b/test/schemas/any5_4.xml new file mode 100644 index 0000000..91dcb54 --- /dev/null +++ b/test/schemas/any5_4.xml @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/test/schemas/any5_5.xml b/test/schemas/any5_5.xml new file mode 100644 index 0000000..e09d8a1 --- /dev/null +++ b/test/schemas/any5_5.xml @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/test/schemas/any5_6.xml b/test/schemas/any5_6.xml new file mode 100644 index 0000000..3b0ad73 --- /dev/null +++ b/test/schemas/any5_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + diff --git a/test/schemas/any6_0.xml b/test/schemas/any6_0.xml new file mode 100755 index 0000000..068a1a9 --- /dev/null +++ b/test/schemas/any6_0.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/test/schemas/any6_1.xsd b/test/schemas/any6_1.xsd new file mode 100644 index 0000000..23b2f5d --- /dev/null +++ b/test/schemas/any6_1.xsd @@ -0,0 +1,36 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/any6_2.xsd b/test/schemas/any6_2.xsd new file mode 100644 index 0000000..a552ca8 --- /dev/null +++ b/test/schemas/any6_2.xsd @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/test/schemas/any7_0.xml b/test/schemas/any7_0.xml new file mode 100755 index 0000000..288b1e7 --- /dev/null +++ b/test/schemas/any7_0.xml @@ -0,0 +1,19 @@ + + + + + + diff --git a/test/schemas/any7_1.xml b/test/schemas/any7_1.xml new file mode 100755 index 0000000..624c712 --- /dev/null +++ b/test/schemas/any7_1.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/test/schemas/any7_1.xsd b/test/schemas/any7_1.xsd new file mode 100755 index 0000000..546904f --- /dev/null +++ b/test/schemas/any7_1.xsd @@ -0,0 +1,13 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/any7_2.xml b/test/schemas/any7_2.xml new file mode 100644 index 0000000..66d84d0 --- /dev/null +++ b/test/schemas/any7_2.xml @@ -0,0 +1,20 @@ + + + + + + + diff --git a/test/schemas/any7_2.xsd b/test/schemas/any7_2.xsd new file mode 100755 index 0000000..cabfd98 --- /dev/null +++ b/test/schemas/any7_2.xsd @@ -0,0 +1,13 @@ + + + + + + + + + + + diff --git a/test/schemas/any8_0.xml b/test/schemas/any8_0.xml new file mode 100644 index 0000000..6e87cff --- /dev/null +++ b/test/schemas/any8_0.xml @@ -0,0 +1,9 @@ + + + + + diff --git a/test/schemas/any8_1.xsd b/test/schemas/any8_1.xsd new file mode 100644 index 0000000..9264893 --- /dev/null +++ b/test/schemas/any8_1.xsd @@ -0,0 +1,20 @@ + + + + + + + + + + + + + diff --git a/test/schemas/anyAttr-derive-errors1_0.xml b/test/schemas/anyAttr-derive-errors1_0.xml new file mode 100644 index 0000000..98e948c --- /dev/null +++ b/test/schemas/anyAttr-derive-errors1_0.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/anyAttr-derive-errors1_0.xsd b/test/schemas/anyAttr-derive-errors1_0.xsd new file mode 100644 index 0000000..1ab9bab --- /dev/null +++ b/test/schemas/anyAttr-derive-errors1_0.xsd @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/anyAttr-derive1_0.xml b/test/schemas/anyAttr-derive1_0.xml new file mode 100644 index 0000000..de89f45 --- /dev/null +++ b/test/schemas/anyAttr-derive1_0.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/anyAttr-derive1_0.xsd b/test/schemas/anyAttr-derive1_0.xsd new file mode 100644 index 0000000..bc14d99 --- /dev/null +++ b/test/schemas/anyAttr-derive1_0.xsd @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/anyAttr-derive2_0.xml b/test/schemas/anyAttr-derive2_0.xml new file mode 100644 index 0000000..c90cb88 --- /dev/null +++ b/test/schemas/anyAttr-derive2_0.xml @@ -0,0 +1,9 @@ + + + + + diff --git a/test/schemas/anyAttr-derive2_0.xsd b/test/schemas/anyAttr-derive2_0.xsd new file mode 100644 index 0000000..3a74d68 --- /dev/null +++ b/test/schemas/anyAttr-derive2_0.xsd @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/anyAttr-errors1_0.xml b/test/schemas/anyAttr-errors1_0.xml new file mode 100644 index 0000000..769a5bb --- /dev/null +++ b/test/schemas/anyAttr-errors1_0.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/anyAttr-processContents-err1_0.xml b/test/schemas/anyAttr-processContents-err1_0.xml new file mode 100644 index 0000000..a0122f4 --- /dev/null +++ b/test/schemas/anyAttr-processContents-err1_0.xml @@ -0,0 +1,11 @@ + + + + + + diff --git a/test/schemas/anyAttr-processContents-err1_0.xsd b/test/schemas/anyAttr-processContents-err1_0.xsd new file mode 100644 index 0000000..cc2a0fd --- /dev/null +++ b/test/schemas/anyAttr-processContents-err1_0.xsd @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/anyAttr-processContents1_0.xml b/test/schemas/anyAttr-processContents1_0.xml new file mode 100644 index 0000000..f821089 --- /dev/null +++ b/test/schemas/anyAttr-processContents1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/test/schemas/anyAttr-processContents1_0.xsd b/test/schemas/anyAttr-processContents1_0.xsd new file mode 100644 index 0000000..a468702 --- /dev/null +++ b/test/schemas/anyAttr-processContents1_0.xsd @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/anyAttr.importA.1_0.xsd b/test/schemas/anyAttr.importA.1_0.xsd new file mode 100644 index 0000000..92e0bbe --- /dev/null +++ b/test/schemas/anyAttr.importA.1_0.xsd @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/anyAttr.importB.1_0.xsd b/test/schemas/anyAttr.importB.1_0.xsd new file mode 100644 index 0000000..33eaba8 --- /dev/null +++ b/test/schemas/anyAttr.importB.1_0.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/anyAttr1_0.xml b/test/schemas/anyAttr1_0.xml new file mode 100644 index 0000000..50b5b16 --- /dev/null +++ b/test/schemas/anyAttr1_0.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/anyAttr1_0.xsd b/test/schemas/anyAttr1_0.xsd new file mode 100644 index 0000000..1fcf898 --- /dev/null +++ b/test/schemas/anyAttr1_0.xsd @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/attr0_0.xml b/test/schemas/attr0_0.xml new file mode 100644 index 0000000..cb5b1a6 --- /dev/null +++ b/test/schemas/attr0_0.xml @@ -0,0 +1 @@ + diff --git a/test/schemas/attr0_0.xsd b/test/schemas/attr0_0.xsd new file mode 100644 index 0000000..d2031ba --- /dev/null +++ b/test/schemas/attr0_0.xsd @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/test/schemas/attruse_0_0.xml b/test/schemas/attruse_0_0.xml new file mode 100644 index 0000000..241ab27 --- /dev/null +++ b/test/schemas/attruse_0_0.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/test/schemas/attruse_0_0.xsd b/test/schemas/attruse_0_0.xsd new file mode 100644 index 0000000..bc9ccef --- /dev/null +++ b/test/schemas/attruse_0_0.xsd @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/attruse_0_1.xml b/test/schemas/attruse_0_1.xml new file mode 100644 index 0000000..b857c6d --- /dev/null +++ b/test/schemas/attruse_0_1.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/test/schemas/attruse_0_2.xml b/test/schemas/attruse_0_2.xml new file mode 100644 index 0000000..f55ccdc --- /dev/null +++ b/test/schemas/attruse_0_2.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/test/schemas/bug141312_0.xml b/test/schemas/bug141312_0.xml new file mode 100644 index 0000000..7d7abb1 --- /dev/null +++ b/test/schemas/bug141312_0.xml @@ -0,0 +1,2 @@ + +lalala diff --git a/test/schemas/bug141312_0.xsd b/test/schemas/bug141312_0.xsd new file mode 100644 index 0000000..c9a7e2c --- /dev/null +++ b/test/schemas/bug141312_0.xsd @@ -0,0 +1,16 @@ + + + + + + + + + + + + + diff --git a/test/schemas/bug141333.xml b/test/schemas/bug141333.xml new file mode 100644 index 0000000..e14aa46 --- /dev/null +++ b/test/schemas/bug141333.xml @@ -0,0 +1,9 @@ + + + + + + + diff --git a/test/schemas/bug141333.xsd b/test/schemas/bug141333.xsd new file mode 100644 index 0000000..1b81a7b --- /dev/null +++ b/test/schemas/bug141333.xsd @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/bug141333_0.xml b/test/schemas/bug141333_0.xml new file mode 100644 index 0000000..e14aa46 --- /dev/null +++ b/test/schemas/bug141333_0.xml @@ -0,0 +1,9 @@ + + + + + + + diff --git a/test/schemas/bug141333_0.xsd b/test/schemas/bug141333_0.xsd new file mode 100644 index 0000000..1b81a7b --- /dev/null +++ b/test/schemas/bug141333_0.xsd @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/bug143951.imp b/test/schemas/bug143951.imp new file mode 100644 index 0000000..58420d3 --- /dev/null +++ b/test/schemas/bug143951.imp @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/test/schemas/bug143951_0.xml b/test/schemas/bug143951_0.xml new file mode 100644 index 0000000..a742a0d --- /dev/null +++ b/test/schemas/bug143951_0.xml @@ -0,0 +1,9 @@ + + + $File: //depot/NNL/R1.0_SandM_Dev/Projects/SandM/src/uisupport +/xml/cliTestCommands.xml $ + + diff --git a/test/schemas/bug143951_0.xsd b/test/schemas/bug143951_0.xsd new file mode 100644 index 0000000..d5c9511 --- /dev/null +++ b/test/schemas/bug143951_0.xsd @@ -0,0 +1,17 @@ + + + + + + + + + + + + diff --git a/test/schemas/bug145246.xsd.imp b/test/schemas/bug145246.xsd.imp new file mode 100644 index 0000000..7d92e1c --- /dev/null +++ b/test/schemas/bug145246.xsd.imp @@ -0,0 +1,119 @@ + + + + + + DCMES 1.1 XML Schema + XML Schema for http://purl.org/dc/elements/1.1/ namespace + + Created 2003-04-02 + + Created by + + Tim Cole (t-cole3@uiuc.edu) + Tom Habing (thabing@uiuc.edu) + Jane Hunter (jane@dstc.edu.au) + Pete Johnston (p.johnston@ukoln.ac.uk), + Carl Lagoze (lagoze@cs.cornell.edu) + + This schema declares XML elements for the 15 DC elements from the + http://purl.org/dc/elements/1.1/ namespace. + + It defines a complexType SimpleLiteral which permits mixed content + and makes the xml:lang attribute available. It disallows child elements by + use of minOcccurs/maxOccurs. + + However, this complexType does permit the derivation of other complexTypes + which would permit child elements. + + All elements are declared as substitutable for the abstract element any, + which means that the default type for all elements is dc:SimpleLiteral. + + + + + + + + + + + + + This is the default type for all of the DC elements. + It permits text content only with optional + xml:lang attribute. + Text is allowed because mixed="true", but sub-elements + are disallowed because minOccurs="0" and maxOccurs="0" + are on the xs:any tag. + + This complexType allows for restriction or extension permitting + child elements. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This group is included as a convenience for schema authors + who need to refer to all the elements in the + http://purl.org/dc/elements/1.1/ namespace. + + + + + + + + + + + + + + This complexType is included as a convenience for schema authors who need to define a root + or container element for all of the DC elements. + + + + + + + + + + + diff --git a/test/schemas/bug145246_0.xml b/test/schemas/bug145246_0.xml new file mode 100644 index 0000000..09050c6 --- /dev/null +++ b/test/schemas/bug145246_0.xml @@ -0,0 +1,30 @@ + + + + + + + message + + + + + + + + + + diff --git a/test/schemas/bug145246_0.xsd b/test/schemas/bug145246_0.xsd new file mode 100644 index 0000000..9cfe8c6 --- /dev/null +++ b/test/schemas/bug145246_0.xsd @@ -0,0 +1,173 @@ + + + + + + This schema describes giml dialog sources + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/bug152470_1.xml b/test/schemas/bug152470_1.xml new file mode 100755 index 0000000..adca237 --- /dev/null +++ b/test/schemas/bug152470_1.xml @@ -0,0 +1,9 @@ + + + + vXENc+Um/9/NvmYKiHDLaErK0gk= + + \ No newline at end of file diff --git a/test/schemas/bug152470_1.xsd b/test/schemas/bug152470_1.xsd new file mode 100755 index 0000000..7fc9747 --- /dev/null +++ b/test/schemas/bug152470_1.xsd @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/bug167754_0.xml b/test/schemas/bug167754_0.xml new file mode 100644 index 0000000..e5ec7d7 --- /dev/null +++ b/test/schemas/bug167754_0.xml @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/test/schemas/bug167754_0.xsd b/test/schemas/bug167754_0.xsd new file mode 100644 index 0000000..e7883d2 --- /dev/null +++ b/test/schemas/bug167754_0.xsd @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/bug303566_1.xml b/test/schemas/bug303566_1.xml new file mode 100644 index 0000000..1bf56dc --- /dev/null +++ b/test/schemas/bug303566_1.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + diff --git a/test/schemas/bug303566_1.xsd b/test/schemas/bug303566_1.xsd new file mode 100644 index 0000000..fee99f7 --- /dev/null +++ b/test/schemas/bug303566_1.xsd @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/bug306806_0.xml b/test/schemas/bug306806_0.xml new file mode 100644 index 0000000..90c55e1 --- /dev/null +++ b/test/schemas/bug306806_0.xml @@ -0,0 +1,111 @@ + + + + + /all/turbine/r.turbshaft + + 1.375 + 30.250 + + -13.125 0.000 0.000 + -0.000 90.000 0.000 + + /all/turbine/r.turbshaft/s.turbshaft + + + + + + + /all/turbine/r.turbshaft + + 1.375 + 0 0 0 + 1.1 1.1 1.1 + /all/turbine/r.turbshaft/s.turbshaft + + + + + + + /all/turbine/r.turbshaft + + 1.375 + 0 0 0 + 1.1 1.1 1.1 + /all/turbine/r.turbshaft/s.turbshaft + + + + + + + /all/turbine/r.turbshaft + + 1.375 + 0 0 0 + 1.1 1.1 1.1 + /all/turbine/r.turbshaft/s.turbshaft + + + + + + /all/turbine/r.turbshaft + + 1.375 + 0 0 0 + 1.1 1.1 1.1 + /all/turbine/r.turbshaft/s.turbshaft + + + + + + + /all/turbine/r.turbshaft + + 1.375 + 0 0 0 + 1.1 1.1 1.1 + /all/turbine/r.turbshaft/s.turbshaft + + + + + + /all/turbine/r.turbshaft + + 1.375 + 0 0 0 + 1.1 1.1 1.1 + /all/turbine/r.turbshaft/s.turbshaft + + + + + + /all/turbine/r.turbshaft + + 1.375 + 0 0 0 + 1.1 1.1 1.1 + /all/turbine/r.turbshaft/s.turbshaft + + + + + + /all/turbine/r.turbshaft + + 1.375 + 0 0 0 + 1.1 1.1 1.1 + /all/turbine/r.turbshaft/s.turbshaft + + + + diff --git a/test/schemas/bug306806_1.xsd b/test/schemas/bug306806_1.xsd new file mode 100644 index 0000000..edc805d --- /dev/null +++ b/test/schemas/bug306806_1.xsd @@ -0,0 +1,544 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + global ############# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/bug309338_0.xml b/test/schemas/bug309338_0.xml new file mode 100644 index 0000000..33cbf95 --- /dev/null +++ b/test/schemas/bug309338_0.xml @@ -0,0 +1,4 @@ + +2000.00 diff --git a/test/schemas/bug309338_1.xsd b/test/schemas/bug309338_1.xsd new file mode 100644 index 0000000..0aa586c --- /dev/null +++ b/test/schemas/bug309338_1.xsd @@ -0,0 +1,13 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/bug310264_0.xml b/test/schemas/bug310264_0.xml new file mode 100644 index 0000000..98f057c --- /dev/null +++ b/test/schemas/bug310264_0.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/bug310264_0.xsd b/test/schemas/bug310264_0.xsd new file mode 100644 index 0000000..6f2b333 --- /dev/null +++ b/test/schemas/bug310264_0.xsd @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + diff --git a/test/schemas/bug312957_0.xml b/test/schemas/bug312957_0.xml new file mode 100644 index 0000000..c22444f --- /dev/null +++ b/test/schemas/bug312957_0.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/test/schemas/bug312957_1.xsd b/test/schemas/bug312957_1.xsd new file mode 100644 index 0000000..fb7972e --- /dev/null +++ b/test/schemas/bug312957_1.xsd @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/bug313982_0.xml b/test/schemas/bug313982_0.xml new file mode 100644 index 0000000..18c81ea --- /dev/null +++ b/test/schemas/bug313982_0.xml @@ -0,0 +1,4 @@ + +0.99 diff --git a/test/schemas/bug313982_0.xsd b/test/schemas/bug313982_0.xsd new file mode 100644 index 0000000..69d0613 --- /dev/null +++ b/test/schemas/bug313982_0.xsd @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/test/schemas/bug321475_0.xml b/test/schemas/bug321475_0.xml new file mode 100644 index 0000000..6190231 --- /dev/null +++ b/test/schemas/bug321475_0.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/test/schemas/bug321475_1.xsd b/test/schemas/bug321475_1.xsd new file mode 100644 index 0000000..b714a0d --- /dev/null +++ b/test/schemas/bug321475_1.xsd @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/bug322411_0.xml b/test/schemas/bug322411_0.xml new file mode 100644 index 0000000..f883648 --- /dev/null +++ b/test/schemas/bug322411_0.xml @@ -0,0 +1,93 @@ + + + + + 1 + 2 + 3 + 4 + 5 + + dupl1 + dupl2 + dupl3 + dupl4 + dupl5 + dupl6 + dupl7 + dupl8 + dupl9 + dupl10 + dupl11 + + 6 + 7 + 8 + 9 + 10 + 11 + + 12 + 13 + 14 + 15 + + dupl1 + dupl2 + dupl3 + dupl4 + dupl5 + dupl6 + dupl7 + dupl8 + dupl9 + dupl10 + dupl11 + + 16 + 17 + 18 + 19 + 20 + 21 + + + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31 + 32 + 33 + 34 + 35 + 36 + 37 + 38 + 39 + 40 + 41 + + dupl1 + dupl2 + dupl3 + dupl4 + dupl5 + dupl6 + dupl7 + dupl8 + dupl9 + dupl10 + dupl11 + + + + 41 + + + diff --git a/test/schemas/bug322411_1.xsd b/test/schemas/bug322411_1.xsd new file mode 100644 index 0000000..383dee6 --- /dev/null +++ b/test/schemas/bug322411_1.xsd @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/bug323510_0.xml b/test/schemas/bug323510_0.xml new file mode 100644 index 0000000..ce7647d --- /dev/null +++ b/test/schemas/bug323510_0.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/schemas/bug323510_1.xsd b/test/schemas/bug323510_1.xsd new file mode 100644 index 0000000..8b047ce --- /dev/null +++ b/test/schemas/bug323510_1.xsd @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/bug455953_0.xml b/test/schemas/bug455953_0.xml new file mode 100644 index 0000000..448907c --- /dev/null +++ b/test/schemas/bug455953_0.xml @@ -0,0 +1,9 @@ + + + + + + EMPTY + + + \ No newline at end of file diff --git a/test/schemas/bug455953_0.xsd b/test/schemas/bug455953_0.xsd new file mode 100644 index 0000000..f635570 --- /dev/null +++ b/test/schemas/bug455953_0.xsd @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/changelog093_0.xml b/test/schemas/changelog093_0.xml new file mode 100644 index 0000000..4b49612 --- /dev/null +++ b/test/schemas/changelog093_0.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + diff --git a/test/schemas/changelog093_1.xsd b/test/schemas/changelog093_1.xsd new file mode 100644 index 0000000..cf2bcc6 --- /dev/null +++ b/test/schemas/changelog093_1.xsd @@ -0,0 +1,253 @@ + + + + + + A description of an XML application which itemizes changes over the + life-span of a software project. Changes are tracked by releases, with a + granularity of individual items made up of files that were affected. + + + Randy J. Ray (rjray@blackperl.com) + 2004-11-22 + changelog,xml,schema + + An XML Schema declaration describing an XML expression of software + project change-logs. + + + + + + XML Schema for Changelogs + + An XML Schema declaration describing an XML expression of software + project change-logs. + + + + Randy J. Ray + + + + + Randy J. Ray + + + + + + + + + + + + + + + + + + + + + An open-ended container type for including version-control information + at various levels within the changelog structure. This is the only + type which explicitly permits content from foreign namespaces. + + + + + + + + + + + + + A description block is used to document everything from specific change + items to the release as a whole. + + + + + + + + + + + + + The versionString type is applied to attributes that describe simple + revision-number strings. It only supports CVS (RCS) styled version + numbers. + + + + + + + + + + + The fileType definition is used for the file element, a part of the + itemType declaration. It is defined separately so that it can be + referred to from multiple places. + + + + + + + + + + + + + + + + + + + + + + + + + + A file element contains a single block representing a fileType. + + + + + + + + + + + + These element blocks define a single change-item within the scope of a + given release. A change-item consists of one or more files that were + affected, and a description of the change itself. + + + + + + + + + + + + + + + + + + + + + + + + An item element contains a single block representing an itemType. + + + + + + + + + + + + The release is the primary piece of information that a changelog + collects and organizes. A release contains an optional description, + followed by one or more item blocks. The release element is also the + greatest user of attributes besides the file element. A release element + must have at least a "version" attribute, uniquely identifying the + release itself. Additionally, it may have "tag" to associate it with + a release-system tag and "date" to specify the date the release was + created. + + + + + + + + + + + + + + + + + + + + + + + + + + + + The changelog element is intended as the document root element. It + contains an overview element (identical in structure to the description + element, but named differently to prevent collision in XPath queries) + and one or more release blocks. + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/choice_0.xml b/test/schemas/choice_0.xml new file mode 100644 index 0000000..677b039 --- /dev/null +++ b/test/schemas/choice_0.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/schemas/choice_0.xsd b/test/schemas/choice_0.xsd new file mode 100644 index 0000000..1491b6b --- /dev/null +++ b/test/schemas/choice_0.xsd @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/test/schemas/choice_1.xml b/test/schemas/choice_1.xml new file mode 100644 index 0000000..d5c0dd1 --- /dev/null +++ b/test/schemas/choice_1.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/schemas/choice_1.xsd b/test/schemas/choice_1.xsd new file mode 100644 index 0000000..00614d0 --- /dev/null +++ b/test/schemas/choice_1.xsd @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/test/schemas/choice_2.xml b/test/schemas/choice_2.xml new file mode 100644 index 0000000..7b27f17 --- /dev/null +++ b/test/schemas/choice_2.xml @@ -0,0 +1,4 @@ + + + + diff --git a/test/schemas/choice_2.xsd b/test/schemas/choice_2.xsd new file mode 100644 index 0000000..9f2b094 --- /dev/null +++ b/test/schemas/choice_2.xsd @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/test/schemas/choice_3.xml b/test/schemas/choice_3.xml new file mode 100644 index 0000000..0358109 --- /dev/null +++ b/test/schemas/choice_3.xml @@ -0,0 +1,4 @@ + + + + diff --git a/test/schemas/choice_4.xml b/test/schemas/choice_4.xml new file mode 100644 index 0000000..636923c --- /dev/null +++ b/test/schemas/choice_4.xml @@ -0,0 +1,2 @@ + + diff --git a/test/schemas/choice_5.xml b/test/schemas/choice_5.xml new file mode 100644 index 0000000..3345a68 --- /dev/null +++ b/test/schemas/choice_5.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/test/schemas/choice_6.xml b/test/schemas/choice_6.xml new file mode 100644 index 0000000..394153d --- /dev/null +++ b/test/schemas/choice_6.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/test/schemas/complex-type-extension_0.xml b/test/schemas/complex-type-extension_0.xml new file mode 100644 index 0000000..8cdda23 --- /dev/null +++ b/test/schemas/complex-type-extension_0.xml @@ -0,0 +1,12 @@ + + + + Name1 + 20 + + + Name1 + Name2 + 20 + + diff --git a/test/schemas/complex-type-extension_0.xsd b/test/schemas/complex-type-extension_0.xsd new file mode 100644 index 0000000..6a6237a --- /dev/null +++ b/test/schemas/complex-type-extension_0.xsd @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/cos-ct-extends-1-3_0.xml b/test/schemas/cos-ct-extends-1-3_0.xml new file mode 100644 index 0000000..a0b8a59 --- /dev/null +++ b/test/schemas/cos-ct-extends-1-3_0.xml @@ -0,0 +1,9 @@ + + + + + + diff --git a/test/schemas/cos-ct-extends-1-3_0.xsd b/test/schemas/cos-ct-extends-1-3_0.xsd new file mode 100644 index 0000000..7655a8e --- /dev/null +++ b/test/schemas/cos-ct-extends-1-3_0.xsd @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/cos-st-restricts-1-2-err_0.xml b/test/schemas/cos-st-restricts-1-2-err_0.xml new file mode 100644 index 0000000..6f60e5b --- /dev/null +++ b/test/schemas/cos-st-restricts-1-2-err_0.xml @@ -0,0 +1,3 @@ + +1 2 diff --git a/test/schemas/cos-st-restricts-1-2-err_0.xsd b/test/schemas/cos-st-restricts-1-2-err_0.xsd new file mode 100644 index 0000000..9d3fabf --- /dev/null +++ b/test/schemas/cos-st-restricts-1-2-err_0.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/ct-sc-nobase_0.xml b/test/schemas/ct-sc-nobase_0.xml new file mode 100644 index 0000000..8678410 --- /dev/null +++ b/test/schemas/ct-sc-nobase_0.xml @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/test/schemas/ct-sc-nobase_0.xsd b/test/schemas/ct-sc-nobase_0.xsd new file mode 100644 index 0000000..a00e941 --- /dev/null +++ b/test/schemas/ct-sc-nobase_0.xsd @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/date_0.xml b/test/schemas/date_0.xml new file mode 100644 index 0000000..6c677ed --- /dev/null +++ b/test/schemas/date_0.xml @@ -0,0 +1,26 @@ + + + + 01:02:59 + 12:59:59.0001 + 12:00:00 + 1996-05-20 + 2002-05-18 + 1996-05-19Z + 2002-05-19Z + 2002-05-18Z + 2000-05-18Z + 2000-05-18T00:00:00 + 2002-05-19T21:30:00.99 + 1969-12-31T23:00:01-01:00 + --01-01 + --07-04 + --12-25 + 2002 + 2002-05 + --05Z + ---31 + --02-28Z + --12-31-06:00 + 2003-04-30T18:00:00-06:00 + diff --git a/test/schemas/date_0.xsd b/test/schemas/date_0.xsd new file mode 100644 index 0000000..7247394 --- /dev/null +++ b/test/schemas/date_0.xsd @@ -0,0 +1,122 @@ + + + + + Testing date/time data types + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + some US holidays + + + + + New Year's day + + + + + 4th of July + + + + + Christmas + + + + + + diff --git a/test/schemas/decimal-1.xml b/test/schemas/decimal-1.xml new file mode 100644 index 0000000..4568ff1 --- /dev/null +++ b/test/schemas/decimal-1.xml @@ -0,0 +1,37 @@ + + + + + 0. + .0 + .10 + 01. + 000 + 123456789012345678 + -123456789012345678 + 0.123456789012345678 + -0.123456789012345678 + + . + - + + + * + - 1 + + 1 + + 0 + - 0 + + diff --git a/test/schemas/decimal-1.xsd b/test/schemas/decimal-1.xsd new file mode 100644 index 0000000..830ca3e --- /dev/null +++ b/test/schemas/decimal-1.xsd @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/decimal-1_0.xml b/test/schemas/decimal-1_0.xml new file mode 100644 index 0000000..7bf3719 --- /dev/null +++ b/test/schemas/decimal-1_0.xml @@ -0,0 +1,24 @@ + + + + 0. + .0 + .10 + 01. + 000 + 123456789012345678 + -123456789012345678 + 0.123456789012345678 + -0.123456789012345678 + + . + - + + + * + - 1 + + 1 + + 0 + - 0 + diff --git a/test/schemas/decimal-1_1.xsd b/test/schemas/decimal-1_1.xsd new file mode 100644 index 0000000..f598c86 --- /dev/null +++ b/test/schemas/decimal-1_1.xsd @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/decimal-2_0.xml b/test/schemas/decimal-2_0.xml new file mode 100644 index 0000000..166f781 --- /dev/null +++ b/test/schemas/decimal-2_0.xml @@ -0,0 +1,14 @@ + + + + 0.1 + 0.001 + 0.0 + -0.0 + 1 + + -0.1 + -1 + diff --git a/test/schemas/decimal-2_1.xsd b/test/schemas/decimal-2_1.xsd new file mode 100644 index 0000000..cc71670 --- /dev/null +++ b/test/schemas/decimal-2_1.xsd @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/decimal-3_0.xml b/test/schemas/decimal-3_0.xml new file mode 100644 index 0000000..fec1ed3 --- /dev/null +++ b/test/schemas/decimal-3_0.xml @@ -0,0 +1,17 @@ + + + + 0.12 + 0.0 + 0.02 + 12 + 1.2 + + 0.123 + 0.023 + 123 + 12.3 + + diff --git a/test/schemas/decimal-3_1.xsd b/test/schemas/decimal-3_1.xsd new file mode 100644 index 0000000..23ae8f7 --- /dev/null +++ b/test/schemas/decimal-3_1.xsd @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/derivation-ok-extension-err_0.xml b/test/schemas/derivation-ok-extension-err_0.xml new file mode 100644 index 0000000..ccfa348 --- /dev/null +++ b/test/schemas/derivation-ok-extension-err_0.xml @@ -0,0 +1,9 @@ + + + + + + diff --git a/test/schemas/derivation-ok-extension-err_0.xsd b/test/schemas/derivation-ok-extension-err_0.xsd new file mode 100644 index 0000000..89be581 --- /dev/null +++ b/test/schemas/derivation-ok-extension-err_0.xsd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/derivation-ok-extension_0.xml b/test/schemas/derivation-ok-extension_0.xml new file mode 100644 index 0000000..0cf871e --- /dev/null +++ b/test/schemas/derivation-ok-extension_0.xml @@ -0,0 +1,9 @@ + + + + + + diff --git a/test/schemas/derivation-ok-extension_0.xsd b/test/schemas/derivation-ok-extension_0.xsd new file mode 100644 index 0000000..b99065b --- /dev/null +++ b/test/schemas/derivation-ok-extension_0.xsd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/derivation-ok-restriction-2-1-1_0.xml b/test/schemas/derivation-ok-restriction-2-1-1_0.xml new file mode 100644 index 0000000..a92fb0c --- /dev/null +++ b/test/schemas/derivation-ok-restriction-2-1-1_0.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/test/schemas/derivation-ok-restriction-2-1-1_0.xsd b/test/schemas/derivation-ok-restriction-2-1-1_0.xsd new file mode 100644 index 0000000..e91fe43 --- /dev/null +++ b/test/schemas/derivation-ok-restriction-2-1-1_0.xsd @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/derivation-ok-restriction-4-1-err_0.xml b/test/schemas/derivation-ok-restriction-4-1-err_0.xml new file mode 100644 index 0000000..6021eb9 --- /dev/null +++ b/test/schemas/derivation-ok-restriction-4-1-err_0.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/test/schemas/derivation-ok-restriction-4-1-err_0.xsd b/test/schemas/derivation-ok-restriction-4-1-err_0.xsd new file mode 100644 index 0000000..c7400ac --- /dev/null +++ b/test/schemas/derivation-ok-restriction-4-1-err_0.xsd @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/derivation-restriction-anyAttr_0.xml b/test/schemas/derivation-restriction-anyAttr_0.xml new file mode 100644 index 0000000..66e7d3f --- /dev/null +++ b/test/schemas/derivation-restriction-anyAttr_0.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/test/schemas/derivation-restriction-anyAttr_0.xsd b/test/schemas/derivation-restriction-anyAttr_0.xsd new file mode 100644 index 0000000..f72c316 --- /dev/null +++ b/test/schemas/derivation-restriction-anyAttr_0.xsd @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/derivation-restriction-anyType.xml b/test/schemas/derivation-restriction-anyType.xml new file mode 100644 index 0000000..c86c50a --- /dev/null +++ b/test/schemas/derivation-restriction-anyType.xml @@ -0,0 +1,9 @@ + + + + + + diff --git a/test/schemas/derivation-restriction-anyType.xsd b/test/schemas/derivation-restriction-anyType.xsd new file mode 100644 index 0000000..ec217d2 --- /dev/null +++ b/test/schemas/derivation-restriction-anyType.xsd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/deter0_0.xml b/test/schemas/deter0_0.xml new file mode 100644 index 0000000..0ea1a41 --- /dev/null +++ b/test/schemas/deter0_0.xml @@ -0,0 +1,5 @@ + + first page + second page + third page + diff --git a/test/schemas/deter0_0.xsd b/test/schemas/deter0_0.xsd new file mode 100644 index 0000000..8b5da69 --- /dev/null +++ b/test/schemas/deter0_0.xsd @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/test/schemas/dur_0.xml b/test/schemas/dur_0.xml new file mode 100644 index 0000000..be84943 --- /dev/null +++ b/test/schemas/dur_0.xml @@ -0,0 +1,13 @@ + + + PT0.9S + PT0.1S + PT0.999999S + P0Y27D + P27DT23H59M59S + P0Y + P367DT23H59M59S + P13M + P12M + PT86399S + diff --git a/test/schemas/dur_0.xsd b/test/schemas/dur_0.xsd new file mode 100644 index 0000000..374c038 --- /dev/null +++ b/test/schemas/dur_0.xsd @@ -0,0 +1,72 @@ + + + + + Testing duration data types + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/elem0_0.xml b/test/schemas/elem0_0.xml new file mode 100644 index 0000000..f741c58 --- /dev/null +++ b/test/schemas/elem0_0.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/schemas/elem0_0.xsd b/test/schemas/elem0_0.xsd new file mode 100644 index 0000000..2c5bf5f --- /dev/null +++ b/test/schemas/elem0_0.xsd @@ -0,0 +1,16 @@ + + + + + Testing min and max occurance attributes on element + + + + + + + + + + + diff --git a/test/schemas/element-err_0.xml b/test/schemas/element-err_0.xml new file mode 100644 index 0000000..4f43fd9 --- /dev/null +++ b/test/schemas/element-err_0.xml @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/test/schemas/element-err_0.xsd b/test/schemas/element-err_0.xsd new file mode 100644 index 0000000..92604c8 --- /dev/null +++ b/test/schemas/element-err_0.xsd @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/element-minmax-err_0.xml b/test/schemas/element-minmax-err_0.xml new file mode 100644 index 0000000..62c5ec1 --- /dev/null +++ b/test/schemas/element-minmax-err_0.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/test/schemas/element-minmax-err_0.xsd b/test/schemas/element-minmax-err_0.xsd new file mode 100644 index 0000000..3384e7c --- /dev/null +++ b/test/schemas/element-minmax-err_0.xsd @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/empty-value_0.xml b/test/schemas/empty-value_0.xml new file mode 100644 index 0000000..e7058e2 --- /dev/null +++ b/test/schemas/empty-value_0.xml @@ -0,0 +1,2 @@ + + diff --git a/test/schemas/empty-value_1.xml b/test/schemas/empty-value_1.xml new file mode 100644 index 0000000..674ba86 --- /dev/null +++ b/test/schemas/empty-value_1.xml @@ -0,0 +1,2 @@ + + diff --git a/test/schemas/empty-value_1.xsd b/test/schemas/empty-value_1.xsd new file mode 100644 index 0000000..5e17d5f --- /dev/null +++ b/test/schemas/empty-value_1.xsd @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/empty_0.xml b/test/schemas/empty_0.xml new file mode 100644 index 0000000..e9906b7 --- /dev/null +++ b/test/schemas/empty_0.xml @@ -0,0 +1 @@ + diff --git a/test/schemas/empty_0.xsd b/test/schemas/empty_0.xsd new file mode 100644 index 0000000..76e5f45 --- /dev/null +++ b/test/schemas/empty_0.xsd @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/test/schemas/empty_1.xsd b/test/schemas/empty_1.xsd new file mode 100644 index 0000000..2c81c09 --- /dev/null +++ b/test/schemas/empty_1.xsd @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/test/schemas/extension0_0.xml b/test/schemas/extension0_0.xml new file mode 100644 index 0000000..60dd348 --- /dev/null +++ b/test/schemas/extension0_0.xml @@ -0,0 +1,7 @@ + + + Albert + Arnold + Gore + Jr + diff --git a/test/schemas/extension0_0.xsd b/test/schemas/extension0_0.xsd new file mode 100644 index 0000000..d89751a --- /dev/null +++ b/test/schemas/extension0_0.xsd @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/extension1_0.xml b/test/schemas/extension1_0.xml new file mode 100644 index 0000000..5c3a0c9 --- /dev/null +++ b/test/schemas/extension1_0.xml @@ -0,0 +1 @@ +salut diff --git a/test/schemas/extension1_0.xsd b/test/schemas/extension1_0.xsd new file mode 100644 index 0000000..0a11e14 --- /dev/null +++ b/test/schemas/extension1_0.xsd @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/test/schemas/extension1_1.xml b/test/schemas/extension1_1.xml new file mode 100644 index 0000000..7780cf6 --- /dev/null +++ b/test/schemas/extension1_1.xml @@ -0,0 +1 @@ +salut diff --git a/test/schemas/extension1_2.xml b/test/schemas/extension1_2.xml new file mode 100644 index 0000000..3d65bb0 --- /dev/null +++ b/test/schemas/extension1_2.xml @@ -0,0 +1 @@ +<salut/> diff --git a/test/schemas/extension2_0.xml b/test/schemas/extension2_0.xml new file mode 100644 index 0000000..202c988 --- /dev/null +++ b/test/schemas/extension2_0.xml @@ -0,0 +1,4 @@ + + diff --git a/test/schemas/extension2_1.xsd b/test/schemas/extension2_1.xsd new file mode 100644 index 0000000..0fa88af --- /dev/null +++ b/test/schemas/extension2_1.xsd @@ -0,0 +1,17 @@ + + + + + + + + + + + + diff --git a/test/schemas/facet-unionST-err1_0.xml b/test/schemas/facet-unionST-err1_0.xml new file mode 100644 index 0000000..b47df61 --- /dev/null +++ b/test/schemas/facet-unionST-err1_0.xml @@ -0,0 +1,4 @@ + +tiny + diff --git a/test/schemas/facet-unionST-err1_0.xsd b/test/schemas/facet-unionST-err1_0.xsd new file mode 100644 index 0000000..476668b --- /dev/null +++ b/test/schemas/facet-unionST-err1_0.xsd @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/facet-whiteSpace_0.xml b/test/schemas/facet-whiteSpace_0.xml new file mode 100644 index 0000000..dba26ca --- /dev/null +++ b/test/schemas/facet-whiteSpace_0.xml @@ -0,0 +1,7 @@ + +hmmm + + f f ff f + \ No newline at end of file diff --git a/test/schemas/facet-whiteSpace_0.xsd b/test/schemas/facet-whiteSpace_0.xsd new file mode 100644 index 0000000..83ef142 --- /dev/null +++ b/test/schemas/facet-whiteSpace_0.xsd @@ -0,0 +1,12 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/group0_0.xml b/test/schemas/group0_0.xml new file mode 100644 index 0000000..bf58ba6 --- /dev/null +++ b/test/schemas/group0_0.xml @@ -0,0 +1,3 @@ + + Foo Bar + diff --git a/test/schemas/group0_0.xsd b/test/schemas/group0_0.xsd new file mode 100644 index 0000000..7dfa393 --- /dev/null +++ b/test/schemas/group0_0.xsd @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/hexbinary_0.xml b/test/schemas/hexbinary_0.xml new file mode 100644 index 0000000..9513445 --- /dev/null +++ b/test/schemas/hexbinary_0.xml @@ -0,0 +1,20 @@ + + + 00 + 0123456789ABCDEF + abcdef0123456789 + 0123456789abcdef + 0123456789ABCDEF + 0123456789abcdef0123456789ABCDEF + 0123456789abcdef0123456789ABCDEF0123456789abcdef0123456789ABCDEF0123456789abcdef0123456789ABCDEF0123456789abcdef0123456789ABCDEF0123456789abcdef0123456789ABCDEF + 01234567899876543210 + 00112233445566778899aAbBcCdDeEfF + A0B1C2D3E4F5 + + 00 + 0000000000000000 + 1122334455667788 + + abcd + 0ed0 + diff --git a/test/schemas/hexbinary_0.xsd b/test/schemas/hexbinary_0.xsd new file mode 100644 index 0000000..60a6bec --- /dev/null +++ b/test/schemas/hexbinary_0.xsd @@ -0,0 +1,35 @@ + + + + + Testing hexBinary data types + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/hexbinary_1.xml b/test/schemas/hexbinary_1.xml new file mode 100644 index 0000000..0f34854 --- /dev/null +++ b/test/schemas/hexbinary_1.xml @@ -0,0 +1,15 @@ + + + + + + 0 + 0123456789ABCDEFGH + +abcdef0123456789 + -0123456789abcdef + + 112233445566778899 + + ab + 00fedc + diff --git a/test/schemas/idc-keyref-err1_0.xml b/test/schemas/idc-keyref-err1_0.xml new file mode 100644 index 0000000..64a1d0b --- /dev/null +++ b/test/schemas/idc-keyref-err1_0.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/idc-keyref-err1_1.xsd b/test/schemas/idc-keyref-err1_1.xsd new file mode 100644 index 0000000..43c769f --- /dev/null +++ b/test/schemas/idc-keyref-err1_1.xsd @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/import-455953.xsd b/test/schemas/import-455953.xsd new file mode 100644 index 0000000..4613d8f --- /dev/null +++ b/test/schemas/import-455953.xsd @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/import-bad-1_0.imp b/test/schemas/import-bad-1_0.imp new file mode 100755 index 0000000..d70c012 --- /dev/null +++ b/test/schemas/import-bad-1_0.imp @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/test/schemas/import0_0.imp b/test/schemas/import0_0.imp new file mode 100644 index 0000000..ce446d8 --- /dev/null +++ b/test/schemas/import0_0.imp @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/test/schemas/import0_0.xml b/test/schemas/import0_0.xml new file mode 100644 index 0000000..5ba7e3f --- /dev/null +++ b/test/schemas/import0_0.xml @@ -0,0 +1,8 @@ + + + + xy + + diff --git a/test/schemas/import0_0.xsd b/test/schemas/import0_0.xsd new file mode 100644 index 0000000..e973d64 --- /dev/null +++ b/test/schemas/import0_0.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + diff --git a/test/schemas/import1_0.imp b/test/schemas/import1_0.imp new file mode 100644 index 0000000..b7fd2ec --- /dev/null +++ b/test/schemas/import1_0.imp @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/test/schemas/import1_0.xml b/test/schemas/import1_0.xml new file mode 100644 index 0000000..7046521 --- /dev/null +++ b/test/schemas/import1_0.xml @@ -0,0 +1,11 @@ + + + + + + + \ No newline at end of file diff --git a/test/schemas/import1_0.xsd b/test/schemas/import1_0.xsd new file mode 100644 index 0000000..309139c --- /dev/null +++ b/test/schemas/import1_0.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/import1_0b.imp b/test/schemas/import1_0b.imp new file mode 100644 index 0000000..70bddd7 --- /dev/null +++ b/test/schemas/import1_0b.imp @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/test/schemas/import2_0.imp b/test/schemas/import2_0.imp new file mode 100644 index 0000000..298e6b1 --- /dev/null +++ b/test/schemas/import2_0.imp @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/import2_0.xml b/test/schemas/import2_0.xml new file mode 100644 index 0000000..67723d4 --- /dev/null +++ b/test/schemas/import2_0.xml @@ -0,0 +1,8 @@ + + + + + diff --git a/test/schemas/import2_0.xsd b/test/schemas/import2_0.xsd new file mode 100644 index 0000000..6922bec --- /dev/null +++ b/test/schemas/import2_0.xsd @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/include1_0.inc b/test/schemas/include1_0.inc new file mode 100644 index 0000000..1745abe --- /dev/null +++ b/test/schemas/include1_0.inc @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/include1_0.xml b/test/schemas/include1_0.xml new file mode 100644 index 0000000..8ffee0e --- /dev/null +++ b/test/schemas/include1_0.xml @@ -0,0 +1,8 @@ + + + anyURI + + + \ No newline at end of file diff --git a/test/schemas/include1_0.xsd b/test/schemas/include1_0.xsd new file mode 100644 index 0000000..5e6d837 --- /dev/null +++ b/test/schemas/include1_0.xsd @@ -0,0 +1,15 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/include2_0.inc b/test/schemas/include2_0.inc new file mode 100644 index 0000000..3104cd5 --- /dev/null +++ b/test/schemas/include2_0.inc @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/include2_0.xml b/test/schemas/include2_0.xml new file mode 100644 index 0000000..b460b93 --- /dev/null +++ b/test/schemas/include2_0.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/test/schemas/include2_0.xsd b/test/schemas/include2_0.xsd new file mode 100644 index 0000000..5f63102 --- /dev/null +++ b/test/schemas/include2_0.xsd @@ -0,0 +1,14 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/include3_0.inc b/test/schemas/include3_0.inc new file mode 100644 index 0000000..c0436e8 --- /dev/null +++ b/test/schemas/include3_0.inc @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/test/schemas/include3_0.xml b/test/schemas/include3_0.xml new file mode 100644 index 0000000..e880cc5 --- /dev/null +++ b/test/schemas/include3_0.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/test/schemas/include3_0.xsd b/test/schemas/include3_0.xsd new file mode 100644 index 0000000..5319486 --- /dev/null +++ b/test/schemas/include3_0.xsd @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/test/schemas/item_0.xml b/test/schemas/item_0.xml new file mode 100644 index 0000000..19d0790 --- /dev/null +++ b/test/schemas/item_0.xml @@ -0,0 +1,6 @@ + +foo +2 +1.0 +No comment ! + diff --git a/test/schemas/item_0.xsd b/test/schemas/item_0.xsd new file mode 100644 index 0000000..315e06e --- /dev/null +++ b/test/schemas/item_0.xsd @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/item_1.xsd b/test/schemas/item_1.xsd new file mode 100644 index 0000000..3cf966e --- /dev/null +++ b/test/schemas/item_1.xsd @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/length1_0.xml b/test/schemas/length1_0.xml new file mode 100644 index 0000000..0a8cd3f --- /dev/null +++ b/test/schemas/length1_0.xml @@ -0,0 +1 @@ +25 diff --git a/test/schemas/length1_0.xsd b/test/schemas/length1_0.xsd new file mode 100644 index 0000000..8a1ba0f --- /dev/null +++ b/test/schemas/length1_0.xsd @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/test/schemas/length2_0.xml b/test/schemas/length2_0.xml new file mode 100644 index 0000000..5c851da --- /dev/null +++ b/test/schemas/length2_0.xml @@ -0,0 +1,5 @@ + + + 25 + cm + diff --git a/test/schemas/length2_0.xsd b/test/schemas/length2_0.xsd new file mode 100644 index 0000000..76d73c0 --- /dev/null +++ b/test/schemas/length2_0.xsd @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/test/schemas/length3_0.xml b/test/schemas/length3_0.xml new file mode 100644 index 0000000..5c851da --- /dev/null +++ b/test/schemas/length3_0.xml @@ -0,0 +1,5 @@ + + + 25 + cm + diff --git a/test/schemas/length3_0.xsd b/test/schemas/length3_0.xsd new file mode 100644 index 0000000..b97e688 --- /dev/null +++ b/test/schemas/length3_0.xsd @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/test/schemas/list0_0.xml b/test/schemas/list0_0.xml new file mode 100644 index 0000000..a58fe8b --- /dev/null +++ b/test/schemas/list0_0.xml @@ -0,0 +1,6 @@ + + hello world + hello world + hello world + hello world + diff --git a/test/schemas/list0_0.xsd b/test/schemas/list0_0.xsd new file mode 100644 index 0000000..33d7d66 --- /dev/null +++ b/test/schemas/list0_0.xsd @@ -0,0 +1,13 @@ + + + + + Comment describing your root element + + + + + + + + diff --git a/test/schemas/list0_1.xml b/test/schemas/list0_1.xml new file mode 100644 index 0000000..8878e5d --- /dev/null +++ b/test/schemas/list0_1.xml @@ -0,0 +1,3 @@ + + hello world + diff --git a/test/schemas/list0_1.xsd b/test/schemas/list0_1.xsd new file mode 100644 index 0000000..8966075 --- /dev/null +++ b/test/schemas/list0_1.xsd @@ -0,0 +1,13 @@ + + + + + Comment describing your root element + + + + + + + + diff --git a/test/schemas/list0_2.xml b/test/schemas/list0_2.xml new file mode 100644 index 0000000..e94d481 --- /dev/null +++ b/test/schemas/list0_2.xml @@ -0,0 +1,4 @@ + + hello world + hello world + diff --git a/test/schemas/mixed0_0.xml b/test/schemas/mixed0_0.xml new file mode 100644 index 0000000..5864343 --- /dev/null +++ b/test/schemas/mixed0_0.xml @@ -0,0 +1 @@ +x diff --git a/test/schemas/mixed0_0.xsd b/test/schemas/mixed0_0.xsd new file mode 100644 index 0000000..a82226e --- /dev/null +++ b/test/schemas/mixed0_0.xsd @@ -0,0 +1,5 @@ + + + + + diff --git a/test/schemas/mixed1_0.xml b/test/schemas/mixed1_0.xml new file mode 100644 index 0000000..d8cf633 --- /dev/null +++ b/test/schemas/mixed1_0.xml @@ -0,0 +1 @@ +x diff --git a/test/schemas/mixed1_0.xsd b/test/schemas/mixed1_0.xsd new file mode 100644 index 0000000..a9ea6cc --- /dev/null +++ b/test/schemas/mixed1_0.xsd @@ -0,0 +1,7 @@ + + + + + + + diff --git a/test/schemas/ns0_0.xml b/test/schemas/ns0_0.xml new file mode 100644 index 0000000..1cbaf1f --- /dev/null +++ b/test/schemas/ns0_0.xml @@ -0,0 +1,2 @@ + + diff --git a/test/schemas/ns0_0.xsd b/test/schemas/ns0_0.xsd new file mode 100644 index 0000000..38951d6 --- /dev/null +++ b/test/schemas/ns0_0.xsd @@ -0,0 +1,16 @@ + + + + + + + + + + + + + diff --git a/test/schemas/ns0_1.xml b/test/schemas/ns0_1.xml new file mode 100644 index 0000000..6550f5c --- /dev/null +++ b/test/schemas/ns0_1.xml @@ -0,0 +1,2 @@ + + diff --git a/test/schemas/ns0_1.xsd b/test/schemas/ns0_1.xsd new file mode 100644 index 0000000..df2e79a --- /dev/null +++ b/test/schemas/ns0_1.xsd @@ -0,0 +1,16 @@ + + + + + + + + + + + + + diff --git a/test/schemas/ns0_2.xml b/test/schemas/ns0_2.xml new file mode 100644 index 0000000..8f2bdba --- /dev/null +++ b/test/schemas/ns0_2.xml @@ -0,0 +1,2 @@ + + diff --git a/test/schemas/ns0_3.xml b/test/schemas/ns0_3.xml new file mode 100644 index 0000000..4c5c1e4 --- /dev/null +++ b/test/schemas/ns0_3.xml @@ -0,0 +1,2 @@ + + diff --git a/test/schemas/ns0_4.xml b/test/schemas/ns0_4.xml new file mode 100644 index 0000000..dcdd418 --- /dev/null +++ b/test/schemas/ns0_4.xml @@ -0,0 +1,3 @@ + + diff --git a/test/schemas/ns1_0.xml b/test/schemas/ns1_0.xml new file mode 100644 index 0000000..410ed26 --- /dev/null +++ b/test/schemas/ns1_0.xml @@ -0,0 +1,2 @@ +some diff --git a/test/schemas/ns1_0.xsd b/test/schemas/ns1_0.xsd new file mode 100644 index 0000000..a77ec57 --- /dev/null +++ b/test/schemas/ns1_0.xsd @@ -0,0 +1,3 @@ + + + diff --git a/test/schemas/ns2_0.xml b/test/schemas/ns2_0.xml new file mode 100644 index 0000000..c3bb126 --- /dev/null +++ b/test/schemas/ns2_0.xml @@ -0,0 +1 @@ +content diff --git a/test/schemas/ns2_0.xsd b/test/schemas/ns2_0.xsd new file mode 100644 index 0000000..9393beb --- /dev/null +++ b/test/schemas/ns2_0.xsd @@ -0,0 +1,15 @@ + + + + + + + + + + + + diff --git a/test/schemas/nvdcve_0.xml b/test/schemas/nvdcve_0.xml new file mode 100644 index 0000000..20a0aed --- /dev/null +++ b/test/schemas/nvdcve_0.xml @@ -0,0 +1,5235 @@ + + + + + The Settings Manager in Adobe Flash Player 9.0.124.0 and earlier allows remote attackers to cause victims to unknowingly click on a link or dialog via access control dialogs disguised as normal graphical elements, as demonstrated by hijacking the camera or microphone, and related to "clickjacking." + + + + + + + + + + + + adobe-flash-click-hijacking(45721) + 1020996 + 31625 + ADV-2008-2764 + http://www.adobe.com/support/security/advisories/apsa08-08.html + 32163 + http://ha.ckers.org/blog/20081007/clickjacking-details/ + http://blog.guya.net/2008/10/07/malicious-camera-spying-using-clickjacking/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Heap-based buffer overflow in Mplayer.exe in Herosoft Inc. Hero DVD Player 3.0.8 allows user-assisted remote attackers to execute arbitrary code via an M3u file with a "long entry." NOTE: the provenance of this information is unknown; the details are obtained solely from third party information. + + + + + + + + + + + + + 31627 + 31933 + + + + + + + + + + Unspecified vulnerability in IBM Lotus Quickr 8.1 before Fix pack 1 (8.1.0.1) might allow attackers to cause a denial of service (system crash) via a "nonstandard URL argument" to the OpenDocument command. NOTE: due to lack of details from the vendor, it is not clear whether this is a vulnerability. + + + + + + + + + lotus-quickr-opendocument-dos(45692) + 31608 + ADV-2008-2753 + http://www-01.ibm.com/support/docview.wss?uid=swg27013341 + 32098 + + + + + + + + + + Unspecified vulnerability in IBM Lotus Quickr 8.1 before Fix pack 1 (8.1.0.1) allows a place manager to "demote or delete a place superuser group" via unknown vectors. + + + + + + + + + + + + lotus-quickr-placemanager-security-bypass(45694) + 31608 + ADV-2008-2753 + http://www-01.ibm.com/support/docview.wss?uid=swg27013341 + 32098 + + + + + + + + + + Unspecified vulnerability in IBM Lotus Quickr 8.1 before Fix pack 1 (8.1.0.1) allows editors to delete pages that were created by a different author via unknown vectors. + + + + + + + + + + + lotus-quickr-editor-security-bypass(45693) + 31608 + ADV-2008-2753 + http://www-01.ibm.com/support/docview.wss?uid=swg27013341 + 32098 + + + + + + + + + + Stack-based buffer overflow in the file parsing function in Tonec Internet Download Manager, possibly 5.14 and earlier, allows remote attackers to cause a denial of service (crash) and possibly execute arbitrary code via a crafted AppleDouble file containing a long string. NOTE: this is probably a different vulnerability than CVE-2005-2210. + + + + + + + + + internetdownloadmanager-file-bo(45711) + 31603 + http://downloads.securityfocus.com/vulnerabilities/exploits/31603.pl + + + + + + + + + + Unrestricted file upload vulnerability in processFiles.php in FOSS Gallery Admin and FOSS Gallery Public 1.0 beta allows remote attackers to execute arbitrary code by uploading a file with an executable extension, then accessing it via a direct request to the file in the root directory. + + + + + + + + + + + + fossgallery-multiple-file-upload(45683) + 31574 + 6680 + 6674 + 6670 + + + + + + + + + + + + Microsoft Windows Vista Home and Ultimate Edition SP1 and earlier allows local users to cause a denial of service (page fault and system crash) via multiple attempts to access a virtual address in a PAGE_NOACCESS memory page. + + + + + + + + + 31570 + 6671 + 32115 + + + + + + + + + + + + + + + + + + Todd Woolums ASP News Management, possibly 2.21, stores db/news.mdb under the web root with insufficient access control, which allows remote attackers to obtain sensitive information via a direct request. + + + + + + + + + 20080927 ASP News Remote Password Disclouse Vulnerability + + + + + + + + + + ASP/MS Access Shoutbox, probably 1.1 beta, stores db/shoutdb.mdb under the web root with insufficient access control, which allows remote attackers to obtain sensitive information via a direct request. + + + + + + + + + 20080927 shoutbox Remote Password Disclouse Vulnerability + + + + + Cross-site scripting (XSS) vulnerability in BBcode API module in Phorum 5.2.8 allows remote attackers to inject arbitrary web script or HTML via nested BBcode image tags. + + + + + + + + + + phorum-img-xss(45686) + 31589 + http://trac.phorum.org/changeset/3528 + http://nulledcore.com/?p=126 + + + + + + + + + + The HTML parser in KDE Konqueror 3.5.9 allows remote attackers to cause a denial of service (application crash) via a font tag with a long color value, which triggers an assertion error. + + + + + + + + + 31605 + 6689 + + + + + + + + + + Blue Coat K9 Web Protection 4.0.230 Beta relies on client-side JavaScript as a protection mechanism, which allows remote attackers to bypass authentication and access the (1) summary, (2) detail, (3) overrides, and (4) pwemail pages by disabling JavaScript. + + + + + + + + + + + k9webprotection-multiple-auth-bypass(45696) + 31584 + 20081004 Blue Coat K9 Web Protection V4.0.230 Beta Vulnerability + http://dicas3000.blogspot.com/2008/10/blue-coat-k9-web-protection-v40230-beta.html + + + + + + + + + + SQL injection vulnerability in galerie.php in Galerie 3.2 allows remote attackers to execute arbitrary SQL commands via the pic parameter. + + + + + + + + + + + + galerie-pic-sql-injection(45698) + 31593 + 6675 + + + + + + + + + + SQL injection vulnerability in leggi.php in geccBBlite 2.0 allows remote attackers to execute arbitrary SQL commands via the id parameter. + + + + + + + + + + + + 31585 + 6677 + + + + + + + + + + Multiple SQL injection vulnerabilities in Fastpublish CMS 1.9.9.9.9 d (1.9999 d) allow remote attackers to execute arbitrary SQL commands via the (1) sprache parameter to index2.php and the (2) artikel parameter to index.php. + + + + + + + + + + + + 31582 + 6678 + 32126 + + + + + + + + + + + Multiple directory traversal vulnerabilities in Fastpublish CMS 1.9999 d allow remote attackers to include and execute arbitrary local files via a .. (dot dot) in the target parameter to (1) index2.php and (2) index.php. + + + + + + + + + + + 31582 + 6678 + 32126 + + + + + + + + + + + Cross-site scripting (XSS) vulnerability in bulk_update.pl in AutoNessus before 1.2.2 allows remote attackers to inject arbitrary web script or HTML via the remark parameter. + + + + + + + + + + 31559 + http://sourceforge.net/project/shownotes.php?group_id=216367&release_id=630124 + autonessus-bulkupdate-xss(45634) + http://sourceforge.net/tracker/index.php?func=detail&aid=2141884&group_id=216367&atid=1037394 + 32046 + http://autonessus.cvs.sourceforge.net/viewvc/autonessus/AutoNessus/www/bulk_update.pl?r1=1.2&r2=1.3 + + + + + + + + + + + + + + SQL injection vulnerability in thisraidprogress.php in the World of Warcraft tracker infusion (raidtracker_panel) module 2.0 for PHP-Fusion allows remote attackers to execute arbitrary SQL commands via the INFO_RAID_ID parameter. + + + + + + + + + + + + 31579 + 6682 + + + + + + + + + + Multiple directory traversal vulnerabilities in JMweb MP3 Music Audio Search and Download Script allow remote attackers to include and execute arbitrary local files via a .. (dot dot) in the src parameter to (1) listen.php and (2) download.php. + + + + + + + + + + + + 31573 + 6669 + 32141 + + + + + + + + + + SQL injection vulnerability in login.php in IP Reg 0.4 and earlier allows remote attackers to execute arbitrary SQL commands via the user_name parameter. + + + + + + + + + + + + ipreg-login-sql-injection(45641) + 31561 + 6657 + + + + + + + + + + + + + SQL injection vulnerability in the "Check User" feature (includes/check_user.php) in AdaptCMS Lite and AdaptCMS Pro 1.3 allows remote attackers to execute arbitrary SQL commands via the user_name parameter. + + + + + + + + + + + + http://www.adaptcms.com/article/51/News/URGENT-AdaptCMS-13-Security-Fix-Released/ + 32171 + adaptcmslite-checkuser-sql-injection(45642) + 31557 + 6662 + + + + + + + + + + + + SQL injection vulnerability in index.php in AmpJuke 0.7.5 allows remote attackers to execute arbitrary SQL commands via the special parameter in a performerid action. + + + + + + + + + + + + 31592 + 32168 + http://packetstorm.linuxsecurity.com/0810-exploits/ampjuke-sql.txt + + + + + + + + + + Multiple directory traversal vulnerabilities in CCMS 3.1 allow remote attackers to include and execute arbitrary local files via a .. (dot dot) in the skin parameter to (1) index.php, (2) forums.php, (3) admin.php, (4) header.php, (5) pages/story.php and (6) pages/poll.php. + + + + + + + + + + + 31566 + 6663 + + + + + + + + + + SQL injection vulnerability in recept.php in the Recepies (Recept) module 1.1 for PHP-Fusion allows remote attackers to execute arbitrary SQL commands via the kat_id parameter in a kategorier action. NOTE: some of these details are obtained from third party information. + + + + + + + + + + + + 31578 + 6683 + 32004 + + + + + + + + + + Directory traversal vulnerability in notes.php in Phlatline's Personal Information Manager (pPIM) 1.01 allows remote attackers to include and execute arbitrary local files via a .. (dot dot) in the id parameter in an edit action. + + + + + + + + + + + + 31571 + 6667 + + + + + + + + + + Multiple PHP remote file inclusion vulnerabilities in asiCMS alpha 0.208 allow remote attackers to execute arbitrary PHP code via a URL in the _ENV[asicms][path] parameter to (1) Association.php, (2) BigMath.php, (3) DiffieHellman.php, (4) DumbStore.php, (5) Extension.php, (6) FileStore.php, (7) HMAC.php, (8) MemcachedStore.php, (9) Message.php, (10) Nonce.php, (11) SQLStore.php, (12) SReg.php, (13) TrustRoot.php, and (14) URINorm.php in classes/Auth/OpenID/; and (15) XRDS.php, (16) XRI.php and (17) XRIRes.php in classes/Auth/Yadis/. + + + + + + + + + + + + 31601 + 6685 + + + + + + + + + + Cross-site scripting (XSS) vulnerability in Brilliant Gallery 5.x before 5.x-4.2, a module for Drupal, allows remote authenticated users with permissions to inject arbitrary web script or HTML via unspecified vectors related to posting of answers. + + + + + + + + + + http://drupal.org/node/315919 + brilliantgallery-unspecified-xss(45636) + 31554 + 32106 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SQL injection vulnerability in Brilliant Gallery 5.x before 5.x-4.2, a module for Drupal, allows remote attackers to execute arbitrary SQL commands via unspecified vectors, related to queries. NOTE: this might be the same issue as CVE-2008-4338. + + + + + + + + + + + brilliantgallery-unspecified-sql-injection(45637) + 31554 + 32106 + http://drupal.org/node/315919 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Cross-site scripting (XSS) vulnerability in index.php in MaxiScript Website Directory allows remote attackers to inject arbitrary web script or HTML via the keyword parameter in a search action. + + + + + + + + + + websitedirectory-index-xss(45657) + 31562 + 20081003 Website Directory - XSS Exploit + 32176 + + + + + + + + + + Heap-based buffer overflow in the mch_expand_wildcards function in os_unix.c in Vim 6.2 and 6.3 allows user-assisted attackers to execute arbitrary code via shell metacharacters in filenames, as demonstrated by the netrw.v3 test case. + + + + + + + + + + + + 31681 + APPLE-SA-2008-10-09 + [oss-security] 20080731 Re: Re: More arbitrary code executions in Netrw + [oss-security] 20080715 Re: Re: More arbitrary code executions in Netrw + ftp://ftp.vim.org/pub/vim/patches/6.3/6.3.059 + ftp://ftp.vim.org/pub/vim/patches/6.2.429 + + + + + + + + + + + The Hewlett-Packard Graphics Language (HPGL) filter in CUPS before 1.3.9 allows remote attackers to execute arbitrary code via crafted pen width and pen color opcodes that overwrite arbitrary memory. + + + + + + + + + + + 31681 + http://www.cups.org/articles.php?L575 + RHSA-2008:0937 + MDVSA-2008:211 + ADV-2008-2782 + http://www.cups.org/str.php?L2911 + 32226 + 32084 + APPLE-SA-2008-10-09 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Buffer overflow in ColorSync in Mac OS X 10.4.11 and 10.5.5 allows remote attackers to cause a denial of service (application termination) and possibly execute arbitrary code via an image with a crafted ICC profile. + + + + + + + + + + + + 31681 + APPLE-SA-2008-10-09 + + + + + + + + + + + + + + + Unspecified vulnerability in Finder in Mac OS X 10.5.5 allows user-assisted attackers to cause a denial of service (continuous termination and restart) via a crafted Desktop file that generates an error when producing its icon, related to an "error recovery issue." + + + + + + + + + 31681 + APPLE-SA-2008-10-09 + + + + + + + + + + + + + Heap-based buffer overflow in the local IPC component in the EAPOLController plugin for configd (Networking component) in Mac OS X 10.4.11 and 10.5.5 allows local users to execute arbitrary code via unknown vectors. + + + + + + + + + + + + 31681 + APPLE-SA-2008-10-09 + + + + + + + + + + + + + + + The Postfix configuration file in Mac OS X 10.5.5 causes Postfix to be network-accessible when mail is sent from a local command-line tool, which allows remote attackers to send mail to local Mac OS X users. + + + + + + + + + + + + 31681 + APPLE-SA-2008-10-09 + + + + + + + + + + Buffer overflow in PSNormalizer in Mac OS X 10.4.11 and 10.5.5 allows remote attackers to cause a denial of service (application termination) and execute arbitrary code via a PostScript file with a crafted bounding box comment. + + + + + + + + + + + + + 31681 + APPLE-SA-2008-10-09 + + + + + + + + + + + + + + + Integer signedness error in QuickLook in Mac OS X 10.5.5 allows remote attackers to cause a denial of service (application termination) and execute arbitrary code via a crafted Microsoft Excel file that triggers an out-of-bounds memory access. + + + + + + + + + + + + 31681 + APPLE-SA-2008-10-09 + + + + + + + + + + + + + Unspecified vulnerability in rlogind in the rlogin component in Mac OS X 10.4.11 and 10.5.5 applies hosts.equiv entries to root despite what is stated in documentation, which might allow remote attackers to bypass intended access restrictions. + + + + + + + + + + + + 31681 + APPLE-SA-2008-10-09 + + + + + + + + + + + + + + + Unspecified vulnerability in Script Editor in Mac OS X 10.4.11 and 10.5.5 allows local users to cause the scripting dictionary to be written to arbitrary locations, related to an "insecure file operation" on temporary files. + + + + + + + + + + + 31681 + APPLE-SA-2008-10-09 + + + + + + + + + + + + + + + Weblog in Mac OS X Server 10.4.11 does not properly check an error condition when a weblog posting access control list is specified for a user that has multiple short names, which might allow attackers to bypass intended access restrictions. + + + + + + + + + + + + 31681 + APPLE-SA-2008-10-09 + + + + + + + + + + Multiple untrusted search path vulnerabilities in Portage before 2.1.4.5 include the current working directory in the Python search path, which allows local users to execute arbitrary code via a modified Python module that is loaded by the (1) ys-apps/portage, (2) net-mail/fetchmail, (3) app-editors/leo ebuilds, and other ebuilds. + + + + + + + + + + + + + 31670 + GLSA-200810-02 + + + + + + + + + + + + + Cross-site scripting (XSS) vulnerability in Kantan WEB Server 1.8 and earlier allows remote attackers to inject arbitrary web script or HTML via unknown vectors. + + + Patch Information - http://unyora.sakura.ne.jp/soft/EasyHTTPServer/index.html + + + + + + + + + + 31244 + 48222 + JVNDB-2008-000060 + JVN#94163107 + + + + + + + + + + + SQL injection vulnerability in EC-CUBE Ver2 2.1.2a and earlier, and Ver2 RC 2.3.0-rc1 and earlier, allows remote attackers to execute arbitrary SQL commands via unspecified vectors. + + + + + + + + + + + + http://www.ec-cube.net/info/080829 + 32065 + JVNDB-2008-000065 + JVN#81111541 + + + + + + + + + + + + + + Cross-site scripting (XSS) vulnerability in EC-CUBE Ver2 2.1.2a and earlier, EC-CUBE Ver2 Beta(RC) 2.2.0-beta and earlier, and EC-CUBE Community Edition Nighly-Build r17623 and earlier allows remote attackers to inject arbitrary web script or HTML via unspecified vectors, a different issue than CVE-2008-4536 and CVE-2008-4537. + + + + + + + + + + http://www.ec-cube.net/release/detail.php?release_id=193 + 32065 + JVNDB-2008-000064 + JVN#99916563 + + + + + + + + + + + + + + Cross-site scripting (XSS) vulnerability in EC-CUBE Ver1 1.4.6 and earlier, Ver1 Beta 1.5.0-beta and earlier, Ver2 2.1.2a and earlier, Ver2 Beta(RC) 2.2.0-beta and earlier, Community Edition 1.3.4 and earlier, and Community Edition Nightly-Build r17319 and earlier allows remote attackers to inject arbitrary web script or HTML via unspecified vectors, a different issue than CVE-2008-4535 and CVE-2008-4537. + + + + + + + + + + http://www.ec-cube.net/release/detail.php?release_id=193 + 32065 + JVN#36085487 + + + + + + + + + + + + + + + + Cross-site scripting (XSS) vulnerability in EC-CUBE Ver1 1.4.6 and earlier, Ver1 Beta 1.5.0-beta and earlier, Ver2 2.1.2a and earlier, Ver2 Beta(RC) 2.1.1-beta and earlier, Community Edition 1.3.4 and earlier, and Community Edition Nightly-Build r17336 and earlier allows remote attackers to inject arbitrary web script or HTML via unspecified vectors, a different issue than CVE-2008-4535 and CVE-2008-4536. + + + + + + + + + + http://www.ec-cube.net/release/detail.php?release_id=193 + 32065 + JVNDB-2008-000062 + JVN#26621646 + + + + + + + + + + + + + + + + Apache Tomcat 5.5.0 and 4.1.0 through 4.1.31 allows remote attackers to bypass an IP address restriction and obtain sensitive information via a request that is processed concurrently with another request but in a different thread, leading to an instance-variable overwrite associated with a "synchronization problem" and lack of thread safety, and related to RemoteFilterValve, RemoteAddrValve, and RemoteHostValve. + + + + + + + + + https://issues.apache.org/bugzilla/show_bug.cgi?id=25835 + 31698 + 20081009 [SECURITY] CVE-2008-3271 - Apache Tomcat information disclosure + http://www.fujitsu.com/global/support/software/security/products-f/interstage-200806e.html + http://tomcat.apache.org/security-5.html + http://tomcat.apache.org/security-4.html + 32234 + JVN#30732239 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Multiple stack-based buffer overflows in ovalarmsrv in HP OpenView Network Node Manager (OV NNM) 7.51, and possibly 7.01, 7.50, and 7.53, allow remote attackers to execute arbitrary code via a long (1) REQUEST_SEV_CHANGE (aka number 47), (2) REQUEST_SAVE_STATE (aka number 61), or (3) REQUEST_RESTORE_STATE (aka number 62) request to TCP port 2954. + + + + + + + + + + + SSRT080042 + 28668 + 20080407 Multiple vulnerabilities in HP OpenView NNM 7.53 + 31688 + http://downloads.securityfocus.com/vulnerabilities/exploits/28668.c + http://aluigi.altervista.org/adv/closedview_old-adv.txt + + + + + + + + + + + + + Unspecified vulnerability in ovtopmd in HP OpenView Network Node Manager (OV NNM) 7.01, 7.51, and 7.53 allows remote attackers to cause a denial of service via unknown vectors, a different vulnerability than CVE-2008-3536, CVE-2008-3537, and CVE-2008-3544. NOTE: due to insufficient details from the vendor, it is not clear whether this is the same as CVE-2008-1853. + + + + + + + + + SSRT080046 + 31669 + 1021014 + 29796 + + + + + + + + + + + + Cross-site scripting (XSS) vulnerability in HP System Management Homepage (SMH) before 2.1.15.210 on Linux and Windows allows remote attackers to inject arbitrary web script or HTML via unspecified vectors, a different vulnerability than CVE-2008-1663. + + + + + + + + + + 31663 + ADV-2008-2778 + 1021015 + 32199 + HPSBMA02376 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Windows Mobile 6 on the HTC Hermes device makes WLAN passwords available to an auto-completion mechanism for the password input field, which allows physically proximate attackers to bypass password authentication and obtain WLAN access. + + + + + + + + + 20081008 Windows Mobile 6 insecure password handling and too short WLAN-password + + + + + + + + + + Heap-based buffer overflow in the FTP subsystem in Sun Java System Web Proxy Server 4.0 through 4.0.7 allows remote attackers to execute arbitrary code via unspecified vectors. + + + + + + + + + + + sun-webproxy-ftp-bo(45782) + 31691 + ADV-2008-2781 + 242986 + 1021038 + 32227 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Cross-site scripting (XSS) vulnerability in Cisco Unity 4.x before 4.2(1)ES162, 5.x before 5.0(1)ES56, and 7.x before 7.0(2)ES8 allows remote authenticated administrators to inject arbitrary web script or HTML by entering it in the database (aka data store). + + + + + + + + + + http://www.voipshield.com/research-details.php?id=127 + 31642 + ADV-2008-2771 + 20081008 VoIPshield Reported Vulnerabilities in Cisco Unity Server + 1021012 + 32207 + + + + + + + + + + + + + + + + + + + + + Cisco Unity 4.x before 4.2(1)ES161, 5.x before 5.0(1)ES53, and 7.x before 7.0(2)ES8, when using anonymous authentication (aka native Unity authentication), allows remote attackers to cause a denial of service (session exhaustion) via a large number of connections. + + + + + + + + + http://www.voipshield.com/research-details.php?id=128 + 31642 + ADV-2008-2771 + 20081008 VoIPshield Reported Vulnerabilities in Cisco Unity Server + 1021013 + 32187 + + + + + + + + + + + + + + + + + + + + + Unspecified vulnerability in an unspecified Microsoft API, as used by Cisco Unity and possibly other products, allows remote attackers to cause a denial of service by sending crafted packets to dynamic UDP ports, related to a "processing error." + + + + + + + + + http://www.voipshield.com/research-details.php?id=129 + 31642 + ADV-2008-2771 + 20081008 VoIPshield Reported Vulnerabilities in Cisco Unity Server + 1021020 + + + + + + + + + + Cisco Unity 4.x before 4.2(1)ES161, 5.x before 5.0(1)ES53, and 7.x before 7.0(2)ES8 uses weak permissions for the D:\CommServer\Reports directory, which allows remote authenticated users to obtain sensitive information by reading files in this directory. + + + + + + + + + http://www.voipshield.com/research-details.php?id=130 + 31642 + ADV-2008-2771 + 20081008 VoIPshield Reported Vulnerabilities in Cisco Unity Server + 1021022 + 32187 + + + + + + + + + + + + + + + + + + + + + The Marvell driver for the Linksys WAP4400N Wi-Fi access point with firmware 1.2.14 on the Marvell 88W8361P-BEM1 chipset, when WEP mode is enabled, does not properly parse malformed 802.11 frames, which allows remote attackers to cause a denial of service (reboot or hang-up) via a malformed association request containing the WEP flag, as demonstrated by a request that is too short, a different vulnerability than CVE-2008-1144 and CVE-2008-1197. + + + + + + + + + linksys-wap4400n-request-dos(45841) + 31742 + 20081013 Marvell Driver Malformed Association Request Vulnerability + ADV-2008-2805 + 32259 + + + + + + + + + + Adobe Flash Player 9.0.45.0, 9.0.112.0, 9.0.124.0, and 10.0.12.10 allows remote web servers to cause a denial of service (NULL pointer dereference and browser crash) by returning a different response when an HTTP request is sent a second time, as demonstrated by two responses that provide SWF files with different SWF version numbers. + + + + + + + + + + 20081002 Adobe Flash Player plug-in null pointer dereference and browser crash + http://www.mochimedia.com/~matthew/flashcrash/ + + + + + + + + + + + + + Heap-based buffer overflow in the PdvrAtl.PdvrOcx.1 ActiveX control (pdvratl.dll) in DVRHOST Web CMS OCX 1.0.1.25 allows remote attackers to execute arbitrary code via a long second argument to the TimeSpanFormat method. + + + + + + + + + + + dvrhost-pdvrocx-bo(39640) + 27267 + 4903 + 28443 + + + + + + + + + + Stack-based buffer overflow in the PTZCamPanelCtrl ActiveX control (CamPanel.dll) in RTS Sentry 2.1.0.2 allows remote attackers to execute arbitrary code via a long second argument to the ConnectServer method. + + + + + + + + + + + + + rtssentry-ptzcampanelctrl-bo(39725) + 27304 + 4918 + 28435 + + + + + + + + + + The ImageShack Toolbar ActiveX control (ImageShackToolbar.dll) in ImageShack Toolbar 4.5.7, possibly including 4.5.7.69, allows remote attackers to force the upload of arbitrary image files to the ImageShack site via a file: URI argument to the BuildSlideShow method. + + + + + + + + + + toolbar-imageshacktoolbar-info-disclosure(39921) + 27439 + 20080124 ImageShack Toolbar FileUploader Class insecurities + 4981 + 28644 + + + + + + + + + + + strongSwan 4.2.6 and earlier allows remote attackers to cause a denial of service (daemon crash) via an IKE_SA_INIT message with a large number of NULL values in a Key Exchange payload, which triggers a NULL pointer dereference for the return value of the mpz_export function in the GNU Multiprecision Library (GMP). + + + + + + + + + 1020903 + 31291 + ADV-2008-2660 + 31963 + http://labs.mudynamics.com/advisories/MU-200809-01.txt + http://download.strongswan.org/CHANGES4.txt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + nfs-utils 1.0.9, and possibly other versions before 1.1.3, invokes the host_ctl function with the wrong order of arguments, which causes TCP Wrappers to ignore netgroups and allows remote attackers to bypass intended access restrictions. + + + + + + + + + + + + https://bugzilla.redhat.com/show_bug.cgi?id=458676 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Heap-based buffer overflow in the read_rle16 function in imagetops in CUPS before 1.3.9 allows remote attackers to execute arbitrary code via an SGI image with malformed Run Length Encoded (RLE) data containing a small image and a large row count. + + + + + + + + + + + + 1021033 + 31690 + RHSA-2008:0937 + MDVSA-2008:211 + ADV-2008-2782 + http://www.cups.org/str.php?L2918 + http://www.cups.org/articles.php?L575 + 32226 + 32084 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Integer overflow in the WriteProlog function in texttops in CUPS before 1.3.9 allows remote attackers to execute arbitrary code via a crafted PostScript file that triggers a heap-based buffer overflow. + + + + + + + + + + + 1021034 + 31690 + RHSA-2008:0937 + MDVSA-2008:211 + ADV-2008-2782 + http://www.cups.org/str.php?L2919 + http://www.cups.org/articles.php?L575 + 32226 + 32084 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Husdawg, LLC Systems Requirements Lab 3 allows remote attackers to force the download and execution of arbitrary programs via unknown vectors in (1) ActiveX control (sysreqlab.dll, sysreqlabsli.dll, or sysreqlab2.dll) and (2) Java applet in RLApplet.class in sysreqlab2.jar or sysreqlab.jar. + + + + + + + + + + + VU#166651 + http://www.systemrequirementslab.com/bulletins/security_bulletin_1.html + + + + + + + + + + Directory traversal vulnerability in the RPC interface (asdbapi.dll) in CA ARCserve Backup (formerly BrightStor ARCserve Backup) r11.1 through r12.0 allows remote attackers to execute arbitrary commands via a .. (dot dot) in an RPC call with opnum 0x10A. + + + + + + + + + + + + https://support.ca.com/irj/portal/anonymous/phpsupcontent?contentID=188143 + 20081011 CA BrightStor ARCServe BackUp Message Engine Remote Command Injection Vulnerability + + + + + + + + + + + + + + + + + + + + Unspecified vulnerability in the tape engine service in asdbapi.dll in CA ARCserve Backup (formerly BrightStor ARCserve Backup) r11.1 through r12.0 allows remote attackers to cause a denial of service (crash) via a crafted request. + + + + + + + + + https://support.ca.com/irj/portal/anonymous/phpsupcontent?contentID=188143 + + + + + + + + + + + + + + + + + + + + Unspecified vulnerability in the database engine service in asdbapi.dll in CA ARCserve Backup (formerly BrightStor ARCserve Backup) r11.1 through r12.0 allows remote attackers to cause a denial of service (crash) via a crafted request, related to "insufficient validation." + + + + + + + + + https://support.ca.com/irj/portal/anonymous/phpsupcontent?contentID=188143 + + + + + + + + + + + + + + + + + + + + Unspecified vulnerability in asdbapi.dll in CA ARCserve Backup (formerly BrightStor ARCserve Backup) r11.1 through r12.0 allows remote attackers to cause a denial of service (crash of multiple services) via crafted authentication credentials, related to "insufficient validation." + + + + + + + + + https://support.ca.com/irj/portal/anonymous/phpsupcontent?contentID=188143 + + + + + + + + + + + + + + + + + + + + Stack-based buffer overflow in the push_subg function in parser.y (lib/graph/parser.c) in Graphviz 2.20.2, and possibly earlier versions, allows user-assisted remote attackers to cause a denial of service (memory corruption) or execute arbitrary code via a DOT file with a large number of Agraph_t elements. + + + + + + + + + + + + + 31648 + 20081008 Advisory: Graphviz Buffer Overflow Code Execution + 32186 + http://roeehay.blogspot.com/2008/10/graphviz-buffer-overflow-code-execution.html + http://bugs.gentoo.org/show_bug.cgi?id=240636 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unspecified vulnerability in the Oracle JDeveloper component in Oracle Application Server 10.1.2.2 allows local users to affect confidentiality via unknown vectors. + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + Unspecified vulnerability in the Oracle Reports Developer component in Oracle Application Server 1.0.2.2, 9.0.4.3, and 10.1.2.2, and E-Business Suite 11.5.10.2, allows remote authenticated users to affect availability via unknown vectors. + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + + + + Unspecified vulnerability in the Oracle OLAP component in Oracle Database 10.1.0.5 allows remote authenticated users to affect confidentiality, integrity, and availability via unknown vectors. + + + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + Unspecified vulnerability in the Core RDBMS component in Oracle Database 9.2.0.8, 9.2.0.8DV, 10.1.0.5, and 10.2.0.2 allows remote attackers to affect confidentiality and integrity via unknown vectors. + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + + + + Unspecified vulnerability in the Oracle Portal component in Oracle Application Server 9.0.4.3 and 10.1.2.3 allows remote attackers to affect integrity via unknown vectors. + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + Unspecified vulnerability in the Oracle Spatial component in Oracle Database 9.2.0.8, 9.2.0.8DV, 10.1.0.5, and 10.2.0.3 allows remote authenticated users to affect confidentiality and integrity via unknown vectors. + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + + + + Unspecified vulnerability in the Oracle Portal component in Oracle Application Server 9.0.4.3 and 10.1.2.3 allows remote attackers to affect integrity via unknown vectors. + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + Unspecified vulnerability in the Upgrade component in Oracle Database 10.1.0.5 and 10.2.0.3 allows remote authenticated users to affect confidentiality and integrity via unknown vectors. + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + Unspecified vulnerability in the Workspace Manager component in Oracle Database 9.2.0.8, 9.2.0.8DV, 10.1.0.5, 10.2.0.3, and 11.1.0.6 allows remote authenticated users to affect confidentiality and integrity, related to SYS.LT and WMSYS.LT. + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + + + + + + + Unspecified vulnerability in the Workspace Manager component in Oracle Database 9.2.0.8, 9.2.0.8DV, 10.1.0.5, 10.2.0.3, and 11.1.0.6 allows remote authenticated users to affect confidentiality and integrity, related to SYS.LT and WMSYS.LT. + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + + + + + + + Unspecified vulnerability in the Workspace Manager component in Oracle Database 9.2.0.8, 9.2.0.8DV, 10.1.0.5, 10.2.0.3, and 11.1.0.6 allows remote authenticated users to affect confidentiality and integrity, related to SYS.LT and WMSYS.LT. + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + + + + + + + Unspecified vulnerability in the Oracle Applications Technology Stack component in Oracle E-Business Suite 12.0.4 allows remote attackers to affect confidentiality via unknown vectors. + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + Unspecified vulnerability in the Oracle Discoverer Administrator component in Oracle Application Server 9.0.4.3 and 10.1.2.2 allows local users to affect confidentiality via unknown vectors. + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + Unspecified vulnerability in the Oracle Discoverer Desktop component in Oracle Application Server 10.1.2.3 allows local users to affect confidentiality via unknown vectors. + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + Unspecified vulnerability in the iSupplier Portal component in Oracle E-Business Suite 11.5.10.2 and 12.0.4 allows remote attackers to affect confidentiality via unknown vectors. + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + Unspecified vulnerability in the Oracle Data Mining component in Oracle Database 10.2.0.3 allows remote authenticated users to affect confidentiality, integrity, and availability, related to DMSYS.ODM_MODEL_UTIL. + + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + Unspecified vulnerability in the Oracle OLAP component in Oracle Database 9.2.08, 9.2.0.8DV, and 10.1.0.5 allows remote authenticated users to affect availability, related to OLAPSYS.CWM2_OLAP_AW_AWUTIL. + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + + + Unspecified vulnerability in the Oracle OLAP component in Oracle Database 9.2.08, 9.2.0.8DV, and 10.1.0.5 allows remote authenticated users to affect availability, related to OLAPSYS.CWM2_OLAP_AW_AWUTIL. + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + + + Unspecified vulnerability in the Oracle Data Mining component in Oracle Database 10.2.0.4 allows remote authenticated users to affect confidentiality and integrity, related to DMSYS.DBMS_DM_EXP_INTERNAL. + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + Unspecified vulnerability in the Oracle Applications Framework component in Oracle E-Business Suite 11.5.10.2 and 12.0.4 allows remote authenticated users to affect integrity via unknown vectors. + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + Unspecified vulnerability in the Workspace Manager component in Oracle Database 9.2.0.8, 9.2.0.8DV, 10.1.0.5, 10.2.0.3, and 11.1.0.6 allows remote authenticated users to affect confidentiality and integrity, related to WMSYS.LTADM. + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + + + + + + + Unspecified vulnerability in the Change Data Capture component in Oracle Database 10.1.0.5, 10.2.0.4, and 11.1.0.6 allows remote authenticated users to affect confidentiality and integrity, related to DBMS_CDC_PUBLISH. + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + + + Unspecified vulnerability in the Change Data Capture component in Oracle Database 10.1.0.5, 10.2.0.4, and 11.1.0.6 allows remote authenticated users to affect confidentiality and integrity, related to SYS.DBMS_CDC_IPUBLISH. + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + + + Unspecified vulnerability in the Oracle iStore component in Oracle E-Business Suite 12.0.4 allows remote authenticated users to affect confidentiality and integrity via unknown vectors. + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + Unspecified vulnerability in the PeopleTools component in Oracle PeopleSoft Enterprise and JD Edwards EnterpriseOne 8.48.18 and 8.49.14 allows remote attackers to affect confidentiality and integrity via unknown vectors. + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + + + + + + + + Unspecified vulnerability in the PeopleSoft Enterprise Portal component in Oracle PeopleSoft Enterprise and JD Edwards EnterpriseOne EP 8.9 and EP 9.0 allows remote authenticated users to affect confidentiality and integrity via unknown vectors. + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + + + + Unspecified vulnerability in the PeopleTools component in Oracle PeopleSoft Enterprise and JD Edwards EnterpriseOne 8.48.18 and 8.49.14 allows remote authenticated users to affect confidentiality via unknown vectors. + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + + + + Unspecified vulnerability in the PeopleTools component in Oracle PeopleSoft Enterprise and JD Edwards EnterpriseOne 8.48.18 and 8.49.14 allows remote attackers to affect confidentiality via unknown vectors. + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + + + + Unspecified vulnerability in the JDE EnterpriseOne Business Service Server component in Oracle PeopleSoft Enterprise and JD Edwards EnterpriseOne 8.97.2.2 and 8.98.0.1 allows local users to affect confidentiality and integrity via unknown vectors. + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + + + + Unspecified vulnerability in the Oracle Application Express component in Oracle Database 11.1.0.6 allows remote authenticated users to affect confidentiality, integrity, and availability via unknown vectors. + + + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + Unspecified vulnerability in the WebLogic Server Plugins for Apache component in BEA Product Suite 10.3, 10.0 MP1, 9.2 MP3, 9.1, 9.0, 8.1 SP6, 7.0 SP7, and 6.1 SP7 allows remote attackers to affect confidentiality, integrity, and availability via unknown vectors. + + + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + + + + + + Unspecified vulnerability in the WebLogic Server component in BEA Product Suite 9.1 allows remote attackers to affect confidentiality, integrity, and availability via unknown vectors. + + + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + Unspecified vulnerability in the WebLogic Workshop component in BEA Product Suite 10.3, 10.2, 10.0 MP1, 9.2 MP3, and 8.1 SP6 allows remote attackers to affect confidentiality, integrity, and availability via unknown vectors. + + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + + + Unspecified vulnerability in the WebLogic Server component in BEA Product Suite 10.0 MP1, 9.2 MP3, 9.1, and 9.0 allows remote authenticated users to affect integrity via unknown vectors. + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + + Unspecified vulnerability in the WebLogic Workshop component in BEA Product Suite WLW 8.1SP5 allows remote attackers to affect confidentiality, integrity, and availability via unknown vectors. + + + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + + Unspecified vulnerability in the WebLogic Server component in BEA Product Suite 10.0 MP1, 9.2 MP3, 9.1, 9.0, and 8.1 SP6 allows remote attackers to affect confidentiality, integrity, and availability via unknown vectors. + + + + + + + + + + + http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpuoct2008.html + + + + + + + + + + + + + + Multiple integer overflows in dhost.exe in Novell eDirectory 8.8 before 8.8.3, and 8.73 before 8.7.3.10 ftf1, allow remote attackers to execute arbitrary code via a crafted (1) Content-Length header in a SOAP request or (2) Netware Core Protocol opcode 0x0F message, which triggers a heap-based buffer overflow. + + + + + + + + + + + + http://www.zerodayinitiative.com/advisories/ZDI-08-065 + http://www.zerodayinitiative.com/advisories/ZDI-08-063 + 20081008 ZDI-08-065: Novell eDirectory Core Protocol Opcode 0x0F Heap Overflow Vulnerability + 20081008 ZDI-08-063: Novell eDirectory dhost.exe Content-Length Header Heap Overflow Vulnerability + http://www.novell.com/support/php/search.do?cmd=displayKC&docType=kc&externalId=7001184&sliceId=1&docTypeID=DT_TID_1_1&dialogID=78066829&stateId=0%200%2078062953 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Heap-based buffer overflow in dhost.exe in Novell eDirectory 8.8 before 8.8.3, and 8.7.3 before 8.7.3.10 ftf1, allows remote attackers to execute arbitrary code via a SOAP request with a long Accept-Language header. + + + + + + + + + + + http://www.zerodayinitiative.com/advisories/ZDI-08-064 + 20081008 ZDI-08-064: Novell eDirectory dhost.exe Accept Language Header Heap Overflow Vulnerability + http://www.novell.com/support/php/search.do?cmd=displayKC&docType=kc&externalId=7000086&sliceId=1&docTypeID=DT_TID_1_1&dialogID=78066829&stateId=0%200%2078062953 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Heap-based buffer overflow in dhost.exe in Novell eDirectory 8.x before 8.8.3, and 8.7.3 before 8.7.3.10 ftf1, allows remote attackers to execute arbitrary code via a crafted Netware Core Protocol opcode 0x24 message that triggers a calculation error that under-allocates a heap buffer. + + + + + + + + + + + http://www.zerodayinitiative.com/advisories/ZDI-08-066/ + 20081008 ZDI-08-066: Novell eDirectory Core Protocol Opcode 0x24 Heap Overflow Vulnerability + http://www.novell.com/support/php/search.do?cmd=displayKC&docType=kc&externalId=7001183&sliceId=1&docTypeID=DT_TID_1_1&dialogID=78066829&stateId=0%200%2078062953 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Stack-based buffer overflow in the adm_build_path function in sadmind in Sun Solstice AdminSuite on Solaris 8 and 9 allows remote attackers to execute arbitrary code via a crafted request. + + + + + + + + + + + 31751 + 20081014 [RISE-2008001] Sun Solstice AdminSuite sadmind adm_build_path()Buffer Overflow Vulnerability + http://risesecurity.org/advisories/RISE-2008001.txt + + + + + + + + + + + + + + + plugins/wacko/highlight/html.php in Strawberry in CuteNews.ru 1.1.1 (aka Strawberry) allows remote attackers to execute arbitrary PHP code via the text parameter, which is inserted into an executable regular expression. + + + + + + + + + + + cutenews-html-code-execution(39450) + 40236 + 4851 + 28330 + + + + + + + + + + Array index error in VLC media player 0.9.2 allows remote attackers to overwrite arbitrary memory and execute arbitrary code via an XSPF playlist file with a negative identifier tag, which passes a signed comparison. + + + + + + + + + + + + + http://www.coresecurity.com/content/vlc-xspf-memory-corruption + + + + + + + + + + Integer overflow in the Internet Printing Protocol (IPP) ISAPI extension in Microsoft Internet Information Services (IIS) 5.0 through 7.0 on Windows 2000 SP4, XP SP2 and SP3, Server 2003 SP1 and SP2, and Server 2008 allows remote authenticated users to execute arbitrary code via an HTTP POST request that triggers an outbound IPP connection from a web server to a machine operated by the attacker, aka "Integer Overflow in IPP Service Vulnerability." + + + + + + + + + + + MS08-062 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The kernel in Microsoft Windows 2000 SP4, XP SP2 and SP3, Server 2003 SP1 and SP2, Vista Gold and SP1, and Server 2008 does not properly validate window properties sent from a parent window to a child window during creation of a new window, which allows local users to gain privileges via a crafted application, aka "Windows Kernel Window Creation Vulnerability." + + + + + + + + + + + MS08-061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Double free vulnerability in the kernel in Microsoft Windows 2000 SP4, XP SP2 and SP3, Server 2003 SP1 and SP2, Vista Gold and SP1, and Server 2008 allows local users to gain privileges via a crafted application that makes system calls within multiple threads, aka "Windows Kernel Unhandled Exception Vulnerability." NOTE: according to Microsoft, this is not a duplicate of CVE-2008-4510. + + + + + + + + + + + MS08-061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The kernel in Microsoft Windows 2000 SP4, XP SP2 and SP3, Server 2003 SP1 and SP2, Vista Gold and SP1, and Server 2008 does not properly validate parameters sent from user mode to the kernel, which allows local users to gain privileges via a crafted application, aka "Windows Kernel Memory Corruption Vulnerability." + + + + + + + + + + + + MS08-061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + afd.sys in the Ancillary Function Driver (AFD) component in Microsoft Windows XP SP2 and SP3 and Windows Server 2003 SP1 and SP2 does not properly validate input sent from user mode to the kernel, which allows local users to gain privileges via a crafted application, aka "AFD Kernel Overwrite Vulnerability." + + + + + + + + + + + MS08-066 + + + + + + + + + + + + + + + + + + + + + + Microsoft Host Integration Server (HIS) 2000, 2004, and 2006 does not limit RPC access to administrative functions, which allows remote attackers to bypass authentication and execute arbitrary code via a crafted SNA RPC message, aka "HIS Command Execution Vulnerability." + + + + + + + + + + + + MS08-059 + + + + + + + + + + + + + + + + + + + + + Microsoft Excel 2000 SP3, 2002 SP3, 2003 SP2 and SP3, and 2007 Gold and SP1; Office Excel Viewer 2003 SP3; Office Excel Viewer; Office Compatibility Pack for Word, Excel, and PowerPoint 2007 File Formats Gold and SP1; Office 2004 and 2008 for Mac; and Open XML File Format Converter for Mac do not properly allocate memory when loading Excel objects during parsing of the Excel spreadsheet file format, which allows remote attackers to execute arbitrary code via a crafted BIFF file, aka "File Format Parsing Vulnerability." + + + + + + + + + + + + MS08-057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Microsoft Internet Explorer 6 and 7 does not properly determine the domain or security zone of origin of web script, which allows remote attackers to bypass the intended cross-domain security policy, and execute arbitrary code or obtain sensitive information, via a crafted HTML document, aka "HTML Element Cross-Domain Vulnerability." + + + + + + + + + + + + MS08-058 + + + + + + + + + + + + Microsoft Internet Explorer 6 and 7 does not properly determine the domain or security zone of origin of web script, which allows remote attackers to bypass the intended cross-domain security policy, and execute arbitrary code or obtain sensitive information, via a crafted HTML document, aka "Event Handling Cross-Domain Vulnerability." + + + + + + + + + + + + + MS08-058 + + + + + + + + + + + + Microsoft Internet Explorer 6 and 7 does not properly determine the domain or security zone of origin of web script, which allows remote attackers to bypass the intended cross-domain security policy and obtain sensitive information via a crafted HTML document, aka "Cross-Domain Information Disclosure Vulnerability." + + + + + + + + + + MS08-058 + + + + + + + + + + + + Microsoft Internet Explorer 6 does not properly handle errors associated with access to an object that has been (1) incorrectly initialized or (2) deleted, which allows remote attackers to execute arbitrary code via a crafted HTML document, aka "Uninitialized Memory Corruption Vulnerability." + + + + + + + + + + + + + MS08-058 + + + + + + + + + + + + Microsoft Internet Explorer 5.01 SP4 and 6 does not properly handle errors associated with access to uninitialized memory, which allows remote attackers to execute arbitrary code via a crafted HTML document, aka "HTML Objects Memory Corruption Vulnerability." + + + + + + + + + + + + + MS08-058 + + + + + + + + + + + + Microsoft Excel 2000 SP3, 2002 SP3, and 2003 SP2 and SP3 does not properly validate data in the VBA Performance Cache, which allows remote attackers to execute arbitrary code via a crafted Excel file, aka "Calendar Object Validation Vulnerability." + + + + + + + + + + + + + MS08-057 + + + + + + + + + + + + The Microsoft Message Queuing (MSMQ) service in Microsoft Windows 2000 SP4 does not properly validate parameters to string APIs, which allows remote attackers to execute arbitrary code via a crafted RPC call that overflows a "heap request," aka "Message Queuing Service Remote Code Execution Vulnerability." + + + + + + + + + + + + MS08-065 + + + + + + + + + + Integer overflow in the REPT function in Microsoft Excel 2000 SP3, 2002 SP3, 2003 SP2 and SP3, and 2007 Gold and SP1; Office Excel Viewer 2003 SP3; Office Excel Viewer; Office Compatibility Pack for Word, Excel, and PowerPoint 2007 File Formats Gold and SP1; Office SharePoint Server 2007 Gold and SP1; Office 2004 and 2008 for Mac; and Open XML File Format Converter for Mac allows remote attackers to execute arbitrary code via an Excel file containing a formula within a cell, aka "Formula Parsing Vulnerability." + + + + + + + + + + + + + MS08-057 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Cross-site scripting (XSS) vulnerability in Microsoft Office XP SP3 allows remote attackers to inject arbitrary web script or HTML via a document that contains a "Content-Disposition: attachment" header and is accessed through a cdo: URL, which renders the content instead of raising a File Download dialog box, aka "Vulnerability in Content-Disposition Header Vulnerability." + + + + + + + + + + MS08-056 + + + + + + + + + + Active Directory in Microsoft Windows 2000 SP4 does not properly allocate memory for (1) LDAP and (2) LDAPS requests, which allows remote attackers to execute arbitrary code via a crafted request, aka "Active Directory Overflow Vulnerability." + + + + + + + + + + + + MS08-060 + + + + + + + + + + Integer overflow in Memory Manager in Microsoft Windows XP SP2 and SP3, Server 2003 SP1 and SP2, Vista Gold and SP1, and Server 2008 allows local users to gain privileges via a crafted application that triggers an erroneous decrement of a variable, related to validation of parameters for Virtual Address Descriptors (VADs) and a "memory allocation mapping error," aka "Virtual Address Descriptor Elevation of Privilege Vulnerability." + + + + + + + + + + + MS08-064 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Buffer underflow in Microsoft Windows 2000 SP4, XP SP2 and SP3, Server 2003 SP1 and SP2, Vista Gold and SP1, and Server 2008 allows remote attackers to execute arbitrary code via a Server Message Block (SMB) request that contains a filename with a crafted length, aka "SMB Buffer Underflow Vulnerability." + + + + + + + + + + + + MS08-063 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SQL injection vulnerability in xlacomments.asp in XIGLA Software Absolute Poll Manager XE 4.1 allows remote attackers to execute arbitrary SQL commands via the p parameter. + + + + + + + + + + + + 31724 + 6731 + + + + + + + + + + SQL injection vulnerability in index.php in Real Estate Classifieds allows remote attackers to execute arbitrary SQL commands via the cat parameter. + + + + + + + + + + + + 31723 + 6736 + 32223 + + + + + + + + + + Cross-site scripting (XSS) vulnerability in the LiveSearch module in Plone before 3.0.4 allows remote attackers to inject arbitrary web script or HTML via the Description field for search results, as demonstrated using the onerror Javascript even in an IMG tag. + + + + + + + + + + 27098 + http://plone.org/products/plone/releases/3.0.4 + 28293 + http://dev.plone.org/plone/ticket/7439 + + + + + + + + + + + + + + + + + + + + GuildFTPd 0.999.14, and possibly other versions, allows remote attackers to cause a denial of service (crash) and possibly execute arbitrary code via long arguments to the CWD and LIST commands, which triggers heap corruption related to an improper free call, and possibly triggering a heap-based buffer overflow. + + + + + + + + + + + + 31729 + 6738 + ADV-2008-2794 + 32218 + + + + + + + + + + SQL injection vulnerability in kategori.asp in MunzurSoft Wep Portal W3 allows remote attackers to execute arbitrary SQL commands via the kat parameter. + + + + + + + + + + + + 31713 + 6725 + 32238 + + + + + + + + + + SQL injection vulnerability in default.asp in Ayco Okul Portali allows remote attackers to execute arbitrary SQL commands via the linkid parameter. + + + + + + + + + + + + aop-linkid-sql-injection(45801) + 31704 + 6720 + 32244 + + + + + + + + + + qemu-make-debian-root in qemu 0.9.1-5 on Debian GNU/Linux allows local users to overwrite arbitrary files via a symlink attack on temporary files and directories. + + + + + + + + + + + + [oss-security] 20081014 Re: CVE id request: qemu + [oss-security] 20081013 CVE id request: qemu + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=496394 + + + + + + + + + + The do_splice_from function in fs/splice.c in the Linux kernel before 2.6.27 does not reject file descriptors that have the O_APPEND flag set, which allows local users to bypass append mode and make arbitrary changes to other locations in the file. + + + + + + + + + + + + [oss-security] 20081014 Re: CVE request: kernel: don't allow splice() to files opened with O_APPEND + [oss-security] 20081013 CVE request: kernel: don't allow splice() to files opened with O_APPEND + http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.27 + http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.26.y.git;a=commit;h=efc968d450e013049a662d22727cf132618dcb2f + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Buffer overflow in the DoCommand function in jhead before 2.84 might allow context-dependent attackers to cause a denial of service (crash) via (1) a long -cmd argument and (2) possibly other unspecified vectors. + + + + + + + + + https://bugs.launchpad.net/ubuntu/+source/jhead/+bug/271020 + http://www.sentex.net/~mwandel/jhead/changes.txt + [oss-security] 20081015 Re: CVE request: jhead + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sctp in Linux kernel before 2.6.25.18 allows remote attackers to cause a denial of service (OOPS) via an INIT-ACK that states the peer does not support AUTH, which causes the sctp_process_init function to clean up active transports and triggers the OOPS when the T1-Init timer expires. + + + + + + + + + [linux-kernel] 20081006 [patch 58/71] sctp: Fix oops when INIT-ACK indicates that peer doesnt support AUTH + http://kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.25.18 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The ACL plugin in Dovecot before 1.1.4 treats negative access rights as if they are positive access rights, which allows attackers to bypass intended access restrictions. + + + + + + + + + + ADV-2008-2745 + [Dovecot-news] 20081005 v1.1.4 released + 31587 + 32164 + http://bugs.gentoo.org/show_bug.cgi?id=240409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The ACL plugin in Dovecot before 1.1.4 allows attackers to bypass intended access restrictions by using the "k" right to create unauthorized "parent/child/child" mailboxes. + + + + + + + + + [Dovecot-news] 20081005 v1.1.4 released + 31587 + ADV-2008-2745 + 32164 + http://bugs.gentoo.org/show_bug.cgi?id=240409 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The (1) fence_apc and (2) fence_apc_snmp programs, as used in (a) fence 2.02.00-r1 and possibly (b) cman, when running in verbose mode, allows local users to append to arbitrary files via a symlink attack on the apclog temporary file. + + + + + + + + + [oss-security] 20081013 Re: CVE Request + http://bugs.gentoo.org/show_bug.cgi?id=240576 + + + + + + + + + + + + + fence_manual in fence allows local users to modify arbitrary files via a symlink attack on the fence_manual.fifo temporary file. + + + + + + + + + + + + [oss-security] 20081013 Re: CVE Request + + + + + + + + + + + + + The Editor in IBM ENOVIA SmarTeam 5 before release 18 SP5, and release 19 before SP01, allows remote authenticated users to bypass intended access restrictions and read Document objects via the Workflow Process (aka Flow Process) view. + + + + + + + + + 31748 + HD71425 + http://www-01.ibm.com/support/docview.wss?uid=swg27012567&aid=1 + 32105 + + + + + + + + + + Mozilla Firefox 3.0.1 through 3.0.3 on Windows does not properly identify the context of Windows .url shortcut files, which allows user-assisted remote attackers to bypass the Same Origin Policy and obtain sensitive information via an HTML document that is directly accessible through a filesystem, as demonstrated by documents in (1) local folders, (2) Windows share folders, and (3) RAR archives, and as demonstrated by IFRAMEs referencing shortcuts that point to (a) about:cache?device=memory and (b) about:cache?device=disk, a variant of CVE-2008-2810. + + + + + + + + + + 20081007 Firefox Privacy Broken If Used to Open Web Page File + 32192 + http://liudieyu0.blog124.fc2.com/blog-entry-6.html + + + + + + + + + + + + Insecure method vulnerability in the Chilkat FTP 2.0 ActiveX component (ChilkatCert.dll) allows remote attackers to overwrite arbitrary files via a full pathname in the SavePkcs8File method. + + + + + + + + + + + + 27540 + 5028 + + + + + + + + + + Insecure method vulnerability in Chilkat Mail 7.8 ActiveX control (ChilkatCert.dll) allows remote attackers to overwrite arbitrary files via a full pathname to the SaveLastError method. + + + + + + + + + + + + + chilkatmail-chilkatcert-file-overwrite(40041) + 27493 + 5005 + + + + + + + + + + Belong Software Site Builder 0.1 beta allows remote attackers to bypass intended access restrictions and perform administrative actions via a direct request to admin/home.php. + + + + + + + + + + + + belongsitebuilder-admin-security-bypass(39842) + 27402 + 20080122 Belong Site Builder 0.1b Bypass Admincp + + + + + + + + + + Insecure method vulnerability in the MVSNCLientWebAgent61.WebAgent.1 ActiveX control (isusweb.dll 6.1.100.61372) in Macrovision FLEXnet Connect 6.1 allows remote attackers to force the download and execution of arbitrary files via the DownloadAndExecute method. + + + + + + + + + + + + + 27279 + 4913 + 28496 + + + + + + + + + + Insecure method vulnerability in the MSVNClientDownloadManager61Lib.DownloadManager.1 ActiveX control (ISDM.exe 6.1.100.61372) in Macrovision FLEXnet Connect 6.1 allows remote attackers to force the download and execution of arbitrary files via the AddFile and RunScheduledJobs methods. NOTE: this could be leveraged for code execution by uploading executable files to Startup folders. + + + + + + + + + + + + macrovision-flexnet-file-overwrite(39653) + 27279 + 4909 + 28496 + + + + + + + + + + Stack-based buffer overflow in the FTP server in Etype Eserv 3.x, possibly 3.26, allows remote attackers to cause a denial of service (daemon crash) and possibly execute arbitrary code via a long argument to the ABOR command. + + + + + + + + + + + + eservftp-abor-bo(45864) + http://www.zeroscience.org/codes/eserv_bof.txt + 31753 + 6752 + + + + + + + + + + + + Heap-based buffer overflow in the tvtumin.sys kernel driver in Lenovo Rescue and Recovery 4.20, including 4.20.0511 and 4.20.0512, allows local users to execute arbitrary code via a long file name. + + + + + + + + + + + 31737 + http://www-307.ibm.com/pc/support/site.wss/MIGR-70699.html + http://www-307.ibm.com/pc/support/site.wss/MIGR-4Q2QAK.html + lenovo-rescue-recovery-tvtumin-bo(45839) + 1021041 + 20081010 iSEC Partners Security Advisory - 2008-002-lenovornr - Lenovo Rescue and Recovery 4.20 + http://www.isecpartners.com/advisories/2008-02-lenovornr.txt + ADV-2008-2806 + 32252 + + + + + + + + + + + + Multiple SQL injection vulnerabilities in Stash 1.0.3 allow remote attackers to execute arbitrary SQL commands via (1) the username parameter to admin/login.php and (2) the post parameter to admin/news.php. + + + + + + + + + + + + stash-news-sql-injection(45799) + 31687 + 6714 + + + + + + + + + + Multiple cross-site scripting (XSS) vulnerabilities in admin/include/isadmin.inc.php in PhpWebGallery 1.3.4 allow remote attackers to inject arbitrary web script or HTML via the (1) lang[access_forbiden] and (2) lang[ident_title] parameters. + + + + + + + + + + 6425 + + + + + + + + + + Directory traversal vulnerability in index.php in Sports Clubs Web Panel 0.0.1 allows remote attackers to include and execute arbitrary local files via a .. (dot dot) in the p parameter. + + + + + + + + + + + + 6427 + ADV-2008-2550 + + + + + + + + + + ActionScript in Adobe Flash Player 9.0.124.0 and earlier does not require user interaction in conjunction with (1) the FileReference.browse operation in the FileReference upload API or (2) the FileReference.download operation in the FileReference download API, which allows remote attackers to create a browse dialog box, and possibly have unspecified other impact, via an SWF file. + + + + + + + + + adobe-flash-filereference-file-upload(45913) + http://www.adobe.com/support/security/bulletins/apsb08-18.html + 32270 + ADV-2008-2838 + http://www.adobe.com/devnet/flashplayer/articles/fplayer10_security_changes.html + 1021061 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Multiple heap-based buffer overflows in Adobe Flash CS3 Professional on Windows and Flash MX 2004 allow remote attackers to execute arbitrary code via an SWF file containing long control parameters. + + + adobe-flash-cs3-bo(45914) + 31769 + 20081015 Multiple Flash Authoring Heap Overflows - Malformed SWF Files + ADV-2008-2837 + http://www.adobe.com/support/security/advisories/apsa08-09.html + 1021060 + http://security-assessment.com/files/advisories/2008-10-16_Multiple_Flash_Authoring_Heap_Overflows.pdf + 32246 + + + + + Unspecified vulnerability in HP Systems Insight Manager (SIM) before 5.2 Update 2 (C.05.02.02.00) allows remote attackers to obtain sensitive information via unspecified vectors. + + + hp-sim-unspecified-security-bypass(45916) + 31777 + ADV-2008-2836 + 32287 + SSRT080035 + HPSBMA02378 + + + + + Apple iPhone 2.1 with firmware 5F136, when Require Passcode is enabled and Show SMS Preview is disabled, allows physically proximate attackers to obtain sensitive information by performing an Emergency Call tap and then reading SMS messages on the device screen, aka Apple bug number 6267416. + + + http://www.karlkraft.com/index.php/2008/10/03/yet-another-iphone-emergency-call-security-bug/ + 1021021 + + + + + Unspecified vulnerability in the SNMPv3 component in Linksys WAP4400N firmware 1.2.14 on the Marvell Semiconductor 88W8361P-BEM1 chipset has unknown impact and attack vectors, probably remote. + + + linksys-wap4400n-unspecified(45842) + ADV-2008-2805 + 32259 + + + + + Multiple unspecified vulnerabilities in Slaytanic Scripts Content Plus 2.1.1 have unknown impact and remote attack vectors. + + + http://sourceforge.net/project/shownotes.php?release_id=632842 + 32245 + + + + + Cross-site scripting (XSS) vulnerability in Shindig-Integrator 5.x, a module for Drupal, allows remote authenticated users to inject arbitrary web script or HTML via unspecified vectors in generated pages. + + + shindigintegrator-unspecified-xss(45925) + 32285 + http://drupal.org/node/321758 + + + + + Shindig-Integrator 5.x, a module for Drupal, does not properly restrict generated page access, which allows remote attackers to gain privileges via unspecified vectors. + + + 32285 + http://drupal.org/node/321758 + + + + + Unspecified vulnerability in Shindig-Integrator 5.x, a module for Drupal, has unspecified impact and remote attack vectors related to "numerous flaws" that are not related to XSS or access control, a different vulnerability than CVE-2008-4596 and CVE-2008-4597. + + + 32285 + http://drupal.org/node/321758 + + + + + SQL injection vulnerability in category.php in Mosaic Commerce allows remote attackers to execute arbitrary SQL commands via the cid parameter. + + + mosaiccommerce-category-sql-injection(45926) + 31782 + 6763 + + + + + configure.php in PokerMax Poker League Tournament Script 0.13 allows remote attackers to bypass authentication and gain administrative access by setting the ValidUserAdmin cookie. + + + pokermax-cookie-security-bypass(45931) + 31784 + 6766 + 32312 + + + + + Cross-site scripting (XSS) vulnerability in the login feature in Habari CMS 0.5.1 allows remote attackers to inject arbitrary web script or HTML via the habari_username parameter. + + + 31794 + 32311 + http://packetstorm.linuxsecurity.com/0810-exploits/habaricms-xss.txt + + + + + Directory traversal vulnerability in index.php in Post Affiliate Pro 2.0 allows remote authenticated users to read and possibly execute arbitrary local files via a .. (dot dot) in the md parameter. + + + 31796 + 6772 + + + + + SQL injection vulnerability in search.php in iGaming CMS 2.0 Alpha 1 allows remote attackers to execute arbitrary SQL commands via the keywords parameter in a search_games action. + + + 31793 + 6769 + + + + + SQL injection vulnerability in index.php in Easy CafeEngine 1.1 allows remote attackers to execute arbitrary SQL commands via the itemid parameter. + + + 31788 + 6762 + 32307 + + + + + SQL injection vulnerability in CafeEngine allows remote attackers to execute arbitrary SQL commands via the id parameter to (1) dish.php and (2) menu.php. + + + cafeengine-dish-menu-sql-injection(45929) + 31786 + 6762 + 32308 + + + + + Multiple SQL injection vulnerabilities in IP Reg 0.4 and earlier allow remote attackers to execute arbitrary SQL commands via the (1) location_id parameter to locationdel.php and (2) vlan_id parameter to it.php. NOTE: the vlanview.php and vlandel.php vectors are already covered by CVE-2007-6579. + + + ipreg-locationid-vlanid-sql-injection(45934) + 31781 + 6765 + + + + \ No newline at end of file diff --git a/test/schemas/nvdcve_0.xsd b/test/schemas/nvdcve_0.xsd new file mode 100644 index 0000000..f24b574 --- /dev/null +++ b/test/schemas/nvdcve_0.xsd @@ -0,0 +1,498 @@ + + + + This schema defines the structure of the National + Vulnerability Database XML feed files version: 1.2. The elements and + attribute in this document are described by xs:annotation tags. This + file is kept at http://nvd.nist.gov/schema/nvdcve.xsd. The NVD XML + feeds are available at http://nvd.nist.gov/download.cfm. + + Release Notes: + + Version 1.2: + * CVSS version 2 scores and vectors have been added. Please see + http://nvd.nist.gov/cvss.cfm?vectorinfo and + http://www.first.org/cvss/cvss-guide.html for more information on + how to interpret this data. + + + + The root element of the NVD CVE feed. Multiple "entry" child elements describe specific NVD CVE entries. + + + + + + + + The schema version number supported by the feed. + + + + + The date the feed was generated. + + + + + + + + A CVE entry. + + + + + + + + + Documents one CVE entry. The child elements should always + appear in the sequence defined below. These elements are compatible with + entry elements from the CVE XML feeds. + + + + + Description wrapper tag, parent to any + documented descriptions of this CVE entry. While the "desc" + tag will always be present, there may be no "descript" child + tags. Only one "descript" tag will exist for each + description source (i.e. CVE, NVD, ...). + + + + + + A description of a CVE entry + from the source indicated by the "source" + attribute. + + + + + + + + Impact wrapper tag (may or may not be + present). Only one "impact" tag will exist for each impact + explanation source. + + + + + + Contains a specific impact + explanation of this CVE entry from source + indicated by the "source" attribute. + + + + + + + + + Solution wrapper tag (may or may not be + present). Only one "sol" tag will exist for each solution + explanation source. + + + + + Loss type tag (may or may not be present). + Contains one loss type child for each loss type of this CVE + entry. Potential loss types are: "avail" => availability + "conf" => confidentiality "int" => integrity "sec_prot" => + security protection + + + + + Vulnerability type tag (may or may not be + present). Contains one vulnerability type child for each + vulnerability type of this CVE entry. Potential + vulnerability types are: "access" => Access validation error + "input" => Input validation error "design" => Design error + "exception" => Exceptional condition error "env" => + Environmental error "config" => Configuration error "race" + => Race condition error "other" => other + + + + + Vulnerability range tag (may or may not be + present). Contains one vulnerability range child for each + vulnerability range of this CVE entry. Potential + vulnerability ranges are: "local" => Locally exploitable + "local_network" => Local network exploitable "network" => + Network exploitable "user_init" => User accesses attacker + + + + + + Reference wrapper tag (always present). + External references to this CVE entry are contained within + this tag. + + + + + + Individual reference to this CVE + entry. Text is the name of this vulnerability at + this particular reference. Attributes: "source" + (required) => Name of reference source "url" + (required) => hyperlink to reference "sig" => + indicates this reference includes a tool + signature "adv" => indicates this reference is a + Security Advisory "patch" => indicates this + reference includes a patch for this + vulnerability + + + + + + + + Vulnerable software wrapper tag (may or may + not be present). Software affected by this CVE entry are + listed within this tag. + + + + + + CVE or CAN + + + + + + + + + + + the full CVE name + + + + + + + + + + the sequence number from CVE name + + + + + + + + + + the NVD name (if it exists) + + + + + the date this entry was discovered + + + + + the date this entry was published + + + + + the date this entry was last modified + + + + + the entry's severity as determined by the NVD analysts: High, Medium, or Low + + + + + + + + + + + + indicates that this CVE entry has been rejected by CVE or NVD + + + + + the CVSS Version Indicator + + + + + Same as the CVSS_base_score to provide backwards compatability with the previous CVE XML feed format. This field is deprecated an may be removed at a future date. + + + + + CVSS version 2 Base Score + + + + + CVSS version 2 Impact Score + + + + + CVSS version 2 Exploit Score + + + + + the CVSS version 2 Vector string + + + + + + + + + + The source of the CVE description. + + + + + + + + + + + + + + + + + + + + + Input validation error tag with + one attribute for each input validation error + type. Potential input validation error types + are: "bound" => Boundary condition error + "buffer" => Buffer overflow + + + + + + + + + + + + + + + + + + + + Contains a specific solution + explanation of this CVE entry from source + indicated by the "source" attribute. + + + + + + + + + + + + + + + + + + + + + + Security Protection tag with one + attribute for each security protection type. + Potential security protection types are: "admin" + => gain administrative access "user" => gain + user access "other" => other + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Product wrapper tag. Versions of + this product that are affected by this + vulnerability are listed within this tag. + Attributes: "name" => Product name "vendor" => + Vendor of this product + + + + + + Represents a version + of this product that is affected by + this vulnerability. Attributes: + "num" => This version number "prev" + => Indicates that versions previous + to this version number are also + affected by this vulnerability + "edition" => Indicates the edition + associated with the version number + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Defines date format for NVD. Dates follow the mask "yyyy-mm-dd" + + + + + + + + + Restricts urls in NVD beyond the xs:anyURI restrictions. + + + + + + + + + + simpleType used for attributes that are only present when they are + true. Such attributes appear only in the form attribute_name="1". + + + + + + + + + simpleType used when scoring on a scale of 0-10, inclusive + + + + + + + + + + simpleType to describe the CVSS Base Vector + + + + + + diff --git a/test/schemas/po0_0.xml b/test/schemas/po0_0.xml new file mode 100644 index 0000000..387232d --- /dev/null +++ b/test/schemas/po0_0.xml @@ -0,0 +1,32 @@ + + + + Alice Smith + 123 Maple Street + Mill Valley + CA + 90952 + + + Robert Smith + 8 Oak Avenue + Old Town + PA + 95819 + + Hurry, my lawn is going wild! + + + Lawnmower + 1 + 148.95 + Confirm this is electric + + + Baby Monitor + 1 + 39.98 + 1999-05-21 + + + diff --git a/test/schemas/po0_0.xsd b/test/schemas/po0_0.xsd new file mode 100644 index 0000000..5a1e660 --- /dev/null +++ b/test/schemas/po0_0.xsd @@ -0,0 +1,59 @@ + + + + +Purchase order schema for Example.com. + Copyright 2000 Example.com. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/po1_0.xml b/test/schemas/po1_0.xml new file mode 100644 index 0000000..8781bbf --- /dev/null +++ b/test/schemas/po1_0.xml @@ -0,0 +1,34 @@ + + + + Alice Smith + 123 Maple Street + Mill Valley + CA + 90952 + + + Robert Smith + 8 Oak Avenue + Old Town + PA + 95819 + + Hurry, my lawn is going wild! + + + Lawnmower + 1 + 148.95 + Confirm this is electric + + + Baby Monitor + 1 + 39.98 + 1999-05-21 + + + + diff --git a/test/schemas/po1_0.xsd b/test/schemas/po1_0.xsd new file mode 100644 index 0000000..a630561 --- /dev/null +++ b/test/schemas/po1_0.xsd @@ -0,0 +1,64 @@ + + + + +Purchase order schema for Example.com. + Copyright 2000 Example.com. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/poschargrp0_0.xml b/test/schemas/poschargrp0_0.xml new file mode 100644 index 0000000..0800b1b --- /dev/null +++ b/test/schemas/poschargrp0_0.xml @@ -0,0 +1,2 @@ + +value \ No newline at end of file diff --git a/test/schemas/poschargrp0_0.xsd b/test/schemas/poschargrp0_0.xsd new file mode 100644 index 0000000..3243a2f --- /dev/null +++ b/test/schemas/poschargrp0_0.xsd @@ -0,0 +1,14 @@ + + + + + + + + + + + diff --git a/test/schemas/regexp-char-ref_0.xml b/test/schemas/regexp-char-ref_0.xml new file mode 100644 index 0000000..f6f463e --- /dev/null +++ b/test/schemas/regexp-char-ref_0.xml @@ -0,0 +1,7 @@ + + + diff --git a/test/schemas/regexp-char-ref_0.xsd b/test/schemas/regexp-char-ref_0.xsd new file mode 100644 index 0000000..2d91c6c --- /dev/null +++ b/test/schemas/regexp-char-ref_0.xsd @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/regexp-char-ref_1.xsd b/test/schemas/regexp-char-ref_1.xsd new file mode 100644 index 0000000..598a4d5 --- /dev/null +++ b/test/schemas/regexp-char-ref_1.xsd @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/restrict-CT-attr-ref_0.xml b/test/schemas/restrict-CT-attr-ref_0.xml new file mode 100644 index 0000000..d021a83 --- /dev/null +++ b/test/schemas/restrict-CT-attr-ref_0.xml @@ -0,0 +1,3 @@ + + \ No newline at end of file diff --git a/test/schemas/restrict-CT-attr-ref_0.xsd b/test/schemas/restrict-CT-attr-ref_0.xsd new file mode 100644 index 0000000..a98b82a --- /dev/null +++ b/test/schemas/restrict-CT-attr-ref_0.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/restriction-attr1_0.xml b/test/schemas/restriction-attr1_0.xml new file mode 100644 index 0000000..33b8f19 --- /dev/null +++ b/test/schemas/restriction-attr1_0.xml @@ -0,0 +1,3 @@ + + diff --git a/test/schemas/restriction-attr1_0.xsd b/test/schemas/restriction-attr1_0.xsd new file mode 100644 index 0000000..31c288f --- /dev/null +++ b/test/schemas/restriction-attr1_0.xsd @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/restriction-enum-1_0.xml b/test/schemas/restriction-enum-1_0.xml new file mode 100644 index 0000000..9bdb4a3 --- /dev/null +++ b/test/schemas/restriction-enum-1_0.xml @@ -0,0 +1,7 @@ + + +c diff --git a/test/schemas/restriction-enum-1_1.xsd b/test/schemas/restriction-enum-1_1.xsd new file mode 100644 index 0000000..69e353d --- /dev/null +++ b/test/schemas/restriction-enum-1_1.xsd @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/restriction0_0.xml b/test/schemas/restriction0_0.xml new file mode 100644 index 0000000..8656d2c --- /dev/null +++ b/test/schemas/restriction0_0.xml @@ -0,0 +1,5 @@ + + + Bill + Clinton + diff --git a/test/schemas/restriction0_0.xsd b/test/schemas/restriction0_0.xsd new file mode 100644 index 0000000..6b35b9f --- /dev/null +++ b/test/schemas/restriction0_0.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/scc-no-xmlns_0.xml b/test/schemas/scc-no-xmlns_0.xml new file mode 100644 index 0000000..b85cdcb --- /dev/null +++ b/test/schemas/scc-no-xmlns_0.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/schemas/scc-no-xmlns_0.xsd b/test/schemas/scc-no-xmlns_0.xsd new file mode 100644 index 0000000..731c81b --- /dev/null +++ b/test/schemas/scc-no-xmlns_0.xsd @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/test/schemas/scc-no-xsi_0.xml b/test/schemas/scc-no-xsi_0.xml new file mode 100644 index 0000000..b85cdcb --- /dev/null +++ b/test/schemas/scc-no-xsi_0.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/schemas/scc-no-xsi_0.xsd b/test/schemas/scc-no-xsi_0.xsd new file mode 100644 index 0000000..388b6a9 --- /dev/null +++ b/test/schemas/scc-no-xsi_0.xsd @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/test/schemas/seq-dubl-elem1_0.xml b/test/schemas/seq-dubl-elem1_0.xml new file mode 100644 index 0000000..a93c8ee --- /dev/null +++ b/test/schemas/seq-dubl-elem1_0.xml @@ -0,0 +1,7 @@ + + + PEhlbGxvIHdvcmxkIT4= + PEhlbGxvIHdvcmxkIT4= + \ No newline at end of file diff --git a/test/schemas/seq-dubl-elem1_0.xsd b/test/schemas/seq-dubl-elem1_0.xsd new file mode 100644 index 0000000..fd05da7 --- /dev/null +++ b/test/schemas/seq-dubl-elem1_0.xsd @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/seq0_0.xml b/test/schemas/seq0_0.xml new file mode 100644 index 0000000..54b1c1c --- /dev/null +++ b/test/schemas/seq0_0.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/seq0_0.xsd b/test/schemas/seq0_0.xsd new file mode 100644 index 0000000..34d3a78 --- /dev/null +++ b/test/schemas/seq0_0.xsd @@ -0,0 +1,64 @@ + + + + + Testing min and max occurance attributes on sequences + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/src-attribute1_0.xml b/test/schemas/src-attribute1_0.xml new file mode 100644 index 0000000..760efd9 --- /dev/null +++ b/test/schemas/src-attribute1_0.xml @@ -0,0 +1,2 @@ + + diff --git a/test/schemas/src-attribute1_0.xsd b/test/schemas/src-attribute1_0.xsd new file mode 100644 index 0000000..dba8b48 --- /dev/null +++ b/test/schemas/src-attribute1_0.xsd @@ -0,0 +1,13 @@ + + + + + + + + + + + diff --git a/test/schemas/src-attribute2_0.xml b/test/schemas/src-attribute2_0.xml new file mode 100644 index 0000000..760efd9 --- /dev/null +++ b/test/schemas/src-attribute2_0.xml @@ -0,0 +1,2 @@ + + diff --git a/test/schemas/src-attribute2_0.xsd b/test/schemas/src-attribute2_0.xsd new file mode 100644 index 0000000..d10cc81 --- /dev/null +++ b/test/schemas/src-attribute2_0.xsd @@ -0,0 +1,13 @@ + + + + + + + + + + + diff --git a/test/schemas/src-attribute3-1_0.xml b/test/schemas/src-attribute3-1_0.xml new file mode 100644 index 0000000..760efd9 --- /dev/null +++ b/test/schemas/src-attribute3-1_0.xml @@ -0,0 +1,2 @@ + + diff --git a/test/schemas/src-attribute3-1_0.xsd b/test/schemas/src-attribute3-1_0.xsd new file mode 100644 index 0000000..28e003c --- /dev/null +++ b/test/schemas/src-attribute3-1_0.xsd @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/test/schemas/src-attribute3-2-form_0.xml b/test/schemas/src-attribute3-2-form_0.xml new file mode 100644 index 0000000..760efd9 --- /dev/null +++ b/test/schemas/src-attribute3-2-form_0.xml @@ -0,0 +1,2 @@ + + diff --git a/test/schemas/src-attribute3-2-form_0.xsd b/test/schemas/src-attribute3-2-form_0.xsd new file mode 100644 index 0000000..0c7cc23 --- /dev/null +++ b/test/schemas/src-attribute3-2-form_0.xsd @@ -0,0 +1,16 @@ + + + + + + + + + + + + + diff --git a/test/schemas/src-attribute3-2-st_0.xml b/test/schemas/src-attribute3-2-st_0.xml new file mode 100644 index 0000000..760efd9 --- /dev/null +++ b/test/schemas/src-attribute3-2-st_0.xml @@ -0,0 +1,2 @@ + + diff --git a/test/schemas/src-attribute3-2-st_0.xsd b/test/schemas/src-attribute3-2-st_0.xsd new file mode 100644 index 0000000..f256381 --- /dev/null +++ b/test/schemas/src-attribute3-2-st_0.xsd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/src-attribute3-2-type_0.xml b/test/schemas/src-attribute3-2-type_0.xml new file mode 100644 index 0000000..760efd9 --- /dev/null +++ b/test/schemas/src-attribute3-2-type_0.xml @@ -0,0 +1,2 @@ + + diff --git a/test/schemas/src-attribute3-2-type_0.xsd b/test/schemas/src-attribute3-2-type_0.xsd new file mode 100644 index 0000000..54f1973 --- /dev/null +++ b/test/schemas/src-attribute3-2-type_0.xsd @@ -0,0 +1,16 @@ + + + + + + + + + + + + + diff --git a/test/schemas/src-attribute4_0.xml b/test/schemas/src-attribute4_0.xml new file mode 100644 index 0000000..760efd9 --- /dev/null +++ b/test/schemas/src-attribute4_0.xml @@ -0,0 +1,2 @@ + + diff --git a/test/schemas/src-attribute4_0.xsd b/test/schemas/src-attribute4_0.xsd new file mode 100644 index 0000000..cc9d8ac --- /dev/null +++ b/test/schemas/src-attribute4_0.xsd @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + diff --git a/test/schemas/src-element1_0.xml b/test/schemas/src-element1_0.xml new file mode 100644 index 0000000..760efd9 --- /dev/null +++ b/test/schemas/src-element1_0.xml @@ -0,0 +1,2 @@ + + diff --git a/test/schemas/src-element1_0.xsd b/test/schemas/src-element1_0.xsd new file mode 100644 index 0000000..ffd8d57 --- /dev/null +++ b/test/schemas/src-element1_0.xsd @@ -0,0 +1,9 @@ + + + + + + + diff --git a/test/schemas/src-element2-1_0.xml b/test/schemas/src-element2-1_0.xml new file mode 100644 index 0000000..760efd9 --- /dev/null +++ b/test/schemas/src-element2-1_0.xml @@ -0,0 +1,2 @@ + + diff --git a/test/schemas/src-element2-1_0.xsd b/test/schemas/src-element2-1_0.xsd new file mode 100644 index 0000000..61c2edf --- /dev/null +++ b/test/schemas/src-element2-1_0.xsd @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + diff --git a/test/schemas/src-element2-2_0.xml b/test/schemas/src-element2-2_0.xml new file mode 100644 index 0000000..760efd9 --- /dev/null +++ b/test/schemas/src-element2-2_0.xml @@ -0,0 +1,2 @@ + + diff --git a/test/schemas/src-element2-2_0.xsd b/test/schemas/src-element2-2_0.xsd new file mode 100644 index 0000000..a70740a --- /dev/null +++ b/test/schemas/src-element2-2_0.xsd @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/src-element3_0.xml b/test/schemas/src-element3_0.xml new file mode 100644 index 0000000..760efd9 --- /dev/null +++ b/test/schemas/src-element3_0.xml @@ -0,0 +1,2 @@ + + diff --git a/test/schemas/src-element3_0.xsd b/test/schemas/src-element3_0.xsd new file mode 100644 index 0000000..28b69d8 --- /dev/null +++ b/test/schemas/src-element3_0.xsd @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/subst-group-1_0.xsd b/test/schemas/subst-group-1_0.xsd new file mode 100644 index 0000000..af21eeb --- /dev/null +++ b/test/schemas/subst-group-1_0.xsd @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/subst-group-1_1.xml b/test/schemas/subst-group-1_1.xml new file mode 100644 index 0000000..087fe02 --- /dev/null +++ b/test/schemas/subst-group-1_1.xml @@ -0,0 +1,12 @@ + + + + + Test 1. + + Test 2. + + + diff --git a/test/schemas/union2_1.xml b/test/schemas/union2_1.xml new file mode 100644 index 0000000..e148080 --- /dev/null +++ b/test/schemas/union2_1.xml @@ -0,0 +1,6 @@ + + + 5 + \ No newline at end of file diff --git a/test/schemas/union2_1.xsd b/test/schemas/union2_1.xsd new file mode 100644 index 0000000..6d83726 --- /dev/null +++ b/test/schemas/union2_1.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/union_0_0.xml b/test/schemas/union_0_0.xml new file mode 100644 index 0000000..1a47763 --- /dev/null +++ b/test/schemas/union_0_0.xml @@ -0,0 +1,8 @@ + + + EMP0090 + EMP0099 + + diff --git a/test/schemas/union_0_0.xsd b/test/schemas/union_0_0.xsd new file mode 100644 index 0000000..23e93d1 --- /dev/null +++ b/test/schemas/union_0_0.xsd @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/vdv-complexTypes.xsd b/test/schemas/vdv-complexTypes.xsd new file mode 100644 index 0000000..cd40fb8 --- /dev/null +++ b/test/schemas/vdv-complexTypes.xsd @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/vdv-first0_0.xml b/test/schemas/vdv-first0_0.xml new file mode 100644 index 0000000..a12bcad --- /dev/null +++ b/test/schemas/vdv-first0_0.xml @@ -0,0 +1,33 @@ + + + + + 0836217462 + Being a Dog Is a Full-Time Job + + Charles M Schulz + 1922-11-26 + 2000-02-12 + + + Peppermint Patty + 1966-08-22 + bold, brash and tomboyish + + + Snoopy + 1950-10-04 + extroverted beagle + + + Schroeder + 1951-05-30 + brought classical music to the Peanuts strip + + + Lucy + 1952-03-03 + bossy, crabby and selfish + + + diff --git a/test/schemas/vdv-first0_0.xsd b/test/schemas/vdv-first0_0.xsd new file mode 100644 index 0000000..e58bed2 --- /dev/null +++ b/test/schemas/vdv-first0_0.xsd @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/vdv-first1_0.xml b/test/schemas/vdv-first1_0.xml new file mode 100644 index 0000000..a12bcad --- /dev/null +++ b/test/schemas/vdv-first1_0.xml @@ -0,0 +1,33 @@ + + + + + 0836217462 + Being a Dog Is a Full-Time Job + + Charles M Schulz + 1922-11-26 + 2000-02-12 + + + Peppermint Patty + 1966-08-22 + bold, brash and tomboyish + + + Snoopy + 1950-10-04 + extroverted beagle + + + Schroeder + 1951-05-30 + brought classical music to the Peanuts strip + + + Lucy + 1952-03-03 + bossy, crabby and selfish + + + diff --git a/test/schemas/vdv-first1_0.xsd b/test/schemas/vdv-first1_0.xsd new file mode 100644 index 0000000..c0d6f27 --- /dev/null +++ b/test/schemas/vdv-first1_0.xsd @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/vdv-first2_0.xml b/test/schemas/vdv-first2_0.xml new file mode 100644 index 0000000..a12bcad --- /dev/null +++ b/test/schemas/vdv-first2_0.xml @@ -0,0 +1,33 @@ + + + + + 0836217462 + Being a Dog Is a Full-Time Job + + Charles M Schulz + 1922-11-26 + 2000-02-12 + + + Peppermint Patty + 1966-08-22 + bold, brash and tomboyish + + + Snoopy + 1950-10-04 + extroverted beagle + + + Schroeder + 1951-05-30 + brought classical music to the Peanuts strip + + + Lucy + 1952-03-03 + bossy, crabby and selfish + + + diff --git a/test/schemas/vdv-first2_0.xsd b/test/schemas/vdv-first2_0.xsd new file mode 100644 index 0000000..c768e97 --- /dev/null +++ b/test/schemas/vdv-first2_0.xsd @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/vdv-first3_0.xml b/test/schemas/vdv-first3_0.xml new file mode 100644 index 0000000..a12bcad --- /dev/null +++ b/test/schemas/vdv-first3_0.xml @@ -0,0 +1,33 @@ + + + + + 0836217462 + Being a Dog Is a Full-Time Job + + Charles M Schulz + 1922-11-26 + 2000-02-12 + + + Peppermint Patty + 1966-08-22 + bold, brash and tomboyish + + + Snoopy + 1950-10-04 + extroverted beagle + + + Schroeder + 1951-05-30 + brought classical music to the Peanuts strip + + + Lucy + 1952-03-03 + bossy, crabby and selfish + + + diff --git a/test/schemas/vdv-first3_0.xsd b/test/schemas/vdv-first3_0.xsd new file mode 100644 index 0000000..18b1459 --- /dev/null +++ b/test/schemas/vdv-first3_0.xsd @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/vdv-first4_0.xml b/test/schemas/vdv-first4_0.xml new file mode 100644 index 0000000..0b2d7e2 --- /dev/null +++ b/test/schemas/vdv-first4_0.xml @@ -0,0 +1,33 @@ + + + + + 0836217462 + Being a Dog Is a Full-Time Job + + Charles M Schulz + 1922-11-26 + 2000-02-12 + + + Peppermint Patty + 1966-08-22 + bold, brash and tomboyish + + + Snoopy + 1950-10-04 + extroverted beagle + + + Schroeder + 1951-05-30 + brought classical music to the Peanuts strip + + + Lucy + 1952-03-03 + bossy, crabby and selfish + + + diff --git a/test/schemas/vdv-first4_0.xsd b/test/schemas/vdv-first4_0.xsd new file mode 100755 index 0000000..9e8e236 --- /dev/null +++ b/test/schemas/vdv-first4_0.xsd @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/vdv-first4_1.xml b/test/schemas/vdv-first4_1.xml new file mode 100644 index 0000000..1259ef2 --- /dev/null +++ b/test/schemas/vdv-first4_1.xml @@ -0,0 +1,33 @@ + + + + + 0836217462 + Being a Dog Is a Full-Time Job + + Charles M Schulz + 1922-11-26 + 2000-02-12 + + + Peppermint Patty + 196T6-08-22 + bold, brash and tomboyish + + + Snoopy + 1950-10-04 + extroverted beagle + + + Schroeder + 1951-05-30 + brought classical music to the Peanuts strip + + + Lucy + 1952-03-03 + bossy, crabby and selfish + + + diff --git a/test/schemas/vdv-first4_2.xml b/test/schemas/vdv-first4_2.xml new file mode 100644 index 0000000..c4acce6 --- /dev/null +++ b/test/schemas/vdv-first4_2.xml @@ -0,0 +1,33 @@ + + + + + 0836217462 + Being a Dog Is a Full-Time Job + + Charles M Schulz + 1922-11-26 + 2000-02-12 + + + Peppermint Patty + 1966-08-22 + bold, brash and tomboyish + + + Snoopy + 1950-10-04 + extroverted beagle + + + Schroeder + 2000-01-20Z + brought classical music to the Peanuts strip + + + Lucy + 1952-03-03 + bossy, crabby and selfish + + + diff --git a/test/schemas/vdv-first5_0.xml b/test/schemas/vdv-first5_0.xml new file mode 100644 index 0000000..7d4e662 --- /dev/null +++ b/test/schemas/vdv-first5_0.xml @@ -0,0 +1,33 @@ + + + + + 0836217462 + Being a Dog Is a Full-Time Job + + Charles M Schulz + 1922-11-26 + 2000-02-12 + + + Peppermint Patty + 1966-08-22 + bold, brash and tomboyish + + + Snoopy + 1950-10-04 + extroverted beagle + + + Schroeder + 1951-05-30 + brought classical music to the Peanuts strip + + + Lucy + 1952-03-03 + bossy, crabby and selfish + + + diff --git a/test/schemas/vdv-first5_0.xsd b/test/schemas/vdv-first5_0.xsd new file mode 100644 index 0000000..6d5ffaa --- /dev/null +++ b/test/schemas/vdv-first5_0.xsd @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/vdv-simpleTypes.xsd b/test/schemas/vdv-simpleTypes.xsd new file mode 100644 index 0000000..79f95fd --- /dev/null +++ b/test/schemas/vdv-simpleTypes.xsd @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schemas/xml.xsd b/test/schemas/xml.xsd new file mode 100644 index 0000000..e49fff8 --- /dev/null +++ b/test/schemas/xml.xsd @@ -0,0 +1,117 @@ + + + + + + + See http://www.w3.org/XML/1998/namespace.html and + http://www.w3.org/TR/REC-xml for information about this namespace. + + This schema document describes the XML namespace, in a form + suitable for import by other schema documents. + + Note that local names in this namespace are intended to be defined + only by the World Wide Web Consortium or its subgroups. The + following names are currently defined in this namespace and should + not be used with conflicting semantics by any Working Group, + specification, or document instance: + + base (as an attribute name): denotes an attribute whose value + provides a URI to be used as the base for interpreting any + relative URIs in the scope of the element on which it + appears; its value is inherited. This name is reserved + by virtue of its definition in the XML Base specification. + + lang (as an attribute name): denotes an attribute whose value + is a language code for the natural language of the content of + any element; its value is inherited. This name is reserved + by virtue of its definition in the XML specification. + + space (as an attribute name): denotes an attribute whose + value is a keyword indicating what whitespace processing + discipline is intended for the content of the element; its + value is inherited. This name is reserved by virtue of its + definition in the XML specification. + + Father (in any context at all): denotes Jon Bosak, the chair of + the original XML Working Group. This name is reserved by + the following decision of the W3C XML Plenary and + XML Coordination groups: + + In appreciation for his vision, leadership and dedication + the W3C XML Plenary on this 10th day of February, 2000 + reserves for Jon Bosak in perpetuity the XML name + xml:Father + + + + + This schema defines attributes and an attribute group + suitable for use by + schemas wishing to allow xml:base, xml:lang or xml:space attributes + on elements they define. + + To enable this, such a schema must import this schema + for the XML namespace, e.g. as follows: + <schema . . .> + . . . + <import namespace="http://www.w3.org/XML/1998/namespace" + schemaLocation="http://www.w3.org/2001/03/xml.xsd"/> + + Subsequently, qualified reference to any of the attributes + or the group defined below will have the desired effect, e.g. + + <type . . .> + . . . + <attributeGroup ref="xml:specialAttrs"/> + + will define a type which will schema-validate an instance + element with any of those attributes + + + + In keeping with the XML Schema WG's standard versioning + policy, this schema document will persist at + http://www.w3.org/2001/03/xml.xsd. + At the date of issue it can also be found at + http://www.w3.org/2001/xml.xsd. + The schema document at that URI may however change in the future, + in order to remain compatible with the latest version of XML Schema + itself. In other words, if the XML Schema namespace changes, the version + of this document at + http://www.w3.org/2001/xml.xsd will change + accordingly; the version at + http://www.w3.org/2001/03/xml.xsd will not change. + + + + + + In due course, we should install the relevant ISO 2- and 3-letter + codes as the enumerated possible values . . . + + + + + + + + + + + + + + + See http://www.w3.org/TR/xmlbase/ for + information about this attribute. + + + + + + + + + + diff --git a/test/schemas/xsd-list-itemType_0.xml b/test/schemas/xsd-list-itemType_0.xml new file mode 100644 index 0000000..a20e408 --- /dev/null +++ b/test/schemas/xsd-list-itemType_0.xml @@ -0,0 +1,3 @@ + + +tea for two and two for tea diff --git a/test/schemas/xsd-list-itemType_0.xsd b/test/schemas/xsd-list-itemType_0.xsd new file mode 100644 index 0000000..b96dbb4 --- /dev/null +++ b/test/schemas/xsd-list-itemType_0.xsd @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/schemas/xsd-simpleType-varieties_0.xml b/test/schemas/xsd-simpleType-varieties_0.xml new file mode 100644 index 0000000..83a0b2a --- /dev/null +++ b/test/schemas/xsd-simpleType-varieties_0.xml @@ -0,0 +1,8 @@ + + + + fajita + pub pub + + + diff --git a/test/schemas/xsd-simpleType-varieties_0.xsd b/test/schemas/xsd-simpleType-varieties_0.xsd new file mode 100644 index 0000000..8a752e2 --- /dev/null +++ b/test/schemas/xsd-simpleType-varieties_0.xsd @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/schematron/zvon1.sct b/test/schematron/zvon1.sct new file mode 100644 index 0000000..36179dd --- /dev/null +++ b/test/schematron/zvon1.sct @@ -0,0 +1,23 @@ + + + + BBB element is missing. + BBB element is present. + AAA misses attribute name. + AAA contains attribute name. + + + + + BBB element is present. + AAA contains attribute name. + + + + + BBB element is missing. + AAA misses attribute name. + + + + diff --git a/test/schematron/zvon10.sct b/test/schematron/zvon10.sct new file mode 100644 index 0000000..783fac5 --- /dev/null +++ b/test/schematron/zvon10.sct @@ -0,0 +1,15 @@ + + + + BBB element is not present + CCC element is not present + + + + + BBB element is not present + CCC element is not present + There is an extra element + + + diff --git a/test/schematron/zvon10_0.xml b/test/schematron/zvon10_0.xml new file mode 100644 index 0000000..d3ac388 --- /dev/null +++ b/test/schematron/zvon10_0.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/schematron/zvon10_1.xml b/test/schematron/zvon10_1.xml new file mode 100644 index 0000000..ba9bdca --- /dev/null +++ b/test/schematron/zvon10_1.xml @@ -0,0 +1,4 @@ + + + + diff --git a/test/schematron/zvon11.sct b/test/schematron/zvon11.sct new file mode 100644 index 0000000..79b01fd --- /dev/null +++ b/test/schematron/zvon11.sct @@ -0,0 +1,8 @@ + + + + The element must not have an isolated aaa attribute + The element must not have an isolated bbb attribute + + + diff --git a/test/schematron/zvon11_0.xml b/test/schematron/zvon11_0.xml new file mode 100644 index 0000000..f065eed --- /dev/null +++ b/test/schematron/zvon11_0.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/schematron/zvon11_1.xml b/test/schematron/zvon11_1.xml new file mode 100644 index 0000000..c889933 --- /dev/null +++ b/test/schematron/zvon11_1.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/schematron/zvon11_2.xml b/test/schematron/zvon11_2.xml new file mode 100644 index 0000000..26e1221 --- /dev/null +++ b/test/schematron/zvon11_2.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/schematron/zvon11_3.xml b/test/schematron/zvon11_3.xml new file mode 100644 index 0000000..d3ac388 --- /dev/null +++ b/test/schematron/zvon11_3.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/schematron/zvon12.sct b/test/schematron/zvon12.sct new file mode 100644 index 0000000..049b125 --- /dev/null +++ b/test/schematron/zvon12.sct @@ -0,0 +1,8 @@ + + + + There is not enough letters in the abbreviation + There is too much letters in the abbreviation + + + diff --git a/test/schematron/zvon12_0.xml b/test/schematron/zvon12_0.xml new file mode 100644 index 0000000..d5f28d5 --- /dev/null +++ b/test/schematron/zvon12_0.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/schematron/zvon12_1.xml b/test/schematron/zvon12_1.xml new file mode 100644 index 0000000..3507f6b --- /dev/null +++ b/test/schematron/zvon12_1.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/schematron/zvon12_2.xml b/test/schematron/zvon12_2.xml new file mode 100644 index 0000000..e0d81af --- /dev/null +++ b/test/schematron/zvon12_2.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/schematron/zvon13.sct b/test/schematron/zvon13.sct new file mode 100644 index 0000000..cd433e0 --- /dev/null +++ b/test/schematron/zvon13.sct @@ -0,0 +1,7 @@ + + + + The values do not sum to 100%. + + + diff --git a/test/schematron/zvon13_0.xml b/test/schematron/zvon13_0.xml new file mode 100644 index 0000000..52619c3 --- /dev/null +++ b/test/schematron/zvon13_0.xml @@ -0,0 +1,6 @@ + + 20 + 30 + 10 + 50 + diff --git a/test/schematron/zvon13_1.xml b/test/schematron/zvon13_1.xml new file mode 100644 index 0000000..8fb7368 --- /dev/null +++ b/test/schematron/zvon13_1.xml @@ -0,0 +1,5 @@ + + 20 + 10 + 50 + diff --git a/test/schematron/zvon13_2.xml b/test/schematron/zvon13_2.xml new file mode 100644 index 0000000..af4d76a --- /dev/null +++ b/test/schematron/zvon13_2.xml @@ -0,0 +1,5 @@ + + 20 + 30 + 50 + diff --git a/test/schematron/zvon14.sct b/test/schematron/zvon14.sct new file mode 100644 index 0000000..f98b6d8 --- /dev/null +++ b/test/schematron/zvon14.sct @@ -0,0 +1,10 @@ + + + + Element CCC must not be a child of element + + + + + + diff --git a/test/schematron/zvon14_0.xml b/test/schematron/zvon14_0.xml new file mode 100644 index 0000000..b627043 --- /dev/null +++ b/test/schematron/zvon14_0.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/test/schematron/zvon15.sct b/test/schematron/zvon15.sct new file mode 100644 index 0000000..7da5d86 --- /dev/null +++ b/test/schematron/zvon15.sct @@ -0,0 +1,11 @@ + + + + Attribute + is forbidden in element + + + + + + diff --git a/test/schematron/zvon15_0.xml b/test/schematron/zvon15_0.xml new file mode 100644 index 0000000..390aedb --- /dev/null +++ b/test/schematron/zvon15_0.xml @@ -0,0 +1,4 @@ + + + + diff --git a/test/schematron/zvon1_0.xml b/test/schematron/zvon1_0.xml new file mode 100644 index 0000000..d3ac388 --- /dev/null +++ b/test/schematron/zvon1_0.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/schematron/zvon1_1.xml b/test/schematron/zvon1_1.xml new file mode 100644 index 0000000..861c90a --- /dev/null +++ b/test/schematron/zvon1_1.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/schematron/zvon2.sct b/test/schematron/zvon2.sct new file mode 100644 index 0000000..56974a0 --- /dev/null +++ b/test/schematron/zvon2.sct @@ -0,0 +1,9 @@ + + + + Text in element + must not contain character @ + + + + diff --git a/test/schematron/zvon2_0.xml b/test/schematron/zvon2_0.xml new file mode 100644 index 0000000..832c507 --- /dev/null +++ b/test/schematron/zvon2_0.xml @@ -0,0 +1,4 @@ + + bbbb + cccc + diff --git a/test/schematron/zvon2_1.xml b/test/schematron/zvon2_1.xml new file mode 100644 index 0000000..6ade195 --- /dev/null +++ b/test/schematron/zvon2_1.xml @@ -0,0 +1,4 @@ + + bbbb@bbb.com + ccc@ccc.com + diff --git a/test/schematron/zvon2_2.xml b/test/schematron/zvon2_2.xml new file mode 100644 index 0000000..812d44a --- /dev/null +++ b/test/schematron/zvon2_2.xml @@ -0,0 +1,5 @@ + + bbbb + cccc + aaa@aaa.net + diff --git a/test/schematron/zvon3.sct b/test/schematron/zvon3.sct new file mode 100644 index 0000000..f75b67b --- /dev/null +++ b/test/schematron/zvon3.sct @@ -0,0 +1,8 @@ + + + + attribute name is not present + attribute name is present + + + diff --git a/test/schematron/zvon3_0.xml b/test/schematron/zvon3_0.xml new file mode 100644 index 0000000..ec8dc43 --- /dev/null +++ b/test/schematron/zvon3_0.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/test/schematron/zvon4.sct b/test/schematron/zvon4.sct new file mode 100644 index 0000000..0b8a4e1 --- /dev/null +++ b/test/schematron/zvon4.sct @@ -0,0 +1,10 @@ + + + + Root element is + , not AAA + + Root element is AAA + + + diff --git a/test/schematron/zvon4_0.xml b/test/schematron/zvon4_0.xml new file mode 100644 index 0000000..4ba332e --- /dev/null +++ b/test/schematron/zvon4_0.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/test/schematron/zvon4_1.xml b/test/schematron/zvon4_1.xml new file mode 100644 index 0000000..5becbcf --- /dev/null +++ b/test/schematron/zvon4_1.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/test/schematron/zvon5.sct b/test/schematron/zvon5.sct new file mode 100644 index 0000000..36cb8bb --- /dev/null +++ b/test/schematron/zvon5.sct @@ -0,0 +1,12 @@ + + + + Source contains an empty element CCC + [1]An element CCC does not contain any text + [2]An element CCC does not contain any text + [1]An element CCC does not contain any child element + [2]An element CCC does not contain any child element + + + + diff --git a/test/schematron/zvon5_0.xml b/test/schematron/zvon5_0.xml new file mode 100644 index 0000000..dc7c36b --- /dev/null +++ b/test/schematron/zvon5_0.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/test/schematron/zvon5_1.xml b/test/schematron/zvon5_1.xml new file mode 100644 index 0000000..6915fa6 --- /dev/null +++ b/test/schematron/zvon5_1.xml @@ -0,0 +1,5 @@ + + + I am CCC element + + diff --git a/test/schematron/zvon5_2.xml b/test/schematron/zvon5_2.xml new file mode 100644 index 0000000..2a11400 --- /dev/null +++ b/test/schematron/zvon5_2.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/test/schematron/zvon6.sct b/test/schematron/zvon6.sct new file mode 100644 index 0000000..678ae58 --- /dev/null +++ b/test/schematron/zvon6.sct @@ -0,0 +1,8 @@ + + + + O.K. + The AAA value is not permitted. + + + diff --git a/test/schematron/zvon6_0.xml b/test/schematron/zvon6_0.xml new file mode 100644 index 0000000..a3efb70 --- /dev/null +++ b/test/schematron/zvon6_0.xml @@ -0,0 +1,3 @@ + +aaa + diff --git a/test/schematron/zvon6_1.xml b/test/schematron/zvon6_1.xml new file mode 100644 index 0000000..7d7daf8 --- /dev/null +++ b/test/schematron/zvon6_1.xml @@ -0,0 +1,3 @@ + + bbb + diff --git a/test/schematron/zvon6_2.xml b/test/schematron/zvon6_2.xml new file mode 100644 index 0000000..555f24d --- /dev/null +++ b/test/schematron/zvon6_2.xml @@ -0,0 +1,3 @@ + + ccc + diff --git a/test/schematron/zvon7.sct b/test/schematron/zvon7.sct new file mode 100644 index 0000000..a22a89e --- /dev/null +++ b/test/schematron/zvon7.sct @@ -0,0 +1,9 @@ + + + + O.K. + The AAA value is not an integer. + + + + diff --git a/test/schematron/zvon7_0.xml b/test/schematron/zvon7_0.xml new file mode 100644 index 0000000..a3efb70 --- /dev/null +++ b/test/schematron/zvon7_0.xml @@ -0,0 +1,3 @@ + +aaa + diff --git a/test/schematron/zvon7_1.xml b/test/schematron/zvon7_1.xml new file mode 100644 index 0000000..8da0ae5 --- /dev/null +++ b/test/schematron/zvon7_1.xml @@ -0,0 +1,3 @@ + + 12.234 + diff --git a/test/schematron/zvon7_2.xml b/test/schematron/zvon7_2.xml new file mode 100644 index 0000000..e27cfe7 --- /dev/null +++ b/test/schematron/zvon7_2.xml @@ -0,0 +1,3 @@ + +45 + diff --git a/test/schematron/zvon7_3.xml b/test/schematron/zvon7_3.xml new file mode 100644 index 0000000..c17295a --- /dev/null +++ b/test/schematron/zvon7_3.xml @@ -0,0 +1,3 @@ + +0 + diff --git a/test/schematron/zvon7_4.xml b/test/schematron/zvon7_4.xml new file mode 100644 index 0000000..4f34fbe --- /dev/null +++ b/test/schematron/zvon7_4.xml @@ -0,0 +1,3 @@ + +-45 + diff --git a/test/schematron/zvon8.sct b/test/schematron/zvon8.sct new file mode 100644 index 0000000..5641ecd --- /dev/null +++ b/test/schematron/zvon8.sct @@ -0,0 +1,10 @@ + + + + O.K. + Some AAA are missing + Some BBB are missing + + + + diff --git a/test/schematron/zvon8_0.xml b/test/schematron/zvon8_0.xml new file mode 100644 index 0000000..b6739bb --- /dev/null +++ b/test/schematron/zvon8_0.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/test/schematron/zvon8_1.xml b/test/schematron/zvon8_1.xml new file mode 100644 index 0000000..196dbe2 --- /dev/null +++ b/test/schematron/zvon8_1.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/test/schematron/zvon8_2.xml b/test/schematron/zvon8_2.xml new file mode 100644 index 0000000..f85de82 --- /dev/null +++ b/test/schematron/zvon8_2.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/test/schematron/zvon9.sct b/test/schematron/zvon9.sct new file mode 100644 index 0000000..6f67877 --- /dev/null +++ b/test/schematron/zvon9.sct @@ -0,0 +1,9 @@ + + + + Attribute id is missing + Attribute id is used in wrong context + + + + diff --git a/test/schematron/zvon9_0.xml b/test/schematron/zvon9_0.xml new file mode 100644 index 0000000..d871519 --- /dev/null +++ b/test/schematron/zvon9_0.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/test/schematron/zvon9_1.xml b/test/schematron/zvon9_1.xml new file mode 100644 index 0000000..5c1c1bf --- /dev/null +++ b/test/schematron/zvon9_1.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/test/schematron/zvon9_2.xml b/test/schematron/zvon9_2.xml new file mode 100644 index 0000000..7e09fab --- /dev/null +++ b/test/schematron/zvon9_2.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/test/scripts/base.script b/test/scripts/base.script new file mode 100644 index 0000000..1fc3f57 --- /dev/null +++ b/test/scripts/base.script @@ -0,0 +1,7 @@ +base +cd //e +base +cd .//img +base +exit + diff --git a/test/scripts/base.xml b/test/scripts/base.xml new file mode 100644 index 0000000..81f71cb --- /dev/null +++ b/test/scripts/base.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/test/scripts/base2.script b/test/scripts/base2.script new file mode 100644 index 0000000..1fc3f57 --- /dev/null +++ b/test/scripts/base2.script @@ -0,0 +1,7 @@ +base +cd //e +base +cd .//img +base +exit + diff --git a/test/scripts/base2.xml b/test/scripts/base2.xml new file mode 100644 index 0000000..0e92a10 --- /dev/null +++ b/test/scripts/base2.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/test/scripts/set1.script b/test/scripts/set1.script new file mode 100644 index 0000000..e9a3e69 --- /dev/null +++ b/test/scripts/set1.script @@ -0,0 +1,2 @@ +set +save - diff --git a/test/scripts/set1.xml b/test/scripts/set1.xml new file mode 100644 index 0000000..dcd0694 --- /dev/null +++ b/test/scripts/set1.xml @@ -0,0 +1 @@ +foo diff --git a/test/scripts/set3.script b/test/scripts/set3.script new file mode 100644 index 0000000..e99745a --- /dev/null +++ b/test/scripts/set3.script @@ -0,0 +1,5 @@ +cd * +xpath //*[namespace-uri()="bar"] +set +xpath //*[namespace-uri()="bar"] +save - diff --git a/test/scripts/set3.xml b/test/scripts/set3.xml new file mode 100644 index 0000000..211b4e5 --- /dev/null +++ b/test/scripts/set3.xml @@ -0,0 +1 @@ +foo diff --git a/test/scripts/set4.script b/test/scripts/set4.script new file mode 100644 index 0000000..39d64cb --- /dev/null +++ b/test/scripts/set4.script @@ -0,0 +1,4 @@ +cd a/b +set +xpath //*[namespace-uri()="foo"] +save - diff --git a/test/scripts/set4.xml b/test/scripts/set4.xml new file mode 100644 index 0000000..1ba4401 --- /dev/null +++ b/test/scripts/set4.xml @@ -0,0 +1 @@ + diff --git a/test/slashdot.rdf b/test/slashdot.rdf new file mode 100644 index 0000000..a7a624c --- /dev/null +++ b/test/slashdot.rdf @@ -0,0 +1,66 @@ + + + + Slashdot:News for Nerds. Stuff that Matters. + http://slashdot.org/ + News for Nerds. Stuff that Matters + + + + Slashdot + http://slashdot.org/images/slashdotlg.gif + http://slashdot.org + + + + 100 Mbit/s on Fibre to the home + http://slashdot.org/articles/99/06/06/1440211.shtml + + + + Gimp 1.2 Preview + http://slashdot.org/articles/99/06/06/1438246.shtml + + + + Sony's AIBO robot Sold Out + http://slashdot.org/articles/99/06/06/1432256.shtml + + + + Ask Slashdot: Another Word for "Hacker"? + http://slashdot.org/askslashdot/99/06/05/1815225.shtml + + + + Corel Linux FAQ + http://slashdot.org/articles/99/06/05/1842218.shtml + + + + Upside downsides MP3.COM. + http://slashdot.org/articles/99/06/05/1558210.shtml + + + + 2 Terabits of Bandwidth + http://slashdot.org/articles/99/06/05/1554258.shtml + + + + Suppression of cold fusion research? + http://slashdot.org/articles/99/06/04/2313200.shtml + + + + California Gov. Halts Wage Info Sale + http://slashdot.org/articles/99/06/04/235256.shtml + + + + Red Hat Announces IPO + http://slashdot.org/articles/99/06/04/0849207.shtml + + \ No newline at end of file diff --git a/test/slashdot.xml b/test/slashdot.xml new file mode 100644 index 0000000..f8e79e6 --- /dev/null +++ b/test/slashdot.xml @@ -0,0 +1,112 @@ + + + 100 Mbit/s on Fibre to the home + http://slashdot.org/articles/99/06/06/1440211.shtml + + CmdrTaco + wouldn't-it-be-nice + internet + 20 +
      articles
      + topicinternet.jpg +
      + + Gimp 1.2 Preview + http://slashdot.org/articles/99/06/06/1438246.shtml + + CmdrTaco + stuff-to-read + gimp + 12 +
      articles
      + topicgimp.gif +
      + + Sony's AIBO robot Sold Out + http://slashdot.org/articles/99/06/06/1432256.shtml + + CmdrTaco + stuff-to-see + tech + 10 +
      articles
      + topictech2.jpg +
      + + Ask Slashdot: Another Word for "Hacker"? + http://slashdot.org/askslashdot/99/06/05/1815225.shtml + + Cliff + hacker-vs-cracker + news + 385 +
      askslashdot
      + topicnews.gif +
      + + Corel Linux FAQ + http://slashdot.org/articles/99/06/05/1842218.shtml + + CmdrTaco + stuff-to-read + corel + 164 +
      articles
      + topiccorel.gif +
      + + Upside downsides MP3.COM. + http://slashdot.org/articles/99/06/05/1558210.shtml + + CmdrTaco + stuff-to-think-about + music + 48 +
      articles
      + topicmusic.gif +
      + + 2 Terabits of Bandwidth + http://slashdot.org/articles/99/06/05/1554258.shtml + + CmdrTaco + faster-porn + internet + 66 +
      articles
      + topicinternet.jpg +
      + + Suppression of cold fusion research? + http://slashdot.org/articles/99/06/04/2313200.shtml + + Hemos + possibly-probably + science + 217 +
      articles
      + topicscience.gif +
      + + California Gov. Halts Wage Info Sale + http://slashdot.org/articles/99/06/04/235256.shtml + + Hemos + woo-hoo! + usa + 16 +
      articles
      + topicus.gif +
      + + Red Hat Announces IPO + http://slashdot.org/articles/99/06/04/0849207.shtml + + Justin + details-sketchy + redhat + 155 +
      articles
      + topicredhat.gif +
      +
      diff --git a/test/slashdot16.xml b/test/slashdot16.xml new file mode 100644 index 0000000..f6a7f2a Binary files /dev/null and b/test/slashdot16.xml differ diff --git a/test/svg1 b/test/svg1 new file mode 100644 index 0000000..53bf38f --- /dev/null +++ b/test/svg1 @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/svg2 b/test/svg2 new file mode 100644 index 0000000..aa1adac --- /dev/null +++ b/test/svg2 @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + Java Font definition:Dialog 0 + + + Java Font definition:Helvetica 0 + + + + this is text + + + + Java Font definition:Dialog 0 + + + Java Font definition:Helvetica 700 + + + + sadfsadfsad + + + + + + + + + + + Java Font definition:Dialog 700 + + + Java Font definition:Dialog 700 + + + diff --git a/test/svg3 b/test/svg3 new file mode 100644 index 0000000..9b0de5a --- /dev/null +++ b/test/svg3 @@ -0,0 +1,722 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/threads/a.example.org.xml b/test/threads/a.example.org.xml new file mode 100644 index 0000000..3de2c45 --- /dev/null +++ b/test/threads/a.example.org.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/test/threads/a/a.dtd b/test/threads/a/a.dtd new file mode 100644 index 0000000..b298085 --- /dev/null +++ b/test/threads/a/a.dtd @@ -0,0 +1 @@ + diff --git a/test/threads/abc.dtd b/test/threads/abc.dtd new file mode 100644 index 0000000..b7a08fe --- /dev/null +++ b/test/threads/abc.dtd @@ -0,0 +1,7 @@ + +%a; + +%b; + +%c; + diff --git a/test/threads/abc.xml b/test/threads/abc.xml new file mode 100644 index 0000000..ee98144 --- /dev/null +++ b/test/threads/abc.xml @@ -0,0 +1,7 @@ + + + Let's use predefined entites & < > + Let's use a DTD defined entity &bent; + + + diff --git a/test/threads/acb.dtd b/test/threads/acb.dtd new file mode 100644 index 0000000..9fc77c5 --- /dev/null +++ b/test/threads/acb.dtd @@ -0,0 +1,7 @@ + +%a; + +%c; + +%b; + diff --git a/test/threads/acb.xml b/test/threads/acb.xml new file mode 100644 index 0000000..a14e362 --- /dev/null +++ b/test/threads/acb.xml @@ -0,0 +1,7 @@ + + + Let's use predefined entites & < > + + Let's use a DTD defined entity &bent; + + diff --git a/test/threads/b.example.org.xml b/test/threads/b.example.org.xml new file mode 100644 index 0000000..2dfe5fc --- /dev/null +++ b/test/threads/b.example.org.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/test/threads/b/b.dtd b/test/threads/b/b.dtd new file mode 100644 index 0000000..59de88e --- /dev/null +++ b/test/threads/b/b.dtd @@ -0,0 +1,2 @@ + + diff --git a/test/threads/bac.dtd b/test/threads/bac.dtd new file mode 100644 index 0000000..d36a4e6 --- /dev/null +++ b/test/threads/bac.dtd @@ -0,0 +1,7 @@ + +%b; + +%a; + +%c; + diff --git a/test/threads/bac.xml b/test/threads/bac.xml new file mode 100644 index 0000000..63d6efc --- /dev/null +++ b/test/threads/bac.xml @@ -0,0 +1,7 @@ + + + Let's use a DTD defined entity &bent; + Let's use predefined entites & < > + + + diff --git a/test/threads/bca.dtd b/test/threads/bca.dtd new file mode 100644 index 0000000..239192a --- /dev/null +++ b/test/threads/bca.dtd @@ -0,0 +1,7 @@ + +%b; + +%c; + +%a; + diff --git a/test/threads/bca.xml b/test/threads/bca.xml new file mode 100644 index 0000000..ce60d01 --- /dev/null +++ b/test/threads/bca.xml @@ -0,0 +1,7 @@ + + + Let's use a DTD defined entity &bent; + + Let's use predefined entites & < > + + diff --git a/test/threads/c.example.org.xml b/test/threads/c.example.org.xml new file mode 100644 index 0000000..41348b1 --- /dev/null +++ b/test/threads/c.example.org.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/test/threads/c/c.dtd b/test/threads/c/c.dtd new file mode 100644 index 0000000..7248a5b --- /dev/null +++ b/test/threads/c/c.dtd @@ -0,0 +1 @@ + diff --git a/test/threads/cab.dtd b/test/threads/cab.dtd new file mode 100644 index 0000000..0a62e91 --- /dev/null +++ b/test/threads/cab.dtd @@ -0,0 +1,7 @@ + +%c; + +%a; + +%b; + diff --git a/test/threads/cab.xml b/test/threads/cab.xml new file mode 100644 index 0000000..a1631d0 --- /dev/null +++ b/test/threads/cab.xml @@ -0,0 +1,7 @@ + + + + Let's use predefined entites & < > + Let's use a DTD defined entity &bent; + + diff --git a/test/threads/cba.dtd b/test/threads/cba.dtd new file mode 100644 index 0000000..71b96b4 --- /dev/null +++ b/test/threads/cba.dtd @@ -0,0 +1,7 @@ + +%c; + +%b; + +%a; + diff --git a/test/threads/cba.xml b/test/threads/cba.xml new file mode 100644 index 0000000..78708e4 --- /dev/null +++ b/test/threads/cba.xml @@ -0,0 +1,7 @@ + + + + Let's use a DTD defined entity &bent; + Let's use predefined entites & < > + + diff --git a/test/threads/complex.xml b/test/threads/complex.xml new file mode 100644 index 0000000..0174e90 --- /dev/null +++ b/test/threads/complex.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/test/threads/example.org.xml b/test/threads/example.org.xml new file mode 100644 index 0000000..21c2602 --- /dev/null +++ b/test/threads/example.org.xml @@ -0,0 +1,9 @@ + + + + + + + diff --git a/test/threads/invalid.xml b/test/threads/invalid.xml new file mode 100644 index 0000000..9123275 --- /dev/null +++ b/test/threads/invalid.xml @@ -0,0 +1,2 @@ + + diff --git a/test/title.xml b/test/title.xml new file mode 100644 index 0000000..1b3fe07 --- /dev/null +++ b/test/title.xml @@ -0,0 +1,2 @@ + +my title diff --git a/test/tstblanks.xml b/test/tstblanks.xml new file mode 100644 index 0000000..7c5a23d --- /dev/null +++ b/test/tstblanks.xml @@ -0,0 +1,495 @@ + +content diff --git a/test/utf16bebom.xml b/test/utf16bebom.xml new file mode 100644 index 0000000..8c402e0 Binary files /dev/null and b/test/utf16bebom.xml differ diff --git a/test/utf16bom.xml b/test/utf16bom.xml new file mode 100644 index 0000000..1916dc1 Binary files /dev/null and b/test/utf16bom.xml differ diff --git a/test/utf16lebom.xml b/test/utf16lebom.xml new file mode 100644 index 0000000..933640c Binary files /dev/null and b/test/utf16lebom.xml differ diff --git a/test/utf8bom.xml b/test/utf8bom.xml new file mode 100644 index 0000000..b4cdff0 --- /dev/null +++ b/test/utf8bom.xml @@ -0,0 +1 @@ + diff --git a/test/valid/127772.xml b/test/valid/127772.xml new file mode 100644 index 0000000..ba39194 --- /dev/null +++ b/test/valid/127772.xml @@ -0,0 +1,7 @@ + + + + + b text + + diff --git a/test/valid/REC-xml-19980210.xml b/test/valid/REC-xml-19980210.xml new file mode 100644 index 0000000..4e93fb3 --- /dev/null +++ b/test/valid/REC-xml-19980210.xml @@ -0,0 +1,4197 @@ + + + + + + + + + + + + + + + + +"> + +'"> + + + + + + + + + +amp, +lt, +gt, +apos, +quot"> + + + + + +]> + + + + + +
      +Extensible Markup Language (XML) 1.0 + +REC-xml-&iso6.doc.date; +W3C Recommendation +&draft.day;&draft.month;&draft.year; + + + +http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date; + +http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.xml + +http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.html + +http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.pdf + +http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.ps + + + +http://www.w3.org/TR/REC-xml + + + +http://www.w3.org/TR/PR-xml-971208 + + + +Tim Bray +Textuality and Netscape +tbray@textuality.com +Jean Paoli +Microsoft +jeanpa@microsoft.com +C. M. Sperberg-McQueen +University of Illinois at Chicago +cmsmcq@uic.edu + + +

      The Extensible Markup Language (XML) is a subset of +SGML that is completely described in this document. Its goal is to +enable generic SGML to be served, received, and processed on the Web +in the way that is now possible with HTML. XML has been designed for +ease of implementation and for interoperability with both SGML and +HTML.

      +
      + +

      This document has been reviewed by W3C Members and +other interested parties and has been endorsed by the +Director as a W3C Recommendation. It is a stable +document and may be used as reference material or cited +as a normative reference from another document. W3C's +role in making the Recommendation is to draw attention +to the specification and to promote its widespread +deployment. This enhances the functionality and +interoperability of the Web.

      +

      +This document specifies a syntax created by subsetting an existing, +widely used international text processing standard (Standard +Generalized Markup Language, ISO 8879:1986(E) as amended and +corrected) for use on the World Wide Web. It is a product of the W3C +XML Activity, details of which can be found at http://www.w3.org/XML. A list of +current W3C Recommendations and other technical documents can be found +at http://www.w3.org/TR. +

      +

      This specification uses the term URI, which is defined by , a work in progress expected to update and . +

      +

      The list of known errors in this specification is +available at +http://www.w3.org/XML/xml-19980210-errata.

      +

      Please report errors in this document to +xml-editor@w3.org. +

      +
      + + + +

      Chicago, Vancouver, Mountain View, et al.: +World-Wide Web Consortium, XML Working Group, 1996, 1997.

      +
      + +

      Created in electronic form.

      +
      + +English +Extended Backus-Naur Form (formal grammar) + + + +1997-12-03 : CMSMcQ : yet further changes +1997-12-02 : TB : further changes (see TB to XML WG, +2 December 1997) +1997-12-02 : CMSMcQ : deal with as many corrections and +comments from the proofreaders as possible: +entify hard-coded document date in pubdate element, +change expansion of entity WebSGML, +update status description as per Dan Connolly (am not sure +about refernece to Berners-Lee et al.), +add 'The' to abstract as per WG decision, +move Relationship to Existing Standards to back matter and +combine with References, +re-order back matter so normative appendices come first, +re-tag back matter so informative appendices are tagged informdiv1, +remove XXX XXX from list of 'normative' specs in prose, +move some references from Other References to Normative References, +add RFC 1738, 1808, and 2141 to Other References (they are not +normative since we do not require the processor to enforce any +rules based on them), +add reference to 'Fielding draft' (Berners-Lee et al.), +move notation section to end of body, +drop URIchar non-terminal and use SkipLit instead, +lose stray reference to defunct nonterminal 'markupdecls', +move reference to Aho et al. into appendix (Tim's right), +add prose note saying that hash marks and fragment identifiers are +NOT part of the URI formally speaking, and are NOT legal in +system identifiers (processor 'may' signal an error). +Work through: +Tim Bray reacting to James Clark, +Tim Bray on his own, +Eve Maler, + +NOT DONE YET: +change binary / text to unparsed / parsed. +handle James's suggestion about < in attriubte values +uppercase hex characters, +namechar list, + +1997-12-01 : JB : add some column-width parameters +1997-12-01 : CMSMcQ : begin round of changes to incorporate +recent WG decisions and other corrections: +binding sources of character encoding info (27 Aug / 3 Sept), +correct wording of Faust quotation (restore dropped line), +drop SDD from EncodingDecl, +change text at version number 1.0, +drop misleading (wrong!) sentence about ignorables and extenders, +modify definition of PCData to make bar on msc grammatical, +change grammar's handling of internal subset (drop non-terminal markupdecls), +change definition of includeSect to allow conditional sections, +add integral-declaration constraint on internal subset, +drop misleading / dangerous sentence about relationship of +entities with system storage objects, +change table body tag to htbody as per EM change to DTD, +add rule about space normalization in public identifiers, +add description of how to generate our name-space rules from +Unicode character database (needs further work!). + +1997-10-08 : TB : Removed %-constructs again, new rules +for PE appearance. +1997-10-01 : TB : Case-sensitive markup; cleaned up +element-type defs, lotsa little edits for style +1997-09-25 : TB : Change to elm's new DTD, with +substantial detail cleanup as a side-effect +1997-07-24 : CMSMcQ : correct error (lost *) in definition +of ignoreSectContents (thanks to Makoto Murata) +Allow all empty elements to have end-tags, consistent with +SGML TC (as per JJC). +1997-07-23 : CMSMcQ : pre-emptive strike on pending corrections: +introduce the term 'empty-element tag', note that all empty elements +may use it, and elements declared EMPTY must use it. +Add WFC requiring encoding decl to come first in an entity. +Redefine notations to point to PIs as well as binary entities. +Change autodetection table by removing bytes 3 and 4 from +examples with Byte Order Mark. +Add content model as a term and clarify that it applies to both +mixed and element content. + +1997-06-30 : CMSMcQ : change date, some cosmetic changes, +changes to productions for choice, seq, Mixed, NotationType, +Enumeration. Follow James Clark's suggestion and prohibit +conditional sections in internal subset. TO DO: simplify +production for ignored sections as a result, since we don't +need to worry about parsers which don't expand PErefs finding +a conditional section. +1997-06-29 : TB : various edits +1997-06-29 : CMSMcQ : further changes: +Suppress old FINAL EDIT comments and some dead material. +Revise occurrences of % in grammar to exploit Henry Thompson's pun, +especially markupdecl and attdef. +Remove RMD requirement relating to element content (?). + +1997-06-28 : CMSMcQ : Various changes for 1 July draft: +Add text for draconian error handling (introduce +the term Fatal Error). +RE deleta est (changing wording from +original announcement to restrict the requirement to validating +parsers). +Tag definition of validating processor and link to it. +Add colon as name character. +Change def of %operator. +Change standard definitions of lt, gt, amp. +Strip leading zeros from #x00nn forms. +1997-04-02 : CMSMcQ : final corrections of editorial errors +found in last night's proofreading. Reverse course once more on +well-formed: Webster's Second hyphenates it, and that's enough +for me. +1997-04-01 : CMSMcQ : corrections from JJC, EM, HT, and self +1997-03-31 : Tim Bray : many changes +1997-03-29 : CMSMcQ : some Henry Thompson (on entity handling), +some Charles Goldfarb, some ERB decisions (PE handling in miscellaneous +declarations. Changed Ident element to accept def attribute. +Allow normalization of Unicode characters. move def of systemliteral +into section on literals. +1997-03-28 : CMSMcQ : make as many corrections as possible, from +Terry Allen, Norbert Mikula, James Clark, Jon Bosak, Henry Thompson, +Paul Grosso, and self. Among other things: give in on "well formed" +(Terry is right), tentatively rename QuotedCData as AttValue +and Literal as EntityValue to be more informative, since attribute +values are the only place QuotedCData was used, and +vice versa for entity text and Literal. (I'd call it Entity Text, +but 8879 uses that name for both internal and external entities.) +1997-03-26 : CMSMcQ : resynch the two forks of this draft, reapply +my changes dated 03-20 and 03-21. Normalize old 'may not' to 'must not' +except in the one case where it meant 'may or may not'. +1997-03-21 : TB : massive changes on plane flight from Chicago +to Vancouver +1997-03-21 : CMSMcQ : correct as many reported errors as possible. + +1997-03-20 : CMSMcQ : correct typos listed in CMSMcQ hand copy of spec. +1997-03-20 : CMSMcQ : cosmetic changes preparatory to revision for +WWW conference April 1997: restore some of the internal entity +references (e.g. to docdate, etc.), change character xA0 to &nbsp; +and define nbsp as &#160;, and refill a lot of paragraphs for +legibility. +1996-11-12 : CMSMcQ : revise using Tim's edits: +Add list type of NUMBERED and change most lists either to +BULLETS or to NUMBERED. +Suppress QuotedNames, Names (not used). +Correct trivial-grammar doc type decl. +Rename 'marked section' as 'CDATA section' passim. +Also edits from James Clark: +Define the set of characters from which [^abc] subtracts. +Charref should use just [0-9] not Digit. +Location info needs cleaner treatment: remove? (ERB +question). +One example of a PI has wrong pic. +Clarify discussion of encoding names. +Encoding failure should lead to unspecified results; don't +prescribe error recovery. +Don't require exposure of entity boundaries. +Ignore white space in element content. +Reserve entity names of the form u-NNNN. +Clarify relative URLs. +And some of my own: +Correct productions for content model: model cannot +consist of a name, so "elements ::= cp" is no good. + +1996-11-11 : CMSMcQ : revise for style. +Add new rhs to entity declaration, for parameter entities. +1996-11-10 : CMSMcQ : revise for style. +Fix / complete section on names, characters. +Add sections on parameter entities, conditional sections. +Still to do: Add compatibility note on deterministic content models. +Finish stylistic revision. +1996-10-31 : TB : Add Entity Handling section +1996-10-30 : TB : Clean up term & termdef. Slip in +ERB decision re EMPTY. +1996-10-28 : TB : Change DTD. Implement some of Michael's +suggestions. Change comments back to //. Introduce language for +XML namespace reservation. Add section on white-space handling. +Lots more cleanup. +1996-10-24 : CMSMcQ : quick tweaks, implement some ERB +decisions. Characters are not integers. Comments are /* */ not //. +Add bibliographic refs to 10646, HyTime, Unicode. +Rename old Cdata as MsData since it's only seen +in marked sections. Call them attribute-value pairs not +name-value pairs, except once. Internal subset is optional, needs +'?'. Implied attributes should be signaled to the app, not +have values supplied by processor. +1996-10-16 : TB : track down & excise all DSD references; +introduce some EBNF for entity declarations. +1996-10-?? : TB : consistency check, fix up scraps so +they all parse, get formatter working, correct a few productions. +1996-10-10/11 : CMSMcQ : various maintenance, stylistic, and +organizational changes: +Replace a few literals with xmlpio and +pic entities, to make them consistent and ensure we can change pic +reliably when the ERB votes. +Drop paragraph on recognizers from notation section. +Add match, exact match to terminology. +Move old 2.2 XML Processors and Apps into intro. +Mention comments, PIs, and marked sections in discussion of +delimiter escaping. +Streamline discussion of doctype decl syntax. +Drop old section of 'PI syntax' for doctype decl, and add +section on partial-DTD summary PIs to end of Logical Structures +section. +Revise DSD syntax section to use Tim's subset-in-a-PI +mechanism. +1996-10-10 : TB : eliminate name recognizers (and more?) +1996-10-09 : CMSMcQ : revise for style, consistency through 2.3 +(Characters) +1996-10-09 : CMSMcQ : re-unite everything for convenience, +at least temporarily, and revise quickly +1996-10-08 : TB : first major homogenization pass +1996-10-08 : TB : turn "current" attribute on div type into +CDATA +1996-10-02 : TB : remould into skeleton + entities +1996-09-30 : CMSMcQ : add a few more sections prior to exchange + with Tim. +1996-09-20 : CMSMcQ : finish transcribing notes. +1996-09-19 : CMSMcQ : begin transcribing notes for draft. +1996-09-13 : CMSMcQ : made outline from notes of 09-06, +do some housekeeping + + +
      + + +Introduction +

      Extensible Markup Language, abbreviated XML, describes a class of +data objects called XML documents and +partially describes the behavior of +computer programs which process them. XML is an application profile or +restricted form of SGML, the Standard Generalized Markup +Language . +By construction, XML documents +are conforming SGML documents. +

      +

      XML documents are made up of storage units called entities, which contain either parsed +or unparsed data. +Parsed data is made up of characters, +some +of which form character data, +and some of which form markup. +Markup encodes a description of the document's storage layout and +logical structure. XML provides a mechanism to impose constraints on +the storage layout and logical structure.

      +

      A software module +called an XML processor is used to read XML documents +and provide access to their content and structure. It is assumed that an XML processor is +doing its work on behalf of another module, called the +application. This specification describes the +required behavior of an XML processor in terms of how it must read XML +data and the information it must provide to the application.

      + + +Origin and Goals +

      XML was developed by an XML Working Group (originally known as the +SGML Editorial Review Board) formed under the auspices of the World +Wide Web Consortium (W3C) in 1996. +It was chaired by Jon Bosak of Sun +Microsystems with the active participation of an XML Special +Interest Group (previously known as the SGML Working Group) also +organized by the W3C. The membership of the XML Working Group is given +in an appendix. Dan Connolly served as the WG's contact with the W3C. +

      +

      The design goals for XML are: +

      XML shall be straightforwardly usable over the +Internet.

      +

      XML shall support a wide variety of applications.

      +

      XML shall be compatible with SGML.

      +

      It shall be easy to write programs which process XML +documents.

      +

      The number of optional features in XML is to be kept to the +absolute minimum, ideally zero.

      +

      XML documents should be human-legible and reasonably +clear.

      +

      The XML design should be prepared quickly.

      +

      The design of XML shall be formal and concise.

      +

      XML documents shall be easy to create.

      +

      Terseness in XML markup is of minimal importance.

      +

      +

      This specification, +together with associated standards +(Unicode and ISO/IEC 10646 for characters, +Internet RFC 1766 for language identification tags, +ISO 639 for language name codes, and +ISO 3166 for country name codes), +provides all the information necessary to understand +XML Version &XML.version; +and construct computer programs to process it.

      +

      This version of the XML specification + +&doc.distribution;.

      + +
      + + + + + +Terminology + +

      The terminology used to describe XML documents is defined in the body of +this specification. +The terms defined in the following list are used in building those +definitions and in describing the actions of an XML processor: + + + +

      Conforming documents and XML +processors are permitted to but need not behave as +described.

      + + + +

      Conforming documents and XML processors +are required to behave as described; otherwise they are in error. + +

      +
      + + +

      A violation of the rules of this +specification; results are +undefined. Conforming software may detect and report an error and may +recover from it.

      +
      + + +

      An error +which a conforming XML processor +must detect and report to the application. +After encountering a fatal error, the +processor may continue +processing the data to search for further errors and may report such +errors to the application. In order to support correction of errors, +the processor may make unprocessed data from the document (with +intermingled character data and markup) available to the application. +Once a fatal error is detected, however, the processor must not +continue normal processing (i.e., it must not +continue to pass character data and information about the document's +logical structure to the application in the normal way). +

      +
      + + +

      Conforming software may or must (depending on the modal verb in the +sentence) behave as described; if it does, it must +provide users a means to enable or disable the behavior +described.

      +
      + + +

      A rule which applies to all +valid XML documents. +Violations of validity constraints are errors; they must, at user option, +be reported by +validating XML processors.

      +
      + + +

      A rule which applies to all well-formed XML documents. +Violations of well-formedness constraints are +fatal errors.

      +
      + + + +

      (Of strings or names:) +Two strings or names being compared must be identical. +Characters with multiple possible representations in ISO/IEC 10646 (e.g. +characters with +both precomposed and base+diacritic forms) match only if they have the +same representation in both strings. +At user option, processors may normalize such characters to +some canonical form. +No case folding is performed. +(Of strings and rules in the grammar:) +A string matches a grammatical production if it belongs to the +language generated by that production. +(Of content and content models:) +An element matches its declaration when it conforms +in the fashion described in the constraint +. + +

      +
      + + +

      A feature of +XML included solely to ensure that XML remains compatible with SGML. +

      +
      + + +

      A +non-binding recommendation included to increase the chances that XML +documents can be processed by the existing installed base of SGML +processors which predate the +&WebSGML;.

      +
      + +

      +
      + + +
      + + + +Documents + +

      +A data object is an +XML document if it is +well-formed, as +defined in this specification. +A well-formed XML document may in addition be +valid if it meets certain further +constraints.

      + +

      Each XML document has both a logical and a physical structure. +Physically, the document is composed of units called entities. An entity may refer to other entities to cause their +inclusion in the document. A document begins in a "root" or document entity. +Logically, the document is composed of declarations, elements, +comments, +character references, and +processing +instructions, all of which are indicated in the document by explicit +markup. +The logical and physical structures must nest properly, as described +in . +

      + + +Well-Formed XML Documents + +

      +A textual object is +a well-formed XML document if: + +

      Taken as a whole, it +matches the production labeled document.

      +

      It +meets all the well-formedness constraints given in this specification.

      +
      +

      Each of the parsed entities +which is referenced directly or indirectly within the document is +well-formed.

      +

      +

      + +Document +document +prolog +element +Misc* + +

      +

      Matching the document production +implies that: + +

      It contains one or more +elements.

      + + +

      There is exactly +one element, called the root, or document element, no +part of which appears in the content of any other element. +For all other elements, if the start-tag is in the content of another +element, the end-tag is in the content of the same element. More +simply stated, the elements, delimited by start- and end-tags, nest +properly within each other. +

      + +

      +

      As a consequence +of this, +for each non-root element +C in the document, there is one other element P +in the document such that +C is in the content of P, but is not in +the content of any other element that is in the content of +P. +P is referred to as the +parent of C, and C as a +child of P.

      + + +Characters + +

      A parsed entity contains +text, a sequence of +characters, +which may represent markup or character data. +A character +is an atomic unit of text as specified by +ISO/IEC 10646 . +Legal characters are tab, carriage return, line feed, and the legal +graphic characters of Unicode and ISO/IEC 10646. +The use of "compatibility characters", as defined in section 6.8 +of , is discouraged. + + +Character Range + +Char +#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] +| [#x10000-#x10FFFF] +any Unicode character, excluding the +surrogate blocks, FFFE, and FFFF. + + +

      + +

      The mechanism for encoding character code points into bit patterns may +vary from entity to entity. All XML processors must accept the UTF-8 +and UTF-16 encodings of 10646; the mechanisms for signaling which of +the two is in use, or for bringing other encodings into play, are +discussed later, in . +

      + +
      + + +Common Syntactic Constructs + +

      This section defines some symbols used widely in the grammar.

      +

      S (white space) consists of one or more space (#x20) +characters, carriage returns, line feeds, or tabs. + + +White Space + +S +(#x20 | #x9 | #xD | #xA)+ + + +

      +

      Characters are classified for convenience as letters, digits, or other +characters. Letters consist of an alphabetic or syllabic +base character possibly +followed by one or more combining characters, or of an ideographic +character. +Full definitions of the specific characters in each class +are given in .

      +

      A Name is a token +beginning with a letter or one of a few punctuation characters, and continuing +with letters, digits, hyphens, underscores, colons, or full stops, together +known as name characters. +Names beginning with the string "xml", or any string +which would match (('X'|'x') ('M'|'m') ('L'|'l')), are +reserved for standardization in this or future versions of this +specification. +

      + +

      The colon character within XML names is reserved for experimentation with +name spaces. +Its meaning is expected to be +standardized at some future point, at which point those documents +using the colon for experimental purposes may need to be updated. +(There is no guarantee that any name-space mechanism +adopted for XML will in fact use the colon as a name-space delimiter.) +In practice, this means that authors should not use the colon in XML +names except as part of name-space experiments, but that XML processors +should accept the colon as a name character.

      +
      +

      An +Nmtoken (name token) is any mixture of +name characters. + +Names and Tokens +NameChar +Letter +| Digit +| '.' | '-' | '_' | ':' +| CombiningChar +| Extender + +Name +(Letter | '_' | ':') +(NameChar)* +Names +Name +(S Name)* +Nmtoken +(NameChar)+ +Nmtokens +Nmtoken (S Nmtoken)* + +

      +

      Literal data is any quoted string not containing +the quotation mark used as a delimiter for that string. +Literals are used +for specifying the content of internal entities +(EntityValue), +the values of attributes (AttValue), +and external identifiers +(SystemLiteral). +Note that a SystemLiteral +can be parsed without scanning for markup. + +Literals +EntityValue +'"' +([^%&"] +| PEReference +| Reference)* +'"' + +|  +"'" +([^%&'] +| PEReference +| Reference)* +"'" + +AttValue +'"' +([^<&"] +| Reference)* +'"' + +|  +"'" +([^<&'] +| Reference)* +"'" + +SystemLiteral +('"' [^"]* '"') | ("'" [^']* "'") + + +PubidLiteral +'"' PubidChar* +'"' +| "'" (PubidChar - "'")* "'" + +PubidChar +#x20 | #xD | #xA +| [a-zA-Z0-9] +| [-'()+,./:=?;!*#@$_%] + + +

      + +
      + + +Character Data and Markup + +

      Text consists of intermingled +character +data and markup. +Markup takes the form of +start-tags, +end-tags, +empty-element tags, +entity references, +character references, +comments, +CDATA section delimiters, +document type declarations, and +processing instructions. + +

      +

      All text that is not markup +constitutes the character data of +the document.

      +

      The ampersand character (&) and the left angle bracket (<) +may appear in their literal form only when used as markup +delimiters, or within a comment, a +processing instruction, +or a CDATA section. + +They are also legal within the literal entity +value of an internal entity declaration; see +. + +If they are needed elsewhere, +they must be escaped +using either numeric character references +or the strings +"&amp;" and "&lt;" respectively. +The right angle +bracket (>) may be represented using the string +"&gt;", and must, for +compatibility, +be escaped using +"&gt;" or a character reference +when it appears in the string +"]]>" +in content, +when that string is not marking the end of +a CDATA section. +

      +

      +In the content of elements, character data +is any string of characters which does +not contain the start-delimiter of any markup. +In a CDATA section, character data +is any string of characters not including the CDATA-section-close +delimiter, "]]>".

      +

      +To allow attribute values to contain both single and double quotes, the +apostrophe or single-quote character (') may be represented as +"&apos;", and the double-quote character (") as +"&quot;". + +Character Data + +CharData +[^<&]* - ([^<&]* ']]>' [^<&]*) + + +

      +
      + + +Comments + +

      Comments may +appear anywhere in a document outside other +markup; in addition, +they may appear within the document type declaration +at places allowed by the grammar. +They are not part of the document's character +data; an XML +processor may, but need not, make it possible for an application to +retrieve the text of comments. +For compatibility, the string +"--" (double-hyphen) must not occur within +comments. + +Comments +Comment +'<!--' +((Char - '-') +| ('-' (Char - '-')))* +'-->' + + +

      +

      An example of a comment: +<!&como; declarations for <head> & <body> &comc;> +

      +
      + + +Processing Instructions + +

      Processing +instructions (PIs) allow documents to contain instructions +for applications. + + +Processing Instructions +PI +'<?' PITarget +(S +(Char* - +(Char* &pic; Char*)))? +&pic; +PITarget +Name - +(('X' | 'x') ('M' | 'm') ('L' | 'l')) + + +PIs are not part of the document's character +data, but must be passed through to the application. The +PI begins with a target (PITarget) used +to identify the application to which the instruction is directed. +The target names "XML", "xml", and so on are +reserved for standardization in this or future versions of this +specification. +The +XML Notation mechanism +may be used for +formal declaration of PI targets. +

      +
      + + +CDATA Sections + +

      CDATA sections +may occur +anywhere character data may occur; they are +used to escape blocks of text containing characters which would +otherwise be recognized as markup. CDATA sections begin with the +string "<![CDATA[" and end with the string +"]]>": + +CDATA Sections +CDSect +CDStart +CData +CDEnd +CDStart +'<![CDATA[' + +CData +(Char* - +(Char* ']]>' Char*)) + + +CDEnd +']]>' + + + +Within a CDATA section, only the CDEnd string is +recognized as markup, so that left angle brackets and ampersands may occur in +their literal form; they need not (and cannot) be escaped using +"&lt;" and "&amp;". CDATA sections +cannot nest. +

      + +

      An example of a CDATA section, in which "<greeting>" and +"</greeting>" +are recognized as character data, not +markup: +<![CDATA[<greeting>Hello, world!</greeting>]]> +

      +
      + + +Prolog and Document Type Declaration + +

      XML documents +may, and should, +begin with an XML declaration which specifies +the version of +XML being used. +For example, the following is a complete XML document, well-formed but not +valid: + +Hello, world! +]]> +and so is this: +Hello, world! +]]> +

      + +

      The version number "1.0" should be used to indicate +conformance to this version of this specification; it is an error +for a document to use the value "1.0" +if it does not conform to this version of this specification. +It is the intent +of the XML working group to give later versions of this specification +numbers other than "1.0", but this intent does not +indicate a +commitment to produce any future versions of XML, nor if any are produced, to +use any particular numbering scheme. +Since future versions are not ruled out, this construct is provided +as a means to allow the possibility of automatic version recognition, should +it become necessary. +Processors may signal an error if they receive documents labeled with +versions they do not support. +

      +

      The function of the markup in an XML document is to describe its +storage and logical structure and to associate attribute-value pairs +with its logical structures. XML provides a mechanism, the document type declaration, to define +constraints on the logical structure and to support the use of +predefined storage units. + +An XML document is +valid if it has an associated document type +declaration and if the document +complies with the constraints expressed in it.

      +

      The document type declaration must appear before +the first element in the document. + +Prolog + +prolog +XMLDecl? +Misc* +(doctypedecl +Misc*)? +XMLDecl +&xmlpio; +VersionInfo +EncodingDecl? +SDDecl? +S? +&pic; + +VersionInfo +S 'version' Eq +(' VersionNum ' +| " VersionNum ") + +Eq +S? '=' S? + +VersionNum +([a-zA-Z0-9_.:] | '-')+ + +Misc +Comment | PI | +S + +

      + +

      The XML +document type declaration +contains or points to +markup declarations +that provide a grammar for a +class of documents. +This grammar is known as a document type definition, +or DTD. +The document type declaration can point to an external subset (a +special kind of +external entity) containing markup +declarations, or can +contain the markup declarations directly in an internal subset, or can do +both. +The DTD for a document consists of both subsets taken +together. +

      +

      +A markup declaration is +an element type declaration, +an attribute-list declaration, +an entity declaration, or +a notation declaration. + +These declarations may be contained in whole or in part +within parameter entities, +as described in the well-formedness and validity constraints below. +For fuller information, see +.

      + +Document Type Definition + +doctypedecl +'<!DOCTYPE' S +Name (S +ExternalID)? +S? ('[' +(markupdecl +| PEReference +| S)* +']' +S?)? '>' + + +markupdecl +elementdecl +| AttlistDecl +| EntityDecl +| NotationDecl +| PI +| Comment + + + + + + + + +

      The markup declarations may be made up in whole or in part of +the replacement text of +parameter entities. +The productions later in this specification for +individual nonterminals (elementdecl, +AttlistDecl, and so on) describe +the declarations after all the parameter entities have been +included.

      + + +Root Element Type +

      +The Name in the document type declaration must +match the element type of the root element. +

      +
      + + +Proper Declaration/PE Nesting +

      Parameter-entity +replacement text must be properly nested +with markup declarations. +That is to say, if either the first character +or the last character of a markup +declaration (markupdecl above) +is contained in the replacement text for a +parameter-entity reference, +both must be contained in the same replacement text.

      +
      + +PEs in Internal Subset +

      In the internal DTD subset, +parameter-entity references +can occur only where markup declarations can occur, not +within markup declarations. (This does not apply to +references that occur in +external parameter entities or to the external subset.) +

      +
      +

      +Like the internal subset, the external subset and +any external parameter entities referred to in the DTD +must consist of a series of complete markup declarations of the types +allowed by the non-terminal symbol +markupdecl, interspersed with white space +or parameter-entity references. +However, portions of the contents +of the +external subset or of external parameter entities may conditionally be ignored +by using +the conditional section +construct; this is not allowed in the internal subset. + + +External Subset + +extSubset +TextDecl? +extSubsetDecl +extSubsetDecl +( +markupdecl +| conditionalSect +| PEReference +| S +)* + + +

      +

      The external subset and external parameter entities also differ +from the internal subset in that in them, +parameter-entity references +are permitted within markup declarations, +not only between markup declarations.

      +

      An example of an XML document with a document type declaration: + + +Hello, world! +]]> +The system identifier +"hello.dtd" gives the URI of a DTD for the document.

      +

      The declarations can also be given locally, as in this +example: + + +]> +Hello, world! +]]> +If both the external and internal subsets are used, the +internal subset is considered to occur before the external subset. + +This has the effect that entity and attribute-list declarations in the +internal subset take precedence over those in the external subset. +

      +
      + + +Standalone Document Declaration +

      Markup declarations can affect the content of the document, +as passed from an XML processor +to an application; examples are attribute defaults and entity +declarations. +The standalone document declaration, +which may appear as a component of the XML declaration, signals +whether or not there are such declarations which appear external to +the document entity. + +Standalone Document Declaration + +SDDecl + +S +'standalone' Eq +(("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"')) + + + +

      +

      +In a standalone document declaration, the value "yes" indicates +that there +are no markup declarations external to the document +entity (either in the DTD external subset, or in an +external parameter entity referenced from the internal subset) +which affect the information passed from the XML processor to +the application. +The value "no" indicates that there are or may be such +external markup declarations. +Note that the standalone document declaration only +denotes the presence of external declarations; the presence, in a +document, of +references to external entities, when those entities are +internally declared, +does not change its standalone status.

      +

      If there are no external markup declarations, the standalone document +declaration has no meaning. +If there are external markup declarations but there is no standalone +document declaration, the value "no" is assumed.

      +

      Any XML document for which standalone="no" holds can +be converted algorithmically to a standalone document, +which may be desirable for some network delivery applications.

      + +Standalone Document Declaration +

      The standalone document declaration must have +the value "no" if any external markup declarations +contain declarations of:

      +

      attributes with default values, if +elements to which +these attributes apply appear in the document without +specifications of values for these attributes, or

      +

      entities (other than &magicents;), +if references to those +entities appear in the document, or

      +
      +

      attributes with values subject to +normalization, where the +attribute appears in the document with a value which will +change as a result of normalization, or

      +
      + +

      element types with element content, +if white space occurs +directly within any instance of those types. +

      +
      + +
      +

      An example XML declaration with a standalone document declaration:<?xml version="&XML.version;" standalone='yes'?>

      +
      + +White Space Handling + +

      In editing XML documents, it is often convenient to use "white space" +(spaces, tabs, and blank lines, denoted by the nonterminal +S in this specification) to +set apart the markup for greater readability. Such white space is typically +not intended for inclusion in the delivered version of the document. +On the other hand, "significant" white space that should be preserved in the +delivered version is common, for example in poetry and +source code.

      +

      An XML processor +must always pass all characters in a document that are not +markup through to the application. A +validating XML processor must also inform the application +which of these characters constitute white space appearing +in element content. +

      +

      A special attribute +named xml:space may be attached to an element +to signal an intention that in that element, +white space should be preserved by applications. +In valid documents, this attribute, like any other, must be +declared if it is used. +When declared, it must be given as an +enumerated type whose only +possible values are "default" and "preserve". +For example:]]>

      +

      The value "default" signals that applications' +default white-space processing modes are acceptable for this element; the +value "preserve" indicates the intent that applications preserve +all the white space. +This declared intent is considered to apply to all elements within the content +of the element where it is specified, unless overriden with another instance +of the xml:space attribute. +

      +

      The root element of any document +is considered to have signaled no intentions as regards application space +handling, unless it provides a value for +this attribute or the attribute is declared with a default value. +

      + +
      + +End-of-Line Handling +

      XML parsed entities are often stored in +computer files which, for editing convenience, are organized into lines. +These lines are typically separated by some combination of the characters +carriage-return (#xD) and line-feed (#xA).

      +

      To simplify the tasks of applications, +wherever an external parsed entity or the literal entity value +of an internal parsed entity contains either the literal +two-character sequence "#xD#xA" or a standalone literal +#xD, an XML processor must +pass to the application the single character #xA. +(This behavior can +conveniently be produced by normalizing all +line breaks to #xA on input, before parsing.) +

      +
      + +Language Identification +

      In document processing, it is often useful to +identify the natural or formal language +in which the content is +written. +A special attribute named +xml:lang may be inserted in +documents to specify the +language used in the contents and attribute values +of any element in an XML document. +In valid documents, this attribute, like any other, must be +declared if it is used. +The values of the attribute are language identifiers as defined +by , "Tags for the Identification of Languages": + +Language Identification +LanguageID +Langcode +('-' Subcode)* +Langcode +ISO639Code | +IanaCode | +UserCode + +ISO639Code +([a-z] | [A-Z]) ([a-z] | [A-Z]) +IanaCode +('i' | 'I') '-' ([a-z] | [A-Z])+ +UserCode +('x' | 'X') '-' ([a-z] | [A-Z])+ +Subcode +([a-z] | [A-Z])+ + +The Langcode may be any of the following: + +

      a two-letter language code as defined by +, "Codes +for the representation of names of languages"

      +

      a language identifier registered with the Internet +Assigned Numbers Authority ; these begin with the +prefix "i-" (or "I-")

      +

      a language identifier assigned by the user, or agreed on +between parties in private use; these must begin with the +prefix "x-" or "X-" in order to ensure that they do not conflict +with names later standardized or registered with IANA

      +

      +

      There may be any number of Subcode segments; if +the first +subcode segment exists and the Subcode consists of two +letters, then it must be a country code from +, "Codes +for the representation of names of countries." +If the first +subcode consists of more than two letters, it must be +a subcode for the language in question registered with IANA, +unless the Langcode begins with the prefix +"x-" or +"X-".

      +

      It is customary to give the language code in lower case, and +the country code (if any) in upper case. +Note that these values, unlike other names in XML documents, +are case insensitive.

      +

      For example: +The quick brown fox jumps over the lazy dog.

      +

      What colour is it?

      +

      What color is it?

      + + Habe nun, ach! Philosophie, + Juristerei, und Medizin + und leider auch Theologie + durchaus studiert mit heißem Bemüh'n. + ]]>

      + +

      The intent declared with xml:lang is considered to apply to +all attributes and content of the element where it is specified, +unless overridden with an instance of xml:lang +on another element within that content.

      + +

      A simple declaration for xml:lang might take +the form +xml:lang NMTOKEN #IMPLIED +but specific default values may also be given, if appropriate. In a +collection of French poems for English students, with glosses and +notes in English, the xml:lang attribute might be declared this way: + + + ]]> +

      + +
      +
      + + + +Logical Structures + +

      Each XML document contains one or more +elements, the boundaries of which are +either delimited by start-tags +and end-tags, or, for empty elements, by an empty-element tag. Each element has a type, +identified by name, sometimes called its "generic +identifier" (GI), and may have a set of +attribute specifications. Each attribute specification +has a name and a value. +

      +Element +element +EmptyElemTag +| STag content +ETag + + + + +

      This specification does not constrain the semantics, use, or (beyond +syntax) names of the element types and attributes, except that names +beginning with a match to (('X'|'x')('M'|'m')('L'|'l')) +are reserved for standardization in this or future versions of this +specification. +

      + +Element Type Match +

      +The Name in an element's end-tag must match +the element type in +the start-tag. +

      +
      + +Element Valid +

      An element is +valid if +there is a declaration matching +elementdecl where the +Name matches the element type, and +one of the following holds:

      + +

      The declaration matches EMPTY and the element has no +content.

      +

      The declaration matches children and +the sequence of +child elements +belongs to the language generated by the regular expression in +the content model, with optional white space (characters +matching the nonterminal S) between each pair +of child elements.

      +

      The declaration matches Mixed and +the content consists of character +data and child elements +whose types match names in the content model.

      +

      The declaration matches ANY, and the types +of any child elements have +been declared.

      +
      +
      + + +Start-Tags, End-Tags, and Empty-Element Tags + +

      The beginning of every +non-empty XML element is marked by a start-tag. + +Start-tag + +STag +'<' Name +(S Attribute)* +S? '>' + + +Attribute +Name Eq +AttValue + + + + + +The Name in +the start- and end-tags gives the +element's type. + +The Name-AttValue pairs are +referred to as +the attribute specifications of the element, +with the +Name in each pair +referred to as the attribute name and +the content of the +AttValue (the text between the +' or " delimiters) +as the attribute value. +

      + +Unique Att Spec +

      +No attribute name may appear more than once in the same start-tag +or empty-element tag. +

      +
      + +Attribute Value Type +

      +The attribute must have been declared; the value must be of the type +declared for it. +(For attribute types, see .) +

      +
      + +No External Entity References +

      +Attribute values cannot contain direct or indirect entity references +to external entities. +

      +
      + +No < in Attribute Values +

      The replacement text of any entity +referred to directly or indirectly in an attribute +value (other than "&lt;") must not contain +a <. +

      +

      An example of a start-tag: +<termdef id="dt-dog" term="dog">

      +

      The end of every element +that begins with a start-tag must +be marked by an end-tag +containing a name that echoes the element's type as given in the +start-tag: + +End-tag + +ETag +'</' Name +S? '>' + + +

      +

      An example of an end-tag:</termdef>

      +

      The +text between the start-tag and +end-tag is called the element's +content: + +Content of Elements + +content +(element | CharData +| Reference | CDSect +| PI | Comment)* + + + +

      +

      If an element is empty, +it must be represented either by a start-tag immediately followed +by an end-tag or by an empty-element tag. +An +empty-element tag takes a special form: + +Tags for Empty Elements + +EmptyElemTag +'<' Name (S +Attribute)* S? +'/>' + + + + +

      +

      Empty-element tags may be used for any element which has no +content, whether or not it is declared using the keyword +EMPTY. +For interoperability, the empty-element +tag must be used, and can only be used, for elements which are +declared EMPTY.

      +

      Examples of empty elements: +<IMG align="left" + src="http://www.w3.org/Icons/WWW/w3c_home" /> +<br></br> +<br/>

      +
      + + +Element Type Declarations + +

      The element structure of an +XML document may, for +validation purposes, +be constrained +using element type and attribute-list declarations. +An element type declaration constrains the element's +content. +

      + +

      Element type declarations often constrain which element types can +appear as children of the element. +At user option, an XML processor may issue a warning +when a declaration mentions an element type for which no declaration +is provided, but this is not an error.

      +

      An element +type declaration takes the form: + +Element Type Declaration + +elementdecl +'<!ELEMENT' S +Name +S +contentspec +S? '>' + +contentspec +'EMPTY' +| 'ANY' +| Mixed +| children + + + + +where the Name gives the element type +being declared. +

      + + +Unique Element Type Declaration +

      +No element type may be declared more than once. +

      +
      + +

      Examples of element type declarations: +<!ELEMENT br EMPTY> +<!ELEMENT p (#PCDATA|emph)* > +<!ELEMENT %name.para; %content.para; > +<!ELEMENT container ANY>

      + + +Element Content + +

      An element type has +element content when elements of that +type must contain only child +elements (no character data), optionally separated by +white space (characters matching the nonterminal +S). + +In this case, the +constraint includes a content model, a simple grammar governing +the allowed types of the child +elements and the order in which they are allowed to appear. +The grammar is built on +content particles (cps), which consist of names, +choice lists of content particles, or +sequence lists of content particles: + +Element-content Models + +children +(choice +| seq) +('?' | '*' | '+')? +cp +(Name +| choice +| seq) +('?' | '*' | '+')? +choice +'(' S? cp +( S? '|' S? cp )* +S? ')' + +seq +'(' S? cp +( S? ',' S? cp )* +S? ')' + + + + +where each Name is the type of an element which may +appear as a child. +Any content +particle in a choice list may appear in the element content at the location where +the choice list appears in the grammar; +content particles occurring in a sequence list must each +appear in the element content in the +order given in the list. +The optional character following a name or list governs +whether the element or the content particles in the list may occur one +or more (+), zero or more (*), or zero or +one times (?). +The absence of such an operator means that the element or content particle +must appear exactly once. +This syntax +and meaning are identical to those used in the productions in this +specification.

      +

      +The content of an element matches a content model if and only if it is +possible to trace out a path through the content model, obeying the +sequence, choice, and repetition operators and matching each element in +the content against an element type in the content model. For compatibility, it is an error +if an element in the document can +match more than one occurrence of an element type in the content model. +For more information, see . + + +

      + +Proper Group/PE Nesting +

      Parameter-entity +replacement text must be properly nested +with parenthetized groups. +That is to say, if either of the opening or closing parentheses +in a choice, seq, or +Mixed construct +is contained in the replacement text for a +parameter entity, +both must be contained in the same replacement text.

      +

      For interoperability, +if a parameter-entity reference appears in a +choice, seq, or +Mixed construct, its replacement text +should not be empty, and +neither the first nor last non-blank +character of the replacement text should be a connector +(| or ,). +

      +
      +

      Examples of element-content models: +<!ELEMENT spec (front, body, back?)> +<!ELEMENT div1 (head, (p | list | note)*, div2*)> +<!ELEMENT dictionary-body (%div.mix; | %dict.mix;)*>

      +
      + + +Mixed Content + +

      An element +type has +mixed content when elements of that type may contain +character data, optionally interspersed with +child elements. +In this case, the types of the child elements +may be constrained, but not their order or their number of occurrences: + +Mixed-content Declaration + +Mixed +'(' S? +'#PCDATA' +(S? +'|' +S? +Name)* +S? +')*' +| '(' S? '#PCDATA' S? ')' + + + + + + +where the Names give the types of elements +that may appear as children. +

      + +No Duplicate Types +

      The same name must not appear more than once in a single mixed-content +declaration. +

      +

      Examples of mixed content declarations: +<!ELEMENT p (#PCDATA|a|ul|b|i|em)*> +<!ELEMENT p (#PCDATA | %font; | %phrase; | %special; | %form;)* > +<!ELEMENT b (#PCDATA)>

      +
      +
      + + +Attribute-List Declarations + +

      Attributes are used to associate +name-value pairs with elements. +Attribute specifications may appear only within start-tags +and empty-element tags; +thus, the productions used to +recognize them appear in . +Attribute-list +declarations may be used: + +

      To define the set of attributes pertaining to a given +element type.

      +

      To establish type constraints for these +attributes.

      +

      To provide default values +for attributes.

      + +

      +

      +Attribute-list declarations specify the name, data type, and default +value (if any) of each attribute associated with a given element type: + +Attribute-list Declaration +AttlistDecl +'<!ATTLIST' S +Name +AttDef* +S? '>' + +AttDef +S Name +S AttType +S DefaultDecl + + +The Name in the +AttlistDecl rule is the type of an element. At +user option, an XML processor may issue a warning if attributes are +declared for an element type not itself declared, but this is not an +error. The Name in the +AttDef rule is +the name of the attribute.

      +

      +When more than one AttlistDecl is provided for a +given element type, the contents of all those provided are merged. When +more than one definition is provided for the same attribute of a +given element type, the first declaration is binding and later +declarations are ignored. +For interoperability, writers of DTDs +may choose to provide at most one attribute-list declaration +for a given element type, at most one attribute definition +for a given attribute name, and at least one attribute definition +in each attribute-list declaration. +For interoperability, an XML processor may at user option +issue a warning when more than one attribute-list declaration is +provided for a given element type, or more than one attribute definition +is provided +for a given attribute, but this is not an error. +

      + + +Attribute Types + +

      XML attribute types are of three kinds: a string type, a +set of tokenized types, and enumerated types. The string type may take +any literal string as a value; the tokenized types have varying lexical +and semantic constraints, as noted: + +Attribute Types + +AttType +StringType +| TokenizedType +| EnumeratedType + + +StringType +'CDATA' + +TokenizedType +'ID' + + + +| 'IDREF' + +| 'IDREFS' + +| 'ENTITY' + +| 'ENTITIES' + +| 'NMTOKEN' + +| 'NMTOKENS' + + + +

      + +ID +

      +Values of type ID must match the +Name production. +A name must not appear more than once in +an XML document as a value of this type; i.e., ID values must uniquely +identify the elements which bear them. +

      +
      + +One ID per Element Type +

      No element type may have more than one ID attribute specified.

      +
      + +ID Attribute Default +

      An ID attribute must have a declared default of #IMPLIED or +#REQUIRED.

      +
      + +IDREF +

      +Values of type IDREF must match +the Name production, and +values of type IDREFS must match +Names; +each Name must match the value of an ID attribute on +some element in the XML document; i.e. IDREF values must +match the value of some ID attribute. +

      +
      + +Entity Name +

      +Values of type ENTITY +must match the Name production, +values of type ENTITIES must match +Names; +each Name must +match the +name of an unparsed entity declared in the +DTD. +

      +
      + +Name Token +

      +Values of type NMTOKEN must match the +Nmtoken production; +values of type NMTOKENS must +match Nmtokens. +

      +
      + +

      Enumerated attributes can take one +of a list of values provided in the declaration. There are two +kinds of enumerated types: + +Enumerated Attribute Types +EnumeratedType +NotationType +| Enumeration + +NotationType +'NOTATION' +S +'(' +S? +Name +(S? '|' S? +Name)* +S? ')' + + +Enumeration +'(' S? +Nmtoken +(S? '|' +S? +Nmtoken)* +S? +')' + + +A NOTATION attribute identifies a +notation, declared in the +DTD with associated system and/or public identifiers, to +be used in interpreting the element to which the attribute +is attached. +

      + + +Notation Attributes +

      +Values of this type must match +one of the notation names included in +the declaration; all notation names in the declaration must +be declared. +

      +
      + +Enumeration +

      +Values of this type +must match one of the Nmtoken tokens in the +declaration. +

      +
      +

      For interoperability, the same +Nmtoken should not occur more than once in the +enumerated attribute types of a single element type. +

      +
      + + +Attribute Defaults + +

      An attribute declaration provides +information on whether +the attribute's presence is required, and if not, how an XML processor should +react if a declared attribute is absent in a document. + +Attribute Defaults + +DefaultDecl +'#REQUIRED' +| '#IMPLIED' +| (('#FIXED' S)? AttValue) + + + + + + + + +

      +

      In an attribute declaration, #REQUIRED means that the +attribute must always be provided, #IMPLIED that no default +value is provided. + +If the +declaration +is neither #REQUIRED nor #IMPLIED, then the +AttValue value contains the declared +default value; the #FIXED keyword states that +the attribute must always have the default value. +If a default value +is declared, when an XML processor encounters an omitted attribute, it +is to behave as though the attribute were present with +the declared default value.

      + +Required Attribute +

      If the default declaration is the keyword #REQUIRED, then +the attribute must be specified for +all elements of the type in the attribute-list declaration. +

      + +Attribute Default Legal +

      +The declared +default value must meet the lexical constraints of the declared attribute type. +

      +
      + +Fixed Attribute Default +

      If an attribute has a default value declared with the +#FIXED keyword, instances of that attribute must +match the default value. +

      + +

      Examples of attribute-list declarations: +<!ATTLIST termdef + id ID #REQUIRED + name CDATA #IMPLIED> +<!ATTLIST list + type (bullets|ordered|glossary) "ordered"> +<!ATTLIST form + method CDATA #FIXED "POST">

      +
      + +Attribute-Value Normalization +

      Before the value of an attribute is passed to the application +or checked for validity, the +XML processor must normalize it as follows: + +

      a character reference is processed by appending the referenced +character to the attribute value

      +

      an entity reference is processed by recursively processing the +replacement text of the entity

      +

      a whitespace character (#x20, #xD, #xA, #x9) is processed by +appending #x20 to the normalized value, except that only a single #x20 +is appended for a "#xD#xA" sequence that is part of an external +parsed entity or the literal entity value of an internal parsed +entity

      +

      other characters are processed by appending them to the normalized +value

      +
      +

      +

      If the declared value is not CDATA, then the XML processor must +further process the normalized attribute value by discarding any +leading and trailing space (#x20) characters, and by replacing +sequences of space (#x20) characters by a single space (#x20) +character.

      +

      +All attributes for which no declaration has been read should be treated +by a non-validating parser as if declared +CDATA. +

      +
      +
      + +Conditional Sections +

      +Conditional sections are portions of the +document type declaration external subset +which are +included in, or excluded from, the logical structure of the DTD based on +the keyword which governs them. + +Conditional Section + +conditionalSect +includeSect +| ignoreSect + + +includeSect +'<![' S? 'INCLUDE' S? '[' + +extSubsetDecl +']]>' + + +ignoreSect +'<![' S? 'IGNORE' S? '[' +ignoreSectContents* +']]>' + + +ignoreSectContents +Ignore +('<![' ignoreSectContents ']]>' +Ignore)* +Ignore +Char* - +(Char* ('<![' | ']]>') +Char*) + + + + +

      +

      Like the internal and external DTD subsets, a conditional section +may contain one or more complete declarations, +comments, processing instructions, +or nested conditional sections, intermingled with white space. +

      +

      If the keyword of the +conditional section is INCLUDE, then the contents of the conditional +section are part of the DTD. +If the keyword of the conditional +section is IGNORE, then the contents of the conditional section are +not logically part of the DTD. +Note that for reliable parsing, the contents of even ignored +conditional sections must be read in order to +detect nested conditional sections and ensure that the end of the +outermost (ignored) conditional section is properly detected. +If a conditional section with a +keyword of INCLUDE occurs within a larger conditional +section with a keyword of IGNORE, both the outer and the +inner conditional sections are ignored.

      +

      If the keyword of the conditional section is a +parameter-entity reference, the parameter entity must be replaced by its +content before the processor decides whether to +include or ignore the conditional section.

      +

      An example: +<!ENTITY % draft 'INCLUDE' > +<!ENTITY % final 'IGNORE' > + +<![%draft;[ +<!ELEMENT book (comments*, title, body, supplements?)> +]]> +<![%final;[ +<!ELEMENT book (title, body, supplements?)> +]]> + +

      +
      + + + + +
      + + + +Physical Structures + +

      An XML document may consist +of one or many storage units. These are called +entities; they all have content and are all +(except for the document entity, see below, and +the external DTD subset) +identified by name. + +Each XML document has one entity +called the document entity, which serves +as the starting point for the XML +processor and may contain the whole document.

      +

      Entities may be either parsed or unparsed. +A parsed entity's +contents are referred to as its +replacement text; +this text is considered an +integral part of the document.

      + +

      An +unparsed entity +is a resource whose contents may or may not be +text, and if text, may not be XML. +Each unparsed entity +has an associated notation, identified by name. +Beyond a requirement +that an XML processor make the identifiers for the entity and +notation available to the application, +XML places no constraints on the contents of unparsed entities. +

      +

      +Parsed entities are invoked by name using entity references; +unparsed entities by name, given in the value of ENTITY +or ENTITIES +attributes.

      +

      General entities +are entities for use within the document content. +In this specification, general entities are sometimes referred +to with the unqualified term entity when this leads +to no ambiguity. +Parameter entities +are parsed entities for use within the DTD. +These two types of entities use different forms of reference and +are recognized in different contexts. +Furthermore, they occupy different namespaces; a parameter entity and +a general entity with the same name are two distinct entities. +

      + + +Character and Entity References +

      +A character reference refers to a specific character in the +ISO/IEC 10646 character set, for example one not directly accessible from +available input devices. + +Character Reference +CharRef +'&#' [0-9]+ ';' +| '&hcro;' [0-9a-fA-F]+ ';' + + + + +Legal Character +

      Characters referred to using character references must +match the production for +Char.

      + +If the character reference begins with "&#x", the digits and +letters up to the terminating ; provide a hexadecimal +representation of the character's code point in ISO/IEC 10646. +If it begins just with "&#", the digits up to the terminating +; provide a decimal representation of the character's +code point. + +

      +

      An entity +reference refers to the content of a named entity. +References to +parsed general entities +use ampersand (&) and semicolon (;) as +delimiters. + +Parameter-entity references use percent-sign (%) and +semicolon +(;) as delimiters. +

      + +Entity Reference +Reference +EntityRef +| CharRef +EntityRef +'&' Name ';' + + + + + +PEReference +'%' Name ';' + + + + + + + +Entity Declared +

      In a document without any DTD, a document with only an internal +DTD subset which contains no parameter entity references, or a document with +"standalone='yes'", +the Name given in the entity reference must +match that in an +entity declaration, except that +well-formed documents need not declare +any of the following entities: &magicents;. +The declaration of a parameter entity must precede any reference to it. +Similarly, the declaration of a general entity must precede any +reference to it which appears in a default value in an attribute-list +declaration.

      +

      Note that if entities are declared in the external subset or in +external parameter entities, a non-validating processor is +not obligated to read +and process their declarations; for such documents, the rule that +an entity must be declared is a well-formedness constraint only +if standalone='yes'.

      +
      + +Entity Declared +

      In a document with an external subset or external parameter +entities with "standalone='no'", +the Name given in the entity reference must match that in an +entity declaration. +For interoperability, valid documents should declare the entities +&magicents;, in the form +specified in . +The declaration of a parameter entity must precede any reference to it. +Similarly, the declaration of a general entity must precede any +reference to it which appears in a default value in an attribute-list +declaration.

      +
      + + +Parsed Entity +

      +An entity reference must not contain the name of an unparsed entity. Unparsed entities may be referred +to only in attribute values declared to +be of type ENTITY or ENTITIES. +

      +
      + +No Recursion +

      +A parsed entity must not contain a recursive reference to itself, +either directly or indirectly. +

      +
      + +In DTD +

      +Parameter-entity references may only appear in the +DTD. +

      +
      +

      Examples of character and entity references: +Type <key>less-than</key> (&hcro;3C;) to save options. +This document was prepared on &docdate; and +is classified &security-level;.

      +

      Example of a parameter-entity reference: + + + +%ISOLat2;]]>

      +
      + + +Entity Declarations + +

      +Entities are declared thus: + +Entity Declaration + +EntityDecl +GEDecl | PEDecl + + +GEDecl +'<!ENTITY' S Name +S EntityDef +S? '>' + +PEDecl +'<!ENTITY' S '%' S +Name S +PEDef S? '>' + + +EntityDef +EntityValue +| (ExternalID +NDataDecl?) + + + +PEDef +EntityValue +| ExternalID + + +The Name identifies the entity in an +entity reference or, in the case of an +unparsed entity, in the value of an ENTITY or ENTITIES +attribute. +If the same entity is declared more than once, the first declaration +encountered is binding; at user option, an XML processor may issue a +warning if entities are declared multiple times. +

      + + +Internal Entities + +

      If +the entity definition is an +EntityValue, +the defined entity is called an internal entity. +There is no separate physical +storage object, and the content of the entity is given in the +declaration. +Note that some processing of entity and character references in the +literal entity value may be required to +produce the correct replacement +text: see . +

      +

      An internal entity is a parsed +entity.

      +

      Example of an internal entity declaration: +<!ENTITY Pub-Status "This is a pre-release of the + specification.">

      +
      + + +External Entities + +

      If the entity is not +internal, it is an external +entity, declared as follows: + +External Entity Declaration + +ExternalID +'SYSTEM' S +SystemLiteral +| 'PUBLIC' S +PubidLiteral +S +SystemLiteral + + +NDataDecl +S 'NDATA' S +Name + + +If the NDataDecl is present, this is a +general unparsed +entity; otherwise it is a parsed entity.

      + +Notation Declared +

      +The Name must match the declared name of a +notation. +

      +
      +

      The +SystemLiteral +is called the entity's system identifier. It is a URI, +which may be used to retrieve the entity. +Note that the hash mark (#) and fragment identifier +frequently used with URIs are not, formally, part of the URI itself; +an XML processor may signal an error if a fragment identifier is +given as part of a system identifier. +Unless otherwise provided by information outside the scope of this +specification (e.g. a special XML element type defined by a particular +DTD, or a processing instruction defined by a particular application +specification), relative URIs are relative to the location of the +resource within which the entity declaration occurs. +A URI might thus be relative to the +document entity, to the entity +containing the external DTD subset, +or to some other external parameter entity. +

      +

      An XML processor should handle a non-ASCII character in a URI by +representing the character in UTF-8 as one or more bytes, and then +escaping these bytes with the URI escaping mechanism (i.e., by +converting each byte to %HH, where HH is the hexadecimal notation of the +byte value).

      +

      +In addition to a system identifier, an external identifier may +include a public identifier. +An XML processor attempting to retrieve the entity's content may use the public +identifier to try to generate an alternative URI. If the processor +is unable to do so, it must use the URI specified in the system +literal. Before a match is attempted, all strings +of white space in the public identifier must be normalized to single space characters (#x20), +and leading and trailing white space must be removed.

      +

      Examples of external entity declarations: +<!ENTITY open-hatch + SYSTEM "http://www.textuality.com/boilerplate/OpenHatch.xml"> +<!ENTITY open-hatch + PUBLIC "-//Textuality//TEXT Standard open-hatch boilerplate//EN" + "http://www.textuality.com/boilerplate/OpenHatch.xml"> +<!ENTITY hatch-pic + SYSTEM "../grafix/OpenHatch.gif" + NDATA gif >

      +
      + +
      + + +Parsed Entities + +The Text Declaration +

      External parsed entities may each begin with a text +declaration. + +Text Declaration + +TextDecl +&xmlpio; +VersionInfo? +EncodingDecl +S? &pic; + + + +

      +

      The text declaration must be provided literally, not +by reference to a parsed entity. +No text declaration may appear at any position other than the beginning of +an external parsed entity.

      +
      + +Well-Formed Parsed Entities +

      The document entity is well-formed if it matches the production labeled +document. +An external general +parsed entity is well-formed if it matches the production labeled +extParsedEnt. +An external parameter +entity is well-formed if it matches the production labeled +extPE. + +Well-Formed External Parsed Entity +extParsedEnt +TextDecl? +content + +extPE +TextDecl? +extSubsetDecl + + +An internal general parsed entity is well-formed if its replacement text +matches the production labeled +content. +All internal parameter entities are well-formed by definition. +

      +

      A consequence of well-formedness in entities is that the logical +and physical structures in an XML document are properly nested; no +start-tag, +end-tag, +empty-element tag, +element, +comment, +processing instruction, +character +reference, or +entity reference +can begin in one entity and end in another.

      +
      + +Character Encoding in Entities + +

      Each external parsed entity in an XML document may use a different +encoding for its characters. All XML processors must be able to read +entities in either UTF-8 or UTF-16. + +

      +

      Entities encoded in UTF-16 must +begin with the Byte Order Mark described by ISO/IEC 10646 Annex E and +Unicode Appendix B (the ZERO WIDTH NO-BREAK SPACE character, #xFEFF). +This is an encoding signature, not part of either the markup or the +character data of the XML document. +XML processors must be able to use this character to +differentiate between UTF-8 and UTF-16 encoded documents.

      +

      Although an XML processor is required to read only entities in +the UTF-8 and UTF-16 encodings, it is recognized that other encodings are +used around the world, and it may be desired for XML processors +to read entities that use them. +Parsed entities which are stored in an encoding other than +UTF-8 or UTF-16 must begin with a text +declaration containing an encoding declaration: + +Encoding Declaration +EncodingDecl +S +'encoding' Eq +('"' EncName '"' | +"'" EncName "'" ) + + +EncName +[A-Za-z] ([A-Za-z0-9._] | '-')* +Encoding name contains only Latin characters + + +In the document entity, the encoding +declaration is part of the XML declaration. +The EncName is the name of the encoding used. +

      + +

      In an encoding declaration, the values +"UTF-8", +"UTF-16", +"ISO-10646-UCS-2", and +"ISO-10646-UCS-4" should be +used for the various encodings and transformations of Unicode / +ISO/IEC 10646, the values +"ISO-8859-1", +"ISO-8859-2", ... +"ISO-8859-9" should be used for the parts of ISO 8859, and +the values +"ISO-2022-JP", +"Shift_JIS", and +"EUC-JP" +should be used for the various encoded forms of JIS X-0208-1997. XML +processors may recognize other encodings; it is recommended that +character encodings registered (as charsets) +with the Internet Assigned Numbers +Authority , other than those just listed, should be +referred to +using their registered names. +Note that these registered names are defined to be +case-insensitive, so processors wishing to match against them +should do so in a case-insensitive +way.

      +

      In the absence of information provided by an external +transport protocol (e.g. HTTP or MIME), +it is an error for an entity including +an encoding declaration to be presented to the XML processor +in an encoding other than that named in the declaration, +for an encoding declaration to occur other than at the beginning +of an external entity, or for +an entity which begins with neither a Byte Order Mark nor an encoding +declaration to use an encoding other than UTF-8. +Note that since ASCII +is a subset of UTF-8, ordinary ASCII entities do not strictly need +an encoding declaration.

      + +

      It is a fatal error when an XML processor +encounters an entity with an encoding that it is unable to process.

      +

      Examples of encoding declarations: +<?xml encoding='UTF-8'?> +<?xml encoding='EUC-JP'?>

      +
      +
      + +XML Processor Treatment of Entities and References +

      The table below summarizes the contexts in which character references, +entity references, and invocations of unparsed entities might appear and the +required behavior of an XML processor in +each case. +The labels in the leftmost column describe the recognition context: + + +

      as a reference +anywhere after the start-tag and +before the end-tag of an element; corresponds +to the nonterminal content.

      + + + +

      as a reference within either the value of an attribute in a +start-tag, or a default +value in an attribute declaration; +corresponds to the nonterminal +AttValue.

      + + +

      as a Name, not a reference, appearing either as +the value of an +attribute which has been declared as type ENTITY, or as one of +the space-separated tokens in the value of an attribute which has been +declared as type ENTITIES.

      +
      + +

      as a reference +within a parameter or internal entity's +literal entity value in +the entity's declaration; corresponds to the nonterminal +EntityValue.

      + +

      as a reference within either the internal or external subsets of the +DTD, but outside +of an EntityValue or +AttValue.

      +
      +

      + + +
      Entity TypeCharacter
      ParameterInternal +GeneralExternal Parsed +GeneralUnparsed
      Reference +in ContentNot recognizedIncludedIncluded if validatingForbiddenIncluded
      Reference +in Attribute ValueNot recognizedIncluded in literalForbiddenForbiddenIncluded
      Occurs as +Attribute ValueNot recognizedForbiddenForbiddenNotifyNot recognized
      Reference +in EntityValueIncluded in literalBypassedBypassedForbiddenIncluded
      Reference +in DTDIncluded as PEForbiddenForbiddenForbiddenForbidden